From 48423668702c6b85e7b513c9297145145ad6027c Mon Sep 17 00:00:00 2001 From: Justin COLLON <48163201+error7404@users.noreply.github.com> Date: Thu, 7 Mar 2024 06:46:29 +0100 Subject: [PATCH] Madara rework & Lightnovelwp update (#819) * fix hizomanga * added filters for systemtranslation & whitemoonlightnovels * fix typos in lightnovelwp README * fix arnovel domain change * Madra: - added version Increments for sources * Madara rework: - filters in seperate folder - added generator for filters - added README - removed path in sources (getting genres from advanced search) - added checking for Captcha errors - simplified code - better filter management - madara/icons/*.png => madara/*.png * lightnovelwp: - better checks for Captcha - better log * madra: - removed console.log * Madara: - get_filter.ts better log * Madara added sources: - Pancho Translations (SP) - Salmon Latte (EN) - Asura Light Novel (EN) - Fans Translations (EN) - Novel Lucky (TH) - new Thai language * freewebnovel: - Web NOVEL => Free Web Novel * Madara: - icon filename from id instead of name * Madara: - added filters for new sources --- .../firstkissnovel.png => 1stkissnovel.png} | Bin icons/multisrc/madara/{icons => }/armtl.png | Bin icons/multisrc/madara/{icons => }/arnovel.png | Bin icons/multisrc/madara/asuralightnovel.png | Bin 0 -> 8972 bytes .../multisrc/madara/{icons => }/boxnovel.png | Bin .../madara/{icons => }/clicknovel.png | Bin .../madara/{icons => }/cratenovel.png | Bin .../multisrc/madara/{icons => }/daonovel.png | Bin icons/multisrc/madara/{icons => }/e-novel.png | Bin .../madara/{icons => }/fanstranslations.png | Bin .../multisrc/madara/{icons => }/foxaholic.png | Bin .../freenovelme.png => freenovel.me.png} | Bin .../multisrc/madara/{icons => }/guavaread.png | Bin .../multisrc/madara/{icons => }/hizomanga.png | Bin icons/multisrc/madara/{icons => }/kiniga.png | Bin .../madara/{icons => }/latestnovel.png | Bin .../madara/{icons => }/lightnovelupdates.png | Bin .../lightnovelheaven.png => lnheaven.png} | Bin .../madara/{icons => }/lunarletters.png | Bin .../multisrc/madara/{icons => }/meionovel.png | Bin .../multisrc/madara/{icons => }/morenovel.png | Bin .../multisrc/madara/{icons => }/mostnovel.png | Bin .../multisrc/madara/{icons => }/mtl-novel.png | Bin .../madara/{icons => }/mtlnovel.club.png | Bin ...mysticalseries.png => mysticalmerries.png} | Bin ...osekaitranslations.png => neosekaitls.png} | Bin .../madara/{icons => }/nitromanga.png | Bin ...cturnetranslations.png => nocturnetls.png} | Bin .../{icons => }/noobchantranslation.png | Bin icons/multisrc/madara/novel-lucky.png | Bin 0 -> 15348 bytes .../multisrc/madara/{icons => }/novel4up.png | Bin .../madara/{icons => }/novelmultiverse.png | Bin .../multisrc/madara/{icons => }/novelr18.png | Bin .../novelroom.net.png => novelroom.png} | Bin .../multisrc/madara/{icons => }/novelstic.png | Bin .../{icons/noveltranslate.png => noveltl.png} | Bin icons/multisrc/madara/{icons => }/onlymtl.png | Bin icons/multisrc/madara/panchotranslations.png | Bin 0 -> 21238 bytes .../madara/{icons => }/readwebnovels.png | Bin icons/multisrc/madara/{icons => }/riwyat.png | Bin icons/multisrc/madara/salmonlatte.png | Bin 0 -> 13470 bytes .../sleepytranslations.png => sleepttls.png} | Bin .../multisrc/madara/{icons => }/sonicmtl.png | Bin .../madara/{icons => }/sugarbabies.png | Bin ...capetranslations.png => sweetescapetl.png} | Bin .../madara/{icons => }/teamxnovel.png | Bin .../madara/{icons => }/turkcelightnovels.png | Bin icons/multisrc/madara/{icons => }/wbnovel.png | Bin icons/multisrc/madara/webnoveloku.png | Bin 0 -> 6404 bytes .../webnovellover.png => webnovelover.png} | Bin .../madara/{icons => }/wuxiaworld.site.png | Bin .../zetrotranslation.png => zetrotl.png} | Bin .../{icons/zinnnovel.png => zinnovel.png} | Bin libs/languages.ts | 1 + plugins/english/earlynovel.ts | 2 +- plugins/english/freewebnovel.ts | 2 +- plugins/thai/.gitkeep | 0 scripts/multisrc/lightnovelwp/README.md | 2 +- .../filters/systemtranslation.json | 151 + .../filters/whitemoonlightnovels.json | 163 + scripts/multisrc/lightnovelwp/generator.ts | 4 +- scripts/multisrc/lightnovelwp/template.ts | 2 +- scripts/multisrc/madara/README.md | 30 + .../multisrc/madara/filters/1stkissnovel.json | 376 ++ .../madara/filters/LightNovelUpdates.json | 344 ++ scripts/multisrc/madara/filters/ar-mtl.json | 48 + scripts/multisrc/madara/filters/arnovel.json | 220 + .../madara/filters/asuralightnovel.json | 180 + scripts/multisrc/madara/filters/boxnovel.json | 240 + scripts/multisrc/madara/filters/e-novel.json | 192 + scripts/multisrc/madara/filters/fanTLS.json | 200 + .../madara/filters/fanstranslations.json | 200 + .../multisrc/madara/filters/foxaholic.json | 276 + .../multisrc/madara/filters/guavaread.json | 236 + .../multisrc/madara/filters/hizomanga.json | 244 + scripts/multisrc/madara/filters/kiniga.json | 320 + scripts/multisrc/madara/filters/lnheaven.json | 280 + .../multisrc/madara/filters/lunarletters.json | 124 + .../multisrc/madara/filters/meionovel.json | 272 + .../multisrc/madara/filters/morenovel.json | 244 + .../multisrc/madara/filters/mostnovel.json | 372 ++ .../multisrc/madara/filters/mtl-novel.json | 48 + .../madara/filters/mtlnovel.club.json | 244 + .../madara/filters/mysticalmerries.json | 180 + .../multisrc/madara/filters/neosekaiTLS.json | 168 + .../multisrc/madara/filters/nitromanga.json | 336 ++ .../multisrc/madara/filters/novel-lucky.json | 384 ++ scripts/multisrc/madara/filters/novel4up.json | 212 + scripts/multisrc/madara/filters/novelTL.json | 360 ++ .../madara/filters/novelmultiverse.json | 316 + .../madara/filters/panchotranslations.json | 336 ++ scripts/multisrc/madara/filters/riwyat.json | 292 + .../multisrc/madara/filters/salmonlatte.json | 224 + .../multisrc/madara/filters/sleeptTLS.json | 268 + scripts/multisrc/madara/filters/sonicmtl.json | 300 + .../madara/filters/sweetEscapeTL.json | 160 + .../madara/filters/turkcelightnovels.json | 192 + scripts/multisrc/madara/filters/wbnovel.json | 256 + .../multisrc/madara/filters/webnovelover.json | 240 + .../madara/filters/wuxiaworld.site.json | 288 + scripts/multisrc/madara/filters/zetroTL.json | 192 + scripts/multisrc/madara/generator.ts | 45 +- scripts/multisrc/madara/get_filters.ts | 181 + scripts/multisrc/madara/sources.json | 5211 +---------------- scripts/multisrc/madara/template.ts | 119 +- 105 files changed, 10016 insertions(+), 5261 deletions(-) rename icons/multisrc/madara/{icons/firstkissnovel.png => 1stkissnovel.png} (100%) rename icons/multisrc/madara/{icons => }/armtl.png (100%) rename icons/multisrc/madara/{icons => }/arnovel.png (100%) create mode 100644 icons/multisrc/madara/asuralightnovel.png rename icons/multisrc/madara/{icons => }/boxnovel.png (100%) rename icons/multisrc/madara/{icons => }/clicknovel.png (100%) rename icons/multisrc/madara/{icons => }/cratenovel.png (100%) rename icons/multisrc/madara/{icons => }/daonovel.png (100%) rename icons/multisrc/madara/{icons => }/e-novel.png (100%) rename icons/multisrc/madara/{icons => }/fanstranslations.png (100%) rename icons/multisrc/madara/{icons => }/foxaholic.png (100%) rename icons/multisrc/madara/{icons/freenovelme.png => freenovel.me.png} (100%) rename icons/multisrc/madara/{icons => }/guavaread.png (100%) rename icons/multisrc/madara/{icons => }/hizomanga.png (100%) rename icons/multisrc/madara/{icons => }/kiniga.png (100%) rename icons/multisrc/madara/{icons => }/latestnovel.png (100%) rename icons/multisrc/madara/{icons => }/lightnovelupdates.png (100%) rename icons/multisrc/madara/{icons/lightnovelheaven.png => lnheaven.png} (100%) rename icons/multisrc/madara/{icons => }/lunarletters.png (100%) rename icons/multisrc/madara/{icons => }/meionovel.png (100%) rename icons/multisrc/madara/{icons => }/morenovel.png (100%) rename icons/multisrc/madara/{icons => }/mostnovel.png (100%) rename icons/multisrc/madara/{icons => }/mtl-novel.png (100%) rename icons/multisrc/madara/{icons => }/mtlnovel.club.png (100%) rename icons/multisrc/madara/{icons/mysticalseries.png => mysticalmerries.png} (100%) rename icons/multisrc/madara/{icons/neosekaitranslations.png => neosekaitls.png} (100%) rename icons/multisrc/madara/{icons => }/nitromanga.png (100%) rename icons/multisrc/madara/{icons/nocturnetranslations.png => nocturnetls.png} (100%) rename icons/multisrc/madara/{icons => }/noobchantranslation.png (100%) create mode 100644 icons/multisrc/madara/novel-lucky.png rename icons/multisrc/madara/{icons => }/novel4up.png (100%) rename icons/multisrc/madara/{icons => }/novelmultiverse.png (100%) rename icons/multisrc/madara/{icons => }/novelr18.png (100%) rename icons/multisrc/madara/{icons/novelroom.net.png => novelroom.png} (100%) rename icons/multisrc/madara/{icons => }/novelstic.png (100%) rename icons/multisrc/madara/{icons/noveltranslate.png => noveltl.png} (100%) rename icons/multisrc/madara/{icons => }/onlymtl.png (100%) create mode 100644 icons/multisrc/madara/panchotranslations.png rename icons/multisrc/madara/{icons => }/readwebnovels.png (100%) rename icons/multisrc/madara/{icons => }/riwyat.png (100%) create mode 100644 icons/multisrc/madara/salmonlatte.png rename icons/multisrc/madara/{icons/sleepytranslations.png => sleepttls.png} (100%) rename icons/multisrc/madara/{icons => }/sonicmtl.png (100%) rename icons/multisrc/madara/{icons => }/sugarbabies.png (100%) rename icons/multisrc/madara/{icons/sweetescapetranslations.png => sweetescapetl.png} (100%) rename icons/multisrc/madara/{icons => }/teamxnovel.png (100%) rename icons/multisrc/madara/{icons => }/turkcelightnovels.png (100%) rename icons/multisrc/madara/{icons => }/wbnovel.png (100%) create mode 100644 icons/multisrc/madara/webnoveloku.png rename icons/multisrc/madara/{icons/webnovellover.png => webnovelover.png} (100%) rename icons/multisrc/madara/{icons => }/wuxiaworld.site.png (100%) rename icons/multisrc/madara/{icons/zetrotranslation.png => zetrotl.png} (100%) rename icons/multisrc/madara/{icons/zinnnovel.png => zinnovel.png} (100%) create mode 100644 plugins/thai/.gitkeep create mode 100644 scripts/multisrc/lightnovelwp/filters/systemtranslation.json create mode 100644 scripts/multisrc/lightnovelwp/filters/whitemoonlightnovels.json create mode 100644 scripts/multisrc/madara/README.md create mode 100644 scripts/multisrc/madara/filters/1stkissnovel.json create mode 100644 scripts/multisrc/madara/filters/LightNovelUpdates.json create mode 100644 scripts/multisrc/madara/filters/ar-mtl.json create mode 100644 scripts/multisrc/madara/filters/arnovel.json create mode 100644 scripts/multisrc/madara/filters/asuralightnovel.json create mode 100644 scripts/multisrc/madara/filters/boxnovel.json create mode 100644 scripts/multisrc/madara/filters/e-novel.json create mode 100644 scripts/multisrc/madara/filters/fanTLS.json create mode 100644 scripts/multisrc/madara/filters/fanstranslations.json create mode 100644 scripts/multisrc/madara/filters/foxaholic.json create mode 100644 scripts/multisrc/madara/filters/guavaread.json create mode 100644 scripts/multisrc/madara/filters/hizomanga.json create mode 100644 scripts/multisrc/madara/filters/kiniga.json create mode 100644 scripts/multisrc/madara/filters/lnheaven.json create mode 100644 scripts/multisrc/madara/filters/lunarletters.json create mode 100644 scripts/multisrc/madara/filters/meionovel.json create mode 100644 scripts/multisrc/madara/filters/morenovel.json create mode 100644 scripts/multisrc/madara/filters/mostnovel.json create mode 100644 scripts/multisrc/madara/filters/mtl-novel.json create mode 100644 scripts/multisrc/madara/filters/mtlnovel.club.json create mode 100644 scripts/multisrc/madara/filters/mysticalmerries.json create mode 100644 scripts/multisrc/madara/filters/neosekaiTLS.json create mode 100644 scripts/multisrc/madara/filters/nitromanga.json create mode 100644 scripts/multisrc/madara/filters/novel-lucky.json create mode 100644 scripts/multisrc/madara/filters/novel4up.json create mode 100644 scripts/multisrc/madara/filters/novelTL.json create mode 100644 scripts/multisrc/madara/filters/novelmultiverse.json create mode 100644 scripts/multisrc/madara/filters/panchotranslations.json create mode 100644 scripts/multisrc/madara/filters/riwyat.json create mode 100644 scripts/multisrc/madara/filters/salmonlatte.json create mode 100644 scripts/multisrc/madara/filters/sleeptTLS.json create mode 100644 scripts/multisrc/madara/filters/sonicmtl.json create mode 100644 scripts/multisrc/madara/filters/sweetEscapeTL.json create mode 100644 scripts/multisrc/madara/filters/turkcelightnovels.json create mode 100644 scripts/multisrc/madara/filters/wbnovel.json create mode 100644 scripts/multisrc/madara/filters/webnovelover.json create mode 100644 scripts/multisrc/madara/filters/wuxiaworld.site.json create mode 100644 scripts/multisrc/madara/filters/zetroTL.json create mode 100644 scripts/multisrc/madara/get_filters.ts diff --git a/icons/multisrc/madara/icons/firstkissnovel.png b/icons/multisrc/madara/1stkissnovel.png similarity index 100% rename from icons/multisrc/madara/icons/firstkissnovel.png rename to icons/multisrc/madara/1stkissnovel.png diff --git a/icons/multisrc/madara/icons/armtl.png b/icons/multisrc/madara/armtl.png similarity index 100% rename from icons/multisrc/madara/icons/armtl.png rename to icons/multisrc/madara/armtl.png diff --git a/icons/multisrc/madara/icons/arnovel.png b/icons/multisrc/madara/arnovel.png similarity index 100% rename from icons/multisrc/madara/icons/arnovel.png rename to icons/multisrc/madara/arnovel.png diff --git a/icons/multisrc/madara/asuralightnovel.png b/icons/multisrc/madara/asuralightnovel.png new file mode 100644 index 0000000000000000000000000000000000000000..219eec3f8e0e6ec55df55abe0fc3c31350c9ebda GIT binary patch literal 8972 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

Gp0kE3fV5S_3waE*$>$qV(KJFxl8qKyGji@ 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 DwcI)b literal 0 HcmV?d00001 diff --git a/icons/multisrc/madara/icons/novel4up.png b/icons/multisrc/madara/novel4up.png similarity index 100% rename from icons/multisrc/madara/icons/novel4up.png rename to icons/multisrc/madara/novel4up.png diff --git a/icons/multisrc/madara/icons/novelmultiverse.png b/icons/multisrc/madara/novelmultiverse.png similarity index 100% rename from icons/multisrc/madara/icons/novelmultiverse.png rename to icons/multisrc/madara/novelmultiverse.png diff --git a/icons/multisrc/madara/icons/novelr18.png b/icons/multisrc/madara/novelr18.png similarity index 100% rename from icons/multisrc/madara/icons/novelr18.png rename to icons/multisrc/madara/novelr18.png diff --git a/icons/multisrc/madara/icons/novelroom.net.png b/icons/multisrc/madara/novelroom.png similarity index 100% rename from icons/multisrc/madara/icons/novelroom.net.png rename to icons/multisrc/madara/novelroom.png diff --git a/icons/multisrc/madara/icons/novelstic.png b/icons/multisrc/madara/novelstic.png similarity index 100% rename from icons/multisrc/madara/icons/novelstic.png rename to icons/multisrc/madara/novelstic.png diff --git a/icons/multisrc/madara/icons/noveltranslate.png b/icons/multisrc/madara/noveltl.png similarity index 100% rename from icons/multisrc/madara/icons/noveltranslate.png rename to icons/multisrc/madara/noveltl.png diff --git a/icons/multisrc/madara/icons/onlymtl.png b/icons/multisrc/madara/onlymtl.png similarity index 100% rename from icons/multisrc/madara/icons/onlymtl.png rename to icons/multisrc/madara/onlymtl.png diff --git a/icons/multisrc/madara/panchotranslations.png b/icons/multisrc/madara/panchotranslations.png new file mode 100644 index 0000000000000000000000000000000000000000..850ecd3962bc4fa34773868bf30d63b8c2f57670 GIT binary patch literal 21238 zcmV*bKvchpP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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�j}6x!S#Jz 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

