diff --git a/plugins/multisrc/readnovelfull/filters/novelping.json b/plugins/multisrc/readnovelfull/filters/novelping.json new file mode 100644 index 000000000..6181fe0f8 --- /dev/null +++ b/plugins/multisrc/readnovelfull/filters/novelping.json @@ -0,0 +1,238 @@ +{ + "filters": { + "type": { + "type": "Picker", + "label": "Novel Listing", + "value": "sort/popular", + "options": [ + { + "label": "Hot Novel", + "value": "sort/hot" + }, + { + "label": "Completed Novel", + "value": "sort/complete" + }, + { + "label": "Most Popular", + "value": "sort/popular" + } + ] + }, + "genres": { + "type": "Picker", + "label": "Genre (Cancels out 'Novel Listing')", + "value": "", + "options": [ + { + "label": "Action", + "value": "novelping-genres/action" + }, + { + "label": "Adventure", + "value": "novelping-genres/adventure" + }, + { + "label": "Anime & comics", + "value": "novelping-genres/anime-&-comics" + }, + { + "label": "Comedy", + "value": "novelping-genres/comedy" + }, + { + "label": "Drama", + "value": "novelping-genres/drama" + }, + { + "label": "Eastern", + "value": "novelping-genres/eastern" + }, + { + "label": "Fan-fic", + "value": "novelping-genres/fan-fic" + }, + { + "label": "Fan-fiction", + "value": "novelping-genres/fan-fiction" + }, + { + "label": "Fantasy", + "value": "novelping-genres/fantasy" + }, + { + "label": "Game", + "value": "novelping-genres/game" + }, + { + "label": "Gender bender", + "value": "novelping-genres/gender-bender" + }, + { + "label": "Harem", + "value": "novelping-genres/harem" + }, + { + "label": "Historical", + "value": "novelping-genres/historical" + }, + { + "label": "Horror", + "value": "novelping-genres/horror" + }, + { + "label": "Isekai", + "value": "novelping-genres/isekai" + }, + { + "label": "Josei", + "value": "novelping-genres/josei" + }, + { + "label": "Litrpg", + "value": "novelping-genres/litrpg" + }, + { + "label": "Magic", + "value": "novelping-genres/magic" + }, + { + "label": "Magical realism", + "value": "novelping-genres/magical-realism" + }, + { + "label": "Martial arts", + "value": "novelping-genres/martial-arts" + }, + { + "label": "Mature", + "value": "novelping-genres/mature" + }, + { + "label": "Mecha", + "value": "novelping-genres/mecha" + }, + { + "label": "Military", + "value": "novelping-genres/military" + }, + { + "label": "Modern life", + "value": "novelping-genres/modern-life" + }, + { + "label": "Mystery", + "value": "novelping-genres/mystery" + }, + { + "label": "Psychological", + "value": "novelping-genres/psychological" + }, + { + "label": "Realistic", + "value": "novelping-genres/realistic" + }, + { + "label": "Reincarnation", + "value": "novelping-genres/reincarnation" + }, + { + "label": "Romance", + "value": "novelping-genres/romance" + }, + { + "label": "School life", + "value": "novelping-genres/school-life" + }, + { + "label": "Sci-fi", + "value": "novelping-genres/sci-fi" + }, + { + "label": "Seinen", + "value": "novelping-genres/seinen" + }, + { + "label": "Shoujo", + "value": "novelping-genres/shoujo" + }, + { + "label": "Shoujo ai", + "value": "novelping-genres/shoujo-ai" + }, + { + "label": "Shounen", + "value": "novelping-genres/shounen" + }, + { + "label": "Shounen ai", + "value": "novelping-genres/shounen-ai" + }, + { + "label": "Slice of life", + "value": "novelping-genres/slice-of-life" + }, + { + "label": "Smut", + "value": "novelping-genres/smut" + }, + { + "label": "Sports", + "value": "novelping-genres/sports" + }, + { + "label": "Supernatural", + "value": "novelping-genres/supernatural" + }, + { + "label": "System", + "value": "novelping-genres/system" + }, + { + "label": "Thriller", + "value": "novelping-genres/thriller" + }, + { + "label": "Tragedy", + "value": "novelping-genres/tragedy" + }, + { + "label": "Urban", + "value": "novelping-genres/urban" + }, + { + "label": "Urban fantasy", + "value": "novelping-genres/urban-fantasy" + }, + { + "label": "Video games", + "value": "novelping-genres/video-games" + }, + { + "label": "War", + "value": "novelping-genres/war" + }, + { + "label": "Wuxia", + "value": "novelping-genres/wuxia" + }, + { + "label": "Xianxia", + "value": "novelping-genres/xianxia" + }, + { + "label": "Xuanhuan", + "value": "novelping-genres/xuanhuan" + }, + { + "label": "Yaoi", + "value": "novelping-genres/yaoi" + }, + { + "label": "Yuri", + "value": "novelping-genres/yuri" + } + ] + } + } +} \ No newline at end of file diff --git a/plugins/multisrc/readnovelfull/sources.json b/plugins/multisrc/readnovelfull/sources.json index dba4c9787..31189bf08 100644 --- a/plugins/multisrc/readnovelfull/sources.json +++ b/plugins/multisrc/readnovelfull/sources.json @@ -81,6 +81,17 @@ "customJs": "$('[class*=\"app-promo\"]').remove();" } }, + { + "id": "novelping", + "sourceSite": "https://novelping.com/", + "sourceName": "Novel Ping", + "options": { + "latestPage": "sort/updates", + "searchPage": "search", + "versionIncrements": 0, + "customJs": "$('[class*=\"app-promo\"]').remove();" + } + }, { "id": "FWN.com", "sourceSite": "https://freewebnovel.com/", diff --git a/plugins/multisrc/readnovelfull/template.ts b/plugins/multisrc/readnovelfull/template.ts index 3da6e4891..f1e9a76bb 100644 --- a/plugins/multisrc/readnovelfull/template.ts +++ b/plugins/multisrc/readnovelfull/template.ts @@ -710,9 +710,9 @@ export class ReadNovelFullPlugin implements Plugin.PluginBase { } if (chapterHref !== undefined) { - const path = chapterHref.startsWith('/') - ? chapterHref.slice(1) - : chapterHref.replace(this.site + '/', ''); + const path = new URL(chapterHref, this.site).pathname.substring( + 1, + ); tempAjaxChapter.path = path; tempAjaxChapter.name = initialName; } diff --git a/public/static/multisrc/readnovelfull/novelping/icon.png b/public/static/multisrc/readnovelfull/novelping/icon.png new file mode 100644 index 000000000..02a2d6524 Binary files /dev/null and b/public/static/multisrc/readnovelfull/novelping/icon.png differ