diff --git a/package.json b/package.json index 17a56e2..6330496 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "generate": "node ./scripts/multisrc/generate.js", "host-linux": "chmod +x ./host.sh && ./host.sh", "host-windows": "powershell ./host.ps1", - "icons": "npm run clearMultisrc && npm run generate && npx tsc -m node16; npm run json && node ./scripts/icon_reloading.js", + "icons": "npm run clearMultisrc && npm run generate && npx tsc --project tsconfig.production.json && npm run json && node ./scripts/icon_reloading.js", "json": " node ./scripts/json_plugins.js", "lint": "npx eslint .", "prepare": "husky install", diff --git a/public/static/multisrc/lightnovelwp/cpunovel/icon.png b/public/static/multisrc/lightnovelwp/cpunovel/icon.png index eb2259f..9b3bedb 100644 Binary files a/public/static/multisrc/lightnovelwp/cpunovel/icon.png and b/public/static/multisrc/lightnovelwp/cpunovel/icon.png differ diff --git a/public/static/multisrc/lightnovelwp/keopitranslations/icon.png b/public/static/multisrc/lightnovelwp/keopitranslations/icon.png new file mode 100644 index 0000000..caf7a2c Binary files /dev/null and b/public/static/multisrc/lightnovelwp/keopitranslations/icon.png differ diff --git a/public/static/multisrc/lightnovelwp/lazygirltranslations/icon.png b/public/static/multisrc/lightnovelwp/lazygirltranslations/icon.png new file mode 100644 index 0000000..8a1a6a5 Binary files /dev/null and b/public/static/multisrc/lightnovelwp/lazygirltranslations/icon.png differ diff --git a/public/static/multisrc/madara/azraznovel/icon.png b/public/static/multisrc/madara/azraznovel/icon.png index b3c854b..3feee90 100644 Binary files a/public/static/multisrc/madara/azraznovel/icon.png and b/public/static/multisrc/madara/azraznovel/icon.png differ diff --git a/public/static/multisrc/madara/boxnovel/icon.png b/public/static/multisrc/madara/boxnovel/icon.png index ea736fc..02feed2 100644 Binary files a/public/static/multisrc/madara/boxnovel/icon.png and b/public/static/multisrc/madara/boxnovel/icon.png differ diff --git a/public/static/multisrc/madara/guavaread/icon.png b/public/static/multisrc/madara/guavaread/icon.png index 5116c9d..9ee95d4 100644 Binary files a/public/static/multisrc/madara/guavaread/icon.png and b/public/static/multisrc/madara/guavaread/icon.png differ diff --git a/public/static/multisrc/madara/novelbookid/icon.png b/public/static/multisrc/madara/novelbookid/icon.png index 3810aac..e34b795 100644 Binary files a/public/static/multisrc/madara/novelbookid/icon.png and b/public/static/multisrc/madara/novelbookid/icon.png differ diff --git a/public/static/multisrc/madara/noveloku/icon.png b/public/static/multisrc/madara/noveloku/icon.png index a49af63..7ca383e 100644 Binary files a/public/static/multisrc/madara/noveloku/icon.png and b/public/static/multisrc/madara/noveloku/icon.png differ diff --git a/public/static/multisrc/madara/wbnovel/icon.png b/public/static/multisrc/madara/wbnovel/icon.png index 3904961..d695864 100644 Binary files a/public/static/multisrc/madara/wbnovel/icon.png and b/public/static/multisrc/madara/wbnovel/icon.png differ diff --git a/public/static/multisrc/ranobes/ranobes/icon.png b/public/static/multisrc/ranobes/ranobes/icon.png index 33e7223..38bb730 100644 Binary files a/public/static/multisrc/ranobes/ranobes/icon.png and b/public/static/multisrc/ranobes/ranobes/icon.png differ diff --git a/public/static/multisrc/rulate/erolate/icon.png b/public/static/multisrc/rulate/erolate/icon.png index 726ffa7..9be0ca8 100644 Binary files a/public/static/multisrc/rulate/erolate/icon.png and b/public/static/multisrc/rulate/erolate/icon.png differ diff --git a/public/static/src/en/libread/icon.png b/public/static/src/en/libread/icon.png index 1cda727..02417a6 100644 Binary files a/public/static/src/en/libread/icon.png and b/public/static/src/en/libread/icon.png differ diff --git a/public/static/src/en/mvlempyr/icon.png b/public/static/src/en/mvlempyr/icon.png index 8e95f46..fbee194 100644 Binary files a/public/static/src/en/mvlempyr/icon.png and b/public/static/src/en/mvlempyr/icon.png differ diff --git a/scripts/multisrc/lightnovelwp/README.md b/scripts/multisrc/lightnovelwp/README.md index f0c0620..28e0322 100644 --- a/scripts/multisrc/lightnovelwp/README.md +++ b/scripts/multisrc/lightnovelwp/README.md @@ -1,4 +1,4 @@ -# Madara multisrc generator +# LightnovelWP multisrc generator ## Compatiblity @@ -39,11 +39,11 @@ To add an icon to the source you can just run `npm run icons` to generate all ic Or you can manualy find the icon of the site \ (try the favicon of the site (https://site.com/favicon.ico) most of the times it redirects you to an image named something like "cropped-site-32x32.png" try to access "cropped-site.png" or "site.png" if that did not work you can try to access "https://site.com/wp-json/" at the end of this very long file there should be a "site_icon_url" value ) (don't forget to convert it to png) -and add it to the folder "public/static/multisrc/madara/{sourceID}/icon.png" +and add it to the folder "public/static/multisrc/lightnovelwp/{sourceID}/icon.png" ### filters To add filters to a source you need to run the script "get_filters.js" \ -(`npx node scripts/multisrc/madara/get_filters.js` +(`npx node scripts/multisrc/lightnovelwp/get_filters.js` (if you are at the root of the project) (and you have ran "npm install" before)) and follow the instructions (url is easier and faster but sometimes it doesn't work) diff --git a/scripts/multisrc/lightnovelwp/filters/bacalightnovel.json b/scripts/multisrc/lightnovelwp/filters/bacalightnovel.json index 3a27752..6058c1b 100644 --- a/scripts/multisrc/lightnovelwp/filters/bacalightnovel.json +++ b/scripts/multisrc/lightnovelwp/filters/bacalightnovel.json @@ -5,40 +5,146 @@ "label": "Genre", "value": [], "options": [ - { "label": "Action", "value": "action" }, - { "label": "Adventure", "value": "adventure" }, - { "label": "Comedy", "value": "comedy" }, - { "label": "Drama", "value": "drama" }, - { "label": "Ecchi", "value": "ecchi" }, - { "label": "Fantasy", "value": "fantasy" }, - { "label": "Gender Bender", "value": "gender-bender" }, - { "label": "Harem", "value": "harem" }, - { "label": "Historical", "value": "historical" }, - { "label": "Horror", "value": "horror" }, - { "label": "Isekai", "value": "isekai" }, - { "label": "Josei", "value": "josei" }, - { "label": "Martial Arts", "value": "martial-arts" }, - { "label": "Mature", "value": "mature" }, - { "label": "Mecha", "value": "mecha" }, - { "label": "Mystery", "value": "mystery" }, - { "label": "Psychological", "value": "psychological" }, - { "label": "Romance", "value": "romance" }, - { "label": "School Life", "value": "school-life" }, - { "label": "Sci-fi", "value": "sci-fi" }, - { "label": "Seinen", "value": "seinen" }, - { "label": "Shoujo", "value": "shoujo" }, - { "label": "Shoujo Ai", "value": "shoujo-ai" }, - { "label": "Shounen", "value": "shounen" }, - { "label": "Shounen Ai", "value": "shounen-ai" }, - { "label": "Slice of Life", "value": "slice-of-life" }, - { "label": "Sports", "value": "sports" }, - { "label": "Supernatural", "value": "supernatural" }, - { "label": "Tragedy", "value": "tragedy" }, - { "label": "Wuxia", "value": "wuxia" }, - { "label": "Xianxia", "value": "xianxia" }, - { "label": "Xuanhuan", "value": "xuanhuan" }, - { "label": "Yaoi", "value": "yaoi" }, - { "label": "Yuri", "value": "yuri" } + { + "label": "Action", + "value": "action" + }, + { + "label": "Adult", + "value": "adult" + }, + { + "label": "Adventure", + "value": "adventure" + }, + { + "label": "Comedy", + "value": "comedy" + }, + { + "label": "Drama", + "value": "drama" + }, + { + "label": "Ecchi", + "value": "ecchi" + }, + { + "label": "Fantasy", + "value": "fantasy" + }, + { + "label": "Gender Bender", + "value": "gender-bender" + }, + { + "label": "Harem", + "value": "harem" + }, + { + "label": "Historical", + "value": "historical" + }, + { + "label": "Horror", + "value": "horror" + }, + { + "label": "Isekai", + "value": "isekai" + }, + { + "label": "Josei", + "value": "josei" + }, + { + "label": "Martial Arts", + "value": "martial-arts" + }, + { + "label": "Mature", + "value": "mature" + }, + { + "label": "Mecha", + "value": "mecha" + }, + { + "label": "Mystery", + "value": "mystery" + }, + { + "label": "Psychological", + "value": "psychological" + }, + { + "label": "Romance", + "value": "romance" + }, + { + "label": "School Life", + "value": "school-life" + }, + { + "label": "Sci-fi", + "value": "sci-fi" + }, + { + "label": "Seinen", + "value": "seinen" + }, + { + "label": "Shoujo", + "value": "shoujo" + }, + { + "label": "Shoujo Ai", + "value": "shoujo-ai" + }, + { + "label": "Shounen", + "value": "shounen" + }, + { + "label": "Shounen Ai", + "value": "shounen-ai" + }, + { + "label": "Slice of Life", + "value": "slice-of-life" + }, + { + "label": "Sports", + "value": "sports" + }, + { + "label": "Supernatural", + "value": "supernatural" + }, + { + "label": "Tragedy", + "value": "tragedy" + }, + { + "label": "Wuxia", + "value": "wuxia" + }, + { + "label": "Xianxia", + "value": "xianxia" + }, + { + "label": "Xuanhuan", + "value": "xuanhuan" + }, + { + "label": "Yaoi", + "value": "yaoi" + }, + { + "label": "Yuri", + "value": "yuri" + } ] }, "type[]": { @@ -46,8 +152,18 @@ "label": "Tipe", "value": [], "options": [ - { "label": "", "value": "" }, - { "label": "Novel", "value": "novel" } + { + "label": "", + "value": "" + }, + { + "label": "Manga", + "value": "manga" + }, + { + "label": "Novel", + "value": "novel" + } ] }, "status": { @@ -55,24 +171,58 @@ "label": "Status", "value": "", "options": [ - { "label": "All", "value": "" }, - { "label": "Ongoing", "value": "ongoing" }, - { "label": "Hiatus", "value": "hiatus" }, - { "label": "Completed", "value": "completed" } + { + "label": "All", + "value": "" + }, + { + "label": "Ongoing", + "value": "ongoing" + }, + { + "label": "Hiatus", + "value": "hiatus" + }, + { + "label": "Completed", + "value": "completed" + } ] }, "order": { - "type": "Urutkan", - "label": "Order", + "type": "Picker", + "label": "Urutkan", "value": "", "options": [ - { "label": "Default", "value": "" }, - { "label": "A-Z", "value": "title" }, - { "label": "Z-A", "value": "titlereverse" }, - { "label": "Baru diperbarui", "value": "update" }, - { "label": "Baru ditambahkan", "value": "latest" }, - { "label": "Terpopuler", "value": "popular" } + { + "label": "Default", + "value": "" + }, + { + "label": "A-Z", + "value": "title" + }, + { + "label": "Z-A", + "value": "titlereverse" + }, + { + "label": "Baru diperbarui", + "value": "update" + }, + { + "label": "Baru ditambahkan", + "value": "latest" + }, + { + "label": "Terpopuler", + "value": "popular" + }, + { + "label": "Rating", + "value": "rating" + } ] } } -} +} \ No newline at end of file diff --git a/scripts/multisrc/lightnovelwp/filters/centralnovel.json b/scripts/multisrc/lightnovelwp/filters/centralnovel.json index dc0aa35..19ca5da 100644 --- a/scripts/multisrc/lightnovelwp/filters/centralnovel.json +++ b/scripts/multisrc/lightnovelwp/filters/centralnovel.json @@ -149,6 +149,10 @@ "label": "Seinen", "value": "seinen" }, + { + "label": "Shoujo", + "value": "shoujo" + }, { "label": "Shounen", "value": "shounen" @@ -293,6 +297,10 @@ { "label": "Populares", "value": "popular" + }, + { + "label": "Avaliação", + "value": "rating" } ] } diff --git a/scripts/multisrc/lightnovelwp/filters/cpunovel.json b/scripts/multisrc/lightnovelwp/filters/cpunovel.json index 575df02..85d1638 100644 --- a/scripts/multisrc/lightnovelwp/filters/cpunovel.json +++ b/scripts/multisrc/lightnovelwp/filters/cpunovel.json @@ -9,18 +9,38 @@ "label": "Action", "value": "action" }, + { + "label": "Adult", + "value": "adult" + }, { "label": "Adventure", "value": "adventure" }, + { + "label": "Billionaire", + "value": "billionaire" + }, { "label": "Comedy", "value": "comedy" }, + { + "label": "Contemporary", + "value": "contemporary" + }, { "label": "Drama", "value": "drama" }, + { + "label": "Ecchi", + "value": "ecchi" + }, + { + "label": "Family", + "value": "family" + }, { "label": "Fantasy", "value": "fantasy" @@ -29,14 +49,46 @@ "label": "Gender Bender", "value": "gender-bender" }, + { + "label": "Growth", + "value": "growth" + }, { "label": "Harem", "value": "harem" }, + { + "label": "Hidden Identity", + "value": "hidden-identity" + }, + { + "label": "Historical", + "value": "historical" + }, { "label": "Horror", "value": "horror" }, + { + "label": "Isekai", + "value": "isekai" + }, + { + "label": "Korean", + "value": "korean" + }, + { + "label": "Magic", + "value": "magic" + }, + { + "label": "Manhwa", + "value": "manhwa" + }, + { + "label": "Marriage", + "value": "marriage" + }, { "label": "Martial Arts", "value": "martial-arts" @@ -45,14 +97,42 @@ "label": "Mature", "value": "mature" }, + { + "label": "Mecha", + "value": "mecha" + }, + { + "label": "Murim", + "value": "murim" + }, { "label": "Mystery", "value": "mystery" }, + { + "label": "Overpowered", + "value": "overpowered" + }, { "label": "Psychological", "value": "psychological" }, + { + "label": "Regression", + "value": "regression" + }, + { + "label": "Reincarnation", + "value": "reincarnation" + }, + { + "label": "Revenge", + "value": "revenge" + }, + { + "label": "Rich", + "value": "rich" + }, { "label": "Romance", "value": "romance" @@ -69,6 +149,10 @@ "label": "Seinen", "value": "seinen" }, + { + "label": "Shoujo", + "value": "shoujo" + }, { "label": "Shounen", "value": "shounen" @@ -77,17 +161,53 @@ "label": "Slice of Life", "value": "slice-of-life" }, + { + "label": "Son-in-Law", + "value": "son-in-law" + }, + { + "label": "Sports", + "value": "sports" + }, { "label": "Supernatural", "value": "supernatural" }, + { + "label": "Superpower", + "value": "superpower" + }, { "label": "Tragedy", "value": "tragedy" }, + { + "label": "Urban", + "value": "urban" + }, + { + "label": "Virtual Game", + "value": "virtual-game" + }, + { + "label": "Warrior", + "value": "warrior" + }, + { + "label": "Webtoons", + "value": "webtoons" + }, { "label": "Wuxia", "value": "wuxia" + }, + { + "label": "Xianxia", + "value": "xianxia" + }, + { + "label": "Xuanhuan", + "value": "xuanhuan" } ] }, @@ -96,6 +216,46 @@ "label": "Type", "value": [], "options": [ + { + "label": "Action", + "value": "action" + }, + { + "label": "Adventure", + "value": "adventure" + }, + { + "label": "Chinese Novel", + "value": "chinese-novel" + }, + { + "label": "Fantasy", + "value": "fantasy" + }, + { + "label": "Korean Novel", + "value": "korean-novel" + }, + { + "label": "Light Novel (KR)", + "value": "light-novel-kr" + }, + { + "label": "Martial Arts", + "value": "martial-arts" + }, + { + "label": "Published Novel (KR)", + "value": "published-novel-kr" + }, + { + "label": "Romance", + "value": "romance" + }, + { + "label": "Supernatural", + "value": "supernatural" + }, { "label": "Web Novel", "value": "web-novel" diff --git a/scripts/multisrc/lightnovelwp/filters/daotranslate.json b/scripts/multisrc/lightnovelwp/filters/daotranslate.json index 892bd3e..85d1638 100644 --- a/scripts/multisrc/lightnovelwp/filters/daotranslate.json +++ b/scripts/multisrc/lightnovelwp/filters/daotranslate.json @@ -33,6 +33,10 @@ "label": "Drama", "value": "drama" }, + { + "label": "Ecchi", + "value": "ecchi" + }, { "label": "Family", "value": "family" @@ -41,6 +45,10 @@ "label": "Fantasy", "value": "fantasy" }, + { + "label": "Gender Bender", + "value": "gender-bender" + }, { "label": "Growth", "value": "growth" @@ -157,6 +165,10 @@ "label": "Son-in-Law", "value": "son-in-law" }, + { + "label": "Sports", + "value": "sports" + }, { "label": "Supernatural", "value": "supernatural" @@ -189,6 +201,10 @@ "label": "Wuxia", "value": "wuxia" }, + { + "label": "Xianxia", + "value": "xianxia" + }, { "label": "Xuanhuan", "value": "xuanhuan" diff --git a/scripts/multisrc/lightnovelwp/filters/ellotl.json b/scripts/multisrc/lightnovelwp/filters/ellotl.json index 9fb1ec0..bfd63e9 100644 --- a/scripts/multisrc/lightnovelwp/filters/ellotl.json +++ b/scripts/multisrc/lightnovelwp/filters/ellotl.json @@ -2,28 +2,97 @@ "filters": { "genre[]": { "type": "Checkbox", - "label": "Genres", + "label": "Genre", "value": [], "options": [ - { "label": "Action", "value": "action" }, - { "label": "Adventure", "value": "adventure" }, - { "label": "Comedy", "value": "comedy" }, - { "label": "Drama", "value": "drama" }, - { "label": "Ecchi", "value": "ecchi" }, - { "label": "Fantasy", "value": "fantasy" }, - { "label": "Gender Bender", "value": "gender-bender" }, - { "label": "Harem", "value": "harem" }, - { "label": "Martial Arts", "value": "martial-arts" }, - { "label": "Mature", "value": "mature" }, - { "label": "Mystery", "value": "mystery" }, - { "label": "Psychological", "value": "psychological" }, - { "label": "Romance", "value": "romance" }, - { "label": "School Life", "value": "school-life" }, - { "label": "Seinen", "value": "seinen" }, - { "label": "Shounen", "value": "shounen" }, - { "label": "Slice of Life", "value": "slice-of-life" }, - { "label": "Supernatural", "value": "supernatural" }, - { "label": "Tragedy", "value": "tragedy" } + { + "label": "Action", + "value": "action" + }, + { + "label": "Adult", + "value": "adult" + }, + { + "label": "Adventure", + "value": "adventure" + }, + { + "label": "Comedy", + "value": "comedy" + }, + { + "label": "Drama", + "value": "drama" + }, + { + "label": "Ecchi", + "value": "ecchi" + }, + { + "label": "Fantasy", + "value": "fantasy" + }, + { + "label": "Gender Bender", + "value": "gender-bender" + }, + { + "label": "Harem", + "value": "harem" + }, + { + "label": "Hunter", + "value": "hunter" + }, + { + "label": "Martial Arts", + "value": "martial-arts" + }, + { + "label": "Mature", + "value": "mature" + }, + { + "label": "Modern Fantasy", + "value": "modern-fantasy" + }, + { + "label": "Mystery", + "value": "mystery" + }, + { + "label": "Psychological", + "value": "psychological" + }, + { + "label": "Romance", + "value": "romance" + }, + { + "label": "School Life", + "value": "school-life" + }, + { + "label": "Seinen", + "value": "seinen" + }, + { + "label": "Shounen", + "value": "shounen" + }, + { + "label": "Slice of Life", + "value": "slice-of-life" + }, + { + "label": "Supernatural", + "value": "supernatural" + }, + { + "label": "Tragedy", + "value": "tragedy" + } ] }, "type[]": { @@ -31,10 +100,46 @@ "label": "Type", "value": [], "options": [ - { "label": "Japanese Web Novel", "value": "japanese-web-novel" }, - { "label": "Korean Web Novel", "value": "korean-web-novel" }, - { "label": "Light Novel (JP)", "value": "light-novel-jp" }, - { "label": "Web Novel", "value": "web-novel" } + { + "label": "Fantasy", + "value": "fantasy" + }, + { + "label": "Genius", + "value": "genius" + }, + { + "label": "Hunter", + "value": "hunter" + }, + { + "label": "Japanese Web Novel", + "value": "japanese-web-novel" + }, + { + "label": "Korean Web Novel", + "value": "korean-web-novel" + }, + { + "label": "Light Novel (JP)", + "value": "light-novel-jp" + }, + { + "label": "Mage", + "value": "mage" + }, + { + "label": "Modern Fantasy", + "value": "modern-fantasy" + }, + { + "label": "Reincarnation", + "value": "reincarnation" + }, + { + "label": "Web Novel", + "value": "web-novel" + } ] }, "status": { @@ -42,23 +147,57 @@ "label": "Status", "value": "", "options": [ - { "label": "All", "value": "" }, - { "label": "Ongoing", "value": "ongoing" }, - { "label": "Hiatus", "value": "hiatus" }, - { "label": "Completed", "value": "completed" } + { + "label": "All", + "value": "" + }, + { + "label": "Ongoing", + "value": "ongoing" + }, + { + "label": "Hiatus", + "value": "hiatus" + }, + { + "label": "Completed", + "value": "completed" + } ] }, "order": { "type": "Picker", - "label": "Sort", - "value": "popular", + "label": "Order by", + "value": "", "options": [ - { "label": "Popular", "value": "popular" }, - { "label": "A-Z", "value": "title" }, - { "label": "Z-A", "value": "titlereverse" }, - { "label": "Latest Update", "value": "update" }, - { "label": "Latest Added", "value": "latest" }, - { "label": "Rating", "value": "rating" } + { + "label": "Default", + "value": "" + }, + { + "label": "A-Z", + "value": "title" + }, + { + "label": "Z-A", + "value": "titlereverse" + }, + { + "label": "Latest Update", + "value": "update" + }, + { + "label": "Latest Added", + "value": "latest" + }, + { + "label": "Popular", + "value": "popular" + }, + { + "label": "Rating", + "value": "rating" + } ] } } diff --git a/scripts/multisrc/lightnovelwp/filters/ippotranslations.json b/scripts/multisrc/lightnovelwp/filters/ippotranslations.json index 864f838..7e04ff8 100644 --- a/scripts/multisrc/lightnovelwp/filters/ippotranslations.json +++ b/scripts/multisrc/lightnovelwp/filters/ippotranslations.json @@ -17,6 +17,10 @@ "label": "Comedy", "value": "comedy" }, + { + "label": "drama", + "value": "drama" + }, { "label": "Fantasy", "value": "fantasy" @@ -25,6 +29,10 @@ "label": "Harem", "value": "harem" }, + { + "label": "Martial Arts", + "value": "martial-arts" + }, { "label": "Mystery", "value": "mystery" @@ -45,9 +53,17 @@ "label": "Seinen", "value": "seinen" }, + { + "label": "Shounen", + "value": "shounen" + }, { "label": "Slice of Life", "value": "slice-of-life" + }, + { + "label": "Thriller", + "value": "thriller" } ] }, @@ -56,6 +72,10 @@ "label": "Type", "value": [], "options": [ + { + "label": "Chinese Novel", + "value": "chinese-novel" + }, { "label": "Dropped", "value": "dropped" diff --git a/scripts/multisrc/lightnovelwp/filters/keopitranslations.json b/scripts/multisrc/lightnovelwp/filters/keopitranslations.json new file mode 100644 index 0000000..858d564 --- /dev/null +++ b/scripts/multisrc/lightnovelwp/filters/keopitranslations.json @@ -0,0 +1,116 @@ +{ + "filters": { + "genre[]": { + "type": "Checkbox", + "label": "Genre", + "value": [], + "options": [ + { + "label": "Adult", + "value": "adult" + }, + { + "label": "Comedy", + "value": "comedy" + }, + { + "label": "Drama", + "value": "drama" + }, + { + "label": "Fantasy", + "value": "fantasy" + }, + { + "label": "Historical", + "value": "historical" + }, + { + "label": "Josei", + "value": "josei" + }, + { + "label": "Mature", + "value": "mature" + }, + { + "label": "Modern", + "value": "modern" + }, + { + "label": "Romance", + "value": "romance" + }, + { + "label": "Smut", + "value": "smut" + } + ] + }, + "type[]": { + "type": "Checkbox", + "label": "Type", + "value": [], + "options": [ + { + "label": "Web Novel", + "value": "web-novel" + } + ] + }, + "status": { + "type": "Picker", + "label": "Status", + "value": "", + "options": [ + { + "label": "All", + "value": "" + }, + { + "label": "Ongoing", + "value": "ongoing" + }, + { + "label": "Hiatus", + "value": "hiatus" + }, + { + "label": "Completed", + "value": "completed" + } + ] + }, + "order": { + "type": "Picker", + "label": "Order by", + "value": "", + "options": [ + { + "label": "Default", + "value": "" + }, + { + "label": "A-Z", + "value": "title" + }, + { + "label": "Z-A", + "value": "titlereverse" + }, + { + "label": "Latest Update", + "value": "update" + }, + { + "label": "Latest Added", + "value": "latest" + }, + { + "label": "Popular", + "value": "popular" + } + ] + } + } +} \ No newline at end of file diff --git a/scripts/multisrc/lightnovelwp/filters/knoxt.json b/scripts/multisrc/lightnovelwp/filters/knoxt.json index f94ba0d..df484d8 100644 --- a/scripts/multisrc/lightnovelwp/filters/knoxt.json +++ b/scripts/multisrc/lightnovelwp/filters/knoxt.json @@ -5,6 +5,18 @@ "label": "Genre", "value": [], "options": [ + { + "label": "1v1", + "value": "1v1" + }, + { + "label": "ABO", + "value": "abo" + }, + { + "label": "Absent Parents", + "value": "absent-parents" + }, { "label": "Action", "value": "action" @@ -13,18 +25,102 @@ "label": "Adult", "value": "adult" }, + { + "label": "Adults", + "value": "adults" + }, { "label": "Adventure", "value": "adventure" }, + { + "label": "Adventurers", + "value": "adventurers" + }, + { + "label": "Age gap", + "value": "age-gap" + }, + { + "label": "Age Regression", + "value": "age-regression" + }, + { + "label": "Aggressive Characters", + "value": "aggressive-characters" + }, + { + "label": "Amnesia", + "value": "amnesia" + }, { "label": "Ancient times", "value": "ancient-times" }, + { + "label": "Anti-social Protagonist", + "value": "anti-social-protagonist" + }, + { + "label": "Appearance Changes", + "value": "appearance-changes" + }, + { + "label": "Arranged Marriage", + "value": "arranged-marriage" + }, + { + "label": "Artificial Intelligence", + "value": "artificial-intelligence" + }, + { + "label": "Artists", + "value": "artists" + }, + { + "label": "Beautiful bottom", + "value": "beautiful-bottom" + }, + { + "label": "Betrayal", + "value": "betrayal" + }, + { + "label": "Bickering Couple", + "value": "bickering-couple" + }, { "label": "BL", "value": "bl" }, + { + "label": "BL (Boys' Love)", + "value": "bl-boys-love" + }, + { + "label": "Blind Dates", + "value": "blind-dates" + }, + { + "label": "Blind Protagonist", + "value": "blind-protagonist" + }, + { + "label": "Boys love", + "value": "boys-love" + }, + { + "label": "Business Management", + "value": "business-management" + }, + { + "label": "Businessmen", + "value": "businessmen" + }, + { + "label": "Calm Protagonist", + "value": "calm-protagonist" + }, { "label": "Campus", "value": "campus" @@ -33,26 +129,178 @@ "label": "carefree protagonist", "value": "carefree-protagonist" }, + { + "label": "Caring Protagonist", + "value": "caring-protagonist" + }, { "label": "celebrity", "value": "celebrity" }, + { + "label": "CEO", + "value": "ceo" + }, + { + "label": "Character Growth", + "value": "character-growth" + }, + { + "label": "Charming Protagonist", + "value": "charming-protagonist" + }, + { + "label": "Child Abuse", + "value": "child-abuse" + }, + { + "label": "Childcare", + "value": "childcare" + }, + { + "label": "Childhood Friends", + "value": "childhood-friends" + }, + { + "label": "Childhood Love", + "value": "childhood-love" + }, + { + "label": "Childish Protagonist", + "value": "childish-protagonist" + }, { "label": "Chinese novel", "value": "chinese-novel" }, + { + "label": "Clever Protagonist", + "value": "clever-protagonist" + }, + { + "label": "Clingy Lover", + "value": "clingy-lover" + }, + { + "label": "Clumsy Love Interests", + "value": "clumsy-love-interests" + }, + { + "label": "Cohabitation", + "value": "cohabitation" + }, + { + "label": "Cold Love Interests", + "value": "cold-love-interests" + }, + { + "label": "Cold Protagonist", + "value": "cold-protagonist" + }, + { + "label": "comedic undertone", + "value": "comedic-undertone" + }, { "label": "Comedy", "value": "comedy" }, + { + "label": "Complex Family Relationships", + "value": "complex-family-relationships" + }, + { + "label": "Confident Protagonist", + "value": "confident-protagonist" + }, + { + "label": "Conflicting Loyalties", + "value": "conflicting-loyalties" + }, { "label": "Cooking", "value": "cooking" }, + { + "label": "Couple Growth", + "value": "couple-growth" + }, + { + "label": "Crime", + "value": "crime" + }, + { + "label": "Cross-dressing", + "value": "cross-dressing" + }, + { + "label": "Cryostasis", + "value": "cryostasis" + }, + { + "label": "Cute Children", + "value": "cute-children" + }, + { + "label": "Cute Protagonist", + "value": "cute-protagonist" + }, + { + "label": "Cute Story", + "value": "cute-story" + }, + { + "label": "Determined Protagonist", + "value": "determined-protagonist" + }, + { + "label": "Devoted Love Interests", + "value": "devoted-love-interests" + }, + { + "label": "Different Social Status", + "value": "different-social-status" + }, + { + "label": "Divorce", + "value": "divorce" + }, + { + "label": "Doctors", + "value": "doctors" + }, + { + "label": "Doting love interest", + "value": "doting-love-interest" + }, + { + "label": "Doting Love Interests", + "value": "doting-love-interests" + }, + { + "label": "Doting Parents", + "value": "doting-parents" + }, + { + "label": "Double AA", + "value": "double-aa" + }, { "label": "Drama", "value": "drama" }, + { + "label": "Dystopia", + "value": "dystopia" + }, + { + "label": "empowerment fiction", + "value": "empowerment-fiction" + }, + { + "label": "Enemies Become Lovers", + "value": "enemies-become-lovers" + }, { "label": "Entertaiment circle", "value": "entertaiment-circle" @@ -61,14 +309,34 @@ "label": "Entertainment circle", "value": "entertainment-circle" }, + { + "label": "Evolution", + "value": "evolution" + }, + { + "label": "Family Conflict", + "value": "family-conflict" + }, { "label": "Fantasy", "value": "fantasy" }, + { + "label": "Fated Lovers", + "value": "fated-lovers" + }, { "label": "Fiction", "value": "fiction" }, + { + "label": "Fictional", + "value": "fictional" + }, + { + "label": "First Love", + "value": "first-love" + }, { "label": "futuristic setting", "value": "futuristic-setting" @@ -85,14 +353,46 @@ "label": "General", "value": "general" }, + { + "label": "Genetic Modifications", + "value": "genetic-modifications" + }, { "label": "GL", "value": "gl" }, + { + "label": "Gore", + "value": "gore" + }, + { + "label": "Handsome Male Lead", + "value": "handsome-male-lead" + }, + { + "label": "Hard-Working Protagonist", + "value": "hard-working-protagonist" + }, { "label": "Harem", "value": "harem" }, + { + "label": "HE", + "value": "he" + }, + { + "label": "Heartwarming", + "value": "heartwarming" + }, + { + "label": "Hiding True Abilities", + "value": "hiding-true-abilities" + }, + { + "label": "Hiding True Identity", + "value": "hiding-true-identity" + }, { "label": "historic love", "value": "historic-love" @@ -105,6 +405,10 @@ "label": "Horror", "value": "horror" }, + { + "label": "Human-Nonhuman Relationship", + "value": "human-nonhuman-relationship" + }, { "label": "humor", "value": "humor" @@ -113,6 +417,10 @@ "label": "Idol", "value": "idol" }, + { + "label": "Inferiority Complex", + "value": "inferiority-complex" + }, { "label": "infrastructure", "value": "infrastructure" @@ -121,30 +429,98 @@ "label": "interstellar", "value": "interstellar" }, + { + "label": "Isekai", + "value": "isekai" + }, + { + "label": "Jealousy", + "value": "jealousy" + }, { "label": "Josei", "value": "josei" }, + { + "label": "Kind love interest", + "value": "kind-love-interest" + }, + { + "label": "Kind Love Interests", + "value": "kind-love-interests" + }, + { + "label": "Lawyers", + "value": "lawyers" + }, + { + "label": "lighthearted drama", + "value": "lighthearted-drama" + }, + { + "label": "Loner Protagonist", + "value": "loner-protagonist" + }, + { + "label": "Long Separations", + "value": "long-separations" + }, + { + "label": "Love Affair", + "value": "love-affair" + }, + { + "label": "Love and hate", + "value": "love-and-hate" + }, { "label": "love at first sight", "value": "love-at-first-sight" }, + { + "label": "Love Interest Falls in Love First", + "value": "love-interest-falls-in-love-first" + }, { "label": "love romance", "value": "love-romance" }, + { + "label": "Lovers Reunited", + "value": "lovers-reunited" + }, { "label": "Male protagonist", "value": "male-protagonist" }, + { + "label": "Male Yandere", + "value": "male-yandere" + }, + { + "label": "Manipulative Characters", + "value": "manipulative-characters" + }, + { + "label": "Manly Gay Couple", + "value": "manly-gay-couple" + }, { "label": "Marriage", "value": "marriage" }, + { + "label": "Marriage of Convenience", + "value": "marriage-of-convenience" + }, { "label": "Martial Arts", "value": "martial-arts" }, + { + "label": "Mary Sue", + "value": "mary-sue" + }, { "label": "Mature", "value": "mature" @@ -153,26 +529,134 @@ "label": "Mecha", "value": "mecha" }, + { + "label": "Medical Knowledge", + "value": "medical-knowledge" + }, { "label": "Modern", "value": "modern" }, + { + "label": "Modern day", + "value": "modern-day" + }, { "label": "Mpreg", "value": "mpreg" }, + { + "label": "Multiple Reincarnated Individuals", + "value": "multiple-reincarnated-individuals" + }, + { + "label": "Multiple worlds", + "value": "multiple-worlds" + }, + { + "label": "Mute Character", + "value": "mute-character" + }, + { + "label": "mutual salvation", + "value": "mutual-salvation" + }, { "label": "Mystery", "value": "mystery" }, + { + "label": "Mystery Solving", + "value": "mystery-solving" + }, + { + "label": "Naive Protagonist", + "value": "naive-protagonist" + }, + { + "label": "Near-Death Experience", + "value": "near-death-experience" + }, + { + "label": "Obsessive Love", + "value": "obsessive-love" + }, + { + "label": "Older Love Interests", + "value": "older-love-interests" + }, { "label": "Omegaverse", "value": "omegaverse" }, + { + "label": "Orphans", + "value": "orphans" + }, { "label": "Otherworld fantasy", "value": "otherworld-fantasy" }, + { + "label": "Overpowered protagonist", + "value": "overpowered-protagonist" + }, + { + "label": "Past Plays a Big Role", + "value": "past-plays-a-big-role" + }, + { + "label": "Past Trauma", + "value": "past-trauma" + }, + { + "label": "Persistent Love Interests", + "value": "persistent-love-interests" + }, + { + "label": "Poor Protagonist", + "value": "poor-protagonist" + }, + { + "label": "Possessive Characters", + "value": "possessive-characters" + }, + { + "label": "post apocalypse", + "value": "post-apocalypse" + }, + { + "label": "Post-apocalyptic", + "value": "post-apocalyptic" + }, + { + "label": "Post-apocalyptic background", + "value": "post-apocalyptic-background" + }, + { + "label": "Power Couple", + "value": "power-couple" + }, + { + "label": "Pretend Lovers", + "value": "pretend-lovers" + }, + { + "label": "Professional", + "value": "professional" + }, + { + "label": "Prosecutor", + "value": "prosecutor" + }, + { + "label": "Protagonist Falls in Love First", + "value": "protagonist-falls-in-love-first" + }, + { + "label": "Protagonist Strong from the Start", + "value": "protagonist-strong-from-the-start" + }, { "label": "Psychological", "value": "psychological" @@ -185,10 +669,22 @@ "label": "REBIRTH", "value": "rebirth" }, + { + "label": "Redemption", + "value": "redemption" + }, { "label": "Regression", "value": "regression" }, + { + "label": "Reincarnation", + "value": "reincarnation" + }, + { + "label": "reunion", + "value": "reunion" + }, { "label": "Reverse Harem", "value": "reverse-harem" @@ -197,6 +693,10 @@ "label": "Romance", "value": "romance" }, + { + "label": "S*x Friends", + "value": "sx-friends" + }, { "label": "School Life", "value": "school-life" @@ -205,6 +705,30 @@ "label": "Sci-fi", "value": "sci-fi" }, + { + "label": "sci-fi elements", + "value": "sci-fi-elements" + }, + { + "label": "science fiction", + "value": "science-fiction" + }, + { + "label": "Second Chance", + "value": "second-chance" + }, + { + "label": "Secret Crush", + "value": "secret-crush" + }, + { + "label": "Secret Identity", + "value": "secret-identity" + }, + { + "label": "Secret Relationship", + "value": "secret-relationship" + }, { "label": "Seinen", "value": "seinen" @@ -213,6 +737,10 @@ "label": "shonen ai", "value": "shonen-ai" }, + { + "label": "Short Story", + "value": "short-story" + }, { "label": "Shoujo", "value": "shoujo" @@ -245,10 +773,38 @@ "label": "Smut", "value": "smut" }, + { + "label": "soul-swapping", + "value": "soul-swapping" + }, { "label": "Sports", "value": "sports" }, + { + "label": "Stoic Characters", + "value": "stoic-characters" + }, + { + "label": "Straight Seme", + "value": "straight-seme" + }, + { + "label": "Straight uke", + "value": "straight-uke" + }, + { + "label": "Straight- Gay", + "value": "straight-gay" + }, + { + "label": "Stubborn Protagonist", + "value": "stubborn-protagonist" + }, + { + "label": "Sugar daddy", + "value": "sugar-daddy" + }, { "label": "Supernatural", "value": "supernatural" @@ -257,26 +813,74 @@ "label": "suspense", "value": "suspense" }, + { + "label": "System Administrator", + "value": "system-administrator" + }, + { + "label": "Thriller", + "value": "thriller" + }, + { + "label": "Time Skip", + "value": "time-skip" + }, { "label": "Tragedy", "value": "tragedy" }, + { + "label": "Tragic Past", + "value": "tragic-past" + }, { "label": "Transmigration", "value": "transmigration" }, + { + "label": "Transplanted Memories", + "value": "transplanted-memories" + }, + { + "label": "Tsundere", + "value": "tsundere" + }, + { + "label": "Unconditional Love", + "value": "unconditional-love" + }, { "label": "Unlimited flow", "value": "unlimited-flow" }, + { + "label": "Unrequited Love", + "value": "unrequited-love" + }, { "label": "Urban Life", "value": "urban-life" }, + { + "label": "weak to strong", + "value": "weak-to-strong" + }, + { + "label": "wealthy characters", + "value": "wealthy-characters" + }, { "label": "Western", "value": "western" }, + { + "label": "work", + "value": "work" + }, + { + "label": "workplace", + "value": "workplace" + }, { "label": "Wu xia", "value": "wu-xia" @@ -297,6 +901,14 @@ "label": "Yaoi", "value": "yaoi" }, + { + "label": "Younger love interest", + "value": "younger-love-interest" + }, + { + "label": "Younger Love Interests", + "value": "younger-love-interests" + }, { "label": "Yuri", "value": "yuri" @@ -316,6 +928,14 @@ "label": "Chinese Novel", "value": "chinese-novel" }, + { + "label": "Cthulhu", + "value": "cthulhu" + }, + { + "label": "Double AA", + "value": "double-aa" + }, { "label": "historic love", "value": "historic-love" @@ -336,6 +956,10 @@ "label": "Light Novel (CN)", "value": "light-novel-cn" }, + { + "label": "Light Novel (JP)", + "value": "light-novel-jp" + }, { "label": "Original Novel", "value": "original-novel" @@ -352,6 +976,10 @@ "label": "Quick Transmigration", "value": "quick-transmigration" }, + { + "label": "Remove term: Chinese Novel Chinese NovelRemove term: Web Novel Web Novel", + "value": "remove-term-chinese-novel-chinese-novelremove-term-web-novel-web-novel" + }, { "label": "romance", "value": "romance" diff --git a/scripts/multisrc/lightnovelwp/filters/kolnovel.json b/scripts/multisrc/lightnovelwp/filters/kolnovel.json index 152e5e4..a7dac8d 100644 --- a/scripts/multisrc/lightnovelwp/filters/kolnovel.json +++ b/scripts/multisrc/lightnovelwp/filters/kolnovel.json @@ -5,6 +5,14 @@ "label": "تصنيف", "value": [], "options": [ + { + "label": "Romance", + "value": "romance" + }, + { + "label": "Shounen Ai", + "value": "shounen-ai" + }, { "label": "Wuxia", "value": "wuxia" @@ -17,14 +25,26 @@ "label": "XUANHUAN", "value": "xuanhuan" }, + { + "label": "أبطال خارقين", + "value": "أبطال-خارقين" + }, { "label": "أكشن", "value": "action" }, + { + "label": "ألعاب", + "value": "ألعاب" + }, { "label": "إثارة", "value": "excitement" }, + { + "label": "إسلامي", + "value": "إسلامي" + }, { "label": "إنتقال الى عالم أخر", "value": "isekai" @@ -33,14 +53,38 @@ "label": "إيتشي", "value": "etchi" }, + { + "label": "اكاديمي", + "value": "اكاديمي" + }, + { + "label": "اكشن", + "value": "اكشن" + }, { "label": "الخيال العلمي", "value": "sci-fi" }, + { + "label": "انتقام", + "value": "انتقام" + }, + { + "label": "بطل مضاد", + "value": "بطل-مضاد" + }, + { + "label": "بناء مملكة", + "value": "بناء-مملكة" + }, { "label": "بوليسي", "value": "policy" }, + { + "label": "تاريخ", + "value": "تاريخ" + }, { "label": "تاريخي", "value": "historical" @@ -49,10 +93,22 @@ "label": "تحقيقات", "value": "تحقيق" }, + { + "label": "تشويق", + "value": "تشويق" + }, { "label": "تقمص شخصيات", "value": "rpg" }, + { + "label": "تلاعب", + "value": "تلاعب" + }, + { + "label": "تناسخ", + "value": "تناسخ" + }, { "label": "جريمة", "value": "crime" @@ -73,6 +129,22 @@ "label": "حياة مدرسية", "value": "school-life" }, + { + "label": "خارق للطبيعة", + "value": "خارق-للطبيعة" + }, + { + "label": "خيال", + "value": "خيال" + }, + { + "label": "خيال علمي", + "value": "خيال-علمي" + }, + { + "label": "خيالي", + "value": "خيالي" + }, { "label": "خيالي(فانتازيا)", "value": "fantasy" @@ -81,18 +153,50 @@ "label": "دراما", "value": "drama" }, + { + "label": "درامي", + "value": "درامي" + }, { "label": "رعب", "value": "horror" }, + { + "label": "رعب كوني", + "value": "رعب-كوني" + }, + { + "label": "رعب نفسي", + "value": "رعب-نفسي" + }, { "label": "رومانسي", "value": "romantic" }, + { + "label": "رومنسية", + "value": "رومنسية" + }, + { + "label": "زيانشيا", + "value": "زيانشيا" + }, + { + "label": "ستيم بانك", + "value": "ستيم-بانك" + }, { "label": "سحر", "value": "magic" }, + { + "label": "سفر عبر الزمن", + "value": "سفر-عبر-الزمن" + }, + { + "label": "سياسة", + "value": "سياسة" + }, { "label": "سينن", "value": "senen" @@ -117,14 +221,26 @@ "label": "ظواهر خارقة للطبيعة", "value": "supernatural" }, + { + "label": "عائلي", + "value": "عائلي" + }, { "label": "غموض", "value": "mysteries" }, + { + "label": "فانتازي", + "value": "فانتازي" + }, { "label": "فانتازيا", "value": "فانتازيا" }, + { + "label": "فنتازيا", + "value": "فنتازيا" + }, { "label": "فنون القتال", "value": "martial-arts" @@ -133,6 +249,10 @@ "label": "قصة قصيرة", "value": "قصة-قصيرة" }, + { + "label": "قوة خارقة", + "value": "قوة-خارقة" + }, { "label": "قوى خارقة", "value": "superpower" @@ -141,14 +261,34 @@ "label": "كوميدي", "value": "comedy" }, + { + "label": "كوميديا", + "value": "كوميديا" + }, + { + "label": "كوميدية", + "value": "كوميدية" + }, { "label": "مأساوي", "value": "tragedy" }, + { + "label": "مؤامرة", + "value": "مؤامرة" + }, { "label": "ما بعد الكارثة", "value": "after-the-disaster" }, + { + "label": "ما بعد نهاية العالم", + "value": "ما-بعد-نهاية-العالم" + }, + { + "label": "مضاد البطل", + "value": "مضاد-البطل" + }, { "label": "مغامرة", "value": "adventure" @@ -161,6 +301,10 @@ "label": "ناضج", "value": "mature" }, + { + "label": "نظام", + "value": "نظام" + }, { "label": "نفسي", "value": "psychological" @@ -168,6 +312,10 @@ { "label": "ون شوت", "value": "ون-شوت" + }, + { + "label": "ووكسيا", + "value": "ووكسيا" } ] }, @@ -184,6 +332,10 @@ "label": "رواية لايت", "value": "light-novel" }, + { + "label": "رواية مؤلفة", + "value": "رواية-مؤلفة" + }, { "label": "رواية ويب", "value": "web-novel" @@ -200,6 +352,10 @@ "label": "كورية", "value": "korean" }, + { + "label": "مؤلفة", + "value": "مؤلفة" + }, { "label": "ون شوت", "value": "ون-شوت" @@ -261,6 +417,10 @@ { "label": "الرائجة", "value": "popular" + }, + { + "label": "التقييم", + "value": "rating" } ] } diff --git a/scripts/multisrc/lightnovelwp/filters/lazygirltranslations.json b/scripts/multisrc/lightnovelwp/filters/lazygirltranslations.json new file mode 100644 index 0000000..7f70280 --- /dev/null +++ b/scripts/multisrc/lightnovelwp/filters/lazygirltranslations.json @@ -0,0 +1,200 @@ +{ + "filters": { + "genre[]": { + "type": "Checkbox", + "label": "Genre", + "value": [], + "options": [ + { + "label": "Action", + "value": "action" + }, + { + "label": "Adult", + "value": "adult" + }, + { + "label": "Adventure", + "value": "adventure" + }, + { + "label": "BL", + "value": "bl" + }, + { + "label": "Comedy", + "value": "comedy" + }, + { + "label": "Drama", + "value": "drama" + }, + { + "label": "Fantasy", + "value": "fantasy" + }, + { + "label": "Gender Bender", + "value": "gender-bender" + }, + { + "label": "Harem", + "value": "harem" + }, + { + "label": "Historical", + "value": "historical" + }, + { + "label": "Horror", + "value": "horror" + }, + { + "label": "Josei", + "value": "josei" + }, + { + "label": "Martial Arts", + "value": "martial-arts" + }, + { + "label": "Mature", + "value": "mature" + }, + { + "label": "Mystery", + "value": "mystery" + }, + { + "label": "Psychological", + "value": "psychological" + }, + { + "label": "Romance", + "value": "romance" + }, + { + "label": "School Life", + "value": "school-life" + }, + { + "label": "Sci-fi", + "value": "sci-fi" + }, + { + "label": "Shoujo", + "value": "shoujo" + }, + { + "label": "Shounen Ai", + "value": "shounen-ai" + }, + { + "label": "Slice of Life", + "value": "slice-of-life" + }, + { + "label": "Smut", + "value": "smut" + }, + { + "label": "Sports", + "value": "sports" + }, + { + "label": "Supernatural", + "value": "supernatural" + }, + { + "label": "Tragedy", + "value": "tragedy" + }, + { + "label": "Wuxia", + "value": "wuxia" + }, + { + "label": "Xianxia", + "value": "xianxia" + }, + { + "label": "Yaoi", + "value": "yaoi" + } + ] + }, + "type[]": { + "type": "Checkbox", + "label": "Type", + "value": [], + "options": [ + { + "label": "Chinese Novel", + "value": "chinese-novel" + }, + { + "label": "Web Novel", + "value": "web-novel" + } + ] + }, + "status": { + "type": "Picker", + "label": "Status", + "value": "", + "options": [ + { + "label": "All", + "value": "" + }, + { + "label": "Ongoing", + "value": "ongoing" + }, + { + "label": "Hiatus", + "value": "hiatus" + }, + { + "label": "Completed", + "value": "completed" + } + ] + }, + "order": { + "type": "Picker", + "label": "Order by", + "value": "", + "options": [ + { + "label": "Default", + "value": "" + }, + { + "label": "A-Z", + "value": "title" + }, + { + "label": "Z-A", + "value": "titlereverse" + }, + { + "label": "Latest Update", + "value": "update" + }, + { + "label": "Latest Added", + "value": "latest" + }, + { + "label": "Popular", + "value": "popular" + }, + { + "label": "Rating", + "value": "rating" + } + ] + } + } +} \ No newline at end of file diff --git a/scripts/multisrc/lightnovelwp/filters/moonlightnovel.json b/scripts/multisrc/lightnovelwp/filters/moonlightnovel.json index d690c5d..5be8326 100644 --- a/scripts/multisrc/lightnovelwp/filters/moonlightnovel.json +++ b/scripts/multisrc/lightnovelwp/filters/moonlightnovel.json @@ -18,8 +18,8 @@ "value": "adventure" }, { - "label": "Amnesia", - "value": "amnesia" + "label": "Apocalypse", + "value": "apocalypse" }, { "label": "Childcare", @@ -29,6 +29,10 @@ "label": "Comedy", "value": "comedy" }, + { + "label": "Contemporary Romance", + "value": "contemporary-romance" + }, { "label": "Drama", "value": "drama" @@ -37,18 +41,6 @@ "label": "Fantasy", "value": "fantasy" }, - { - "label": "fantasy of", - "value": "fantasy-of" - }, - { - "label": "Fate", - "value": "fate" - }, - { - "label": "Fiction", - "value": "fiction" - }, { "label": "Gender Bender", "value": "gender-bender" @@ -73,10 +65,6 @@ "label": "Josei", "value": "josei" }, - { - "label": "Magic", - "value": "magic" - }, { "label": "Martial Arts", "value": "martial-arts" @@ -97,6 +85,10 @@ "label": "Mystery", "value": "mystery" }, + { + "label": "Omegaverse", + "value": "omegaverse" + }, { "label": "Psychological", "value": "psychological" @@ -109,25 +101,13 @@ "label": "Revenge", "value": "revenge" }, - { - "label": "Rofan", - "value": "rofan" - }, { "label": "Romance", "value": "romance" }, { - "label": "Romance Fantasy", - "value": "romance-fantasy" - }, - { - "label": "Romantic Comedy", - "value": "romantic-comedy" - }, - { - "label": "Royalty", - "value": "royalty" + "label": "salvation", + "value": "salvation" }, { "label": "School Life", @@ -137,6 +117,10 @@ "label": "Sci-fi", "value": "sci-fi" }, + { + "label": "Seinen", + "value": "seinen" + }, { "label": "Shoujo", "value": "shoujo" @@ -161,10 +145,6 @@ "label": "Supernatural", "value": "supernatural" }, - { - "label": "Suspense", - "value": "suspense" - }, { "label": "Tragedy", "value": "tragedy" @@ -173,6 +153,10 @@ "label": "Transmigration", "value": "transmigration" }, + { + "label": "Western Style", + "value": "western-style" + }, { "label": "Xianxia", "value": "xianxia" @@ -185,10 +169,6 @@ "label": "Yaoi", "value": "yaoi" }, - { - "label": "Younger Man", - "value": "younger-man" - }, { "label": "Yuri", "value": "yuri" @@ -223,14 +203,6 @@ { "label": "Web Novel", "value": "web-novel" - }, - { - "label": "Web Novel (KR)", - "value": "web-novel-kr" - }, - { - "label": "Webnovel", - "value": "webnovel" } ] }, diff --git a/scripts/multisrc/lightnovelwp/filters/novelsknight.json b/scripts/multisrc/lightnovelwp/filters/novelsknight.json index b01d2bc..3f156bb 100644 --- a/scripts/multisrc/lightnovelwp/filters/novelsknight.json +++ b/scripts/multisrc/lightnovelwp/filters/novelsknight.json @@ -9,10 +9,6 @@ "label": "Fan fiction", "value": "fan-fiction" }, - { - "label": "fanqienovel", - "value": "fanqienovel" - }, { "label": "fanstay", "value": "fanstay" @@ -21,54 +17,18 @@ "label": "fantasy", "value": "fantasy" }, - { - "label": "football", - "value": "football" - }, { "label": "horror", "value": "horror" }, - { - "label": "Huyen Huyen", - "value": "huyen-huyen" - }, - { - "label": "light novel", - "value": "light-novel" - }, - { - "label": "living", - "value": "living" - }, { "label": "martial arts", "value": "martial-arts" }, - { - "label": "Mature", - "value": "mature" - }, - { - "label": "military", - "value": "military" - }, { "label": "military history", "value": "military-history" }, - { - "label": "Mystical Demons", - "value": "mystical-demons" - }, - { - "label": "nba", - "value": "nba" - }, - { - "label": "roamnce", - "value": "roamnce" - }, { "label": "romance", "value": "romance" @@ -81,65 +41,17 @@ "label": "Sci-fi online games", "value": "sci-fi-online-games" }, - { - "label": "Science fiction", - "value": "science-fiction" - }, { "label": "Science fiction online game", "value": "science-fiction-online-game" }, - { - "label": "speech", - "value": "speech" - }, { "label": "Sports", "value": "sports" }, - { - "label": "tanmi doujin", - "value": "tanmi-doujin" - }, - { - "label": "Terrifying supernatural", - "value": "terrifying-supernatural" - }, - { - "label": "urabn", - "value": "urabn" - }, { "label": "urban", "value": "urban" - }, - { - "label": "Urban Fiction", - "value": "urban-fiction" - }, - { - "label": "urban;romance", - "value": "urbanromance" - }, - { - "label": "wuxia", - "value": "wuxia" - }, - { - "label": "wuxia fairy", - "value": "wuxia-fairy" - }, - { - "label": "Xuan Feng weak initiation", - "value": "xuan-feng-weak-initiation" - }, - { - "label": "Xuanhuan", - "value": "xuanhuan" - }, - { - "label": "Youth Campus", - "value": "youth-campus" } ] }, @@ -168,6 +80,10 @@ "label": "Entertainment", "value": "entertainment" }, + { + "label": "f", + "value": "f" + }, { "label": "falo", "value": "falo" @@ -180,6 +96,10 @@ "label": "fan fiction", "value": "fan-fiction" }, + { + "label": "fanqie", + "value": "fanqie" + }, { "label": "fanqienovel", "value": "fanqienovel" @@ -188,6 +108,10 @@ "label": "Fantasy", "value": "fantasy" }, + { + "label": "faoo", + "value": "faoo" + }, { "label": "Football", "value": "football" @@ -256,6 +180,10 @@ "label": "qimao", "value": "qimao" }, + { + "label": "qq", + "value": "qq" + }, { "label": "romance", "value": "romance" diff --git a/scripts/multisrc/lightnovelwp/filters/systemtranslation.json b/scripts/multisrc/lightnovelwp/filters/systemtranslation.json index 9d1f6cd..563d196 100644 --- a/scripts/multisrc/lightnovelwp/filters/systemtranslation.json +++ b/scripts/multisrc/lightnovelwp/filters/systemtranslation.json @@ -13,6 +13,10 @@ "label": "Adventure", "value": "adventure" }, + { + "label": "Anime", + "value": "anime" + }, { "label": "Anime & Comics", "value": "anime-comics" @@ -21,6 +25,10 @@ "label": "Comedy", "value": "comedy" }, + { + "label": "Comic", + "value": "comic" + }, { "label": "Drama", "value": "drama" @@ -29,6 +37,10 @@ "label": "Fan-Fiction", "value": "fan-fiction" }, + { + "label": "Fanfiction", + "value": "fanfiction" + }, { "label": "Fantasy", "value": "fantasy" @@ -45,6 +57,10 @@ "label": "Isekai", "value": "isekai" }, + { + "label": "Manga", + "value": "manga" + }, { "label": "Martial Arts", "value": "martial-arts" @@ -53,6 +69,10 @@ "label": "Mystery", "value": "mystery" }, + { + "label": "Romance", + "value": "romance" + }, { "label": "School Life", "value": "school-life" @@ -69,6 +89,10 @@ "label": "Supernatural", "value": "supernatural" }, + { + "label": "System", + "value": "system" + }, { "label": "Tragedy", "value": "tragedy" @@ -91,7 +115,12 @@ "type": "Checkbox", "label": "Type", "value": [], - "options": [] + "options": [ + { + "label": "Webnovel (FF)", + "value": "webnovel-ff" + } + ] }, "status": { "type": "Picker", diff --git a/scripts/multisrc/lightnovelwp/filters/universalnovel.json b/scripts/multisrc/lightnovelwp/filters/universalnovel.json index 8e2b9e7..435846a 100644 --- a/scripts/multisrc/lightnovelwp/filters/universalnovel.json +++ b/scripts/multisrc/lightnovelwp/filters/universalnovel.json @@ -33,6 +33,10 @@ "label": "Drama", "value": "drama" }, + { + "label": "Ecchi", + "value": "ecchi" + }, { "label": "entertainment", "value": "entertainment" @@ -41,6 +45,10 @@ "label": "Fantasy", "value": "fantasy" }, + { + "label": "Funny", + "value": "funny" + }, { "label": "Gender Bender", "value": "gender-bender" @@ -65,6 +73,10 @@ "label": "Isekai", "value": "isekai" }, + { + "label": "Jose", + "value": "jose" + }, { "label": "Josei", "value": "josei" @@ -137,6 +149,10 @@ "label": "Survival", "value": "survival" }, + { + "label": "Tragedy", + "value": "tragedy" + }, { "label": "Transmigration", "value": "transmigration" @@ -153,6 +169,10 @@ "label": "Xianxia", "value": "xianxia" }, + { + "label": "Xuanhuan", + "value": "xuanhuan" + }, { "label": "Yaoi", "value": "yaoi" diff --git a/scripts/multisrc/lightnovelwp/filters/vandytranslate.json b/scripts/multisrc/lightnovelwp/filters/vandytranslate.json new file mode 100644 index 0000000..972b7e8 --- /dev/null +++ b/scripts/multisrc/lightnovelwp/filters/vandytranslate.json @@ -0,0 +1,200 @@ +{ + "filters": { + "genre[]": { + "type": "Checkbox", + "label": "Genre", + "value": [], + "options": [ + { + "label": "Action", + "value": "action" + }, + { + "label": "Adult", + "value": "adult" + }, + { + "label": "Adventure", + "value": "adventure" + }, + { + "label": "Comedy", + "value": "comedy" + }, + { + "label": "Drama", + "value": "drama" + }, + { + "label": "Fantasy", + "value": "fantasy" + }, + { + "label": "Harem", + "value": "harem" + }, + { + "label": "Historical", + "value": "historical" + }, + { + "label": "Isekai", + "value": "isekai" + }, + { + "label": "Josei", + "value": "josei" + }, + { + "label": "Martial Arts", + "value": "martial-arts" + }, + { + "label": "Mature", + "value": "mature" + }, + { + "label": "Medical", + "value": "medical" + }, + { + "label": "Modern", + "value": "modern" + }, + { + "label": "Mystery", + "value": "mystery" + }, + { + "label": "Psychological", + "value": "psychological" + }, + { + "label": "Romance", + "value": "romance" + }, + { + "label": "School Life", + "value": "school-life" + }, + { + "label": "Sci-fi", + "value": "sci-fi" + }, + { + "label": "Seinen", + "value": "seinen" + }, + { + "label": "Shoujo", + "value": "shoujo" + }, + { + "label": "Shounen", + "value": "shounen" + }, + { + "label": "Shounen Ai", + "value": "shounen-ai" + }, + { + "label": "Slice of Life", + "value": "slice-of-life" + }, + { + "label": "Supernatural", + "value": "supernatural" + }, + { + "label": "Tragedy", + "value": "tragedy" + }, + { + "label": "Wuxia", + "value": "wuxia" + }, + { + "label": "Yaoi", + "value": "yaoi" + } + ] + }, + "type[]": { + "type": "Checkbox", + "label": "Type", + "value": [], + "options": [ + { + "label": "Martial Arts", + "value": "martial-arts" + }, + { + "label": "Published Novel (KR)", + "value": "published-novel-kr" + }, + { + "label": "Web Novel", + "value": "web-novel" + } + ] + }, + "status": { + "type": "Picker", + "label": "Status", + "value": "", + "options": [ + { + "label": "All", + "value": "" + }, + { + "label": "Ongoing", + "value": "ongoing" + }, + { + "label": "Hiatus", + "value": "hiatus" + }, + { + "label": "Completed", + "value": "completed" + } + ] + }, + "order": { + "type": "Picker", + "label": "Order by", + "value": "", + "options": [ + { + "label": "Default", + "value": "" + }, + { + "label": "A-Z", + "value": "title" + }, + { + "label": "Z-A", + "value": "titlereverse" + }, + { + "label": "Latest Update", + "value": "update" + }, + { + "label": "Latest Added", + "value": "latest" + }, + { + "label": "Popular", + "value": "popular" + }, + { + "label": "Rating", + "value": "rating" + } + ] + } + } +} \ No newline at end of file diff --git a/scripts/multisrc/lightnovelwp/sources.json b/scripts/multisrc/lightnovelwp/sources.json index f5ad028..965a498 100644 --- a/scripts/multisrc/lightnovelwp/sources.json +++ b/scripts/multisrc/lightnovelwp/sources.json @@ -48,7 +48,7 @@ }, { "id": "daotranslate", - "sourceSite": "https://daotranslate.net/", + "sourceSite": "https://daotranslate.com/", "sourceName": "DaoTranslate", "options": { "lang": "English", @@ -149,9 +149,9 @@ "sourceSite": "https://moonlightnovel.com/", "sourceName": "Moonlight Novels", "options": { + "versionIncrements": 1, "lang": "English", - "reverseChapters": true, - "seriesPath": "/novels/" + "reverseChapters": true } }, { @@ -224,7 +224,7 @@ "sourceName": "Namevt", "options": { "reverseChapters": true, - "seriesPath": "/seri/", + "seriesPath": "seri", "lang": "Turkish" } }, @@ -234,8 +234,25 @@ "sourceName": "Kodeks Library", "options": { "reverseChapters": true, - "seriesPath": "series", "lang": "Turkish" } + }, + { + "id": "vandytranslate", + "sourceSite": "https://vandytranslate.com", + "sourceName": "Vandy Translate", + "options": { + "reverseChapters": true, + "lang": "English" + } + }, + { + "id": "lazygirltranslations", + "sourceSite": "https://lazygirltranslations.com", + "sourceName": "Lazy Girl Translations", + "options": { + "reverseChapters": false, + "lang": "English" + } } ] \ No newline at end of file diff --git a/scripts/multisrc/lightnovelwp/template.ts b/scripts/multisrc/lightnovelwp/template.ts index cdbc737..9887273 100644 --- a/scripts/multisrc/lightnovelwp/template.ts +++ b/scripts/multisrc/lightnovelwp/template.ts @@ -37,7 +37,7 @@ class LightNovelWPPlugin implements Plugin.PluginBase { this.icon = `multisrc/lightnovelwp/${metadata.id.toLowerCase()}/icon.png`; this.site = metadata.sourceSite; const versionIncrements = metadata.options?.versionIncrements || 0; - this.version = `1.1.${4 + versionIncrements}`; + this.version = `1.1.${5 + versionIncrements}`; this.options = metadata.options ?? ({} as LightNovelWPOptions); this.filters = metadata.filters satisfies Filters; } @@ -50,7 +50,10 @@ class LightNovelWPPlugin implements Plugin.PluginBase { } async safeFecth(url: string, search: boolean): Promise { - const r = await fetchApi(url); + const urlParts = url.split('://'); + const protocol = urlParts.shift(); + const sanitizedUri = urlParts[0].replace(/\/\//g, '/'); + const r = await fetchApi(protocol + '://' + sanitizedUri); if (!r.ok && search != true) throw new Error( 'Could not reach site (' + r.status + ') try to open in webview.', @@ -67,7 +70,9 @@ class LightNovelWPPlugin implements Plugin.PluginBase { title == 'Just a moment...' || title == 'Redirecting...')) ) - throw new Error('Captcha error, please open in webview'); + throw new Error( + 'Captcha error, please open in webview (or the website has changed url)', + ); return data; } @@ -85,10 +90,22 @@ class LightNovelWPPlugin implements Plugin.PluginBase { const novelCover = article.match(//) || []; + let novelPath; + if (novelUrl.includes(this.site)) { + novelPath = novelUrl.replace(this.site, ''); + } else { + // TODO: report website new url to server + let novelParts = novelUrl.split('/'); + novelParts.shift(); + novelParts.shift(); + novelParts.shift(); + novelPath = novelParts.join('/'); + } + novels.push({ name: novelName, cover: novelCover[2] || novelCover[1] || defaultCover, - path: novelUrl.replace(this.site, ''), + path: novelPath, }); } }); @@ -103,7 +120,7 @@ class LightNovelWPPlugin implements Plugin.PluginBase { showLatestNovels, }: Plugin.PopularNovelsOptions, ): Promise { - const seriesPath = this.options?.seriesPath ?? 'series/'; + const seriesPath = this.options?.seriesPath ?? '/series/'; let url = this.site + seriesPath + '?page=' + pageNo; if (!filters) filters = this.filters || {}; if (showLatestNovels) url += '&order=latest'; @@ -133,7 +150,7 @@ class LightNovelWPPlugin implements Plugin.PluginBase { }; let isParsingGenres = false; let isReadingGenre = false; - let isReadingSummary = false; + let isReadingSummary = 0; let isParsingInfo = false; let isReadingInfo = false; let isReadingAuthor = false; @@ -166,7 +183,7 @@ class LightNovelWPPlugin implements Plugin.PluginBase { (attribs['class'] === 'entry-content' || attribs['itemprop'] === 'description') ) { - isReadingSummary = true; + isReadingSummary++; } // author and status else if (attribs['class'] === 'spe' || attribs['class'] === 'serl') { isParsingInfo = true; @@ -194,6 +211,8 @@ class LightNovelWPPlugin implements Plugin.PluginBase { } else if (attribs['class'] === 'epl-price') { isReadingChapterInfo = 4; } + } else if (isReadingSummary && name === 'div') { + isReadingSummary++; } }, ontext(data) { @@ -203,7 +222,7 @@ class LightNovelWPPlugin implements Plugin.PluginBase { novel.genres += data + ', '; } } // summary - else if (isReadingSummary) { + else if (isReadingSummary === 1) { novel.summary += data.trim(); } // author and status else if (isParsingInfo) { @@ -322,7 +341,7 @@ class LightNovelWPPlugin implements Plugin.PluginBase { if (name === 'br') { novel.summary += '\n'; } else if (name === 'div') { - isReadingSummary = false; + isReadingSummary--; } } // author and status else if (isParsingInfo) { @@ -391,7 +410,7 @@ class LightNovelWPPlugin implements Plugin.PluginBase { } return ( data - .match(/([\s\S]*?)<\/p>/g) ?.join('\n') || '' );