fxQ$ 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 A@Bjb+ literal 0 HcmV?d00001 diff --git a/icons/multisrc/madara/icons/sleepytranslations.png b/icons/multisrc/madara/sleepttls.png similarity index 100% rename from icons/multisrc/madara/icons/sleepytranslations.png rename to icons/multisrc/madara/sleepttls.png diff --git a/icons/multisrc/madara/icons/sonicmtl.png b/icons/multisrc/madara/sonicmtl.png similarity index 100% rename from icons/multisrc/madara/icons/sonicmtl.png rename to icons/multisrc/madara/sonicmtl.png diff --git a/icons/multisrc/madara/icons/sugarbabies.png b/icons/multisrc/madara/sugarbabies.png similarity index 100% rename from icons/multisrc/madara/icons/sugarbabies.png rename to icons/multisrc/madara/sugarbabies.png diff --git a/icons/multisrc/madara/icons/sweetescapetranslations.png b/icons/multisrc/madara/sweetescapetl.png similarity index 100% rename from icons/multisrc/madara/icons/sweetescapetranslations.png rename to icons/multisrc/madara/sweetescapetl.png diff --git a/icons/multisrc/madara/icons/teamxnovel.png b/icons/multisrc/madara/teamxnovel.png similarity index 100% rename from icons/multisrc/madara/icons/teamxnovel.png rename to icons/multisrc/madara/teamxnovel.png diff --git a/icons/multisrc/madara/icons/turkcelightnovels.png b/icons/multisrc/madara/turkcelightnovels.png similarity index 100% rename from icons/multisrc/madara/icons/turkcelightnovels.png rename to icons/multisrc/madara/turkcelightnovels.png diff --git a/icons/multisrc/madara/icons/wbnovel.png b/icons/multisrc/madara/wbnovel.png similarity index 100% rename from icons/multisrc/madara/icons/wbnovel.png rename to icons/multisrc/madara/wbnovel.png diff --git a/icons/multisrc/madara/webnoveloku.png b/icons/multisrc/madara/webnoveloku.png new file mode 100644 index 0000000000000000000000000000000000000000..76ef112963410b9e2c44b02fcc3e7ac90d4dce96 GIT binary patch literal 6404 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 MR!yc#$~f?U0Pko7I{*Lx literal 0 HcmV?d00001 diff --git a/icons/multisrc/madara/icons/webnovellover.png b/icons/multisrc/madara/webnovelover.png similarity index 100% rename from icons/multisrc/madara/icons/webnovellover.png rename to icons/multisrc/madara/webnovelover.png diff --git a/icons/multisrc/madara/icons/wuxiaworld.site.png b/icons/multisrc/madara/wuxiaworld.site.png similarity index 100% rename from icons/multisrc/madara/icons/wuxiaworld.site.png rename to icons/multisrc/madara/wuxiaworld.site.png diff --git a/icons/multisrc/madara/icons/zetrotranslation.png b/icons/multisrc/madara/zetrotl.png similarity index 100% rename from icons/multisrc/madara/icons/zetrotranslation.png rename to icons/multisrc/madara/zetrotl.png diff --git a/icons/multisrc/madara/icons/zinnnovel.png b/icons/multisrc/madara/zinnovel.png similarity index 100% rename from icons/multisrc/madara/icons/zinnnovel.png rename to icons/multisrc/madara/zinnovel.png diff --git a/libs/languages.ts b/libs/languages.ts index dda10af..abc6e63 100644 --- a/libs/languages.ts +++ b/libs/languages.ts @@ -10,6 +10,7 @@ export const languages = { Portuguese: "Português", Russian: "Русский", Spanish: "Español", + Thai: "ไทย", Turkish: "Türkçe", Ukrainian: "Українська", Vietnamese: "Tiếng Việt", diff --git a/plugins/english/earlynovel.ts b/plugins/english/earlynovel.ts index 59cee81..4437c10 100644 --- a/plugins/english/earlynovel.ts +++ b/plugins/english/earlynovel.ts @@ -7,7 +7,7 @@ class EarlyNovelPlugin implements Plugin.PagePlugin { id = "earlynovel"; name = "Early Novel"; version = "1.0.0"; - icon = "multisrc/madara/icons/latestnovel.png"; + icon = "multisrc/madara/latestnovel.png"; site = "https://earlynovel.net/"; parseNovels(loadedCheerio: CheerioAPI){ diff --git a/plugins/english/freewebnovel.ts b/plugins/english/freewebnovel.ts index 112a5fc..cd184eb 100644 --- a/plugins/english/freewebnovel.ts +++ b/plugins/english/freewebnovel.ts @@ -6,7 +6,7 @@ import qs from "qs"; class FreeWebNovel implements Plugin.PluginBase { id = "FWN.com"; - name = "Web NOVEL"; + name = "Free Web Novel"; site = "https://freewebnovel.com"; version = "1.0.0"; icon = "src/en/freewebnovel/icon.png"; diff --git a/plugins/thai/.gitkeep b/plugins/thai/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/scripts/multisrc/lightnovelwp/README.md b/scripts/multisrc/lightnovelwp/README.md index 268c92a..8ba8026 100644 --- a/scripts/multisrc/lightnovelwp/README.md +++ b/scripts/multisrc/lightnovelwp/README.md @@ -28,5 +28,5 @@ and add it to the folder "icons/multisrc/lightnovelwp" named as the id of the so To add filters to a source you need to run the script "get_filters.ts" \ (./node_modules/.bin/ts-node scripts/multisrc/lightnovelwp/get_filters.ts -(if you are in the root of the project) (and you have run "npm install" before)) +(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/systemtranslation.json b/scripts/multisrc/lightnovelwp/filters/systemtranslation.json new file mode 100644 index 0000000..9d1f6cd --- /dev/null +++ b/scripts/multisrc/lightnovelwp/filters/systemtranslation.json @@ -0,0 +1,151 @@ +{ + "filters": { + "genre[]": { + "type": "Checkbox", + "label": "Genre", + "value": [], + "options": [ + { + "label": "Action", + "value": "action" + }, + { + "label": "Adventure", + "value": "adventure" + }, + { + "label": "Anime & Comics", + "value": "anime-comics" + }, + { + "label": "Comedy", + "value": "comedy" + }, + { + "label": "Drama", + "value": "drama" + }, + { + "label": "Fan-Fiction", + "value": "fan-fiction" + }, + { + "label": "Fantasy", + "value": "fantasy" + }, + { + "label": "Gender Bender", + "value": "gender-bender" + }, + { + "label": "Harem", + "value": "harem" + }, + { + "label": "Isekai", + "value": "isekai" + }, + { + "label": "Martial Arts", + "value": "martial-arts" + }, + { + "label": "Mystery", + "value": "mystery" + }, + { + "label": "School Life", + "value": "school-life" + }, + { + "label": "Sci-fi", + "value": "sci-fi" + }, + { + "label": "Seinen", + "value": "seinen" + }, + { + "label": "Supernatural", + "value": "supernatural" + }, + { + "label": "Tragedy", + "value": "tragedy" + }, + { + "label": "Wuxia", + "value": "wuxia" + }, + { + "label": "Xianxia", + "value": "xianxia" + }, + { + "label": "Xuanhuan", + "value": "xuanhuan" + } + ] + }, + "type[]": { + "type": "Checkbox", + "label": "Type", + "value": [], + "options": [] + }, + "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/whitemoonlightnovels.json b/scripts/multisrc/lightnovelwp/filters/whitemoonlightnovels.json new file mode 100644 index 0000000..4d60499 --- /dev/null +++ b/scripts/multisrc/lightnovelwp/filters/whitemoonlightnovels.json @@ -0,0 +1,163 @@ +{ + "filters": { + "genre[]": { + "type": "Checkbox", + "label": "Genre", + "value": [], + "options": [ + { + "label": "Action", + "value": "action" + }, + { + "label": "Adventure", + "value": "adventure" + }, + { + "label": "Boy's Love", + "value": "boys-love" + }, + { + "label": "Business", + "value": "business" + }, + { + "label": "Completed", + "value": "completed" + }, + { + "label": "Cultivation", + "value": "cultivation" + }, + { + "label": "Dropped", + "value": "dropped" + }, + { + "label": "Entertainment Industry", + "value": "entertainment-industry" + }, + { + "label": "Gaming", + "value": "gaming" + }, + { + "label": "Ger", + "value": "ger" + }, + { + "label": "Modern", + "value": "modern" + }, + { + "label": "Omegaverse", + "value": "omegaverse" + }, + { + "label": "Rebirth", + "value": "rebirth" + }, + { + "label": "Revenge", + "value": "revenge" + }, + { + "label": "Romance", + "value": "romance" + }, + { + "label": "School Life", + "value": "school-life" + }, + { + "label": "Supernatural", + "value": "supernatural" + }, + { + "label": "Survival", + "value": "survival" + }, + { + "label": "System", + "value": "system" + }, + { + "label": "Transmigration", + "value": "transmigration" + }, + { + "label": "Unlimited Flow", + "value": "unlimited-flow" + }, + { + "label": "Variety Show", + "value": "variety-show" + } + ] + }, + "type[]": { + "type": "Checkbox", + "label": "Type", + "value": [], + "options": [] + }, + "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/generator.ts b/scripts/multisrc/lightnovelwp/generator.ts index 8be8981..57988aa 100644 --- a/scripts/multisrc/lightnovelwp/generator.ts +++ b/scripts/multisrc/lightnovelwp/generator.ts @@ -11,7 +11,7 @@ export const generateAll: ScrpitGeneratorFunction = function (name) { filters = require(`./filters/${source.id}`); source.filters = filters.filters; } catch (e) {} - console.log(`[${name}] Generating:`, source.id, source.filters? "\t🔎with filters🔍" : "\t🚫no filters🚫"); + console.log(`[${name}] Generating: ${source.id}${" ".repeat(20 - source.id.length)} ${source.filters ? "🔎with filters🔍" : "🚫no filters🚫"}`); return generator(source); }); }; @@ -22,7 +22,7 @@ const generator = function generator(source: LightNovelWPMetadata) { }); const pluginScript = ` - ${LightNovelWPTemplate} +${LightNovelWPTemplate} const plugin = new LightNovelWPPlugin(${JSON.stringify(source)}); export default plugin; `.trim(); diff --git a/scripts/multisrc/lightnovelwp/template.ts b/scripts/multisrc/lightnovelwp/template.ts index 1fa1745..3c0fc4d 100644 --- a/scripts/multisrc/lightnovelwp/template.ts +++ b/scripts/multisrc/lightnovelwp/template.ts @@ -47,7 +47,7 @@ class LightNovelWPPlugin implements Plugin.PluginBase { const $ = load(await r.text()); const title = $("title").text().trim(); if (this.getHostname(url) != this.getHostname(r.url) || - title == "Bot Verification" || title == "You are being redirected...") + title == "Bot Verification" || title == "You are being redirected..." || title == "Un instant..." || title == "Just a moment..." || title == "Redirecting...") throw new Error("Captcha error, please open in webview"); return ($); diff --git a/scripts/multisrc/madara/README.md b/scripts/multisrc/madara/README.md new file mode 100644 index 0000000..1e35814 --- /dev/null +++ b/scripts/multisrc/madara/README.md @@ -0,0 +1,30 @@ +# Compatiblity +### This generator is for most sites that uses the Madara WordPress Theme: https://mangabooth.com/ + +it should work for all sites that uses this theme + +to know the name and version of the theme you can enter the url in : [WP Theme Detector](https://www.wpthemedetector.com) +or you can check the version by adding "/wp-content/themes/madara/style.css" +to the site url and check the version in the file + + + +## ADD A NEW SOURCE +To add a new source you need to add it to sources.json: +- id: the id of the source (something unique) +- sourceName: the name of the source (you can use the value of "name" in "https://site.com/wp-json/" if it exists) +- sourceSite: the site url +- options: the options of the source + - lang: the language of the source (default: "English") (check that the language + exists in the languages (check folder names in "plugins/")) + - useNewChapterEndpoint: if the source uses the new chapter endpoint + +To add an icon to the source you need to 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 "icons/multisrc/madara" named as the id of the source + +To add filters to a source you need to run the script "get_filters.ts" \ +(./node_modules/.bin/ts-node scripts/multisrc/madara/get_filters.ts +(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/madara/filters/1stkissnovel.json b/scripts/multisrc/madara/filters/1stkissnovel.json new file mode 100644 index 0000000..1dbd4fa --- /dev/null +++ b/scripts/multisrc/madara/filters/1stkissnovel.json @@ -0,0 +1,376 @@ +{ + "filters": { + "genre[]": { + "type": "Checkbox", + "label": "Genre", + "value": [], + "options": [ + { + "label": "Action", + "value": "action" + }, + { + "label": "Adult", + "value": "adult" + }, + { + "label": "Adventure", + "value": "adventure" + }, + { + "label": "Anime", + "value": "anime" + }, + { + "label": "Apocalypse", + "value": "apocalypse" + }, + { + "label": "Boy's Love", + "value": "boys-love" + }, + { + "label": "Comedy", + "value": "comedy" + }, + { + "label": "Completed", + "value": "completed" + }, + { + "label": "Cooking", + "value": "cooking" + }, + { + "label": "Demons", + "value": "demons" + }, + { + "label": "Detective", + "value": "detective" + }, + { + "label": "Drama", + "value": "drama" + }, + { + "label": "Ecchi", + "value": "ecchi" + }, + { + "label": "Fan-Fiction", + "value": "fan-fiction" + }, + { + "label": "Fantasy", + "value": "fantasy" + }, + { + "label": "Food", + "value": "food" + }, + { + "label": "Game", + "value": "game" + }, + { + "label": "Gender Bender", + "value": "gender-bender" + }, + { + "label": "Girls Love", + "value": "girls-love" + }, + { + "label": "Harem", + "value": "harem" + }, + { + "label": "Historical", + "value": "historical" + }, + { + "label": "Horror", + "value": "horror" + }, + { + "label": "Humor", + "value": "humor" + }, + { + "label": "Isekai", + "value": "isekai" + }, + { + "label": "Josei", + "value": "josei" + }, + { + "label": "Magic", + "value": "magic" + }, + { + "label": "Magical", + "value": "magical" + }, + { + "label": "Manhua", + "value": "manhua" + }, + { + "label": "Manhwa", + "value": "manhwa" + }, + { + "label": "Martial Arts", + "value": "martial-arts" + }, + { + "label": "Mature", + "value": "mature" + }, + { + "label": "Mecha", + "value": "mecha" + }, + { + "label": "Medical", + "value": "medical" + }, + { + "label": "Military", + "value": "military" + }, + { + "label": "Moder", + "value": "moder" + }, + { + "label": "Modern", + "value": "modern" + }, + { + "label": "Murim", + "value": "murim" + }, + { + "label": "Music", + "value": "music" + }, + { + "label": "Mystery", + "value": "mystery" + }, + { + "label": "Psychological", + "value": "psychological" + }, + { + "label": "Reverse", + "value": "reverse" + }, + { + "label": "Reverse harem", + "value": "reverse-harem" + }, + { + "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": "Smut", + "value": "smut" + }, + { + "label": "Sports", + "value": "sports" + }, + { + "label": "Super power", + "value": "super-power" + }, + { + "label": "Superhero", + "value": "superhero" + }, + { + "label": "Supernatural", + "value": "supernatural" + }, + { + "label": "Thriller", + "value": "thriller" + }, + { + "label": "Tragedy", + "value": "tragedy" + }, + { + "label": "Urban Life", + "value": "urban-life" + }, + { + "label": "Vampire", + "value": "vampire" + }, + { + "label": "Webtoons", + "value": "webtoons" + }, + { + "label": "Wuxia", + "value": "wuxia" + }, + { + "label": "Xianxia", + "value": "xianxia" + }, + { + "label": "Xuanhuan", + "value": "xuanhuan" + }, + { + "label": "Yaoi", + "value": "yaoi" + }, + { + "label": "Yuri", + "value": "yuri" + } + ] + }, + "op": { + "type": "Switch", + "label": "having all selected genres", + "value": false + }, + "author": { + "type": "Text", + "label": "Author", + "value": "" + }, + "artist": { + "type": "Text", + "label": "Artist", + "value": "" + }, + "release": { + "type": "Text", + "label": "Year of Released", + "value": "" + }, + "adult": { + "type": "Picker", + "label": "Adult content", + "value": "", + "options": [ + { + "label": "All", + "value": "" + }, + { + "label": "None adult content", + "value": "0" + }, + { + "label": "Only adult content", + "value": "1" + } + ] + }, + "status[]": { + "type": "Checkbox", + "label": "Status", + "value": [], + "options": [ + { + "label": "OnGoing", + "value": "on-going" + }, + { + "label": "Completed", + "value": "end" + }, + { + "label": "Canceled", + "value": "canceled" + }, + { + "label": "On Hold", + "value": "on-hold" + }, + { + "label": "Upcoming", + "value": "upcoming" + } + ] + }, + "m_orderby": { + "type": "Picker", + "label": "Order by", + "value": "", + "options": [ + { + "label": "Relevance", + "value": "" + }, + { + "label": "Latest", + "value": "latest" + }, + { + "label": "A-Z", + "value": "alphabet" + }, + { + "label": "Rating", + "value": "rating" + }, + { + "label": "Trending", + "value": "trending" + }, + { + "label": "Most Views", + "value": "views" + }, + { + "label": "New", + "value": "new-manga" + } + ] + } + } +} \ No newline at end of file diff --git a/scripts/multisrc/madara/filters/LightNovelUpdates.json b/scripts/multisrc/madara/filters/LightNovelUpdates.json new file mode 100644 index 0000000..138f799 --- /dev/null +++ b/scripts/multisrc/madara/filters/LightNovelUpdates.json @@ -0,0 +1,344 @@ +{ + "filters": { + "genre[]": { + "type": "Checkbox", + "label": "Genre", + "value": [], + "options": [ + { + "label": "Action", + "value": "action" + }, + { + "label": "Adventure", + "value": "adventure" + }, + { + "label": "Chinese", + "value": "chinese" + }, + { + "label": "Chinese Novel", + "value": "chinese-novel" + }, + { + "label": "Comedy", + "value": "comedy" + }, + { + "label": "Drama", + "value": "drama" + }, + { + "label": "Ecchi", + "value": "ecchi" + }, + { + "label": "Fantasy", + "value": "fantasy" + }, + { + "label": "Filipino", + "value": "filipino" + }, + { + "label": "Filipino Novel", + "value": "filipino-novel" + }, + { + "label": "Gender Bender", + "value": "gender-bender" + }, + { + "label": "Genre", + "value": "genre" + }, + { + "label": "Harem", + "value": "harem" + }, + { + "label": "Historical", + "value": "historical" + }, + { + "label": "Horror", + "value": "horror" + }, + { + "label": "Indonesia", + "value": "indonesia" + }, + { + "label": "Indonesia Novel", + "value": "indonesia-novel" + }, + { + "label": "Japanese", + "value": "japanese" + }, + { + "label": "Josei", + "value": "josei" + }, + { + "label": "Khmer", + "value": "khmer" + }, + { + "label": "Korean", + "value": "korean" + }, + { + "label": "Korean Novel", + "value": "korean-novel" + }, + { + "label": "Language", + "value": "language" + }, + { + "label": "Light Novel", + "value": "light-novel" + }, + { + "label": "Lolicon", + "value": "lolicon" + }, + { + "label": "Malaysian", + "value": "malaysian" + }, + { + "label": "Malaysian Novel", + "value": "malaysian-novel" + }, + { + "label": "Martial Arts", + "value": "martial-arts" + }, + { + "label": "Mature", + "value": "mature" + }, + { + "label": "Mecha", + "value": "mecha" + }, + { + "label": "Mystery", + "value": "mystery" + }, + { + "label": "N/A", + "value": "n-a" + }, + { + "label": "Novel Type", + "value": "novel-type" + }, + { + "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": "Shotacon", + "value": "shotacon" + }, + { + "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-3" + }, + { + "label": "Slice of Life", + "value": "slice-of-life" + }, + { + "label": "Smut", + "value": "smut" + }, + { + "label": "Sports", + "value": "sports" + }, + { + "label": "Supernatural", + "value": "supernatural" + }, + { + "label": "Thai", + "value": "thai" + }, + { + "label": "Thai Novel", + "value": "thai-novel" + }, + { + "label": "Tragedy", + "value": "tragedy" + }, + { + "label": "Vietnamese", + "value": "vietnamese" + }, + { + "label": "Vietnamese Novel", + "value": "vietnamese-novel" + }, + { + "label": "Web Novel", + "value": "web-novel" + }, + { + "label": "Wuxia", + "value": "wuxia" + }, + { + "label": "Xianxia", + "value": "xianxia" + }, + { + "label": "Xuanhuan", + "value": "xuanhuan" + }, + { + "label": "Yaoi", + "value": "yaoi" + }, + { + "label": "Yuri", + "value": "yuri" + } + ] + }, + "op": { + "type": "Switch", + "label": "having all selected genres", + "value": false + }, + "author": { + "type": "Text", + "label": "Author", + "value": "" + }, + "artist": { + "type": "Text", + "label": "Artist", + "value": "" + }, + "release": { + "type": "Text", + "label": "Year of Released", + "value": "" + }, + "adult": { + "type": "Picker", + "label": "Adult content", + "value": "", + "options": [ + { + "label": "All", + "value": "" + }, + { + "label": "None adult content", + "value": "0" + }, + { + "label": "Only adult content", + "value": "1" + } + ] + }, + "status[]": { + "type": "Checkbox", + "label": "Status", + "value": [], + "options": [ + { + "label": "Completed", + "value": "complete" + }, + { + "label": "Ongoing", + "value": "on-going" + }, + { + "label": "Canceled", + "value": "canceled" + }, + { + "label": "On Hold", + "value": "on-hold" + } + ] + }, + "m_orderby": { + "type": "Picker", + "label": "Order by", + "value": "", + "options": [ + { + "label": "Relevance", + "value": "" + }, + { + "label": "Latest", + "value": "latest" + }, + { + "label": "A-Z", + "value": "alphabet" + }, + { + "label": "Rating", + "value": "rating" + }, + { + "label": "Trending", + "value": "trending" + }, + { + "label": "Most Views", + "value": "views" + }, + { + "label": "New", + "value": "new-manga" + } + ] + } + } +} \ No newline at end of file diff --git a/scripts/multisrc/madara/filters/ar-mtl.json b/scripts/multisrc/madara/filters/ar-mtl.json new file mode 100644 index 0000000..403426a --- /dev/null +++ b/scripts/multisrc/madara/filters/ar-mtl.json @@ -0,0 +1,48 @@ +{ + "filters": { + "genre[]": { + "type": "Checkbox", + "label": "Genre", + "value": [], + "options": [] + }, + "op": { + "type": "Switch", + "label": "", + "value": false + }, + "author": { + "type": "Text", + "label": "", + "value": "" + }, + "artist": { + "type": "Text", + "label": "", + "value": "" + }, + "release": { + "type": "Text", + "label": "", + "value": "" + }, + "adult": { + "type": "Picker", + "label": "", + "value": "", + "options": [] + }, + "status[]": { + "type": "Checkbox", + "label": "", + "value": [], + "options": [] + }, + "m_orderby": { + "type": "Picker", + "label": "", + "value": "", + "options": [] + } + } +} \ No newline at end of file diff --git a/scripts/multisrc/madara/filters/arnovel.json b/scripts/multisrc/madara/filters/arnovel.json new file mode 100644 index 0000000..919afa8 --- /dev/null +++ b/scripts/multisrc/madara/filters/arnovel.json @@ -0,0 +1,220 @@ +{ + "filters": { + "genre[]": { + "type": "Checkbox", + "label": "Genre", + "value": [], + "options": [ + { + "label": "أكشن", + "value": "أكشن" + }, + { + "label": "إتشي", + "value": "إتشـي" + }, + { + "label": "بالغ", + "value": "بالغ" + }, + { + "label": "تاريخي", + "value": "تاريخي" + }, + { + "label": "تراجدي", + "value": "تراجدي" + }, + { + "label": "جوسي", + "value": "جوسي" + }, + { + "label": "حريم", + "value": "حريم" + }, + { + "label": "حياة مدرسية", + "value": "حياة-مدرسية" + }, + { + "label": "خارق لطبيعية", + "value": "خارق-لطبيعية" + }, + { + "label": "خيال", + "value": "خيال" + }, + { + "label": "خيال علمي", + "value": "خيال-علمي" + }, + { + "label": "دراما", + "value": "دراما" + }, + { + "label": "راشد", + "value": "راشد" + }, + { + "label": "رعب", + "value": "رعب" + }, + { + "label": "رومنسي", + "value": "رومنسي" + }, + { + "label": "رياضي", + "value": "رياضي" + }, + { + "label": "سينين", + "value": "سينين" + }, + { + "label": "شريحة من الحياة", + "value": "شريحة-من-الحياة" + }, + { + "label": "شوجو", + "value": "شوجو" + }, + { + "label": "شونين", + "value": "شونين" + }, + { + "label": "غموض", + "value": "غموض" + }, + { + "label": "فنون قتال", + "value": "فنون-قتال" + }, + { + "label": "كوميديا", + "value": "كوميديا" + }, + { + "label": "مغامرات", + "value": "مغامرات" + }, + { + "label": "منتهية", + "value": "منتهية" + }, + { + "label": "ميكا", + "value": "ميكا" + }, + { + "label": "نفسي", + "value": "نفسي" + } + ] + }, + "op": { + "type": "Switch", + "label": "و وجود جميع التصنيفات المختارة", + "value": false + }, + "author": { + "type": "Text", + "label": "المؤلف", + "value": "" + }, + "artist": { + "type": "Text", + "label": "المترجم", + "value": "" + }, + "release": { + "type": "Text", + "label": "سنة الإصدار", + "value": "" + }, + "adult": { + "type": "Picker", + "label": "محتوى للبالغين", + "value": "", + "options": [ + { + "label": "كل", + "value": "" + }, + { + "label": "لا يوجد محتوى للبالغين", + "value": "0" + }, + { + "label": "محتوى للبالغين فقط", + "value": "1" + } + ] + }, + "status[]": { + "type": "Checkbox", + "label": "الحالة", + "value": [], + "options": [ + { + "label": "مستمرة", + "value": "on-going" + }, + { + "label": "منتهية", + "value": "end" + }, + { + "label": "تم إلغاءها", + "value": "canceled" + }, + { + "label": "متوقفة", + "value": "on-hold" + }, + { + "label": "قريباً", + "value": "upcoming" + } + ] + }, + "m_orderby": { + "type": "Picker", + "label": "الترتيب حسب", + "value": "", + "options": [ + { + "label": "ملائمة", + "value": "" + }, + { + "label": "الآخير", + "value": "latest" + }, + { + "label": "A-Z", + "value": "alphabet" + }, + { + "label": "التقييم", + "value": "rating" + }, + { + "label": "شائع", + "value": "trending" + }, + { + "label": "الأكثر مشاهدة", + "value": "views" + }, + { + "label": "جديد", + "value": "new-manga" + } + ] + } + } +} \ No newline at end of file diff --git a/scripts/multisrc/madara/filters/asuralightnovel.json b/scripts/multisrc/madara/filters/asuralightnovel.json new file mode 100644 index 0000000..9a70d3c --- /dev/null +++ b/scripts/multisrc/madara/filters/asuralightnovel.json @@ -0,0 +1,180 @@ +{ + "filters": { + "genre[]": { + "type": "Checkbox", + "label": "Genre", + "value": [], + "options": [ + { + "label": "Action", + "value": "action" + }, + { + "label": "Adventure", + "value": "adventure" + }, + { + "label": "Comedy", + "value": "comedy" + }, + { + "label": "Fantasy", + "value": "fantasy" + }, + { + "label": "Harem", + "value": "harem" + }, + { + "label": "Isekai", + "value": "isekai" + }, + { + "label": "Martial arts", + "value": "martial-arts" + }, + { + "label": "Mature", + "value": "mature" + }, + { + "label": "Mystery", + "value": "mystery" + }, + { + "label": "Psychological", + "value": "psychological" + }, + { + "label": "Romance", + "value": "romance" + }, + { + "label": "Sci-fi", + "value": "sci-fi" + }, + { + "label": "Shounen", + "value": "shounen" + }, + { + "label": "Supernatural", + "value": "supernatural" + }, + { + "label": "Tragedy", + "value": "tragedy" + }, + { + "label": "xianxia", + "value": "xianxia" + }, + { + "label": "Xuanhuan", + "value": "xuanhuan" + } + ] + }, + "op": { + "type": "Switch", + "label": "having all selected genres", + "value": false + }, + "author": { + "type": "Text", + "label": "Author", + "value": "" + }, + "artist": { + "type": "Text", + "label": "Artist", + "value": "" + }, + "release": { + "type": "Text", + "label": "Year of Released", + "value": "" + }, + "adult": { + "type": "Picker", + "label": "Adult content", + "value": "", + "options": [ + { + "label": "All", + "value": "" + }, + { + "label": "None adult content", + "value": "0" + }, + { + "label": "Only adult content", + "value": "1" + } + ] + }, + "status[]": { + "type": "Checkbox", + "label": "Status", + "value": [], + "options": [ + { + "label": "OnGoing", + "value": "on-going" + }, + { + "label": "Completed", + "value": "end" + }, + { + "label": "Canceled", + "value": "canceled" + }, + { + "label": "On Hold", + "value": "on-hold" + }, + { + "label": "Upcoming", + "value": "upcoming" + } + ] + }, + "m_orderby": { + "type": "Picker", + "label": "Order by", + "value": "", + "options": [ + { + "label": "Relevance", + "value": "" + }, + { + "label": "Latest", + "value": "latest" + }, + { + "label": "A-Z", + "value": "alphabet" + }, + { + "label": "Rating", + "value": "rating" + }, + { + "label": "Trending", + "value": "trending" + }, + { + "label": "Most Views", + "value": "views" + }, + { + "label": "New", + "value": "new-manga" + } + ] + } + } +} \ No newline at end of file diff --git a/scripts/multisrc/madara/filters/boxnovel.json b/scripts/multisrc/madara/filters/boxnovel.json new file mode 100644 index 0000000..2d0c7ef --- /dev/null +++ b/scripts/multisrc/madara/filters/boxnovel.json @@ -0,0 +1,240 @@ +{ + "filters": { + "genre[]": { + "type": "Checkbox", + "label": "Genre", + "value": [], + "options": [ + { + "label": "Action", + "value": "action" + }, + { + "label": "Adventure", + "value": "adventure" + }, + { + "label": "Comedy", + "value": "comedy" + }, + { + "label": "Drama", + "value": "drama" + }, + { + "label": "Eastern", + "value": "eastern" + }, + { + "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": "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": "Shounen", + "value": "shounen" + }, + { + "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": "Xuanhuan", + "value": "xuanhuan" + }, + { + "label": "Yaoi", + "value": "yaoi" + } + ] + }, + "op": { + "type": "Switch", + "label": "having all selected genres", + "value": false + }, + "author": { + "type": "Text", + "label": "Author", + "value": "" + }, + "artist": { + "type": "Text", + "label": "Artist", + "value": "" + }, + "release": { + "type": "Text", + "label": "Year of Released", + "value": "" + }, + "adult": { + "type": "Picker", + "label": "Adult content", + "value": "", + "options": [ + { + "label": "All", + "value": "" + }, + { + "label": "None adult content", + "value": "0" + }, + { + "label": "Only adult content", + "value": "1" + } + ] + }, + "status[]": { + "type": "Checkbox", + "label": "Status", + "value": [], + "options": [ + { + "label": "OnGoing", + "value": "on-going" + }, + { + "label": "Completed", + "value": "end" + }, + { + "label": "Canceled", + "value": "canceled" + }, + { + "label": "On Hold", + "value": "on-hold" + }, + { + "label": "Upcoming", + "value": "upcoming" + } + ] + }, + "m_orderby": { + "type": "Picker", + "label": "Order by", + "value": "", + "options": [ + { + "label": "Relevance", + "value": "" + }, + { + "label": "Latest", + "value": "latest" + }, + { + "label": "A-Z", + "value": "alphabet" + }, + { + "label": "Rating", + "value": "rating" + }, + { + "label": "Trending", + "value": "trending" + }, + { + "label": "Most Views", + "value": "views" + }, + { + "label": "New", + "value": "new-manga" + } + ] + } + } +} \ No newline at end of file diff --git a/scripts/multisrc/madara/filters/e-novel.json b/scripts/multisrc/madara/filters/e-novel.json new file mode 100644 index 0000000..34fdd8c --- /dev/null +++ b/scripts/multisrc/madara/filters/e-novel.json @@ -0,0 +1,192 @@ +{ + "filters": { + "genre[]": { + "type": "Checkbox", + "label": "Genre", + "value": [], + "options": [ + { + "label": "Ação", + "value": "acao" + }, + { + "label": "Aventura", + "value": "aventura" + }, + { + "label": "Chinesa", + "value": "chinesa" + }, + { + "label": "Coreana", + "value": "coreana" + }, + { + "label": "Cotidiano", + "value": "cotidiano" + }, + { + "label": "Cultivação", + "value": "cultivacao" + }, + { + "label": "Escolar", + "value": "escolar" + }, + { + "label": "Fantasia", + "value": "fantasia" + }, + { + "label": "Harém", + "value": "harem" + }, + { + "label": "Indicação", + "value": "indicacao" + }, + { + "label": "Isekai", + "value": "isekai" + }, + { + "label": "Japonesa", + "value": "japonesa" + }, + { + "label": "Light Novel", + "value": "light-novel" + }, + { + "label": "Romance", + "value": "romance" + }, + { + "label": "Romance Adulto", + "value": "romance-adulto" + }, + { + "label": "Sistema de Up", + "value": "sistema-de-up" + }, + { + "label": "Sobrenatural", + "value": "sobrenatural" + }, + { + "label": "Super Poderes", + "value": "super-poderes" + }, + { + "label": "Xianxia", + "value": "xianxia" + }, + { + "label": "Xuanhuan", + "value": "xuanhuan" + } + ] + }, + "op": { + "type": "Switch", + "label": "having all selected genres", + "value": false + }, + "author": { + "type": "Text", + "label": "Author", + "value": "" + }, + "artist": { + "type": "Text", + "label": "Artist", + "value": "" + }, + "release": { + "type": "Text", + "label": "Year of Released", + "value": "" + }, + "adult": { + "type": "Picker", + "label": "Adult content", + "value": "", + "options": [ + { + "label": "All", + "value": "" + }, + { + "label": "None adult content", + "value": "0" + }, + { + "label": "Only adult content", + "value": "1" + } + ] + }, + "status[]": { + "type": "Checkbox", + "label": "Status", + "value": [], + "options": [ + { + "label": "Ativo", + "value": "on-going" + }, + { + "label": "Completo", + "value": "end" + }, + { + "label": "Canceled", + "value": "canceled" + }, + { + "label": "On Hold", + "value": "on-hold" + }, + { + "label": "Upcoming", + "value": "upcoming" + } + ] + }, + "m_orderby": { + "type": "Picker", + "label": "Order by", + "value": "", + "options": [ + { + "label": "Relevance", + "value": "" + }, + { + "label": "Latest", + "value": "latest" + }, + { + "label": "A-Z", + "value": "alphabet" + }, + { + "label": "Rating", + "value": "rating" + }, + { + "label": "Trending", + "value": "trending" + }, + { + "label": "Most Views", + "value": "views" + }, + { + "label": "New", + "value": "new-manga" + } + ] + } + } +} \ No newline at end of file diff --git a/scripts/multisrc/madara/filters/fanTLS.json b/scripts/multisrc/madara/filters/fanTLS.json new file mode 100644 index 0000000..2576f9c --- /dev/null +++ b/scripts/multisrc/madara/filters/fanTLS.json @@ -0,0 +1,200 @@ +{ + "filters": { + "genre[]": { + "type": "Checkbox", + "label": "Genre", + "value": [], + "options": [ + { + "label": "Action", + "value": "action" + }, + { + "label": "Adventure", + "value": "adventure" + }, + { + "label": "Comedy", + "value": "comedy" + }, + { + "label": "Drama", + "value": "drama" + }, + { + "label": "Fantasy", + "value": "fantasy" + }, + { + "label": "Historical", + "value": "historical" + }, + { + "label": "Horror", + "value": "horror" + }, + { + "label": "Josei", + "value": "josei" + }, + { + "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": "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": "Sports", + "value": "sports" + }, + { + "label": "Supernatural", + "value": "supernatural" + }, + { + "label": "Yaoi", + "value": "yaoi" + } + ] + }, + "op": { + "type": "Switch", + "label": "having all selected genres", + "value": false + }, + "author": { + "type": "Text", + "label": "Author", + "value": "" + }, + "artist": { + "type": "Text", + "label": "Artist", + "value": "" + }, + "release": { + "type": "Text", + "label": "Year of Released", + "value": "" + }, + "adult": { + "type": "Picker", + "label": "Adult content", + "value": "", + "options": [ + { + "label": "All", + "value": "" + }, + { + "label": "None adult content", + "value": "0" + }, + { + "label": "Only adult content", + "value": "1" + } + ] + }, + "status[]": { + "type": "Checkbox", + "label": "Status", + "value": [], + "options": [ + { + "label": "OnGoing", + "value": "on-going" + }, + { + "label": "Completed", + "value": "end" + }, + { + "label": "Canceled", + "value": "canceled" + }, + { + "label": "On Hold", + "value": "on-hold" + }, + { + "label": "Upcoming", + "value": "upcoming" + } + ] + }, + "m_orderby": { + "type": "Picker", + "label": "Order by", + "value": "", + "options": [ + { + "label": "Relevance", + "value": "" + }, + { + "label": "Latest", + "value": "latest" + }, + { + "label": "A-Z", + "value": "alphabet" + }, + { + "label": "Rating", + "value": "rating" + }, + { + "label": "Trending", + "value": "trending" + }, + { + "label": "Most Views", + "value": "views" + }, + { + "label": "New", + "value": "new-manga" + } + ] + } + } +} \ No newline at end of file diff --git a/scripts/multisrc/madara/filters/fanstranslations.json b/scripts/multisrc/madara/filters/fanstranslations.json new file mode 100644 index 0000000..2576f9c --- /dev/null +++ b/scripts/multisrc/madara/filters/fanstranslations.json @@ -0,0 +1,200 @@ +{ + "filters": { + "genre[]": { + "type": "Checkbox", + "label": "Genre", + "value": [], + "options": [ + { + "label": "Action", + "value": "action" + }, + { + "label": "Adventure", + "value": "adventure" + }, + { + "label": "Comedy", + "value": "comedy" + }, + { + "label": "Drama", + "value": "drama" + }, + { + "label": "Fantasy", + "value": "fantasy" + }, + { + "label": "Historical", + "value": "historical" + }, + { + "label": "Horror", + "value": "horror" + }, + { + "label": "Josei", + "value": "josei" + }, + { + "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": "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": "Sports", + "value": "sports" + }, + { + "label": "Supernatural", + "value": "supernatural" + }, + { + "label": "Yaoi", + "value": "yaoi" + } + ] + }, + "op": { + "type": "Switch", + "label": "having all selected genres", + "value": false + }, + "author": { + "type": "Text", + "label": "Author", + "value": "" + }, + "artist": { + "type": "Text", + "label": "Artist", + "value": "" + }, + "release": { + "type": "Text", + "label": "Year of Released", + "value": "" + }, + "adult": { + "type": "Picker", + "label": "Adult content", + "value": "", + "options": [ + { + "label": "All", + "value": "" + }, + { + "label": "None adult content", + "value": "0" + }, + { + "label": "Only adult content", + "value": "1" + } + ] + }, + "status[]": { + "type": "Checkbox", + "label": "Status", + "value": [], + "options": [ + { + "label": "OnGoing", + "value": "on-going" + }, + { + "label": "Completed", + "value": "end" + }, + { + "label": "Canceled", + "value": "canceled" + }, + { + "label": "On Hold", + "value": "on-hold" + }, + { + "label": "Upcoming", + "value": "upcoming" + } + ] + }, + "m_orderby": { + "type": "Picker", + "label": "Order by", + "value": "", + "options": [ + { + "label": "Relevance", + "value": "" + }, + { + "label": "Latest", + "value": "latest" + }, + { + "label": "A-Z", + "value": "alphabet" + }, + { + "label": "Rating", + "value": "rating" + }, + { + "label": "Trending", + "value": "trending" + }, + { + "label": "Most Views", + "value": "views" + }, + { + "label": "New", + "value": "new-manga" + } + ] + } + } +} \ No newline at end of file diff --git a/scripts/multisrc/madara/filters/foxaholic.json b/scripts/multisrc/madara/filters/foxaholic.json new file mode 100644 index 0000000..fe8b624 --- /dev/null +++ b/scripts/multisrc/madara/filters/foxaholic.json @@ -0,0 +1,276 @@ +{ + "filters": { + "genre[]": { + "type": "Checkbox", + "label": "Genre", + "value": [], + "options": [ + { + "label": "Action", + "value": "action" + }, + { + "label": "Adventure", + "value": "adventure" + }, + { + "label": "Boy X Girl", + "value": "bg" + }, + { + "label": "Boy's Love", + "value": "bl" + }, + { + "label": "Chinese Novel", + "value": "chinese" + }, + { + "label": "Comedy", + "value": "comedy" + }, + { + "label": "Drama", + "value": "drama" + }, + { + "label": "Fanfiction", + "value": "fanfiction" + }, + { + "label": "Fantasy", + "value": "fantasy" + }, + { + "label": "Games", + "value": "games" + }, + { + "label": "Girl's Love", + "value": "gl" + }, + { + "label": "Harem", + "value": "harem" + }, + { + "label": "Historical", + "value": "historical" + }, + { + "label": "Horror", + "value": "horror" + }, + { + "label": "Indonesian Novel", + "value": "indonesian" + }, + { + "label": "interstellar", + "value": "interstellar" + }, + { + "label": "Isekai", + "value": "isekai" + }, + { + "label": "Japanese Novel", + "value": "japanese" + }, + { + "label": "Korean Novel", + "value": "korean" + }, + { + "label": "Malay Novel", + "value": "malay" + }, + { + "label": "Martial Arts", + "value": "martial-arts" + }, + { + "label": "Mature", + "value": "mature" + }, + { + "label": "Modern", + "value": "modern" + }, + { + "label": "Mystery", + "value": "mystery" + }, + { + "label": "Original Novel", + "value": "original" + }, + { + "label": "Psychological", + "value": "psychological" + }, + { + "label": "Quick Transmigration", + "value": "quick-transmigration" + }, + { + "label": "Rebirth", + "value": "rebirth" + }, + { + "label": "Romance", + "value": "romance" + }, + { + "label": "School Life", + "value": "school-life" + }, + { + "label": "Sci-fi", + "value": "sci-fi" + }, + { + "label": "Slice of Life", + "value": "slice-of-life" + }, + { + "label": "Supernatural", + "value": "supernatural" + }, + { + "label": "Thai Novel", + "value": "thai" + }, + { + "label": "Tragedy", + "value": "tragedy" + }, + { + "label": "Transmigration", + "value": "transmigration" + }, + { + "label": "Urban", + "value": "urban" + }, + { + "label": "Urdu Novel", + "value": "urdu-novel" + }, + { + "label": "Wuxia", + "value": "wuxia" + }, + { + "label": "Xianxia", + "value": "xianxia" + }, + { + "label": "Xuanhuan", + "value": "xuanhuan" + } + ] + }, + "op": { + "type": "Switch", + "label": "having all selected genres", + "value": false + }, + "author": { + "type": "Text", + "label": "Author", + "value": "" + }, + "artist": { + "type": "Text", + "label": "Team", + "value": "" + }, + "release": { + "type": "Text", + "label": "Translation Status", + "value": "" + }, + "adult": { + "type": "Picker", + "label": "Adult content", + "value": "", + "options": [ + { + "label": "All", + "value": "" + }, + { + "label": "None adult content", + "value": "0" + }, + { + "label": "Only adult content", + "value": "1" + } + ] + }, + "status[]": { + "type": "Checkbox", + "label": "Novel Status", + "value": [], + "options": [ + { + "label": "OnGoing", + "value": "on-going" + }, + { + "label": "Completed", + "value": "end" + }, + { + "label": "Canceled", + "value": "canceled" + }, + { + "label": "On Hold", + "value": "on-hold" + }, + { + "label": "Upcoming", + "value": "upcoming" + } + ] + }, + "m_orderby": { + "type": "Picker", + "label": "Order by", + "value": "", + "options": [ + { + "label": "Relevance", + "value": "" + }, + { + "label": "Latest", + "value": "latest" + }, + { + "label": "A-Z", + "value": "alphabet" + }, + { + "label": "Rating", + "value": "rating" + }, + { + "label": "Trending", + "value": "trending" + }, + { + "label": "Most Views", + "value": "views" + }, + { + "label": "New", + "value": "new-manga" + } + ] + } + } +} \ No newline at end of file diff --git a/scripts/multisrc/madara/filters/guavaread.json b/scripts/multisrc/madara/filters/guavaread.json new file mode 100644 index 0000000..afbbbbc --- /dev/null +++ b/scripts/multisrc/madara/filters/guavaread.json @@ -0,0 +1,236 @@ +{ + "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": "Complete", + "value": "complete" + }, + { + "label": "Cooking", + "value": "cooking" + }, + { + "label": "Detective", + "value": "detective" + }, + { + "label": "Drama", + "value": "drama" + }, + { + "label": "Dropped", + "value": "dropped" + }, + { + "label": "Ecchi", + "value": "ecchi" + }, + { + "label": "Fantasy", + "value": "fantasy" + }, + { + "label": "Gender Bender", + "value": "gender-bender" + }, + { + "label": "Historical", + "value": "historical" + }, + { + "label": "Horror", + "value": "horror" + }, + { + "label": "Josei", + "value": "josei" + }, + { + "label": "Mature", + "value": "mature" + }, + { + "label": "Mystery", + "value": "mystery" + }, + { + "label": "Original Story", + "value": "original-story" + }, + { + "label": "Pilot", + "value": "pilot" + }, + { + "label": "Psychological", + "value": "psychological" + }, + { + "label": "R-15", + "value": "r-15" + }, + { + "label": "R-19", + "value": "r-19" + }, + { + "label": "Reverse Harem", + "value": "reverse-harem" + }, + { + "label": "Romance", + "value": "romance" + }, + { + "label": "School Life", + "value": "school-life" + }, + { + "label": "Sci-fi", + "value": "sci-fi" + }, + { + "label": "Shoujo", + "value": "shoujo" + }, + { + "label": "Slice of Life", + "value": "slice-of-life" + }, + { + "label": "Smut", + "value": "smut" + }, + { + "label": "Supernatural", + "value": "supernatural" + }, + { + "label": "Tragedy", + "value": "tragedy" + } + ] + }, + "op": { + "type": "Switch", + "label": "having all selected genres", + "value": false + }, + "author": { + "type": "Text", + "label": "Author", + "value": "" + }, + "artist": { + "type": "Text", + "label": "Artist", + "value": "" + }, + "release": { + "type": "Text", + "label": "Year of Released", + "value": "" + }, + "adult": { + "type": "Picker", + "label": "Adult content", + "value": "", + "options": [ + { + "label": "All", + "value": "" + }, + { + "label": "None adult content", + "value": "0" + }, + { + "label": "Only adult content", + "value": "1" + } + ] + }, + "status[]": { + "type": "Checkbox", + "label": "Status", + "value": [], + "options": [ + { + "label": "OnGoing", + "value": "on-going" + }, + { + "label": "Completed", + "value": "end" + }, + { + "label": "Canceled", + "value": "canceled" + }, + { + "label": "On Hold", + "value": "on-hold" + }, + { + "label": "Upcoming", + "value": "upcoming" + } + ] + }, + "m_orderby": { + "type": "Picker", + "label": "Order by", + "value": "", + "options": [ + { + "label": "Relevance", + "value": "" + }, + { + "label": "Latest", + "value": "latest" + }, + { + "label": "A-Z", + "value": "alphabet" + }, + { + "label": "Rating", + "value": "rating" + }, + { + "label": "Trending", + "value": "trending" + }, + { + "label": "Most Views", + "value": "views" + }, + { + "label": "New", + "value": "new-manga" + } + ] + } + } +} \ No newline at end of file diff --git a/scripts/multisrc/madara/filters/hizomanga.json b/scripts/multisrc/madara/filters/hizomanga.json new file mode 100644 index 0000000..d8472e9 --- /dev/null +++ b/scripts/multisrc/madara/filters/hizomanga.json @@ -0,0 +1,244 @@ +{ + "filters": { + "genre[]": { + "type": "Checkbox", + "label": "Genre", + "value": [], + "options": [ + { + "label": "آلات", + "value": "mechanisms" + }, + { + "label": "أكشن", + "value": "action" + }, + { + "label": "إثارة", + "value": "excitement" + }, + { + "label": "إيسكاي", + "value": "إيسكاي" + }, + { + "label": "الحياة اليومية", + "value": "slice-of-life" + }, + { + "label": "الحياة مدرسية", + "value": "school-life" + }, + { + "label": "تاريخي", + "value": "historical" + }, + { + "label": "تراجيدي", + "value": "tragic" + }, + { + "label": "جريمة", + "value": "جريمة" + }, + { + "label": "جندر بندر", + "value": "جندر-بندر" + }, + { + "label": "جوسي", + "value": "josei" + }, + { + "label": "حريم", + "value": "harem" + }, + { + "label": "خارق للطبيعة", + "value": "supernatural" + }, + { + "label": "خيال", + "value": "fantasy" + }, + { + "label": "خيال علمي", + "value": "sci-fi" + }, + { + "label": "دراما", + "value": "drama" + }, + { + "label": "دموي", + "value": "دموي" + }, + { + "label": "راشد", + "value": "mature" + }, + { + "label": "رعب", + "value": "horror" + }, + { + "label": "رومانسي", + "value": "romance" + }, + { + "label": "رياضة", + "value": "sports" + }, + { + "label": "زمنكاني", + "value": "my-time" + }, + { + "label": "زومبي", + "value": "زومبي" + }, + { + "label": "سينين", + "value": "seinen" + }, + { + "label": "شريحة من الحياة", + "value": "شريحة-من-الحياة" + }, + { + "label": "شوجو", + "value": "shoujo" + }, + { + "label": "شونين", + "value": "shounen" + }, + { + "label": "طبي", + "value": "طبي" + }, + { + "label": "غموض", + "value": "ambiguity" + }, + { + "label": "فنون قتالية", + "value": "martial-arts" + }, + { + "label": "قوة خارقة", + "value": "superpower" + }, + { + "label": "كوميدي", + "value": "comedy" + }, + { + "label": "مغامرات", + "value": "adventure" + }, + { + "label": "نفسي", + "value": "psychological" + } + ] + }, + "op": { + "type": "Switch", + "label": "مع كل التصنيفات المحددة", + "value": false + }, + "author": { + "type": "Text", + "label": "المؤلف", + "value": "" + }, + "artist": { + "type": "Text", + "label": "المترجم", + "value": "" + }, + "release": { + "type": "Text", + "label": "سنة الإصدار", + "value": "" + }, + "adult": { + "type": "Picker", + "label": "محتوى للبالغين", + "value": "", + "options": [ + { + "label": "الكل", + "value": "" + }, + { + "label": "لا يوجد محتوى للبالغين", + "value": "0" + }, + { + "label": "محتوى للبالغين فقط", + "value": "1" + } + ] + }, + "status[]": { + "type": "Checkbox", + "label": "الحالة", + "value": [], + "options": [ + { + "label": "مكتملة", + "value": "complete" + }, + { + "label": "مستمرة", + "value": "on-going" + }, + { + "label": "ألغيت", + "value": "canceled" + }, + { + "label": "قيد الانتظار", + "value": "on-hold" + } + ] + }, + "m_orderby": { + "type": "Picker", + "label": "ترتيب حسب", + "value": "", + "options": [ + { + "label": "ملاءمة", + "value": "" + }, + { + "label": "الأحدث", + "value": "latest" + }, + { + "label": "A-Z", + "value": "alphabet" + }, + { + "label": "التقييم", + "value": "rating" + }, + { + "label": "الرائج", + "value": "trending" + }, + { + "label": "الأكثر مشاهدة", + "value": "views" + }, + { + "label": "New", + "value": "new-manga" + } + ] + } + } +} \ No newline at end of file diff --git a/scripts/multisrc/madara/filters/kiniga.json b/scripts/multisrc/madara/filters/kiniga.json new file mode 100644 index 0000000..71b6837 --- /dev/null +++ b/scripts/multisrc/madara/filters/kiniga.json @@ -0,0 +1,320 @@ +{ + "filters": { + "genre[]": { + "type": "Checkbox", + "label": "Genre", + "value": [], + "options": [ + { + "label": "Ação", + "value": "action" + }, + { + "label": "Artes Marciais", + "value": "artes-marciais" + }, + { + "label": "Aventura", + "value": "aventura" + }, + { + "label": "Comédia", + "value": "comedia" + }, + { + "label": "Contemporâneo", + "value": "contemporaneo" + }, + { + "label": "Contos", + "value": "contos-originais" + }, + { + "label": "Crime", + "value": "crime" + }, + { + "label": "Cyberpunk", + "value": "cyberpunk" + }, + { + "label": "Destaque", + "value": "destaque" + }, + { + "label": "Distopia", + "value": "distopia" + }, + { + "label": "Drama", + "value": "drama" + }, + { + "label": "Ecchi", + "value": "ecchi" + }, + { + "label": "Espacial", + "value": "espacial" + }, + { + "label": "Esportes", + "value": "esportes" + }, + { + "label": "Fanfic", + "value": "fanfic" + }, + { + "label": "Fantasia", + "value": "fantasia" + }, + { + "label": "Ficção Científica", + "value": "ficcao-cientifica" + }, + { + "label": "Gastronomia", + "value": "gastronomia" + }, + { + "label": "Harém", + "value": "harem" + }, + { + "label": "Histórico", + "value": "historico" + }, + { + "label": "Horror", + "value": "horror" + }, + { + "label": "Infantil", + "value": "infantil" + }, + { + "label": "Isekai", + "value": "isekai" + }, + { + "label": "Jogos", + "value": "jogos" + }, + { + "label": "LGBT+", + "value": "lgbt" + }, + { + "label": "Magia", + "value": "magia" + }, + { + "label": "Mecha", + "value": "mecha" + }, + { + "label": "Medieval", + "value": "medieval" + }, + { + "label": "Militar", + "value": "militar" + }, + { + "label": "Mistério", + "value": "misterio" + }, + { + "label": "Mitologia", + "value": "mitologia" + }, + { + "label": "Moderno", + "value": "moderno" + }, + { + "label": "Pós-apocalíptico", + "value": "pos-apocaliptico" + }, + { + "label": "Psicológico", + "value": "psicologico" + }, + { + "label": "Realidade Virtual", + "value": "realidade-virtual" + }, + { + "label": "Recomendado", + "value": "recomendado" + }, + { + "label": "Romance", + "value": "romance" + }, + { + "label": "RPG", + "value": "rpg" + }, + { + "label": "Sci-fi", + "value": "sci-fi" + }, + { + "label": "Seinen", + "value": "seinen" + }, + { + "label": "Shounen", + "value": "shounen" + }, + { + "label": "Sistema de Jogo", + "value": "sistema-de-jogo" + }, + { + "label": "Slice of Life", + "value": "slice-of-life" + }, + { + "label": "snkhome", + "value": "snkhome" + }, + { + "label": "Sobrenatural", + "value": "sobrenatural" + }, + { + "label": "Somente na Kiniga", + "value": "somente-na-kiniga" + }, + { + "label": "Suspense", + "value": "suspense" + }, + { + "label": "Terror", + "value": "terror" + }, + { + "label": "Terror Psicológico", + "value": "terror-psicologico" + }, + { + "label": "Traduções", + "value": "traducoes" + }, + { + "label": "Tragédia", + "value": "tragedia" + }, + { + "label": "Urbano", + "value": "urbano" + }, + { + "label": "Vida Escolar", + "value": "vida-escolar" + } + ] + }, + "op": { + "type": "Switch", + "label": "Ter todos gêneros selecionados", + "value": false + }, + "author": { + "type": "Text", + "label": "Autor", + "value": "" + }, + "artist": { + "type": "Text", + "label": "Artista", + "value": "" + }, + "release": { + "type": "Text", + "label": "Ano", + "value": "" + }, + "adult": { + "type": "Picker", + "label": "Conteúdo", + "value": "", + "options": [ + { + "label": "Ambas opções", + "value": "" + }, + { + "label": "Para todas idades", + "value": "0" + }, + { + "label": "Para maiores de idade", + "value": "1" + } + ] + }, + "status[]": { + "type": "Checkbox", + "label": "Status", + "value": [], + "options": [ + { + "label": "Completo", + "value": "complete" + }, + { + "label": "Ativo", + "value": "on-going" + }, + { + "label": "Cancelado", + "value": "canceled" + }, + { + "label": "Pausado", + "value": "on-hold" + } + ] + }, + "m_orderby": { + "type": "Picker", + "label": "Ordem por", + "value": "", + "options": [ + { + "label": "Relevância", + "value": "" + }, + { + "label": "Mais antigo", + "value": "latest" + }, + { + "label": "A-Z", + "value": "alphabet" + }, + { + "label": "Avaliação", + "value": "rating" + }, + { + "label": "Tendência", + "value": "trending" + }, + { + "label": "Mais Visualizado", + "value": "views" + }, + { + "label": "Novo", + "value": "new-manga" + } + ] + } + } +} \ No newline at end of file diff --git a/scripts/multisrc/madara/filters/lnheaven.json b/scripts/multisrc/madara/filters/lnheaven.json new file mode 100644 index 0000000..fe90d07 --- /dev/null +++ b/scripts/multisrc/madara/filters/lnheaven.json @@ -0,0 +1,280 @@ +{ + "filters": { + "genre[]": { + "type": "Checkbox", + "label": "Genre", + "value": [], + "options": [ + { + "label": "Action", + "value": "action" + }, + { + "label": "Adult", + "value": "adult" + }, + { + "label": "Adventure", + "value": "adventure" + }, + { + "label": "Cartoon", + "value": "cartoon" + }, + { + "label": "Comedy", + "value": "comedy" + }, + { + "label": "Crossdressing", + "value": "crossdressing" + }, + { + "label": "Drama", + "value": "drama" + }, + { + "label": "Ecchi", + "value": "ecchi" + }, + { + "label": "Fantasy", + "value": "fantasy" + }, + { + "label": "Female Protagonist", + "value": "female-protagonist" + }, + { + "label": "Gender Bender", + "value": "gender-bender" + }, + { + "label": "Harem", + "value": "harem" + }, + { + "label": "Historical", + "value": "historical" + }, + { + "label": "Horror", + "value": "horror" + }, + { + "label": "Josei", + "value": "josei" + }, + { + "label": "Manga", + "value": "manga" + }, + { + "label": "Manhua", + "value": "manhua" + }, + { + "label": "Manhwa", + "value": "manhwa" + }, + { + "label": "Martial Arts", + "value": "martial-arts" + }, + { + "label": "Mature", + "value": "mature" + }, + { + "label": "Mecha", + "value": "mecha" + }, + { + "label": "Mystery", + "value": "mystery" + }, + { + "label": "One shot", + "value": "one-shot" + }, + { + "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": "Smut", + "value": "smut" + }, + { + "label": "Sports", + "value": "sports" + }, + { + "label": "Supernatural", + "value": "supernatural" + }, + { + "label": "Tragedy", + "value": "tragedy" + }, + { + "label": "Webtoon", + "value": "webtoon" + }, + { + "label": "Wuxia", + "value": "wuxia" + }, + { + "label": "Xianxia", + "value": "xianxia" + }, + { + "label": "Xuanhuan", + "value": "xuanhuan" + }, + { + "label": "Yaoi", + "value": "yaoi" + }, + { + "label": "Yuri", + "value": "yuri" + } + ] + }, + "op": { + "type": "Switch", + "label": "having all selected genres", + "value": false + }, + "author": { + "type": "Text", + "label": "Author", + "value": "" + }, + "artist": { + "type": "Text", + "label": "Artist", + "value": "" + }, + "release": { + "type": "Text", + "label": "Year of Released", + "value": "" + }, + "adult": { + "type": "Picker", + "label": "Adult content", + "value": "", + "options": [ + { + "label": "All", + "value": "" + }, + { + "label": "None adult content", + "value": "0" + }, + { + "label": "Only adult content", + "value": "1" + } + ] + }, + "status[]": { + "type": "Checkbox", + "label": "Status", + "value": [], + "options": [ + { + "label": "OnGoing", + "value": "on-going" + }, + { + "label": "Completed", + "value": "end" + }, + { + "label": "Canceled", + "value": "canceled" + }, + { + "label": "On Hold", + "value": "on-hold" + }, + { + "label": "Upcoming", + "value": "upcoming" + } + ] + }, + "m_orderby": { + "type": "Picker", + "label": "Order by", + "value": "", + "options": [ + { + "label": "Relevance", + "value": "" + }, + { + "label": "Latest", + "value": "latest" + }, + { + "label": "A-Z", + "value": "alphabet" + }, + { + "label": "Rating", + "value": "rating" + }, + { + "label": "Trending", + "value": "trending" + }, + { + "label": "Most Views", + "value": "views" + }, + { + "label": "New", + "value": "new-manga" + } + ] + } + } +} \ No newline at end of file diff --git a/scripts/multisrc/madara/filters/lunarletters.json b/scripts/multisrc/madara/filters/lunarletters.json new file mode 100644 index 0000000..fcf7d40 --- /dev/null +++ b/scripts/multisrc/madara/filters/lunarletters.json @@ -0,0 +1,124 @@ +{ + "filters": { + "genre[]": { + "type": "Checkbox", + "label": "Genre", + "value": [], + "options": [ + { + "label": "Fantasy Romance", + "value": "fantasy-romance" + }, + { + "label": "Historical Romance", + "value": "historical-romance" + }, + { + "label": "Modern Romance", + "value": "modern-romance" + } + ] + }, + "op": { + "type": "Switch", + "label": "having all selected genres", + "value": false + }, + "author": { + "type": "Text", + "label": "Author", + "value": "" + }, + "artist": { + "type": "Text", + "label": "Artist", + "value": "" + }, + "release": { + "type": "Text", + "label": "Year of Released", + "value": "" + }, + "adult": { + "type": "Picker", + "label": "Adult content", + "value": "", + "options": [ + { + "label": "All", + "value": "" + }, + { + "label": "None adult content", + "value": "0" + }, + { + "label": "Only adult content", + "value": "1" + } + ] + }, + "status[]": { + "type": "Checkbox", + "label": "Status", + "value": [], + "options": [ + { + "label": "OnGoing", + "value": "on-going" + }, + { + "label": "Completed", + "value": "end" + }, + { + "label": "Canceled", + "value": "canceled" + }, + { + "label": "On Hold", + "value": "on-hold" + }, + { + "label": "Upcoming", + "value": "upcoming" + } + ] + }, + "m_orderby": { + "type": "Picker", + "label": "Order by", + "value": "", + "options": [ + { + "label": "Relevance", + "value": "" + }, + { + "label": "Latest", + "value": "latest" + }, + { + "label": "A-Z", + "value": "alphabet" + }, + { + "label": "Rating", + "value": "rating" + }, + { + "label": "Trending", + "value": "trending" + }, + { + "label": "Most Views", + "value": "views" + }, + { + "label": "New", + "value": "new-manga" + } + ] + } + } +} \ No newline at end of file diff --git a/scripts/multisrc/madara/filters/meionovel.json b/scripts/multisrc/madara/filters/meionovel.json new file mode 100644 index 0000000..89c9e19 --- /dev/null +++ b/scripts/multisrc/madara/filters/meionovel.json @@ -0,0 +1,272 @@ +{ + "filters": { + "genre[]": { + "type": "Checkbox", + "label": "Genre", + "value": [], + "options": [ + { + "label": "Action", + "value": "action" + }, + { + "label": "Adventure", + "value": "adventure" + }, + { + "label": "Comedy", + "value": "comedy" + }, + { + "label": "Cooking", + "value": "cooking" + }, + { + "label": "Drama", + "value": "drama" + }, + { + "label": "Ecchi", + "value": "ecchi" + }, + { + "label": "Fanfiction", + "value": "fanfiction" + }, + { + "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": "Magic", + "value": "magic" + }, + { + "label": "Martial Arts", + "value": "martial-arts" + }, + { + "label": "Mature", + "value": "mature" + }, + { + "label": "Mecha", + "value": "mecha" + }, + { + "label": "Mystery", + "value": "mystery" + }, + { + "label": "One shot", + "value": "one-shot" + }, + { + "label": "Psychological", + "value": "psychological" + }, + { + "label": "Reverse Harem", + "value": "reverse-harem" + }, + { + "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": "Smut", + "value": "smut" + }, + { + "label": "Sports", + "value": "sports" + }, + { + "label": "Supernatural", + "value": "supernatural" + }, + { + "label": "Tragedy", + "value": "tragedy" + }, + { + "label": "Virtual Reality", + "value": "virtual-reality" + }, + { + "label": "Wuxia", + "value": "wuxia" + }, + { + "label": "Xianxia", + "value": "xianxia" + }, + { + "label": "Xuanhuan", + "value": "xuanhuan" + }, + { + "label": "Yuri", + "value": "yuri" + } + ] + }, + "op": { + "type": "Switch", + "label": "having all selected genres", + "value": false + }, + "author": { + "type": "Text", + "label": "Author", + "value": "" + }, + "artist": { + "type": "Text", + "label": "Artist", + "value": "" + }, + "release": { + "type": "Text", + "label": "Year of Released", + "value": "" + }, + "adult": { + "type": "Picker", + "label": "Adult content", + "value": "", + "options": [ + { + "label": "All", + "value": "" + }, + { + "label": "None adult content", + "value": "0" + }, + { + "label": "Only adult content", + "value": "1" + } + ] + }, + "status[]": { + "type": "Checkbox", + "label": "Status", + "value": [], + "options": [ + { + "label": "OnGoing", + "value": "on-going" + }, + { + "label": "Completed", + "value": "end" + }, + { + "label": "Canceled", + "value": "canceled" + }, + { + "label": "On Hold", + "value": "on-hold" + }, + { + "label": "Upcoming", + "value": "upcoming" + } + ] + }, + "m_orderby": { + "type": "Picker", + "label": "Order by", + "value": "", + "options": [ + { + "label": "Relevance", + "value": "" + }, + { + "label": "Latest", + "value": "latest" + }, + { + "label": "A-Z", + "value": "alphabet" + }, + { + "label": "Rating", + "value": "rating" + }, + { + "label": "Trending", + "value": "trending" + }, + { + "label": "Most Views", + "value": "views" + }, + { + "label": "New", + "value": "new-manga" + } + ] + } + } +} \ No newline at end of file diff --git a/scripts/multisrc/madara/filters/morenovel.json b/scripts/multisrc/madara/filters/morenovel.json new file mode 100644 index 0000000..64d36a2 --- /dev/null +++ b/scripts/multisrc/madara/filters/morenovel.json @@ -0,0 +1,244 @@ +{ + "filters": { + "genre[]": { + "type": "Checkbox", + "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": "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" + } + ] + }, + "op": { + "type": "Switch", + "label": "having all selected genres", + "value": false + }, + "author": { + "type": "Text", + "label": "Author", + "value": "" + }, + "artist": { + "type": "Text", + "label": "Artist", + "value": "" + }, + "release": { + "type": "Text", + "label": "Year of Released", + "value": "" + }, + "adult": { + "type": "Picker", + "label": "Adult content", + "value": "", + "options": [ + { + "label": "All", + "value": "" + }, + { + "label": "None adult content", + "value": "0" + }, + { + "label": "Only adult content", + "value": "1" + } + ] + }, + "status[]": { + "type": "Checkbox", + "label": "Status", + "value": [], + "options": [ + { + "label": "OnGoing", + "value": "on-going" + }, + { + "label": "Completed", + "value": "end" + }, + { + "label": "Canceled", + "value": "canceled" + }, + { + "label": "On Hold", + "value": "on-hold" + }, + { + "label": "Upcoming", + "value": "upcoming" + } + ] + }, + "m_orderby": { + "type": "Picker", + "label": "Order by", + "value": "", + "options": [ + { + "label": "Relevance", + "value": "" + }, + { + "label": "Latest", + "value": "latest" + }, + { + "label": "A-Z", + "value": "alphabet" + }, + { + "label": "Rating", + "value": "rating" + }, + { + "label": "Trending", + "value": "trending" + }, + { + "label": "Most Views", + "value": "views" + }, + { + "label": "New", + "value": "new-manga" + } + ] + } + } +} \ No newline at end of file diff --git a/scripts/multisrc/madara/filters/mostnovel.json b/scripts/multisrc/madara/filters/mostnovel.json new file mode 100644 index 0000000..b931f39 --- /dev/null +++ b/scripts/multisrc/madara/filters/mostnovel.json @@ -0,0 +1,372 @@ +{ + "filters": { + "genre[]": { + "type": "Checkbox", + "label": "Genre", + "value": [], + "options": [ + { + "label": "ACG", + "value": "acg" + }, + { + "label": "Action", + "value": "action" + }, + { + "label": "Adult", + "value": "adult" + }, + { + "label": "Adventure", + "value": "adventure" + }, + { + "label": "AGA", + "value": "aga" + }, + { + "label": "Anime", + "value": "anime" + }, + { + "label": "Anime & Comics", + "value": "anime-comics" + }, + { + "label": "Bender", + "value": "bender" + }, + { + "label": "BL", + "value": "bl" + }, + { + "label": "Cartoon", + "value": "cartoon" + }, + { + "label": "Comedy", + "value": "comedy" + }, + { + "label": "Comic", + "value": "comic" + }, + { + "label": "Contemporary Romance", + "value": "contemporary-romance" + }, + { + "label": "Cooking", + "value": "cooking" + }, + { + "label": "Cultivation", + "value": "cultivation" + }, + { + "label": "Detective", + "value": "detective" + }, + { + "label": "Doujinshi", + "value": "doujinshi" + }, + { + "label": "Drama", + "value": "drama" + }, + { + "label": "Eastern", + "value": "eastern" + }, + { + "label": "Eastern Fantasy", + "value": "eastern-fantasy" + }, + { + "label": "Ecchi", + "value": "ecchi" + }, + { + "label": "Fantasy", + "value": "fantasy" + }, + { + "label": "Gender Bender", + "value": "gender-bender" + }, + { + "label": "General", + "value": "general" + }, + { + "label": "Harem", + "value": "harem" + }, + { + "label": "Historical", + "value": "historical" + }, + { + "label": "Horror", + "value": "horror" + }, + { + "label": "Horror&Thriller", + "value": "horrorthriller" + }, + { + "label": "Josei", + "value": "josei" + }, + { + "label": "Live action", + "value": "live-action" + }, + { + "label": "Magical Realism", + "value": "magical-realism" + }, + { + "label": "Manga", + "value": "manga" + }, + { + "label": "Manhua", + "value": "manhua" + }, + { + "label": "Manhwa", + "value": "manhwa" + }, + { + "label": "Martial Arts", + "value": "martial-arts" + }, + { + "label": "Mature", + "value": "mature" + }, + { + "label": "Mecha", + "value": "mecha" + }, + { + "label": "Modern", + "value": "modern" + }, + { + "label": "Movies", + "value": "movies" + }, + { + "label": "Mystery", + "value": "mystery" + }, + { + "label": "One shot", + "value": "one-shot" + }, + { + "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": "Smart MC", + "value": "smart-mc" + }, + { + "label": "Smut", + "value": "smut" + }, + { + "label": "Soft Yaoi", + "value": "soft-yaoi" + }, + { + "label": "Soft Yuri", + "value": "soft-yuri" + }, + { + "label": "Sports", + "value": "sports" + }, + { + "label": "Supernatural", + "value": "supernatural" + }, + { + "label": "Tragedy", + "value": "tragedy" + }, + { + "label": "Urban Life", + "value": "urban-life" + }, + { + "label": "Video Games", + "value": "video-games" + }, + { + "label": "Webtoon", + "value": "webtoon" + }, + { + "label": "Wuxia", + "value": "wuxia" + }, + { + "label": "Xianxia", + "value": "xianxia" + }, + { + "label": "Xuanhuan", + "value": "xuanhuan" + }, + { + "label": "Yaoi", + "value": "yaoi" + }, + { + "label": "Yuri", + "value": "yuri" + } + ] + }, + "op": { + "type": "Switch", + "label": "having all selected genres", + "value": false + }, + "author": { + "type": "Text", + "label": "Author", + "value": "" + }, + "artist": { + "type": "Text", + "label": "Artist", + "value": "" + }, + "release": { + "type": "Text", + "label": "Year of Released", + "value": "" + }, + "adult": { + "type": "Picker", + "label": "Adult content", + "value": "", + "options": [ + { + "label": "All", + "value": "" + }, + { + "label": "None adult content", + "value": "0" + }, + { + "label": "Only adult content", + "value": "1" + } + ] + }, + "status[]": { + "type": "Checkbox", + "label": "Status", + "value": [], + "options": [ + { + "label": "Completed", + "value": "complete" + }, + { + "label": "Ongoing", + "value": "on-going" + }, + { + "label": "Canceled", + "value": "canceled" + }, + { + "label": "On Hold", + "value": "on-hold" + } + ] + }, + "m_orderby": { + "type": "Picker", + "label": "Order by", + "value": "", + "options": [ + { + "label": "Relevance", + "value": "" + }, + { + "label": "Latest", + "value": "latest" + }, + { + "label": "A-Z", + "value": "alphabet" + }, + { + "label": "Rating", + "value": "rating" + }, + { + "label": "Trending", + "value": "trending" + }, + { + "label": "Most Views", + "value": "views" + }, + { + "label": "New", + "value": "new-manga" + } + ] + } + } +} \ No newline at end of file diff --git a/scripts/multisrc/madara/filters/mtl-novel.json b/scripts/multisrc/madara/filters/mtl-novel.json new file mode 100644 index 0000000..403426a --- /dev/null +++ b/scripts/multisrc/madara/filters/mtl-novel.json @@ -0,0 +1,48 @@ +{ + "filters": { + "genre[]": { + "type": "Checkbox", + "label": "Genre", + "value": [], + "options": [] + }, + "op": { + "type": "Switch", + "label": "", + "value": false + }, + "author": { + "type": "Text", + "label": "", + "value": "" + }, + "artist": { + "type": "Text", + "label": "", + "value": "" + }, + "release": { + "type": "Text", + "label": "", + "value": "" + }, + "adult": { + "type": "Picker", + "label": "", + "value": "", + "options": [] + }, + "status[]": { + "type": "Checkbox", + "label": "", + "value": [], + "options": [] + }, + "m_orderby": { + "type": "Picker", + "label": "", + "value": "", + "options": [] + } + } +} \ No newline at end of file diff --git a/scripts/multisrc/madara/filters/mtlnovel.club.json b/scripts/multisrc/madara/filters/mtlnovel.club.json new file mode 100644 index 0000000..3e71fa2 --- /dev/null +++ b/scripts/multisrc/madara/filters/mtlnovel.club.json @@ -0,0 +1,244 @@ +{ + "filters": { + "genre[]": { + "type": "Checkbox", + "label": "Genre", + "value": [], + "options": [ + { + "label": "Adult", + "value": "adult" + }, + { + "label": "Adventure", + "value": "adventure" + }, + { + "label": "Comedy", + "value": "comedy" + }, + { + "label": "Drama", + "value": "drama" + }, + { + "label": "Ecchi", + "value": "ecchi" + }, + { + "label": "Fan-Fiction", + "value": "fan-fiction" + }, + { + "label": "Fantasy", + "value": "fantasy" + }, + { + "label": "Game", + "value": "game" + }, + { + "label": "Gender Bender", + "value": "gender-bender" + }, + { + "label": "Historical", + "value": "historical" + }, + { + "label": "Horror", + "value": "horror" + }, + { + "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": "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": "Smut", + "value": "smut" + }, + { + "label": "Sports", + "value": "sports" + }, + { + "label": "Supernatural", + "value": "supernatural" + }, + { + "label": "Tragedy", + "value": "tragedy" + }, + { + "label": "Urban Life", + "value": "urban-life" + }, + { + "label": "Xuanhuan", + "value": "xuanhuan" + }, + { + "label": "Yaoi", + "value": "yaoi" + }, + { + "label": "Yuri", + "value": "yuri" + } + ] + }, + "op": { + "type": "Switch", + "label": "having all selected genres", + "value": false + }, + "author": { + "type": "Text", + "label": "Author", + "value": "" + }, + "artist": { + "type": "Text", + "label": "Artist", + "value": "" + }, + "release": { + "type": "Text", + "label": "Year of Released", + "value": "" + }, + "adult": { + "type": "Picker", + "label": "Adult content", + "value": "", + "options": [ + { + "label": "All", + "value": "" + }, + { + "label": "None adult content", + "value": "0" + }, + { + "label": "Only adult content", + "value": "1" + } + ] + }, + "status[]": { + "type": "Checkbox", + "label": "Status", + "value": [], + "options": [ + { + "label": "OnGoing", + "value": "on-going" + }, + { + "label": "Completed", + "value": "end" + }, + { + "label": "Canceled", + "value": "canceled" + }, + { + "label": "On Hold", + "value": "on-hold" + }, + { + "label": "Upcoming", + "value": "upcoming" + } + ] + }, + "m_orderby": { + "type": "Picker", + "label": "Order by", + "value": "", + "options": [ + { + "label": "Relevance", + "value": "" + }, + { + "label": "Latest", + "value": "latest" + }, + { + "label": "A-Z", + "value": "alphabet" + }, + { + "label": "Rating", + "value": "rating" + }, + { + "label": "Trending", + "value": "trending" + }, + { + "label": "Most Views", + "value": "views" + }, + { + "label": "New", + "value": "new-manga" + } + ] + } + } +} \ No newline at end of file diff --git a/scripts/multisrc/madara/filters/mysticalmerries.json b/scripts/multisrc/madara/filters/mysticalmerries.json new file mode 100644 index 0000000..3694029 --- /dev/null +++ b/scripts/multisrc/madara/filters/mysticalmerries.json @@ -0,0 +1,180 @@ +{ + "filters": { + "genre[]": { + "type": "Checkbox", + "label": "Genre", + "value": [], + "options": [ + { + "label": "action", + "value": "action" + }, + { + "label": "adventure", + "value": "adventure" + }, + { + "label": "boys", + "value": "boys" + }, + { + "label": "chinese", + "value": "chinese" + }, + { + "label": "drama", + "value": "drama" + }, + { + "label": "ecchi", + "value": "ecchi" + }, + { + "label": "fighting", + "value": "fighting" + }, + { + "label": "fun", + "value": "fun" + }, + { + "label": "girl", + "value": "girl" + }, + { + "label": "horrow", + "value": "horrow" + }, + { + "label": "isekai", + "value": "isekai" + }, + { + "label": "manhwa", + "value": "manhwa" + }, + { + "label": "r19", + "value": "r19" + }, + { + "label": "regression", + "value": "regression" + }, + { + "label": "reincarnation", + "value": "reincarnation" + }, + { + "label": "romance fantasy", + "value": "romance-fantasy" + }, + { + "label": "time travel", + "value": "time-travel" + } + ] + }, + "op": { + "type": "Switch", + "label": "having all selected genres", + "value": false + }, + "author": { + "type": "Text", + "label": "Author", + "value": "" + }, + "artist": { + "type": "Text", + "label": "Artist", + "value": "" + }, + "release": { + "type": "Text", + "label": "Year of Released", + "value": "" + }, + "adult": { + "type": "Picker", + "label": "Adult content", + "value": "", + "options": [ + { + "label": "All", + "value": "" + }, + { + "label": "None adult content", + "value": "0" + }, + { + "label": "Only adult content", + "value": "1" + } + ] + }, + "status[]": { + "type": "Checkbox", + "label": "Status", + "value": [], + "options": [ + { + "label": "OnGoing", + "value": "on-going" + }, + { + "label": "Completed", + "value": "end" + }, + { + "label": "Canceled", + "value": "canceled" + }, + { + "label": "On Hold", + "value": "on-hold" + }, + { + "label": "Upcoming", + "value": "upcoming" + } + ] + }, + "m_orderby": { + "type": "Picker", + "label": "Order by", + "value": "", + "options": [ + { + "label": "Relevance", + "value": "" + }, + { + "label": "Latest", + "value": "latest" + }, + { + "label": "A-Z", + "value": "alphabet" + }, + { + "label": "Rating", + "value": "rating" + }, + { + "label": "Trending", + "value": "trending" + }, + { + "label": "Most Views", + "value": "views" + }, + { + "label": "New", + "value": "new-manga" + } + ] + } + } +} \ No newline at end of file diff --git a/scripts/multisrc/madara/filters/neosekaiTLS.json b/scripts/multisrc/madara/filters/neosekaiTLS.json new file mode 100644 index 0000000..9518cd8 --- /dev/null +++ b/scripts/multisrc/madara/filters/neosekaiTLS.json @@ -0,0 +1,168 @@ +{ + "filters": { + "genre[]": { + "type": "Checkbox", + "label": "Genre", + "value": [], + "options": [ + { + "label": "Action", + "value": "action" + }, + { + "label": "Adventure", + "value": "adventure" + }, + { + "label": "Comedy", + "value": "comedy" + }, + { + "label": "Drama", + "value": "drama" + }, + { + "label": "Fantasy", + "value": "fantasy" + }, + { + "label": "Harem", + "value": "harem" + }, + { + "label": "Horror", + "value": "horror" + }, + { + "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": "Slice of Life", + "value": "slice-of-life" + } + ] + }, + "op": { + "type": "Switch", + "label": "having all selected genres", + "value": false + }, + "author": { + "type": "Text", + "label": "Author", + "value": "" + }, + "artist": { + "type": "Text", + "label": "Artist", + "value": "" + }, + "release": { + "type": "Text", + "label": "Year of Released", + "value": "" + }, + "adult": { + "type": "Picker", + "label": "Adult content", + "value": "", + "options": [ + { + "label": "All", + "value": "" + }, + { + "label": "None adult content", + "value": "0" + }, + { + "label": "Only adult content", + "value": "1" + } + ] + }, + "status[]": { + "type": "Checkbox", + "label": "Status", + "value": [], + "options": [ + { + "label": "Completed", + "value": "complete" + }, + { + "label": "Ongoing", + "value": "on-going" + }, + { + "label": "Canceled", + "value": "canceled" + }, + { + "label": "On Hold", + "value": "on-hold" + } + ] + }, + "m_orderby": { + "type": "Picker", + "label": "Order by", + "value": "", + "options": [ + { + "label": "Relevance", + "value": "" + }, + { + "label": "Latest", + "value": "latest" + }, + { + "label": "A-Z", + "value": "alphabet" + }, + { + "label": "Rating", + "value": "rating" + }, + { + "label": "Trending", + "value": "trending" + }, + { + "label": "Most Views", + "value": "views" + }, + { + "label": "New", + "value": "new-manga" + } + ] + } + } +} \ No newline at end of file diff --git a/scripts/multisrc/madara/filters/nitromanga.json b/scripts/multisrc/madara/filters/nitromanga.json new file mode 100644 index 0000000..f0c4870 --- /dev/null +++ b/scripts/multisrc/madara/filters/nitromanga.json @@ -0,0 +1,336 @@ +{ + "filters": { + "genre[]": { + "type": "Checkbox", + "label": "Genre", + "value": [], + "options": [ + { + "label": "Action", + "value": "action" + }, + { + "label": "Adventure", + "value": "adventure" + }, + { + "label": "Apocalyptic", + "value": "apocalyptic" + }, + { + "label": "Beasts", + "value": "beasts" + }, + { + "label": "Cheat Systems", + "value": "cheat-systems" + }, + { + "label": "Comedy", + "value": "comedy" + }, + { + "label": "Completed", + "value": "completed" + }, + { + "label": "Crime", + "value": "crime" + }, + { + "label": "Cultivation", + "value": "cultivation" + }, + { + "label": "Demons", + "value": "demons" + }, + { + "label": "Drama", + "value": "drama" + }, + { + "label": "Dungeons", + "value": "dungeons" + }, + { + "label": "Ecchi", + "value": "ecchi" + }, + { + "label": "Fantasy", + "value": "fantasy" + }, + { + "label": "Game", + "value": "game" + }, + { + "label": "Genius MC", + "value": "genius-mc" + }, + { + "label": "Ghosts", + "value": "ghosts" + }, + { + "label": "Harem", + "value": "harem" + }, + { + "label": "Historical", + "value": "historical" + }, + { + "label": "Horror", + "value": "horror" + }, + { + "label": "Hunter", + "value": "hunter" + }, + { + "label": "Isekai", + "value": "isekai" + }, + { + "label": "Magic", + "value": "magic" + }, + { + "label": "Manga", + "value": "manga" + }, + { + "label": "Manhua", + "value": "manhua" + }, + { + "label": "Manhwa", + "value": "manhwa" + }, + { + "label": "Martial Arts", + "value": "martial-arts" + }, + { + "label": "Mature", + "value": "mature" + }, + { + "label": "Mecha", + "value": "mecha" + }, + { + "label": "Medical", + "value": "medical" + }, + { + "label": "Monsters", + "value": "monsters" + }, + { + "label": "Murim", + "value": "murim" + }, + { + "label": "Mystery", + "value": "mystery" + }, + { + "label": "Novel", + "value": "novel" + }, + { + "label": "Overpowered", + "value": "overpowered" + }, + { + "label": "Psychological", + "value": "psychological" + }, + { + "label": "Rebirth", + "value": "rebirth" + }, + { + "label": "Regression", + "value": "regression" + }, + { + "label": "Reincarnation", + "value": "reincarnation" + }, + { + "label": "Revenge", + "value": "revenge" + }, + { + "label": "Romance", + "value": "romance" + }, + { + "label": "School Life", + "value": "school-life" + }, + { + "label": "Sci-fi", + "value": "sci-fi" + }, + { + "label": "Seinen", + "value": "seinen" + }, + { + "label": "Shounen", + "value": "shounen" + }, + { + "label": "Slice of Life", + "value": "slice-of-life" + }, + { + "label": "Sports", + "value": "sports" + }, + { + "label": "Super Power", + "value": "super-power" + }, + { + "label": "Supernatural", + "value": "supernatural" + }, + { + "label": "System", + "value": "system" + }, + { + "label": "Time Travel", + "value": "time-travel" + }, + { + "label": "Tragedy", + "value": "tragedy" + }, + { + "label": "Video Games", + "value": "video-games" + }, + { + "label": "Webtoon", + "value": "webtoon" + }, + { + "label": "Wuxia", + "value": "wuxia" + }, + { + "label": "Zombie", + "value": "zombie" + } + ] + }, + "op": { + "type": "Switch", + "label": "having all selected genres", + "value": false + }, + "author": { + "type": "Text", + "label": "Author", + "value": "" + }, + "artist": { + "type": "Text", + "label": "Artist", + "value": "" + }, + "release": { + "type": "Text", + "label": "Year of Released", + "value": "" + }, + "adult": { + "type": "Picker", + "label": "Adult content", + "value": "", + "options": [ + { + "label": "All", + "value": "" + }, + { + "label": "None adult content", + "value": "0" + }, + { + "label": "Only adult content", + "value": "1" + } + ] + }, + "status[]": { + "type": "Checkbox", + "label": "Status", + "value": [], + "options": [ + { + "label": "OnGoing", + "value": "on-going" + }, + { + "label": "Completed", + "value": "end" + }, + { + "label": "Canceled", + "value": "canceled" + }, + { + "label": "On Hold", + "value": "on-hold" + }, + { + "label": "Upcoming", + "value": "upcoming" + } + ] + }, + "m_orderby": { + "type": "Picker", + "label": "Order by", + "value": "", + "options": [ + { + "label": "Relevance", + "value": "" + }, + { + "label": "Latest", + "value": "latest" + }, + { + "label": "A-Z", + "value": "alphabet" + }, + { + "label": "Rating", + "value": "rating" + }, + { + "label": "Trending", + "value": "trending" + }, + { + "label": "Most Views", + "value": "views" + }, + { + "label": "New", + "value": "new-manga" + } + ] + } + } +} \ No newline at end of file diff --git a/scripts/multisrc/madara/filters/novel-lucky.json b/scripts/multisrc/madara/filters/novel-lucky.json new file mode 100644 index 0000000..500052b --- /dev/null +++ b/scripts/multisrc/madara/filters/novel-lucky.json @@ -0,0 +1,384 @@ +{ + "filters": { + "genre[]": { + "type": "Checkbox", + "label": "Genre", + "value": [], + "options": [ + { + "label": "Action", + "value": "action" + }, + { + "label": "Adult", + "value": "adult" + }, + { + "label": "Adventure", + "value": "adventure" + }, + { + "label": "Anime", + "value": "anime" + }, + { + "label": "Cartoon", + "value": "cartoon" + }, + { + "label": "Comedy", + "value": "comedy" + }, + { + "label": "Comic", + "value": "comic" + }, + { + "label": "Cooking", + "value": "cooking" + }, + { + "label": "Detective", + "value": "detective" + }, + { + "label": "Doujinshi", + "value": "doujinshi" + }, + { + "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": "Josei", + "value": "josei" + }, + { + "label": "Live action", + "value": "live-action" + }, + { + "label": "Manga", + "value": "manga" + }, + { + "label": "Manhua", + "value": "manhua" + }, + { + "label": "Manhwa", + "value": "manhwa" + }, + { + "label": "Martial Arts", + "value": "martial-arts" + }, + { + "label": "Mature", + "value": "mature" + }, + { + "label": "Mecha", + "value": "mecha" + }, + { + "label": "Mystery", + "value": "mystery" + }, + { + "label": "One shot", + "value": "one-shot" + }, + { + "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": "Smut", + "value": "smut" + }, + { + "label": "Soft Yaoi", + "value": "soft-yaoi" + }, + { + "label": "Soft Yuri", + "value": "soft-yuri" + }, + { + "label": "Sports", + "value": "sports" + }, + { + "label": "Supernatural", + "value": "supernatural" + }, + { + "label": "Tragedy", + "value": "tragedy" + }, + { + "label": "Webtoon", + "value": "webtoon" + }, + { + "label": "Yaoi", + "value": "yaoi" + }, + { + "label": "Yuri", + "value": "yuri" + }, + { + "label": "จบแล้ว", + "value": "end" + }, + { + "label": "จันทร์", + "value": "monday" + }, + { + "label": "ทุกวัน", + "value": "everyday" + }, + { + "label": "นิยาย PDF", + "value": "นิยาย-pdf" + }, + { + "label": "นิยายจีน", + "value": "นิยายจีน" + }, + { + "label": "นิยายญี่ปุ่น", + "value": "นิยายญี่ปุ่น" + }, + { + "label": "นิยายดราม่า", + "value": "นิยายดราม่า" + }, + { + "label": "นิยายตลก", + "value": "นิยายตลก" + }, + { + "label": "นิยายทะลุมิติ", + "value": "นิยายทะลุมิติ" + }, + { + "label": "นิยายผจญภัย", + "value": "นิยายผจญภัย" + }, + { + "label": "นิยายผู้ใหญ่", + "value": "นิยายผู้ใหญ่" + }, + { + "label": "นิยายยูริ", + "value": "นิยายยูริ" + }, + { + "label": "นิยายรักโรแมนติก", + "value": "นิยายรักโรแมนติก" + }, + { + "label": "นิยายสยองขวัญ", + "value": "นิยายสยองขวัญ" + }, + { + "label": "นิยายเกาหลี", + "value": "นิยายเกาหลี" + }, + { + "label": "นิยายแฟนตาซี", + "value": "นิยายแฟนตาซี" + }, + { + "label": "นิยายไซไฟ", + "value": "นิยายไซไฟ" + }, + { + "label": "พฤหัสบดี", + "value": "thursday" + }, + { + "label": "พุธ", + "value": "wednesday" + }, + { + "label": "ศุกร์", + "value": "friday" + }, + { + "label": "อังคาร", + "value": "tuesday" + }, + { + "label": "อาทิตย์", + "value": "sunday" + }, + { + "label": "เสาร์", + "value": "saturday" + } + ] + }, + "op": { + "type": "Switch", + "label": "having all selected genres", + "value": false + }, + "author": { + "type": "Text", + "label": "Author", + "value": "" + }, + "artist": { + "type": "Text", + "label": "Artist", + "value": "" + }, + "release": { + "type": "Text", + "label": "Year of Released", + "value": "" + }, + "adult": { + "type": "Picker", + "label": "Adult content", + "value": "", + "options": [ + { + "label": "All", + "value": "" + }, + { + "label": "None adult content", + "value": "0" + }, + { + "label": "Only adult content", + "value": "1" + } + ] + }, + "status[]": { + "type": "Checkbox", + "label": "Status", + "value": [], + "options": [ + { + "label": "Completed", + "value": "complete" + }, + { + "label": "Ongoing", + "value": "on-going" + }, + { + "label": "Canceled", + "value": "canceled" + }, + { + "label": "On Hold", + "value": "on-hold" + } + ] + }, + "m_orderby": { + "type": "Picker", + "label": "Order by", + "value": "", + "options": [ + { + "label": "Relevance", + "value": "" + }, + { + "label": "Latest", + "value": "latest" + }, + { + "label": "A-Z", + "value": "alphabet" + }, + { + "label": "Rating", + "value": "rating" + }, + { + "label": "Trending", + "value": "trending" + }, + { + "label": "Most Views", + "value": "views" + }, + { + "label": "New", + "value": "new-manga" + } + ] + } + } +} \ No newline at end of file diff --git a/scripts/multisrc/madara/filters/novel4up.json b/scripts/multisrc/madara/filters/novel4up.json new file mode 100644 index 0000000..18a82ef --- /dev/null +++ b/scripts/multisrc/madara/filters/novel4up.json @@ -0,0 +1,212 @@ +{ + "filters": { + "genre[]": { + "type": "Checkbox", + "label": "Genre", + "value": [], + "options": [ + { + "label": "أكشن", + "value": "action" + }, + { + "label": "الخارق للطبيعة", + "value": "supernatural" + }, + { + "label": "تاريخي", + "value": "historical" + }, + { + "label": "تحقيق", + "value": "detective" + }, + { + "label": "تراجيديا", + "value": "tragedy" + }, + { + "label": "حريم", + "value": "harem" + }, + { + "label": "حياة مدرسية", + "value": "school-life" + }, + { + "label": "خيال علمي", + "value": "sci-fi" + }, + { + "label": "دراما", + "value": "drama" + }, + { + "label": "رعب", + "value": "horror" + }, + { + "label": "رومانسي", + "value": "romance" + }, + { + "label": "رياضة", + "value": "sports" + }, + { + "label": "سحر", + "value": "magic" + }, + { + "label": "شريحة من الحياة", + "value": "slice-of-life" + }, + { + "label": "شوانهوا", + "value": "xuanhuan" + }, + { + "label": "شوجو", + "value": "shoujo" + }, + { + "label": "شونين", + "value": "shounen" + }, + { + "label": "غموض", + "value": "mystery" + }, + { + "label": "فانتازيا", + "value": "fantasy" + }, + { + "label": "فنون قتال", + "value": "martial-arts" + }, + { + "label": "كوميديا", + "value": "comedy" + }, + { + "label": "مغامرة", + "value": "adventure" + }, + { + "label": "ميكا", + "value": "mecha" + }, + { + "label": "نفسي", + "value": "psychological" + }, + { + "label": "ون شوت", + "value": "one-shot" + }, + { + "label": "ووشيا", + "value": "wuxia" + } + ] + }, + "op": { + "type": "Switch", + "label": "having all selected genres", + "value": false + }, + "author": { + "type": "Text", + "label": "Author", + "value": "" + }, + "artist": { + "type": "Text", + "label": "Artist", + "value": "" + }, + "release": { + "type": "Text", + "label": "Year of Released", + "value": "" + }, + "adult": { + "type": "Picker", + "label": "Adult content", + "value": "", + "options": [ + { + "label": "All", + "value": "" + }, + { + "label": "None adult content", + "value": "0" + }, + { + "label": "Only adult content", + "value": "1" + } + ] + }, + "status[]": { + "type": "Checkbox", + "label": "Status", + "value": [], + "options": [ + { + "label": "Completed", + "value": "complete" + }, + { + "label": "Ongoing", + "value": "on-going" + }, + { + "label": "Canceled", + "value": "canceled" + }, + { + "label": "On Hold", + "value": "on-hold" + } + ] + }, + "m_orderby": { + "type": "Picker", + "label": "ترتيب حسب:", + "value": "", + "options": [ + { + "label": "Relevance", + "value": "" + }, + { + "label": "الأحدث", + "value": "latest" + }, + { + "label": "أ-ي", + "value": "alphabet" + }, + { + "label": "التقييم", + "value": "rating" + }, + { + "label": "الشائع", + "value": "trending" + }, + { + "label": "الأكثر مشاهدة", + "value": "views" + }, + { + "label": "الجديد", + "value": "new-manga" + } + ] + } + } +} \ No newline at end of file diff --git a/scripts/multisrc/madara/filters/novelTL.json b/scripts/multisrc/madara/filters/novelTL.json new file mode 100644 index 0000000..13fab27 --- /dev/null +++ b/scripts/multisrc/madara/filters/novelTL.json @@ -0,0 +1,360 @@ +{ + "filters": { + "genre[]": { + "type": "Checkbox", + "label": "Genre", + "value": [], + "options": [ + { + "label": "Action", + "value": "action" + }, + { + "label": "Adult", + "value": "adult" + }, + { + "label": "Adventure", + "value": "adventure" + }, + { + "label": "Bleach", + "value": "bleach" + }, + { + "label": "Chinese", + "value": "chinese" + }, + { + "label": "Comedy", + "value": "comedy" + }, + { + "label": "Conan", + "value": "conan" + }, + { + "label": "cooking", + "value": "cooking" + }, + { + "label": "Dragon Ball", + "value": "dragon-ball" + }, + { + "label": "Drama", + "value": "drama" + }, + { + "label": "Ecchi", + "value": "ecchi" + }, + { + "label": "Erciyuan", + "value": "erciyuan" + }, + { + "label": "Fairy Tail", + "value": "fairy-tail" + }, + { + "label": "Faloo", + "value": "faloo" + }, + { + "label": "Fan-Fiction", + "value": "fan-fiction" + }, + { + "label": "Fantasy", + "value": "fantasy" + }, + { + "label": "FoodWars!", + "value": "foodwars" + }, + { + "label": "Game", + "value": "game" + }, + { + "label": "Gender Bender", + "value": "gender-bender" + }, + { + "label": "Harem", + "value": "harem" + }, + { + "label": "Historical", + "value": "historical" + }, + { + "label": "Horror", + "value": "horror" + }, + { + "label": "Hunter x Hunter", + "value": "hunter-x-hunter" + }, + { + "label": "Isekai", + "value": "isekai" + }, + { + "label": "Japanese", + "value": "japanese" + }, + { + "label": "Jojo", + "value": "jojo" + }, + { + "label": "Josei", + "value": "josei" + }, + { + "label": "Korean", + "value": "korean" + }, + { + "label": "Martial Arts", + "value": "martial-arts" + }, + { + "label": "Marvel", + "value": "marvel" + }, + { + "label": "Mature", + "value": "mature" + }, + { + "label": "Mecha", + "value": "mecha" + }, + { + "label": "Military", + "value": "military" + }, + { + "label": "Mystery", + "value": "mystery" + }, + { + "label": "Naruto", + "value": "naruto" + }, + { + "label": "One piece", + "value": "one-piece" + }, + { + "label": "Pokemon", + "value": "pokemon" + }, + { + "label": "Political", + "value": "political" + }, + { + "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": "Smut", + "value": "smut" + }, + { + "label": "Sport", + "value": "sport" + }, + { + "label": "Sports", + "value": "sports" + }, + { + "label": "Supernatural", + "value": "supernatural" + }, + { + "label": "System", + "value": "system" + }, + { + "label": "Toriko", + "value": "toriko" + }, + { + "label": "Tragedy", + "value": "tragedy" + }, + { + "label": "Urban", + "value": "urban" + }, + { + "label": "Urban Life", + "value": "urban-life" + }, + { + "label": "Wuxia", + "value": "wuxia" + }, + { + "label": "Xianxia", + "value": "xianxia" + }, + { + "label": "Xuanhuan", + "value": "xuanhuan" + }, + { + "label": "Yaoi", + "value": "yaoi" + }, + { + "label": "Yuri", + "value": "yuri" + } + ] + }, + "op": { + "type": "Switch", + "label": "having all selected genres", + "value": false + }, + "author": { + "type": "Text", + "label": "Author", + "value": "" + }, + "artist": { + "type": "Text", + "label": "Artist", + "value": "" + }, + "release": { + "type": "Text", + "label": "Year of Released", + "value": "" + }, + "adult": { + "type": "Picker", + "label": "Adult content", + "value": "", + "options": [ + { + "label": "All", + "value": "" + }, + { + "label": "None adult content", + "value": "0" + }, + { + "label": "Only adult content", + "value": "1" + } + ] + }, + "status[]": { + "type": "Checkbox", + "label": "Status", + "value": [], + "options": [ + { + "label": "OnGoing", + "value": "on-going" + }, + { + "label": "Completed", + "value": "end" + }, + { + "label": "Canceled", + "value": "canceled" + }, + { + "label": "On Hold", + "value": "on-hold" + }, + { + "label": "Upcoming", + "value": "upcoming" + } + ] + }, + "m_orderby": { + "type": "Picker", + "label": "Order by", + "value": "", + "options": [ + { + "label": "Relevance", + "value": "" + }, + { + "label": "Latest", + "value": "latest" + }, + { + "label": "A-Z", + "value": "alphabet" + }, + { + "label": "Rating", + "value": "rating" + }, + { + "label": "Trending", + "value": "trending" + }, + { + "label": "Most Views", + "value": "views" + }, + { + "label": "New", + "value": "new-manga" + } + ] + } + } +} \ No newline at end of file diff --git a/scripts/multisrc/madara/filters/novelmultiverse.json b/scripts/multisrc/madara/filters/novelmultiverse.json new file mode 100644 index 0000000..5a1e743 --- /dev/null +++ b/scripts/multisrc/madara/filters/novelmultiverse.json @@ -0,0 +1,316 @@ +{ + "filters": { + "genre[]": { + "type": "Checkbox", + "label": "Genre", + "value": [], + "options": [ + { + "label": "Action", + "value": "action" + }, + { + "label": "Adult", + "value": "adult" + }, + { + "label": "Adventure", + "value": "adventure" + }, + { + "label": "Anime", + "value": "anime" + }, + { + "label": "Cartoon", + "value": "cartoon" + }, + { + "label": "Comedy", + "value": "comedy" + }, + { + "label": "Comic", + "value": "comic" + }, + { + "label": "Cooking", + "value": "cooking" + }, + { + "label": "Detective", + "value": "detective" + }, + { + "label": "Doujinshi", + "value": "doujinshi" + }, + { + "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": "Josei", + "value": "josei" + }, + { + "label": "Live action", + "value": "live-action" + }, + { + "label": "Manga", + "value": "manga" + }, + { + "label": "Manhua", + "value": "manhua" + }, + { + "label": "Manhwa", + "value": "manhwa" + }, + { + "label": "Martial Arts", + "value": "martial-arts" + }, + { + "label": "Mature", + "value": "mature" + }, + { + "label": "Mecha", + "value": "mecha" + }, + { + "label": "Mystery", + "value": "mystery" + }, + { + "label": "One shot", + "value": "one-shot" + }, + { + "label": "Original", + "value": "original" + }, + { + "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": "Smut", + "value": "smut" + }, + { + "label": "Soft Yaoi", + "value": "soft-yaoi" + }, + { + "label": "Soft Yuri", + "value": "soft-yuri" + }, + { + "label": "Sports", + "value": "sports" + }, + { + "label": "Supernatural", + "value": "supernatural" + }, + { + "label": "Tragedy", + "value": "tragedy" + }, + { + "label": "Translation", + "value": "translation" + }, + { + "label": "Webtoon", + "value": "webtoon" + }, + { + "label": "Wuxia", + "value": "wuxia" + }, + { + "label": "Xianxia", + "value": "xianxia" + }, + { + "label": "Xuanhuan", + "value": "xuanhuan" + }, + { + "label": "Yaoi", + "value": "yaoi" + }, + { + "label": "Yuri", + "value": "yuri" + } + ] + }, + "op": { + "type": "Switch", + "label": "having all selected genres", + "value": false + }, + "author": { + "type": "Text", + "label": "Author", + "value": "" + }, + "artist": { + "type": "Text", + "label": "Artist", + "value": "" + }, + "release": { + "type": "Text", + "label": "Year of Released", + "value": "" + }, + "adult": { + "type": "Picker", + "label": "Adult content", + "value": "", + "options": [ + { + "label": "All", + "value": "" + }, + { + "label": "None adult content", + "value": "0" + }, + { + "label": "Only adult content", + "value": "1" + } + ] + }, + "status[]": { + "type": "Checkbox", + "label": "Status", + "value": [], + "options": [ + { + "label": "OnGoing", + "value": "on-going" + }, + { + "label": "Completed", + "value": "end" + }, + { + "label": "Canceled", + "value": "canceled" + }, + { + "label": "On Hold", + "value": "on-hold" + }, + { + "label": "Upcoming", + "value": "upcoming" + } + ] + }, + "m_orderby": { + "type": "Picker", + "label": "Order by", + "value": "", + "options": [ + { + "label": "Relevance", + "value": "" + }, + { + "label": "Latest", + "value": "latest" + }, + { + "label": "A-Z", + "value": "alphabet" + }, + { + "label": "Rating", + "value": "rating" + }, + { + "label": "Trending", + "value": "trending" + }, + { + "label": "Most Views", + "value": "views" + }, + { + "label": "New", + "value": "new-manga" + } + ] + } + } +} \ No newline at end of file diff --git a/scripts/multisrc/madara/filters/panchotranslations.json b/scripts/multisrc/madara/filters/panchotranslations.json new file mode 100644 index 0000000..eee916e --- /dev/null +++ b/scripts/multisrc/madara/filters/panchotranslations.json @@ -0,0 +1,336 @@ +{ + "filters": { + "genre[]": { + "type": "Checkbox", + "label": "Genre", + "value": [], + "options": [ + { + "label": "Acción", + "value": "accion" + }, + { + "label": "Action", + "value": "action" + }, + { + "label": "Adult", + "value": "adult" + }, + { + "label": "Adventure", + "value": "adventure" + }, + { + "label": "Anime", + "value": "anime" + }, + { + "label": "Aventura", + "value": "aventura" + }, + { + "label": "Cartoon", + "value": "cartoon" + }, + { + "label": "Comedia", + "value": "comedia" + }, + { + "label": "Comedy", + "value": "comedy" + }, + { + "label": "Comic", + "value": "comic" + }, + { + "label": "Cooking", + "value": "cooking" + }, + { + "label": "Detective", + "value": "detective" + }, + { + "label": "Doujinshi", + "value": "doujinshi" + }, + { + "label": "Drama", + "value": "drama" + }, + { + "label": "Ecchi", + "value": "ecchi" + }, + { + "label": "Escolar", + "value": "escolar" + }, + { + "label": "Fantasía", + "value": "fantasia" + }, + { + "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": "Live action", + "value": "live-action" + }, + { + "label": "Magia", + "value": "magia" + }, + { + "label": "Malentendidos", + "value": "malentendidos" + }, + { + "label": "Manga", + "value": "manga" + }, + { + "label": "Manhua", + "value": "manhua" + }, + { + "label": "Manhwa", + "value": "manhwa" + }, + { + "label": "Martial Arts", + "value": "martial-arts" + }, + { + "label": "Mature", + "value": "mature" + }, + { + "label": "Mecha", + "value": "mecha" + }, + { + "label": "Mystery", + "value": "mystery" + }, + { + "label": "One shot", + "value": "one-shot" + }, + { + "label": "Posesión", + "value": "posesion" + }, + { + "label": "Psychological", + "value": "psychological" + }, + { + "label": "Reencarnación", + "value": "reencarnacion" + }, + { + "label": "Regresión", + "value": "regresion" + }, + { + "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": "Silce of Life", + "value": "silce-of-life" + }, + { + "label": "Slice of Life", + "value": "slice-of-life" + }, + { + "label": "Smut", + "value": "smut" + }, + { + "label": "Soft Yaoi", + "value": "soft-yaoi" + }, + { + "label": "Soft Yuri", + "value": "soft-yuri" + }, + { + "label": "Sports", + "value": "sports" + }, + { + "label": "Supernatural", + "value": "supernatural" + }, + { + "label": "Tragedy", + "value": "tragedy" + }, + { + "label": "Webtoon", + "value": "webtoon" + }, + { + "label": "Yaoi", + "value": "yaoi" + }, + { + "label": "Yuri", + "value": "yuri" + } + ] + }, + "op": { + "type": "Switch", + "label": "teniendo todos los géneros seleccionados", + "value": false + }, + "author": { + "type": "Text", + "label": "Autor", + "value": "" + }, + "artist": { + "type": "Text", + "label": "Artista", + "value": "" + }, + "release": { + "type": "Text", + "label": "Año de Lanzamiento", + "value": "" + }, + "adult": { + "type": "Picker", + "label": "Contenido para Adultos", + "value": "", + "options": [ + { + "label": "Todo", + "value": "" + }, + { + "label": "Ningún contenido para adultos", + "value": "0" + }, + { + "label": "Solo contenido para adultos", + "value": "1" + } + ] + }, + "status[]": { + "type": "Checkbox", + "label": "Estado", + "value": [], + "options": [ + { + "label": "Terminada", + "value": "complete" + }, + { + "label": "En curso", + "value": "on-going" + }, + { + "label": "Cancelada", + "value": "canceled" + }, + { + "label": "Abandonada por el Traductor", + "value": "on-hold" + } + ] + }, + "m_orderby": { + "type": "Picker", + "label": "Ordenar por", + "value": "", + "options": [ + { + "label": "Importancia", + "value": "" + }, + { + "label": "Más Reciente", + "value": "latest" + }, + { + "label": "A-Z", + "value": "alphabet" + }, + { + "label": "Clasificación", + "value": "rating" + }, + { + "label": "Tendencias", + "value": "trending" + }, + { + "label": "Más vistas", + "value": "views" + }, + { + "label": "Nuevo", + "value": "new-manga" + } + ] + } + } +} \ No newline at end of file diff --git a/scripts/multisrc/madara/filters/riwyat.json b/scripts/multisrc/madara/filters/riwyat.json new file mode 100644 index 0000000..a07f42b --- /dev/null +++ b/scripts/multisrc/madara/filters/riwyat.json @@ -0,0 +1,292 @@ +{ + "filters": { + "genre[]": { + "type": "Checkbox", + "label": "Genre", + "value": [], + "options": [ + { + "label": "أكشن", + "value": "أكشن" + }, + { + "label": "أيتشي", + "value": "أيتشي" + }, + { + "label": "استراتجي", + "value": "استراتجي" + }, + { + "label": "العصر الحديث", + "value": "العصر-الحديث" + }, + { + "label": "انتقام", + "value": "انتقام" + }, + { + "label": "بالغ", + "value": "بالغ" + }, + { + "label": "بناء مملكة", + "value": "بناء-مملكة" + }, + { + "label": "بوليسي", + "value": "بوليسي" + }, + { + "label": "تاريخي", + "value": "تاريخي" + }, + { + "label": "جوسي", + "value": "جوسي" + }, + { + "label": "حريم", + "value": "حريم" + }, + { + "label": "حياة يومية", + "value": "حياة-يومية" + }, + { + "label": "خيال", + "value": "خيال" + }, + { + "label": "خيال علمي", + "value": "خيال-علمي" + }, + { + "label": "دراما", + "value": "دراما" + }, + { + "label": "رعب", + "value": "رعب" + }, + { + "label": "رومانسية", + "value": "رومانسية" + }, + { + "label": "رياضي", + "value": "رياضي" + }, + { + "label": "زيانشيا", + "value": "xianxia" + }, + { + "label": "سنين", + "value": "سنين" + }, + { + "label": "شريحة حياة", + "value": "شريحة-حياة" + }, + { + "label": "شوانهوان", + "value": "xuanhuan" + }, + { + "label": "شوجو", + "value": "شوجو" + }, + { + "label": "شونين", + "value": "شونين" + }, + { + "label": "شيانشيا", + "value": "شيانشيا" + }, + { + "label": "عسكري", + "value": "عسكري" + }, + { + "label": "غموض", + "value": "غموض" + }, + { + "label": "فانتازيا", + "value": "فانتازيا" + }, + { + "label": "فنون قتالية", + "value": "فنون-قتالية" + }, + { + "label": "قوى خارقة", + "value": "قوى-خارقة" + }, + { + "label": "كوميديا", + "value": "كوميديا" + }, + { + "label": "كوميك", + "value": "كوميك" + }, + { + "label": "للكبار", + "value": "للكبار" + }, + { + "label": "مأساة", + "value": "مأساة" + }, + { + "label": "مانجا", + "value": "مانجا" + }, + { + "label": "مانها", + "value": "مانها" + }, + { + "label": "مانهوا", + "value": "مانهوا" + }, + { + "label": "مدرسي", + "value": "مدرسي" + }, + { + "label": "مصاصي دماء", + "value": "مصاصي-دماء" + }, + { + "label": "مغامرة", + "value": "مغامرة" + }, + { + "label": "مكتملة", + "value": "مكتملة" + }, + { + "label": "نفسي", + "value": "نفسي" + }, + { + "label": "نهاية العالم", + "value": "نهاية-العالم" + }, + { + "label": "واب تون", + "value": "واب-تون" + }, + { + "label": "وان شوت", + "value": "وان-شوت" + } + ] + }, + "op": { + "type": "Switch", + "label": "having all selected genres", + "value": false + }, + "author": { + "type": "Text", + "label": "Author", + "value": "" + }, + "artist": { + "type": "Text", + "label": "Artist", + "value": "" + }, + "release": { + "type": "Text", + "label": "Year of Released", + "value": "" + }, + "adult": { + "type": "Picker", + "label": "Adult content", + "value": "", + "options": [ + { + "label": "All", + "value": "" + }, + { + "label": "None adult content", + "value": "0" + }, + { + "label": "Only adult content", + "value": "1" + } + ] + }, + "status[]": { + "type": "Checkbox", + "label": "Status", + "value": [], + "options": [ + { + "label": "مستمرة", + "value": "on-going" + }, + { + "label": "Completed", + "value": "end" + }, + { + "label": "Canceled", + "value": "canceled" + }, + { + "label": "On Hold", + "value": "on-hold" + }, + { + "label": "Upcoming", + "value": "upcoming" + } + ] + }, + "m_orderby": { + "type": "Picker", + "label": "Order by", + "value": "", + "options": [ + { + "label": "Relevance", + "value": "" + }, + { + "label": "Latest", + "value": "latest" + }, + { + "label": "A-Z", + "value": "alphabet" + }, + { + "label": "Rating", + "value": "rating" + }, + { + "label": "Trending", + "value": "trending" + }, + { + "label": "Most Views", + "value": "views" + }, + { + "label": "New", + "value": "new-manga" + } + ] + } + } +} \ No newline at end of file diff --git a/scripts/multisrc/madara/filters/salmonlatte.json b/scripts/multisrc/madara/filters/salmonlatte.json new file mode 100644 index 0000000..e23b267 --- /dev/null +++ b/scripts/multisrc/madara/filters/salmonlatte.json @@ -0,0 +1,224 @@ +{ + "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": "Gender Bender", + "value": "gender-bender" + }, + { + "label": "Harem", + "value": "harem" + }, + { + "label": "Historical", + "value": "historical" + }, + { + "label": "Horror", + "value": "horror" + }, + { + "label": "Josei", + "value": "josei" + }, + { + "label": "Mystery", + "value": "mystery" + }, + { + "label": "Psychological", + "value": "psychological" + }, + { + "label": "R-19", + "value": "r-19" + }, + { + "label": "Reverse Harem", + "value": "reverse-harem" + }, + { + "label": "Romance", + "value": "romance" + }, + { + "label": "School Life", + "value": "school-life" + }, + { + "label": "Sci-fi", + "value": "sci-fi" + }, + { + "label": "Shoujo", + "value": "shoujo" + }, + { + "label": "Shoujo Ai", + "value": "shoujo-ai" + }, + { + "label": "Shounen Ai", + "value": "shounen-ai" + }, + { + "label": "Slice of Life", + "value": "slice-of-life" + }, + { + "label": "Smut", + "value": "smut" + }, + { + "label": "Supernatural", + "value": "supernatural" + }, + { + "label": "Tragedy", + "value": "tragedy" + }, + { + "label": "Yaoi", + "value": "yaoi" + }, + { + "label": "Yuri", + "value": "yuri" + } + ] + }, + "op": { + "type": "Switch", + "label": "having all selected genres", + "value": false + }, + "author": { + "type": "Text", + "label": "Author", + "value": "" + }, + "artist": { + "type": "Text", + "label": "Artist", + "value": "" + }, + "release": { + "type": "Text", + "label": "Year of Released", + "value": "" + }, + "adult": { + "type": "Picker", + "label": "Adult content", + "value": "", + "options": [ + { + "label": "All", + "value": "" + }, + { + "label": "None adult content", + "value": "0" + }, + { + "label": "Only adult content", + "value": "1" + } + ] + }, + "status[]": { + "type": "Checkbox", + "label": "Status", + "value": [], + "options": [ + { + "label": "OnGoing", + "value": "on-going" + }, + { + "label": "Completed", + "value": "end" + }, + { + "label": "Canceled", + "value": "canceled" + }, + { + "label": "On Hold", + "value": "on-hold" + }, + { + "label": "Upcoming", + "value": "upcoming" + }, + { + "label": "Dropped by Transalator", + "value": "dropped_by_translator" + } + ] + }, + "m_orderby": { + "type": "Picker", + "label": "Order by", + "value": "", + "options": [ + { + "label": "Relevance", + "value": "" + }, + { + "label": "Latest", + "value": "latest" + }, + { + "label": "A-Z", + "value": "alphabet" + }, + { + "label": "Rating", + "value": "rating" + }, + { + "label": "Trending", + "value": "trending" + }, + { + "label": "Most Views", + "value": "views" + }, + { + "label": "New", + "value": "new-manga" + } + ] + } + } +} \ No newline at end of file diff --git a/scripts/multisrc/madara/filters/sleeptTLS.json b/scripts/multisrc/madara/filters/sleeptTLS.json new file mode 100644 index 0000000..41e4bf9 --- /dev/null +++ b/scripts/multisrc/madara/filters/sleeptTLS.json @@ -0,0 +1,268 @@ +{ + "filters": { + "genre[]": { + "type": "Checkbox", + "label": "Genre", + "value": [], + "options": [ + { + "label": "Action", + "value": "action" + }, + { + "label": "Adventure", + "value": "adventure" + }, + { + "label": "Angst", + "value": "angst" + }, + { + "label": "Child Protagonist", + "value": "child-protagonist" + }, + { + "label": "Comedy", + "value": "comedy" + }, + { + "label": "Concubine/s", + "value": "concubine-s" + }, + { + "label": "Demons", + "value": "demons" + }, + { + "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": "isekai", + "value": "isekai" + }, + { + "label": "Josei", + "value": "josei" + }, + { + "label": "Magic", + "value": "magic" + }, + { + "label": "Martial Arts", + "value": "martialarts" + }, + { + "label": "Matriarchy", + "value": "matriarchy" + }, + { + "label": "Mature", + "value": "mature" + }, + { + "label": "Modern", + "value": "modern" + }, + { + "label": "Mystery", + "value": "mystery" + }, + { + "label": "Palace", + "value": "palace" + }, + { + "label": "Politics", + "value": "politics" + }, + { + "label": "Psychological", + "value": "psychological" + }, + { + "label": "Reincarnation", + "value": "reincarnation" + }, + { + "label": "Reverse Harem", + "value": "reverse-harem" + }, + { + "label": "Romance", + "value": "romance" + }, + { + "label": "School Life", + "value": "schoollife" + }, + { + "label": "Sci-Fi", + "value": "scifi" + }, + { + "label": "Shoujo", + "value": "shoujo" + }, + { + "label": "Shounen", + "value": "shounen" + }, + { + "label": "Slice of Life", + "value": "sliceoflife" + }, + { + "label": "Smut", + "value": "smut" + }, + { + "label": "Strong Female Lead", + "value": "strong-female-lead" + }, + { + "label": "Supernatural", + "value": "supernatural" + }, + { + "label": "System", + "value": "system" + }, + { + "label": "Tragedy", + "value": "tragedy" + }, + { + "label": "Transmigration", + "value": "transmigration" + }, + { + "label": "Yaoi", + "value": "yaoi" + } + ] + }, + "op": { + "type": "Switch", + "label": "having all selected genres", + "value": false + }, + "author": { + "type": "Text", + "label": "Author", + "value": "" + }, + "artist": { + "type": "Text", + "label": "Artist", + "value": "" + }, + "release": { + "type": "Text", + "label": "Year of Released", + "value": "" + }, + "adult": { + "type": "Picker", + "label": "Adult content", + "value": "", + "options": [ + { + "label": "All", + "value": "" + }, + { + "label": "None adult content", + "value": "0" + }, + { + "label": "Only adult content", + "value": "1" + } + ] + }, + "status[]": { + "type": "Checkbox", + "label": "Status", + "value": [], + "options": [ + { + "label": "OnGoing", + "value": "on-going" + }, + { + "label": "Completed", + "value": "end" + }, + { + "label": "Canceled", + "value": "canceled" + }, + { + "label": "On Hold", + "value": "on-hold" + }, + { + "label": "Upcoming", + "value": "upcoming" + } + ] + }, + "m_orderby": { + "type": "Picker", + "label": "Order by", + "value": "", + "options": [ + { + "label": "Relevance", + "value": "" + }, + { + "label": "Latest", + "value": "latest" + }, + { + "label": "A-Z", + "value": "alphabet" + }, + { + "label": "Rating", + "value": "rating" + }, + { + "label": "Trending", + "value": "trending" + }, + { + "label": "Most Views", + "value": "views" + }, + { + "label": "New", + "value": "new-manga" + } + ] + } + } +} \ No newline at end of file diff --git a/scripts/multisrc/madara/filters/sonicmtl.json b/scripts/multisrc/madara/filters/sonicmtl.json new file mode 100644 index 0000000..087d495 --- /dev/null +++ b/scripts/multisrc/madara/filters/sonicmtl.json @@ -0,0 +1,300 @@ +{ + "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": "Cooking", + "value": "cooking" + }, + { + "label": "Detective", + "value": "detective" + }, + { + "label": "Doujinshi", + "value": "doujinshi" + }, + { + "label": "Drama", + "value": "drama" + }, + { + "label": "Ecchi", + "value": "ecchi" + }, + { + "label": "Fan-Fiction", + "value": "fan-fiction" + }, + { + "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": "Live action", + "value": "live-action" + }, + { + "label": "Manga", + "value": "manga" + }, + { + "label": "Manhua", + "value": "manhua" + }, + { + "label": "Manhwa", + "value": "manhwa" + }, + { + "label": "Martial Arts", + "value": "martial-arts" + }, + { + "label": "Mature", + "value": "mature" + }, + { + "label": "Mecha", + "value": "mecha" + }, + { + "label": "Mystery", + "value": "mystery" + }, + { + "label": "One shot", + "value": "one-shot" + }, + { + "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": "Smut", + "value": "smut" + }, + { + "label": "Soft Yaoi", + "value": "soft-yaoi" + }, + { + "label": "Soft Yuri", + "value": "soft-yuri" + }, + { + "label": "Sports", + "value": "sports" + }, + { + "label": "Supernatural", + "value": "supernatural" + }, + { + "label": "Tragedy", + "value": "tragedy" + }, + { + "label": "Urban Life", + "value": "urban-life" + }, + { + "label": "Wuxia", + "value": "wuxia" + }, + { + "label": "Xianxia", + "value": "xianxia" + }, + { + "label": "Xuanhuan", + "value": "xuanhuan" + }, + { + "label": "Yaoi", + "value": "yaoi" + }, + { + "label": "Yuri", + "value": "yuri" + } + ] + }, + "op": { + "type": "Switch", + "label": "having all selected genres", + "value": false + }, + "author": { + "type": "Text", + "label": "Author", + "value": "" + }, + "artist": { + "type": "Text", + "label": "Artist", + "value": "" + }, + "release": { + "type": "Text", + "label": "Year of Released", + "value": "" + }, + "adult": { + "type": "Picker", + "label": "Adult content", + "value": "", + "options": [ + { + "label": "All", + "value": "" + }, + { + "label": "None adult content", + "value": "0" + }, + { + "label": "Only adult content", + "value": "1" + } + ] + }, + "status[]": { + "type": "Checkbox", + "label": "Status", + "value": [], + "options": [ + { + "label": "OnGoing", + "value": "on-going" + }, + { + "label": "Completed", + "value": "end" + }, + { + "label": "Canceled", + "value": "canceled" + }, + { + "label": "On Hold", + "value": "on-hold" + }, + { + "label": "Upcoming", + "value": "upcoming" + } + ] + }, + "m_orderby": { + "type": "Picker", + "label": "Order by", + "value": "", + "options": [ + { + "label": "Relevance", + "value": "" + }, + { + "label": "Latest", + "value": "latest" + }, + { + "label": "A-Z", + "value": "alphabet" + }, + { + "label": "Rating", + "value": "rating" + }, + { + "label": "Trending", + "value": "trending" + }, + { + "label": "Most Views", + "value": "views" + }, + { + "label": "New", + "value": "new-manga" + } + ] + } + } +} \ No newline at end of file diff --git a/scripts/multisrc/madara/filters/sweetEscapeTL.json b/scripts/multisrc/madara/filters/sweetEscapeTL.json new file mode 100644 index 0000000..d5f0d74 --- /dev/null +++ b/scripts/multisrc/madara/filters/sweetEscapeTL.json @@ -0,0 +1,160 @@ +{ + "filters": { + "genre[]": { + "type": "Checkbox", + "label": "Genre", + "value": [], + "options": [ + { + "label": "Action", + "value": "action" + }, + { + "label": "Adult", + "value": "adult" + }, + { + "label": "Comedy", + "value": "comedy" + }, + { + "label": "Drama", + "value": "drama" + }, + { + "label": "Fantasy", + "value": "fantasy" + }, + { + "label": "Gender Bender", + "value": "gender-bender" + }, + { + "label": "Mature", + "value": "mature" + }, + { + "label": "Modern", + "value": "modern" + }, + { + "label": "Mystery", + "value": "mystery" + }, + { + "label": "R-15", + "value": "r-15" + }, + { + "label": "Romance", + "value": "romance" + }, + { + "label": "Slice of Life", + "value": "slice-of-life" + } + ] + }, + "op": { + "type": "Switch", + "label": "having all selected genres", + "value": false + }, + "author": { + "type": "Text", + "label": "Author", + "value": "" + }, + "artist": { + "type": "Text", + "label": "Artist", + "value": "" + }, + "release": { + "type": "Text", + "label": "Year of Released", + "value": "" + }, + "adult": { + "type": "Picker", + "label": "Adult content", + "value": "", + "options": [ + { + "label": "All", + "value": "" + }, + { + "label": "None adult content", + "value": "0" + }, + { + "label": "Only adult content", + "value": "1" + } + ] + }, + "status[]": { + "type": "Checkbox", + "label": "Status", + "value": [], + "options": [ + { + "label": "OnGoing", + "value": "on-going" + }, + { + "label": "Completed", + "value": "end" + }, + { + "label": "Canceled", + "value": "canceled" + }, + { + "label": "On Hold", + "value": "on-hold" + }, + { + "label": "Upcoming", + "value": "upcoming" + } + ] + }, + "m_orderby": { + "type": "Picker", + "label": "Order by", + "value": "", + "options": [ + { + "label": "Relevance", + "value": "" + }, + { + "label": "Latest", + "value": "latest" + }, + { + "label": "A-Z", + "value": "alphabet" + }, + { + "label": "Rating", + "value": "rating" + }, + { + "label": "Trending", + "value": "trending" + }, + { + "label": "Most Views", + "value": "views" + }, + { + "label": "New", + "value": "new-manga" + } + ] + } + } +} \ No newline at end of file diff --git a/scripts/multisrc/madara/filters/turkcelightnovels.json b/scripts/multisrc/madara/filters/turkcelightnovels.json new file mode 100644 index 0000000..3eec074 --- /dev/null +++ b/scripts/multisrc/madara/filters/turkcelightnovels.json @@ -0,0 +1,192 @@ +{ + "filters": { + "genre[]": { + "type": "Checkbox", + "label": "Genre", + "value": [], + "options": [ + { + "label": "Aksiyon", + "value": "aksiyon" + }, + { + "label": "Bilim Kurgu", + "value": "bilim-kurgu" + }, + { + "label": "Büyü", + "value": "buyu" + }, + { + "label": "Doğa üstü", + "value": "doga-ustu" + }, + { + "label": "Dram", + "value": "dram" + }, + { + "label": "Fantastik", + "value": "fantastik" + }, + { + "label": "Fantazi", + "value": "fantazi" + }, + { + "label": "harem", + "value": "harem" + }, + { + "label": "hareö", + "value": "hareo" + }, + { + "label": "İsekai", + "value": "isekai" + }, + { + "label": "Josei", + "value": "josei" + }, + { + "label": "Komedi", + "value": "komedi" + }, + { + "label": "Light Novel", + "value": "light-novel" + }, + { + "label": "Macera", + "value": "macera" + }, + { + "label": "Okul Hayatı", + "value": "okul-hayati" + }, + { + "label": "Psikolojik", + "value": "psikolojik" + }, + { + "label": "Romantik", + "value": "romantik" + }, + { + "label": "Seinen", + "value": "seinen" + }, + { + "label": "Shouju", + "value": "shouju" + }, + { + "label": "Tarihi", + "value": "tarihi" + }, + { + "label": "Yaşamdan kesitler", + "value": "yasamdan-kesitler" + } + ] + }, + "op": { + "type": "Switch", + "label": "having all selected genres", + "value": false + }, + "author": { + "type": "Text", + "label": "Author", + "value": "" + }, + "artist": { + "type": "Text", + "label": "Artist", + "value": "" + }, + "release": { + "type": "Text", + "label": "Year of Released", + "value": "" + }, + "adult": { + "type": "Picker", + "label": "Adult content", + "value": "", + "options": [ + { + "label": "All", + "value": "" + }, + { + "label": "None adult content", + "value": "0" + }, + { + "label": "Only adult content", + "value": "1" + } + ] + }, + "status[]": { + "type": "Checkbox", + "label": "Status", + "value": [], + "options": [ + { + "label": "Completed", + "value": "complete" + }, + { + "label": "Ongoing", + "value": "on-going" + }, + { + "label": "Canceled", + "value": "canceled" + }, + { + "label": "On Hold", + "value": "on-hold" + } + ] + }, + "m_orderby": { + "type": "Picker", + "label": "Order by", + "value": "", + "options": [ + { + "label": "Relevance", + "value": "" + }, + { + "label": "Latest", + "value": "latest" + }, + { + "label": "A-Z", + "value": "alphabet" + }, + { + "label": "Rating", + "value": "rating" + }, + { + "label": "Trending", + "value": "trending" + }, + { + "label": "Most Views", + "value": "views" + }, + { + "label": "New", + "value": "new-manga" + } + ] + } + } +} \ No newline at end of file diff --git a/scripts/multisrc/madara/filters/wbnovel.json b/scripts/multisrc/madara/filters/wbnovel.json new file mode 100644 index 0000000..709d43f --- /dev/null +++ b/scripts/multisrc/madara/filters/wbnovel.json @@ -0,0 +1,256 @@ +{ + "filters": { + "genre[]": { + "type": "Checkbox", + "label": "Genre", + "value": [], + "options": [ + { + "label": "Action", + "value": "action" + }, + { + "label": "Adventure", + "value": "adventure" + }, + { + "label": "Alchemy", + "value": "alchemy" + }, + { + "label": "Comedy", + "value": "comedy" + }, + { + "label": "Crafting", + "value": "crafting" + }, + { + "label": "Cultivation", + "value": "cultivation" + }, + { + "label": "Drama", + "value": "drama" + }, + { + "label": "Dungeon Crawling", + "value": "dungeon-crawling" + }, + { + "label": "Eci", + "value": "eci" + }, + { + "label": "Fantasy", + "value": "fantasy" + }, + { + "label": "Game", + "value": "game" + }, + { + "label": "Harem", + "value": "harem" + }, + { + "label": "Horror", + "value": "horror" + }, + { + "label": "Josei", + "value": "josei" + }, + { + "label": "Kingdom Building", + "value": "kingdom-building" + }, + { + "label": "Martial Arts", + "value": "martial-arts" + }, + { + "label": "Mature", + "value": "mature" + }, + { + "label": "Mecha", + "value": "mecha" + }, + { + "label": "Modern Setting", + "value": "modern-setting" + }, + { + "label": "Mystery", + "value": "mystery" + }, + { + "label": "Pets", + "value": "pets" + }, + { + "label": "Psychological", + "value": "psychological" + }, + { + "label": "Reincarnator", + "value": "reincarnator" + }, + { + "label": "Romance", + "value": "romance" + }, + { + "label": "School Life", + "value": "school-life" + }, + { + "label": "Sci-fi", + "value": "sci-fi" + }, + { + "label": "Seinen", + "value": "seinen" + }, + { + "label": "Shounen", + "value": "shounen" + }, + { + "label": "Slice of Life", + "value": "slice-of-life" + }, + { + "label": "Sports", + "value": "sports" + }, + { + "label": "Supernatural", + "value": "supernatural" + }, + { + "label": "Tragedy", + "value": "tragedy" + }, + { + "label": "Transmigration", + "value": "transmigration" + }, + { + "label": "Virtual Reality", + "value": "virtual-reality" + }, + { + "label": "Wuxia", + "value": "wuxia" + }, + { + "label": "Xianxia", + "value": "xianxia" + }, + { + "label": "Xuanhuan", + "value": "xuanhuan" + } + ] + }, + "op": { + "type": "Switch", + "label": "having all selected genres", + "value": false + }, + "author": { + "type": "Text", + "label": "Author", + "value": "" + }, + "artist": { + "type": "Text", + "label": "Artist", + "value": "" + }, + "release": { + "type": "Text", + "label": "Year of Released", + "value": "" + }, + "adult": { + "type": "Picker", + "label": "Adult content", + "value": "", + "options": [ + { + "label": "All", + "value": "" + }, + { + "label": "None adult content", + "value": "0" + }, + { + "label": "Only adult content", + "value": "1" + } + ] + }, + "status[]": { + "type": "Checkbox", + "label": "Status", + "value": [], + "options": [ + { + "label": "Completed", + "value": "complete" + }, + { + "label": "Ongoing", + "value": "on-going" + }, + { + "label": "Canceled", + "value": "canceled" + }, + { + "label": "On Hold", + "value": "on-hold" + } + ] + }, + "m_orderby": { + "type": "Picker", + "label": "Order by", + "value": "", + "options": [ + { + "label": "Relevance", + "value": "" + }, + { + "label": "Latest", + "value": "latest" + }, + { + "label": "A-Z", + "value": "alphabet" + }, + { + "label": "Rating", + "value": "rating" + }, + { + "label": "Trending", + "value": "trending" + }, + { + "label": "Most Views", + "value": "views" + }, + { + "label": "New", + "value": "new-manga" + } + ] + } + } +} \ No newline at end of file diff --git a/scripts/multisrc/madara/filters/webnovelover.json b/scripts/multisrc/madara/filters/webnovelover.json new file mode 100644 index 0000000..1e4a362 --- /dev/null +++ b/scripts/multisrc/madara/filters/webnovelover.json @@ -0,0 +1,240 @@ +{ + "filters": { + "genre[]": { + "type": "Checkbox", + "label": "Genre", + "value": [], + "options": [ + { + "label": "Action", + "value": "action" + }, + { + "label": "Adapted into drama", + "value": "adapted-into-drama" + }, + { + "label": "Adventure", + "value": "adventure" + }, + { + "label": "Comedy", + "value": "comedy" + }, + { + "label": "Completed", + "value": "completed" + }, + { + "label": "Drama", + "value": "drama" + }, + { + "label": "English Novel", + "value": "english-novel" + }, + { + "label": "Fantasy", + "value": "fantasy" + }, + { + "label": "Gender Bender", + "value": "gender-bender" + }, + { + "label": "Harem", + "value": "harem" + }, + { + "label": "Historical", + "value": "historical" + }, + { + "label": "Horror", + "value": "horror" + }, + { + "label": "Indo Novel", + "value": "indo-novel" + }, + { + "label": "Josei", + "value": "josei" + }, + { + "label": "Martial Arts", + "value": "martial-arts" + }, + { + "label": "Mature", + "value": "mature" + }, + { + "label": "Mystery", + "value": "mystery" + }, + { + "label": "Rebirth", + "value": "rebirth" + }, + { + "label": "Reincarnation", + "value": "reincarnation" + }, + { + "label": "Romance", + "value": "romance" + }, + { + "label": "Sci-fi", + "value": "sci-fi" + }, + { + "label": "Shoujo", + "value": "shoujo" + }, + { + "label": "Shounen", + "value": "shounen" + }, + { + "label": "Slice of Life", + "value": "slice-of-life" + }, + { + "label": "Spiritual", + "value": "spiritual" + }, + { + "label": "Supernatural", + "value": "supernatural" + }, + { + "label": "Tragedy", + "value": "tragedy" + }, + { + "label": "Transmigration", + "value": "transmigration" + }, + { + "label": "University", + "value": "university" + }, + { + "label": "Wuxia", + "value": "wuxia" + }, + { + "label": "Xianxia", + "value": "xianxia" + }, + { + "label": "Xuanhuan", + "value": "xuanhuan" + }, + { + "label": "Youth", + "value": "youth" + } + ] + }, + "op": { + "type": "Switch", + "label": "having all selected genres", + "value": false + }, + "author": { + "type": "Text", + "label": "Author", + "value": "" + }, + "artist": { + "type": "Text", + "label": "Artist", + "value": "" + }, + "release": { + "type": "Text", + "label": "Year of Released", + "value": "" + }, + "adult": { + "type": "Picker", + "label": "Adult content", + "value": "", + "options": [ + { + "label": "All", + "value": "" + }, + { + "label": "None adult content", + "value": "0" + }, + { + "label": "Only adult content", + "value": "1" + } + ] + }, + "status[]": { + "type": "Checkbox", + "label": "Status", + "value": [], + "options": [ + { + "label": "Completed", + "value": "complete" + }, + { + "label": "Ongoing", + "value": "on-going" + }, + { + "label": "Canceled", + "value": "canceled" + }, + { + "label": "On Hold", + "value": "on-hold" + } + ] + }, + "m_orderby": { + "type": "Picker", + "label": "Order by", + "value": "", + "options": [ + { + "label": "Relevance", + "value": "" + }, + { + "label": "Latest", + "value": "latest" + }, + { + "label": "A-Z", + "value": "alphabet" + }, + { + "label": "Rating", + "value": "rating" + }, + { + "label": "Trending", + "value": "trending" + }, + { + "label": "Most Views", + "value": "views" + }, + { + "label": "New", + "value": "new-manga" + } + ] + } + } +} \ No newline at end of file diff --git a/scripts/multisrc/madara/filters/wuxiaworld.site.json b/scripts/multisrc/madara/filters/wuxiaworld.site.json new file mode 100644 index 0000000..a17c66b --- /dev/null +++ b/scripts/multisrc/madara/filters/wuxiaworld.site.json @@ -0,0 +1,288 @@ +{ + "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-genre" + }, + { + "label": "Ecchi", + "value": "ecchi" + }, + { + "label": "Fantasy", + "value": "fantasy" + }, + { + "label": "Gender Bender", + "value": "gender-bender" + }, + { + "label": "Harem", + "value": "harems-novel" + }, + { + "label": "Historical", + "value": "historical" + }, + { + "label": "Horror", + "value": "horror" + }, + { + "label": "Isekai", + "value": "isekai" + }, + { + "label": "Josei", + "value": "josei" + }, + { + "label": "LGBT+", + "value": "lgbt" + }, + { + "label": "Magical Realism", + "value": "magical-realism" + }, + { + "label": "Manhwa", + "value": "manhwa" + }, + { + "label": "Martial Arts", + "value": "martial-arts-genre" + }, + { + "label": "Mature", + "value": "mature" + }, + { + "label": "Mecha", + "value": "mecha" + }, + { + "label": "Mystery", + "value": "mystery" + }, + { + "label": "Psychological", + "value": "psychological" + }, + { + "label": "Reincarnation", + "value": "reincarnation" + }, + { + "label": "Romance", + "value": "romance" + }, + { + "label": "School Life", + "value": "school-life" + }, + { + "label": "Sci-fi", + "value": "sci-fi" + }, + { + "label": "Seinen", + "value": "seinen" + }, + { + "label": "Shoujo", + "value": "shoujo-genre" + }, + { + "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": "Smut", + "value": "smut" + }, + { + "label": "Sports", + "value": "sports" + }, + { + "label": "Supernatural", + "value": "supernatural" + }, + { + "label": "Teen", + "value": "teen" + }, + { + "label": "Thriller", + "value": "thriller" + }, + { + "label": "Tragedy", + "value": "tragedy" + }, + { + "label": "Video Games", + "value": "video-games" + }, + { + "label": "Webcomics", + "value": "webcomics" + }, + { + "label": "Wuxia", + "value": "wuxia" + }, + { + "label": "Xianxia", + "value": "xianxia" + }, + { + "label": "Xuanhuan", + "value": "xuanhuan" + }, + { + "label": "Yaoi", + "value": "yaoi" + }, + { + "label": "Yuri", + "value": "yuri" + } + ] + }, + "op": { + "type": "Switch", + "label": "having all selected genres", + "value": false + }, + "author": { + "type": "Text", + "label": "Author", + "value": "" + }, + "artist": { + "type": "Text", + "label": "Artist", + "value": "" + }, + "release": { + "type": "Text", + "label": "Year of Released", + "value": "" + }, + "adult": { + "type": "Picker", + "label": "Adult content", + "value": "", + "options": [ + { + "label": "All", + "value": "" + }, + { + "label": "None adult content", + "value": "0" + }, + { + "label": "Only adult content", + "value": "1" + } + ] + }, + "status[]": { + "type": "Checkbox", + "label": "Status", + "value": [], + "options": [ + { + "label": "OnGoing", + "value": "on-going" + }, + { + "label": "Completed", + "value": "end" + }, + { + "label": "Canceled", + "value": "canceled" + }, + { + "label": "On Hold", + "value": "on-hold" + }, + { + "label": "Upcoming", + "value": "upcoming" + } + ] + }, + "m_orderby": { + "type": "Picker", + "label": "Order by", + "value": "", + "options": [ + { + "label": "Relevance", + "value": "" + }, + { + "label": "Latest", + "value": "latest" + }, + { + "label": "A-Z", + "value": "alphabet" + }, + { + "label": "Rating", + "value": "rating" + }, + { + "label": "Trending", + "value": "trending" + }, + { + "label": "Most Views", + "value": "views" + }, + { + "label": "New", + "value": "new-manga" + } + ] + } + } +} \ No newline at end of file diff --git a/scripts/multisrc/madara/filters/zetroTL.json b/scripts/multisrc/madara/filters/zetroTL.json new file mode 100644 index 0000000..7050e47 --- /dev/null +++ b/scripts/multisrc/madara/filters/zetroTL.json @@ -0,0 +1,192 @@ +{ + "filters": { + "genre[]": { + "type": "Checkbox", + "label": "Genre", + "value": [], + "options": [ + { + "label": "Action", + "value": "action" + }, + { + "label": "Adventure", + "value": "adventure" + }, + { + "label": "Comedy", + "value": "comedy" + }, + { + "label": "Dark Elf", + "value": "dark-elf" + }, + { + "label": "Drama", + "value": "drama" + }, + { + "label": "Ecchi", + "value": "ecchi" + }, + { + "label": "Fantasy", + "value": "fantasy" + }, + { + "label": "Harem", + "value": "harem" + }, + { + "label": "Horror", + "value": "horror" + }, + { + "label": "Isekai", + "value": "isekai" + }, + { + "label": "Mecha", + "value": "mecha" + }, + { + "label": "Mystery", + "value": "mystery" + }, + { + "label": "NTR", + "value": "ntr" + }, + { + "label": "Original Works", + "value": "original-works" + }, + { + "label": "Rom-Com", + "value": "rom-com" + }, + { + "label": "Romance", + "value": "romance" + }, + { + "label": "School", + "value": "school" + }, + { + "label": "Shoujo", + "value": "shoujo" + }, + { + "label": "Slice of Life", + "value": "slice-of-life" + }, + { + "label": "Villain", + "value": "villain" + }, + { + "label": "Yuri", + "value": "yuri" + } + ] + }, + "op": { + "type": "Switch", + "label": "having all selected genres", + "value": false + }, + "author": { + "type": "Text", + "label": "Author", + "value": "" + }, + "artist": { + "type": "Text", + "label": "Artist", + "value": "" + }, + "release": { + "type": "Text", + "label": "Year of Released", + "value": "" + }, + "adult": { + "type": "Picker", + "label": "Adult content", + "value": "", + "options": [ + { + "label": "All", + "value": "" + }, + { + "label": "None adult content", + "value": "0" + }, + { + "label": "Only adult content", + "value": "1" + } + ] + }, + "status[]": { + "type": "Checkbox", + "label": "Status", + "value": [], + "options": [ + { + "label": "Completed", + "value": "complete" + }, + { + "label": "Ongoing", + "value": "on-going" + }, + { + "label": "Canceled", + "value": "canceled" + }, + { + "label": "On Hold", + "value": "on-hold" + } + ] + }, + "m_orderby": { + "type": "Picker", + "label": "Order by", + "value": "", + "options": [ + { + "label": "Relevance", + "value": "" + }, + { + "label": "Latest", + "value": "latest" + }, + { + "label": "A-Z", + "value": "alphabet" + }, + { + "label": "Rating", + "value": "rating" + }, + { + "label": "Trending", + "value": "trending" + }, + { + "label": "Most Views", + "value": "views" + }, + { + "label": "New", + "value": "new-manga" + } + ] + } + } +} \ No newline at end of file diff --git a/scripts/multisrc/madara/generator.ts b/scripts/multisrc/madara/generator.ts index c02f8ea..537cd88 100644 --- a/scripts/multisrc/madara/generator.ts +++ b/scripts/multisrc/madara/generator.ts @@ -6,49 +6,30 @@ import { readFileSync } from "fs"; import path from "path"; export const generateAll: ScrpitGeneratorFunction = function (name) { - return ( - list - /* This map is changing `type` from string to FilterTypes */ - .map((p) => { - let d = false; - if (p?.filters?.genres?.options?.length) { - p.filters.genres.options.unshift({ label: "NONE", value: "" }) - } - const filters: Filters = {}; - for (const k in p.filters) { - const f = p.filters[k as keyof typeof p.filters]; - if (f) { - filters[k] = { - ...f, - type: FilterTypes.Picker, - }; - } - } - return { ...p, filters: d ? undefined : filters }; - }) - .map((metadata: MadaraMetadata) => { - console.log(`[${name}]: Generating`, metadata.id); - return generator(metadata); - }) - ); + return list.map((metadata: MadaraMetadata) => { + let filters: any = {}; + try { + filters = require(`./filters/${metadata.id}`); + metadata.filters = filters.filters; + } + catch (e) {} + console.log(`[${name}] Generating: ${metadata.id}${" ".repeat(20 - metadata.id.length)} ${metadata.filters ? "🔎with filters🔍" : "🚫no filters🚫"}`); + return generator(metadata); + }); }; const generator = function generator(metadata: MadaraMetadata) { - const lang = metadata.options?.lang || "English"; - const madaraTemplate = readFileSync(path.join(__dirname, "template.ts"), { encoding: "utf-8", }); const pluginScript = ` ${madaraTemplate} -const plugin = new MadaraPlugin(${ - JSON.stringify(metadata).replace(/"type":"([^"]+)"/g, '"type":FilterTypes.$1') -}); +const plugin = new MadaraPlugin(${JSON.stringify(metadata)}); export default plugin; - `; + `.trim(); return { - lang, + lang: metadata.options?.lang || "English", filename: metadata.sourceName, pluginScript, }; diff --git a/scripts/multisrc/madara/get_filters.ts b/scripts/multisrc/madara/get_filters.ts new file mode 100644 index 0000000..176bbae --- /dev/null +++ b/scripts/multisrc/madara/get_filters.ts @@ -0,0 +1,181 @@ +import * as fs from 'fs'; +import * as cheerio from 'cheerio'; +import * as path from 'path'; + +function getFilters(name: string, html: string) { + const $:cheerio.CheerioAPI = cheerio.load(html); + const filters: any = {filters: { + "genre[]": { + type: "Checkbox", + label: "Genre", + value: [], + options: [] + }, + "op": { + type: "Switch", + label: "Having ALL selected genres", + value: false + }, + "author": { + type: "Text", + label: "Author", + value: "" + }, + "artist": { + type: "Text", + label: "Artist", + value: "" + }, + "release": { + type: "Text", + label: "Year of Released", + value: "" + }, + "adult": { + type: "Picker", + label: "Adult content", + value: "", + options: [], + }, + "status[]": { + type: "Checkbox", + label: "Status", + value: [], + options: [] + }, + "m_orderby": { + type: "Picker", + label: "Order by", + value: "", + options: [] + }, + }}; + + const divs = $("form.search-advanced-form > div"); + + // ==================== Genre ==================== + const genreDiv = divs.eq(0); + genreDiv.find("label").each((i, el) => { + const option = { + label: $(el).text().trim(), + value: decodeURI($(el).attr("for") || "") + }; + filters.filters["genre[]"].options.push(option); + }); + + // ===================== Op ====================== + const statusDiv = divs.eq(1); + filters.filters["op"].label = statusDiv.find("option").eq(1) + .text().replace("AND", "").replace("(", "").replace(")", "").trim(); + + // ==================== Author ==================== + const authorDiv = divs.eq(2); + filters.filters["author"].label = authorDiv.find("span").text().trim(); + + // ==================== Artist ==================== + const artistDiv = divs.eq(3); + filters.filters["artist"].label = artistDiv.find("span").text().trim(); + + // ==================== Release ==================== + const releaseDiv = divs.eq(4); + filters.filters["release"].label = releaseDiv.find("span").text().trim(); + + // ==================== Adult ==================== + const adultDiv = divs.eq(5); + filters.filters["adult"].label = adultDiv.find("span").text().trim(); + adultDiv.find("option").each((i, el) => { + const option = { + label: $(el).text().trim(), + value: decodeURI($(el).attr("value") || "") + }; + filters.filters["adult"].options.push(option); + }); + + // ==================== Status ==================== + const statusDiv2 = divs.eq(6); + filters.filters["status[]"].label = statusDiv2.find("span").text().trim(); + statusDiv2.find("label").each((i, el) => { + const option = { + label: $(el).text().trim(), + value: $(el).attr("for") + }; + filters.filters["status[]"].options.push(option); + }); + + // ==================== Order by ==================== + const orderByDiv = $("div.c-nav-tabs").eq(0); + filters.filters["m_orderby"].label = orderByDiv.find("span").text().trim(); + orderByDiv.find("a").each((i, el) => { + const option = { + label: $(el).text().trim(), + value: decodeURI(($(el).attr("href")?.split("=").length == 3 ? $(el).attr("href")?.split("=")[2] : "") || "") + }; + filters.filters["m_orderby"].options.push(option); + }); + + if (filters.filters["m_orderby"].options.length == 0 || + filters.filters["status[]"].options.length == 0 || + filters.filters["adult"].options.length == 0 || + filters.filters["genre[]"].options.length == 0) { + console.error(`🚨Error in filters for ${name} please fix manually (${path.join(__dirname, 'filters', name + ".json")})🚨`); + } + + fs.writeFileSync( + path.join(__dirname, 'filters', name + ".json"), + JSON.stringify(filters, null, 2) + ); + console.log(`✅Filters created successfully for ${name}✅`); +} + +async function getFiltersFromURL(name: string, url: string) { + const response = await fetch(url + "/?s=&post_type=wp-manga"); + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}, while fetching ${response.url}`); + } + const html = await response.text(); + try { + getFilters(name, html); + } catch (e) { + console.error("Error while getting filters from", url); + } +} + + +async function askGetFilter(){ + const readline = require('readline').createInterface({ + input: process.stdin, + output: process.stdout + }); + + const EREASE_PREV_LINE = '\x1b[1A\r\x1b[2K'; + await readline.question('Enter the id of the site (same one as in sources.json): ', async (name: string) => { + await readline.question(EREASE_PREV_LINE + 'Do you want to get the filters from a URL or the html text? (if url dosen\'t work try html) (url/html): ', async (method: string) => { + if (method.toLowerCase() === "url") { + await readline.question(EREASE_PREV_LINE + 'Enter the URL (same one as in sources.json): ', async (url: string) => { + try { + await getFiltersFromURL(name, url); + } catch (e: any) { + console.error("Error while getting filters from", url); + console.log(e.message || e); + } + readline.close(); + }); + } else { + process.stdout.write(EREASE_PREV_LINE + `Enter the html text from the page at {sourceSite}/?s=&post_type=wp-manga (at the end press ENTER then press CTRL+C): `) + let html = ""; + readline.on('SIGINT', () => { + console.log("Stopeed reading input, creating filters file"); + getFilters(name, html); + readline.close(); + }); + readline.on('line', (line: string) => { + html += line + "\n"; + }); + } + }); + }); +} + +askGetFilter(); + +export { getFiltersFromURL }; diff --git a/scripts/multisrc/madara/sources.json b/scripts/multisrc/madara/sources.json index 03a3d15..c8fccff 100644 --- a/scripts/multisrc/madara/sources.json +++ b/scripts/multisrc/madara/sources.json @@ -3,178 +3,7 @@ "id": "boxnovel", "sourceSite": "https://boxnovel.com/", "sourceName": "BoxNovel", - "filters": { - "sort": { - "label": "Order by", - "value": "", - "options": [ - { - "label": "Rating", - "value": "rating" - }, - { - "label": "A-Z", - "value": "alphabet" - }, - { - "label": "Latest", - "value": "latest" - }, - { - "label": "Most Views", - "value": "views" - }, - { - "label": "New", - "value": "new-manga" - }, - { - "label": "Trending", - "value": "trending" - } - ], - "type": "Picker" - }, - "genres": { - "label": "GENRES", - "value": "", - "options": [ - { - "label": "Action", - "value": "action" - }, - { - "label": "Adventure", - "value": "adventure" - }, - { - "label": "Comedy", - "value": "comedy" - }, - { - "label": "Drama", - "value": "drama" - }, - { - "label": "Eastern", - "value": "eastern" - }, - { - "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": "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": "Shounen", - "value": "shounen" - }, - { - "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": "Xuanhuan", - "value": "xuanhuan" - }, - { - "label": "Yaoi", - "value": "yaoi" - } - ], - "type": "Picker" - } - }, "options": { - "path": { - "genres": "manga-genre" - }, "useNewChapterEndpoint": true } }, @@ -182,598 +11,19 @@ "id": "zinnovel", "sourceSite": "https://zinnovel.com/", "sourceName": "ZinnNovel", - "filters": { - "sort": { - "label": "Order by", - "value": "", - "options": [ - { - "label": "Rating", - "value": "rating" - }, - { - "label": "A-Z", - "value": "alphabet" - }, - { - "label": "Latest", - "value": "latest" - }, - { - "label": "Most Views", - "value": "views" - }, - { - "label": "New", - "value": "new-manga" - }, - { - "label": "Trending", - "value": "trending" - } - ], - "type": "Picker" - }, - "genres": { - "label": "GENRES", - "value": "", - "options": [ - { - "label": "Action", - "value": "action" - }, - { - "label": "Adult", - "value": "adult" - }, - { - "label": "Adventure", - "value": "adventure" - }, - { - "label": "Anime", - "value": "anime" - }, - { - "label": "Cartoon", - "value": "cartoon" - }, - { - "label": "Comedy", - "value": "comedy" - }, - { - "label": "Comic", - "value": "comic" - }, - { - "label": "Cooking", - "value": "cooking" - }, - { - "label": "Detective", - "value": "detective" - }, - { - "label": "Doujinshi", - "value": "doujinshi" - }, - { - "label": "Drama", - "value": "drama" - }, - { - "label": "Ecchi", - "value": "ecchi" - }, - { - "label": "Fan-Fiction", - "value": "fan-fiction" - }, - { - "label": "Fantasy", - "value": "fantasy" - }, - { - "label": "Game", - "value": "game" - }, - { - "label": "Gender Bender", - "value": "gender-bender" - }, - { - "label": "Harem", - "value": "harem" - }, - { - "label": "Historical", - "value": "historical" - }, - { - "label": "Horror", - "value": "horror" - }, - { - "label": "Humor", - "value": "humor" - }, - { - "label": "Isekai", - "value": "isekai" - }, - { - "label": "Josei", - "value": "josei" - }, - { - "label": "Live action", - "value": "live-action" - }, - { - "label": "Lolicon", - "value": "lolicon" - }, - { - "label": "Magic", - "value": "magic" - }, - { - "label": "Magical Realism", - "value": "magical-realism" - }, - { - "label": "Manga", - "value": "manga" - }, - { - "label": "Manhua", - "value": "manhua" - }, - { - "label": "Manhwa", - "value": "manhwa" - }, - { - "label": "Martial Arts", - "value": "martial-arts" - }, - { - "label": "Mature", - "value": "mature" - }, - { - "label": "Mecha", - "value": "mecha" - }, - { - "label": "Mystery", - "value": "mystery" - }, - { - "label": "One shot", - "value": "one-shot" - }, - { - "label": "Psychological", - "value": "psychological" - }, - { - "label": "Reincarnation", - "value": "reincarnation" - }, - { - "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": "Smut", - "value": "smut" - }, - { - "label": "Soft Yaoi", - "value": "soft-yaoi" - }, - { - "label": "Soft Yuri", - "value": "soft-yuri" - }, - { - "label": "Sports", - "value": "sports" - }, - { - "label": "Supernatural", - "value": "supernatural" - }, - { - "label": "Tragedy", - "value": "tragedy" - }, - { - "label": "Video Games", - "value": "video-games" - }, - { - "label": "Webtoon", - "value": "webtoon" - }, - { - "label": "Wuxia", - "value": "wuxia" - }, - { - "label": "Xianxia", - "value": "xianxia" - }, - { - "label": "Xuanhuan", - "value": "xuanhuan" - }, - { - "label": "Yaoi", - "value": "yaoi" - }, - { - "label": "Yuri", - "value": "yuri" - } - ], - "type": "Picker" - } - }, - "options": { - "path": { - "novels": "manga", - "novel": "manga", - "chapter": "manga", - "genres": "manga-genre" - } - } + "options": {} }, { "id": "novelTL", "sourceSite": "https://noveltranslate.com/", "sourceName": "NovelTranslate", - "filters": { - "sort": { - "label": "Order by", - "value": "", - "options": [ - { - "label": "Rating", - "value": "rating" - }, - { - "label": "A-Z", - "value": "alphabet" - }, - { - "label": "Latest", - "value": "latest" - }, - { - "label": "Most Views", - "value": "views" - }, - { - "label": "New", - "value": "new-manga" - }, - { - "label": "Trending", - "value": "trending" - } - ], - "type": "Picker" - }, - "genres": { - "label": "GENRES", - "value": "", - "options": [ - { - "label": "Action", - "value": "action" - }, - { - "label": "Adult", - "value": "adult" - }, - { - "label": "Adventure", - "value": "adventure" - }, - { - "label": "Bleach", - "value": "bleach" - }, - { - "label": "Chinese", - "value": "chinese" - }, - { - "label": "Comedy", - "value": "comedy" - }, - { - "label": "Conan", - "value": "conan" - }, - { - "label": "cooking", - "value": "cooking" - }, - { - "label": "Dragon Ball", - "value": "dragon-ball" - }, - { - "label": "Drama", - "value": "drama" - }, - { - "label": "Ecchi", - "value": "ecchi" - }, - { - "label": "Erciyuan", - "value": "erciyuan" - }, - { - "label": "Fairy Tail", - "value": "fairy-tail" - }, - { - "label": "Faloo", - "value": "faloo" - }, - { - "label": "Fan-Fiction", - "value": "fan-fiction" - }, - { - "label": "Fantasy", - "value": "fantasy" - }, - { - "label": "FoodWars!", - "value": "foodwars" - }, - { - "label": "Game", - "value": "game" - }, - { - "label": "Gender Bender", - "value": "gender-bender" - }, - { - "label": "Harem", - "value": "harem" - }, - { - "label": "Historical", - "value": "historical" - }, - { - "label": "Horror", - "value": "horror" - }, - { - "label": "Hunter x Hunter", - "value": "hunter-x-hunter" - }, - { - "label": "Isekai", - "value": "isekai" - }, - { - "label": "Japanese", - "value": "japanese" - }, - { - "label": "Jojo", - "value": "jojo" - }, - { - "label": "Josei", - "value": "josei" - }, - { - "label": "Korean", - "value": "korean" - }, - { - "label": "Martial Arts", - "value": "martial-arts" - }, - { - "label": "Marvel", - "value": "marvel" - }, - { - "label": "Mature", - "value": "mature" - }, - { - "label": "Mecha", - "value": "mecha" - }, - { - "label": "Military", - "value": "military" - }, - { - "label": "Mystery", - "value": "mystery" - }, - { - "label": "Naruto", - "value": "naruto" - }, - { - "label": "One piece", - "value": "one-piece" - }, - { - "label": "Pokemon", - "value": "pokemon" - }, - { - "label": "Political", - "value": "political" - }, - { - "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": "Smut", - "value": "smut" - }, - { - "label": "Sport", - "value": "sport" - }, - { - "label": "Sports", - "value": "sports" - }, - { - "label": "Supernatural", - "value": "supernatural" - }, - { - "label": "System", - "value": "system" - }, - { - "label": "Toriko", - "value": "toriko" - }, - { - "label": "Tragedy", - "value": "tragedy" - }, - { - "label": "Urban", - "value": "urban" - }, - { - "label": "Urban Life", - "value": "urban-life" - }, - { - "label": "Wuxia", - "value": "wuxia" - }, - { - "label": "Xianxia", - "value": "xianxia" - }, - { - "label": "Xuanhuan", - "value": "xuanhuan" - }, - { - "label": "Yaoi", - "value": "yaoi" - }, - { - "label": "Yuri", - "value": "yuri" - } - ], - "type": "Picker" - } - }, - "options": { - "path": { - "novels": "all-novels", - "novel": "manga", - "chapter": "manga", - "genres": "manga-genre" - } - } + "options": {} }, { "id": "lunarletters", "sourceSite": "https://www.lunarletters.com/", "sourceName": "LunarLetters", "options": { - "path": { - "novels": "series", - "novel": "series", - "chapter": "series" - }, "useNewChapterEndpoint": true } }, @@ -781,545 +31,19 @@ "id": "sleeptTLS", "sourceSite": "https://sleepytranslations.com/", "sourceName": "SleepyTranslations", - "filters": { - "sort": { - "label": "Order by", - "value": "", - "options": [ - { - "label": "Rating", - "value": "rating" - }, - { - "label": "A-Z", - "value": "alphabet" - }, - { - "label": "Latest", - "value": "latest" - }, - { - "label": "Most Views", - "value": "views" - }, - { - "label": "New", - "value": "new-manga" - }, - { - "label": "Trending", - "value": "trending" - } - ], - "type": "Picker" - } - }, "options": { - "path": { - "novels": "series", - "novel": "series", - "chapter": "series" - }, "useNewChapterEndpoint": true } }, { "id": "freenovel.me", "sourceSite": "https://freenovel.me/", - "sourceName": "FreeNovelMe", - "filters": { - "sort": { - "label": "Order by", - "value": "", - "options": [ - { - "label": "Rating", - "value": "rating" - }, - { - "label": "A-Z", - "value": "alphabet" - }, - { - "label": "Latest", - "value": "latest" - }, - { - "label": "Most Views", - "value": "views" - }, - { - "label": "New", - "value": "new-manga" - }, - { - "label": "Trending", - "value": "trending" - } - ], - "type": "Picker" - }, - "genres": { - "label": "GENRES", - "value": "", - "options": [ - { - "label": "Action", - "value": "action" - }, - { - "label": "Adult", - "value": "adult" - }, - { - "label": "Adventure", - "value": "adventure" - }, - { - "label": "Cartoon", - "value": "cartoon" - }, - { - "label": "Comedy", - "value": "comedy" - }, - { - "label": "Cooking", - "value": "cooking" - }, - { - "label": "Detective", - "value": "detective" - }, - { - "label": "Drama", - "value": "drama" - }, - { - "label": "Fantasy", - "value": "fantasy" - }, - { - "label": "Game", - "value": "game" - }, - { - "label": "Gender Bender", - "value": "gender-bender" - }, - { - "label": "Historical", - "value": "historical" - }, - { - "label": "History", - "value": "history" - }, - { - "label": "Horror", - "value": "horror" - }, - { - "label": "Josei", - "value": "josei" - }, - { - "label": "Live action", - "value": "live-action" - }, - { - "label": "Martial", - "value": "martial" - }, - { - "label": "Martial Arts", - "value": "martial-arts" - }, - { - "label": "Mature", - "value": "mature" - }, - { - "label": "Mecha", - "value": "mecha" - }, - { - "label": "Mystery", - "value": "mystery" - }, - { - "label": "One shot", - "value": "one-shot" - }, - { - "label": "Premium", - "value": "premium" - }, - { - "label": "Psychological", - "value": "psychological" - }, - { - "label": "Reincarnation", - "value": "reincarnation" - }, - { - "label": "Romance", - "value": "romance" - }, - { - "label": "School Life", - "value": "school-life" - }, - { - "label": "Sci-fi", - "value": "sci-fi" - }, - { - "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": "Xuanhuan", - "value": "xuanhuan" - } - ], - "type": "Picker" - } - } + "sourceName": "FreeNovelMe" }, { "id": "1stkissnovel", "sourceSite": "https://1stkissnovel.org/", "sourceName": "FirstKissNovel", - "filters": { - "sort": { - "label": "Order by", - "value": "", - "options": [ - { - "label": "Rating", - "value": "rating" - }, - { - "label": "A-Z", - "value": "alphabet" - }, - { - "label": "Latest", - "value": "latest" - }, - { - "label": "Most Views", - "value": "views" - }, - { - "label": "New", - "value": "new-manga" - }, - { - "label": "Trending", - "value": "trending" - } - ], - "type": "Picker" - }, - "genres": { - "label": "GENRES", - "value": "", - "options": [ - { - "label": "Action", - "value": "action" - }, - { - "label": "Adult", - "value": "adult" - }, - { - "label": "Adventure", - "value": "adventure" - }, - { - "label": "Anime", - "value": "anime" - }, - { - "label": "Apocalypse", - "value": "apocalypse" - }, - { - "label": "Boy's Love", - "value": "boys-love" - }, - { - "label": "Comedy", - "value": "comedy" - }, - { - "label": "Completed", - "value": "completed" - }, - { - "label": "Cooking", - "value": "cooking" - }, - { - "label": "Demons", - "value": "demons" - }, - { - "label": "Detective", - "value": "detective" - }, - { - "label": "Drama", - "value": "drama" - }, - { - "label": "Ecchi", - "value": "ecchi" - }, - { - "label": "Fan-Fiction", - "value": "fan-fiction" - }, - { - "label": "Fantasy", - "value": "fantasy" - }, - { - "label": "Food", - "value": "food" - }, - { - "label": "Game", - "value": "game" - }, - { - "label": "Gender Bender", - "value": "gender-bender" - }, - { - "label": "Girls Love", - "value": "girls-love" - }, - { - "label": "Harem", - "value": "harem" - }, - { - "label": "Historical", - "value": "historical" - }, - { - "label": "Horror", - "value": "horror" - }, - { - "label": "Humor", - "value": "humor" - }, - { - "label": "Isekai", - "value": "isekai" - }, - { - "label": "Josei", - "value": "josei" - }, - { - "label": "Magic", - "value": "magic" - }, - { - "label": "Magical", - "value": "magical" - }, - { - "label": "Manhua", - "value": "manhua" - }, - { - "label": "Manhwa", - "value": "manhwa" - }, - { - "label": "Martial Arts", - "value": "martial-arts" - }, - { - "label": "Mature", - "value": "mature" - }, - { - "label": "Mecha", - "value": "mecha" - }, - { - "label": "Medical", - "value": "medical" - }, - { - "label": "Military", - "value": "military" - }, - { - "label": "Moder", - "value": "moder" - }, - { - "label": "Modern", - "value": "modern" - }, - { - "label": "Murim", - "value": "murim" - }, - { - "label": "Music", - "value": "music" - }, - { - "label": "Mystery", - "value": "mystery" - }, - { - "label": "Psychological", - "value": "psychological" - }, - { - "label": "Reverse", - "value": "reverse" - }, - { - "label": "Reverse harem", - "value": "reverse-harem" - }, - { - "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": "Smut", - "value": "smut" - }, - { - "label": "Sports", - "value": "sports" - }, - { - "label": "Super power", - "value": "super-power" - }, - { - "label": "Superhero", - "value": "superhero" - }, - { - "label": "Supernatural", - "value": "supernatural" - }, - { - "label": "Thriller", - "value": "thriller" - }, - { - "label": "Tragedy", - "value": "tragedy" - }, - { - "label": "Urban Life", - "value": "urban-life" - }, - { - "label": "Vampire", - "value": "vampire" - }, - { - "label": "Webtoons", - "value": "webtoons" - }, - { - "label": "Wuxia", - "value": "wuxia" - }, - { - "label": "Xianxia", - "value": "xianxia" - }, - { - "label": "Xuanhuan", - "value": "xuanhuan" - }, - { - "label": "Yaoi", - "value": "yaoi" - }, - { - "label": "Yuri", - "value": "yuri" - } - ], - "type": "Picker" - } - }, "options": { "useNewChapterEndpoint": true } @@ -1329,11 +53,6 @@ "sourceSite": "https://www.daonovel.com/", "sourceName": "DaoNovel", "options": { - "path": { - "novels": "novels-list", - "novel": "novels", - "chapter": "novels" - }, "useNewChapterEndpoint": true } }, @@ -1341,974 +60,35 @@ "id": "mostnovel", "sourceSite": "https://mostnovel.com/", "sourceName": "MostNovel", - "filters": { - "sort": { - "label": "Order by", - "value": "", - "options": [ - { - "label": "Rating", - "value": "rating" - }, - { - "label": "A-Z", - "value": "alphabet" - }, - { - "label": "Latest", - "value": "latest" - }, - { - "label": "Most Views", - "value": "views" - }, - { - "label": "New", - "value": "new-manga" - }, - { - "label": "Trending", - "value": "trending" - } - ], - "type": "Picker" - }, - "genres": { - "label": "GENRES", - "value": "", - "options": [ - { - "label": "ACG", - "value": "acg" - }, - { - "label": "Action", - "value": "action" - }, - { - "label": "Adult", - "value": "adult" - }, - { - "label": "Adventure", - "value": "adventure" - }, - { - "label": "AGA", - "value": "aga" - }, - { - "label": "Anime", - "value": "anime" - }, - { - "label": "Anime & Comics", - "value": "anime-comics" - }, - { - "label": "Bender", - "value": "bender" - }, - { - "label": "BL", - "value": "bl" - }, - { - "label": "Cartoon", - "value": "cartoon" - }, - { - "label": "Comedy", - "value": "comedy" - }, - { - "label": "Comic", - "value": "comic" - }, - { - "label": "Contemporary Romance", - "value": "contemporary-romance" - }, - { - "label": "Cooking", - "value": "cooking" - }, - { - "label": "Cultivation", - "value": "cultivation" - }, - { - "label": "Detective", - "value": "detective" - }, - { - "label": "Doujinshi", - "value": "doujinshi" - }, - { - "label": "Drama", - "value": "drama" - }, - { - "label": "Eastern Fantasy", - "value": "eastern-fantasy" - }, - { - "label": "Ecchi", - "value": "ecchi" - }, - { - "label": "Fantasy", - "value": "fantasy" - }, - { - "label": "Gender Bender", - "value": "gender-bender" - }, - { - "label": "General", - "value": "general" - }, - { - "label": "Harem", - "value": "harem" - }, - { - "label": "Historical", - "value": "historical" - }, - { - "label": "Horror", - "value": "horror" - }, - { - "label": "Horror&Thriller", - "value": "horrorthriller" - }, - { - "label": "Josei", - "value": "josei" - }, - { - "label": "Live action", - "value": "live-action" - }, - { - "label": "Magical Realism", - "value": "magical-realism" - }, - { - "label": "Manga", - "value": "manga" - }, - { - "label": "Manhua", - "value": "manhua" - }, - { - "label": "Manhwa", - "value": "manhwa" - }, - { - "label": "Martial Arts", - "value": "martial-arts" - }, - { - "label": "Mature", - "value": "mature" - }, - { - "label": "Mecha", - "value": "mecha" - }, - { - "label": "Modern", - "value": "modern" - }, - { - "label": "Movies", - "value": "movies" - }, - { - "label": "Mystery", - "value": "mystery" - }, - { - "label": "One shot", - "value": "one-shot" - }, - { - "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": "Smart MC", - "value": "smart-mc" - }, - { - "label": "Smut", - "value": "smut" - }, - { - "label": "Soft Yaoi", - "value": "soft-yaoi" - }, - { - "label": "Soft Yuri", - "value": "soft-yuri" - }, - { - "label": "Sports", - "value": "sports" - }, - { - "label": "Supernatural", - "value": "supernatural" - }, - { - "label": "Tragedy", - "value": "tragedy" - }, - { - "label": "Urban Life", - "value": "urban-life" - }, - { - "label": "Video Games", - "value": "video-games" - }, - { - "label": "Webtoon", - "value": "webtoon" - }, - { - "label": "Wuxia", - "value": "wuxia" - }, - { - "label": "Xianxia", - "value": "xianxia" - }, - { - "label": "Xuanhuan", - "value": "xuanhuan" - }, - { - "label": "Yaoi", - "value": "yaoi" - }, - { - "label": "Yuri", - "value": "yuri" - } - ], - "type": "Picker" - } - }, - "options": { - "path": { - "novels": "manga", - "novel": "manga", - "chapter": "manga", - "genres": "manga-genre" - } - } + "options": {} }, { "id": "novelmultiverse", "sourceSite": "https://www.novelmultiverse.com/", - "sourceName": "NovelMultiverse", - "filters": { - "sort": { - "label": "Order by", - "value": "", - "options": [ - { - "label": "Rating", - "value": "rating" - }, - { - "label": "A-Z", - "value": "alphabet" - }, - { - "label": "Latest", - "value": "latest" - }, - { - "label": "Most Views", - "value": "views" - }, - { - "label": "New", - "value": "new-manga" - }, - { - "label": "Trending", - "value": "trending" - } - ], - "type": "Picker" - }, - "genres": { - "label": "GENRES", - "value": "", - "options": [ - { - "label": "Action", - "value": "action" - }, - { - "label": "Adult", - "value": "adult" - }, - { - "label": "Adventure", - "value": "adventure" - }, - { - "label": "Anime", - "value": "anime" - }, - { - "label": "Cartoon", - "value": "cartoon" - }, - { - "label": "Comedy", - "value": "comedy" - }, - { - "label": "Comic", - "value": "comic" - }, - { - "label": "Cooking", - "value": "cooking" - }, - { - "label": "Detective", - "value": "detective" - }, - { - "label": "Doujinshi", - "value": "doujinshi" - }, - { - "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": "Josei", - "value": "josei" - }, - { - "label": "Live action", - "value": "live-action" - }, - { - "label": "Manga", - "value": "manga" - }, - { - "label": "Manhua", - "value": "manhua" - }, - { - "label": "Manhwa", - "value": "manhwa" - }, - { - "label": "Martial Arts", - "value": "martial-arts" - }, - { - "label": "Mature", - "value": "mature" - }, - { - "label": "Mecha", - "value": "mecha" - }, - { - "label": "Mystery", - "value": "mystery" - }, - { - "label": "One shot", - "value": "one-shot" - }, - { - "label": "Original", - "value": "original" - }, - { - "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": "Smut", - "value": "smut" - }, - { - "label": "Soft Yaoi", - "value": "soft-yaoi" - }, - { - "label": "Soft Yuri", - "value": "soft-yuri" - }, - { - "label": "Sports", - "value": "sports" - }, - { - "label": "Supernatural", - "value": "supernatural" - }, - { - "label": "Tragedy", - "value": "tragedy" - }, - { - "label": "Translation", - "value": "translation" - }, - { - "label": "Webtoon", - "value": "webtoon" - }, - { - "label": "Wuxia", - "value": "wuxia" - }, - { - "label": "Xianxia", - "value": "xianxia" - }, - { - "label": "Xuanhuan", - "value": "xuanhuan" - }, - { - "label": "Yaoi", - "value": "yaoi" - }, - { - "label": "Yuri", - "value": "yuri" - } - ], - "type": "Picker" - } - } + "sourceName": "NovelMultiverse" }, { "id": "lnheaven", "sourceSite": "https://lightnovelheaven.com/", "sourceName": "LightNovelHeaven", - "filters": { - "sort": { - "label": "Order by", - "value": "", - "options": [ - { - "label": "Rating", - "value": "rating" - }, - { - "label": "A-Z", - "value": "alphabet" - }, - { - "label": "Latest", - "value": "latest" - }, - { - "label": "Most Views", - "value": "views" - }, - { - "label": "New", - "value": "new-manga" - }, - { - "label": "Trending", - "value": "trending" - } - ], - "type": "Picker" - } - }, "options": { - "path": { - "novels": "series", - "novel": "series", - "chapter": "series" - }, "useNewChapterEndpoint": true } }, { "id": "arnovel", - "sourceSite": "https://arnovel.me/", + "sourceSite": "https://ar-novel.com/", "sourceName": "ArNovel", - "filters": { - "sort": { - "label": "الترتيب حسب", - "value": "", - "options": [ - { - "label": "A-Z", - "value": "alphabet" - }, - { - "label": "الآخير", - "value": "latest" - }, - { - "label": "الأكثر مشاهدة", - "value": "views" - }, - { - "label": "التقييم", - "value": "rating" - }, - { - "label": "جديد", - "value": "new-manga" - }, - { - "label": "شائع", - "value": "trending" - } - ], - "type": "Picker" - }, - "genres": { - "label": "التصنيفات", - "value": "", - "options": [ - { - "label": "أكشن", - "value": "%d8%a3%d9%83%d8%b4%d9%86" - }, - { - "label": "إتشي", - "value": "%d8%a5%d8%aa%d8%b4%d9%80%d9%8a" - }, - { - "label": "بالغ", - "value": "%d8%a8%d8%a7%d9%84%d8%ba" - }, - { - "label": "تاريخي", - "value": "%d8%aa%d8%a7%d8%b1%d9%8a%d8%ae%d9%8a" - }, - { - "label": "تراجدي", - "value": "%d8%aa%d8%b1%d8%a7%d8%ac%d8%af%d9%8a" - }, - { - "label": "جوسي", - "value": "%d8%ac%d9%88%d8%b3%d9%8a" - }, - { - "label": "حريم", - "value": "%d8%ad%d8%b1%d9%8a%d9%85" - }, - { - "label": "حياة مدرسية", - "value": "%d8%ad%d9%8a%d8%a7%d8%a9-%d9%85%d8%af%d8%b1%d8%b3%d9%8a%d8%a9" - }, - { - "label": "خارق لطبيعية", - "value": "%d8%ae%d8%a7%d8%b1%d9%82-%d9%84%d8%b7%d8%a8%d9%8a%d8%b9%d9%8a%d8%a9" - }, - { - "label": "خيال", - "value": "%d8%ae%d9%8a%d8%a7%d9%84" - }, - { - "label": "خيال علمي", - "value": "%d8%ae%d9%8a%d8%a7%d9%84-%d8%b9%d9%84%d9%85%d9%8a" - }, - { - "label": "دراما", - "value": "%d8%af%d8%b1%d8%a7%d9%85%d8%a7" - }, - { - "label": "راشد", - "value": "%d8%b1%d8%a7%d8%b4%d8%af" - }, - { - "label": "رعب", - "value": "%d8%b1%d8%b9%d8%a8" - }, - { - "label": "رومنسي", - "value": "%d8%b1%d9%88%d9%85%d9%86%d8%b3%d9%8a" - }, - { - "label": "رياضي", - "value": "%d8%b1%d9%8a%d8%a7%d8%b6%d9%8a" - }, - { - "label": "سينين", - "value": "%d8%b3%d9%8a%d9%86%d9%8a%d9%86" - }, - { - "label": "شريحة من الحياة", - "value": "%d8%b4%d8%b1%d9%8a%d8%ad%d8%a9-%d9%85%d9%86-%d8%a7%d9%84%d8%ad%d9%8a%d8%a7%d8%a9" - }, - { - "label": "شوجو", - "value": "%d8%b4%d9%88%d8%ac%d9%88" - }, - { - "label": "شونين", - "value": "%d8%b4%d9%88%d9%86%d9%8a%d9%86" - }, - { - "label": "غموض", - "value": "%d8%ba%d9%85%d9%88%d8%b6" - }, - { - "label": "فنون قتال", - "value": "%d9%81%d9%86%d9%88%d9%86-%d9%82%d8%aa%d8%a7%d9%84" - }, - { - "label": "كوميديا", - "value": "%d9%83%d9%88%d9%85%d9%8a%d8%af%d9%8a%d8%a7" - }, - { - "label": "مغامرات", - "value": "%d9%85%d8%ba%d8%a7%d9%85%d8%b1%d8%a7%d8%aa" - }, - { - "label": "منتهية", - "value": "%d9%85%d9%86%d8%aa%d9%87%d9%8a%d8%a9" - }, - { - "label": "ميكا", - "value": "%d9%85%d9%8a%d9%83%d8%a7" - }, - { - "label": "نفسي", - "value": "%d9%86%d9%81%d8%b3%d9%8a" - } - ], - "type": "Picker" - } - }, "options": { - "path": { - "genres": "home/novel-genre" - }, "useNewChapterEndpoint": true, - "lang": "Arabic" + "lang": "Arabic", + "versionIncrements": 1 } }, { "id": "meionovel", "sourceSite": "https://meionovel.id/", "sourceName": "MeioNovel", - "filters": { - "sort": { - "label": "Order by", - "value": "", - "options": [ - { - "label": "Rating", - "value": "rating" - }, - { - "label": "A-Z", - "value": "alphabet" - }, - { - "label": "Latest", - "value": "latest" - }, - { - "label": "Most Views", - "value": "views" - }, - { - "label": "New", - "value": "new-manga" - }, - { - "label": "Trending", - "value": "trending" - } - ], - "type": "Picker" - }, - "genres": { - "label": "GENRES", - "value": "", - "options": [ - { - "label": "Action", - "value": "action" - }, - { - "label": "Adventure", - "value": "adventure" - }, - { - "label": "Comedy", - "value": "comedy" - }, - { - "label": "Cooking", - "value": "cooking" - }, - { - "label": "Drama", - "value": "drama" - }, - { - "label": "Ecchi", - "value": "ecchi" - }, - { - "label": "Fanfiction", - "value": "fanfiction" - }, - { - "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": "Magic", - "value": "magic" - }, - { - "label": "Martial Arts", - "value": "martial-arts" - }, - { - "label": "Mature", - "value": "mature" - }, - { - "label": "Mecha", - "value": "mecha" - }, - { - "label": "Mystery", - "value": "mystery" - }, - { - "label": "One shot", - "value": "one-shot" - }, - { - "label": "Psychological", - "value": "psychological" - }, - { - "label": "Reverse Harem", - "value": "reverse-harem" - }, - { - "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": "Smut", - "value": "smut" - }, - { - "label": "Sports", - "value": "sports" - }, - { - "label": "Supernatural", - "value": "supernatural" - }, - { - "label": "Tragedy", - "value": "tragedy" - }, - { - "label": "Virtual Reality", - "value": "virtual-reality" - }, - { - "label": "Wuxia", - "value": "wuxia" - }, - { - "label": "Xianxia", - "value": "xianxia" - }, - { - "label": "Xuanhuan", - "value": "xuanhuan" - }, - { - "label": "Yuri", - "value": "yuri" - } - ], - "type": "Picker" - } - }, "options": { "useNewChapterEndpoint": true, "lang": "Indonesian" @@ -2317,179 +97,7 @@ { "id": "webnovelover", "sourceSite": "https://www.webnovelover.com/", - "sourceName": "WebNovelLover", - "filters": { - "sort": { - "label": "Order by", - "value": "", - "options": [ - { - "label": "Rating", - "value": "rating" - }, - { - "label": "A-Z", - "value": "alphabet" - }, - { - "label": "Latest", - "value": "latest" - }, - { - "label": "Most Views", - "value": "views" - }, - { - "label": "New", - "value": "new-manga" - }, - { - "label": "Trending", - "value": "trending" - } - ], - "type": "Picker" - }, - "genres": { - "label": "GENRES", - "value": "", - "options": [ - { - "label": "Action", - "value": "action" - }, - { - "label": "Adapted into drama", - "value": "adapted-into-drama" - }, - { - "label": "Adventure", - "value": "adventure" - }, - { - "label": "Comedy", - "value": "comedy" - }, - { - "label": "Completed", - "value": "completed" - }, - { - "label": "Drama", - "value": "drama" - }, - { - "label": "English Novel", - "value": "english-novel" - }, - { - "label": "Fantasy", - "value": "fantasy" - }, - { - "label": "Gender Bender", - "value": "gender-bender" - }, - { - "label": "Harem", - "value": "harem" - }, - { - "label": "Historical", - "value": "historical" - }, - { - "label": "Horror", - "value": "horror" - }, - { - "label": "Indo Novel", - "value": "indo-novel" - }, - { - "label": "Josei", - "value": "josei" - }, - { - "label": "Martial Arts", - "value": "martial-arts" - }, - { - "label": "Mature", - "value": "mature" - }, - { - "label": "Mystery", - "value": "mystery" - }, - { - "label": "Rebirth", - "value": "rebirth" - }, - { - "label": "Reincarnation", - "value": "reincarnation" - }, - { - "label": "Romance", - "value": "romance" - }, - { - "label": "Sci-fi", - "value": "sci-fi" - }, - { - "label": "Shoujo", - "value": "shoujo" - }, - { - "label": "Shounen", - "value": "shounen" - }, - { - "label": "Slice of Life", - "value": "slice-of-life" - }, - { - "label": "Spiritual", - "value": "spiritual" - }, - { - "label": "Supernatural", - "value": "supernatural" - }, - { - "label": "Tragedy", - "value": "tragedy" - }, - { - "label": "Transmigration", - "value": "transmigration" - }, - { - "label": "University", - "value": "university" - }, - { - "label": "Wuxia", - "value": "wuxia" - }, - { - "label": "Xianxia", - "value": "xianxia" - }, - { - "label": "Xuanhuan", - "value": "xuanhuan" - }, - { - "label": "Youth", - "value": "youth" - } - ], - "type": "Picker" - } - } + "sourceName": "WebNovelLover" }, { "id": "readwebnovels", @@ -2500,194 +108,6 @@ "id": "wbnovel", "sourceSite": "https://wbnovel.com/", "sourceName": "WBNovel", - "filters": { - "sort": { - "label": "Order by", - "value": "", - "options": [ - { - "label": "Rating", - "value": "rating" - }, - { - "label": "A-Z", - "value": "alphabet" - }, - { - "label": "Latest", - "value": "latest" - }, - { - "label": "Most Views", - "value": "views" - }, - { - "label": "New", - "value": "new-manga" - }, - { - "label": "Trending", - "value": "trending" - } - ], - "type": "Picker" - }, - "genres": { - "label": "GENRES", - "value": "", - "options": [ - { - "label": "Action", - "value": "action" - }, - { - "label": "Adventure", - "value": "adventure" - }, - { - "label": "Alchemy", - "value": "alchemy" - }, - { - "label": "Comedy", - "value": "comedy" - }, - { - "label": "Crafting", - "value": "crafting" - }, - { - "label": "Cultivation", - "value": "cultivation" - }, - { - "label": "Drama", - "value": "drama" - }, - { - "label": "Dungeon Crawling", - "value": "dungeon-crawling" - }, - { - "label": "Eci", - "value": "eci" - }, - { - "label": "Fantasy", - "value": "fantasy" - }, - { - "label": "Game", - "value": "game" - }, - { - "label": "Harem", - "value": "harem" - }, - { - "label": "Horror", - "value": "horror" - }, - { - "label": "Josei", - "value": "josei" - }, - { - "label": "Kingdom Building", - "value": "kingdom-building" - }, - { - "label": "Martial Arts", - "value": "martial-arts" - }, - { - "label": "Mature", - "value": "mature" - }, - { - "label": "Mecha", - "value": "mecha" - }, - { - "label": "Modern Setting", - "value": "modern-setting" - }, - { - "label": "Mystery", - "value": "mystery" - }, - { - "label": "Pets", - "value": "pets" - }, - { - "label": "Psychological", - "value": "psychological" - }, - { - "label": "Reincarnator", - "value": "reincarnator" - }, - { - "label": "Romance", - "value": "romance" - }, - { - "label": "School Life", - "value": "school-life" - }, - { - "label": "Sci-fi", - "value": "sci-fi" - }, - { - "label": "Seinen", - "value": "seinen" - }, - { - "label": "Shounen", - "value": "shounen" - }, - { - "label": "Slice of Life", - "value": "slice-of-life" - }, - { - "label": "Sports", - "value": "sports" - }, - { - "label": "Supernatural", - "value": "supernatural" - }, - { - "label": "Tragedy", - "value": "tragedy" - }, - { - "label": "Transmigration", - "value": "transmigration" - }, - { - "label": "Virtual Reality", - "value": "virtual-reality" - }, - { - "label": "Wuxia", - "value": "wuxia" - }, - { - "label": "Xianxia", - "value": "xianxia" - }, - { - "label": "Xuanhuan", - "value": "xuanhuan" - } - ], - "type": "Picker" - } - }, "options": { "lang": "Indonesian" } @@ -2696,39 +116,6 @@ "id": "wuxiaworld.site", "sourceSite": "https://wuxiaworld.site/", "sourceName": "WuxiaWorld.Site", - "filters": { - "sort": { - "label": "Order by", - "value": "", - "options": [ - { - "label": "Rating", - "value": "rating" - }, - { - "label": "A-Z", - "value": "alphabet" - }, - { - "label": "Latest", - "value": "latest" - }, - { - "label": "Most Views", - "value": "views" - }, - { - "label": "New", - "value": "new-manga" - }, - { - "label": "Trending", - "value": "trending" - } - ], - "type": "Picker" - } - }, "options": { "useNewChapterEndpoint": true } @@ -2737,197 +124,7 @@ "id": "mysticalmerries", "sourceSite": "https://mysticalmerries.com/", "sourceName": "MysticalSeries", - "filters": { - "sort": { - "label": "Order by", - "value": "", - "options": [ - { - "label": "Rating", - "value": "rating" - }, - { - "label": "A-Z", - "value": "alphabet" - }, - { - "label": "Latest", - "value": "latest" - }, - { - "label": "Most Views", - "value": "views" - }, - { - "label": "New", - "value": "new-manga" - }, - { - "label": "Trending", - "value": "trending" - } - ], - "type": "Picker" - }, - "genres": { - "label": "GENRES", - "value": "", - "options": [ - { - "label": "Action", - "value": "action" - }, - { - "label": "Adaptation", - "value": "adaptation" - }, - { - "label": "Adventure", - "value": "adventure" - }, - { - "label": "bilibili", - "value": "bilibili" - }, - { - "label": "Chinese Novel", - "value": "chinese-novel" - }, - { - "label": "Comedy", - "value": "comedy" - }, - { - "label": "Crossdressing", - "value": "crossdressing" - }, - { - "label": "Drama", - "value": "drama" - }, - { - "label": "Dropped", - "value": "dropped" - }, - { - "label": "Family", - "value": "family" - }, - { - "label": "Fantasy", - "value": "fantasy" - }, - { - "label": "Gender Bender", - "value": "gender-bender" - }, - { - "label": "Historical", - "value": "historical" - }, - { - "label": "Horror", - "value": "horror" - }, - { - "label": "Isekai", - "value": "isekai" - }, - { - "label": "Korean Novel", - "value": "korean-novell" - }, - { - "label": "Manga", - "value": "manga" - }, - { - "label": "Manhua", - "value": "manhua" - }, - { - "label": "Manhwa", - "value": "manhwa" - }, - { - "label": "Modern Romance", - "value": "modern-romance" - }, - { - "label": "Mystery", - "value": "mystery" - }, - { - "label": "Office Workers", - "value": "office-workers" - }, - { - "label": "One shot", - "value": "one-shot" - }, - { - "label": "Pilot Novel", - "value": "pilot-novel" - }, - { - "label": "R15", - "value": "r15" - }, - { - "label": "R19", - "value": "r19" - }, - { - "label": "Regression", - "value": "regression" - }, - { - "label": "Reincarnation", - "value": "reincarnation" - }, - { - "label": "Reverse Harem", - "value": "reverse-harem" - }, - { - "label": "Romance Fantasy", - "value": "romance-fantasy" - }, - { - "label": "School Life", - "value": "school-life" - }, - { - "label": "Sci-fi", - "value": "sci-fi" - }, - { - "label": "Slice of Life", - "value": "slice-of-life" - }, - { - "label": "Smut", - "value": "smut" - }, - { - "label": "Supernatural", - "value": "supernatural" - }, - { - "label": "Violence", - "value": "violence" - } - ], - "type": "Picker" - } - }, "options": { - "path": { - "novels": "series", - "novel": "series", - "chapter": "series", - "genres": "genre" - }, "useNewChapterEndpoint": true } }, @@ -2935,178 +132,6 @@ "id": "morenovel", "sourceSite": "https://morenovel.net/", "sourceName": "MoreNovel", - "filters": { - "sort": { - "label": "Order by", - "value": "", - "options": [ - { - "label": "Rating", - "value": "rating" - }, - { - "label": "A-Z", - "value": "alphabet" - }, - { - "label": "Latest", - "value": "latest" - }, - { - "label": "Most Views", - "value": "views" - }, - { - "label": "New", - "value": "new-manga" - }, - { - "label": "Trending", - "value": "trending" - } - ], - "type": "Picker" - }, - "genres": { - "label": "GENRES", - "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": "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": "Picker" - } - }, "options": { "useNewChapterEndpoint": true, "lang": "Indonesian" @@ -3122,199 +147,18 @@ }, { "id": "hizomanga", - "sourceSite": "https://hizomanga.com/", + "sourceSite": "https://hizomanga.me/", "sourceName": "HizoManga", - "filters": { - "sort": { - "label": "ترتيب حسب", - "value": "", - "options": [ - { - "label": "A-Z", - "value": "alphabet" - }, - { - "label": "New", - "value": "new-manga" - }, - { - "label": "الأحدث", - "value": "latest" - }, - { - "label": "الأكثر مشاهدة", - "value": "views" - }, - { - "label": "التقييم", - "value": "rating" - }, - { - "label": "الرائج", - "value": "trending" - } - ], - "type": "Picker" - }, - "genres": { - "label": "التصنيفات", - "value": "", - "options": [ - { - "label": "آلات", - "value": "mechanisms" - }, - { - "label": "أكشن", - "value": "action" - }, - { - "label": "إثارة", - "value": "excitement" - }, - { - "label": "إيسكاي", - "value": "%d8%a5%d9%8a%d8%b3%d9%83%d8%a7%d9%8a" - }, - { - "label": "الحياة اليومية", - "value": "slice-of-life" - }, - { - "label": "الحياة مدرسية", - "value": "school-life" - }, - { - "label": "تاريخي", - "value": "historical" - }, - { - "label": "تراجيدي", - "value": "tragic" - }, - { - "label": "جريمة", - "value": "%d8%ac%d8%b1%d9%8a%d9%85%d8%a9" - }, - { - "label": "جندر بندر", - "value": "%d8%ac%d9%86%d8%af%d8%b1-%d8%a8%d9%86%d8%af%d8%b1" - }, - { - "label": "جوسي", - "value": "josei" - }, - { - "label": "حريم", - "value": "harem" - }, - { - "label": "خارق للطبيعة", - "value": "supernatural" - }, - { - "label": "خيال", - "value": "fantasy" - }, - { - "label": "خيال علمي", - "value": "sci-fi" - }, - { - "label": "دراما", - "value": "drama" - }, - { - "label": "دموي", - "value": "%d8%af%d9%85%d9%88%d9%8a" - }, - { - "label": "راشد", - "value": "mature" - }, - { - "label": "رعب", - "value": "horror" - }, - { - "label": "رومانسي", - "value": "romance" - }, - { - "label": "رياضة", - "value": "sports" - }, - { - "label": "زمنكاني", - "value": "my-time" - }, - { - "label": "زومبي", - "value": "%d8%b2%d9%88%d9%85%d8%a8%d9%8a" - }, - { - "label": "سينين", - "value": "seinen" - }, - { - "label": "شريحة من الحياة", - "value": "%d8%b4%d8%b1%d9%8a%d8%ad%d8%a9-%d9%85%d9%86-%d8%a7%d9%84%d8%ad%d9%8a%d8%a7%d8%a9" - }, - { - "label": "شوجو", - "value": "shoujo" - }, - { - "label": "شونين", - "value": "shounen" - }, - { - "label": "طبي", - "value": "%d8%b7%d8%a8%d9%8a" - }, - { - "label": "غموض", - "value": "ambiguity" - }, - { - "label": "فنون قتالية", - "value": "martial-arts" - }, - { - "label": "قوة خارقة", - "value": "superpower" - }, - { - "label": "كوميدي", - "value": "comedy" - }, - { - "label": "مغامرات", - "value": "adventure" - }, - { - "label": "نفسي", - "value": "psychological" - } - ], - "type": "Picker" - } - }, "options": { - "path": { - "novels": "serie", - "novel": "serie", - "chapter": "serie", - "genres": "manga-genre" - }, "useNewChapterEndpoint": true, - "lang": "Arabic" + "lang": "Arabic", + "versionIncrements": 1 } }, { - "id": "ar-mtl", - "sourceSite": "https://ar-mtl.club/", - "sourceName": "ArMTL", + "id": "riwyat", + "sourceSite": "https://riwyat.com", + "sourceName": "\u0641\u0636\u0627\u0621 \u0627\u0644\u0631\u0648\u0627\u064a\u0627\u062a", "options": { "useNewChapterEndpoint": true, "lang": "Arabic" @@ -3324,206 +168,15 @@ "id": "novel4up", "sourceSite": "https://novel4up.com/", "sourceName": "Novel4Up", - "filters": { - "sort": { - "label": "ترتيب حسب:", - "value": "", - "options": [ - { - "label": "أ-ي", - "value": "alphabet" - }, - { - "label": "الأحدث", - "value": "latest" - }, - { - "label": "الأكثر مشاهدة", - "value": "views" - }, - { - "label": "التقييم", - "value": "rating" - }, - { - "label": "الجديد", - "value": "new-manga" - }, - { - "label": "الشائع", - "value": "trending" - } - ], - "type": "Picker" - }, - "genres": { - "label": "التصنيفات", - "value": "", - "options": [ - { - "label": "أكشن", - "value": "action" - }, - { - "label": "الخارق للطبيعة", - "value": "supernatural" - }, - { - "label": "تاريخي", - "value": "historical" - }, - { - "label": "تحقيق", - "value": "detective" - }, - { - "label": "تراجيديا", - "value": "tragedy" - }, - { - "label": "حريم", - "value": "harem" - }, - { - "label": "حياة مدرسية", - "value": "school-life" - }, - { - "label": "خيال علمي", - "value": "sci-fi" - }, - { - "label": "دراما", - "value": "drama" - }, - { - "label": "رعب", - "value": "horror" - }, - { - "label": "رومانسي", - "value": "romance" - }, - { - "label": "رياضة", - "value": "sports" - }, - { - "label": "سحر", - "value": "magic" - }, - { - "label": "شريحة من الحياة", - "value": "slice-of-life" - }, - { - "label": "شوانهوا", - "value": "xuanhuan" - }, - { - "label": "شوجو", - "value": "shoujo" - }, - { - "label": "شونين", - "value": "shounen" - }, - { - "label": "غموض", - "value": "mystery" - }, - { - "label": "فانتازيا", - "value": "fantasy" - }, - { - "label": "فنون قتال", - "value": "martial-arts" - }, - { - "label": "كوميديا", - "value": "comedy" - }, - { - "label": "مغامرة", - "value": "adventure" - }, - { - "label": "ميكا", - "value": "mecha" - }, - { - "label": "نفسي", - "value": "psychological" - }, - { - "label": "ون شوت", - "value": "one-shot" - }, - { - "label": "ووشيا", - "value": "wuxia" - } - ], - "type": "Picker" - } - }, "options": { "lang": "Arabic" } }, - { - "id": "teamxnovel", - "sourceSite": "https://teamxnovel.com/", - "sourceName": "TeamXNovel", - "options": { - "useNewChapterEndpoint": true, - "lang": "Arabic" - } - }, { "id": "turkcelightnovels", "sourceSite": "https://turkcelightnovels.com/", "sourceName": "TurkceLightNovels", - "filters": { - "sort": { - "label": "Order by", - "value": "", - "options": [ - { - "label": "Rating", - "value": "rating" - }, - { - "label": "A-Z", - "value": "alphabet" - }, - { - "label": "Latest", - "value": "latest" - }, - { - "label": "Most Views", - "value": "views" - }, - { - "label": "New", - "value": "new-manga" - }, - { - "label": "Trending", - "value": "trending" - } - ], - "type": "Picker" - } - }, "options": { - "path": { - "novels": "light-novel", - "novel": "light-novel", - "chapter": "light-novel" - }, "lang": "Turkish" } }, @@ -3531,234 +184,6 @@ "id": "sonicmtl", "sourceSite": "https://www.sonicmtl.com/", "sourceName": "SonicMTL", - "filters": { - "sort": { - "label": "Order by", - "value": "", - "options": [ - { - "label": "Rating", - "value": "rating" - }, - { - "label": "A-Z", - "value": "alphabet" - }, - { - "label": "Latest", - "value": "latest" - }, - { - "label": "Most Views", - "value": "views" - }, - { - "label": "New", - "value": "new-manga" - }, - { - "label": "Trending", - "value": "trending" - } - ], - "type": "Picker" - }, - "genres": { - "label": "GENRES", - "value": "", - "options": [ - { - "label": "Action", - "value": "action" - }, - { - "label": "Adult", - "value": "adult" - }, - { - "label": "Adventure", - "value": "adventure" - }, - { - "label": "Comedy", - "value": "comedy" - }, - { - "label": "Cooking", - "value": "cooking" - }, - { - "label": "Detective", - "value": "detective" - }, - { - "label": "Doujinshi", - "value": "doujinshi" - }, - { - "label": "Drama", - "value": "drama" - }, - { - "label": "Ecchi", - "value": "ecchi" - }, - { - "label": "Fan-Fiction", - "value": "fan-fiction" - }, - { - "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": "Live action", - "value": "live-action" - }, - { - "label": "Manga", - "value": "manga" - }, - { - "label": "Manhua", - "value": "manhua" - }, - { - "label": "Manhwa", - "value": "manhwa" - }, - { - "label": "Martial Arts", - "value": "martial-arts" - }, - { - "label": "Mature", - "value": "mature" - }, - { - "label": "Mecha", - "value": "mecha" - }, - { - "label": "Mystery", - "value": "mystery" - }, - { - "label": "One shot", - "value": "one-shot" - }, - { - "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": "Smut", - "value": "smut" - }, - { - "label": "Soft Yaoi", - "value": "soft-yaoi" - }, - { - "label": "Soft Yuri", - "value": "soft-yuri" - }, - { - "label": "Sports", - "value": "sports" - }, - { - "label": "Supernatural", - "value": "supernatural" - }, - { - "label": "Tragedy", - "value": "tragedy" - }, - { - "label": "Urban Life", - "value": "urban-life" - }, - { - "label": "Wuxia", - "value": "wuxia" - }, - { - "label": "Xianxia", - "value": "xianxia" - }, - { - "label": "Xuanhuan", - "value": "xuanhuan" - }, - { - "label": "Yaoi", - "value": "yaoi" - }, - { - "label": "Yuri", - "value": "yuri" - } - ], - "type": "Picker" - } - }, "options": { "useNewChapterEndpoint": true } @@ -3783,374 +208,10 @@ "id": "sweetEscapeTL", "sourceSite": "https://sweetescapetranslations.com/", "sourceName": "Sweet Escape Translations", - "filters": { - "sort": { - "label": "Order by", - "value": "", - "options": [ - { - "label": "Rating", - "value": "rating" - }, - { - "label": "A-Z", - "value": "alphabet" - }, - { - "label": "Latest", - "value": "latest" - }, - { - "label": "Most Views", - "value": "views" - }, - { - "label": "New", - "value": "new-manga" - }, - { - "label": "Trending", - "value": "trending" - } - ], - "type": "Picker" - }, - "genres": { - "label": "GENRES", - "value": "", - "options": [ - { - "label": "Action", - "value": "action" - }, - { - "label": "Adult", - "value": "adult" - }, - { - "label": "Comedy", - "value": "comedy" - }, - { - "label": "Drama", - "value": "drama" - }, - { - "label": "Fantasy", - "value": "fantasy" - }, - { - "label": "Gender Bender", - "value": "gender-bender" - }, - { - "label": "Mature", - "value": "mature" - }, - { - "label": "Modern", - "value": "modern" - }, - { - "label": "Mystery", - "value": "mystery" - }, - { - "label": "R-15", - "value": "r-15" - }, - { - "label": "Romance", - "value": "romance" - }, - { - "label": "Slice of Life", - "value": "slice-of-life" - } - ], - "type": "Picker" - } - }, "options": { - "path": { - "novels": "manga", - "novel": "manga", - "chapter": "manga", - "genres": "manga-genre" - }, "useNewChapterEndpoint": false } }, - { - "id": "fanTLS", - "sourceSite": "https://fanstranslations.com/", - "sourceName": "Fans Translations", - "filters": { - "sort": { - "label": "Order by", - "value": "", - "options": [ - { - "label": "Rating", - "value": "rating" - }, - { - "label": "A-Z", - "value": "alphabet" - }, - { - "label": "Latest", - "value": "latest" - }, - { - "label": "Most Views", - "value": "views" - }, - { - "label": "New", - "value": "new-manga" - }, - { - "label": "Trending", - "value": "trending" - } - ], - "type": "Picker" - } - }, - "options": { - "useNewChapterEndpoint": true - } - }, - { - "id": "riwyat", - "sourceSite": "https://riwyat.com/", - "sourceName": "Riwyat", - "filters": { - "sort": { - "label": "Order by", - "value": "", - "options": [ - { - "label": "Rating", - "value": "rating" - }, - { - "label": "A-Z", - "value": "alphabet" - }, - { - "label": "Latest", - "value": "latest" - }, - { - "label": "Most Views", - "value": "views" - }, - { - "label": "New", - "value": "new-manga" - }, - { - "label": "Trending", - "value": "trending" - } - ], - "type": "Picker" - }, - "genres": { - "label": "GENRES", - "value": "", - "options": [ - { - "label": "أكشن", - "value": "%d8%a3%d9%83%d8%b4%d9%86" - }, - { - "label": "أيتشي", - "value": "%d8%a3%d9%8a%d8%aa%d8%b4%d9%8a" - }, - { - "label": "استراتجي", - "value": "%d8%a7%d8%b3%d8%aa%d8%b1%d8%a7%d8%aa%d8%ac%d9%8a" - }, - { - "label": "العصر الحديث", - "value": "%d8%a7%d9%84%d8%b9%d8%b5%d8%b1-%d8%a7%d9%84%d8%ad%d8%af%d9%8a%d8%ab" - }, - { - "label": "انتقام", - "value": "%d8%a7%d9%86%d8%aa%d9%82%d8%a7%d9%85" - }, - { - "label": "بالغ", - "value": "%d8%a8%d8%a7%d9%84%d8%ba" - }, - { - "label": "بناء مملكة", - "value": "%d8%a8%d9%86%d8%a7%d8%a1-%d9%85%d9%85%d9%84%d9%83%d8%a9" - }, - { - "label": "بوليسي", - "value": "%d8%a8%d9%88%d9%84%d9%8a%d8%b3%d9%8a" - }, - { - "label": "تاريخي", - "value": "%d8%aa%d8%a7%d8%b1%d9%8a%d8%ae%d9%8a" - }, - { - "label": "جوسي", - "value": "%d8%ac%d9%88%d8%b3%d9%8a" - }, - { - "label": "حريم", - "value": "%d8%ad%d8%b1%d9%8a%d9%85" - }, - { - "label": "حياة يومية", - "value": "%d8%ad%d9%8a%d8%a7%d8%a9-%d9%8a%d9%88%d9%85%d9%8a%d8%a9" - }, - { - "label": "خيال", - "value": "%d8%ae%d9%8a%d8%a7%d9%84" - }, - { - "label": "خيال علمي", - "value": "%d8%ae%d9%8a%d8%a7%d9%84-%d8%b9%d9%84%d9%85%d9%8a" - }, - { - "label": "دراما", - "value": "%d8%af%d8%b1%d8%a7%d9%85%d8%a7" - }, - { - "label": "رعب", - "value": "%d8%b1%d8%b9%d8%a8" - }, - { - "label": "رومانسية", - "value": "%d8%b1%d9%88%d9%85%d8%a7%d9%86%d8%b3%d9%8a%d8%a9" - }, - { - "label": "رياضي", - "value": "%d8%b1%d9%8a%d8%a7%d8%b6%d9%8a" - }, - { - "label": "زيانشيا", - "value": "xianxia" - }, - { - "label": "سنين", - "value": "%d8%b3%d9%86%d9%8a%d9%86" - }, - { - "label": "شريحة حياة", - "value": "%d8%b4%d8%b1%d9%8a%d8%ad%d8%a9-%d8%ad%d9%8a%d8%a7%d8%a9" - }, - { - "label": "شوانهوان", - "value": "xuanhuan" - }, - { - "label": "شوجو", - "value": "%d8%b4%d9%88%d8%ac%d9%88" - }, - { - "label": "شونين", - "value": "%d8%b4%d9%88%d9%86%d9%8a%d9%86" - }, - { - "label": "شيانشيا", - "value": "%d8%b4%d9%8a%d8%a7%d9%86%d8%b4%d9%8a%d8%a7" - }, - { - "label": "عسكري", - "value": "%d8%b9%d8%b3%d9%83%d8%b1%d9%8a" - }, - { - "label": "غموض", - "value": "%d8%ba%d9%85%d9%88%d8%b6" - }, - { - "label": "فانتازيا", - "value": "%d9%81%d8%a7%d9%86%d8%aa%d8%a7%d8%b2%d9%8a%d8%a7" - }, - { - "label": "فنون قتالية", - "value": "%d9%81%d9%86%d9%88%d9%86-%d9%82%d8%aa%d8%a7%d9%84%d9%8a%d8%a9" - }, - { - "label": "قوى خارقة", - "value": "%d9%82%d9%88%d9%89-%d8%ae%d8%a7%d8%b1%d9%82%d8%a9" - }, - { - "label": "كوميديا", - "value": "%d9%83%d9%88%d9%85%d9%8a%d8%af%d9%8a%d8%a7" - }, - { - "label": "كوميك", - "value": "%d9%83%d9%88%d9%85%d9%8a%d9%83" - }, - { - "label": "للكبار", - "value": "%d9%84%d9%84%d9%83%d8%a8%d8%a7%d8%b1" - }, - { - "label": "مأساة", - "value": "%d9%85%d8%a3%d8%b3%d8%a7%d8%a9" - }, - { - "label": "مانجا", - "value": "%d9%85%d8%a7%d9%86%d8%ac%d8%a7" - }, - { - "label": "مانها", - "value": "%d9%85%d8%a7%d9%86%d9%87%d8%a7" - }, - { - "label": "مانهوا", - "value": "%d9%85%d8%a7%d9%86%d9%87%d9%88%d8%a7" - }, - { - "label": "مدرسي", - "value": "%d9%85%d8%af%d8%b1%d8%b3%d9%8a" - }, - { - "label": "مصاصي دماء", - "value": "%d9%85%d8%b5%d8%a7%d8%b5%d9%8a-%d8%af%d9%85%d8%a7%d8%a1" - }, - { - "label": "مغامرة", - "value": "%d9%85%d8%ba%d8%a7%d9%85%d8%b1%d8%a9" - }, - { - "label": "مكتملة", - "value": "%d9%85%d9%83%d8%aa%d9%85%d9%84%d8%a9" - }, - { - "label": "نفسي", - "value": "%d9%86%d9%81%d8%b3%d9%8a" - }, - { - "label": "نهاية العالم", - "value": "%d9%86%d9%87%d8%a7%d9%8a%d8%a9-%d8%a7%d9%84%d8%b9%d8%a7%d9%84%d9%85" - }, - { - "label": "واب تون", - "value": "%d9%88%d8%a7%d8%a8-%d8%aa%d9%88%d9%86" - }, - { - "label": "وان شوت", - "value": "%d9%88%d8%a7%d9%86-%d8%b4%d9%88%d8%aa" - } - ], - "type": "Picker" - } - }, - "options": { - "useNewChapterEndpoint": true, - "lang": "Arabic" - } - }, { "id": "novelstic", "sourceSite": "https://novelstic.com/", @@ -4162,116 +223,13 @@ { "id": "neosekaiTLS", "sourceSite": "https://www.neosekaitranslations.com/", - "sourceName": "NeoSekai Translations", - "filters": { - "sort": { - "label": "Order by", - "value": "", - "options": [ - { - "label": "Rating", - "value": "rating" - }, - { - "label": "A-Z", - "value": "alphabet" - }, - { - "label": "Latest", - "value": "latest" - }, - { - "label": "Most Views", - "value": "views" - }, - { - "label": "New", - "value": "new-manga" - }, - { - "label": "Trending", - "value": "trending" - } - ], - "type": "Picker" - }, - "genres": { - "label": "GENRES", - "value": "", - "options": [ - { - "label": "Action", - "value": "action" - }, - { - "label": "Adventure", - "value": "adventure" - }, - { - "label": "Comedy", - "value": "comedy" - }, - { - "label": "Drama", - "value": "drama" - }, - { - "label": "Fantasy", - "value": "fantasy" - }, - { - "label": "Harem", - "value": "harem" - }, - { - "label": "Horror", - "value": "horror" - }, - { - "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": "Slice of Life", - "value": "slice-of-life" - } - ], - "type": "Picker" - } - } + "sourceName": "NeoSekai Translations" }, { "id": "mtl-novel", "sourceSite": "https://mtl-novel.com/", "sourceName": "MTL-Novel", "options": { - "path": { - "genres": "manga-genre" - }, "useNewChapterEndpoint": true } }, @@ -4279,394 +237,25 @@ "id": "zetroTL", "sourceSite": "https://zetrotranslation.com/", "sourceName": "Zetro Translation", - "filters": { - "sort": { - "label": "Order by", - "value": "", - "options": [ - { - "label": "Rating", - "value": "rating" - }, - { - "label": "A-Z", - "value": "alphabet" - }, - { - "label": "Latest", - "value": "latest" - }, - { - "label": "Most Views", - "value": "views" - }, - { - "label": "New", - "value": "new-manga" - }, - { - "label": "Trending", - "value": "trending" - } - ], - "type": "Picker" - }, - "genres": { - "label": "GENRES", - "value": "", - "options": [ - { - "label": "Action", - "value": "action" - }, - { - "label": "Adventure", - "value": "adventure" - }, - { - "label": "Comedy", - "value": "comedy" - }, - { - "label": "Dark Elf", - "value": "dark-elf" - }, - { - "label": "Drama", - "value": "drama" - }, - { - "label": "Ecchi", - "value": "ecchi" - }, - { - "label": "Fantasy", - "value": "fantasy" - }, - { - "label": "Harem", - "value": "harem" - }, - { - "label": "Horror", - "value": "horror" - }, - { - "label": "Isekai", - "value": "isekai" - }, - { - "label": "Mecha", - "value": "mecha" - }, - { - "label": "Mystery", - "value": "mystery" - }, - { - "label": "NTR", - "value": "ntr" - }, - { - "label": "Original Works", - "value": "original-works" - }, - { - "label": "Rom-Com", - "value": "rom-com" - }, - { - "label": "Romance", - "value": "romance" - }, - { - "label": "School", - "value": "school" - }, - { - "label": "Shoujo", - "value": "shoujo" - }, - { - "label": "Slice of Life", - "value": "slice-of-life" - }, - { - "label": "Villain", - "value": "villain" - }, - { - "label": "Yuri", - "value": "yuri" - } - ], - "type": "Picker" - } - }, - "options": { - "path": { - "genres": "genre" - } - } + "options": {} }, { "id": "nocturneTLS", "sourceSite": "https://nocturnetls.net/", "sourceName": "Nocturne Translations", - "filters": { - "sort": { - "label": "Order by", - "value": "", - "options": [ - { - "label": "Rating", - "value": "rating" - }, - { - "label": "A-Z", - "value": "alphabet" - }, - { - "label": "Latest", - "value": "latest" - }, - { - "label": "Most Views", - "value": "views" - }, - { - "label": "New", - "value": "new-manga" - }, - { - "label": "Trending", - "value": "trending" - } - ], - "type": "Picker" - }, - "genres": { - "label": "GENRES", - "value": "", - "options": [ - { - "label": "Action", - "value": "action" - }, - { - "label": "Adult", - "value": "adult" - }, - { - "label": "Adventure", - "value": "adventure" - }, - { - "label": "Anime", - "value": "anime" - }, - { - "label": "Cartoon", - "value": "cartoon" - }, - { - "label": "Comedy", - "value": "comedy" - }, - { - "label": "Comic", - "value": "comic" - }, - { - "label": "Cooking", - "value": "cooking" - }, - { - "label": "Detective", - "value": "detective" - }, - { - "label": "Doujinshi", - "value": "doujinshi" - }, - { - "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": "Josei", - "value": "josei" - }, - { - "label": "Live action", - "value": "live-action" - }, - { - "label": "Manga", - "value": "manga" - }, - { - "label": "Manhua", - "value": "manhua" - }, - { - "label": "Manhwa", - "value": "manhwa" - }, - { - "label": "Martial Arts", - "value": "martial-arts" - }, - { - "label": "Mature", - "value": "mature" - }, - { - "label": "Mecha", - "value": "mecha" - }, - { - "label": "Mystery", - "value": "mystery" - }, - { - "label": "One shot", - "value": "one-shot" - }, - { - "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": "Smut", - "value": "smut" - }, - { - "label": "Soft Yaoi", - "value": "soft-yaoi" - }, - { - "label": "Soft Yuri", - "value": "soft-yuri" - }, - { - "label": "Sports", - "value": "sports" - }, - { - "label": "Supernatural", - "value": "supernatural" - }, - { - "label": "Tragedy", - "value": "tragedy" - }, - { - "label": "Webtoon", - "value": "webtoon" - }, - { - "label": "Yaoi", - "value": "yaoi" - }, - { - "label": "Yuri", - "value": "yuri" - } - ], - "type": "Picker" - } - }, - "options": { - "path": { - "novels": "novels", - "novel": "novels", - "chapter": "novels", - "genres": "manga-genre" - } - } + "options": {} }, { "id": "novelroom", "sourceSite": "https://novelroom.net/", "sourceName": "Novelroom.net", - "options": { - "path": { - "novels": "manga", - "novel": "manga", - "chapter": "manga" - } - } + "options": {} }, { "id": "novelr18", "sourceSite": "https://novelr18.com/", "sourceName": "NovelR18", "options": { - "path": { - "novel": "manga", - "chapter": "manga" - }, "useNewChapterEndpoint": true } }, @@ -4674,39 +263,6 @@ "id": "webnoveloku", "sourceSite": "https://www.webnoveloku.com/", "sourceName": "WebNovelOku", - "filters": { - "sort": { - "label": "Sırala", - "value": "", - "options": [ - { - "label": "A-Z", - "value": "alphabet" - }, - { - "label": "En Son", - "value": "latest" - }, - { - "label": "Görüntülenme", - "value": "views" - }, - { - "label": "Popülarite", - "value": "trending" - }, - { - "label": "Reyting", - "value": "rating" - }, - { - "label": "Yeni", - "value": "new-manga" - } - ], - "type": "Picker" - } - }, "options": { "lang": "Turkish" } @@ -4714,283 +270,7 @@ { "id": "LightNovelUpdates", "sourceSite": "https://www.lightnovelupdates.com/", - "sourceName": "Light Novel Updates", - "filters": { - "sort": { - "label": "Order by", - "value": "", - "options": [ - { - "label": "Rating", - "value": "rating" - }, - { - "label": "A-Z", - "value": "alphabet" - }, - { - "label": "Latest", - "value": "latest" - }, - { - "label": "Most Views", - "value": "views" - }, - { - "label": "New", - "value": "new-manga" - }, - { - "label": "Trending", - "value": "trending" - } - ], - "type": "Picker" - }, - "genres": { - "label": "GENRES", - "value": "", - "options": [ - { - "label": "Action", - "value": "action" - }, - { - "label": "Adventure", - "value": "adventure" - }, - { - "label": "Chinese", - "value": "chinese" - }, - { - "label": "Chinese Novel", - "value": "chinese-novel" - }, - { - "label": "Comedy", - "value": "comedy" - }, - { - "label": "Drama", - "value": "drama" - }, - { - "label": "Ecchi", - "value": "ecchi" - }, - { - "label": "Fantasy", - "value": "fantasy" - }, - { - "label": "Filipino", - "value": "filipino" - }, - { - "label": "Filipino Novel", - "value": "filipino-novel" - }, - { - "label": "Gender Bender", - "value": "gender-bender" - }, - { - "label": "Genre", - "value": "genre" - }, - { - "label": "Harem", - "value": "harem" - }, - { - "label": "Historical", - "value": "historical" - }, - { - "label": "Horror", - "value": "horror" - }, - { - "label": "Indonesia", - "value": "indonesia" - }, - { - "label": "Indonesia Novel", - "value": "indonesia-novel" - }, - { - "label": "Japanese", - "value": "japanese" - }, - { - "label": "Josei", - "value": "josei" - }, - { - "label": "Khmer", - "value": "khmer" - }, - { - "label": "Korean", - "value": "korean" - }, - { - "label": "Korean Novel", - "value": "korean-novel" - }, - { - "label": "Language", - "value": "language" - }, - { - "label": "Light Novel", - "value": "light-novel" - }, - { - "label": "Lolicon", - "value": "lolicon" - }, - { - "label": "Malaysian", - "value": "malaysian" - }, - { - "label": "Malaysian Novel", - "value": "malaysian-novel" - }, - { - "label": "Martial Arts", - "value": "martial-arts" - }, - { - "label": "Mature", - "value": "mature" - }, - { - "label": "Mecha", - "value": "mecha" - }, - { - "label": "Mystery", - "value": "mystery" - }, - { - "label": "N/A", - "value": "n-a" - }, - { - "label": "Novel Type", - "value": "novel-type" - }, - { - "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": "Shotacon", - "value": "shotacon" - }, - { - "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-3" - }, - { - "label": "Slice of Life", - "value": "slice-of-life" - }, - { - "label": "Smut", - "value": "smut" - }, - { - "label": "Sports", - "value": "sports" - }, - { - "label": "Supernatural", - "value": "supernatural" - }, - { - "label": "Thai", - "value": "thai" - }, - { - "label": "Thai Novel", - "value": "thai-novel" - }, - { - "label": "Tragedy", - "value": "tragedy" - }, - { - "label": "Vietnamese", - "value": "vietnamese" - }, - { - "label": "Vietnamese Novel", - "value": "vietnamese-novel" - }, - { - "label": "Web Novel", - "value": "web-novel" - }, - { - "label": "Wuxia", - "value": "wuxia" - }, - { - "label": "Xianxia", - "value": "xianxia" - }, - { - "label": "Xuanhuan", - "value": "xuanhuan" - }, - { - "label": "Yaoi", - "value": "yaoi" - }, - { - "label": "Yuri", - "value": "yuri" - } - ], - "type": "Picker" - } - } + "sourceName": "Light Novel Updates" }, { "id": "foxaholic", @@ -5001,275 +281,7 @@ "id": "nitromanga", "sourceSite": "https://nitromanga.com/", "sourceName": "Nitro Manga", - "filters": { - "sort": { - "label": "Order by", - "value": "", - "options": [ - { - "label": "Rating", - "value": "rating" - }, - { - "label": "A-Z", - "value": "alphabet" - }, - { - "label": "Latest", - "value": "latest" - }, - { - "label": "Most Views", - "value": "views" - }, - { - "label": "New", - "value": "new-manga" - }, - { - "label": "Trending", - "value": "trending" - } - ], - "type": "Picker" - }, - "genres": { - "label": "GENRES", - "value": "", - "options": [ - { - "label": "Action", - "value": "action" - }, - { - "label": "Adventure", - "value": "adventure" - }, - { - "label": "Apocalyptic", - "value": "apocalyptic" - }, - { - "label": "Beasts", - "value": "beasts" - }, - { - "label": "Cheat Systems", - "value": "cheat-systems" - }, - { - "label": "Comedy", - "value": "comedy" - }, - { - "label": "Completed", - "value": "completed" - }, - { - "label": "Crime", - "value": "crime" - }, - { - "label": "Cultivation", - "value": "cultivation" - }, - { - "label": "Demons", - "value": "demons" - }, - { - "label": "Drama", - "value": "drama" - }, - { - "label": "Dungeons", - "value": "dungeons" - }, - { - "label": "Ecchi", - "value": "ecchi" - }, - { - "label": "Fantasy", - "value": "fantasy" - }, - { - "label": "Game", - "value": "game" - }, - { - "label": "Genius MC", - "value": "genius-mc" - }, - { - "label": "Ghosts", - "value": "ghosts" - }, - { - "label": "Harem", - "value": "harem" - }, - { - "label": "Historical", - "value": "historical" - }, - { - "label": "Horror", - "value": "horror" - }, - { - "label": "Hunter", - "value": "hunter" - }, - { - "label": "Isekai", - "value": "isekai" - }, - { - "label": "Magic", - "value": "magic" - }, - { - "label": "Manga", - "value": "manga" - }, - { - "label": "Manhua", - "value": "manhua" - }, - { - "label": "Manhwa", - "value": "manhwa" - }, - { - "label": "Martial Arts", - "value": "martial-arts" - }, - { - "label": "Mature", - "value": "mature" - }, - { - "label": "Mecha", - "value": "mecha" - }, - { - "label": "Medical", - "value": "medical" - }, - { - "label": "Monsters", - "value": "monsters" - }, - { - "label": "Murim", - "value": "murim" - }, - { - "label": "Mystery", - "value": "mystery" - }, - { - "label": "Novel", - "value": "novel" - }, - { - "label": "Overpowered", - "value": "overpowered" - }, - { - "label": "Psychological", - "value": "psychological" - }, - { - "label": "Rebirth", - "value": "rebirth" - }, - { - "label": "Regression", - "value": "regression" - }, - { - "label": "Reincarnation", - "value": "reincarnation" - }, - { - "label": "Revenge", - "value": "revenge" - }, - { - "label": "Romance", - "value": "romance" - }, - { - "label": "School Life", - "value": "school-life" - }, - { - "label": "Sci-fi", - "value": "sci-fi" - }, - { - "label": "Seinen", - "value": "seinen" - }, - { - "label": "Shounen", - "value": "shounen" - }, - { - "label": "Slice of Life", - "value": "slice-of-life" - }, - { - "label": "Sports", - "value": "sports" - }, - { - "label": "Super Power", - "value": "super-power" - }, - { - "label": "Supernatural", - "value": "supernatural" - }, - { - "label": "System", - "value": "system" - }, - { - "label": "Time Travel", - "value": "time-travel" - }, - { - "label": "Tragedy", - "value": "tragedy" - }, - { - "label": "Video Games", - "value": "video-games" - }, - { - "label": "Webtoon", - "value": "webtoon" - }, - { - "label": "Wuxia", - "value": "wuxia" - }, - { - "label": "Zombie", - "value": "zombie" - } - ], - "type": "Picker" - } - }, "options": { - "path": { - "genres": "mangas-genre", - "novels": "mangas-genre/novel" - }, "useNewChapterEndpoint": true } }, @@ -5277,108 +289,7 @@ "id": "kiniga", "sourceSite": "https://kiniga.com/", "sourceName": "Kiniga", - "filters": { - "sort": { - "label": "Orden por", - "options": [ - { "label": "Relevância", "value": "" }, - { - "label": "A-Z", - "value": "alphabet" - }, - { - "label": "Mais Antigo", - "value": "latest" - }, - { - "label": "Mais vistos", - "value": "views" - }, - { - "label": "Tendência", - "value": "trending" - }, - { - "label": "Avaliação", - "value": "rating" - }, - { - "label": "Novo", - "value": "new-manga" - } - ], - "value": "", - "type": "Picker" - }, - "genres": { - "label": "Generos", - "options": [ - { "label": "Sem Filtro", "value": "" }, - { "label": "Ação", "value": "action" }, - { "label": "Artes Marciais", "value": "artes-marciais" }, - { "label": "Aventura", "value": "aventura" }, - { "label": "Comédia", "value": "comedia" }, - { "label": "Contemporâneo", "value": "contemporaneo" }, - { "label": "Contos Originais", "value": "contos-originais" }, - { "label": "Crime", "value": "crime" }, - { "label": "Cyberpunk", "value": "cyberpunk" }, - { "label": "Destaque", "value": "destaque" }, - { "label": "Distopia", "value": "distopia" }, - { "label": "Drama", "value": "drama" }, - { "label": "Ecchi", "value": "ecchi" }, - { "label": "Espacial", "value": "espacial" }, - { "label": "Esportes", "value": "esportes" }, - { "label": "Fanfic", "value": "fanfic" }, - { "label": "Fantasia", "value": "fantasia" }, - { "label": "Ficção Científica", "value": "ficcao-cientifica" }, - { "label": "Gastronomia", "value": "gastronomia" }, - { "label": "Harem", "value": "harem" }, - { "label": "Histórico", "value": "historico" }, - { "label": "Horror", "value": "horror" }, - { "label": "Infantil", "value": "infantil" }, - { "label": "Isekai", "value": "isekai" }, - { "label": "Jogos", "value": "jogos" }, - { "label": "LGBT+", "value": "lgbt" }, - { "label": "Magia", "value": "magia" }, - { "label": "Mecha", "value": "mecha" }, - { "label": "Medieval", "value": "medieval" }, - { "label": "Militar", "value": "militar" }, - { "label": "Mistério", "value": "misterio" }, - { "label": "Mitologia", "value": "mitologia" }, - { "label": "Moderno", "value": "moderno" }, - { "label": "Pós-Apocalíptico", "value": "pos-apocaliptico" }, - { "label": "Psicológico", "value": "psicologico" }, - { "label": "Realidade Virtual", "value": "realidade-virtual" }, - { "label": "Recomendado", "value": "recomendado" }, - { "label": "Romance", "value": "romance" }, - { "label": "RPG", "value": "rpg" }, - { "label": "Ficção Científica", "value": "sci-fi" }, - { "label": "Seinen", "value": "seinen" }, - { "label": "Shounen", "value": "shounen" }, - { "label": "Sistema de Jogo", "value": "sistema-de-jogo" }, - { "label": "Slice of Life", "value": "slice-of-life" }, - { "label": "SNKHome", "value": "snkhome" }, - { "label": "Sobrenatural", "value": "sobrenatural" }, - { "label": "Somente na Kiniga", "value": "somente-na-kiniga" }, - { "label": "Suspense", "value": "suspense" }, - { "label": "Terror", "value": "terror" }, - { "label": "Terror Psicológico", "value": "terror-psicologico" }, - { "label": "Traduções", "value": "traducoes" }, - { "label": "Tragédia", "value": "tragedia" }, - { "label": "Urbano", "value": "urbano" }, - { "label": "Vida Escolar", "value": "vida-escolar" } - ], - "value": "", - "type": "Picker" - } - }, "options": { - "path": { - "novels": "projetos", - "novel": "projeto", - "chapter": "capitulo", - "genres": "genero" - }, "lang": "Portuguese" } }, @@ -5386,46 +297,50 @@ "id": "e-novel", "sourceSite": "https://e-novel.online/", "sourceName": "E-Novel", - "filters": { - "sort": { - "label": "Orden por", - "options": [ - { "label": "Relevância", "value": "" }, - { - "label": "A-Z", - "value": "alphabet" - }, - { - "label": "Mais Antigo", - "value": "latest" - }, - { - "label": "Mais vistos", - "value": "views" - }, - { - "label": "Tendência", - "value": "trending" - }, - { - "label": "Avaliação", - "value": "rating" - }, - { - "label": "Novo", - "value": "new-manga" - } - ], - "value": "", - "type": "Picker" - } - }, "options": { - "path": { - "novels": "", - "genres": "genre" - }, "lang": "Portuguese" } + }, + { + "id": "panchotranslations", + "sourceSite": "https://panchotranslations.com/", + "sourceName": "Pancho Translations", + "options": { + "useNewChapterEndpoint": true, + "lang": "Spanish" + } + }, + { + "id": "salmonlatte", + "sourceSite": "https://salmonlatte.com/", + "sourceName": "Salmon Latte", + "options": { + "useNewChapterEndpoint": true + } + }, + { + "id": "asuralightnovel", + "sourceSite": "https://asuralightnovel.com/", + "sourceName": "Asura Light Novel", + "options": { + "useNewChapterEndpoint": true + } + }, + { + "id": "novel-lucky", + "sourceSite": "https://novel-lucky.com/", + "sourceName": "Novel Lucky", + "options": { + "useNewChapterEndpoint": true, + "lang": "Thai" + } + }, + { + "id": "fanstranslations", + "sourceSite": "https://fanstranslations.com/", + "sourceName": "Fans Translations", + "options": { + "useNewChapterEndpoint": true + } } -] +] \ No newline at end of file diff --git a/scripts/multisrc/madara/template.ts b/scripts/multisrc/madara/template.ts index da22355..e02eb5d 100644 --- a/scripts/multisrc/madara/template.ts +++ b/scripts/multisrc/madara/template.ts @@ -1,7 +1,7 @@ import { fetchApi, fetchFile } from "@libs/fetch"; import { Filters, FilterTypes } from "@libs/filterInputs"; import { Plugin } from "@typings/plugin"; -import { load as parseHTML } from "cheerio"; +import { CheerioAPI, load as parseHTML } from "cheerio"; import { defaultCover } from "@libs/defaultCover"; import { NovelStatus } from "@libs/novelStatus"; import dayjs from "dayjs"; @@ -9,25 +9,11 @@ import dayjs from "dayjs"; const includesAny = (str: string, keywords: string[]) => new RegExp(keywords.join("|")).test(str); -interface MadaraOptionPath { - genres?: string; - novels?: string; - novel?: string; - chapter?: string; -} - -const MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; - interface MadaraOptions { useNewChapterEndpoint?: boolean; - path?: MadaraOptionPath; lang?: string; orderBy?: string; + versionIncrements?: number; } export interface MadaraMetadata { @@ -35,7 +21,7 @@ export interface MadaraMetadata { sourceSite: string; sourceName: string; options?: MadaraOptions; - filters?: Filters; + filters?: any; } class MadaraPlugin implements Plugin.PluginBase { @@ -50,61 +36,66 @@ class MadaraPlugin implements Plugin.PluginBase { constructor(metadata: MadaraMetadata) { this.id = metadata.id; this.name = metadata.sourceName; - const iconFileName = metadata.sourceName.replace(/\s+/g, "").toLowerCase(); - this.icon = `multisrc/madara/icons/${iconFileName}.png`; + this.icon = `multisrc/madara/${metadata.id.toLowerCase()}.png`; this.site = metadata.sourceSite; - this.version = "1.0.0"; + const versionIncrements = metadata.options?.versionIncrements || 0; + this.version = `1.0.${1 + versionIncrements}`; this.options = metadata.options; this.filters = metadata.filters; } - async popularNovels( - pageNo: number, - { - filters, - showLatestNovels, - }: Plugin.PopularNovelsOptions, - ): Promise { + getHostname(url: string): string { + return url.split("/")[2]; + } + + async getCheerio(url: string): Promise { + const r = await fetchApi(url); + if (!r.ok) throw new Error("Could not reach site (" + r.status + ") try to open in webview."); + const $ = parseHTML(await r.text()); + const title = $("title").text().trim(); + if (this.getHostname(url) != this.getHostname(r.url) || + title == "Bot Verification" || title == "You are being redirected..." || title == "Un instant..." || title == "Just a moment..." || title == "Redirecting...") + throw new Error("Captcha error, please open in webview"); + return ($); + } + + parseNovels(loadedCheerio: CheerioAPI): Plugin.NovelItem[] { const novels: Plugin.NovelItem[] = []; - let url = this.site; - if (filters?.genres?.value) { - url += - (this.options?.path?.genres || MadaraDefaultPath.genres) + "/" + - filters.genres.value; - } else { - url += this.options?.path?.novels || MadaraDefaultPath.novels; - } - - url += "/page/" + pageNo + "/?m_orderby=" + - (showLatestNovels ? "latest" : filters?.sort?.value || "rating"); - - const body = await fetchApi(url).then((res) => res.text()); - const loadedCheerio = parseHTML(body); - loadedCheerio(".manga-title-badges").remove(); - - loadedCheerio(".page-item-detail").each((index, element) => { + + loadedCheerio(".page-item-detail, .c-tabs-item__content").each((index, element) => { const novelName = loadedCheerio(element).find(".post-title").text().trim(); - const novelUrl = - loadedCheerio(element).find(".post-title").find("a").attr("href") || ""; + const novelUrl = loadedCheerio(element).find(".post-title").find("a").attr("href") || ""; if (!novelName || !novelUrl) return; - const image = loadedCheerio(element).find("img"); const novelCover = image.attr("data-src") || image.attr("src"); - const novel: Plugin.NovelItem = { name: novelName, cover: novelCover, path: novelUrl.replace(this.site, ""), }; - novels.push(novel); }); return novels; } + async popularNovels(pageNo: number,{ filters, showLatestNovels }: Plugin.PopularNovelsOptions): Promise { + let url = this.site + "/page/" + pageNo + "/?s=&post_type=wp-manga"; + if (!filters) filters = {}; + if (showLatestNovels) url += "&m_orderby=latest"; + for (const key in filters) { + if (typeof filters[key].value === "object") + for (const value of filters[key].value as string[]) + url += `&${key}=${value}`; + else if (filters[key].value) + url += `&${key}=${filters[key].value}`; + } + const loadedCheerio = await this.getCheerio(url); + return this.parseNovels(loadedCheerio); + } + async parseNovel(novelPath: string): Promise { const body = await fetchApi(this.site + novelPath).then((res) => res.text()); let loadedCheerio = parseHTML(body); @@ -228,32 +219,10 @@ class MadaraPlugin implements Plugin.PluginBase { return chapterText; } - async searchNovels( - searchTerm: string, - pageNo?: number | undefined, - ): Promise { - const novels: Plugin.NovelItem[] = []; - const url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - - const body = await fetchApi(url).then((res) => res.text()); - const loadedCheerio = parseHTML(body); - - loadedCheerio(".c-tabs-item__content").each((index, element) => { - const novelName = loadedCheerio(element).find(".post-title").text().trim(); - const novelUrl = loadedCheerio(element).find(".post-title").find("a").attr("href") || ""; - if (!novelName || !novelUrl) return; - let image = loadedCheerio(element).find("img"); - const novelCover = image.attr("data-src") || image.attr("src"); - - const novel = { - name: novelName, - cover: novelCover, - path: novelUrl.replace(this.site, ""), - }; - - novels.push(novel); - }); - return novels; + async searchNovels(searchTerm: string, pageNo?: number | undefined): Promise { + const url = this.site + "page/" + pageNo + "/?s=" + searchTerm + "&post_type=wp-manga"; + const loadedCheerio = await this.getCheerio(url); + return this.parseNovels(loadedCheerio); } fetchImage = fetchFile;