diff --git a/icons/multisrc/lightnovelwp/bacalightnovel.png b/icons/multisrc/lightnovelwp/bacalightnovel.png index e1ee2c1..838bf61 100644 Binary files a/icons/multisrc/lightnovelwp/bacalightnovel.png and b/icons/multisrc/lightnovelwp/bacalightnovel.png differ diff --git a/icons/multisrc/lightnovelwp/sektenovel.png b/icons/multisrc/lightnovelwp/sektenovel.png new file mode 100644 index 0000000..5ac1b62 Binary files /dev/null and b/icons/multisrc/lightnovelwp/sektenovel.png differ diff --git a/plugins/indonesian/indowebnovel.ts b/plugins/indonesian/indowebnovel.ts index 6f42cbf..9b7e2ac 100644 --- a/plugins/indonesian/indowebnovel.ts +++ b/plugins/indonesian/indowebnovel.ts @@ -7,8 +7,8 @@ class IndoWebNovel implements Plugin.PluginBase { id = 'IDWN.id'; name = 'IndoWebNovel'; icon = 'src/id/indowebnovel/icon.png'; - site = 'https://indowebnovel.id/id'; - version = '1.2.1'; + site = 'https://indowebnovel.id/id/'; + version = '1.2.2'; parseNovels(loadedCheerio: CheerioAPI) { const novels: Plugin.NovelItem[] = []; @@ -36,9 +36,10 @@ class IndoWebNovel implements Plugin.PluginBase { } async popularNovels( - page: number, + page: number = 1, { filters }: Plugin.PopularNovelsOptions, ): Promise { + /* let link = `${this.site}advanced-search/page/${page}/?title=&author=&yearx=`; link += `&status=${filters.status.value}`; link += `&type=${filters.type.value}`; @@ -48,7 +49,8 @@ class IndoWebNovel implements Plugin.PluginBase { link += filters.lang.value.map(i => `&country[]=${i}`).join(''); if (filters.genre.value.length) link += filters.genre.value.map(i => `&genre[]=${i}`).join(''); - + */ + let link = this.site + `page/${page}/?s` const result = await fetchApi(link); const body = await result.text(); @@ -65,12 +67,12 @@ class IndoWebNovel implements Plugin.PluginBase { const novel: Plugin.SourceNovel = { path: novelPath, - name: loadedCheerio('.series-title').text().trim() || 'Untitled', + name: loadedCheerio('.series-title h2').text().trim() || 'Untitled', cover: loadedCheerio('.series-thumb img').attr('src'), - author: loadedCheerio("ul.series-infolist b:contains('Author') +") + author: loadedCheerio(".series-infolist li:contains('Author') span") .text() .trim(), - status: loadedCheerio('.status').text().trim(), + // status: loadedCheerio('.status').text().trim(), summary: loadedCheerio('.series-synops').text().trim(), chapters: [], }; @@ -105,21 +107,23 @@ class IndoWebNovel implements Plugin.PluginBase { const loadedCheerio = parseHTML(body); - const chapterText = loadedCheerio('.readersss').html() || ''; + const chapterText = loadedCheerio('.readersss .text-left ').html() || ''; return chapterText; } async searchNovels( searchTerm: string, - page: number, + page: number = 1, ): Promise { + /* let link = `${this.site}advanced-search/page/${page}/?title=${searchTerm}&author=&yearx=`; link += `&status=${this.filters.status.value}`; link += `&type=${this.filters.type.value}`; link += `&order=${this.filters.sort.value}`; link += this.filters.lang.value.map(i => `&country[]=${i}`).join(''); - + */ + let link = this.site + `page/${page}/?s=${searchTerm}` const result = await fetchApi(link); const body = await result.text(); diff --git a/scripts/multisrc/lightnovelwp/sources.json b/scripts/multisrc/lightnovelwp/sources.json index 90e7510..4362332 100644 --- a/scripts/multisrc/lightnovelwp/sources.json +++ b/scripts/multisrc/lightnovelwp/sources.json @@ -136,6 +136,24 @@ "reverseChapters": false } }, + { + "id": "bacalightnovel", + "sourceSite": "https://bacalightnovel.co/", + "sourceName": "Baca Light Novel", + "options": { + "lang": "Indonesian", + "reverseChapters": true + } + }, + { + "id": "sektenovel", + "sourceSite": "https://sektenovel.web.id/", + "sourceName": "Sekte Novel", + "options": { + "lang": "Indonesian", + "reverseChapters": true + } + }, { "id": "systemtranslation", "sourceSite": "https://systemtranslation.com/",