diff --git a/.dist/K1ngfish3r/plugins.json b/.dist/K1ngfish3r/plugins.json deleted file mode 100644 index 8d9577f..0000000 --- a/.dist/K1ngfish3r/plugins.json +++ /dev/null @@ -1,982 +0,0 @@ -{ - "العربية": [ - { - "id": "ar-mtl", - "name": "ArMTL[madara]", - "site": "https://ar-mtl.club/", - "lang": "العربية", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/arabic/ArMTL[madara].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/armtl.png" - }, - { - "id": "arnovel", - "name": "ArNovel[madara]", - "site": "https://arnovel.me/", - "lang": "العربية", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/arabic/ArNovel[madara].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/arnovel.png" - }, - { - "id": "hizomanga", - "name": "HizoManga[madara]", - "site": "https://hizomanga.com/", - "lang": "العربية", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/arabic/HizoManga[madara].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/hizomanga.png" - }, - { - "id": "kol-novel", - "name": "Kol Novel[wpmangastream]", - "site": "https://kolnovel.com/", - "lang": "العربية", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/arabic/KolNovel[wpmangastream].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/wpmangastream/icons/kol-novel.png" - }, - { - "id": "kolnovel", - "name": "KolNovel", - "site": "https://kolnovel.lol/", - "lang": "العربية", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/arabic/kolnovel.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/wpmangastream/icons/kolnovel.png" - }, - { - "id": "novel4up", - "name": "Novel4Up[madara]", - "site": "https://novel4up.com/", - "lang": "العربية", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/arabic/Novel4Up[madara].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/novel4up.png" - }, - { - "id": "riwyat", - "name": "Riwyat[madara]", - "site": "https://riwyat.com/", - "lang": "العربية", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/arabic/Riwyat[madara].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/riwyat.png" - }, - { - "id": "teamxnovel", - "name": "TeamXNovel[madara]", - "site": "https://teamxnovel.com/", - "lang": "العربية", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/arabic/TeamXNovel[madara].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/teamxnovel.png" - } - ], - "中文, 汉语, 漢語": [ - { - "id": "linovelib", - "name": "Linovelib", - "site": "https://www.bilinovel.com", - "lang": "中文, 汉语, 漢語", - "version": "1.0.1", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/chinese/linovelib.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/cn/linovelib/icon.png" - } - ], - "English": [ - { - "id": "1stkissnovel", - "name": "FirstKissNovel[madara]", - "site": "https://1stkissnovel.org/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/FirstKissNovel[madara].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/firstkissnovel.png" - }, - { - "id": "anf.net", - "name": "AllNovelFull", - "site": "https://allnovelfull.net", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/allnovelfull.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/en/allnovelfull/icon.png" - }, - { - "id": "BLN.com", - "name": "BestLightNovel", - "site": "https://bestlightnovel.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/bestlightnovel.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/en/bestlightnovel/icon.png" - }, - { - "id": "boxnovel", - "name": "BoxNovel[madara]", - "site": "https://boxnovel.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/BoxNovel[madara].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/boxnovel.png" - }, - { - "id": "clicknovel", - "name": "ClickNovel[madara]", - "site": "https://clicknovel.net/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/ClickNovel[madara].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/clicknovel.png" - }, - { - "id": "comrademao", - "name": "Comrade Mao", - "site": "https://comrademao.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/comrademao.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/en/comrademao/icon.png" - }, - { - "id": "cratenovel", - "name": "CrateNovel[madara]", - "site": "https://cratenovel.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/CrateNovel[madara].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/cratenovel.png" - }, - { - "id": "daonovel", - "name": "DaoNovel[madara]", - "site": "https://daonovel.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/DaoNovel[madara].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/daonovel.png" - }, - { - "id": "DDL.com", - "name": "Divine Dao Library", - "site": "https://www.divinedaolibrary.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/divinedaolibrary.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/en/divinedaolibrary/icon.png" - }, - { - "id": "earlynovel", - "name": "Early Novel", - "site": "https://earlynovel.net/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/earlynovel.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/latestnovel.png" - }, - { - "id": "fanTLS", - "name": "Fans Translations[madara]", - "site": "https://fanstranslations.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/FansTranslations[madara].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/fanstranslations.png" - }, - { - "id": "foxaholic", - "name": "Foxaholic", - "site": "https://www.foxaholic.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/foxaholic.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/en/foxaholic/icon.png" - }, - { - "id": "freenovel.me", - "name": "FreeNovelMe[madara]", - "site": "https://freenovel.me/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/FreeNovelMe[madara].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/freenovelme.png" - }, - { - "id": "FWN.com", - "name": "Web NOVEL", - "site": "https://freewebnovel.com", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/freewebnovel.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/en/freewebnovel/icon.png" - }, - { - "id": "guavaread", - "name": "Guavaread[madara]", - "site": "https://guavaread.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/Guavaread[madara].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/guavaread.png" - }, - { - "id": "lightnovelpub", - "name": "LightNovelPub", - "site": "https://www.lightnovelpub.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/lightnovelpub.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/en/lightnovelpub/icon.png" - }, - { - "id": "LightNovelUpdates", - "name": "Light Novel Updates", - "site": "https://www.lightnovelupdates.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/lightnovelupdates.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/en/lightnovelupdates/icon.png" - }, - { - "id": "lightnovelworld", - "name": "LightNovelWorld", - "site": "https://www.webnovelworld.org/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/lightnovelworld.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/en/lightnovelworld/icon.png" - }, - { - "id": "lnheaven", - "name": "LightNovelHeaven[madara]", - "site": "https://lightnovelheaven.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/LightNovelHeaven[madara].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/lightnovelheaven.png" - }, - { - "id": "Ltnovel.com", - "name": "Ltnovel[readwn]", - "site": "https://www.ltnovel.com", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/Ltnovel[readwn].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/readwn/icons/ltnovel.png" - }, - { - "id": "lunarletters", - "name": "LunarLetters[madara]", - "site": "https://www.lunarletters.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/LunarLetters[madara].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/lunarletters.png" - }, - { - "id": "mostnovel", - "name": "MostNovel[madara]", - "site": "https://mostnovel.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/MostNovel[madara].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/mostnovel.png" - }, - { - "id": "mtl-novel", - "name": "MTL-Novel[madara]", - "site": "https://mtl-novel.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/MTLNovel[madara].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/mtl-novel.png" - }, - { - "id": "mtlnovel", - "name": "MTL Novel", - "site": "https://www.mtlnovel.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/mtlnovel.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/en/mtlnovel/icon.png" - }, - { - "id": "mtlnovel.club", - "name": "MTLNovel.Club[madara]", - "site": "https://mtlnovel.club/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/MTLNovelClub[madara].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/mtlnovel.club.png" - }, - { - "id": "mtlreader", - "name": "MTL Reader", - "site": "https://mtlreader.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/mtlreader.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/en/mtlreader/icon.png" - }, - { - "id": "mysticalmerries", - "name": "MysticalSeries[madara]", - "site": "https://mysticalmerries.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/MysticalSeries[madara].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/mysticalseries.png" - }, - { - "id": "neosekaiTLS", - "name": "NeoSekai Translations[madara]", - "site": "https://www.neosekaitranslations.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/NeoSekaiTranslations[madara].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/neosekaitranslations.png" - }, - { - "id": "NF.me", - "name": "NovelFullMe", - "site": "https://novelfull.me/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/NovelFullMe.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/en/novelfullme/icon.png" - }, - { - "id": "nitromanga", - "name": "Nitro Manga", - "site": "https://nitromanga.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/nitromanga.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/en/nitromanga/icon.png" - }, - { - "id": "NO.net", - "name": "novelsOnline", - "site": "https://novelsonline.net", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/NovelOnline.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/coverNotAvailable.jpg" - }, - { - "id": "noblemtl", - "name": "NobleMTL", - "site": "https://noblemtl.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/nobleMTL.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/en/noblemtl/icon.png" - }, - { - "id": "nocturneTLS", - "name": "Nocturne Translations[madara]", - "site": "https://nocturnetls.net/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/NocturneTranslations[madara].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/nocturnetranslations.png" - }, - { - "id": "noobchanTL", - "name": "Noobchan Translation[madara]", - "site": "https://noobchan.xyz/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/NoobchanTranslation[madara].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/noobchantranslation.png" - }, - { - "id": "novelbin", - "name": "Novel Bin", - "site": "https://novelmax.net/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/novelbin.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/en/novelbin/icon.png" - }, - { - "id": "novelfull", - "name": "NovelFull", - "site": "https://novelfull.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/novelfull.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/en/novelfull/icon.png" - }, - { - "id": "novelhall", - "name": "Novel Hall", - "site": "https://novelhall.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/novelhall.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/en/novelhall/icon.png" - }, - { - "id": "novelmultiverse", - "name": "NovelMultiverse[madara]", - "site": "https://www.novelmultiverse.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/NovelMultiverse[madara].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/novelmultiverse.png" - }, - { - "id": "novelr18", - "name": "NovelR18[madara]", - "site": "https://novelr18.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/NovelR18[madara].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/novelr18.png" - }, - { - "id": "novelroom", - "name": "Novelroom.net[madara]", - "site": "https://novelroom.net/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/Novelroomnet[madara].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/novelroom.net.png" - }, - { - "id": "novelstic", - "name": "Novelstic[madara]", - "site": "https://novelstic.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/Novelstic[madara].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/novelstic.png" - }, - { - "id": "novelTL", - "name": "NovelTranslate[madara]", - "site": "https://noveltranslate.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/NovelTranslate[madara].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/noveltranslate.png" - }, - { - "id": "novelupdates", - "name": "Novel Updates", - "site": "https://www.novelupdates.com/", - "lang": "English", - "version": "0.5.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/novelupdates.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/en/novelupdates/icon.png" - }, - { - "id": "onlymtl", - "name": "OnlyMTL[madara]", - "site": "https://www.onlymtl.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/OnlyMTL[madara].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/onlymtl.png" - }, - { - "id": "pandamtl", - "name": "PandaMTL", - "site": "https://pandamtl.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/pandaMTL.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/en/wordpress/icon.png" - }, - { - "id": "readwebnovels", - "name": "ReadWebNovels[madara]", - "site": "https://readwebnovels.net/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/ReadWebNovels[madara].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/readwebnovels.png" - }, - { - "id": "sleeptTLS", - "name": "SleepyTranslations[madara]", - "site": "https://sleepytranslations.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/SleepyTranslations[madara].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/sleepytranslations.png" - }, - { - "id": "sonicmtl", - "name": "SonicMTL[madara]", - "site": "https://www.sonicmtl.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/SonicMTL[madara].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/sonicmtl.png" - }, - { - "id": "sugarbbscan", - "name": "Sugar Babies[madara]", - "site": "https://sugarbbscan.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/SugarBabies[madara].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/sugarbabies.png" - }, - { - "id": "sweetEscapeTL", - "name": "Sweet Escape Translations[madara]", - "site": "https://sweetescapetranslations.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/SweetEscapeTranslations[madara].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/sweetescapetranslations.png" - }, - { - "id": "webnovelover", - "name": "WebNovelLover[madara]", - "site": "https://www.webnovelover.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/WebNovelLover[madara].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/webnovellover.png" - }, - { - "id": "wuxiacity", - "name": "Wuxiacity[readwn]", - "site": "https://www.wuxiacity.com", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/Wuxiacity[readwn].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/readwn/icons/wuxiacity.png" - }, - { - "id": "wuxiap", - "name": "Wuxiap[readwn]", - "site": "https://www.wuxiap.com", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/Wuxiap[readwn].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/readwn/icons/wuxiap.png" - }, - { - "id": "wuxiaworld", - "name": "Wuxia World", - "site": "https://www.wuxiaworld.com/", - "lang": "English", - "version": "0.5.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/wuxiaworld.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/en/wuxiaworld/icon.png" - }, - { - "id": "wuxiaworld.site", - "name": "WuxiaWorld.Site[madara]", - "site": "https://wuxiaworld.site/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/WuxiaWorldSite[madara].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/wuxiaworld.site.png" - }, - { - "id": "zetroTL", - "name": "Zetro Translation[madara]", - "site": "https://zetrotranslation.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/ZetroTranslation[madara].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/zetrotranslation.png" - }, - { - "id": "zinnovel", - "name": "ZinnNovel[madara]", - "site": "https://zinnovel.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/ZinnNovel[madara].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/zinnnovel.png" - } - ], - "français, française": [ - { - "id": "chireads.com", - "name": "Chireads", - "site": "https://chireads.com", - "lang": "français, française", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/french/chireads.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/fr/chireads/icon.png" - }, - { - "id": "lightnovelfr", - "name": "Ligh Novel FR[wpmangastream]", - "site": "https://lightnovelfr.com/", - "lang": "français, française", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/french/LighNovelFR[wpmangastream].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/wpmangastream/icons/lightnovelfr.png" - }, - { - "id": "NDG.com", - "name": "NovelDeGlace", - "site": "https://noveldeglace.com/", - "lang": "français, française", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/french/noveldeglace.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/fr/noveldeglace/icon.png" - } - ], - "Bahasa Indonesia": [ - { - "id": "IDWN.id", - "name": "IndoWebNovel", - "site": "https://indowebnovel.id/id/", - "lang": "Bahasa Indonesia", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/indonesian/indowebnovel.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/id/indowebnovel/icon.png" - }, - { - "id": "meionovel", - "name": "MeioNovel[madara]", - "site": "https://meionovel.id/", - "lang": "Bahasa Indonesia", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/indonesian/MeioNovel[madara].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/meionovel.png" - }, - { - "id": "morenovel", - "name": "MoreNovel[madara]", - "site": "https://morenovel.net/", - "lang": "Bahasa Indonesia", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/indonesian/MoreNovel[madara].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/morenovel.png" - }, - { - "id": "novelringan.com", - "name": "NovelRingan", - "site": "https://novelringan.com/", - "lang": "Bahasa Indonesia", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/indonesian/novelringan.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/id/novelringan/icon.png" - }, - { - "id": "sakura.id", - "name": "SakuraNovel", - "site": "https://sakuranovel.id/", - "lang": "Bahasa Indonesia", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/indonesian/sakuranovel.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/id/sakuranovel/icon.png" - }, - { - "id": "wbnovel", - "name": "WBNovel[madara]", - "site": "https://wbnovel.com/", - "lang": "Bahasa Indonesia", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/indonesian/WBNovel[madara].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/wbnovel.png" - } - ], - "日本語": [ - { - "id": "yomou.syosetu", - "name": "Syosetu", - "site": "https://yomou.syosetu.com/", - "lang": "日本語", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/japanese/Syosetu.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/jp/syosetu/icon.png" - } - ], - "한국어, 조선말": [ - { - "id": "agit.xyz", - "name": "Agitoon", - "site": "https://agit501.xyz/", - "lang": "한국어, 조선말", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/korean/Agitoon.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/kr/agitoon/agit.png" - } - ], - "Português": [ - { - "id": "lightnovelbrasil", - "name": "Light Novel Brasil", - "site": "https://lightnovelbrasil.com/", - "lang": "Português", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/portuguese/lightnovelbrasil.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/wpmangastream/icons/lightnovelbrasil.png" - } - ], - "русский язык": [ - { - "id": "AT", - "name": "Автор Тудей", - "site": "https://author.today", - "lang": "русский язык", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/russian/authortoday.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/ru/authortoday/icon.png" - }, - { - "id": "bookhamster", - "name": "Bookhamster[ifreedom]", - "site": "https://bookhamster.ru", - "lang": "русский язык", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/russian/Bookhamster[ifreedom].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/ifreedom/icons/bookhamster.png" - }, - { - "id": "bookriver", - "name": "Bookriver", - "site": "https://bookriver.ru", - "lang": "русский язык", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/russian/bookriver.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/ru/bookriver/icon.png" - }, - { - "id": "erolate", - "name": "Erolate[rulate]", - "site": "https://erolate.com", - "lang": "русский язык", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/russian/Erolate[rulate].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/rulate/icons/erolate.png" - }, - { - "id": "ficbook", - "name": "ficbook", - "site": "https://ficbook.net", - "lang": "русский язык", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/russian/ficbook.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/ru/ficbook/icon.png" - }, - { - "id": "freedlit.space", - "name": "LitSpace", - "site": "https://freedlit.space", - "lang": "русский язык", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/russian/LitSpace.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/ru/freedlit/icon.png" - }, - { - "id": "ifreedom", - "name": "Свободный Мир Ранобэ[ifreedom]", - "site": "https://ifreedom.su", - "lang": "русский язык", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/russian/СвободныйМирРанобэ[ifreedom].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/ifreedom/icons/ifreedom.png" - }, - { - "id": "jaomix.ru", - "name": "Jaomix", - "site": "https://jaomix.ru", - "lang": "русский язык", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/russian/jaomix.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/ru/jaomix/icon.png" - }, - { - "id": "ReN", - "name": "Renovels", - "site": "https://renovels.org", - "lang": "русский язык", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/russian/renovels.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/ru/renovels/icon.png" - }, - { - "id": "RLIB", - "name": "RanobeLib", - "site": "https://ranobelib.me", - "lang": "русский язык", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/russian/ranobelib.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/ru/ranobelib/icon.png" - }, - { - "id": "RNBH.org", - "name": "RanobeHub", - "site": "https://ranobehub.org/", - "lang": "русский язык", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/russian/ranobehub.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/ru/ranobehub/icon.png" - }, - { - "id": "RNRF", - "name": "РанобэРФ", - "site": "https://ранобэ.рф", - "lang": "русский язык", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/russian/ranoberf.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/ru/ranoberf/icon.png" - }, - { - "id": "TL", - "name": "NovelTL", - "site": "https://novel.tl", - "lang": "русский язык", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/russian/novelTL.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/ru/noveltl/icon.png" - }, - { - "id": "tl.rulate", - "name": "Rulate[rulate]", - "site": "https://tl.rulate.ru", - "lang": "русский язык", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/russian/Rulate[rulate].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/rulate/icons/rulate.png" - } - ], - "español, castellano": [ - { - "id": "awuxia.com", - "name": "ReinoWuxia", - "site": "http://www.reinowuxia.com/", - "lang": "español, castellano", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/spanish/novelawuxia.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/es/novelawuxia/icon.png" - }, - { - "id": "HasuTL", - "name": "Hasu Translations", - "site": "https://hasutl.wordpress.com/", - "lang": "español, castellano", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/spanish/hasutl.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/es/hasutl/icon.png" - }, - { - "id": "ligera.com", - "name": "Novelas Ligera", - "site": "https://novelasligera.com/", - "lang": "español, castellano", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/spanish/novelasligera.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/es/novelasligera/icon.png" - }, - { - "id": "oasisTL.wp", - "name": "Oasis Translations", - "site": "https://oasistranslations.wordpress.com/", - "lang": "español, castellano", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/spanish/oasistranslations.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/es/oasistranslations/icon.png" - }, - { - "id": "skynovels.net", - "name": "SkyNovels", - "site": "https://www.skynovels.net/", - "lang": "español, castellano", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/spanish/skynovels.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/es/skynovels/icon.png" - }, - { - "id": "tunovelaligera", - "name": "TuNovelaLigera", - "site": "https://tunovelaligera.com/", - "lang": "español, castellano", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/spanish/tunovelaligera.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/es/tunovelaligera/icon.png" - }, - { - "id": "yuukitls.com", - "name": "Yuuki Tls", - "site": "https://yuukitls.com/", - "lang": "español, castellano", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/spanish/yukitls.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/es/yuukitls/icon.png" - } - ], - "Türkçe": [ - { - "id": "epiknovel.com", - "name": "EpikNovel", - "site": "https://www.epiknovel.com/", - "lang": "Türkçe", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/turkish/epiknovel.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/tr/epiknovel/icon.png" - }, - { - "id": "lshnovel", - "name": "Liebe Schnee Hiver Novel", - "site": "https://lshnovel.com/", - "lang": "Türkçe", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/turkish/lshnovel.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/wpmangastream/icons/lshnovel.png" - }, - { - "id": "turkcelightnovels", - "name": "TurkceLightNovels[madara]", - "site": "https://turkcelightnovels.com/", - "lang": "Türkçe", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/turkish/TurkceLightNovels[madara].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/turkcelightnovels.png" - }, - { - "id": "webnoveloku", - "name": "WebNovelOku [madara]", - "site": "https://www.webnoveloku.com/", - "lang": "Türkçe", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/turkish/WebNovelOku[madara].js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/webnoveloku.png" - } - ], - "Україна": [ - { - "id": "smakolykytl", - "name": "Смаколики", - "site": "https://smakolykytl.site/", - "lang": "Україна", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/ukraine/smakolykytl.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/ua/smakolykytl/icon.png" - } - ], - "Tiếng Việt": [ - { - "id": "ln.hako", - "name": "Hako", - "site": "https://ln.hako.vn", - "lang": "Tiếng Việt", - "version": "1.0.1", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/vietnamese/LNHako.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/vi/hakolightnovel/icon.png" - }, - { - "id": "truyenfull", - "name": "Truyện Full", - "site": "https://truyenfull.vn", - "lang": "Tiếng Việt", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/vietnamese/truyenfull.js", - "iconUrl": "https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/vi/truyenfull/icon.png" - } - ] -} \ No newline at end of file diff --git a/.dist/K1ngfish3r/plugins.min.json b/.dist/K1ngfish3r/plugins.min.json deleted file mode 100644 index 6cd744e..0000000 --- a/.dist/K1ngfish3r/plugins.min.json +++ /dev/null @@ -1 +0,0 @@ -{"العربية":[{"id":"ar-mtl","name":"ArMTL[madara]","site":"https://ar-mtl.club/","lang":"العربية","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/arabic/ArMTL[madara].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/armtl.png"},{"id":"arnovel","name":"ArNovel[madara]","site":"https://arnovel.me/","lang":"العربية","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/arabic/ArNovel[madara].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/arnovel.png"},{"id":"hizomanga","name":"HizoManga[madara]","site":"https://hizomanga.com/","lang":"العربية","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/arabic/HizoManga[madara].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/hizomanga.png"},{"id":"kol-novel","name":"Kol Novel[wpmangastream]","site":"https://kolnovel.com/","lang":"العربية","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/arabic/KolNovel[wpmangastream].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/wpmangastream/icons/kol-novel.png"},{"id":"kolnovel","name":"KolNovel","site":"https://kolnovel.lol/","lang":"العربية","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/arabic/kolnovel.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/wpmangastream/icons/kolnovel.png"},{"id":"novel4up","name":"Novel4Up[madara]","site":"https://novel4up.com/","lang":"العربية","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/arabic/Novel4Up[madara].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/novel4up.png"},{"id":"riwyat","name":"Riwyat[madara]","site":"https://riwyat.com/","lang":"العربية","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/arabic/Riwyat[madara].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/riwyat.png"},{"id":"teamxnovel","name":"TeamXNovel[madara]","site":"https://teamxnovel.com/","lang":"العربية","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/arabic/TeamXNovel[madara].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/teamxnovel.png"}],"中文, 汉语, 漢語":[{"id":"linovelib","name":"Linovelib","site":"https://www.bilinovel.com","lang":"中文, 汉语, 漢語","version":"1.0.1","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/chinese/linovelib.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/cn/linovelib/icon.png"}],"English":[{"id":"1stkissnovel","name":"FirstKissNovel[madara]","site":"https://1stkissnovel.org/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/FirstKissNovel[madara].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/firstkissnovel.png"},{"id":"anf.net","name":"AllNovelFull","site":"https://allnovelfull.net","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/allnovelfull.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/en/allnovelfull/icon.png"},{"id":"BLN.com","name":"BestLightNovel","site":"https://bestlightnovel.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/bestlightnovel.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/en/bestlightnovel/icon.png"},{"id":"boxnovel","name":"BoxNovel[madara]","site":"https://boxnovel.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/BoxNovel[madara].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/boxnovel.png"},{"id":"clicknovel","name":"ClickNovel[madara]","site":"https://clicknovel.net/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/ClickNovel[madara].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/clicknovel.png"},{"id":"comrademao","name":"Comrade Mao","site":"https://comrademao.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/comrademao.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/en/comrademao/icon.png"},{"id":"cratenovel","name":"CrateNovel[madara]","site":"https://cratenovel.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/CrateNovel[madara].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/cratenovel.png"},{"id":"daonovel","name":"DaoNovel[madara]","site":"https://daonovel.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/DaoNovel[madara].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/daonovel.png"},{"id":"DDL.com","name":"Divine Dao Library","site":"https://www.divinedaolibrary.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/divinedaolibrary.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/en/divinedaolibrary/icon.png"},{"id":"earlynovel","name":"Early Novel","site":"https://earlynovel.net/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/earlynovel.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/latestnovel.png"},{"id":"fanTLS","name":"Fans Translations[madara]","site":"https://fanstranslations.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/FansTranslations[madara].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/fanstranslations.png"},{"id":"foxaholic","name":"Foxaholic","site":"https://www.foxaholic.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/foxaholic.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/en/foxaholic/icon.png"},{"id":"freenovel.me","name":"FreeNovelMe[madara]","site":"https://freenovel.me/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/FreeNovelMe[madara].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/freenovelme.png"},{"id":"FWN.com","name":"Web NOVEL","site":"https://freewebnovel.com","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/freewebnovel.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/en/freewebnovel/icon.png"},{"id":"guavaread","name":"Guavaread[madara]","site":"https://guavaread.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/Guavaread[madara].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/guavaread.png"},{"id":"lightnovelpub","name":"LightNovelPub","site":"https://www.lightnovelpub.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/lightnovelpub.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/en/lightnovelpub/icon.png"},{"id":"LightNovelUpdates","name":"Light Novel Updates","site":"https://www.lightnovelupdates.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/lightnovelupdates.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/en/lightnovelupdates/icon.png"},{"id":"lightnovelworld","name":"LightNovelWorld","site":"https://www.webnovelworld.org/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/lightnovelworld.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/en/lightnovelworld/icon.png"},{"id":"lnheaven","name":"LightNovelHeaven[madara]","site":"https://lightnovelheaven.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/LightNovelHeaven[madara].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/lightnovelheaven.png"},{"id":"Ltnovel.com","name":"Ltnovel[readwn]","site":"https://www.ltnovel.com","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/Ltnovel[readwn].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/readwn/icons/ltnovel.png"},{"id":"lunarletters","name":"LunarLetters[madara]","site":"https://www.lunarletters.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/LunarLetters[madara].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/lunarletters.png"},{"id":"mostnovel","name":"MostNovel[madara]","site":"https://mostnovel.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/MostNovel[madara].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/mostnovel.png"},{"id":"mtl-novel","name":"MTL-Novel[madara]","site":"https://mtl-novel.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/MTLNovel[madara].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/mtl-novel.png"},{"id":"mtlnovel","name":"MTL Novel","site":"https://www.mtlnovel.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/mtlnovel.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/en/mtlnovel/icon.png"},{"id":"mtlnovel.club","name":"MTLNovel.Club[madara]","site":"https://mtlnovel.club/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/MTLNovelClub[madara].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/mtlnovel.club.png"},{"id":"mtlreader","name":"MTL Reader","site":"https://mtlreader.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/mtlreader.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/en/mtlreader/icon.png"},{"id":"mysticalmerries","name":"MysticalSeries[madara]","site":"https://mysticalmerries.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/MysticalSeries[madara].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/mysticalseries.png"},{"id":"neosekaiTLS","name":"NeoSekai Translations[madara]","site":"https://www.neosekaitranslations.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/NeoSekaiTranslations[madara].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/neosekaitranslations.png"},{"id":"NF.me","name":"NovelFullMe","site":"https://novelfull.me/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/NovelFullMe.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/en/novelfullme/icon.png"},{"id":"nitromanga","name":"Nitro Manga","site":"https://nitromanga.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/nitromanga.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/en/nitromanga/icon.png"},{"id":"NO.net","name":"novelsOnline","site":"https://novelsonline.net","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/NovelOnline.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/coverNotAvailable.jpg"},{"id":"noblemtl","name":"NobleMTL","site":"https://noblemtl.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/nobleMTL.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/en/noblemtl/icon.png"},{"id":"nocturneTLS","name":"Nocturne Translations[madara]","site":"https://nocturnetls.net/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/NocturneTranslations[madara].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/nocturnetranslations.png"},{"id":"noobchanTL","name":"Noobchan Translation[madara]","site":"https://noobchan.xyz/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/NoobchanTranslation[madara].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/noobchantranslation.png"},{"id":"novelbin","name":"Novel Bin","site":"https://novelmax.net/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/novelbin.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/en/novelbin/icon.png"},{"id":"novelfull","name":"NovelFull","site":"https://novelfull.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/novelfull.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/en/novelfull/icon.png"},{"id":"novelhall","name":"Novel Hall","site":"https://novelhall.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/novelhall.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/en/novelhall/icon.png"},{"id":"novelmultiverse","name":"NovelMultiverse[madara]","site":"https://www.novelmultiverse.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/NovelMultiverse[madara].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/novelmultiverse.png"},{"id":"novelr18","name":"NovelR18[madara]","site":"https://novelr18.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/NovelR18[madara].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/novelr18.png"},{"id":"novelroom","name":"Novelroom.net[madara]","site":"https://novelroom.net/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/Novelroomnet[madara].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/novelroom.net.png"},{"id":"novelstic","name":"Novelstic[madara]","site":"https://novelstic.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/Novelstic[madara].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/novelstic.png"},{"id":"novelTL","name":"NovelTranslate[madara]","site":"https://noveltranslate.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/NovelTranslate[madara].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/noveltranslate.png"},{"id":"novelupdates","name":"Novel Updates","site":"https://www.novelupdates.com/","lang":"English","version":"0.5.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/novelupdates.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/en/novelupdates/icon.png"},{"id":"onlymtl","name":"OnlyMTL[madara]","site":"https://www.onlymtl.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/OnlyMTL[madara].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/onlymtl.png"},{"id":"pandamtl","name":"PandaMTL","site":"https://pandamtl.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/pandaMTL.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/en/wordpress/icon.png"},{"id":"readwebnovels","name":"ReadWebNovels[madara]","site":"https://readwebnovels.net/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/ReadWebNovels[madara].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/readwebnovels.png"},{"id":"sleeptTLS","name":"SleepyTranslations[madara]","site":"https://sleepytranslations.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/SleepyTranslations[madara].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/sleepytranslations.png"},{"id":"sonicmtl","name":"SonicMTL[madara]","site":"https://www.sonicmtl.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/SonicMTL[madara].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/sonicmtl.png"},{"id":"sugarbbscan","name":"Sugar Babies[madara]","site":"https://sugarbbscan.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/SugarBabies[madara].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/sugarbabies.png"},{"id":"sweetEscapeTL","name":"Sweet Escape Translations[madara]","site":"https://sweetescapetranslations.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/SweetEscapeTranslations[madara].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/sweetescapetranslations.png"},{"id":"webnovelover","name":"WebNovelLover[madara]","site":"https://www.webnovelover.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/WebNovelLover[madara].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/webnovellover.png"},{"id":"wuxiacity","name":"Wuxiacity[readwn]","site":"https://www.wuxiacity.com","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/Wuxiacity[readwn].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/readwn/icons/wuxiacity.png"},{"id":"wuxiap","name":"Wuxiap[readwn]","site":"https://www.wuxiap.com","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/Wuxiap[readwn].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/readwn/icons/wuxiap.png"},{"id":"wuxiaworld","name":"Wuxia World","site":"https://www.wuxiaworld.com/","lang":"English","version":"0.5.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/wuxiaworld.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/en/wuxiaworld/icon.png"},{"id":"wuxiaworld.site","name":"WuxiaWorld.Site[madara]","site":"https://wuxiaworld.site/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/WuxiaWorldSite[madara].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/wuxiaworld.site.png"},{"id":"zetroTL","name":"Zetro Translation[madara]","site":"https://zetrotranslation.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/ZetroTranslation[madara].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/zetrotranslation.png"},{"id":"zinnovel","name":"ZinnNovel[madara]","site":"https://zinnovel.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/english/ZinnNovel[madara].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/zinnnovel.png"}],"français, française":[{"id":"chireads.com","name":"Chireads","site":"https://chireads.com","lang":"français, française","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/french/chireads.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/fr/chireads/icon.png"},{"id":"lightnovelfr","name":"Ligh Novel FR[wpmangastream]","site":"https://lightnovelfr.com/","lang":"français, française","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/french/LighNovelFR[wpmangastream].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/wpmangastream/icons/lightnovelfr.png"},{"id":"NDG.com","name":"NovelDeGlace","site":"https://noveldeglace.com/","lang":"français, française","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/french/noveldeglace.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/fr/noveldeglace/icon.png"}],"Bahasa Indonesia":[{"id":"IDWN.id","name":"IndoWebNovel","site":"https://indowebnovel.id/id/","lang":"Bahasa Indonesia","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/indonesian/indowebnovel.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/id/indowebnovel/icon.png"},{"id":"meionovel","name":"MeioNovel[madara]","site":"https://meionovel.id/","lang":"Bahasa Indonesia","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/indonesian/MeioNovel[madara].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/meionovel.png"},{"id":"morenovel","name":"MoreNovel[madara]","site":"https://morenovel.net/","lang":"Bahasa Indonesia","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/indonesian/MoreNovel[madara].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/morenovel.png"},{"id":"novelringan.com","name":"NovelRingan","site":"https://novelringan.com/","lang":"Bahasa Indonesia","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/indonesian/novelringan.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/id/novelringan/icon.png"},{"id":"sakura.id","name":"SakuraNovel","site":"https://sakuranovel.id/","lang":"Bahasa Indonesia","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/indonesian/sakuranovel.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/id/sakuranovel/icon.png"},{"id":"wbnovel","name":"WBNovel[madara]","site":"https://wbnovel.com/","lang":"Bahasa Indonesia","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/indonesian/WBNovel[madara].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/wbnovel.png"}],"日本語":[{"id":"yomou.syosetu","name":"Syosetu","site":"https://yomou.syosetu.com/","lang":"日本語","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/japanese/Syosetu.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/jp/syosetu/icon.png"}],"한국어, 조선말":[{"id":"agit.xyz","name":"Agitoon","site":"https://agit501.xyz/","lang":"한국어, 조선말","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/korean/Agitoon.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/kr/agitoon/agit.png"}],"Português":[{"id":"lightnovelbrasil","name":"Light Novel Brasil","site":"https://lightnovelbrasil.com/","lang":"Português","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/portuguese/lightnovelbrasil.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/wpmangastream/icons/lightnovelbrasil.png"}],"русский язык":[{"id":"AT","name":"Автор Тудей","site":"https://author.today","lang":"русский язык","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/russian/authortoday.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/ru/authortoday/icon.png"},{"id":"bookhamster","name":"Bookhamster[ifreedom]","site":"https://bookhamster.ru","lang":"русский язык","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/russian/Bookhamster[ifreedom].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/ifreedom/icons/bookhamster.png"},{"id":"bookriver","name":"Bookriver","site":"https://bookriver.ru","lang":"русский язык","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/russian/bookriver.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/ru/bookriver/icon.png"},{"id":"erolate","name":"Erolate[rulate]","site":"https://erolate.com","lang":"русский язык","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/russian/Erolate[rulate].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/rulate/icons/erolate.png"},{"id":"ficbook","name":"ficbook","site":"https://ficbook.net","lang":"русский язык","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/russian/ficbook.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/ru/ficbook/icon.png"},{"id":"freedlit.space","name":"LitSpace","site":"https://freedlit.space","lang":"русский язык","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/russian/LitSpace.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/ru/freedlit/icon.png"},{"id":"ifreedom","name":"Свободный Мир Ранобэ[ifreedom]","site":"https://ifreedom.su","lang":"русский язык","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/russian/СвободныйМирРанобэ[ifreedom].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/ifreedom/icons/ifreedom.png"},{"id":"jaomix.ru","name":"Jaomix","site":"https://jaomix.ru","lang":"русский язык","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/russian/jaomix.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/ru/jaomix/icon.png"},{"id":"ReN","name":"Renovels","site":"https://renovels.org","lang":"русский язык","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/russian/renovels.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/ru/renovels/icon.png"},{"id":"RLIB","name":"RanobeLib","site":"https://ranobelib.me","lang":"русский язык","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/russian/ranobelib.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/ru/ranobelib/icon.png"},{"id":"RNBH.org","name":"RanobeHub","site":"https://ranobehub.org/","lang":"русский язык","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/russian/ranobehub.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/ru/ranobehub/icon.png"},{"id":"RNRF","name":"РанобэРФ","site":"https://ранобэ.рф","lang":"русский язык","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/russian/ranoberf.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/ru/ranoberf/icon.png"},{"id":"TL","name":"NovelTL","site":"https://novel.tl","lang":"русский язык","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/russian/novelTL.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/ru/noveltl/icon.png"},{"id":"tl.rulate","name":"Rulate[rulate]","site":"https://tl.rulate.ru","lang":"русский язык","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/russian/Rulate[rulate].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/rulate/icons/rulate.png"}],"español, castellano":[{"id":"awuxia.com","name":"ReinoWuxia","site":"http://www.reinowuxia.com/","lang":"español, castellano","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/spanish/novelawuxia.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/es/novelawuxia/icon.png"},{"id":"HasuTL","name":"Hasu Translations","site":"https://hasutl.wordpress.com/","lang":"español, castellano","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/spanish/hasutl.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/es/hasutl/icon.png"},{"id":"ligera.com","name":"Novelas Ligera","site":"https://novelasligera.com/","lang":"español, castellano","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/spanish/novelasligera.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/es/novelasligera/icon.png"},{"id":"oasisTL.wp","name":"Oasis Translations","site":"https://oasistranslations.wordpress.com/","lang":"español, castellano","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/spanish/oasistranslations.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/es/oasistranslations/icon.png"},{"id":"skynovels.net","name":"SkyNovels","site":"https://www.skynovels.net/","lang":"español, castellano","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/spanish/skynovels.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/es/skynovels/icon.png"},{"id":"tunovelaligera","name":"TuNovelaLigera","site":"https://tunovelaligera.com/","lang":"español, castellano","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/spanish/tunovelaligera.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/es/tunovelaligera/icon.png"},{"id":"yuukitls.com","name":"Yuuki Tls","site":"https://yuukitls.com/","lang":"español, castellano","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/spanish/yukitls.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/es/yuukitls/icon.png"}],"Türkçe":[{"id":"epiknovel.com","name":"EpikNovel","site":"https://www.epiknovel.com/","lang":"Türkçe","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/turkish/epiknovel.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/tr/epiknovel/icon.png"},{"id":"lshnovel","name":"Liebe Schnee Hiver Novel","site":"https://lshnovel.com/","lang":"Türkçe","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/turkish/lshnovel.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/wpmangastream/icons/lshnovel.png"},{"id":"turkcelightnovels","name":"TurkceLightNovels[madara]","site":"https://turkcelightnovels.com/","lang":"Türkçe","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/turkish/TurkceLightNovels[madara].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/turkcelightnovels.png"},{"id":"webnoveloku","name":"WebNovelOku [madara]","site":"https://www.webnoveloku.com/","lang":"Türkçe","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/turkish/WebNovelOku[madara].js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/multisrc/madara/icons/webnoveloku.png"}],"Україна":[{"id":"smakolykytl","name":"Смаколики","site":"https://smakolykytl.site/","lang":"Україна","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/ukraine/smakolykytl.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/ua/smakolykytl/icon.png"}],"Tiếng Việt":[{"id":"ln.hako","name":"Hako","site":"https://ln.hako.vn","lang":"Tiếng Việt","version":"1.0.1","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/vietnamese/LNHako.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/vi/hakolightnovel/icon.png"},{"id":"truyenfull","name":"Truyện Full","site":"https://truyenfull.vn","lang":"Tiếng Việt","version":"1.0.0","url":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/.js/plugins/vietnamese/truyenfull.js","iconUrl":"https://raw.githubusercontent.com/K1ngfish3r/lnreader-sources/master/icons/src/vi/truyenfull/icon.png"}]} \ No newline at end of file diff --git a/.dist/LNReader/plugins.json b/.dist/LNReader/plugins.json deleted file mode 100644 index 03b158d..0000000 --- a/.dist/LNReader/plugins.json +++ /dev/null @@ -1,982 +0,0 @@ -{ - "العربية": [ - { - "id": "ar-mtl", - "name": "ArMTL[madara]", - "site": "https://ar-mtl.club/", - "lang": "العربية", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/arabic/ArMTL[madara].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/armtl.png" - }, - { - "id": "arnovel", - "name": "ArNovel[madara]", - "site": "https://arnovel.me/", - "lang": "العربية", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/arabic/ArNovel[madara].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/arnovel.png" - }, - { - "id": "hizomanga", - "name": "HizoManga[madara]", - "site": "https://hizomanga.com/", - "lang": "العربية", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/arabic/HizoManga[madara].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/hizomanga.png" - }, - { - "id": "kol-novel", - "name": "Kol Novel[wpmangastream]", - "site": "https://kolnovel.com/", - "lang": "العربية", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/arabic/KolNovel[wpmangastream].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/wpmangastream/icons/kol-novel.png" - }, - { - "id": "kolnovel", - "name": "KolNovel", - "site": "https://kolnovel.lol/", - "lang": "العربية", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/arabic/kolnovel.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/wpmangastream/icons/kolnovel.png" - }, - { - "id": "novel4up", - "name": "Novel4Up[madara]", - "site": "https://novel4up.com/", - "lang": "العربية", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/arabic/Novel4Up[madara].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/novel4up.png" - }, - { - "id": "riwyat", - "name": "Riwyat[madara]", - "site": "https://riwyat.com/", - "lang": "العربية", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/arabic/Riwyat[madara].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/riwyat.png" - }, - { - "id": "teamxnovel", - "name": "TeamXNovel[madara]", - "site": "https://teamxnovel.com/", - "lang": "العربية", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/arabic/TeamXNovel[madara].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/teamxnovel.png" - } - ], - "中文, 汉语, 漢語": [ - { - "id": "linovelib", - "name": "Linovelib", - "site": "https://www.bilinovel.com", - "lang": "中文, 汉语, 漢語", - "version": "1.0.1", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/chinese/linovelib.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/cn/linovelib/icon.png" - } - ], - "English": [ - { - "id": "1stkissnovel", - "name": "FirstKissNovel[madara]", - "site": "https://1stkissnovel.org/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/FirstKissNovel[madara].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/firstkissnovel.png" - }, - { - "id": "anf.net", - "name": "AllNovelFull", - "site": "https://allnovelfull.net", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/allnovelfull.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/en/allnovelfull/icon.png" - }, - { - "id": "BLN.com", - "name": "BestLightNovel", - "site": "https://bestlightnovel.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/bestlightnovel.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/en/bestlightnovel/icon.png" - }, - { - "id": "boxnovel", - "name": "BoxNovel[madara]", - "site": "https://boxnovel.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/BoxNovel[madara].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/boxnovel.png" - }, - { - "id": "clicknovel", - "name": "ClickNovel[madara]", - "site": "https://clicknovel.net/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/ClickNovel[madara].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/clicknovel.png" - }, - { - "id": "comrademao", - "name": "Comrade Mao", - "site": "https://comrademao.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/comrademao.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/en/comrademao/icon.png" - }, - { - "id": "cratenovel", - "name": "CrateNovel[madara]", - "site": "https://cratenovel.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/CrateNovel[madara].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/cratenovel.png" - }, - { - "id": "daonovel", - "name": "DaoNovel[madara]", - "site": "https://daonovel.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/DaoNovel[madara].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/daonovel.png" - }, - { - "id": "DDL.com", - "name": "Divine Dao Library", - "site": "https://www.divinedaolibrary.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/divinedaolibrary.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/en/divinedaolibrary/icon.png" - }, - { - "id": "earlynovel", - "name": "Early Novel", - "site": "https://earlynovel.net/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/earlynovel.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/latestnovel.png" - }, - { - "id": "fanTLS", - "name": "Fans Translations[madara]", - "site": "https://fanstranslations.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/FansTranslations[madara].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/fanstranslations.png" - }, - { - "id": "foxaholic", - "name": "Foxaholic", - "site": "https://www.foxaholic.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/foxaholic.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/en/foxaholic/icon.png" - }, - { - "id": "freenovel.me", - "name": "FreeNovelMe[madara]", - "site": "https://freenovel.me/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/FreeNovelMe[madara].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/freenovelme.png" - }, - { - "id": "FWN.com", - "name": "Web NOVEL", - "site": "https://freewebnovel.com", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/freewebnovel.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/en/freewebnovel/icon.png" - }, - { - "id": "guavaread", - "name": "Guavaread[madara]", - "site": "https://guavaread.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/Guavaread[madara].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/guavaread.png" - }, - { - "id": "lightnovelpub", - "name": "LightNovelPub", - "site": "https://www.lightnovelpub.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/lightnovelpub.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/en/lightnovelpub/icon.png" - }, - { - "id": "LightNovelUpdates", - "name": "Light Novel Updates", - "site": "https://www.lightnovelupdates.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/lightnovelupdates.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/en/lightnovelupdates/icon.png" - }, - { - "id": "lightnovelworld", - "name": "LightNovelWorld", - "site": "https://www.webnovelworld.org/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/lightnovelworld.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/en/lightnovelworld/icon.png" - }, - { - "id": "lnheaven", - "name": "LightNovelHeaven[madara]", - "site": "https://lightnovelheaven.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/LightNovelHeaven[madara].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/lightnovelheaven.png" - }, - { - "id": "Ltnovel.com", - "name": "Ltnovel[readwn]", - "site": "https://www.ltnovel.com", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/Ltnovel[readwn].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/readwn/icons/ltnovel.png" - }, - { - "id": "lunarletters", - "name": "LunarLetters[madara]", - "site": "https://www.lunarletters.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/LunarLetters[madara].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/lunarletters.png" - }, - { - "id": "mostnovel", - "name": "MostNovel[madara]", - "site": "https://mostnovel.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/MostNovel[madara].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/mostnovel.png" - }, - { - "id": "mtl-novel", - "name": "MTL-Novel[madara]", - "site": "https://mtl-novel.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/MTLNovel[madara].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/mtl-novel.png" - }, - { - "id": "mtlnovel", - "name": "MTL Novel", - "site": "https://www.mtlnovel.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/mtlnovel.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/en/mtlnovel/icon.png" - }, - { - "id": "mtlnovel.club", - "name": "MTLNovel.Club[madara]", - "site": "https://mtlnovel.club/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/MTLNovelClub[madara].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/mtlnovel.club.png" - }, - { - "id": "mtlreader", - "name": "MTL Reader", - "site": "https://mtlreader.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/mtlreader.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/en/mtlreader/icon.png" - }, - { - "id": "mysticalmerries", - "name": "MysticalSeries[madara]", - "site": "https://mysticalmerries.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/MysticalSeries[madara].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/mysticalseries.png" - }, - { - "id": "neosekaiTLS", - "name": "NeoSekai Translations[madara]", - "site": "https://www.neosekaitranslations.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/NeoSekaiTranslations[madara].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/neosekaitranslations.png" - }, - { - "id": "NF.me", - "name": "NovelFullMe", - "site": "https://novelfull.me/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/NovelFullMe.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/en/novelfullme/icon.png" - }, - { - "id": "nitromanga", - "name": "Nitro Manga", - "site": "https://nitromanga.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/nitromanga.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/en/nitromanga/icon.png" - }, - { - "id": "NO.net", - "name": "novelsOnline", - "site": "https://novelsonline.net", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/NovelOnline.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/coverNotAvailable.jpg" - }, - { - "id": "noblemtl", - "name": "NobleMTL", - "site": "https://noblemtl.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/nobleMTL.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/en/noblemtl/icon.png" - }, - { - "id": "nocturneTLS", - "name": "Nocturne Translations[madara]", - "site": "https://nocturnetls.net/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/NocturneTranslations[madara].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/nocturnetranslations.png" - }, - { - "id": "noobchanTL", - "name": "Noobchan Translation[madara]", - "site": "https://noobchan.xyz/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/NoobchanTranslation[madara].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/noobchantranslation.png" - }, - { - "id": "novelbin", - "name": "Novel Bin", - "site": "https://novelmax.net/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/novelbin.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/en/novelbin/icon.png" - }, - { - "id": "novelfull", - "name": "NovelFull", - "site": "https://novelfull.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/novelfull.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/en/novelfull/icon.png" - }, - { - "id": "novelhall", - "name": "Novel Hall", - "site": "https://novelhall.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/novelhall.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/en/novelhall/icon.png" - }, - { - "id": "novelmultiverse", - "name": "NovelMultiverse[madara]", - "site": "https://www.novelmultiverse.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/NovelMultiverse[madara].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/novelmultiverse.png" - }, - { - "id": "novelr18", - "name": "NovelR18[madara]", - "site": "https://novelr18.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/NovelR18[madara].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/novelr18.png" - }, - { - "id": "novelroom", - "name": "Novelroom.net[madara]", - "site": "https://novelroom.net/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/Novelroomnet[madara].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/novelroom.net.png" - }, - { - "id": "novelstic", - "name": "Novelstic[madara]", - "site": "https://novelstic.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/Novelstic[madara].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/novelstic.png" - }, - { - "id": "novelTL", - "name": "NovelTranslate[madara]", - "site": "https://noveltranslate.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/NovelTranslate[madara].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/noveltranslate.png" - }, - { - "id": "novelupdates", - "name": "Novel Updates", - "site": "https://www.novelupdates.com/", - "lang": "English", - "version": "0.5.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/novelupdates.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/en/novelupdates/icon.png" - }, - { - "id": "onlymtl", - "name": "OnlyMTL[madara]", - "site": "https://www.onlymtl.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/OnlyMTL[madara].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/onlymtl.png" - }, - { - "id": "pandamtl", - "name": "PandaMTL", - "site": "https://pandamtl.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/pandaMTL.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/en/wordpress/icon.png" - }, - { - "id": "readwebnovels", - "name": "ReadWebNovels[madara]", - "site": "https://readwebnovels.net/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/ReadWebNovels[madara].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/readwebnovels.png" - }, - { - "id": "sleeptTLS", - "name": "SleepyTranslations[madara]", - "site": "https://sleepytranslations.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/SleepyTranslations[madara].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/sleepytranslations.png" - }, - { - "id": "sonicmtl", - "name": "SonicMTL[madara]", - "site": "https://www.sonicmtl.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/SonicMTL[madara].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/sonicmtl.png" - }, - { - "id": "sugarbbscan", - "name": "Sugar Babies[madara]", - "site": "https://sugarbbscan.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/SugarBabies[madara].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/sugarbabies.png" - }, - { - "id": "sweetEscapeTL", - "name": "Sweet Escape Translations[madara]", - "site": "https://sweetescapetranslations.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/SweetEscapeTranslations[madara].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/sweetescapetranslations.png" - }, - { - "id": "webnovelover", - "name": "WebNovelLover[madara]", - "site": "https://www.webnovelover.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/WebNovelLover[madara].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/webnovellover.png" - }, - { - "id": "wuxiacity", - "name": "Wuxiacity[readwn]", - "site": "https://www.wuxiacity.com", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/Wuxiacity[readwn].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/readwn/icons/wuxiacity.png" - }, - { - "id": "wuxiap", - "name": "Wuxiap[readwn]", - "site": "https://www.wuxiap.com", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/Wuxiap[readwn].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/readwn/icons/wuxiap.png" - }, - { - "id": "wuxiaworld", - "name": "Wuxia World", - "site": "https://www.wuxiaworld.com/", - "lang": "English", - "version": "0.5.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/wuxiaworld.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/en/wuxiaworld/icon.png" - }, - { - "id": "wuxiaworld.site", - "name": "WuxiaWorld.Site[madara]", - "site": "https://wuxiaworld.site/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/WuxiaWorldSite[madara].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/wuxiaworld.site.png" - }, - { - "id": "zetroTL", - "name": "Zetro Translation[madara]", - "site": "https://zetrotranslation.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/ZetroTranslation[madara].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/zetrotranslation.png" - }, - { - "id": "zinnovel", - "name": "ZinnNovel[madara]", - "site": "https://zinnovel.com/", - "lang": "English", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/ZinnNovel[madara].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/zinnnovel.png" - } - ], - "français, française": [ - { - "id": "chireads.com", - "name": "Chireads", - "site": "https://chireads.com", - "lang": "français, française", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/french/chireads.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/fr/chireads/icon.png" - }, - { - "id": "lightnovelfr", - "name": "Ligh Novel FR[wpmangastream]", - "site": "https://lightnovelfr.com/", - "lang": "français, française", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/french/LighNovelFR[wpmangastream].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/wpmangastream/icons/lightnovelfr.png" - }, - { - "id": "NDG.com", - "name": "NovelDeGlace", - "site": "https://noveldeglace.com/", - "lang": "français, française", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/french/noveldeglace.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/fr/noveldeglace/icon.png" - } - ], - "Bahasa Indonesia": [ - { - "id": "IDWN.id", - "name": "IndoWebNovel", - "site": "https://indowebnovel.id/id/", - "lang": "Bahasa Indonesia", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/indonesian/indowebnovel.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/id/indowebnovel/icon.png" - }, - { - "id": "meionovel", - "name": "MeioNovel[madara]", - "site": "https://meionovel.id/", - "lang": "Bahasa Indonesia", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/indonesian/MeioNovel[madara].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/meionovel.png" - }, - { - "id": "morenovel", - "name": "MoreNovel[madara]", - "site": "https://morenovel.net/", - "lang": "Bahasa Indonesia", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/indonesian/MoreNovel[madara].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/morenovel.png" - }, - { - "id": "novelringan.com", - "name": "NovelRingan", - "site": "https://novelringan.com/", - "lang": "Bahasa Indonesia", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/indonesian/novelringan.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/id/novelringan/icon.png" - }, - { - "id": "sakura.id", - "name": "SakuraNovel", - "site": "https://sakuranovel.id/", - "lang": "Bahasa Indonesia", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/indonesian/sakuranovel.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/id/sakuranovel/icon.png" - }, - { - "id": "wbnovel", - "name": "WBNovel[madara]", - "site": "https://wbnovel.com/", - "lang": "Bahasa Indonesia", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/indonesian/WBNovel[madara].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/wbnovel.png" - } - ], - "日本語": [ - { - "id": "yomou.syosetu", - "name": "Syosetu", - "site": "https://yomou.syosetu.com/", - "lang": "日本語", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/japanese/Syosetu.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/jp/syosetu/icon.png" - } - ], - "한국어, 조선말": [ - { - "id": "agit.xyz", - "name": "Agitoon", - "site": "https://agit501.xyz/", - "lang": "한국어, 조선말", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/korean/Agitoon.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/kr/agitoon/agit.png" - } - ], - "Português": [ - { - "id": "lightnovelbrasil", - "name": "Light Novel Brasil", - "site": "https://lightnovelbrasil.com/", - "lang": "Português", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/portuguese/lightnovelbrasil.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/wpmangastream/icons/lightnovelbrasil.png" - } - ], - "русский язык": [ - { - "id": "AT", - "name": "Автор Тудей", - "site": "https://author.today", - "lang": "русский язык", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/russian/authortoday.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/ru/authortoday/icon.png" - }, - { - "id": "bookhamster", - "name": "Bookhamster[ifreedom]", - "site": "https://bookhamster.ru", - "lang": "русский язык", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/russian/Bookhamster[ifreedom].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/ifreedom/icons/bookhamster.png" - }, - { - "id": "bookriver", - "name": "Bookriver", - "site": "https://bookriver.ru", - "lang": "русский язык", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/russian/bookriver.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/ru/bookriver/icon.png" - }, - { - "id": "erolate", - "name": "Erolate[rulate]", - "site": "https://erolate.com", - "lang": "русский язык", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/russian/Erolate[rulate].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/rulate/icons/erolate.png" - }, - { - "id": "ficbook", - "name": "ficbook", - "site": "https://ficbook.net", - "lang": "русский язык", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/russian/ficbook.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/ru/ficbook/icon.png" - }, - { - "id": "freedlit.space", - "name": "LitSpace", - "site": "https://freedlit.space", - "lang": "русский язык", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/russian/LitSpace.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/ru/freedlit/icon.png" - }, - { - "id": "ifreedom", - "name": "Свободный Мир Ранобэ[ifreedom]", - "site": "https://ifreedom.su", - "lang": "русский язык", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/russian/СвободныйМирРанобэ[ifreedom].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/ifreedom/icons/ifreedom.png" - }, - { - "id": "jaomix.ru", - "name": "Jaomix", - "site": "https://jaomix.ru", - "lang": "русский язык", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/russian/jaomix.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/ru/jaomix/icon.png" - }, - { - "id": "ReN", - "name": "Renovels", - "site": "https://renovels.org", - "lang": "русский язык", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/russian/renovels.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/ru/renovels/icon.png" - }, - { - "id": "RLIB", - "name": "RanobeLib", - "site": "https://ranobelib.me", - "lang": "русский язык", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/russian/ranobelib.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/ru/ranobelib/icon.png" - }, - { - "id": "RNBH.org", - "name": "RanobeHub", - "site": "https://ranobehub.org/", - "lang": "русский язык", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/russian/ranobehub.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/ru/ranobehub/icon.png" - }, - { - "id": "RNRF", - "name": "РанобэРФ", - "site": "https://ранобэ.рф", - "lang": "русский язык", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/russian/ranoberf.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/ru/ranoberf/icon.png" - }, - { - "id": "TL", - "name": "NovelTL", - "site": "https://novel.tl", - "lang": "русский язык", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/russian/novelTL.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/ru/noveltl/icon.png" - }, - { - "id": "tl.rulate", - "name": "Rulate[rulate]", - "site": "https://tl.rulate.ru", - "lang": "русский язык", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/russian/Rulate[rulate].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/rulate/icons/rulate.png" - } - ], - "español, castellano": [ - { - "id": "awuxia.com", - "name": "ReinoWuxia", - "site": "http://www.reinowuxia.com/", - "lang": "español, castellano", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/spanish/novelawuxia.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/es/novelawuxia/icon.png" - }, - { - "id": "HasuTL", - "name": "Hasu Translations", - "site": "https://hasutl.wordpress.com/", - "lang": "español, castellano", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/spanish/hasutl.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/es/hasutl/icon.png" - }, - { - "id": "ligera.com", - "name": "Novelas Ligera", - "site": "https://novelasligera.com/", - "lang": "español, castellano", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/spanish/novelasligera.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/es/novelasligera/icon.png" - }, - { - "id": "oasisTL.wp", - "name": "Oasis Translations", - "site": "https://oasistranslations.wordpress.com/", - "lang": "español, castellano", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/spanish/oasistranslations.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/es/oasistranslations/icon.png" - }, - { - "id": "skynovels.net", - "name": "SkyNovels", - "site": "https://www.skynovels.net/", - "lang": "español, castellano", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/spanish/skynovels.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/es/skynovels/icon.png" - }, - { - "id": "tunovelaligera", - "name": "TuNovelaLigera", - "site": "https://tunovelaligera.com/", - "lang": "español, castellano", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/spanish/tunovelaligera.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/es/tunovelaligera/icon.png" - }, - { - "id": "yuukitls.com", - "name": "Yuuki Tls", - "site": "https://yuukitls.com/", - "lang": "español, castellano", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/spanish/yukitls.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/es/yuukitls/icon.png" - } - ], - "Türkçe": [ - { - "id": "epiknovel.com", - "name": "EpikNovel", - "site": "https://www.epiknovel.com/", - "lang": "Türkçe", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/turkish/epiknovel.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/tr/epiknovel/icon.png" - }, - { - "id": "lshnovel", - "name": "Liebe Schnee Hiver Novel", - "site": "https://lshnovel.com/", - "lang": "Türkçe", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/turkish/lshnovel.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/wpmangastream/icons/lshnovel.png" - }, - { - "id": "turkcelightnovels", - "name": "TurkceLightNovels[madara]", - "site": "https://turkcelightnovels.com/", - "lang": "Türkçe", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/turkish/TurkceLightNovels[madara].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/turkcelightnovels.png" - }, - { - "id": "webnoveloku", - "name": "WebNovelOku [madara]", - "site": "https://www.webnoveloku.com/", - "lang": "Türkçe", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/turkish/WebNovelOku[madara].js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/webnoveloku.png" - } - ], - "Україна": [ - { - "id": "smakolykytl", - "name": "Смаколики", - "site": "https://smakolykytl.site/", - "lang": "Україна", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/ukraine/smakolykytl.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/ua/smakolykytl/icon.png" - } - ], - "Tiếng Việt": [ - { - "id": "ln.hako", - "name": "Hako", - "site": "https://ln.hako.vn", - "lang": "Tiếng Việt", - "version": "1.0.1", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/vietnamese/LNHako.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/vi/hakolightnovel/icon.png" - }, - { - "id": "truyenfull", - "name": "Truyện Full", - "site": "https://truyenfull.vn", - "lang": "Tiếng Việt", - "version": "1.0.0", - "url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/vietnamese/truyenfull.js", - "iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/vi/truyenfull/icon.png" - } - ] -} \ No newline at end of file diff --git a/.dist/LNReader/plugins.min.json b/.dist/LNReader/plugins.min.json deleted file mode 100644 index 62fb4dd..0000000 --- a/.dist/LNReader/plugins.min.json +++ /dev/null @@ -1 +0,0 @@ -{"العربية":[{"id":"ar-mtl","name":"ArMTL[madara]","site":"https://ar-mtl.club/","lang":"العربية","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/arabic/ArMTL[madara].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/armtl.png"},{"id":"arnovel","name":"ArNovel[madara]","site":"https://arnovel.me/","lang":"العربية","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/arabic/ArNovel[madara].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/arnovel.png"},{"id":"hizomanga","name":"HizoManga[madara]","site":"https://hizomanga.com/","lang":"العربية","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/arabic/HizoManga[madara].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/hizomanga.png"},{"id":"kol-novel","name":"Kol Novel[wpmangastream]","site":"https://kolnovel.com/","lang":"العربية","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/arabic/KolNovel[wpmangastream].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/wpmangastream/icons/kol-novel.png"},{"id":"kolnovel","name":"KolNovel","site":"https://kolnovel.lol/","lang":"العربية","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/arabic/kolnovel.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/wpmangastream/icons/kolnovel.png"},{"id":"novel4up","name":"Novel4Up[madara]","site":"https://novel4up.com/","lang":"العربية","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/arabic/Novel4Up[madara].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/novel4up.png"},{"id":"riwyat","name":"Riwyat[madara]","site":"https://riwyat.com/","lang":"العربية","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/arabic/Riwyat[madara].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/riwyat.png"},{"id":"teamxnovel","name":"TeamXNovel[madara]","site":"https://teamxnovel.com/","lang":"العربية","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/arabic/TeamXNovel[madara].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/teamxnovel.png"}],"中文, 汉语, 漢語":[{"id":"linovelib","name":"Linovelib","site":"https://www.bilinovel.com","lang":"中文, 汉语, 漢語","version":"1.0.1","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/chinese/linovelib.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/cn/linovelib/icon.png"}],"English":[{"id":"1stkissnovel","name":"FirstKissNovel[madara]","site":"https://1stkissnovel.org/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/FirstKissNovel[madara].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/firstkissnovel.png"},{"id":"anf.net","name":"AllNovelFull","site":"https://allnovelfull.net","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/allnovelfull.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/en/allnovelfull/icon.png"},{"id":"BLN.com","name":"BestLightNovel","site":"https://bestlightnovel.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/bestlightnovel.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/en/bestlightnovel/icon.png"},{"id":"boxnovel","name":"BoxNovel[madara]","site":"https://boxnovel.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/BoxNovel[madara].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/boxnovel.png"},{"id":"clicknovel","name":"ClickNovel[madara]","site":"https://clicknovel.net/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/ClickNovel[madara].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/clicknovel.png"},{"id":"comrademao","name":"Comrade Mao","site":"https://comrademao.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/comrademao.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/en/comrademao/icon.png"},{"id":"cratenovel","name":"CrateNovel[madara]","site":"https://cratenovel.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/CrateNovel[madara].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/cratenovel.png"},{"id":"daonovel","name":"DaoNovel[madara]","site":"https://daonovel.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/DaoNovel[madara].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/daonovel.png"},{"id":"DDL.com","name":"Divine Dao Library","site":"https://www.divinedaolibrary.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/divinedaolibrary.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/en/divinedaolibrary/icon.png"},{"id":"earlynovel","name":"Early Novel","site":"https://earlynovel.net/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/earlynovel.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/latestnovel.png"},{"id":"fanTLS","name":"Fans Translations[madara]","site":"https://fanstranslations.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/FansTranslations[madara].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/fanstranslations.png"},{"id":"foxaholic","name":"Foxaholic","site":"https://www.foxaholic.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/foxaholic.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/en/foxaholic/icon.png"},{"id":"freenovel.me","name":"FreeNovelMe[madara]","site":"https://freenovel.me/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/FreeNovelMe[madara].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/freenovelme.png"},{"id":"FWN.com","name":"Web NOVEL","site":"https://freewebnovel.com","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/freewebnovel.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/en/freewebnovel/icon.png"},{"id":"guavaread","name":"Guavaread[madara]","site":"https://guavaread.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/Guavaread[madara].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/guavaread.png"},{"id":"lightnovelpub","name":"LightNovelPub","site":"https://www.lightnovelpub.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/lightnovelpub.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/en/lightnovelpub/icon.png"},{"id":"LightNovelUpdates","name":"Light Novel Updates","site":"https://www.lightnovelupdates.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/lightnovelupdates.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/en/lightnovelupdates/icon.png"},{"id":"lightnovelworld","name":"LightNovelWorld","site":"https://www.webnovelworld.org/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/lightnovelworld.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/en/lightnovelworld/icon.png"},{"id":"lnheaven","name":"LightNovelHeaven[madara]","site":"https://lightnovelheaven.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/LightNovelHeaven[madara].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/lightnovelheaven.png"},{"id":"Ltnovel.com","name":"Ltnovel[readwn]","site":"https://www.ltnovel.com","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/Ltnovel[readwn].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/readwn/icons/ltnovel.png"},{"id":"lunarletters","name":"LunarLetters[madara]","site":"https://www.lunarletters.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/LunarLetters[madara].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/lunarletters.png"},{"id":"mostnovel","name":"MostNovel[madara]","site":"https://mostnovel.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/MostNovel[madara].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/mostnovel.png"},{"id":"mtl-novel","name":"MTL-Novel[madara]","site":"https://mtl-novel.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/MTLNovel[madara].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/mtl-novel.png"},{"id":"mtlnovel","name":"MTL Novel","site":"https://www.mtlnovel.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/mtlnovel.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/en/mtlnovel/icon.png"},{"id":"mtlnovel.club","name":"MTLNovel.Club[madara]","site":"https://mtlnovel.club/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/MTLNovelClub[madara].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/mtlnovel.club.png"},{"id":"mtlreader","name":"MTL Reader","site":"https://mtlreader.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/mtlreader.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/en/mtlreader/icon.png"},{"id":"mysticalmerries","name":"MysticalSeries[madara]","site":"https://mysticalmerries.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/MysticalSeries[madara].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/mysticalseries.png"},{"id":"neosekaiTLS","name":"NeoSekai Translations[madara]","site":"https://www.neosekaitranslations.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/NeoSekaiTranslations[madara].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/neosekaitranslations.png"},{"id":"NF.me","name":"NovelFullMe","site":"https://novelfull.me/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/NovelFullMe.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/en/novelfullme/icon.png"},{"id":"nitromanga","name":"Nitro Manga","site":"https://nitromanga.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/nitromanga.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/en/nitromanga/icon.png"},{"id":"NO.net","name":"novelsOnline","site":"https://novelsonline.net","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/NovelOnline.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/coverNotAvailable.jpg"},{"id":"noblemtl","name":"NobleMTL","site":"https://noblemtl.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/nobleMTL.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/en/noblemtl/icon.png"},{"id":"nocturneTLS","name":"Nocturne Translations[madara]","site":"https://nocturnetls.net/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/NocturneTranslations[madara].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/nocturnetranslations.png"},{"id":"noobchanTL","name":"Noobchan Translation[madara]","site":"https://noobchan.xyz/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/NoobchanTranslation[madara].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/noobchantranslation.png"},{"id":"novelbin","name":"Novel Bin","site":"https://novelmax.net/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/novelbin.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/en/novelbin/icon.png"},{"id":"novelfull","name":"NovelFull","site":"https://novelfull.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/novelfull.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/en/novelfull/icon.png"},{"id":"novelhall","name":"Novel Hall","site":"https://novelhall.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/novelhall.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/en/novelhall/icon.png"},{"id":"novelmultiverse","name":"NovelMultiverse[madara]","site":"https://www.novelmultiverse.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/NovelMultiverse[madara].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/novelmultiverse.png"},{"id":"novelr18","name":"NovelR18[madara]","site":"https://novelr18.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/NovelR18[madara].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/novelr18.png"},{"id":"novelroom","name":"Novelroom.net[madara]","site":"https://novelroom.net/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/Novelroomnet[madara].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/novelroom.net.png"},{"id":"novelstic","name":"Novelstic[madara]","site":"https://novelstic.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/Novelstic[madara].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/novelstic.png"},{"id":"novelTL","name":"NovelTranslate[madara]","site":"https://noveltranslate.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/NovelTranslate[madara].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/noveltranslate.png"},{"id":"novelupdates","name":"Novel Updates","site":"https://www.novelupdates.com/","lang":"English","version":"0.5.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/novelupdates.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/en/novelupdates/icon.png"},{"id":"onlymtl","name":"OnlyMTL[madara]","site":"https://www.onlymtl.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/OnlyMTL[madara].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/onlymtl.png"},{"id":"pandamtl","name":"PandaMTL","site":"https://pandamtl.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/pandaMTL.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/en/wordpress/icon.png"},{"id":"readwebnovels","name":"ReadWebNovels[madara]","site":"https://readwebnovels.net/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/ReadWebNovels[madara].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/readwebnovels.png"},{"id":"sleeptTLS","name":"SleepyTranslations[madara]","site":"https://sleepytranslations.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/SleepyTranslations[madara].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/sleepytranslations.png"},{"id":"sonicmtl","name":"SonicMTL[madara]","site":"https://www.sonicmtl.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/SonicMTL[madara].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/sonicmtl.png"},{"id":"sugarbbscan","name":"Sugar Babies[madara]","site":"https://sugarbbscan.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/SugarBabies[madara].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/sugarbabies.png"},{"id":"sweetEscapeTL","name":"Sweet Escape Translations[madara]","site":"https://sweetescapetranslations.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/SweetEscapeTranslations[madara].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/sweetescapetranslations.png"},{"id":"webnovelover","name":"WebNovelLover[madara]","site":"https://www.webnovelover.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/WebNovelLover[madara].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/webnovellover.png"},{"id":"wuxiacity","name":"Wuxiacity[readwn]","site":"https://www.wuxiacity.com","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/Wuxiacity[readwn].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/readwn/icons/wuxiacity.png"},{"id":"wuxiap","name":"Wuxiap[readwn]","site":"https://www.wuxiap.com","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/Wuxiap[readwn].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/readwn/icons/wuxiap.png"},{"id":"wuxiaworld","name":"Wuxia World","site":"https://www.wuxiaworld.com/","lang":"English","version":"0.5.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/wuxiaworld.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/en/wuxiaworld/icon.png"},{"id":"wuxiaworld.site","name":"WuxiaWorld.Site[madara]","site":"https://wuxiaworld.site/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/WuxiaWorldSite[madara].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/wuxiaworld.site.png"},{"id":"zetroTL","name":"Zetro Translation[madara]","site":"https://zetrotranslation.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/ZetroTranslation[madara].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/zetrotranslation.png"},{"id":"zinnovel","name":"ZinnNovel[madara]","site":"https://zinnovel.com/","lang":"English","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/english/ZinnNovel[madara].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/zinnnovel.png"}],"français, française":[{"id":"chireads.com","name":"Chireads","site":"https://chireads.com","lang":"français, française","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/french/chireads.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/fr/chireads/icon.png"},{"id":"lightnovelfr","name":"Ligh Novel FR[wpmangastream]","site":"https://lightnovelfr.com/","lang":"français, française","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/french/LighNovelFR[wpmangastream].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/wpmangastream/icons/lightnovelfr.png"},{"id":"NDG.com","name":"NovelDeGlace","site":"https://noveldeglace.com/","lang":"français, française","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/french/noveldeglace.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/fr/noveldeglace/icon.png"}],"Bahasa Indonesia":[{"id":"IDWN.id","name":"IndoWebNovel","site":"https://indowebnovel.id/id/","lang":"Bahasa Indonesia","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/indonesian/indowebnovel.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/id/indowebnovel/icon.png"},{"id":"meionovel","name":"MeioNovel[madara]","site":"https://meionovel.id/","lang":"Bahasa Indonesia","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/indonesian/MeioNovel[madara].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/meionovel.png"},{"id":"morenovel","name":"MoreNovel[madara]","site":"https://morenovel.net/","lang":"Bahasa Indonesia","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/indonesian/MoreNovel[madara].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/morenovel.png"},{"id":"novelringan.com","name":"NovelRingan","site":"https://novelringan.com/","lang":"Bahasa Indonesia","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/indonesian/novelringan.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/id/novelringan/icon.png"},{"id":"sakura.id","name":"SakuraNovel","site":"https://sakuranovel.id/","lang":"Bahasa Indonesia","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/indonesian/sakuranovel.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/id/sakuranovel/icon.png"},{"id":"wbnovel","name":"WBNovel[madara]","site":"https://wbnovel.com/","lang":"Bahasa Indonesia","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/indonesian/WBNovel[madara].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/wbnovel.png"}],"日本語":[{"id":"yomou.syosetu","name":"Syosetu","site":"https://yomou.syosetu.com/","lang":"日本語","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/japanese/Syosetu.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/jp/syosetu/icon.png"}],"한국어, 조선말":[{"id":"agit.xyz","name":"Agitoon","site":"https://agit501.xyz/","lang":"한국어, 조선말","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/korean/Agitoon.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/kr/agitoon/agit.png"}],"Português":[{"id":"lightnovelbrasil","name":"Light Novel Brasil","site":"https://lightnovelbrasil.com/","lang":"Português","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/portuguese/lightnovelbrasil.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/wpmangastream/icons/lightnovelbrasil.png"}],"русский язык":[{"id":"AT","name":"Автор Тудей","site":"https://author.today","lang":"русский язык","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/russian/authortoday.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/ru/authortoday/icon.png"},{"id":"bookhamster","name":"Bookhamster[ifreedom]","site":"https://bookhamster.ru","lang":"русский язык","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/russian/Bookhamster[ifreedom].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/ifreedom/icons/bookhamster.png"},{"id":"bookriver","name":"Bookriver","site":"https://bookriver.ru","lang":"русский язык","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/russian/bookriver.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/ru/bookriver/icon.png"},{"id":"erolate","name":"Erolate[rulate]","site":"https://erolate.com","lang":"русский язык","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/russian/Erolate[rulate].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/rulate/icons/erolate.png"},{"id":"ficbook","name":"ficbook","site":"https://ficbook.net","lang":"русский язык","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/russian/ficbook.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/ru/ficbook/icon.png"},{"id":"freedlit.space","name":"LitSpace","site":"https://freedlit.space","lang":"русский язык","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/russian/LitSpace.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/ru/freedlit/icon.png"},{"id":"ifreedom","name":"Свободный Мир Ранобэ[ifreedom]","site":"https://ifreedom.su","lang":"русский язык","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/russian/СвободныйМирРанобэ[ifreedom].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/ifreedom/icons/ifreedom.png"},{"id":"jaomix.ru","name":"Jaomix","site":"https://jaomix.ru","lang":"русский язык","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/russian/jaomix.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/ru/jaomix/icon.png"},{"id":"ReN","name":"Renovels","site":"https://renovels.org","lang":"русский язык","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/russian/renovels.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/ru/renovels/icon.png"},{"id":"RLIB","name":"RanobeLib","site":"https://ranobelib.me","lang":"русский язык","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/russian/ranobelib.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/ru/ranobelib/icon.png"},{"id":"RNBH.org","name":"RanobeHub","site":"https://ranobehub.org/","lang":"русский язык","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/russian/ranobehub.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/ru/ranobehub/icon.png"},{"id":"RNRF","name":"РанобэРФ","site":"https://ранобэ.рф","lang":"русский язык","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/russian/ranoberf.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/ru/ranoberf/icon.png"},{"id":"TL","name":"NovelTL","site":"https://novel.tl","lang":"русский язык","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/russian/novelTL.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/ru/noveltl/icon.png"},{"id":"tl.rulate","name":"Rulate[rulate]","site":"https://tl.rulate.ru","lang":"русский язык","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/russian/Rulate[rulate].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/rulate/icons/rulate.png"}],"español, castellano":[{"id":"awuxia.com","name":"ReinoWuxia","site":"http://www.reinowuxia.com/","lang":"español, castellano","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/spanish/novelawuxia.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/es/novelawuxia/icon.png"},{"id":"HasuTL","name":"Hasu Translations","site":"https://hasutl.wordpress.com/","lang":"español, castellano","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/spanish/hasutl.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/es/hasutl/icon.png"},{"id":"ligera.com","name":"Novelas Ligera","site":"https://novelasligera.com/","lang":"español, castellano","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/spanish/novelasligera.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/es/novelasligera/icon.png"},{"id":"oasisTL.wp","name":"Oasis Translations","site":"https://oasistranslations.wordpress.com/","lang":"español, castellano","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/spanish/oasistranslations.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/es/oasistranslations/icon.png"},{"id":"skynovels.net","name":"SkyNovels","site":"https://www.skynovels.net/","lang":"español, castellano","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/spanish/skynovels.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/es/skynovels/icon.png"},{"id":"tunovelaligera","name":"TuNovelaLigera","site":"https://tunovelaligera.com/","lang":"español, castellano","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/spanish/tunovelaligera.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/es/tunovelaligera/icon.png"},{"id":"yuukitls.com","name":"Yuuki Tls","site":"https://yuukitls.com/","lang":"español, castellano","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/spanish/yukitls.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/es/yuukitls/icon.png"}],"Türkçe":[{"id":"epiknovel.com","name":"EpikNovel","site":"https://www.epiknovel.com/","lang":"Türkçe","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/turkish/epiknovel.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/tr/epiknovel/icon.png"},{"id":"lshnovel","name":"Liebe Schnee Hiver Novel","site":"https://lshnovel.com/","lang":"Türkçe","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/turkish/lshnovel.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/wpmangastream/icons/lshnovel.png"},{"id":"turkcelightnovels","name":"TurkceLightNovels[madara]","site":"https://turkcelightnovels.com/","lang":"Türkçe","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/turkish/TurkceLightNovels[madara].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/turkcelightnovels.png"},{"id":"webnoveloku","name":"WebNovelOku [madara]","site":"https://www.webnoveloku.com/","lang":"Türkçe","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/turkish/WebNovelOku[madara].js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/multisrc/madara/icons/webnoveloku.png"}],"Україна":[{"id":"smakolykytl","name":"Смаколики","site":"https://smakolykytl.site/","lang":"Україна","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/ukraine/smakolykytl.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/ua/smakolykytl/icon.png"}],"Tiếng Việt":[{"id":"ln.hako","name":"Hako","site":"https://ln.hako.vn","lang":"Tiếng Việt","version":"1.0.1","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/vietnamese/LNHako.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/vi/hakolightnovel/icon.png"},{"id":"truyenfull","name":"Truyện Full","site":"https://truyenfull.vn","lang":"Tiếng Việt","version":"1.0.0","url":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/.js/plugins/vietnamese/truyenfull.js","iconUrl":"https://raw.githubusercontent.com/LNReader/lnreader-sources/master/icons/src/vi/truyenfull/icon.png"}]} \ No newline at end of file diff --git a/.github/workflows/typechecking.yml b/.github/workflows/typechecking.yml index a229795..8802030 100644 --- a/.github/workflows/typechecking.yml +++ b/.github/workflows/typechecking.yml @@ -18,12 +18,4 @@ jobs: run: npm install - name: Typescript checking - run: | - cat > config.json << EOF - { - "githubUsername": "LNReader", - "githubRepository": "lnreader-sources", - "githubBranch": "master" - } - EOF - tsc + run: tsc diff --git a/.github/workflows/update_plugins_host.yml b/.github/workflows/update_plugins_host.yml new file mode 100644 index 0000000..391c5d8 --- /dev/null +++ b/.github/workflows/update_plugins_host.yml @@ -0,0 +1,28 @@ +name: Update plugins host + +on: + push: + branches: + - master + +jobs: + updatehost: + if: github.repository == 'LNReader/lnreader-sources' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + token: ${{ secrets.REPO_SCOPED_TOKEN }} + - uses: actions/setup-node@v3 + with: + node-version: "18" + - name: Install dependencies + run: npm install + + - name: Update plugins host + run: | + git config user.name rajarsheechatterjee + git config user.email rajarshee.adm@gmail.com + chmod +x ./host.sh + ./host.sh + shell: bash diff --git a/.github/workflows/updatejson.yml b/.github/workflows/updatejson.yml deleted file mode 100644 index 4837824..0000000 --- a/.github/workflows/updatejson.yml +++ /dev/null @@ -1,56 +0,0 @@ -name: Update json files - -on: - push: - branches: - - master - -jobs: - updatejson: - if: github.repository == 'LNReader/lnreader-sources' - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: "18" - - name: Install dependencies - run: npm install - - - name: Clean up current dist - run: | - rm -rf .dist - mkdir .dist - cat > config.json << EOF - { - "githubUsername": "LNReader", - "githubRepository": "lnreader-sources", - "githubBranch": "master" - } - EOF - - name: Update json files - id: json - run: | - npm run json - changes="$(git diff --staged .dist)" - if [ "$changes" ] - then - changes=1 - else - changes="" - fi - echo "json-diff=$changes" >> $GITHUB_OUTPUT - - - name: Create pull request - if: ${{ steps.json.outputs.json-diff }} - uses: peter-evans/create-pull-request@v4 - with: - token: ${{ secrets.REPO_SCOPED_TOKEN }} - author: rajarsheechatterjee - committer: rajarsheechatterjee - commit-message: "plugins: update json files for new plugins" - title: Update json files - labels: enhancement - body: Auto-generated PR for updating json files - branch: update-json - delete-branch: true diff --git a/.gitignore b/.gitignore index ebc3f58..10d0c5e 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,6 @@ config.json # generated multisrc .ts files plugins/*/*\[*\]*.ts -# ignore TS translation folder but keep plugins folder -.js/* -!.js/plugins +# ignore dist stuffs +.js +.dist diff --git a/.js/plugins/arabic/ArMTL[madara].js b/.js/plugins/arabic/ArMTL[madara].js deleted file mode 100644 index 2a3cd1e..0000000 --- a/.js/plugins/arabic/ArMTL[madara].js +++ /dev/null @@ -1,295 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var dayjs_1 = __importDefault(require("dayjs")); -var MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; -var MadaraPlugin = /** @class */ (function () { - function MadaraPlugin(metadata) { - this.id = metadata.id; - this.name = metadata.sourceName + "[madara]"; - var iconFileName = metadata.sourceName - .replace(/\s+/g, "") - .toLowerCase(); - this.icon = "multisrc/madara/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - this.filters = metadata.filters; - } - MadaraPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - novels = []; - url = this.site; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) { - url += (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.path) === null || _d === void 0 ? void 0 : _d.genres) || MadaraDefaultPath.genres) + - "/" + - filters.genres.value; - } - else { - url += ((_f = (_e = this.options) === null || _e === void 0 ? void 0 : _e.path) === null || _f === void 0 ? void 0 : _f.novels) || MadaraDefaultPath.novels; - } - url += - "/page/" + - pageNo + - "/" + - "?m_orderby=" + - (showLatestNovels ? "latest" : ((_g = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _g === void 0 ? void 0 : _g.value) || "rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges").remove(); - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novel, body, loadedCheerio, html, novelId, formData, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges, #manga-title span").remove(); - novel.name = - loadedCheerio(".post-title h1").text().trim() || - loadedCheerio("#manga-title h1").text(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("data-lazy-src") || - loadedCheerio(".summary_image > a > img").attr("data-src") || - loadedCheerio(".summary_image > a > img").attr("src") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item, .post-content").each(function () { - var detailName = loadedCheerio(this).find("h5").text().trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - case "التصنيفات": - novel.genres = detail.replace(/[\\t\\n]/g, ","); - break; - case "Author(s)": - case "المؤلف": - case "المؤلف (ين)": - novel.author = detail; - break; - case "Status": - case "الحالة": - novel.status = - detail.includes("OnGoing") || detail.includes("مستمرة") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - loadedCheerio("div.summary__content .code-block,script").remove(); - novel.summary = - loadedCheerio("div.summary__content").text().trim() || - loadedCheerio("#tab-manga-about").text().trim() || - loadedCheerio('.post-content_item h5:contains("Summary")') - .next() - .text() - .trim(); - if (!(((_a = this.options) === null || _a === void 0 ? void 0 : _a.useNewChapterEndpoint) !== true)) return [3 /*break*/, 3]; - novelId = loadedCheerio(".rating-post-id").attr("value") || - loadedCheerio("#manga-chapters-holder").attr("data-id") || - ""; - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - }).then(function (res) { return res.text(); })]; - case 2: - html = _b.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl + "ajax/chapters/", { - method: "POST", - }).then(function (res) { return res.text(); })]; - case 4: - html = _b.sent(); - _b.label = 5; - case 5: - if (html !== "0") { - loadedCheerio = (0, cheerio_1.load)(html); - } - chapters = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - releaseDate = loadedCheerio(this) - .find("span.chapter-release-date") - .text() - .trim(); - if (releaseDate) { - releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(releaseDate); - } - else { - /** - * Insert current date - */ - releaseDate = (0, dayjs_1.default)().format("LL"); - } - var chapterUrl = loadedCheerio(this).find("a").attr("href") || ""; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MadaraPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || - loadedCheerio(".text-right").html() || - loadedCheerio(".entry-content").html() || - ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MadaraPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url, {})]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return MadaraPlugin; -}()); -var plugin = new MadaraPlugin({ "id": "ar-mtl", "sourceSite": "https://ar-mtl.club/", "sourceName": "ArMTL", "filters": {}, "options": { "useNewChapterEndpoint": true, "lang": "Arabic" } }); -exports.default = plugin; diff --git a/.js/plugins/arabic/ArNovel[madara].js b/.js/plugins/arabic/ArNovel[madara].js deleted file mode 100644 index 467c710..0000000 --- a/.js/plugins/arabic/ArNovel[madara].js +++ /dev/null @@ -1,296 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var dayjs_1 = __importDefault(require("dayjs")); -var MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; -var MadaraPlugin = /** @class */ (function () { - function MadaraPlugin(metadata) { - this.id = metadata.id; - this.name = metadata.sourceName + "[madara]"; - var iconFileName = metadata.sourceName - .replace(/\s+/g, "") - .toLowerCase(); - this.icon = "multisrc/madara/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - this.filters = metadata.filters; - } - MadaraPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - novels = []; - url = this.site; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) { - url += (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.path) === null || _d === void 0 ? void 0 : _d.genres) || MadaraDefaultPath.genres) + - "/" + - filters.genres.value; - } - else { - url += ((_f = (_e = this.options) === null || _e === void 0 ? void 0 : _e.path) === null || _f === void 0 ? void 0 : _f.novels) || MadaraDefaultPath.novels; - } - url += - "/page/" + - pageNo + - "/" + - "?m_orderby=" + - (showLatestNovels ? "latest" : ((_g = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _g === void 0 ? void 0 : _g.value) || "rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges").remove(); - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novel, body, loadedCheerio, html, novelId, formData, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges, #manga-title span").remove(); - novel.name = - loadedCheerio(".post-title h1").text().trim() || - loadedCheerio("#manga-title h1").text(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("data-lazy-src") || - loadedCheerio(".summary_image > a > img").attr("data-src") || - loadedCheerio(".summary_image > a > img").attr("src") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item, .post-content").each(function () { - var detailName = loadedCheerio(this).find("h5").text().trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - case "التصنيفات": - novel.genres = detail.replace(/[\\t\\n]/g, ","); - break; - case "Author(s)": - case "المؤلف": - case "المؤلف (ين)": - novel.author = detail; - break; - case "Status": - case "الحالة": - novel.status = - detail.includes("OnGoing") || detail.includes("مستمرة") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - loadedCheerio("div.summary__content .code-block,script").remove(); - novel.summary = - loadedCheerio("div.summary__content").text().trim() || - loadedCheerio("#tab-manga-about").text().trim() || - loadedCheerio('.post-content_item h5:contains("Summary")') - .next() - .text() - .trim(); - if (!(((_a = this.options) === null || _a === void 0 ? void 0 : _a.useNewChapterEndpoint) !== true)) return [3 /*break*/, 3]; - novelId = loadedCheerio(".rating-post-id").attr("value") || - loadedCheerio("#manga-chapters-holder").attr("data-id") || - ""; - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - }).then(function (res) { return res.text(); })]; - case 2: - html = _b.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl + "ajax/chapters/", { - method: "POST", - }).then(function (res) { return res.text(); })]; - case 4: - html = _b.sent(); - _b.label = 5; - case 5: - if (html !== "0") { - loadedCheerio = (0, cheerio_1.load)(html); - } - chapters = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - releaseDate = loadedCheerio(this) - .find("span.chapter-release-date") - .text() - .trim(); - if (releaseDate) { - releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(releaseDate); - } - else { - /** - * Insert current date - */ - releaseDate = (0, dayjs_1.default)().format("LL"); - } - var chapterUrl = loadedCheerio(this).find("a").attr("href") || ""; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MadaraPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || - loadedCheerio(".text-right").html() || - loadedCheerio(".entry-content").html() || - ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MadaraPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url, {})]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return MadaraPlugin; -}()); -var plugin = new MadaraPlugin({ "id": "arnovel", "sourceSite": "https://arnovel.me/", "sourceName": "ArNovel", "filters": { "sort": { "label": "الترتيب حسب", "value": "", "options": [{ "label": "Default", "value": "" }, { "label": "A-Z", "value": "alphabet" }, { "label": "الآخير", "value": "latest" }, { "label": "الأكثر مشاهدة", "value": "views" }, { "label": "التقييم", "value": "rating" }, { "label": "جديد", "value": "new-manga" }, { "label": "شائع", "value": "trending" }], "type": filterInputs_1.FilterTypes.Picker }, "genres": { "label": "التصنيفات", "value": "", "options": [{ "label": "NONE", "value": "" }, { "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": filterInputs_1.FilterTypes.Picker } }, "options": { "path": { "genres": "home/novel-genre" }, "useNewChapterEndpoint": true, "lang": "Arabic" } }); -exports.default = plugin; diff --git a/.js/plugins/arabic/HizoManga[madara].js b/.js/plugins/arabic/HizoManga[madara].js deleted file mode 100644 index f07d14a..0000000 --- a/.js/plugins/arabic/HizoManga[madara].js +++ /dev/null @@ -1,296 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var dayjs_1 = __importDefault(require("dayjs")); -var MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; -var MadaraPlugin = /** @class */ (function () { - function MadaraPlugin(metadata) { - this.id = metadata.id; - this.name = metadata.sourceName + "[madara]"; - var iconFileName = metadata.sourceName - .replace(/\s+/g, "") - .toLowerCase(); - this.icon = "multisrc/madara/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - this.filters = metadata.filters; - } - MadaraPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - novels = []; - url = this.site; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) { - url += (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.path) === null || _d === void 0 ? void 0 : _d.genres) || MadaraDefaultPath.genres) + - "/" + - filters.genres.value; - } - else { - url += ((_f = (_e = this.options) === null || _e === void 0 ? void 0 : _e.path) === null || _f === void 0 ? void 0 : _f.novels) || MadaraDefaultPath.novels; - } - url += - "/page/" + - pageNo + - "/" + - "?m_orderby=" + - (showLatestNovels ? "latest" : ((_g = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _g === void 0 ? void 0 : _g.value) || "rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges").remove(); - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novel, body, loadedCheerio, html, novelId, formData, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges, #manga-title span").remove(); - novel.name = - loadedCheerio(".post-title h1").text().trim() || - loadedCheerio("#manga-title h1").text(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("data-lazy-src") || - loadedCheerio(".summary_image > a > img").attr("data-src") || - loadedCheerio(".summary_image > a > img").attr("src") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item, .post-content").each(function () { - var detailName = loadedCheerio(this).find("h5").text().trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - case "التصنيفات": - novel.genres = detail.replace(/[\\t\\n]/g, ","); - break; - case "Author(s)": - case "المؤلف": - case "المؤلف (ين)": - novel.author = detail; - break; - case "Status": - case "الحالة": - novel.status = - detail.includes("OnGoing") || detail.includes("مستمرة") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - loadedCheerio("div.summary__content .code-block,script").remove(); - novel.summary = - loadedCheerio("div.summary__content").text().trim() || - loadedCheerio("#tab-manga-about").text().trim() || - loadedCheerio('.post-content_item h5:contains("Summary")') - .next() - .text() - .trim(); - if (!(((_a = this.options) === null || _a === void 0 ? void 0 : _a.useNewChapterEndpoint) !== true)) return [3 /*break*/, 3]; - novelId = loadedCheerio(".rating-post-id").attr("value") || - loadedCheerio("#manga-chapters-holder").attr("data-id") || - ""; - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - }).then(function (res) { return res.text(); })]; - case 2: - html = _b.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl + "ajax/chapters/", { - method: "POST", - }).then(function (res) { return res.text(); })]; - case 4: - html = _b.sent(); - _b.label = 5; - case 5: - if (html !== "0") { - loadedCheerio = (0, cheerio_1.load)(html); - } - chapters = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - releaseDate = loadedCheerio(this) - .find("span.chapter-release-date") - .text() - .trim(); - if (releaseDate) { - releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(releaseDate); - } - else { - /** - * Insert current date - */ - releaseDate = (0, dayjs_1.default)().format("LL"); - } - var chapterUrl = loadedCheerio(this).find("a").attr("href") || ""; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MadaraPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || - loadedCheerio(".text-right").html() || - loadedCheerio(".entry-content").html() || - ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MadaraPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url, {})]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return MadaraPlugin; -}()); -var plugin = new MadaraPlugin({ "id": "hizomanga", "sourceSite": "https://hizomanga.com/", "sourceName": "HizoManga", "filters": { "sort": { "label": "ترتيب حسب", "value": "", "options": [{ "label": "Default", "value": "" }, { "label": "A-Z", "value": "alphabet" }, { "label": "New", "value": "new-manga" }, { "label": "الأحدث", "value": "latest" }, { "label": "الأكثر مشاهدة", "value": "views" }, { "label": "التقييم", "value": "rating" }, { "label": "الرائج", "value": "trending" }], "type": filterInputs_1.FilterTypes.Picker }, "genres": { "label": "التصنيفات", "value": "", "options": [{ "label": "NONE", "value": "" }, { "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": filterInputs_1.FilterTypes.Picker } }, "options": { "path": { "novels": "serie", "novel": "serie", "chapter": "serie", "genres": "manga-genre" }, "useNewChapterEndpoint": true, "lang": "Arabic" } }); -exports.default = plugin; diff --git a/.js/plugins/arabic/KolNovel[wpmangastream].js b/.js/plugins/arabic/KolNovel[wpmangastream].js deleted file mode 100644 index 44673dc..0000000 --- a/.js/plugins/arabic/KolNovel[wpmangastream].js +++ /dev/null @@ -1,183 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var cheerio_1 = require("cheerio"); -var fetch_1 = require("@libs/fetch"); -var WPmangaStreamPlugin = /** @class */ (function () { - function WPmangaStreamPlugin(metadata) { - this.fetchImage = fetch_1.fetchFile; - this.id = metadata.id; - this.name = metadata.sourceName + "[wpmangastream]"; - this.icon = "multisrc/wpmangastream/icons/".concat(metadata.id, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - } - WPmangaStreamPlugin.prototype.popularNovels = function (page) { - return __awaiter(this, void 0, void 0, function () { - var url, body, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = this.site + "series/?page=" + page + "&status=&order=popular"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio("article.maindet").each(function () { - var name = loadedCheerio(this).find("h2").text(); - var image = loadedCheerio(this).find("img"); - var url = loadedCheerio(this).find("h2 a").attr("href"); - if (!url) - return; - novels.push({ - name: name, - cover: image.attr("data-src") || image.attr("src"), - url: url, - }); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - WPmangaStreamPlugin.prototype.parseNovelAndChapters = function (url) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, novel, summary, i, p, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { url: url }; - // novel.url = url; - novel.name = loadedCheerio("h1.entry-title").text(); - novel.cover = - loadedCheerio("img.wp-post-image").attr("data-src") || - loadedCheerio("img.wp-post-image").attr("src"); - novel.status = loadedCheerio("div.sertostat > span").attr("class"); - loadedCheerio("div.serl > span").each(function () { - var detailName = loadedCheerio(this).text().trim(); - var detail = loadedCheerio(this).next().text().trim(); - switch (detailName) { - case "الكاتب": - case "Author": - case "Auteur": - novel.author = detail; - break; - } - }); - novel.genres = loadedCheerio(".sertogenre") - .children("a") - .map(function (i, el) { return loadedCheerio(el).text(); }) - .toArray() - .join(","); - summary = loadedCheerio(".sersys > p").siblings().remove("div").end(); - novel.summary = ""; - for (i = 0; i < summary.length; i++) { - p = summary[i]; - novel.summary += loadedCheerio(p).text().trim() + "\\n\\n"; - } - chapters = loadedCheerio(".eplister li") - .map(function (index, element) { return ({ - name: loadedCheerio(element).find(".epl-num").text() + - loadedCheerio(element).find(".epl-title").text(), - releaseTime: loadedCheerio(element).find(".epl-date").text().trim(), - url: loadedCheerio(element).find("a").attr("href") || "", - }); }) - .get() - .filter(function (chapter) { return chapter.name && chapter.url; }); - if (((_a = this.options) === null || _a === void 0 ? void 0 : _a.reverseChapters) && chapters.length) - chapters.reverse(); - novel.chapters = chapters; - return [2 /*return*/, novel]; - } - }); - }); - }; - WPmangaStreamPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".epcontent").html() || ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - WPmangaStreamPlugin.prototype.searchNovels = function (searchTerm) { - return __awaiter(this, void 0, void 0, function () { - var url, body, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = this.site + "?s=" + searchTerm; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio("article.maindet").each(function () { - var name = loadedCheerio(this).find("h2").text(); - var image = loadedCheerio(this).find("img"); - var url = loadedCheerio(this).find("h2 a").attr("href"); - if (!url) - return; - novels.push({ - name: name, - cover: image.attr("data-src") || image.attr("src"), - url: url, - }); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - return WPmangaStreamPlugin; -}()); -var plugin = new WPmangaStreamPlugin({ "id": "kol-novel", "sourceSite": "https://kolnovel.com/", "sourceName": "Kol Novel", "options": { "lang": "arabic", "reverseChapters": true } }); -exports.default = plugin; diff --git a/.js/plugins/arabic/Novel4Up[madara].js b/.js/plugins/arabic/Novel4Up[madara].js deleted file mode 100644 index 38e2c25..0000000 --- a/.js/plugins/arabic/Novel4Up[madara].js +++ /dev/null @@ -1,296 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var dayjs_1 = __importDefault(require("dayjs")); -var MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; -var MadaraPlugin = /** @class */ (function () { - function MadaraPlugin(metadata) { - this.id = metadata.id; - this.name = metadata.sourceName + "[madara]"; - var iconFileName = metadata.sourceName - .replace(/\s+/g, "") - .toLowerCase(); - this.icon = "multisrc/madara/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - this.filters = metadata.filters; - } - MadaraPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - novels = []; - url = this.site; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) { - url += (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.path) === null || _d === void 0 ? void 0 : _d.genres) || MadaraDefaultPath.genres) + - "/" + - filters.genres.value; - } - else { - url += ((_f = (_e = this.options) === null || _e === void 0 ? void 0 : _e.path) === null || _f === void 0 ? void 0 : _f.novels) || MadaraDefaultPath.novels; - } - url += - "/page/" + - pageNo + - "/" + - "?m_orderby=" + - (showLatestNovels ? "latest" : ((_g = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _g === void 0 ? void 0 : _g.value) || "rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges").remove(); - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novel, body, loadedCheerio, html, novelId, formData, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges, #manga-title span").remove(); - novel.name = - loadedCheerio(".post-title h1").text().trim() || - loadedCheerio("#manga-title h1").text(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("data-lazy-src") || - loadedCheerio(".summary_image > a > img").attr("data-src") || - loadedCheerio(".summary_image > a > img").attr("src") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item, .post-content").each(function () { - var detailName = loadedCheerio(this).find("h5").text().trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - case "التصنيفات": - novel.genres = detail.replace(/[\\t\\n]/g, ","); - break; - case "Author(s)": - case "المؤلف": - case "المؤلف (ين)": - novel.author = detail; - break; - case "Status": - case "الحالة": - novel.status = - detail.includes("OnGoing") || detail.includes("مستمرة") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - loadedCheerio("div.summary__content .code-block,script").remove(); - novel.summary = - loadedCheerio("div.summary__content").text().trim() || - loadedCheerio("#tab-manga-about").text().trim() || - loadedCheerio('.post-content_item h5:contains("Summary")') - .next() - .text() - .trim(); - if (!(((_a = this.options) === null || _a === void 0 ? void 0 : _a.useNewChapterEndpoint) !== true)) return [3 /*break*/, 3]; - novelId = loadedCheerio(".rating-post-id").attr("value") || - loadedCheerio("#manga-chapters-holder").attr("data-id") || - ""; - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - }).then(function (res) { return res.text(); })]; - case 2: - html = _b.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl + "ajax/chapters/", { - method: "POST", - }).then(function (res) { return res.text(); })]; - case 4: - html = _b.sent(); - _b.label = 5; - case 5: - if (html !== "0") { - loadedCheerio = (0, cheerio_1.load)(html); - } - chapters = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - releaseDate = loadedCheerio(this) - .find("span.chapter-release-date") - .text() - .trim(); - if (releaseDate) { - releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(releaseDate); - } - else { - /** - * Insert current date - */ - releaseDate = (0, dayjs_1.default)().format("LL"); - } - var chapterUrl = loadedCheerio(this).find("a").attr("href") || ""; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MadaraPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || - loadedCheerio(".text-right").html() || - loadedCheerio(".entry-content").html() || - ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MadaraPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url, {})]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return MadaraPlugin; -}()); -var plugin = new MadaraPlugin({ "id": "novel4up", "sourceSite": "https://novel4up.com/", "sourceName": "Novel4Up", "filters": { "sort": { "label": "ترتيب حسب:", "value": "", "options": [{ "label": "Default", "value": "" }, { "label": "أ-ي", "value": "alphabet" }, { "label": "الأحدث", "value": "latest" }, { "label": "الأكثر مشاهدة", "value": "views" }, { "label": "التقييم", "value": "rating" }, { "label": "الجديد", "value": "new-manga" }, { "label": "الشائع", "value": "trending" }], "type": filterInputs_1.FilterTypes.Picker }, "genres": { "label": "التصنيفات", "value": "", "options": [{ "label": "NONE", "value": "" }, { "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": filterInputs_1.FilterTypes.Picker } }, "options": { "lang": "Arabic" } }); -exports.default = plugin; diff --git a/.js/plugins/arabic/Riwyat[madara].js b/.js/plugins/arabic/Riwyat[madara].js deleted file mode 100644 index 340e407..0000000 --- a/.js/plugins/arabic/Riwyat[madara].js +++ /dev/null @@ -1,296 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var dayjs_1 = __importDefault(require("dayjs")); -var MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; -var MadaraPlugin = /** @class */ (function () { - function MadaraPlugin(metadata) { - this.id = metadata.id; - this.name = metadata.sourceName + "[madara]"; - var iconFileName = metadata.sourceName - .replace(/\s+/g, "") - .toLowerCase(); - this.icon = "multisrc/madara/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - this.filters = metadata.filters; - } - MadaraPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - novels = []; - url = this.site; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) { - url += (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.path) === null || _d === void 0 ? void 0 : _d.genres) || MadaraDefaultPath.genres) + - "/" + - filters.genres.value; - } - else { - url += ((_f = (_e = this.options) === null || _e === void 0 ? void 0 : _e.path) === null || _f === void 0 ? void 0 : _f.novels) || MadaraDefaultPath.novels; - } - url += - "/page/" + - pageNo + - "/" + - "?m_orderby=" + - (showLatestNovels ? "latest" : ((_g = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _g === void 0 ? void 0 : _g.value) || "rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges").remove(); - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novel, body, loadedCheerio, html, novelId, formData, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges, #manga-title span").remove(); - novel.name = - loadedCheerio(".post-title h1").text().trim() || - loadedCheerio("#manga-title h1").text(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("data-lazy-src") || - loadedCheerio(".summary_image > a > img").attr("data-src") || - loadedCheerio(".summary_image > a > img").attr("src") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item, .post-content").each(function () { - var detailName = loadedCheerio(this).find("h5").text().trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - case "التصنيفات": - novel.genres = detail.replace(/[\\t\\n]/g, ","); - break; - case "Author(s)": - case "المؤلف": - case "المؤلف (ين)": - novel.author = detail; - break; - case "Status": - case "الحالة": - novel.status = - detail.includes("OnGoing") || detail.includes("مستمرة") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - loadedCheerio("div.summary__content .code-block,script").remove(); - novel.summary = - loadedCheerio("div.summary__content").text().trim() || - loadedCheerio("#tab-manga-about").text().trim() || - loadedCheerio('.post-content_item h5:contains("Summary")') - .next() - .text() - .trim(); - if (!(((_a = this.options) === null || _a === void 0 ? void 0 : _a.useNewChapterEndpoint) !== true)) return [3 /*break*/, 3]; - novelId = loadedCheerio(".rating-post-id").attr("value") || - loadedCheerio("#manga-chapters-holder").attr("data-id") || - ""; - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - }).then(function (res) { return res.text(); })]; - case 2: - html = _b.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl + "ajax/chapters/", { - method: "POST", - }).then(function (res) { return res.text(); })]; - case 4: - html = _b.sent(); - _b.label = 5; - case 5: - if (html !== "0") { - loadedCheerio = (0, cheerio_1.load)(html); - } - chapters = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - releaseDate = loadedCheerio(this) - .find("span.chapter-release-date") - .text() - .trim(); - if (releaseDate) { - releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(releaseDate); - } - else { - /** - * Insert current date - */ - releaseDate = (0, dayjs_1.default)().format("LL"); - } - var chapterUrl = loadedCheerio(this).find("a").attr("href") || ""; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MadaraPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || - loadedCheerio(".text-right").html() || - loadedCheerio(".entry-content").html() || - ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MadaraPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url, {})]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return MadaraPlugin; -}()); -var plugin = new MadaraPlugin({ "id": "riwyat", "sourceSite": "https://riwyat.com/", "sourceName": "Riwyat", "filters": { "sort": { "label": "Order by", "value": "", "options": [{ "label": "Default", "value": "" }, { "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": filterInputs_1.FilterTypes.Picker }, "genres": { "label": "GENRES", "value": "", "options": [{ "label": "NONE", "value": "" }, { "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": filterInputs_1.FilterTypes.Picker } }, "options": { "useNewChapterEndpoint": true, "lang": "Arabic" } }); -exports.default = plugin; diff --git a/.js/plugins/arabic/TeamXNovel[madara].js b/.js/plugins/arabic/TeamXNovel[madara].js deleted file mode 100644 index ce98e62..0000000 --- a/.js/plugins/arabic/TeamXNovel[madara].js +++ /dev/null @@ -1,295 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var dayjs_1 = __importDefault(require("dayjs")); -var MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; -var MadaraPlugin = /** @class */ (function () { - function MadaraPlugin(metadata) { - this.id = metadata.id; - this.name = metadata.sourceName + "[madara]"; - var iconFileName = metadata.sourceName - .replace(/\s+/g, "") - .toLowerCase(); - this.icon = "multisrc/madara/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - this.filters = metadata.filters; - } - MadaraPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - novels = []; - url = this.site; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) { - url += (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.path) === null || _d === void 0 ? void 0 : _d.genres) || MadaraDefaultPath.genres) + - "/" + - filters.genres.value; - } - else { - url += ((_f = (_e = this.options) === null || _e === void 0 ? void 0 : _e.path) === null || _f === void 0 ? void 0 : _f.novels) || MadaraDefaultPath.novels; - } - url += - "/page/" + - pageNo + - "/" + - "?m_orderby=" + - (showLatestNovels ? "latest" : ((_g = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _g === void 0 ? void 0 : _g.value) || "rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges").remove(); - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novel, body, loadedCheerio, html, novelId, formData, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges, #manga-title span").remove(); - novel.name = - loadedCheerio(".post-title h1").text().trim() || - loadedCheerio("#manga-title h1").text(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("data-lazy-src") || - loadedCheerio(".summary_image > a > img").attr("data-src") || - loadedCheerio(".summary_image > a > img").attr("src") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item, .post-content").each(function () { - var detailName = loadedCheerio(this).find("h5").text().trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - case "التصنيفات": - novel.genres = detail.replace(/[\\t\\n]/g, ","); - break; - case "Author(s)": - case "المؤلف": - case "المؤلف (ين)": - novel.author = detail; - break; - case "Status": - case "الحالة": - novel.status = - detail.includes("OnGoing") || detail.includes("مستمرة") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - loadedCheerio("div.summary__content .code-block,script").remove(); - novel.summary = - loadedCheerio("div.summary__content").text().trim() || - loadedCheerio("#tab-manga-about").text().trim() || - loadedCheerio('.post-content_item h5:contains("Summary")') - .next() - .text() - .trim(); - if (!(((_a = this.options) === null || _a === void 0 ? void 0 : _a.useNewChapterEndpoint) !== true)) return [3 /*break*/, 3]; - novelId = loadedCheerio(".rating-post-id").attr("value") || - loadedCheerio("#manga-chapters-holder").attr("data-id") || - ""; - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - }).then(function (res) { return res.text(); })]; - case 2: - html = _b.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl + "ajax/chapters/", { - method: "POST", - }).then(function (res) { return res.text(); })]; - case 4: - html = _b.sent(); - _b.label = 5; - case 5: - if (html !== "0") { - loadedCheerio = (0, cheerio_1.load)(html); - } - chapters = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - releaseDate = loadedCheerio(this) - .find("span.chapter-release-date") - .text() - .trim(); - if (releaseDate) { - releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(releaseDate); - } - else { - /** - * Insert current date - */ - releaseDate = (0, dayjs_1.default)().format("LL"); - } - var chapterUrl = loadedCheerio(this).find("a").attr("href") || ""; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MadaraPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || - loadedCheerio(".text-right").html() || - loadedCheerio(".entry-content").html() || - ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MadaraPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url, {})]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return MadaraPlugin; -}()); -var plugin = new MadaraPlugin({ "id": "teamxnovel", "sourceSite": "https://teamxnovel.com/", "sourceName": "TeamXNovel", "filters": {}, "options": { "useNewChapterEndpoint": true, "lang": "Arabic" } }); -exports.default = plugin; diff --git a/.js/plugins/arabic/kolnovel.js b/.js/plugins/arabic/kolnovel.js deleted file mode 100644 index ca1e35e..0000000 --- a/.js/plugins/arabic/kolnovel.js +++ /dev/null @@ -1,316 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var cheerio_1 = require("cheerio"); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var KolNovel = /** @class */ (function () { - function KolNovel() { - this.id = "kolnovel"; - this.name = "KolNovel"; - this.icon = "multisrc/wpmangastream/icons/kolnovel.png"; - this.site = "https://kolnovel.lol/"; - this.version = "1.0.0"; - this.filters = { - order: { - label: "ترتيب حسب", - options: [ - { label: "الإعداد الأولي", value: "" }, - { label: "A-Z", value: "title" }, - { label: "Z-A", value: "titlereverse" }, - { label: "أخر التحديثات", value: "update" }, - { label: "أخر ما تم إضافته", value: "latest" }, - { label: "الرائجة", value: "popular" }, - ], - value: "", - type: filterInputs_1.FilterTypes.Picker, - }, - status: { - value: "", - label: "الحالة", - options: [ - { label: "All", value: "" }, - { label: "Ongoing", value: "ongoing" }, - { label: "Hiatus", value: "hiatus" }, - { label: "Completed", value: "completed" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - type: { - value: [], - label: "النوع", - options: [ - { label: "إنجليزية", value: "english" }, - { label: "روايةلايت", value: "light-novel" }, - { label: "روايةويب", value: "web-novel" }, - { label: "صينية", value: "chinese" }, - { label: "عربية", value: "arabic" }, - { label: "كورية", value: "korean" }, - { label: "يابانية", value: "japanese" }, - ], - type: filterInputs_1.FilterTypes.CheckboxGroup, - }, - genres: { - value: [], - label: "تصنيف", - options: [ - { label: "Wuxia", value: "wuxia" }, - { label: "Xianxia", value: "xianxia" }, - { label: "XUANHUAN", value: "xuanhuan" }, - { label: "أكشن", value: "action" }, - { label: "إثارة", value: "excitement" }, - { label: "إنتقالالىعالمأخر", value: "isekai" }, - { label: "إيتشي", value: "etchi" }, - { label: "الخيالالعلمي", value: "sci-fi" }, - { label: "بوليسي", value: "policy" }, - { label: "تاريخي", value: "historical" }, - { label: "تحقيقات", value: "%d8%aa%d8%ad%d9%82%d9%8a%d9%82" }, - { label: "تقمصشخصيات", value: "rpg" }, - { label: "جريمة", value: "crime" }, - { label: "جوسى", value: "josei" }, - { label: "حريم", value: "harem" }, - { label: "حياةمدرسية", value: "school-life" }, - { label: "خيالي(فانتازيا)", value: "fantasy" }, - { label: "دراما", value: "drama" }, - { label: "رعب", value: "horror" }, - { label: "رومانسي", value: "romantic" }, - { label: "سحر", value: "magic" }, - { label: "سينن", value: "senen" }, - { label: "شريحةمنالحياة", value: "slice-of-life" }, - { label: "شوجو", value: "shojo" }, - { label: "شونين", value: "shonen" }, - { label: "طبي", value: "medical" }, - { label: "ظواهرخارقةللطبيعة", value: "supernatural" }, - { label: "غموض", value: "mysteries" }, - { label: "فنونالقتال", value: "martial-arts" }, - { label: "قوىخارقة", value: "superpower" }, - { label: "كوميدي", value: "comedy" }, - { label: "مأساوي", value: "tragedy" }, - { label: "مابعدالكارثة", value: "after-the-disaster" }, - { label: "مغامرة", value: "adventure" }, - { label: "ميكا", value: "mechanical" }, - { label: "ناضج", value: "mature" }, - { label: "نفسي", value: "psychological" }, - ], - type: filterInputs_1.FilterTypes.CheckboxGroup, - }, - }; - } - KolNovel.prototype.popularNovels = function (pageNo, _a) { - var filters = _a.filters; - return __awaiter(this, void 0, void 0, function () { - var link, headers, body, loadedCheerio, novels; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - link = "".concat(this.site, "series/?page=").concat(pageNo); - if (filters.genres.value.length) - link += filters.genres.value.map(function (i) { return "&genre[]=".concat(i); }).join(""); - if (filters.type.value.length) - link += filters.type.value.map(function (i) { return "&lang[]=".concat(i); }).join(""); - link += "&status=" + ((filters === null || filters === void 0 ? void 0 : filters.status) ? filters.status : ""); - link += "&order=" + ((filters === null || filters === void 0 ? void 0 : filters.order) ? filters.order : "popular"); - headers = new Headers(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(link, { headers: headers }).then(function (result) { - return result.text(); - })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio("article.maindet").each(function () { - var novelName = loadedCheerio(this).find("h2").text(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this).find("h2 a").attr("href"); - if (!novelUrl) - return; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - KolNovel.prototype.parseNovelAndChapters = function (novelUrl) { - return __awaiter(this, void 0, void 0, function () { - var url, headers, result, body, loadedCheerio, novel, chapter; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = novelUrl; - headers = new Headers(); - return [4 /*yield*/, fetch(url, { headers: headers })]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { - url: url, - chapters: [], - }; - novel.name = loadedCheerio("h1.entry-title").text(); - novel.cover = - loadedCheerio("img.wp-post-image").attr("data-src") || - loadedCheerio("img.wp-post-image").attr("src"); - loadedCheerio("div.serl:nth-child(3) > span").each(function () { - var detailName = loadedCheerio(this).text().trim(); - var detail = loadedCheerio(this).next().text().trim(); - switch (detailName) { - case "الكاتب": - case "Author": - novel.author = detail; - break; - } - }); - novel.status = loadedCheerio("div.sertostat > span").attr("class"); - novel.genres = loadedCheerio(".sertogenre") - .children("a") - .map(function (i, el) { return loadedCheerio(el).text(); }) - .toArray() - .join(","); - novel.summary = loadedCheerio(".sersys") - .find("br") - .replaceWith("\n") - .end() - .text(); - chapter = []; - loadedCheerio(".eplister") - .find("li") - .each(function () { - var chapterName = loadedCheerio(this).find(".epl-num").text() + - " - " + - loadedCheerio(this).find(".epl-title").text(); - var releaseDate = loadedCheerio(this) - .find(".epl-date") - .text() - .trim(); - var chapterUrl = loadedCheerio(this).find("a").attr("href"); - if (!chapterUrl) - return; - chapter.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapter.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - KolNovel.prototype.parseChapter = function (chapterUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var headers, result, body, loadedCheerio, ignore, chapterText; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - headers = new Headers(); - return [4 /*yield*/, fetch(chapterUrl, { headers: headers })]; - case 1: - result = _b.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".epcontent > div, i").remove(); - ignore = loadedCheerio("article > style").text().trim().split(","); - ignore.push.apply(ignore, (((_a = ignore.pop()) === null || _a === void 0 ? void 0 : _a.match(/^\.\w+/)) || [])); - ignore.map(function (tag) { return loadedCheerio("p".concat(tag)).remove(); }); - chapterText = loadedCheerio(".epcontent").html() || ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - KolNovel.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var url, headers, result, body, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = "".concat(this.site, "?s=").concat(searchTerm); - headers = new Headers(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url, { headers: headers })]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio("article.maindet").each(function () { - var novelName = loadedCheerio(this).find("h2").text(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this).find("h2 a").attr("href"); - if (!novelUrl) - return; - novels.push({ - name: novelName, - url: novelUrl, - cover: novelCover, - }); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - KolNovel.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url)]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return KolNovel; -}()); -exports.default = new KolNovel(); diff --git a/.js/plugins/chinese/linovelib.js b/.js/plugins/chinese/linovelib.js deleted file mode 100644 index 993adc1..0000000 --- a/.js/plugins/chinese/linovelib.js +++ /dev/null @@ -1,478 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var cheerio_1 = require("cheerio"); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var Linovelib = /** @class */ (function () { - function Linovelib() { - this.id = "linovelib"; - this.name = "Linovelib"; - this.icon = "src/cn/linovelib/icon.png"; - this.site = "https://www.bilinovel.com"; - this.version = "1.0.1"; - this.filters = { - sort: { - label: "Sort By", - value: "monthvisit", - options: [ - { label: "月点击榜", value: "monthvisit" }, - { label: "周点击榜", value: "weekvisit" }, - { label: "月推荐榜", value: "monthvote" }, - { label: "周推荐榜", value: "weekvote" }, - { label: "月鲜花榜", value: "monthflower" }, - { label: "周鲜花榜", value: "weekflower" }, - { label: "月鸡蛋榜", value: "monthegg" }, - { label: "周鸡蛋榜", value: "weekegg" }, - { label: "最近更新", value: "lastupdate" }, - { label: "最新入库", value: "postdate" }, - { label: "收藏榜", value: "goodnum" }, - { label: "新书榜", value: "newhot" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - }; - } - Linovelib.prototype.popularNovels = function (pageNo, _a) { - var filters = _a.filters; - return __awaiter(this, void 0, void 0, function () { - var link, body, loadedCheerio, novels; - var _this = this; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - link = "".concat(this.site, "/top/"); - link += filters.sort.value; - link += "/".concat(pageNo, ".html"); - return [4 /*yield*/, (0, fetch_1.fetchText)(link)]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio(".module-rank-booklist .book-layout").each(function (i, el) { - var url = loadedCheerio(el).attr("href"); - var novelName = loadedCheerio(el).find(".book-title").text(); - var novelCover = loadedCheerio(el) - .find("div.book-cover > img") - .attr("data-src"); - var novelUrl = _this.site + url; - if (!url) - return; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - Linovelib.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var url, body, loadedCheerio, novel, meta, chapter, idPattern, novelId, chaptersUrl, chaptersBody, chaptersLoadedCheerio, volumeName, chapterId; - var _this = this; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - url = novelUrl; - return [4 /*yield*/, (0, fetch_1.fetchText)(url)]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { - url: url, - chapters: [], - }; - novel.name = loadedCheerio("#bookDetailWrapper .book-title").text(); - novel.cover = loadedCheerio("#bookDetailWrapper img.book-cover").attr("src"); - novel.summary = loadedCheerio("#bookSummary content").text(); - novel.author = loadedCheerio("#bookDetailWrapper .book-rand-a a").text(); - meta = loadedCheerio("#bookDetailWrapper .book-meta").text(); - novel.status = meta.includes("完结") ? "完结" : "连载"; - novel.genres = loadedCheerio(".tag-small.red") - .children("a") - .map(function (i, el) { return loadedCheerio(el).text(); }) - .toArray() - .join(","); - chapter = []; - idPattern = /\/(\d+)\.html/; - novelId = (_a = url.match(idPattern)) === null || _a === void 0 ? void 0 : _a[1]; - chaptersUrl = this.site + loadedCheerio("#btnReadBook").attr("href"); - return [4 /*yield*/, (0, fetch_1.fetchText)(chaptersUrl)]; - case 2: - chaptersBody = _b.sent(); - chaptersLoadedCheerio = (0, cheerio_1.load)(chaptersBody); - chaptersLoadedCheerio("#volumes .chapter-li:not(.volume-cover)").each(function (i, el) { - if (chaptersLoadedCheerio(el).hasClass("chapter-bar")) { - volumeName = chaptersLoadedCheerio(el).text(); - return; - } - else { - var urlPart = chaptersLoadedCheerio(el) - .find(".chapter-li-a") - .attr("href"); - var chapterIdMatch = urlPart === null || urlPart === void 0 ? void 0 : urlPart.match(idPattern); - // Sometimes the href attribute does not contain the url, but javascript:cid(0). - // Increment the previous chapter ID should result in the right URL - if (chapterIdMatch) { - chapterId = +chapterIdMatch[1]; - } - else { - chapterId++; - } - } - var chapterUrl = "".concat(_this.site, "/novel/").concat(novelId, "/").concat(chapterId, ".html"); - var chapterName = volumeName + - " — " + - chaptersLoadedCheerio(el).find(".chapter-index").text().trim(); - var releaseDate = null; - if (!chapterId) - return; - chapter.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapter; - return [2 /*return*/, novel]; - } - }); - }); - }; - Linovelib.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var chapterName, chapterText, hasNextPage, pageHasNextPage, pageText, pageNumber, skillgg, addPage, loadPage, url, page; - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - chapterText = "", pageText = ""; - pageNumber = 1; - skillgg = { - "\u201c": "\u300c", - "\u201d": "\u300d", - "\u2018": "\u300e", - "\u2019": "\u300f", - "\ue82c": "\u7684", - "\ue852": "\u4e00", - "\ue82d": "\u662f", - "\ue819": "\u4e86", - "\ue856": "\u6211", - "\ue857": "\u4e0d", - "\ue816": "\u4eba", - "\ue83c": "\u5728", - "\ue830": "\u4ed6", - "\ue82e": "\u6709", - "\ue836": "\u8fd9", - "\ue859": "\u4e2a", - "\ue80a": "\u4e0a", - "\ue855": "\u4eec", - "\ue842": "\u6765", - "\ue858": "\u5230", - "\ue80b": "\u65f6", - "\ue81f": "\u5927", - "\ue84a": "\u5730", - "\ue853": "\u4e3a", - "\ue81e": "\u5b50", - "\ue822": "\u4e2d", - "\ue813": "\u4f60", - "\ue85b": "\u8bf4", - "\ue807": "\u751f", - "\ue818": "\u56fd", - "\ue810": "\u5e74", - "\ue812": "\u7740", - "\ue851": "\u5c31", - "\ue801": "\u90a3", - "\ue80c": "\u548c", - "\ue815": "\u8981", - "\ue84c": "\u5979", - "\ue840": "\u51fa", - "\ue848": "\u4e5f", - "\ue835": "\u5f97", - "\ue800": "\u91cc", - "\ue826": "\u540e", - "\ue863": "\u81ea", - "\ue861": "\u4ee5", - "\ue854": "\u4f1a", - "\ue827": "\u5bb6", - "\ue83b": "\u53ef", - "\ue85d": "\u4e0b", - "\ue84d": "\u800c", - "\ue862": "\u8fc7", - "\ue81c": "\u5929", - "\ue81d": "\u53bb", - "\ue860": "\u80fd", - "\ue843": "\u5bf9", - "\ue82f": "\u5c0f", - "\ue802": "\u591a", - "\ue831": "\u7136", - "\ue84b": "\u4e8e", - "\ue837": "\u5fc3", - "\ue829": "\u5b66", - "\ue85e": "\u4e48", - "\ue83a": "\u4e4b", - "\ue832": "\u90fd", - "\ue808": "\u597d", - "\ue841": "\u770b", - "\ue821": "\u8d77", - "\ue845": "\u53d1", - "\ue803": "\u5f53", - "\ue828": "\u6ca1", - "\ue81b": "\u6210", - "\ue83e": "\u53ea", - "\ue820": "\u5982", - "\ue84e": "\u4e8b", - "\ue85a": "\u628a", - "\ue806": "\u8fd8", - "\ue83f": "\u7528", - "\ue833": "\u7b2c", - "\ue811": "\u6837", - "\ue804": "\u9053", - "\ue814": "\u60f3", - "\ue80f": "\u4f5c", - "\ue84f": "\u79cd", - "\ue80e": "\u5f00", - "\ue823": "\u7f8e", - "\ue849": "\u4e73", - "\ue805": "\u9634", - "\ue809": "\u6db2", - "\ue81a": "\u830e", - "\ue844": "\u6b32", - "\ue847": "\u547b", - "\ue850": "\u8089", - "\ue824": "\u4ea4", - "\ue85f": "\u6027", - "\ue817": "\u80f8", - "\ue85c": "\u79c1", - "\ue838": "\u7a74", - "\ue82a": "\u6deb", - "\ue83d": "\u81c0", - "\ue82b": "\u8214", - "\ue80d": "\u5c04", - "\ue839": "\u8131", - "\ue834": "\u88f8", - "\ue846": "\u9a9a", - "\ue825": "\u5507", - }; - addPage = function (pageCheerio) { return __awaiter(_this, void 0, void 0, function () { - var formatPage; - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - formatPage = function () { return __awaiter(_this, void 0, void 0, function () { - return __generator(this, function (_a) { - // Remove JS - pageCheerio("#acontentz .adsbygoogle").remove(); - pageCheerio("#acontentz script").remove(); - // Load lazyloaded images - pageCheerio("#acontentz img.imagecontent").each(function (i, el) { - // Sometimes images are either in data-src or src - var imgSrc = pageCheerio(el).attr("data-src") || - pageCheerio(el).attr("src"); - if (imgSrc) { - // Clean up img element - pageCheerio(el) - .attr("src", imgSrc) - .removeAttr("data-src") - .removeClass("lazyload"); - } - }); - // Recover the original character - pageText = pageCheerio("#acontentz").html() || ""; - pageText = pageText.replace(/./g, function (char) { return skillgg[char] || char; }); - return [2 /*return*/, Promise.resolve()]; - }); - }); }; - return [4 /*yield*/, formatPage()]; - case 1: - _a.sent(); - chapterName = - pageCheerio("#atitle + h3").text() + - " — " + - pageCheerio("#atitle").text(); - if (chapterText === "") { - chapterText = "

" + chapterName + "

"; - } - chapterText += pageText; - return [2 /*return*/]; - } - }); - }); }; - loadPage = function (url) { return __awaiter(_this, void 0, void 0, function () { - var body, pageCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchText)(url)]; - case 1: - body = _a.sent(); - pageCheerio = (0, cheerio_1.load)(body); - return [4 /*yield*/, addPage(pageCheerio)]; - case 2: - _a.sent(); - pageHasNextPage = - pageCheerio("#footlink a:last").text() === "下一页" - ? true - : false; - return [2 /*return*/, { pageCheerio: pageCheerio, pageHasNextPage: pageHasNextPage }]; - } - }); - }); }; - url = chapterUrl; - _a.label = 1; - case 1: return [4 /*yield*/, loadPage(url)]; - case 2: - page = _a.sent(); - hasNextPage = page.pageHasNextPage; - if (hasNextPage === true) { - pageNumber++; - url = chapterUrl.replace(/\.html/gi, "_".concat(pageNumber) + ".html"); - } - _a.label = 3; - case 3: - if (hasNextPage === true) return [3 /*break*/, 1]; - _a.label = 4; - case 4: return [2 /*return*/, chapterText]; - } - }); - }); - }; - Linovelib.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var url, body, pageCheerio, novels; - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = "".concat(this.site, "/search/").concat(encodeURI(searchTerm), "_").concat(pageNo, ".html"); - return [4 /*yield*/, (0, fetch_1.fetchText)(url)]; - case 1: - body = _a.sent(); - pageCheerio = (0, cheerio_1.load)(body); - novels = []; - // const addPage = async (pageCheerio: CheerioAPI, redirect: string) => { - // const loadSearchResults = () => { - // pageCheerio(".book-ol .book-layout").each((i, el) => { - // let nUrl = pageCheerio(el).attr("href"); - // const novelName = pageCheerio(el) - // .find(".book-title") - // .text(); - // const novelCover = pageCheerio(el) - // .find("div.book-cover > img") - // .attr("data-src"); - // const novelUrl = this.site + nUrl; - // if (!nUrl) return; - // novels.push({ - // name: novelName, - // url: novelUrl, - // cover: novelCover, - // }); - // }); - // }; - // const novelResults = pageCheerio(".book-ol a.book-layout"); - // if (novelResults.length === 0) { - // } else { - // loadSearchResults(); - // } - // if (redirect.length) { - // novels.length = 0; - // const novelName = pageCheerio( - // "#bookDetailWrapper .book-title" - // ).text(); - // const novelCover = pageCheerio( - // "#bookDetailWrapper div.book-cover > img" - // ).attr("src"); - // const novelUrl = - // this.site + - // pageCheerio("#btnReadBook").attr("href")?.slice(0, -8) + - // ".html"; - // novels.push({ - // name: novelName, - // url: novelUrl, - // cover: novelCover, - // }); - // } - // }; - // NOTE: don't know redirect is for what, comment out for now - // const redirect = pageCheerio("div.book-layout").text(); - // await addPage(pageCheerio, redirect); - pageCheerio(".book-ol .book-layout").each(function (i, el) { - var nUrl = pageCheerio(el).attr("href"); - var novelName = pageCheerio(el) - .find(".book-title") - .text(); - var novelCover = pageCheerio(el) - .find("div.book-cover > img") - .attr("data-src"); - var novelUrl = _this.site + nUrl; - if (!nUrl) - return; - novels.push({ - name: novelName, - url: novelUrl, - cover: novelCover, - }); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - Linovelib.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - var headers; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - headers = new Headers({ - "Referer": "".concat(this.site, "/"), - }); - return [4 /*yield*/, (0, fetch_1.fetchFile)(url, { headers: headers })]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return Linovelib; -}()); -exports.default = new Linovelib(); diff --git a/.js/plugins/english/BoxNovel[madara].js b/.js/plugins/english/BoxNovel[madara].js deleted file mode 100644 index 0b9018c..0000000 --- a/.js/plugins/english/BoxNovel[madara].js +++ /dev/null @@ -1,296 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var dayjs_1 = __importDefault(require("dayjs")); -var MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; -var MadaraPlugin = /** @class */ (function () { - function MadaraPlugin(metadata) { - this.id = metadata.id; - this.name = metadata.sourceName + "[madara]"; - var iconFileName = metadata.sourceName - .replace(/\s+/g, "") - .toLowerCase(); - this.icon = "multisrc/madara/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - this.filters = metadata.filters; - } - MadaraPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - novels = []; - url = this.site; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) { - url += (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.path) === null || _d === void 0 ? void 0 : _d.genres) || MadaraDefaultPath.genres) + - "/" + - filters.genres.value; - } - else { - url += ((_f = (_e = this.options) === null || _e === void 0 ? void 0 : _e.path) === null || _f === void 0 ? void 0 : _f.novels) || MadaraDefaultPath.novels; - } - url += - "/page/" + - pageNo + - "/" + - "?m_orderby=" + - (showLatestNovels ? "latest" : ((_g = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _g === void 0 ? void 0 : _g.value) || "rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges").remove(); - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novel, body, loadedCheerio, html, novelId, formData, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges, #manga-title span").remove(); - novel.name = - loadedCheerio(".post-title h1").text().trim() || - loadedCheerio("#manga-title h1").text(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("data-lazy-src") || - loadedCheerio(".summary_image > a > img").attr("data-src") || - loadedCheerio(".summary_image > a > img").attr("src") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item, .post-content").each(function () { - var detailName = loadedCheerio(this).find("h5").text().trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - case "التصنيفات": - novel.genres = detail.replace(/[\\t\\n]/g, ","); - break; - case "Author(s)": - case "المؤلف": - case "المؤلف (ين)": - novel.author = detail; - break; - case "Status": - case "الحالة": - novel.status = - detail.includes("OnGoing") || detail.includes("مستمرة") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - loadedCheerio("div.summary__content .code-block,script").remove(); - novel.summary = - loadedCheerio("div.summary__content").text().trim() || - loadedCheerio("#tab-manga-about").text().trim() || - loadedCheerio('.post-content_item h5:contains("Summary")') - .next() - .text() - .trim(); - if (!(((_a = this.options) === null || _a === void 0 ? void 0 : _a.useNewChapterEndpoint) !== true)) return [3 /*break*/, 3]; - novelId = loadedCheerio(".rating-post-id").attr("value") || - loadedCheerio("#manga-chapters-holder").attr("data-id") || - ""; - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - }).then(function (res) { return res.text(); })]; - case 2: - html = _b.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl + "ajax/chapters/", { - method: "POST", - }).then(function (res) { return res.text(); })]; - case 4: - html = _b.sent(); - _b.label = 5; - case 5: - if (html !== "0") { - loadedCheerio = (0, cheerio_1.load)(html); - } - chapters = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - releaseDate = loadedCheerio(this) - .find("span.chapter-release-date") - .text() - .trim(); - if (releaseDate) { - releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(releaseDate); - } - else { - /** - * Insert current date - */ - releaseDate = (0, dayjs_1.default)().format("LL"); - } - var chapterUrl = loadedCheerio(this).find("a").attr("href") || ""; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MadaraPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || - loadedCheerio(".text-right").html() || - loadedCheerio(".entry-content").html() || - ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MadaraPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url, {})]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return MadaraPlugin; -}()); -var plugin = new MadaraPlugin({ "id": "boxnovel", "sourceSite": "https://boxnovel.com/", "sourceName": "BoxNovel", "filters": { "sort": { "label": "Order by", "options": [{ "label": "Default", "value": "" }, { "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" }], "value": "", "type": filterInputs_1.FilterTypes.Picker }, "genres": { "label": "GENRES", "options": [{ "label": "NONE", "value": "" }, { "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": "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" }], "value": "", "type": filterInputs_1.FilterTypes.Picker } }, "options": { "path": { "genres": "manga-genre" }, "useNewChapterEndpoint": true, "lang": "English" } }); -exports.default = plugin; diff --git a/.js/plugins/english/ClickNovel[madara].js b/.js/plugins/english/ClickNovel[madara].js deleted file mode 100644 index 5136244..0000000 --- a/.js/plugins/english/ClickNovel[madara].js +++ /dev/null @@ -1,295 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var dayjs_1 = __importDefault(require("dayjs")); -var MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; -var MadaraPlugin = /** @class */ (function () { - function MadaraPlugin(metadata) { - this.id = metadata.id; - this.name = metadata.sourceName + "[madara]"; - var iconFileName = metadata.sourceName - .replace(/\s+/g, "") - .toLowerCase(); - this.icon = "multisrc/madara/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - this.filters = metadata.filters; - } - MadaraPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - novels = []; - url = this.site; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) { - url += (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.path) === null || _d === void 0 ? void 0 : _d.genres) || MadaraDefaultPath.genres) + - "/" + - filters.genres.value; - } - else { - url += ((_f = (_e = this.options) === null || _e === void 0 ? void 0 : _e.path) === null || _f === void 0 ? void 0 : _f.novels) || MadaraDefaultPath.novels; - } - url += - "/page/" + - pageNo + - "/" + - "?m_orderby=" + - (showLatestNovels ? "latest" : ((_g = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _g === void 0 ? void 0 : _g.value) || "rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges").remove(); - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novel, body, loadedCheerio, html, novelId, formData, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges, #manga-title span").remove(); - novel.name = - loadedCheerio(".post-title h1").text().trim() || - loadedCheerio("#manga-title h1").text(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("data-lazy-src") || - loadedCheerio(".summary_image > a > img").attr("data-src") || - loadedCheerio(".summary_image > a > img").attr("src") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item, .post-content").each(function () { - var detailName = loadedCheerio(this).find("h5").text().trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - case "التصنيفات": - novel.genres = detail.replace(/[\\t\\n]/g, ","); - break; - case "Author(s)": - case "المؤلف": - case "المؤلف (ين)": - novel.author = detail; - break; - case "Status": - case "الحالة": - novel.status = - detail.includes("OnGoing") || detail.includes("مستمرة") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - loadedCheerio("div.summary__content .code-block,script").remove(); - novel.summary = - loadedCheerio("div.summary__content").text().trim() || - loadedCheerio("#tab-manga-about").text().trim() || - loadedCheerio('.post-content_item h5:contains("Summary")') - .next() - .text() - .trim(); - if (!(((_a = this.options) === null || _a === void 0 ? void 0 : _a.useNewChapterEndpoint) !== true)) return [3 /*break*/, 3]; - novelId = loadedCheerio(".rating-post-id").attr("value") || - loadedCheerio("#manga-chapters-holder").attr("data-id") || - ""; - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - }).then(function (res) { return res.text(); })]; - case 2: - html = _b.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl + "ajax/chapters/", { - method: "POST", - }).then(function (res) { return res.text(); })]; - case 4: - html = _b.sent(); - _b.label = 5; - case 5: - if (html !== "0") { - loadedCheerio = (0, cheerio_1.load)(html); - } - chapters = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - releaseDate = loadedCheerio(this) - .find("span.chapter-release-date") - .text() - .trim(); - if (releaseDate) { - releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(releaseDate); - } - else { - /** - * Insert current date - */ - releaseDate = (0, dayjs_1.default)().format("LL"); - } - var chapterUrl = loadedCheerio(this).find("a").attr("href") || ""; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MadaraPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || - loadedCheerio(".text-right").html() || - loadedCheerio(".entry-content").html() || - ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MadaraPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url, {})]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return MadaraPlugin; -}()); -var plugin = new MadaraPlugin({ "id": "clicknovel", "sourceSite": "https://clicknovel.net/", "sourceName": "ClickNovel", "filters": {}, "options": { "lang": "English" } }); -exports.default = plugin; diff --git a/.js/plugins/english/CrateNovel[madara].js b/.js/plugins/english/CrateNovel[madara].js deleted file mode 100644 index a5d0a53..0000000 --- a/.js/plugins/english/CrateNovel[madara].js +++ /dev/null @@ -1,295 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var dayjs_1 = __importDefault(require("dayjs")); -var MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; -var MadaraPlugin = /** @class */ (function () { - function MadaraPlugin(metadata) { - this.id = metadata.id; - this.name = metadata.sourceName + "[madara]"; - var iconFileName = metadata.sourceName - .replace(/\s+/g, "") - .toLowerCase(); - this.icon = "multisrc/madara/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - this.filters = metadata.filters; - } - MadaraPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - novels = []; - url = this.site; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) { - url += (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.path) === null || _d === void 0 ? void 0 : _d.genres) || MadaraDefaultPath.genres) + - "/" + - filters.genres.value; - } - else { - url += ((_f = (_e = this.options) === null || _e === void 0 ? void 0 : _e.path) === null || _f === void 0 ? void 0 : _f.novels) || MadaraDefaultPath.novels; - } - url += - "/page/" + - pageNo + - "/" + - "?m_orderby=" + - (showLatestNovels ? "latest" : ((_g = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _g === void 0 ? void 0 : _g.value) || "rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges").remove(); - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novel, body, loadedCheerio, html, novelId, formData, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges, #manga-title span").remove(); - novel.name = - loadedCheerio(".post-title h1").text().trim() || - loadedCheerio("#manga-title h1").text(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("data-lazy-src") || - loadedCheerio(".summary_image > a > img").attr("data-src") || - loadedCheerio(".summary_image > a > img").attr("src") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item, .post-content").each(function () { - var detailName = loadedCheerio(this).find("h5").text().trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - case "التصنيفات": - novel.genres = detail.replace(/[\\t\\n]/g, ","); - break; - case "Author(s)": - case "المؤلف": - case "المؤلف (ين)": - novel.author = detail; - break; - case "Status": - case "الحالة": - novel.status = - detail.includes("OnGoing") || detail.includes("مستمرة") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - loadedCheerio("div.summary__content .code-block,script").remove(); - novel.summary = - loadedCheerio("div.summary__content").text().trim() || - loadedCheerio("#tab-manga-about").text().trim() || - loadedCheerio('.post-content_item h5:contains("Summary")') - .next() - .text() - .trim(); - if (!(((_a = this.options) === null || _a === void 0 ? void 0 : _a.useNewChapterEndpoint) !== true)) return [3 /*break*/, 3]; - novelId = loadedCheerio(".rating-post-id").attr("value") || - loadedCheerio("#manga-chapters-holder").attr("data-id") || - ""; - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - }).then(function (res) { return res.text(); })]; - case 2: - html = _b.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl + "ajax/chapters/", { - method: "POST", - }).then(function (res) { return res.text(); })]; - case 4: - html = _b.sent(); - _b.label = 5; - case 5: - if (html !== "0") { - loadedCheerio = (0, cheerio_1.load)(html); - } - chapters = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - releaseDate = loadedCheerio(this) - .find("span.chapter-release-date") - .text() - .trim(); - if (releaseDate) { - releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(releaseDate); - } - else { - /** - * Insert current date - */ - releaseDate = (0, dayjs_1.default)().format("LL"); - } - var chapterUrl = loadedCheerio(this).find("a").attr("href") || ""; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MadaraPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || - loadedCheerio(".text-right").html() || - loadedCheerio(".entry-content").html() || - ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MadaraPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url, {})]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return MadaraPlugin; -}()); -var plugin = new MadaraPlugin({ "id": "cratenovel", "sourceSite": "https://cratenovel.com/", "sourceName": "CrateNovel", "filters": {}, "options": { "useNewChapterEndpoint": true, "lang": "English" } }); -exports.default = plugin; diff --git a/.js/plugins/english/DaoNovel[madara].js b/.js/plugins/english/DaoNovel[madara].js deleted file mode 100644 index 322bfa2..0000000 --- a/.js/plugins/english/DaoNovel[madara].js +++ /dev/null @@ -1,296 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var dayjs_1 = __importDefault(require("dayjs")); -var MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; -var MadaraPlugin = /** @class */ (function () { - function MadaraPlugin(metadata) { - this.id = metadata.id; - this.name = metadata.sourceName + "[madara]"; - var iconFileName = metadata.sourceName - .replace(/\s+/g, "") - .toLowerCase(); - this.icon = "multisrc/madara/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - this.filters = metadata.filters; - } - MadaraPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - novels = []; - url = this.site; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) { - url += (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.path) === null || _d === void 0 ? void 0 : _d.genres) || MadaraDefaultPath.genres) + - "/" + - filters.genres.value; - } - else { - url += ((_f = (_e = this.options) === null || _e === void 0 ? void 0 : _e.path) === null || _f === void 0 ? void 0 : _f.novels) || MadaraDefaultPath.novels; - } - url += - "/page/" + - pageNo + - "/" + - "?m_orderby=" + - (showLatestNovels ? "latest" : ((_g = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _g === void 0 ? void 0 : _g.value) || "rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges").remove(); - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novel, body, loadedCheerio, html, novelId, formData, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges, #manga-title span").remove(); - novel.name = - loadedCheerio(".post-title h1").text().trim() || - loadedCheerio("#manga-title h1").text(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("data-lazy-src") || - loadedCheerio(".summary_image > a > img").attr("data-src") || - loadedCheerio(".summary_image > a > img").attr("src") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item, .post-content").each(function () { - var detailName = loadedCheerio(this).find("h5").text().trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - case "التصنيفات": - novel.genres = detail.replace(/[\\t\\n]/g, ","); - break; - case "Author(s)": - case "المؤلف": - case "المؤلف (ين)": - novel.author = detail; - break; - case "Status": - case "الحالة": - novel.status = - detail.includes("OnGoing") || detail.includes("مستمرة") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - loadedCheerio("div.summary__content .code-block,script").remove(); - novel.summary = - loadedCheerio("div.summary__content").text().trim() || - loadedCheerio("#tab-manga-about").text().trim() || - loadedCheerio('.post-content_item h5:contains("Summary")') - .next() - .text() - .trim(); - if (!(((_a = this.options) === null || _a === void 0 ? void 0 : _a.useNewChapterEndpoint) !== true)) return [3 /*break*/, 3]; - novelId = loadedCheerio(".rating-post-id").attr("value") || - loadedCheerio("#manga-chapters-holder").attr("data-id") || - ""; - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - }).then(function (res) { return res.text(); })]; - case 2: - html = _b.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl + "ajax/chapters/", { - method: "POST", - }).then(function (res) { return res.text(); })]; - case 4: - html = _b.sent(); - _b.label = 5; - case 5: - if (html !== "0") { - loadedCheerio = (0, cheerio_1.load)(html); - } - chapters = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - releaseDate = loadedCheerio(this) - .find("span.chapter-release-date") - .text() - .trim(); - if (releaseDate) { - releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(releaseDate); - } - else { - /** - * Insert current date - */ - releaseDate = (0, dayjs_1.default)().format("LL"); - } - var chapterUrl = loadedCheerio(this).find("a").attr("href") || ""; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MadaraPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || - loadedCheerio(".text-right").html() || - loadedCheerio(".entry-content").html() || - ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MadaraPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url, {})]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return MadaraPlugin; -}()); -var plugin = new MadaraPlugin({ "id": "daonovel", "sourceSite": "https://daonovel.com/", "sourceName": "DaoNovel", "filters": { "sort": { "value": "", "label": "Order by", "options": [{ "label": "Default", "value": "" }, { "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": filterInputs_1.FilterTypes.Picker } }, "options": { "path": { "novels": "novels-list", "novel": "novels", "chapter": "novels" }, "useNewChapterEndpoint": true, "lang": "English" } }); -exports.default = plugin; diff --git a/.js/plugins/english/FansTranslations[madara].js b/.js/plugins/english/FansTranslations[madara].js deleted file mode 100644 index 21d1a24..0000000 --- a/.js/plugins/english/FansTranslations[madara].js +++ /dev/null @@ -1,296 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var dayjs_1 = __importDefault(require("dayjs")); -var MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; -var MadaraPlugin = /** @class */ (function () { - function MadaraPlugin(metadata) { - this.id = metadata.id; - this.name = metadata.sourceName + "[madara]"; - var iconFileName = metadata.sourceName - .replace(/\s+/g, "") - .toLowerCase(); - this.icon = "multisrc/madara/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - this.filters = metadata.filters; - } - MadaraPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - novels = []; - url = this.site; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) { - url += (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.path) === null || _d === void 0 ? void 0 : _d.genres) || MadaraDefaultPath.genres) + - "/" + - filters.genres.value; - } - else { - url += ((_f = (_e = this.options) === null || _e === void 0 ? void 0 : _e.path) === null || _f === void 0 ? void 0 : _f.novels) || MadaraDefaultPath.novels; - } - url += - "/page/" + - pageNo + - "/" + - "?m_orderby=" + - (showLatestNovels ? "latest" : ((_g = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _g === void 0 ? void 0 : _g.value) || "rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges").remove(); - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novel, body, loadedCheerio, html, novelId, formData, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges, #manga-title span").remove(); - novel.name = - loadedCheerio(".post-title h1").text().trim() || - loadedCheerio("#manga-title h1").text(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("data-lazy-src") || - loadedCheerio(".summary_image > a > img").attr("data-src") || - loadedCheerio(".summary_image > a > img").attr("src") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item, .post-content").each(function () { - var detailName = loadedCheerio(this).find("h5").text().trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - case "التصنيفات": - novel.genres = detail.replace(/[\\t\\n]/g, ","); - break; - case "Author(s)": - case "المؤلف": - case "المؤلف (ين)": - novel.author = detail; - break; - case "Status": - case "الحالة": - novel.status = - detail.includes("OnGoing") || detail.includes("مستمرة") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - loadedCheerio("div.summary__content .code-block,script").remove(); - novel.summary = - loadedCheerio("div.summary__content").text().trim() || - loadedCheerio("#tab-manga-about").text().trim() || - loadedCheerio('.post-content_item h5:contains("Summary")') - .next() - .text() - .trim(); - if (!(((_a = this.options) === null || _a === void 0 ? void 0 : _a.useNewChapterEndpoint) !== true)) return [3 /*break*/, 3]; - novelId = loadedCheerio(".rating-post-id").attr("value") || - loadedCheerio("#manga-chapters-holder").attr("data-id") || - ""; - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - }).then(function (res) { return res.text(); })]; - case 2: - html = _b.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl + "ajax/chapters/", { - method: "POST", - }).then(function (res) { return res.text(); })]; - case 4: - html = _b.sent(); - _b.label = 5; - case 5: - if (html !== "0") { - loadedCheerio = (0, cheerio_1.load)(html); - } - chapters = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - releaseDate = loadedCheerio(this) - .find("span.chapter-release-date") - .text() - .trim(); - if (releaseDate) { - releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(releaseDate); - } - else { - /** - * Insert current date - */ - releaseDate = (0, dayjs_1.default)().format("LL"); - } - var chapterUrl = loadedCheerio(this).find("a").attr("href") || ""; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MadaraPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || - loadedCheerio(".text-right").html() || - loadedCheerio(".entry-content").html() || - ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MadaraPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url, {})]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return MadaraPlugin; -}()); -var plugin = new MadaraPlugin({ "id": "fanTLS", "sourceSite": "https://fanstranslations.com/", "sourceName": "Fans Translations", "filters": { "sort": { "label": "Order by", "value": "", "options": [{ "label": "Default", "value": "" }, { "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": filterInputs_1.FilterTypes.Picker } }, "options": { "useNewChapterEndpoint": true, "lang": "English" } }); -exports.default = plugin; diff --git a/.js/plugins/english/FirstKissNovel[madara].js b/.js/plugins/english/FirstKissNovel[madara].js deleted file mode 100644 index a1729fd..0000000 --- a/.js/plugins/english/FirstKissNovel[madara].js +++ /dev/null @@ -1,296 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var dayjs_1 = __importDefault(require("dayjs")); -var MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; -var MadaraPlugin = /** @class */ (function () { - function MadaraPlugin(metadata) { - this.id = metadata.id; - this.name = metadata.sourceName + "[madara]"; - var iconFileName = metadata.sourceName - .replace(/\s+/g, "") - .toLowerCase(); - this.icon = "multisrc/madara/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - this.filters = metadata.filters; - } - MadaraPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - novels = []; - url = this.site; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) { - url += (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.path) === null || _d === void 0 ? void 0 : _d.genres) || MadaraDefaultPath.genres) + - "/" + - filters.genres.value; - } - else { - url += ((_f = (_e = this.options) === null || _e === void 0 ? void 0 : _e.path) === null || _f === void 0 ? void 0 : _f.novels) || MadaraDefaultPath.novels; - } - url += - "/page/" + - pageNo + - "/" + - "?m_orderby=" + - (showLatestNovels ? "latest" : ((_g = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _g === void 0 ? void 0 : _g.value) || "rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges").remove(); - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novel, body, loadedCheerio, html, novelId, formData, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges, #manga-title span").remove(); - novel.name = - loadedCheerio(".post-title h1").text().trim() || - loadedCheerio("#manga-title h1").text(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("data-lazy-src") || - loadedCheerio(".summary_image > a > img").attr("data-src") || - loadedCheerio(".summary_image > a > img").attr("src") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item, .post-content").each(function () { - var detailName = loadedCheerio(this).find("h5").text().trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - case "التصنيفات": - novel.genres = detail.replace(/[\\t\\n]/g, ","); - break; - case "Author(s)": - case "المؤلف": - case "المؤلف (ين)": - novel.author = detail; - break; - case "Status": - case "الحالة": - novel.status = - detail.includes("OnGoing") || detail.includes("مستمرة") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - loadedCheerio("div.summary__content .code-block,script").remove(); - novel.summary = - loadedCheerio("div.summary__content").text().trim() || - loadedCheerio("#tab-manga-about").text().trim() || - loadedCheerio('.post-content_item h5:contains("Summary")') - .next() - .text() - .trim(); - if (!(((_a = this.options) === null || _a === void 0 ? void 0 : _a.useNewChapterEndpoint) !== true)) return [3 /*break*/, 3]; - novelId = loadedCheerio(".rating-post-id").attr("value") || - loadedCheerio("#manga-chapters-holder").attr("data-id") || - ""; - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - }).then(function (res) { return res.text(); })]; - case 2: - html = _b.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl + "ajax/chapters/", { - method: "POST", - }).then(function (res) { return res.text(); })]; - case 4: - html = _b.sent(); - _b.label = 5; - case 5: - if (html !== "0") { - loadedCheerio = (0, cheerio_1.load)(html); - } - chapters = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - releaseDate = loadedCheerio(this) - .find("span.chapter-release-date") - .text() - .trim(); - if (releaseDate) { - releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(releaseDate); - } - else { - /** - * Insert current date - */ - releaseDate = (0, dayjs_1.default)().format("LL"); - } - var chapterUrl = loadedCheerio(this).find("a").attr("href") || ""; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MadaraPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || - loadedCheerio(".text-right").html() || - loadedCheerio(".entry-content").html() || - ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MadaraPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url, {})]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return MadaraPlugin; -}()); -var plugin = new MadaraPlugin({ "id": "1stkissnovel", "sourceSite": "https://1stkissnovel.org/", "sourceName": "FirstKissNovel", "filters": { "sort": { "label": "Order by", "options": [{ "label": "Default", "value": "" }, { "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" }], "value": "", "type": filterInputs_1.FilterTypes.Picker }, "genres": { "label": "GENRES", "value": "", "options": [{ "label": "NONE", "value": "" }, { "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": filterInputs_1.FilterTypes.Picker } }, "options": { "useNewChapterEndpoint": true, "lang": "English" } }); -exports.default = plugin; diff --git a/.js/plugins/english/FreeNovelMe[madara].js b/.js/plugins/english/FreeNovelMe[madara].js deleted file mode 100644 index 6c9b5ff..0000000 --- a/.js/plugins/english/FreeNovelMe[madara].js +++ /dev/null @@ -1,296 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var dayjs_1 = __importDefault(require("dayjs")); -var MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; -var MadaraPlugin = /** @class */ (function () { - function MadaraPlugin(metadata) { - this.id = metadata.id; - this.name = metadata.sourceName + "[madara]"; - var iconFileName = metadata.sourceName - .replace(/\s+/g, "") - .toLowerCase(); - this.icon = "multisrc/madara/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - this.filters = metadata.filters; - } - MadaraPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - novels = []; - url = this.site; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) { - url += (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.path) === null || _d === void 0 ? void 0 : _d.genres) || MadaraDefaultPath.genres) + - "/" + - filters.genres.value; - } - else { - url += ((_f = (_e = this.options) === null || _e === void 0 ? void 0 : _e.path) === null || _f === void 0 ? void 0 : _f.novels) || MadaraDefaultPath.novels; - } - url += - "/page/" + - pageNo + - "/" + - "?m_orderby=" + - (showLatestNovels ? "latest" : ((_g = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _g === void 0 ? void 0 : _g.value) || "rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges").remove(); - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novel, body, loadedCheerio, html, novelId, formData, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges, #manga-title span").remove(); - novel.name = - loadedCheerio(".post-title h1").text().trim() || - loadedCheerio("#manga-title h1").text(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("data-lazy-src") || - loadedCheerio(".summary_image > a > img").attr("data-src") || - loadedCheerio(".summary_image > a > img").attr("src") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item, .post-content").each(function () { - var detailName = loadedCheerio(this).find("h5").text().trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - case "التصنيفات": - novel.genres = detail.replace(/[\\t\\n]/g, ","); - break; - case "Author(s)": - case "المؤلف": - case "المؤلف (ين)": - novel.author = detail; - break; - case "Status": - case "الحالة": - novel.status = - detail.includes("OnGoing") || detail.includes("مستمرة") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - loadedCheerio("div.summary__content .code-block,script").remove(); - novel.summary = - loadedCheerio("div.summary__content").text().trim() || - loadedCheerio("#tab-manga-about").text().trim() || - loadedCheerio('.post-content_item h5:contains("Summary")') - .next() - .text() - .trim(); - if (!(((_a = this.options) === null || _a === void 0 ? void 0 : _a.useNewChapterEndpoint) !== true)) return [3 /*break*/, 3]; - novelId = loadedCheerio(".rating-post-id").attr("value") || - loadedCheerio("#manga-chapters-holder").attr("data-id") || - ""; - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - }).then(function (res) { return res.text(); })]; - case 2: - html = _b.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl + "ajax/chapters/", { - method: "POST", - }).then(function (res) { return res.text(); })]; - case 4: - html = _b.sent(); - _b.label = 5; - case 5: - if (html !== "0") { - loadedCheerio = (0, cheerio_1.load)(html); - } - chapters = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - releaseDate = loadedCheerio(this) - .find("span.chapter-release-date") - .text() - .trim(); - if (releaseDate) { - releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(releaseDate); - } - else { - /** - * Insert current date - */ - releaseDate = (0, dayjs_1.default)().format("LL"); - } - var chapterUrl = loadedCheerio(this).find("a").attr("href") || ""; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MadaraPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || - loadedCheerio(".text-right").html() || - loadedCheerio(".entry-content").html() || - ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MadaraPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url, {})]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return MadaraPlugin; -}()); -var plugin = new MadaraPlugin({ "id": "freenovel.me", "sourceSite": "https://freenovel.me/", "sourceName": "FreeNovelMe", "filters": { "sort": { "label": "Order by", "options": [{ "label": "Default", "value": "" }, { "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" }], "value": "", "type": filterInputs_1.FilterTypes.Picker }, "genres": { "label": "GENRES", "options": [{ "label": "NONE", "value": "" }, { "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" }], "value": "", "type": filterInputs_1.FilterTypes.Picker } }, "options": { "lang": "English" } }); -exports.default = plugin; diff --git a/.js/plugins/english/Guavaread[madara].js b/.js/plugins/english/Guavaread[madara].js deleted file mode 100644 index 919d51e..0000000 --- a/.js/plugins/english/Guavaread[madara].js +++ /dev/null @@ -1,296 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var dayjs_1 = __importDefault(require("dayjs")); -var MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; -var MadaraPlugin = /** @class */ (function () { - function MadaraPlugin(metadata) { - this.id = metadata.id; - this.name = metadata.sourceName + "[madara]"; - var iconFileName = metadata.sourceName - .replace(/\s+/g, "") - .toLowerCase(); - this.icon = "multisrc/madara/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - this.filters = metadata.filters; - } - MadaraPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - novels = []; - url = this.site; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) { - url += (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.path) === null || _d === void 0 ? void 0 : _d.genres) || MadaraDefaultPath.genres) + - "/" + - filters.genres.value; - } - else { - url += ((_f = (_e = this.options) === null || _e === void 0 ? void 0 : _e.path) === null || _f === void 0 ? void 0 : _f.novels) || MadaraDefaultPath.novels; - } - url += - "/page/" + - pageNo + - "/" + - "?m_orderby=" + - (showLatestNovels ? "latest" : ((_g = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _g === void 0 ? void 0 : _g.value) || "rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges").remove(); - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novel, body, loadedCheerio, html, novelId, formData, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges, #manga-title span").remove(); - novel.name = - loadedCheerio(".post-title h1").text().trim() || - loadedCheerio("#manga-title h1").text(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("data-lazy-src") || - loadedCheerio(".summary_image > a > img").attr("data-src") || - loadedCheerio(".summary_image > a > img").attr("src") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item, .post-content").each(function () { - var detailName = loadedCheerio(this).find("h5").text().trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - case "التصنيفات": - novel.genres = detail.replace(/[\\t\\n]/g, ","); - break; - case "Author(s)": - case "المؤلف": - case "المؤلف (ين)": - novel.author = detail; - break; - case "Status": - case "الحالة": - novel.status = - detail.includes("OnGoing") || detail.includes("مستمرة") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - loadedCheerio("div.summary__content .code-block,script").remove(); - novel.summary = - loadedCheerio("div.summary__content").text().trim() || - loadedCheerio("#tab-manga-about").text().trim() || - loadedCheerio('.post-content_item h5:contains("Summary")') - .next() - .text() - .trim(); - if (!(((_a = this.options) === null || _a === void 0 ? void 0 : _a.useNewChapterEndpoint) !== true)) return [3 /*break*/, 3]; - novelId = loadedCheerio(".rating-post-id").attr("value") || - loadedCheerio("#manga-chapters-holder").attr("data-id") || - ""; - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - }).then(function (res) { return res.text(); })]; - case 2: - html = _b.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl + "ajax/chapters/", { - method: "POST", - }).then(function (res) { return res.text(); })]; - case 4: - html = _b.sent(); - _b.label = 5; - case 5: - if (html !== "0") { - loadedCheerio = (0, cheerio_1.load)(html); - } - chapters = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - releaseDate = loadedCheerio(this) - .find("span.chapter-release-date") - .text() - .trim(); - if (releaseDate) { - releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(releaseDate); - } - else { - /** - * Insert current date - */ - releaseDate = (0, dayjs_1.default)().format("LL"); - } - var chapterUrl = loadedCheerio(this).find("a").attr("href") || ""; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MadaraPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || - loadedCheerio(".text-right").html() || - loadedCheerio(".entry-content").html() || - ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MadaraPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url, {})]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return MadaraPlugin; -}()); -var plugin = new MadaraPlugin({ "id": "guavaread", "sourceSite": "https://guavaread.com/", "sourceName": "Guavaread", "filters": { "sort": { "label": "Order by", "value": "", "options": [{ "label": "Default", "value": "" }, { "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": filterInputs_1.FilterTypes.Picker }, "genres": { "label": "GENRES", "value": "", "options": [{ "label": "NONE", "value": "" }, { "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" }], "type": filterInputs_1.FilterTypes.Picker } }, "options": { "useNewChapterEndpoint": true, "lang": "English" } }); -exports.default = plugin; diff --git a/.js/plugins/english/LightNovelHeaven[madara].js b/.js/plugins/english/LightNovelHeaven[madara].js deleted file mode 100644 index 91614a8..0000000 --- a/.js/plugins/english/LightNovelHeaven[madara].js +++ /dev/null @@ -1,296 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var dayjs_1 = __importDefault(require("dayjs")); -var MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; -var MadaraPlugin = /** @class */ (function () { - function MadaraPlugin(metadata) { - this.id = metadata.id; - this.name = metadata.sourceName + "[madara]"; - var iconFileName = metadata.sourceName - .replace(/\s+/g, "") - .toLowerCase(); - this.icon = "multisrc/madara/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - this.filters = metadata.filters; - } - MadaraPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - novels = []; - url = this.site; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) { - url += (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.path) === null || _d === void 0 ? void 0 : _d.genres) || MadaraDefaultPath.genres) + - "/" + - filters.genres.value; - } - else { - url += ((_f = (_e = this.options) === null || _e === void 0 ? void 0 : _e.path) === null || _f === void 0 ? void 0 : _f.novels) || MadaraDefaultPath.novels; - } - url += - "/page/" + - pageNo + - "/" + - "?m_orderby=" + - (showLatestNovels ? "latest" : ((_g = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _g === void 0 ? void 0 : _g.value) || "rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges").remove(); - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novel, body, loadedCheerio, html, novelId, formData, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges, #manga-title span").remove(); - novel.name = - loadedCheerio(".post-title h1").text().trim() || - loadedCheerio("#manga-title h1").text(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("data-lazy-src") || - loadedCheerio(".summary_image > a > img").attr("data-src") || - loadedCheerio(".summary_image > a > img").attr("src") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item, .post-content").each(function () { - var detailName = loadedCheerio(this).find("h5").text().trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - case "التصنيفات": - novel.genres = detail.replace(/[\\t\\n]/g, ","); - break; - case "Author(s)": - case "المؤلف": - case "المؤلف (ين)": - novel.author = detail; - break; - case "Status": - case "الحالة": - novel.status = - detail.includes("OnGoing") || detail.includes("مستمرة") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - loadedCheerio("div.summary__content .code-block,script").remove(); - novel.summary = - loadedCheerio("div.summary__content").text().trim() || - loadedCheerio("#tab-manga-about").text().trim() || - loadedCheerio('.post-content_item h5:contains("Summary")') - .next() - .text() - .trim(); - if (!(((_a = this.options) === null || _a === void 0 ? void 0 : _a.useNewChapterEndpoint) !== true)) return [3 /*break*/, 3]; - novelId = loadedCheerio(".rating-post-id").attr("value") || - loadedCheerio("#manga-chapters-holder").attr("data-id") || - ""; - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - }).then(function (res) { return res.text(); })]; - case 2: - html = _b.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl + "ajax/chapters/", { - method: "POST", - }).then(function (res) { return res.text(); })]; - case 4: - html = _b.sent(); - _b.label = 5; - case 5: - if (html !== "0") { - loadedCheerio = (0, cheerio_1.load)(html); - } - chapters = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - releaseDate = loadedCheerio(this) - .find("span.chapter-release-date") - .text() - .trim(); - if (releaseDate) { - releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(releaseDate); - } - else { - /** - * Insert current date - */ - releaseDate = (0, dayjs_1.default)().format("LL"); - } - var chapterUrl = loadedCheerio(this).find("a").attr("href") || ""; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MadaraPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || - loadedCheerio(".text-right").html() || - loadedCheerio(".entry-content").html() || - ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MadaraPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url, {})]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return MadaraPlugin; -}()); -var plugin = new MadaraPlugin({ "id": "lnheaven", "sourceSite": "https://lightnovelheaven.com/", "sourceName": "LightNovelHeaven", "filters": { "sort": { "label": "Order by", "value": "", "options": [{ "label": "Default", "value": "" }, { "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": filterInputs_1.FilterTypes.Picker } }, "options": { "path": { "novels": "series", "novel": "series", "chapter": "series" }, "useNewChapterEndpoint": true, "lang": "English" } }); -exports.default = plugin; diff --git a/.js/plugins/english/Ltnovel[readwn].js b/.js/plugins/english/Ltnovel[readwn].js deleted file mode 100644 index 513bbd8..0000000 --- a/.js/plugins/english/Ltnovel[readwn].js +++ /dev/null @@ -1,209 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var cheerio_1 = require("cheerio"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var ReadwnPlugin = /** @class */ (function () { - function ReadwnPlugin(metadata) { - this.fetchImage = fetch_1.fetchFile; - this.id = metadata.id; - this.name = metadata.sourceName + "[readwn]"; - var iconFileName = metadata.sourceName.replace(/\s+/g, "").toLowerCase(); - this.icon = "multisrc/readwn/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.filters = metadata.filters; - } - ReadwnPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var url, body, loadedCheerio, novels; - var _this = this; - return __generator(this, function (_f) { - switch (_f.label) { - case 0: - url = this.site + "/list/"; - url += (((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) || "all") + "/"; - url += (((_c = filters === null || filters === void 0 ? void 0 : filters.status) === null || _c === void 0 ? void 0 : _c.value) || "all") + "-"; - url += showLatestNovels ? "lastdotime" : ((_d = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _d === void 0 ? void 0 : _d.value) || "newstime"; - url += "-" + (pageNo - 1) + ".html"; - if ((_e = filters === null || filters === void 0 ? void 0 : filters.tags) === null || _e === void 0 ? void 0 : _e.value) { //only 1 page - url = this.site + "/tags/" + filters.tags.value + "-0.html"; - } - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _f.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = loadedCheerio("li.novel-item") - .map(function (index, element) { return ({ - name: loadedCheerio(element).find("h4").text(), - cover: _this.site + - loadedCheerio(element).find(".novel-cover > img").attr("data-src"), - url: _this.site + loadedCheerio(element).find("a").attr("href"), - }); }) - .get(); - return [2 /*return*/, novels]; - } - }); - }); - }; - ReadwnPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, novel, latestChapterNo, chapters, lastChapterNo, i; - var _this = this; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { - url: novelUrl, - }; - novel.name = loadedCheerio("h1.novel-title").text(); - novel.author = loadedCheerio("span[itemprop=author]").text(); - novel.cover = this.site + loadedCheerio("figure.cover > img").attr("data-src"); - novel.summary = loadedCheerio(".summary") - .text() - .replace("Summary", "") - .trim(); - novel.genres = loadedCheerio("div.categories > ul > li") - .map(function (index, element) { var _a; return (_a = loadedCheerio(element).text()) === null || _a === void 0 ? void 0 : _a.trim(); }) - .get() - .join(","); - loadedCheerio("div.header-stats > span").each(function () { - if (loadedCheerio(this).find("small").text() === "Status") { - novel.status = loadedCheerio(this).find("strong").text(); - } - }); - latestChapterNo = parseInt(loadedCheerio(".header-stats") - .find("span > strong") - .first() - .text() - .trim()); - chapters = loadedCheerio(".chapter-list li") - .map(function (index, element) { - var _a; - var name = loadedCheerio(element).find("a .chapter-title").text().trim(); - var url = (_a = loadedCheerio(element).find("a").attr("href")) === null || _a === void 0 ? void 0 : _a.trim(); - var releaseTime = loadedCheerio(element).find("a .chapter-update").text().trim(); - if (!name || !url) - return null; - return { - name: name, - releaseTime: (0, parseMadaraDate_1.parseMadaraDate)(releaseTime), - url: _this.site + url, - }; - }) - .get() - .filter(function (chapter) { return chapter; }); - if (latestChapterNo > chapters.length) { - lastChapterNo = parseInt(((_a = chapters[chapters.length - 1].url.match(/_(\d+)\.html/)) === null || _a === void 0 ? void 0 : _a[1]) || "", 10); - for (i = (lastChapterNo || chapters.length) + 1; i <= latestChapterNo; i++) { - chapters.push({ - name: "Chapter " + i, - releaseTime: null, - url: novelUrl.replace(".html", "_" + i + ".html"), - }); - } - } - novel.chapters = chapters; - return [2 /*return*/, novel]; - } - }); - }); - }; - ReadwnPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".chapter-content").html() || ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - ReadwnPlugin.prototype.searchNovels = function (keyboard) { - return __awaiter(this, void 0, void 0, function () { - var result, loadedCheerio, novels; - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "/e/search/index.php", { - headers: { - "Content-Type": "application/x-www-form-urlencoded", - Referer: this.site + "/search.html", - Origin: this.site, - "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36", - }, - method: "POST", - body: JSON.stringify({ - show: "title", - tempid: 1, - tbname: "news", - keyboard: keyboard, - }), - }).then(function (res) { return res.text(); })]; - case 1: - result = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(result); - novels = loadedCheerio("li.novel-item") - .map(function (index, element) { return ({ - name: loadedCheerio(element).find("h4").text(), - cover: _this.site + loadedCheerio(element).find("img").attr("data-src"), - url: _this.site + loadedCheerio(element).find("a").attr("href"), - }); }) - .get(); - return [2 /*return*/, novels]; - } - }); - }); - }; - return ReadwnPlugin; -}()); -var plugin = new ReadwnPlugin({ "id": "Ltnovel.com", "sourceSite": "https://www.ltnovel.com", "sourceName": "Ltnovel", "filters": { "sort": { "label": "Sort By", "options": [{ "label": "New", "value": "newstime" }, { "label": "Popular", "value": "onclick" }, { "label": "Updates", "value": "lastdotime" }], "value": "newstime", "type": filterInputs_1.FilterTypes.Picker }, "status": { "label": "Status", "options": [{ "label": "All", "value": "all" }, { "label": "Completed", "value": "Completed" }, { "label": "Ongoing", "value": "Ongoing" }], "value": "all", "type": filterInputs_1.FilterTypes.Picker }, "genres": { "label": "Genre / Category", "options": [{ "label": "All", "value": "all" }, { "label": "Action", "value": "action" }, { "label": "Adventure", "value": "adventure" }, { "label": "Comedy", "value": "comedy" }, { "label": "Contemporary Romance", "value": "contemporary-romance" }, { "label": "Drama", "value": "drama" }, { "label": "Eastern Fantasy", "value": "eastern-fantasy" }, { "label": "Fantasy", "value": "fantasy" }, { "label": "Fantasy Romance", "value": "fantasy-romance" }, { "label": "Game", "value": "game" }, { "label": "Gender Bender", "value": "gender-bender" }, { "label": "Harem", "value": "harem" }, { "label": "Historical", "value": "historical" }, { "label": "Horror", "value": "horror" }, { "label": "Josei", "value": "josei" }, { "label": "Lolicon", "value": "lolicon" }, { "label": "Magical Realism", "value": "magical-realism" }, { "label": "Martial Arts", "value": "martial-arts" }, { "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": "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": "Video Games", "value": "video-games" }, { "label": "Wuxia", "value": "wuxia" }, { "label": "Xianxia", "value": "xianxia" }, { "label": "Xuanhuan", "value": "xuanhuan" }, { "label": "Yaoi", "value": "yaoi" }, { "label": "Chinese", "value": "chinese" }, { "label": "Erciyuan", "value": "erciyuan" }, { "label": "Faloo", "value": "faloo" }, { "label": "Fan-Fiction", "value": "fan-fiction" }, { "label": "Hentai", "value": "hentai" }, { "label": "Isekai", "value": "isekai" }, { "label": "Japanese", "value": "japanese" }, { "label": "Korean", "value": "korean" }, { "label": "Magic", "value": "magic" }, { "label": "Military", "value": "military" }, { "label": "Official Circles", "value": "official_circles" }, { "label": "Science Fiction", "value": "science_fiction" }, { "label": "Shoujo Ai", "value": "shoujo-ai" }, { "label": "Suspense Thriller", "value": "suspense_thriller" }, { "label": "Travel Through Time", "value": "travel_through_time" }, { "label": "Two-dimensional", "value": "two-dimensional" }, { "label": "Urban", "value": "urban" }, { "label": "Urban Life", "value": "urban-life" }, { "label": "Virtual Reality", "value": "virtual-reality" }, { "label": "Wuxia Xianxia", "value": "wuxia_xianxia" }, { "label": "Yuri", "value": "yuri" }, { "label": "Billionaire", "value": "billionaire" }, { "label": "CEO", "value": "ceo" }, { "label": "Chinese", "value": "chinese" }, { "label": "Ecchi", "value": "ecchi" }, { "label": "Erciyuan", "value": "erciyuan" }, { "label": "Faloo", "value": "faloo" }, { "label": "Fan-Fiction", "value": "fan-fiction" }, { "label": "Farming", "value": "farming" }, { "label": "Games", "value": "games" }, { "label": "Gay Romance", "value": "gay-romance" }, { "label": "Historical Romance", "value": "historical-romance" }, { "label": "Isekai", "value": "isekai" }, { "label": "Japanese", "value": "japanese" }, { "label": "Korean", "value": "korean" }, { "label": "Magic", "value": "magic" }, { "label": "Military", "value": "military" }, { "label": "Modern Life", "value": "modern-life" }, { "label": "Modern Romance", "value": "modern-romance" }, { "label": "Romantic", "value": "romantic" }, { "label": "Shoujo Ai", "value": "shoujo-ai" }, { "label": "Smut", "value": "smut" }, { "label": "Two-dimensional", "value": "two-dimensional" }, { "label": "Urban", "value": "urban" }, { "label": "Urban Life", "value": "urban-life" }, { "label": "Virtual Reality", "value": "virtual-reality" }, { "label": "Yuri", "value": "yuri" }, { "label": "Adult", "value": "adult" }, { "label": "Ecchi", "value": "ecchi" }, { "label": "Mature", "value": "mature" }, { "label": "Smut", "value": "smut" }], "value": "", "type": filterInputs_1.FilterTypes.Picker }, "tags": { "label": "Tags", "options": [{ "label": "Default", "value": "" }, { "label": "☆Crazy→M", "value": "5728" }, { "label": "A.I", "value": "4862" }, { "label": "a55421", "value": "6070" }, { "label": "Aaron&0", "value": "2064" }, { "label": "AbaloneHou", "value": "5017" }, { "label": "Abandoned", "value": "5452" }, { "label": "AbandonedC", "value": "145" }, { "label": "AbandonedC", "value": "1597" }, { "label": "abandonedw", "value": "3327" }, { "label": "Abilities", "value": "1691" }, { "label": "Ability", "value": "1203" }, { "label": "AbilitySte", "value": "289" }, { "label": "ABO", "value": "930" }, { "label": "Abortion", "value": "1696" }, { "label": "ABowlofCar", "value": "4168" }, { "label": "Abowlofduk", "value": "4398" }, { "label": "AbsentPare", "value": "240" }, { "label": "AbsoluteDu", "value": "1670" }, { "label": "absolutely", "value": "2255" }, { "label": "Absorbform", "value": "3681" }, { "label": "Abuse", "value": "856" }, { "label": "AbusiveCha", "value": "1" }, { "label": "AbusiveCha", "value": "815" }, { "label": "Abyss", "value": "3971" }, { "label": "Academy", "value": "50" }, { "label": "Acane", "value": "5993" }, { "label": "acanofcoke", "value": "4689" }, { "label": "AcasualPaw", "value": "806" }, { "label": "Accelerate", "value": "51" }, { "label": "AcceptingD", "value": "1507" }, { "label": "ACGN", "value": "1653" }, { "label": "acloudpier", "value": "4002" }, { "label": "Acorneroft", "value": "5910" }, { "label": "Acting", "value": "103" }, { "label": "Action", "value": "90" }, { "label": "Actors", "value": "1101" }, { "label": "Actress", "value": "1526" }, { "label": "Acupoffrag", "value": "4815" }, { "label": "acupofwarm", "value": "3745" }, { "label": "AdaptedtoA", "value": "87" }, { "label": "AdaptedtoD", "value": "146" }, { "label": "AdaptedtoD", "value": "495" }, { "label": "AdaptedtoG", "value": "334" }, { "label": "AdaptedtoM", "value": "88" }, { "label": "AdaptedtoM", "value": "239" }, { "label": "AdaptedtoM", "value": "677" }, { "label": "AdaptedtoM", "value": "147" }, { "label": "AdaptedtoV", "value": "973" }, { "label": "ADeadBody", "value": "5069" }, { "label": "Administra", "value": "5659" }, { "label": "Admiral-sa", "value": "4680" }, { "label": "Adopted", "value": "1300" }, { "label": "AdoptedChi", "value": "262" }, { "label": "AdoptedPro", "value": "270" }, { "label": "Adoption", "value": "1697" }, { "label": "adreamcome", "value": "4569" }, { "label": "Adrogynous", "value": "1105" }, { "label": "Adult", "value": "1448" }, { "label": "Adultery", "value": "433" }, { "label": "AdvancedKn", "value": "1564" }, { "label": "advancedte", "value": "1661" }, { "label": "adventerer", "value": "3416" }, { "label": "Adventure", "value": "943" }, { "label": "adventurep", "value": "3942" }, { "label": "Adventurer", "value": "276" }, { "label": "Adventurer", "value": "4342" }, { "label": "Affair", "value": "670" }, { "label": "afigure", "value": "5843" }, { "label": "afinegray", "value": "4804" }, { "label": "AfricanEmi", "value": "1894" }, { "label": "afterthera", "value": "4489" }, { "label": "Afterthesh", "value": "3231" }, { "label": "Aftertheso", "value": "1818" }, { "label": "Afunnyguy", "value": "3697" }, { "label": "Age-gap", "value": "1943" }, { "label": "AgeDiffere", "value": "939" }, { "label": "AgeGap", "value": "1642" }, { "label": "Agent", "value": "3605" }, { "label": "AgeofGods", "value": "1897" }, { "label": "AgeProgres", "value": "206" }, { "label": "AgeRegress", "value": "436" }, { "label": "AggresiveC", "value": "1284" }, { "label": "Aggressive", "value": "242" }, { "label": "Aggressive", "value": "1476" }, { "label": "aglassofhu", "value": "4049" }, { "label": "Agleamoffl", "value": "4483" }, { "label": "agluttonou", "value": "4884" }, { "label": "agrass", "value": "1893" }, { "label": "Ahbig", "value": "5530" }, { "label": "aheart", "value": "4219" }, { "label": "AhQing", "value": "3965" }, { "label": "ahundredth", "value": "3475" }, { "label": "ahveryfish", "value": "1876" }, { "label": "AI", "value": "788" }, { "label": "AI-chip", "value": "1181" }, { "label": "AiAiwhowor", "value": "5491" }, { "label": "ailii", "value": "4923" }, { "label": "Aimingatth", "value": "5897" }, { "label": "airflow", "value": "3266" }, { "label": "airflowgen", "value": "3051" }, { "label": "Aishara", "value": "4885" }, { "label": "AJiu", "value": "5892" }, { "label": "ajugofsake", "value": "5736" }, { "label": "AkamegaKil", "value": "1040" }, { "label": "AkiraHayak", "value": "4595" }, { "label": "akitten", "value": "4536" }, { "label": "AladleofCh", "value": "5873" }, { "label": "alazybones", "value": "5295" }, { "label": "alazyscale", "value": "4096" }, { "label": "Alchemist", "value": "1000" }, { "label": "Alchemy", "value": "52" }, { "label": "AliceSupre", "value": "4557" }, { "label": "Alicia", "value": "3758" }, { "label": "Alien", "value": "3111" }, { "label": "Aliens", "value": "243" }, { "label": "alittlebit", "value": "4546" }, { "label": "AlittleJun", "value": "4921" }, { "label": "alittlewol", "value": "4232" }, { "label": "Aliverday", "value": "2656" }, { "label": "All-GirlsS", "value": "1024" }, { "label": "Alldaylong", "value": "4316" }, { "label": "allenzhang", "value": "2015" }, { "label": "allergytoe", "value": "3665" }, { "label": "AllHeavens", "value": "2348" }, { "label": "Alloverthe", "value": "3897" }, { "label": "Almighty", "value": "3265" }, { "label": "AlmightyCo", "value": "2778" }, { "label": "Almightypl", "value": "2780" }, { "label": "Almostsir", "value": "4238" }, { "label": "Alone", "value": "2610" }, { "label": "Alpaca", "value": "5616" }, { "label": "alpha", "value": "4340" }, { "label": "alsothough", "value": "4775" }, { "label": "AltecNewco", "value": "5298" }, { "label": "AlterateHi", "value": "2902" }, { "label": "AlternateH", "value": "1256" }, { "label": "AlternateH", "value": "3026" }, { "label": "AlternateH", "value": "2995" }, { "label": "AlternateH", "value": "2948" }, { "label": "AlternateW", "value": "220" }, { "label": "Alternativ", "value": "3836" }, { "label": "AmadaR", "value": "5792" }, { "label": "Amagicpill", "value": "2434" }, { "label": "AmanChuanl", "value": "5841" }, { "label": "Amatchmade", "value": "6129" }, { "label": "amateurtra", "value": "6059" }, { "label": "amberstar", "value": "4087" }, { "label": "ambitionin", "value": "4853" }, { "label": "Amelonisno", "value": "5026" }, { "label": "America", "value": "3285" }, { "label": "Americaiss", "value": "3450" }, { "label": "AmericanCo", "value": "2899" }, { "label": "Americas", "value": "2903" }, { "label": "Amis", "value": "5279" }, { "label": "Amnesia", "value": "244" }, { "label": "Amnesty", "value": "5965" }, { "label": "Amon&03", "value": "3740" }, { "label": "amoonrabbi", "value": "4877" }, { "label": "AmoralityP", "value": "1044" }, { "label": "Amouthfulo", "value": "3980" }, { "label": "AmusementP", "value": "766" }, { "label": "An83", "value": "5020" }, { "label": "Anal", "value": "53" }, { "label": "anamewithd", "value": "5019" }, { "label": "Anarchism", "value": "3855" }, { "label": "Anas", "value": "3764" }, { "label": "Anautumnra", "value": "2577" }, { "label": "Ancestralf", "value": "3352" }, { "label": "ancestry", "value": "5826" }, { "label": "Ancient", "value": "1546" }, { "label": "AncientArm", "value": "5701" }, { "label": "AncientBus", "value": "1257" }, { "label": "AncientChi", "value": "34" }, { "label": "AncientChi", "value": "2892" }, { "label": "AncientChi", "value": "424" }, { "label": "ancientlov", "value": "5680" }, { "label": "Ancientmar", "value": "6150" }, { "label": "AncientRea", "value": "1478" }, { "label": "ancientset", "value": "1465" }, { "label": "AncientSpi", "value": "3235" }, { "label": "ancienttim", "value": "1049" }, { "label": "AncientTim", "value": "149" }, { "label": "AncientWea", "value": "1730" }, { "label": "ancientwei", "value": "3637" }, { "label": "ancientwil", "value": "3432" }, { "label": "andfall", "value": "4373" }, { "label": "Androgynou", "value": "318" }, { "label": "Androids", "value": "471" }, { "label": "anewworld", "value": "1425" }, { "label": "Angel", "value": "1589" }, { "label": "Angel&0", "value": "6127" }, { "label": "angeldoom", "value": "4089" }, { "label": "AngelofGai", "value": "4636" }, { "label": "AngelPeerl", "value": "4059" }, { "label": "Angels", "value": "369" }, { "label": "anglemetal", "value": "5414" }, { "label": "AngryChick", "value": "4426" }, { "label": "angryhouse", "value": "2331" }, { "label": "Angst", "value": "1007" }, { "label": "AnimalChar", "value": "120" }, { "label": "AnimalRear", "value": "453" }, { "label": "animals", "value": "1694" }, { "label": "Animator", "value": "1704" }, { "label": "Anime", "value": "759" }, { "label": "animenewco", "value": "2208" }, { "label": "Anl", "value": "189" }, { "label": "AnlanInvin", "value": "2842" }, { "label": "AnNuan84", "value": "6085" }, { "label": "anoldliqun", "value": "3792" }, { "label": "anoldman", "value": "2268" }, { "label": "Anon", "value": "4223" }, { "label": "Anonymous", "value": "5229" }, { "label": "Anonymouso", "value": "5420" }, { "label": "AnonymousX", "value": "4816" }, { "label": "anorangetr", "value": "4389" }, { "label": "anotherpac", "value": "4138" }, { "label": "AnotherWor", "value": "899" }, { "label": "AnotherWor", "value": "1550" }, { "label": "anovernigh", "value": "5407" }, { "label": "anthology", "value": "1440" }, { "label": "anti-entro", "value": "3820" }, { "label": "Anti-Hero", "value": "1174" }, { "label": "Anti-HeroL", "value": "782" }, { "label": "Anti-heroP", "value": "1171" }, { "label": "Anti-Japan", "value": "3269" }, { "label": "Anti-Magic", "value": "688" }, { "label": "Anti-MC", "value": "2916" }, { "label": "Anti-routi", "value": "3096" }, { "label": "Anti-routi", "value": "3073" }, { "label": "Anti-socia", "value": "454" }, { "label": "AntiHero", "value": "816" }, { "label": "AntiheroPr", "value": "36" }, { "label": "AntiqueSho", "value": "619" }, { "label": "AoChen", "value": "5731" }, { "label": "Aoyamafell", "value": "5662" }, { "label": "AozakiAoko", "value": "4811" }, { "label": "apapertige", "value": "4603" }, { "label": "ApartmentL", "value": "725" }, { "label": "apassingfi", "value": "4891" }, { "label": "Apassingfo", "value": "5913" }, { "label": "ApatheticP", "value": "295" }, { "label": "apieceofno", "value": "3498" }, { "label": "apigeon", "value": "5029" }, { "label": "Apocalypse", "value": "89" }, { "label": "Apocalypse", "value": "5466" }, { "label": "Apocalypse", "value": "1233" }, { "label": "Apocalypse", "value": "1081" }, { "label": "Apocalypti", "value": "1485" }, { "label": "ApostleCel", "value": "5858" }, { "label": "Apotofrefr", "value": "5865" }, { "label": "Appearance", "value": "54" }, { "label": "Appearance", "value": "104" }, { "label": "Apple", "value": "1962" }, { "label": "Appraisal", "value": "1180" }, { "label": "Apprentice", "value": "1376" }, { "label": "aquablue", "value": "3642" }, { "label": "Aquadoesn&", "value": "4050" }, { "label": "arayofsuns", "value": "2126" }, { "label": "Arbor11", "value": "3673" }, { "label": "archeology", "value": "3629" }, { "label": "Archer", "value": "2590" }, { "label": "Archery", "value": "411" }, { "label": "Aresstream", "value": "3214" }, { "label": "Aristocrac", "value": "221" }, { "label": "Aristocrat", "value": "1150" }, { "label": "Aristrocac", "value": "1598" }, { "label": "Arknights", "value": "1540" }, { "label": "armoredcit", "value": "3558" }, { "label": "ArmsDealer", "value": "357" }, { "label": "ArmsDealer", "value": "2907" }, { "label": "ArmsTrade", "value": "1389" }, { "label": "Army", "value": "329" }, { "label": "Army-build", "value": "870" }, { "label": "ArmyBuildi", "value": "163" }, { "label": "ArrangedMa", "value": "223" }, { "label": "ArrayMage", "value": "4344" }, { "label": "ArrogantCh", "value": "55" }, { "label": "ArthurJun", "value": "5940" }, { "label": "ArtifactCr", "value": "209" }, { "label": "Artifacts", "value": "210" }, { "label": "ArtifactsB", "value": "567" }, { "label": "ArtifactsC", "value": "56" }, { "label": "artificer", "value": "1755" }, { "label": "Artificial", "value": "2919" }, { "label": "Artificial", "value": "91" }, { "label": "artillery", "value": "5124" }, { "label": "Artis", "value": "869" }, { "label": "Artist", "value": "760" }, { "label": "Artists", "value": "302" }, { "label": "asaltedfis", "value": "5638" }, { "label": "Asasi", "value": "4951" }, { "label": "Ascension", "value": "5497" }, { "label": "Ashcanfly", "value": "4110" }, { "label": "Ashesthatd", "value": "3803" }, { "label": "ashtrayold", "value": "4499" }, { "label": "AskJianZho", "value": "4807" }, { "label": "askTaichi", "value": "2316" }, { "label": "asmallgras", "value": "3497" }, { "label": "Asmalloffi", "value": "5766" }, { "label": "ASOIAF", "value": "3423" }, { "label": "assasin", "value": "1763" }, { "label": "Assasins", "value": "3462" }, { "label": "Assassin", "value": "1055" }, { "label": "assassin95", "value": "5553" }, { "label": "Assassins", "value": "217" }, { "label": "Aston", "value": "5519" }, { "label": "astonelion", "value": "5477" }, { "label": "Astrologer", "value": "700" }, { "label": "Asukatired", "value": "4803" }, { "label": "asword", "value": "5103" }, { "label": "aswordbone", "value": "4617" }, { "label": "atabbycat", "value": "4395" }, { "label": "athlete", "value": "3275" }, { "label": "AThousandM", "value": "3484" }, { "label": "ATom", "value": "5763" }, { "label": "atravellin", "value": "1832" }, { "label": "Attractive", "value": "1648" }, { "label": "aturkey", "value": "4203" }, { "label": "Auspicious", "value": "2298" }, { "label": "AuthorJi", "value": "4443" }, { "label": "Authoroffa", "value": "2018" }, { "label": "Autism", "value": "241" }, { "label": "AutomaticU", "value": "1639" }, { "label": "AutomaticU", "value": "1312" }, { "label": "Automatons", "value": "675" }, { "label": "autumnautu", "value": "1838" }, { "label": "autumncold", "value": "4142" }, { "label": "autumnisno", "value": "5436" }, { "label": "autumnleav", "value": "3685" }, { "label": "AutumnLeav", "value": "4518" }, { "label": "Avatar", "value": "3698" }, { "label": "Avatar&", "value": "1635" }, { "label": "Average-lo", "value": "245" }, { "label": "AverageLoo", "value": "905" }, { "label": "avigorous", "value": "2466" }, { "label": "Awakeningf", "value": "5715" }, { "label": "Award-winn", "value": "985" }, { "label": "awhitebait", "value": "5517" }, { "label": "AwkwardPro", "value": "271" }, { "label": "Ayanokoji", "value": "2066" }, { "label": "Ayres", "value": "5241" }, { "label": "AZanpakut", "value": "2637" }, { "label": "Azeroth", "value": "1702" }, { "label": "azure", "value": "5954" }, { "label": "AzurLane", "value": "1068" }, { "label": "babbling1", "value": "3862" }, { "label": "Babies", "value": "1223" }, { "label": "baby", "value": "3594" }, { "label": "BabyFeng", "value": "4278" }, { "label": "backtoboat", "value": "4479" }, { "label": "Badassprot", "value": "1695" }, { "label": "badcheese", "value": "4584" }, { "label": "Bagpipeson", "value": "5977" }, { "label": "BaiBailan~", "value": "5427" }, { "label": "BaiMaoisno", "value": "5472" }, { "label": "BaiMingxia", "value": "4875" }, { "label": "BaiTuanJiu", "value": "4995" }, { "label": "BaiXiaowei", "value": "2820" }, { "label": "BaiYuenake", "value": "4432" }, { "label": "baldman", "value": "2395" }, { "label": "Baldmaster", "value": "5207" }, { "label": "baldnessat", "value": "2313" }, { "label": "BaldTraine", "value": "5628" }, { "label": "balduncle", "value": "2830" }, { "label": "BalmoreBea", "value": "5189" }, { "label": "bamboobamb", "value": "3654" }, { "label": "BambooFlow", "value": "4506" }, { "label": "bambooink", "value": "4918" }, { "label": "bambooshad", "value": "5643" }, { "label": "Bambooskin", "value": "5776" }, { "label": "Bandit", "value": "3302" }, { "label": "BarrenEmpe", "value": "2260" }, { "label": "Baseball", "value": "673" }, { "label": "BasedonaMo", "value": "579" }, { "label": "BasedonanA", "value": "1052" }, { "label": "BasedonaSo", "value": "1118" }, { "label": "BasedonaTV", "value": "671" }, { "label": "BasedonaVi", "value": "1014" }, { "label": "BasedonaVi", "value": "1083" }, { "label": "BashuiDuxi", "value": "5653" }, { "label": "Basket", "value": "1606" }, { "label": "basketball", "value": "3068" }, { "label": "Basketball", "value": "226" }, { "label": "BatDemonCh", "value": "4912" }, { "label": "BattleAcad", "value": "416" }, { "label": "BattleComp", "value": "211" }, { "label": "BattleThro", "value": "1333" }, { "label": "Baumudrich", "value": "5375" }, { "label": "BBQmadebyt", "value": "4765" }, { "label": "BDSM", "value": "190" }, { "label": "beaming", "value": "2508" }, { "label": "Beansandgr", "value": "2786" }, { "label": "Bearcat", "value": "2142" }, { "label": "BearChild", "value": "3461" }, { "label": "Bearchildl", "value": "2232" }, { "label": "bearcocoa", "value": "2652" }, { "label": "beardada", "value": "5798" }, { "label": "beardwhite", "value": "4253" }, { "label": "Beast", "value": "1253" }, { "label": "beastcompa", "value": "1128" }, { "label": "BeastCompa", "value": "57" }, { "label": "Beastkin", "value": "8" }, { "label": "beastman", "value": "1700" }, { "label": "Beastmen", "value": "1369" }, { "label": "beastprota", "value": "2315" }, { "label": "Beasts", "value": "58" }, { "label": "Beasttamer", "value": "1254" }, { "label": "Beasttamin", "value": "5057" }, { "label": "beastworld", "value": "3441" }, { "label": "Beat", "value": "5170" }, { "label": "Beatthefem", "value": "5065" }, { "label": "Beatthemal", "value": "5064" }, { "label": "beatyourse", "value": "2204" }, { "label": "beautifula", "value": "2691" }, { "label": "Beautifulb", "value": "5870" }, { "label": "BeautifulC", "value": "1018" }, { "label": "beautifulf", "value": "1746" }, { "label": "Beautifulf", "value": "1456" }, { "label": "BeautifulF", "value": "21" }, { "label": "BeautifulF", "value": "1748" }, { "label": "beautifulh", "value": "59" }, { "label": "Beautifull", "value": "1516" }, { "label": "BeautifulP", "value": "1160" }, { "label": "beauty", "value": "1418" }, { "label": "Beautyred", "value": "4560" }, { "label": "becausesoh", "value": "2649" }, { "label": "becomeagod", "value": "3215" }, { "label": "becomeagod", "value": "3022" }, { "label": "Becomefamo", "value": "1921" }, { "label": "BeefandShr", "value": "4790" }, { "label": "beggingfor", "value": "2710" }, { "label": "Beginner", "value": "5878" }, { "label": "Behappytod", "value": "4836" }, { "label": "BehindtheS", "value": "1643" }, { "label": "BehindtheS", "value": "1505" }, { "label": "BeichengNa", "value": "3945" }, { "label": "BeidouTian", "value": "6050" }, { "label": "BeiHaiPiao", "value": "5421" }, { "label": "BeishanRai", "value": "5112" }, { "label": "bellbell", "value": "6045" }, { "label": "bellsofjoy", "value": "4568" }, { "label": "Belltouche", "value": "2404" }, { "label": "Bellyblack", "value": "3117" }, { "label": "belovedbab", "value": "1992" }, { "label": "ben10", "value": "1412" }, { "label": "Benson", "value": "4668" }, { "label": "Bestiality", "value": "628" }, { "label": "Betrayal", "value": "40" }, { "label": "Betweenthe", "value": "5456" }, { "label": "Betweenthe", "value": "5172" }, { "label": "bewitching", "value": "2828" }, { "label": "BickeringC", "value": "79" }, { "label": "bickeringl", "value": "5054" }, { "label": "bigblue", "value": "5660" }, { "label": "bigbrain", "value": "3125" }, { "label": "BigBroHasD", "value": "802" }, { "label": "bigcatpres", "value": "5782" }, { "label": "bigcatslav", "value": "4793" }, { "label": "bigchinchi", "value": "5274" }, { "label": "bigcitysma", "value": "2367" }, { "label": "Bigcockcut", "value": "2586" }, { "label": "Bigdog", "value": "2042" }, { "label": "bigdreamsa", "value": "3752" }, { "label": "bigfacemor", "value": "5146" }, { "label": "bigfire", "value": "5651" }, { "label": "bighippo", "value": "2683" }, { "label": "bigisbeaut", "value": "4498" }, { "label": "bigorange", "value": "6046" }, { "label": "bigorangew", "value": "2319" }, { "label": "bigpeninth", "value": "4948" }, { "label": "bigpicture", "value": "1796" }, { "label": "Bigplayers", "value": "1880" }, { "label": "BigSesameR", "value": "3721" }, { "label": "BigSkeleto", "value": "2235" }, { "label": "bigtent", "value": "2605" }, { "label": "bigwhitewh", "value": "1911" }, { "label": "Billionair", "value": "1457" }, { "label": "billionpeo", "value": "2868" }, { "label": "billionpoi", "value": "4330" }, { "label": "BingtangHu", "value": "2140" }, { "label": "Biochip", "value": "473" }, { "label": "Biomass", "value": "1706" }, { "label": "Biscuits", "value": "1846" }, { "label": "BisexualPr", "value": "813" }, { "label": "Bishamonte", "value": "5992" }, { "label": "BishopMyri", "value": "5001" }, { "label": "bite", "value": "6125" }, { "label": "bitefire", "value": "2212" }, { "label": "BL", "value": "857" }, { "label": "Black-bell", "value": "1273" }, { "label": "Black-bell", "value": "925" }, { "label": "blackabyss", "value": "4081" }, { "label": "blackandim", "value": "2219" }, { "label": "blackandwh", "value": "2797" }, { "label": "blackandwh", "value": "1867" }, { "label": "Blackbelli", "value": "1556" }, { "label": "BlackBelly", "value": "38" }, { "label": "BlackBelly", "value": "1053" }, { "label": "Blackbirch", "value": "4572" }, { "label": "blackcatam", "value": "5509" }, { "label": "blackcatis", "value": "2711" }, { "label": "BlackDrago", "value": "2720" }, { "label": "Blackening", "value": "3219" }, { "label": "blackflash", "value": "4984" }, { "label": "blackgreen", "value": "5203" }, { "label": "blackice", "value": "3375" }, { "label": "blackInter", "value": "3506" }, { "label": "Blacklight", "value": "1707" }, { "label": "Blacklotus", "value": "3366" }, { "label": "Blackmail", "value": "171" }, { "label": "blackpupil", "value": "3973" }, { "label": "blackpupil", "value": "3944" }, { "label": "blackreinc", "value": "4709" }, { "label": "blacksilkj", "value": "4014" }, { "label": "Blacksmith", "value": "379" }, { "label": "blacksoil", "value": "2144" }, { "label": "blacksword", "value": "4593" }, { "label": "blacktea", "value": "4303" }, { "label": "blackteais", "value": "3866" }, { "label": "Blacktechn", "value": "5700" }, { "label": "BladeofFal", "value": "4756" }, { "label": "blast", "value": "3966" }, { "label": "BlazingAng", "value": "5739" }, { "label": "Bleach", "value": "1123" }, { "label": "Blind", "value": "1234" }, { "label": "Blinddate", "value": "3694" }, { "label": "BlindDates", "value": "676" }, { "label": "blindnomik", "value": "4532" }, { "label": "BlindProta", "value": "481" }, { "label": "blindzhang", "value": "4139" }, { "label": "Bloodborne", "value": "1541" }, { "label": "blooddemon", "value": "2095" }, { "label": "Bloodline", "value": "1205" }, { "label": "Bloodlines", "value": "9" }, { "label": "BloodManip", "value": "534" }, { "label": "BloodMoonG", "value": "2237" }, { "label": "BloodofAni", "value": "1822" }, { "label": "Bloodpumpi", "value": "5062" }, { "label": "bloodytuna", "value": "5037" }, { "label": "bloomingon", "value": "1951" }, { "label": "blowdreamt", "value": "4598" }, { "label": "bluelight", "value": "4455" }, { "label": "bluemoonco", "value": "5966" }, { "label": "bluenight", "value": "6036" }, { "label": "bluepigeon", "value": "4837" }, { "label": "blueshirts", "value": "2192" }, { "label": "bluesilk", "value": "2832" }, { "label": "bluesilksu", "value": "2675" }, { "label": "BlueSkyDem", "value": "4495" }, { "label": "blueskyspa", "value": "5565" }, { "label": "bluestone", "value": "2206" }, { "label": "bluewaterg", "value": "4269" }, { "label": "bluewhale", "value": "4333" }, { "label": "BoboXiaolu", "value": "5479" }, { "label": "Bodhi", "value": "3661" }, { "label": "Bodhicitta", "value": "2507" }, { "label": "Body-doubl", "value": "980" }, { "label": "bodyguard", "value": "3701" }, { "label": "Bodyguards", "value": "439" }, { "label": "BodySwap", "value": "269" }, { "label": "BodyTemper", "value": "246" }, { "label": "Boiled", "value": "2793" }, { "label": "Bombardmen", "value": "5830" }, { "label": "book", "value": "1415" }, { "label": "BookDustSp", "value": "2416" }, { "label": "Books", "value": "337" }, { "label": "bookslikeu", "value": "2922" }, { "label": "Booksonthe", "value": "3907" }, { "label": "BookstoreS", "value": "2133" }, { "label": "BookTransm", "value": "947" }, { "label": "BookWearer", "value": "1153" }, { "label": "Bookworm", "value": "659" }, { "label": "Boss", "value": "2911" }, { "label": "Boss-Subor", "value": "80" }, { "label": "BOSSflow", "value": "3324" }, { "label": "BossSim", "value": "5366" }, { "label": "Botharetwo", "value": "4486" }, { "label": "bottommc", "value": "1030" }, { "label": "bouncingei", "value": "3582" }, { "label": "Boundlessf", "value": "1982" }, { "label": "BoundlessL", "value": "5622" }, { "label": "Bowandjack", "value": "5041" }, { "label": "Bowandshoo", "value": "3902" }, { "label": "BoXiaowen", "value": "2389" }, { "label": "Boxing", "value": "667" }, { "label": "boxser", "value": "4631" }, { "label": "boycold", "value": "2626" }, { "label": "Brainisuna", "value": "4509" }, { "label": "BrainJam", "value": "5588" }, { "label": "Brainwashi", "value": "396" }, { "label": "braisedfis", "value": "4839" }, { "label": "BraisedPai", "value": "2132" }, { "label": "BraisedPis", "value": "3541" }, { "label": "breakingli", "value": "1441" }, { "label": "Breakingth", "value": "2565" }, { "label": "breaktheke", "value": "2263" }, { "label": "Breakup", "value": "1344" }, { "label": "BreastFeti", "value": "974" }, { "label": "Breeze", "value": "2101" }, { "label": "Breeze&", "value": "5290" }, { "label": "breezesilv", "value": "2045" }, { "label": "Brewingflo", "value": "5909" }, { "label": "BrigadeSec", "value": "5872" }, { "label": "Brightmoon", "value": "2073" }, { "label": "Bringaknif", "value": "2643" }, { "label": "BritishEmp", "value": "1489" }, { "label": "broalwaysg", "value": "2870" }, { "label": "broken", "value": "5004" }, { "label": "brokenambi", "value": "4153" }, { "label": "BrokenDanf", "value": "5840" }, { "label": "brokendrea", "value": "5543" }, { "label": "brokendrea", "value": "4611" }, { "label": "BrokenEnga", "value": "231" }, { "label": "brokenfrui", "value": "5823" }, { "label": "brokengodo", "value": "4634" }, { "label": "brokenhear", "value": "4397" }, { "label": "brokenlitt", "value": "4580" }, { "label": "brokenmoon", "value": "4317" }, { "label": "brokenred", "value": "4677" }, { "label": "BrokenYuri", "value": "5525" }, { "label": "BronzeEndo", "value": "4135" }, { "label": "Brother", "value": "3609" }, { "label": "BrotherChe", "value": "2181" }, { "label": "BrotherCom", "value": "521" }, { "label": "Brotherhoo", "value": "570" }, { "label": "BrotherInL", "value": "4346" }, { "label": "BrotherQin", "value": "5395" }, { "label": "BrotherZhu", "value": "2227" }, { "label": "Browlin", "value": "5022" }, { "label": "Brownsugar", "value": "1866" }, { "label": "BrutalBeas", "value": "3884" }, { "label": "BTTH", "value": "1288" }, { "label": "Bubble012", "value": "5590" }, { "label": "bubblebath", "value": "4802" }, { "label": "BucketofIn", "value": "6016" }, { "label": "BuddhaofNi", "value": "3376" }, { "label": "Buddhism", "value": "442" }, { "label": "Buddhistco", "value": "4220" }, { "label": "building", "value": "5347" }, { "label": "buildingki", "value": "1764" }, { "label": "BuildKingd", "value": "1539" }, { "label": "Buildthewo", "value": "2571" }, { "label": "bulgingbel", "value": "4965" }, { "label": "Bulldozer", "value": "1614" }, { "label": "Bully", "value": "786" }, { "label": "Bullying", "value": "134" }, { "label": "BuLofan", "value": "2068" }, { "label": "BungouStra", "value": "1773" }, { "label": "BunguoStra", "value": "1381" }, { "label": "Bunnyeatse", "value": "3974" }, { "label": "Bunsaresol", "value": "4936" }, { "label": "BurningEye", "value": "4773" }, { "label": "BurningEye", "value": "4711" }, { "label": "Burningmou", "value": "2703" }, { "label": "burnout", "value": "2694" }, { "label": "Business", "value": "663" }, { "label": "BusinessDe", "value": "962" }, { "label": "BusinessEm", "value": "761" }, { "label": "businessfl", "value": "5679" }, { "label": "BusinessMa", "value": "60" }, { "label": "BusinessMa", "value": "1069" }, { "label": "Businessme", "value": "227" }, { "label": "businessor", "value": "954" }, { "label": "BusinessRi", "value": "1814" }, { "label": "Bussinesma", "value": "1514" }, { "label": "Bussiness", "value": "1450" }, { "label": "Butlers", "value": "763" }, { "label": "ButterflyD", "value": "1980" }, { "label": "Butterrice", "value": "5038" }, { "label": "BZ", "value": "4982" }, { "label": "C14H18N2O5", "value": "4693" }, { "label": "cabbagebut", "value": "5829" }, { "label": "Caicolorsh", "value": "2640" }, { "label": "callmeknig", "value": "3755" }, { "label": "callmethep", "value": "4993" }, { "label": "callthebea", "value": "2417" }, { "label": "calm", "value": "3164" }, { "label": "CalmMalePr", "value": "834" }, { "label": "CalmProtag", "value": "22" }, { "label": "camera", "value": "2004" }, { "label": "Campus", "value": "1677" }, { "label": "CampusLife", "value": "1274" }, { "label": "CampusLove", "value": "589" }, { "label": "CampusRoma", "value": "2880" }, { "label": "can&039", "value": "3927" }, { "label": "can&039", "value": "5827" }, { "label": "can&039", "value": "4944" }, { "label": "Can&039", "value": "3535" }, { "label": "Can&039", "value": "2623" }, { "label": "Can&039", "value": "2409" }, { "label": "Canbeheart", "value": "4424" }, { "label": "Cancat", "value": "2292" }, { "label": "CandiedLem", "value": "5969" }, { "label": "candlecher", "value": "4160" }, { "label": "Candleligh", "value": "4996" }, { "label": "Canepepper", "value": "3464" }, { "label": "canfly", "value": "2019" }, { "label": "CangsongTa", "value": "4681" }, { "label": "CangxueFei", "value": "2932" }, { "label": "Cannibalis", "value": "407" }, { "label": "cannonfodd", "value": "3350" }, { "label": "Canolaflow", "value": "1985" }, { "label": "Cantaloupe", "value": "2782" }, { "label": "Canteendry", "value": "2228" }, { "label": "Canyoustop", "value": "5032" }, { "label": "Caothiefne", "value": "5666" }, { "label": "Capitalism", "value": "1490" }, { "label": "captain", "value": "3290" }, { "label": "captaindra", "value": "4587" }, { "label": "Captainoft", "value": "6031" }, { "label": "carafe", "value": "6101" }, { "label": "CarambolaJ", "value": "2700" }, { "label": "Card", "value": "1379" }, { "label": "CardGames", "value": "512" }, { "label": "CardinalSa", "value": "4861" }, { "label": "cardleague", "value": "4692" }, { "label": "Cards", "value": "564" }, { "label": "CareerOrie", "value": "1061" }, { "label": "CarefreePr", "value": "121" }, { "label": "CaringMale", "value": "1553" }, { "label": "CaringProt", "value": "122" }, { "label": "Carola", "value": "4641" }, { "label": "carpenter", "value": "5453" }, { "label": "CarrotCake", "value": "5724" }, { "label": "carrotsdon", "value": "5804" }, { "label": "cartoonwil", "value": "2168" }, { "label": "CastlePeak", "value": "5559" }, { "label": "CastlePeak", "value": "5282" }, { "label": "Casual", "value": "4125" }, { "label": "Cat", "value": "5364" }, { "label": "CatCarMK2", "value": "4730" }, { "label": "catcatfrui", "value": "4881" }, { "label": "CatchaGhos", "value": "5071" }, { "label": "catchfast", "value": "3359" }, { "label": "Catchtheca", "value": "2141" }, { "label": "catchthecl", "value": "4030" }, { "label": "catdaylist", "value": "1895" }, { "label": "cateatingp", "value": "4535" }, { "label": "cateatingp", "value": "2787" }, { "label": "caterpilla", "value": "4579" }, { "label": "catgod", "value": "2470" }, { "label": "catheadsan", "value": "5741" }, { "label": "catisland", "value": "4900" }, { "label": "Catisnotat", "value": "5760" }, { "label": "catisrisin", "value": "2568" }, { "label": "catloveson", "value": "2536" }, { "label": "catontheba", "value": "4122" }, { "label": "catorange", "value": "3648" }, { "label": "catpowerfi", "value": "2624" }, { "label": "Catsandcat", "value": "5753" }, { "label": "Catswithfi", "value": "2271" }, { "label": "catthatwan", "value": "2022" }, { "label": "catthousan", "value": "2333" }, { "label": "catwatchin", "value": "5795" }, { "label": "catwithbla", "value": "5138" }, { "label": "catworship", "value": "4849" }, { "label": "cautious", "value": "3193" }, { "label": "CautiousMc", "value": "1095" }, { "label": "CautiousPr", "value": "222" }, { "label": "caviar", "value": "2131" }, { "label": "ccc", "value": "4511" }, { "label": "Celebritie", "value": "23" }, { "label": "Celebrity", "value": "880" }, { "label": "celeryeats", "value": "5563" }, { "label": "celestial", "value": "1439" }, { "label": "CelestialC", "value": "2608" }, { "label": "Celestials", "value": "799" }, { "label": "CEO", "value": "1008" }, { "label": "Ceobeisthe", "value": "3653" }, { "label": "ChainsawMa", "value": "2889" }, { "label": "championge", "value": "2368" }, { "label": "chanceenco", "value": "3631" }, { "label": "Chang&0", "value": "5949" }, { "label": "changedhea", "value": "5511" }, { "label": "Changeever", "value": "2223" }, { "label": "ChangGuxue", "value": "4118" }, { "label": "Chanyi", "value": "4305" }, { "label": "ChaoGezi", "value": "4100" }, { "label": "ChaoPrimeM", "value": "5750" }, { "label": "Chaos", "value": "1360" }, { "label": "Chaotang", "value": "3123" }, { "label": "ChaotangJi", "value": "3282" }, { "label": "chaotichea", "value": "5788" }, { "label": "chaoticwor", "value": "1882" }, { "label": "CharacterD", "value": "341" }, { "label": "CharacterG", "value": "61" }, { "label": "chargingca", "value": "3774" }, { "label": "Charismati", "value": "39" }, { "label": "Charlotte(", "value": "1041" }, { "label": "CharmingPr", "value": "520" }, { "label": "chase", "value": "3597" }, { "label": "chasingthe", "value": "2777" }, { "label": "chasingwif", "value": "3330" }, { "label": "chat", "value": "1757" }, { "label": "chat-room", "value": "1285" }, { "label": "ChatGroup", "value": "890" }, { "label": "ChatRooms", "value": "142" }, { "label": "chatter", "value": "3668" }, { "label": "Cheat", "value": "888" }, { "label": "cheating", "value": "6149" }, { "label": "Cheats", "value": "62" }, { "label": "Cheesemous", "value": "5534" }, { "label": "Cheesesnow", "value": "5478" }, { "label": "Chef", "value": "829" }, { "label": "chef&03", "value": "2097" }, { "label": "ChefEmiya", "value": "3818" }, { "label": "Chefs", "value": "260" }, { "label": "ChefSurviv", "value": "2174" }, { "label": "ChenChangf", "value": "2342" }, { "label": "ChenChen", "value": "5734" }, { "label": "ChenDashun", "value": "4608" }, { "label": "Chengnanex", "value": "4718" }, { "label": "ChengWangH", "value": "5443" }, { "label": "ChenHegao", "value": "1708" }, { "label": "ChenShiAi", "value": "3736" }, { "label": "ChenTing", "value": "6053" }, { "label": "ChenTwelve", "value": "2122" }, { "label": "ChenYibing", "value": "4566" }, { "label": "ChenZijin", "value": "5363" }, { "label": "CherryBlos", "value": "1965" }, { "label": "Chestnutca", "value": "4675" }, { "label": "chestnutch", "value": "5105" }, { "label": "ChevaRoy", "value": "6017" }, { "label": "chiccatles", "value": "4154" }, { "label": "ChicSu", "value": "4754" }, { "label": "ChiDongdon", "value": "1966" }, { "label": "chief", "value": "3699" }, { "label": "ChiefScien", "value": "3663" }, { "label": "Chika", "value": "4332" }, { "label": "child", "value": "4193" }, { "label": "ChildAbuse", "value": "393" }, { "label": "Childbirth", "value": "1074" }, { "label": "Childcare", "value": "81" }, { "label": "ChildhoodE", "value": "1622" }, { "label": "Childhoodf", "value": "3378" }, { "label": "ChildhoodF", "value": "197" }, { "label": "ChildhoodL", "value": "176" }, { "label": "ChildhoodP", "value": "588" }, { "label": "ChildhoodS", "value": "590" }, { "label": "ChildhoodS", "value": "1155" }, { "label": "ChildishPr", "value": "123" }, { "label": "ChildProta", "value": "491" }, { "label": "ChinaEnter", "value": "3549" }, { "label": "ChinaNamba", "value": "1705" }, { "label": "ChinaRefor", "value": "1357" }, { "label": "Chinese", "value": "1675" }, { "label": "ChineseAnc", "value": "1692" }, { "label": "Chinesemed", "value": "3166" }, { "label": "ChineseNov", "value": "1679" }, { "label": "ChinesePre", "value": "1303" }, { "label": "Chirika", "value": "1843" }, { "label": "Chirpingan", "value": "4872" }, { "label": "Chivalryof", "value": "1669" }, { "label": "Chiyudoesn", "value": "3874" }, { "label": "ChocolateI", "value": "1922" }, { "label": "ChoiceSele", "value": "1308" }, { "label": "Chosen12", "value": "2533" }, { "label": "chromatics", "value": "5155" }, { "label": "Chronology", "value": "1451" }, { "label": "chugong", "value": "5605" }, { "label": "Chunghwape", "value": "5200" }, { "label": "ChuningMC", "value": "1390" }, { "label": "Church", "value": "1359" }, { "label": "Chuunibyou", "value": "713" }, { "label": "ChuXiaNo.X", "value": "5573" }, { "label": "Cicadasand", "value": "2340" }, { "label": "CinderHand", "value": "5755" }, { "label": "CiShuhua", "value": "5021" }, { "label": "CitrusRoas", "value": "4533" }, { "label": "city", "value": "6130" }, { "label": "CityGod", "value": "2288" }, { "label": "CitySky1", "value": "4819" }, { "label": "city​​ya", "value": "2738" }, { "label": "civetcatat", "value": "2562" }, { "label": "civilizati", "value": "3221" }, { "label": "Civilizati", "value": "3329" }, { "label": "Civilizati", "value": "1613" }, { "label": "Civilizati", "value": "1775" }, { "label": "CivilServa", "value": "1491" }, { "label": "ClanBuildi", "value": "327" }, { "label": "ClanSectDe", "value": "1316" }, { "label": "ClassicXia", "value": "3112" }, { "label": "ClassicXia", "value": "3086" }, { "label": "ClassicXia", "value": "2946" }, { "label": "Cleaningfi", "value": "4476" }, { "label": "clear", "value": "3338" }, { "label": "clearthink", "value": "3237" }, { "label": "CleverMc", "value": "1142" }, { "label": "CleverProt", "value": "92" }, { "label": "CleverProt", "value": "373" }, { "label": "ClingyLove", "value": "297" }, { "label": "Clivia", "value": "4292" }, { "label": "Clones", "value": "644" }, { "label": "cloud-like", "value": "4976" }, { "label": "cloudmadeo", "value": "2771" }, { "label": "cloudpierc", "value": "5106" }, { "label": "Cloudseest", "value": "2047" }, { "label": "CloudSummi", "value": "2000" }, { "label": "Cloudtopfi", "value": "2092" }, { "label": "Cloudtop丨", "value": "2202" }, { "label": "CloudTop丨", "value": "2137" }, { "label": "CloudTop丨", "value": "1948" }, { "label": "cloudymoon", "value": "4674" }, { "label": "cloudysky", "value": "1926" }, { "label": "Club", "value": "1583" }, { "label": "Clubs", "value": "611" }, { "label": "Cluelessly", "value": "1322" }, { "label": "CluelessPr", "value": "1365" }, { "label": "ClumsyLove", "value": "204" }, { "label": "cluthullu", "value": "1663" }, { "label": "ClydeVirgi", "value": "6078" }, { "label": "Cnnilingus", "value": "1031" }, { "label": "Co-Workers", "value": "662" }, { "label": "coach", "value": "3553" }, { "label": "cobrasnake", "value": "4228" }, { "label": "cockroache", "value": "2726" }, { "label": "Cocoawithf", "value": "5983" }, { "label": "codegeass", "value": "1772" }, { "label": "Codeuntilt", "value": "2746" }, { "label": "CodewordG", "value": "4179" }, { "label": "codewordge", "value": "2693" }, { "label": "codewordgi", "value": "4201" }, { "label": "codewordna", "value": "4919" }, { "label": "coffeefatc", "value": "2046" }, { "label": "coffeeinst", "value": "2525" }, { "label": "coffeevi", "value": "4230" }, { "label": "coffeewith", "value": "1802" }, { "label": "Cohabitati", "value": "152" }, { "label": "CokeII", "value": "2461" }, { "label": "coldcolddo", "value": "2473" }, { "label": "coldinearl", "value": "4128" }, { "label": "ColdLoveIn", "value": "84" }, { "label": "ColdLoveIn", "value": "1106" }, { "label": "ColdMaleLe", "value": "904" }, { "label": "ColdMalePr", "value": "1033" }, { "label": "ColdNightL", "value": "2819" }, { "label": "coldnoodle", "value": "5219" }, { "label": "ColdProtag", "value": "10" }, { "label": "coldrivers", "value": "2106" }, { "label": "coldsalted", "value": "4200" }, { "label": "ColdStar&a", "value": "1871" }, { "label": "collapse", "value": "3297" }, { "label": "Collection", "value": "749" }, { "label": "College", "value": "1454" }, { "label": "CollegeorU", "value": "976" }, { "label": "CollegeStr", "value": "3095" }, { "label": "CollegeStr", "value": "2940" }, { "label": "CollegeUni", "value": "169" }, { "label": "Colonializ", "value": "1201" }, { "label": "Colonizati", "value": "858" }, { "label": "colorfasti", "value": "5006" }, { "label": "colorfulcl", "value": "4182" }, { "label": "colorless", "value": "5425" }, { "label": "Coma", "value": "105" }, { "label": "ComedicUnd", "value": "154" }, { "label": "ComedicUnd", "value": "926" }, { "label": "comedy", "value": "878" }, { "label": "Comeon", "value": "2112" }, { "label": "Comic", "value": "1567" }, { "label": "ComicMonst", "value": "6002" }, { "label": "comics", "value": "1402" }, { "label": "comics", "value": "1423" }, { "label": "ComingofAg", "value": "722" }, { "label": "Commandand", "value": "810" }, { "label": "commander", "value": "3200" }, { "label": "Commanderd", "value": "4163" }, { "label": "commemorat", "value": "5384" }, { "label": "CommonerLi", "value": "950" }, { "label": "Companies", "value": "1286" }, { "label": "Competingf", "value": "3928" }, { "label": "Competitio", "value": "1607" }, { "label": "competitiv", "value": "1422" }, { "label": "Complaint", "value": "1134" }, { "label": "Completebo", "value": "5278" }, { "label": "ComplexFam", "value": "956" }, { "label": "ComplexFam", "value": "253" }, { "label": "Complicate", "value": "1291" }, { "label": "comprehens", "value": "3190" }, { "label": "comprehens", "value": "5341" }, { "label": "comprehens", "value": "3047" }, { "label": "comprehens", "value": "3021" }, { "label": "comprehens", "value": "3003" }, { "label": "comprehens", "value": "2974" }, { "label": "Comprehens", "value": "3119" }, { "label": "Comprehens", "value": "3071" }, { "label": "Comprehens", "value": "3041" }, { "label": "Comprehens", "value": "2969" }, { "label": "Comprehens", "value": "2952" }, { "label": "Comprehens", "value": "2243" }, { "label": "Conan", "value": "5972" }, { "label": "Conan&0", "value": "4187" }, { "label": "Conanadrea", "value": "5604" }, { "label": "Conanisnot", "value": "5946" }, { "label": "ConantheTh", "value": "6113" }, { "label": "ConanXiang", "value": "3802" }, { "label": "ConchBay", "value": "5367" }, { "label": "concubine", "value": "3255" }, { "label": "Conditiona", "value": "445" }, { "label": "ConfidentP", "value": "232" }, { "label": "Confinemen", "value": "172" }, { "label": "Conflictin", "value": "541" }, { "label": "Confuciani", "value": "3384" }, { "label": "confusedfi", "value": "5637" }, { "label": "conquer", "value": "1414" }, { "label": "Conquer", "value": "5059" }, { "label": "Conservati", "value": "4001" }, { "label": "Conspiracy", "value": "3435" }, { "label": "Conspirati", "value": "1515" }, { "label": "Constructi", "value": "1113" }, { "label": "Contagonis", "value": "1709" }, { "label": "contempora", "value": "1400" }, { "label": "Contendfor", "value": "3093" }, { "label": "Contest", "value": "5699" }, { "label": "Contract", "value": "1163" }, { "label": "contractlo", "value": "3600" }, { "label": "ContractLo", "value": "952" }, { "label": "contractma", "value": "3134" }, { "label": "contractma", "value": "2959" }, { "label": "Contracts", "value": "294" }, { "label": "Contrastcu", "value": "3455" }, { "label": "cook", "value": "3317" }, { "label": "Cooking", "value": "161" }, { "label": "coolandhan", "value": "3735" }, { "label": "Coolchubby", "value": "5918" }, { "label": "coolinocto", "value": "4383" }, { "label": "CoolMc", "value": "1050" }, { "label": "coolmeowma", "value": "5101" }, { "label": "CoolText", "value": "1190" }, { "label": "corgishort", "value": "3502" }, { "label": "cornisripe", "value": "4109" }, { "label": "cornjuice", "value": "2815" }, { "label": "CorpseFrag", "value": "2663" }, { "label": "Corruption", "value": "408" }, { "label": "CosmicChar", "value": "4990" }, { "label": "CosmicHorr", "value": "1248" }, { "label": "CosmicWars", "value": "338" }, { "label": "Cosplay", "value": "726" }, { "label": "cosplaystr", "value": "3551" }, { "label": "Counteratt", "value": "1619" }, { "label": "Couple", "value": "3309" }, { "label": "CoupleGrow", "value": "153" }, { "label": "CourtOffic", "value": "594" }, { "label": "Cousins", "value": "683" }, { "label": "coverthesu", "value": "1834" }, { "label": "CowardlyPr", "value": "290" }, { "label": "coyote", "value": "1984" }, { "label": "CP", "value": "3331" }, { "label": "crackedegg", "value": "4085" }, { "label": "Crafting", "value": "374" }, { "label": "crashreinc", "value": "6110" }, { "label": "Crayfishan", "value": "4958" }, { "label": "Crazy&0", "value": "5406" }, { "label": "crazydream", "value": "3829" }, { "label": "Crazyforam", "value": "2224" }, { "label": "Crazylittl", "value": "6064" }, { "label": "CrazyProta", "value": "1249" }, { "label": "CrazySanMe", "value": "4578" }, { "label": "crazysquid", "value": "3652" }, { "label": "Crazystory", "value": "2403" }, { "label": "createpreh", "value": "4052" }, { "label": "Creation", "value": "1251" }, { "label": "Creator", "value": "1549" }, { "label": "Creatures", "value": "526" }, { "label": "Crime", "value": "440" }, { "label": "crimesolvi", "value": "3733" }, { "label": "Criminalin", "value": "3185" }, { "label": "Criminals", "value": "173" }, { "label": "Criminolog", "value": "832" }, { "label": "CrimsonFir", "value": "4866" }, { "label": "CrimsonMoo", "value": "4746" }, { "label": "crimsonsku", "value": "4076" }, { "label": "crookeddoo", "value": "2772" }, { "label": "CrookedPay", "value": "3798" }, { "label": "Cross", "value": "3090" }, { "label": "Cross-dres", "value": "155" }, { "label": "Cross1V1HE", "value": "2996" }, { "label": "Cross1V1st", "value": "3072" }, { "label": "CrossChatg", "value": "3066" }, { "label": "CrossCount", "value": "2947" }, { "label": "Crossdress", "value": "1087" }, { "label": "Crossevery", "value": "2944" }, { "label": "Crossfarmi", "value": "5323" }, { "label": "Crossfarmi", "value": "3007" }, { "label": "Crossfarmi", "value": "2973" }, { "label": "Crossgeniu", "value": "2963" }, { "label": "CrossGiant", "value": "5307" }, { "label": "CrossGoldf", "value": "2971" }, { "label": "Crossing", "value": "2901" }, { "label": "CrossInvin", "value": "3064" }, { "label": "CrossInvin", "value": "2953" }, { "label": "CrossInvin", "value": "2939" }, { "label": "Crossmanyf", "value": "3038" }, { "label": "Crossmarti", "value": "2980" }, { "label": "Crossmarti", "value": "2955" }, { "label": "CrossMengB", "value": "3005" }, { "label": "Crossopeni", "value": "2965" }, { "label": "Crossover", "value": "492" }, { "label": "CrossOverh", "value": "5319" }, { "label": "CrossRebir", "value": "5344" }, { "label": "CrossRebir", "value": "3070" }, { "label": "CrossRebir", "value": "3001" }, { "label": "CrossRebir", "value": "2951" }, { "label": "CrossRelax", "value": "3004" }, { "label": "Crossshort", "value": "2991" }, { "label": "CrossSlapC", "value": "2956" }, { "label": "Crosssweet", "value": "3027" }, { "label": "Crosssyste", "value": "3088" }, { "label": "Crosssyste", "value": "3058" }, { "label": "Crosssyste", "value": "3000" }, { "label": "Crosstalka", "value": "3122" }, { "label": "Crosswar", "value": "3044" }, { "label": "Cross空间O", "value": "3084" }, { "label": "Cross空间u", "value": "2968" }, { "label": "crowastron", "value": "5283" }, { "label": "crowmouth", "value": "3552" }, { "label": "Cruel", "value": "2920" }, { "label": "CruelChara", "value": "42" }, { "label": "Crush", "value": "5674" }, { "label": "Cryostasis", "value": "741" }, { "label": "Cthulhu", "value": "1542" }, { "label": "CubRaising", "value": "916" }, { "label": "cuckoobunn", "value": "4005" }, { "label": "CuckooChen", "value": "5302" }, { "label": "cucumber", "value": "4741" }, { "label": "CucumberHa", "value": "1916" }, { "label": "cultivatio", "value": "1417" }, { "label": "Cultivatio", "value": "63" }, { "label": "Cultivatio", "value": "3790" }, { "label": "Cultivatio", "value": "3417" }, { "label": "Cultivator", "value": "1361" }, { "label": "cunning", "value": "2897" }, { "label": "cunningfem", "value": "1232" }, { "label": "cunningmc", "value": "1759" }, { "label": "CunningPro", "value": "164" }, { "label": "CunningPro", "value": "1568" }, { "label": "Cupola", "value": "2802" }, { "label": "cure", "value": "3251" }, { "label": "curechildr", "value": "3789" }, { "label": "CuredChick", "value": "5860" }, { "label": "CuriousPro", "value": "261" }, { "label": "Curse", "value": "785" }, { "label": "Curses", "value": "528" }, { "label": "Cute", "value": "1658" }, { "label": "CuteChild", "value": "1452" }, { "label": "CuteChildr", "value": "224" }, { "label": "cuteflower", "value": "6047" }, { "label": "cutegrapef", "value": "2149" }, { "label": "cutelittle", "value": "5793" }, { "label": "Cutelittle", "value": "6019" }, { "label": "cutelovein", "value": "2875" }, { "label": "CuteMaleLe", "value": "1522" }, { "label": "Cutemeow-c", "value": "6121" }, { "label": "CutePet", "value": "1731" }, { "label": "cutepomelo", "value": "2760" }, { "label": "CuteProtag", "value": "124" }, { "label": "CuteProtag", "value": "1517" }, { "label": "cuteshadow", "value": "1972" }, { "label": "CuteStory", "value": "125" }, { "label": "cutewhite", "value": "4978" }, { "label": "Cutthelone", "value": "3647" }, { "label": "cutthrough", "value": "4196" }, { "label": "Cyberpunk", "value": "3294" }, { "label": "cyclingwin", "value": "6074" }, { "label": "Cyclospori", "value": "5429" }, { "label": "cynicism", "value": "3456" }, { "label": "D", "value": "4194" }, { "label": "DaDaping", "value": "5235" }, { "label": "Daddywants", "value": "2432" }, { "label": "dagougou", "value": "2513" }, { "label": "Dahuaisjea", "value": "4682" }, { "label": "Dahunjun", "value": "2345" }, { "label": "Dailyupdat", "value": "5579" }, { "label": "Dailyupdat", "value": "4133" }, { "label": "DaluoGod&a", "value": "5353" }, { "label": "DamingComi", "value": "4068" }, { "label": "DamingYong", "value": "2162" }, { "label": "Dancers", "value": "380" }, { "label": "dancetofig", "value": "1955" }, { "label": "dandy", "value": "3159" }, { "label": "DangeYihe", "value": "5143" }, { "label": "DanMachi", "value": "1636" }, { "label": "Danmei", "value": "758" }, { "label": "DanMing", "value": "5783" }, { "label": "DaoCompani", "value": "417" }, { "label": "DaoCompreh", "value": "583" }, { "label": "DaoguangEt", "value": "6022" }, { "label": "Daoism", "value": "444" }, { "label": "DaoyanShen", "value": "2188" }, { "label": "DaqingXiao", "value": "2238" }, { "label": "DaqinTombR", "value": "5541" }, { "label": "Dark", "value": "319" }, { "label": "DarkDeatho", "value": "574" }, { "label": "DarkFantas", "value": "922" }, { "label": "DarkFaust", "value": "5902" }, { "label": "darkfriedg", "value": "4729" }, { "label": "darknight", "value": "1879" }, { "label": "darkpirate", "value": "1816" }, { "label": "DarkPower", "value": "1363" }, { "label": "Dashuaihen", "value": "2423" }, { "label": "DatangDaqi", "value": "2366" }, { "label": "DatangDaqi", "value": "1938" }, { "label": "DatangErwu", "value": "1991" }, { "label": "Datanggodo", "value": "3620" }, { "label": "Datangpota", "value": "2845" }, { "label": "Datangstyl", "value": "4143" }, { "label": "Datangsupe", "value": "2003" }, { "label": "Daughter", "value": "1145" }, { "label": "daughterco", "value": "2084" }, { "label": "Daughterof", "value": "3893" }, { "label": "Dawn&03", "value": "5665" }, { "label": "Daybyday", "value": "2545" }, { "label": "Dayefire", "value": "5726" }, { "label": "Dayfestiva", "value": "3480" }, { "label": "DayKunpeng", "value": "3517" }, { "label": "DC", "value": "835" }, { "label": "dcc98", "value": "5619" }, { "label": "dd", "value": "5822" }, { "label": "deadfatfas", "value": "2318" }, { "label": "deadfishda", "value": "5359" }, { "label": "DeadProtag", "value": "723" }, { "label": "Deadwoodwa", "value": "6109" }, { "label": "Death", "value": "194" }, { "label": "DeathofDae", "value": "4172" }, { "label": "DeathofLov", "value": "64" }, { "label": "Debts", "value": "515" }, { "label": "Decadeligh", "value": "1958" }, { "label": "decayingro", "value": "5501" }, { "label": "Decisive", "value": "3012" }, { "label": "DecisiveMc", "value": "4335" }, { "label": "deepbluese", "value": "1975" }, { "label": "deepdream", "value": "5257" }, { "label": "DeepLTrans", "value": "1371" }, { "label": "deepsea", "value": "5551" }, { "label": "deepseadiv", "value": "3545" }, { "label": "Dejarimi", "value": "4683" }, { "label": "Delinquent", "value": "247" }, { "label": "Delusions", "value": "640" }, { "label": "Demi-Human", "value": "430" }, { "label": "Demon", "value": "1230" }, { "label": "Demondomai", "value": "2406" }, { "label": "DemonHunte", "value": "5175" }, { "label": "DemonicCul", "value": "395" }, { "label": "DemonInvas", "value": "2218" }, { "label": "DemonKing", "value": "2690" }, { "label": "DemonKingL", "value": "5847" }, { "label": "DemonLord", "value": "218" }, { "label": "DemonPower", "value": "3560" }, { "label": "Demons", "value": "219" }, { "label": "DemonsFami", "value": "1108" }, { "label": "DemonSlaye", "value": "1124" }, { "label": "DenseProta", "value": "65" }, { "label": "Depictions", "value": "156" }, { "label": "Depictions", "value": "1221" }, { "label": "Depression", "value": "303" }, { "label": "derivative", "value": "3388" }, { "label": "desertsalt", "value": "3724" }, { "label": "desertspri", "value": "5596" }, { "label": "Designer", "value": "3385" }, { "label": "Desperate", "value": "3503" }, { "label": "desperatec", "value": "5350" }, { "label": "Desperatel", "value": "2354" }, { "label": "DestinedLo", "value": "1531" }, { "label": "Destiny", "value": "342" }, { "label": "DestinyDra", "value": "6029" }, { "label": "Destituteh", "value": "4053" }, { "label": "Destroyerf", "value": "2309" }, { "label": "Detective", "value": "935" }, { "label": "DetectiveC", "value": "1347" }, { "label": "Detectiver", "value": "3223" }, { "label": "Detectives", "value": "180" }, { "label": "Determined", "value": "1143" }, { "label": "Determined", "value": "165" }, { "label": "Develop", "value": "3246" }, { "label": "Deviationo", "value": "5280" }, { "label": "Devil", "value": "5081" }, { "label": "devilcrayf", "value": "4956" }, { "label": "Devils", "value": "800" }, { "label": "Devilveget", "value": "2293" }, { "label": "DevilWarri", "value": "4953" }, { "label": "DevotedCou", "value": "1776" }, { "label": "Devotedlov", "value": "1735" }, { "label": "DevotedLov", "value": "24" }, { "label": "Diabloisno", "value": "5912" }, { "label": "Dianhuo", "value": "4439" }, { "label": "DianZhongD", "value": "5437" }, { "label": "Didicat", "value": "3742" }, { "label": "DidiDidi", "value": "5607" }, { "label": "DifferentS", "value": "136" }, { "label": "differentw", "value": "1367" }, { "label": "difficulty", "value": "4799" }, { "label": "Diga", "value": "2554" }, { "label": "DiggingtoS", "value": "866" }, { "label": "Digigod", "value": "5582" }, { "label": "Digimon", "value": "1767" }, { "label": "digitalold", "value": "2021" }, { "label": "DigJueJi", "value": "5370" }, { "label": "digthreefe", "value": "2598" }, { "label": "Dikabenka", "value": "2549" }, { "label": "dimensiona", "value": "2879" }, { "label": "Dining", "value": "3181" }, { "label": "Dinosaurs", "value": "1122" }, { "label": "Diplomacy", "value": "1103" }, { "label": "Diplomats", "value": "1492" }, { "label": "directdaug", "value": "3162" }, { "label": "Director", "value": "1192" }, { "label": "Dirge", "value": "4943" }, { "label": "dirtyadmir", "value": "4174" }, { "label": "dirtylittl", "value": "2739" }, { "label": "Disabiliti", "value": "263" }, { "label": "disability", "value": "5045" }, { "label": "DisabledPr", "value": "1693" }, { "label": "DiscipleLo", "value": "1377" }, { "label": "DiscipleTr", "value": "1318" }, { "label": "discordbir", "value": "3860" }, { "label": "Discrimina", "value": "504" }, { "label": "Disfigurem", "value": "634" }, { "label": "Disguiseas", "value": "3245" }, { "label": "DishonestP", "value": "516" }, { "label": "disillusio", "value": "5536" }, { "label": "Disobedien", "value": "1630" }, { "label": "distantsky", "value": "4225" }, { "label": "Distrustfu", "value": "542" }, { "label": "Divination", "value": "535" }, { "label": "Divination", "value": "678" }, { "label": "DivineBook", "value": "2863" }, { "label": "DivineProt", "value": "984" }, { "label": "divineradi", "value": "5848" }, { "label": "divinesign", "value": "1804" }, { "label": "Divorce", "value": "44" }, { "label": "DND", "value": "3199" }, { "label": "Doctor", "value": "1236" }, { "label": "DoctorData", "value": "2657" }, { "label": "Doctors", "value": "25" }, { "label": "doctorstre", "value": "3165" }, { "label": "Dodosaurus", "value": "6082" }, { "label": "DoDumbbell", "value": "5738" }, { "label": "Dog", "value": "1749" }, { "label": "Dogcarp", "value": "3644" }, { "label": "dogeggsold", "value": "2468" }, { "label": "DoingBusin", "value": "1716" }, { "label": "Dollsister", "value": "2250" }, { "label": "DollsPuppe", "value": "212" }, { "label": "DomesticAf", "value": "414" }, { "label": "Dominator", "value": "1503" }, { "label": "Domineerin", "value": "4555" }, { "label": "Domineerin", "value": "2912" }, { "label": "Don’taske", "value": "6049" }, { "label": "don’tgowi", "value": "5916" }, { "label": "don&039", "value": "6056" }, { "label": "don&039", "value": "5671" }, { "label": "don&039", "value": "5490" }, { "label": "don&039", "value": "5206" }, { "label": "don&039", "value": "4901" }, { "label": "don&039", "value": "4878" }, { "label": "don&039", "value": "3880" }, { "label": "don&039", "value": "3624" }, { "label": "don&039", "value": "3496" }, { "label": "don&039", "value": "2055" }, { "label": "don&039", "value": "1968" }, { "label": "Don&039", "value": "4457" }, { "label": "Don&039", "value": "2861" }, { "label": "DongfangYu", "value": "5483" }, { "label": "Dongfengbu", "value": "4363" }, { "label": "DongmenSno", "value": "3941" }, { "label": "Donotbecon", "value": "2566" }, { "label": "Donotforge", "value": "2573" }, { "label": "Donothinga", "value": "3934" }, { "label": "Doodle", "value": "4130" }, { "label": "Doomdays", "value": "1532" }, { "label": "Doomsday", "value": "1080" }, { "label": "Doomsdaywa", "value": "2635" }, { "label": "door", "value": "3451" }, { "label": "doppelgang", "value": "1010" }, { "label": "Doraemon", "value": "2890" }, { "label": "dotingfami", "value": "1372" }, { "label": "dotinghusb", "value": "1396" }, { "label": "dotinglove", "value": "1373" }, { "label": "DotingLove", "value": "26" }, { "label": "DotingOlde", "value": "177" }, { "label": "DotingPare", "value": "178" }, { "label": "DotingPare", "value": "830" }, { "label": "DotingSibl", "value": "1664" }, { "label": "Dotingwife", "value": "3267" }, { "label": "doublebirt", "value": "3341" }, { "label": "doublebirt", "value": "5320" }, { "label": "Doublebusi", "value": "3313" }, { "label": "DoubleLife", "value": "1185" }, { "label": "doublepupp", "value": "5950" }, { "label": "DoubleRebi", "value": "1227" }, { "label": "Doujin", "value": "1293" }, { "label": "Doujinghos", "value": "4562" }, { "label": "Doujinshi", "value": "5675" }, { "label": "Doujipin", "value": "6147" }, { "label": "DoulouDalu", "value": "1038" }, { "label": "Douluo", "value": "2917" }, { "label": "DouluoDalu", "value": "326" }, { "label": "DouluoDolu", "value": "836" }, { "label": "Doupo", "value": "837" }, { "label": "DoupoBTTH", "value": "826" }, { "label": "DouroConti", "value": "3182" }, { "label": "DouroConti", "value": "2992" }, { "label": "DouTuKing", "value": "2051" }, { "label": "doyoueator", "value": "2295" }, { "label": "doyouseemy", "value": "5216" }, { "label": "Doyouunder", "value": "5595" }, { "label": "Doyouwanta", "value": "4007" }, { "label": "doyouwantc", "value": "2856" }, { "label": "Dr.lifeadj", "value": "5790" }, { "label": "Dragon", "value": "1005" }, { "label": "dragon-eat", "value": "2397" }, { "label": "dragon&", "value": "5392" }, { "label": "DragonandL", "value": "2672" }, { "label": "dragonball", "value": "5649" }, { "label": "dragonball", "value": "5256" }, { "label": "DragonBall", "value": "1309" }, { "label": "DragonBall", "value": "5183" }, { "label": "DragonBall", "value": "2289" }, { "label": "DragonButt", "value": "3919" }, { "label": "dragongodd", "value": "5377" }, { "label": "DragonKing", "value": "4459" }, { "label": "DragonLord", "value": "5160" }, { "label": "DragonPala", "value": "2005" }, { "label": "DragonPowe", "value": "3561" }, { "label": "DragonRide", "value": "308" }, { "label": "Dragons", "value": "310" }, { "label": "DragonSlay", "value": "309" }, { "label": "DragonWarr", "value": "3992" }, { "label": "dragracing", "value": "1934" }, { "label": "Drama", "value": "885" }, { "label": "drawing123", "value": "4494" }, { "label": "drawTangpe", "value": "4552" }, { "label": "Dream", "value": "606" }, { "label": "Dream101", "value": "3575" }, { "label": "dreamblizz", "value": "2812" }, { "label": "dreambysta", "value": "4597" }, { "label": "dreamcatch", "value": "2857" }, { "label": "dreamglaze", "value": "3864" }, { "label": "dreamintot", "value": "2410" }, { "label": "dreamleave", "value": "1797" }, { "label": "dreamnine", "value": "4453" }, { "label": "dreamofmak", "value": "4120" }, { "label": "Dreamofthe", "value": "2153" }, { "label": "Dreams", "value": "494" }, { "label": "dreamstarr", "value": "5187" }, { "label": "Dreamstrin", "value": "5938" }, { "label": "dreamtogot", "value": "3981" }, { "label": "DriedRadis", "value": "5265" }, { "label": "driftingra", "value": "5134" }, { "label": "DriftwoodD", "value": "2514" }, { "label": "Drinkingam", "value": "4698" }, { "label": "drinkmorew", "value": "5139" }, { "label": "drinkupLan", "value": "3479" }, { "label": "DrivingAdv", "value": "3651" }, { "label": "DrivingHok", "value": "4591" }, { "label": "Drugs", "value": "543" }, { "label": "Druids", "value": "506" }, { "label": "Drunkencat", "value": "4416" }, { "label": "Drunklifed", "value": "2835" }, { "label": "Drunkmeet", "value": "4635" }, { "label": "DrunkMoonS", "value": "5113" }, { "label": "Drunktime", "value": "5165" }, { "label": "dryday", "value": "4093" }, { "label": "DualCultiv", "value": "5095" }, { "label": "Duaninksto", "value": "5850" }, { "label": "DuckMantou", "value": "5494" }, { "label": "DumbProtag", "value": "1071" }, { "label": "dungeon", "value": "1354" }, { "label": "DungeonMas", "value": "742" }, { "label": "Dungeons", "value": "632" }, { "label": "DurianGras", "value": "3994" }, { "label": "dustpatter", "value": "4487" }, { "label": "DustRainMa", "value": "5267" }, { "label": "Dwarf", "value": "1559" }, { "label": "Dwarfs", "value": "311" }, { "label": "Dwarves", "value": "783" }, { "label": "dwatermelo", "value": "3899" }, { "label": "DXNTotoro", "value": "5040" }, { "label": "DyeingBais", "value": "5191" }, { "label": "Dynasty", "value": "3436" }, { "label": "Dystopia", "value": "618" }, { "label": "e-Sports", "value": "275" }, { "label": "EagleRoadC", "value": "5771" }, { "label": "EarlyRoman", "value": "2" }, { "label": "EarthInvas", "value": "712" }, { "label": "eartwarmin", "value": "3564" }, { "label": "easternfan", "value": "693" }, { "label": "EasternSet", "value": "998" }, { "label": "EasyGoingL", "value": "434" }, { "label": "Easygoingp", "value": "1557" }, { "label": "Eat", "value": "3311" }, { "label": "Eatasteril", "value": "3850" }, { "label": "Eatchicken", "value": "3704" }, { "label": "eatfeet", "value": "4964" }, { "label": "eatfishdon", "value": "3658" }, { "label": "EatingBroa", "value": "1631" }, { "label": "eatingmeat", "value": "4421" }, { "label": "eatmoremea", "value": "5614" }, { "label": "Eatsmallto", "value": "5292" }, { "label": "Eccentricp", "value": "1596" }, { "label": "Ecchi", "value": "5085" }, { "label": "Economics", "value": "505" }, { "label": "EconomicsE", "value": "738" }, { "label": "Ecstasy", "value": "4771" }, { "label": "edgecoatin", "value": "4277" }, { "label": "Editors", "value": "575" }, { "label": "Effort", "value": "3356" }, { "label": "Eggpie", "value": "2180" }, { "label": "Eggplantan", "value": "2792" }, { "label": "Egoist", "value": "5451" }, { "label": "EideticMem", "value": "397" }, { "label": "Eight-star", "value": "3858" }, { "label": "Eighteence", "value": "2925" }, { "label": "EighteenRa", "value": "4751" }, { "label": "eighteight", "value": "4541" }, { "label": "eighthundr", "value": "4609" }, { "label": "Eightswast", "value": "4185" }, { "label": "eincarnate", "value": "789" }, { "label": "ElderlyPro", "value": "776" }, { "label": "electricia", "value": "1769" }, { "label": "electricmo", "value": "2628" }, { "label": "elegantlit", "value": "4184" }, { "label": "elemental", "value": "4350" }, { "label": "Elementali", "value": "1006" }, { "label": "ElementalM", "value": "398" }, { "label": "Elf", "value": "1296" }, { "label": "Elfcold", "value": "1905" }, { "label": "Elite", "value": "1268" }, { "label": "Elves", "value": "354" }, { "label": "elvesandgh", "value": "5689" }, { "label": "Elvish", "value": "3247" }, { "label": "EmbraceofL", "value": "6095" }, { "label": "Emotionall", "value": "381" }, { "label": "Emotionles", "value": "3910" }, { "label": "Emperialpo", "value": "1513" }, { "label": "emperor", "value": "3411" }, { "label": "EmperorCha", "value": "2867" }, { "label": "emperorstr", "value": "3143" }, { "label": "EmperorYao", "value": "1937" }, { "label": "Empire", "value": "1202" }, { "label": "EmpireBuil", "value": "859" }, { "label": "Empires", "value": "437" }, { "label": "Empress", "value": "3257" }, { "label": "empressfem", "value": "5047" }, { "label": "emptydream", "value": "5275" }, { "label": "emptyempty", "value": "5900" }, { "label": "emptyhate", "value": "4132" }, { "label": "emptymind", "value": "4440" }, { "label": "emptymonol", "value": "2407" }, { "label": "emptystard", "value": "4101" }, { "label": "EndlessSha", "value": "4883" }, { "label": "Endlesswin", "value": "6061" }, { "label": "EndoftheWo", "value": "5177" }, { "label": "EndoftheWo", "value": "2500" }, { "label": "EnemiesBec", "value": "195" }, { "label": "EnemiesBec", "value": "213" }, { "label": "enemiestol", "value": "1771" }, { "label": "enemy", "value": "3296" }, { "label": "EnemytoLov", "value": "1623" }, { "label": "EnemytoLov", "value": "1156" }, { "label": "Engage", "value": "3283" }, { "label": "engageinba", "value": "2674" }, { "label": "Engagement", "value": "655" }, { "label": "Engineer", "value": "697" }, { "label": "Enlightenm", "value": "577" }, { "label": "Entertaime", "value": "1164" }, { "label": "Entertaini", "value": "2460" }, { "label": "entertainm", "value": "4637" }, { "label": "entertainm", "value": "2783" }, { "label": "entertainm", "value": "2593" }, { "label": "entertainm", "value": "1699" }, { "label": "Entertainm", "value": "228" }, { "label": "Entertainm", "value": "874" }, { "label": "Entertainm", "value": "6122" }, { "label": "Entertainm", "value": "5327" }, { "label": "Entertainm", "value": "5284" }, { "label": "Entertainm", "value": "3083" }, { "label": "Entertainm", "value": "3060" }, { "label": "Entertainm", "value": "3037" }, { "label": "Entertainm", "value": "3030" }, { "label": "Entertainm", "value": "2961" }, { "label": "Entertainm", "value": "879" }, { "label": "epicfantas", "value": "5712" }, { "label": "Episodic", "value": "157" }, { "label": "Ergouzi&am", "value": "5185" }, { "label": "Erhuowon’", "value": "5919" }, { "label": "ErieShaggy", "value": "3948" }, { "label": "Eroticmeow", "value": "4404" }, { "label": "Erwazi", "value": "2776" }, { "label": "escapemarr", "value": "3613" }, { "label": "Eschatolog", "value": "3183" }, { "label": "Eschatolog", "value": "5340" }, { "label": "Eschatolog", "value": "5315" }, { "label": "Eschatolog", "value": "3074" }, { "label": "Eschatolog", "value": "3002" }, { "label": "Esper", "value": "5889" }, { "label": "ESports", "value": "5676" }, { "label": "Essencedre", "value": "3477" }, { "label": "EternalLif", "value": "5159" }, { "label": "eternallor", "value": "3767" }, { "label": "eternalsta", "value": "4320" }, { "label": "eternityor", "value": "2457" }, { "label": "Eunuch", "value": "343" }, { "label": "EunuchJinr", "value": "1830" }, { "label": "Europe", "value": "3334" }, { "label": "EuropeanAm", "value": "457" }, { "label": "EuropeanAm", "value": "946" }, { "label": "Europeanem", "value": "4188" }, { "label": "Europeansd", "value": "4738" }, { "label": "evengod", "value": "5768" }, { "label": "eveningdog", "value": "3979" }, { "label": "Eveningwin", "value": "4594" }, { "label": "evensuture", "value": "3523" }, { "label": "Evergrande", "value": "2708" }, { "label": "Evergrande", "value": "2352" }, { "label": "everlastin", "value": "2678" }, { "label": "EvernightB", "value": "4589" }, { "label": "everydayfi", "value": "2502" }, { "label": "everydayla", "value": "3097" }, { "label": "everydayla", "value": "3079" }, { "label": "Everyonewh", "value": "4199" }, { "label": "Everyyear", "value": "3761" }, { "label": "Evil", "value": "808" }, { "label": "Evil-prota", "value": "1479" }, { "label": "EvilCharac", "value": "1250" }, { "label": "evildoer", "value": "3310" }, { "label": "EvilGod", "value": "1058" }, { "label": "EvilGods", "value": "333" }, { "label": "evilking", "value": "5114" }, { "label": "EvilOrgani", "value": "66" }, { "label": "EvilOrgani", "value": "1386" }, { "label": "EvilProtag", "value": "382" }, { "label": "EvilReligi", "value": "529" }, { "label": "EvilSpirit", "value": "5070" }, { "label": "EvilSprits", "value": "1712" }, { "label": "evolution", "value": "1403" }, { "label": "Evolution", "value": "339" }, { "label": "evolutiona", "value": "5703" }, { "label": "Ex-girlfri", "value": "1534" }, { "label": "excellentp", "value": "3851" }, { "label": "ExcerptKin", "value": "4425" }, { "label": "exes", "value": "1752" }, { "label": "Exhaustion", "value": "3847" }, { "label": "Exhibition", "value": "1036" }, { "label": "Exorcism", "value": "468" }, { "label": "Exorcist", "value": "1193" }, { "label": "Experience", "value": "1334" }, { "label": "Explodethe", "value": "4945" }, { "label": "Exposurefl", "value": "3137" }, { "label": "Extraordin", "value": "1603" }, { "label": "ExtremeAng", "value": "4809" }, { "label": "Extremelyi", "value": "2240" }, { "label": "eyepower", "value": "1383" }, { "label": "EyePowers", "value": "351" }, { "label": "Faceslap", "value": "1620" }, { "label": "FaceSlappi", "value": "914" }, { "label": "FahaiInvin", "value": "2660" }, { "label": "Fahaiunder", "value": "2251" }, { "label": "faintpenan", "value": "3501" }, { "label": "Fairies", "value": "584" }, { "label": "Fairy", "value": "3546" }, { "label": "fairygirlf", "value": "2480" }, { "label": "Fairyrefer", "value": "3619" }, { "label": "FairySword", "value": "1974" }, { "label": "FairyTail", "value": "1023" }, { "label": "fairytailb", "value": "5583" }, { "label": "FairyTailR", "value": "4137" }, { "label": "Fairy丨Pin", "value": "1824" }, { "label": "Fairy丨San", "value": "3946" }, { "label": "Fairy丨Xiy", "value": "5656" }, { "label": "fakegod", "value": "2555" }, { "label": "FaketoReal", "value": "953" }, { "label": "FallenAnge", "value": "596" }, { "label": "Fallenleav", "value": "2108" }, { "label": "FallenNobi", "value": "524" }, { "label": "FallenWing", "value": "2767" }, { "label": "FallingRai", "value": "1946" }, { "label": "fallinlove", "value": "4145" }, { "label": "fallintoth", "value": "2813" }, { "label": "Faloo", "value": "1304" }, { "label": "FamilialLo", "value": "291" }, { "label": "Familiars", "value": "780" }, { "label": "FamillialL", "value": "1204" }, { "label": "Family", "value": "148" }, { "label": "FamilyBuil", "value": "854" }, { "label": "FamilyBusi", "value": "459" }, { "label": "FamilyConf", "value": "248" }, { "label": "familylife", "value": "1591" }, { "label": "FamilyLove", "value": "1676" }, { "label": "famous", "value": "3427" }, { "label": "famouscoup", "value": "1662" }, { "label": "Famousdete", "value": "1918" }, { "label": "FamousPare", "value": "627" }, { "label": "FamousProt", "value": "383" }, { "label": "Fan-fictio", "value": "183" }, { "label": "Fanaticism", "value": "710" }, { "label": "fancywords", "value": "5935" }, { "label": "Fanderivat", "value": "6145" }, { "label": "fanfic", "value": "1424" }, { "label": "Fanfic", "value": "1194" }, { "label": "Fanfiction", "value": "184" }, { "label": "FanFicton", "value": "1545" }, { "label": "FangQingya", "value": "2374" }, { "label": "FanJiu", "value": "2272" }, { "label": "fanofstar", "value": "2728" }, { "label": "fanqienove", "value": "5009" }, { "label": "Fanqin", "value": "4950" }, { "label": "FantaCola", "value": "2265" }, { "label": "fantasticf", "value": "5708" }, { "label": "Fantastico", "value": "5570" }, { "label": "Fantasy", "value": "391" }, { "label": "Fantasybos", "value": "2496" }, { "label": "FantasyCre", "value": "362" }, { "label": "FantasyCre", "value": "4343" }, { "label": "Fantasyfut", "value": "1753" }, { "label": "fantasyhis", "value": "3439" }, { "label": "FantasyJi", "value": "5997" }, { "label": "FantasyMag", "value": "532" }, { "label": "fantasyspa", "value": "6136" }, { "label": "FantasyWor", "value": "277" }, { "label": "Fantian36L", "value": "6118" }, { "label": "faraway", "value": "4607" }, { "label": "Farm", "value": "1654" }, { "label": "Farmer", "value": "3196" }, { "label": "farmgate", "value": "3160" }, { "label": "Farming", "value": "229" }, { "label": "farmingsys", "value": "3067" }, { "label": "FarmingTex", "value": "1218" }, { "label": "Farmingthr", "value": "5485" }, { "label": "FastCultiv", "value": "67" }, { "label": "FastGrowth", "value": "1264" }, { "label": "FastLearne", "value": "68" }, { "label": "fastpaced", "value": "3144" }, { "label": "fasttravel", "value": "4348" }, { "label": "fastwear", "value": "3146" }, { "label": "fastwear1V", "value": "5330" }, { "label": "fastwear1V", "value": "3063" }, { "label": "fastwearCo", "value": "3028" }, { "label": "fastwearIn", "value": "5305" }, { "label": "FastWearin", "value": "1466" }, { "label": "fastwearNo", "value": "5310" }, { "label": "fastwearPr", "value": "3081" }, { "label": "fastwearRe", "value": "2960" }, { "label": "fastwearst", "value": "3061" }, { "label": "fastwearsw", "value": "5346" }, { "label": "fatcatunde", "value": "4099" }, { "label": "Fatcatwhow", "value": "5441" }, { "label": "FatDiddy", "value": "2594" }, { "label": "FatDragonJ", "value": "5767" }, { "label": "fate", "value": "4488" }, { "label": "Fate90degr", "value": "5287" }, { "label": "FatedLover", "value": "272" }, { "label": "fatedxd", "value": "1404" }, { "label": "FateSeries", "value": "1585" }, { "label": "Fatestayni", "value": "3419" }, { "label": "Father", "value": "1146" }, { "label": "FatHouseDu", "value": "4328" }, { "label": "Fathouselo", "value": "5647" }, { "label": "fatmanoffa", "value": "2060" }, { "label": "Fatmeowdoe", "value": "4556" }, { "label": "fatorange", "value": "4370" }, { "label": "FatProtago", "value": "358" }, { "label": "FattoFit", "value": "359" }, { "label": "Faucet", "value": "2707" }, { "label": "Favoritebl", "value": "2110" }, { "label": "Favoriteco", "value": "6100" }, { "label": "Favoriteco", "value": "2759" }, { "label": "favoritegr", "value": "3814" }, { "label": "favoritepo", "value": "3915" }, { "label": "Favoriteup", "value": "3867" }, { "label": "FearlessPr", "value": "639" }, { "label": "featherand", "value": "3513" }, { "label": "federalhea", "value": "4236" }, { "label": "FeiLuEdiso", "value": "1947" }, { "label": "FeitianOld", "value": "3686" }, { "label": "Fellatio", "value": "629" }, { "label": "FemaleEmpe", "value": "4012" }, { "label": "FemaleFigh", "value": "1586" }, { "label": "femalehono", "value": "3248" }, { "label": "FemaleLead", "value": "986" }, { "label": "FemaleMast", "value": "557" }, { "label": "femalematc", "value": "3121" }, { "label": "FemaleMC", "value": "1391" }, { "label": "FemalePart", "value": "4347" }, { "label": "FemalePres", "value": "1458" }, { "label": "femaleprim", "value": "5745" }, { "label": "Femaleprot", "value": "1226" }, { "label": "FemaleProt", "value": "18" }, { "label": "FemaleProt", "value": "2913" }, { "label": "FemaleSpie", "value": "1493" }, { "label": "FemalesPro", "value": "1178" }, { "label": "FemaletoMa", "value": "734" }, { "label": "FengLingzo", "value": "3585" }, { "label": "FenglinYey", "value": "5199" }, { "label": "Fengqing", "value": "2425" }, { "label": "FengShui", "value": "581" }, { "label": "FengTingyu", "value": "5273" }, { "label": "FengyueXun", "value": "4543" }, { "label": "Fengzilike", "value": "5205" }, { "label": "FengziXiao", "value": "2077" }, { "label": "Fenwhoeats", "value": "5810" }, { "label": "FerrariEnz", "value": "1928" }, { "label": "Fetish", "value": "5094" }, { "label": "Fiction", "value": "5450" }, { "label": "fieldowner", "value": "4046" }, { "label": "fierce", "value": "2128" }, { "label": "Fierceadve", "value": "5212" }, { "label": "fiercewife", "value": "3273" }, { "label": "Fifi&03", "value": "2808" }, { "label": "FifthEmper", "value": "2454" }, { "label": "FifthQingl", "value": "5931" }, { "label": "Fightagain", "value": "3281" }, { "label": "FightingCo", "value": "2450" }, { "label": "Fightingpi", "value": "5687" }, { "label": "Filipino", "value": "1682" }, { "label": "FilipinoNo", "value": "1681" }, { "label": "Filmempero", "value": "3368" }, { "label": "Finance", "value": "2895" }, { "label": "Fineartisl", "value": "5424" }, { "label": "finepoint", "value": "3638" }, { "label": "fingertips", "value": "3877" }, { "label": "Firearms", "value": "166" }, { "label": "fireborn", "value": "1407" }, { "label": "firefire", "value": "4650" }, { "label": "Fireinthes", "value": "2040" }, { "label": "fireonfire", "value": "2602" }, { "label": "Firethief", "value": "1810" }, { "label": "FireWinged", "value": "2384" }, { "label": "FireXinxin", "value": "4902" }, { "label": "First-time", "value": "882" }, { "label": "First-time", "value": "192" }, { "label": "firstaid", "value": "3298" }, { "label": "firstfragr", "value": "4662" }, { "label": "firstgreen", "value": "2535" }, { "label": "FirstLove", "value": "207" }, { "label": "firstperso", "value": "1989" }, { "label": "fishandraf", "value": "2481" }, { "label": "fishdragon", "value": "3530" }, { "label": "fisheatpan", "value": "2869" }, { "label": "fishfishda", "value": "2070" }, { "label": "Fishheadis", "value": "2814" }, { "label": "fishinflam", "value": "2753" }, { "label": "Fishing", "value": "1131" }, { "label": "fishinginf", "value": "4972" }, { "label": "Fishingmak", "value": "4117" }, { "label": "fishswimmi", "value": "2779" }, { "label": "five-color", "value": "5722" }, { "label": "FiveDynast", "value": "5702" }, { "label": "flamboyant", "value": "3491" }, { "label": "flamingfla", "value": "1835" }, { "label": "Flashbacks", "value": "135" }, { "label": "FlashBonda", "value": "4441" }, { "label": "flashhusky", "value": "5405" }, { "label": "FleetBattl", "value": "745" }, { "label": "flirtatiou", "value": "3616" }, { "label": "flirtyclou", "value": "5036" }, { "label": "Fllatio", "value": "191" }, { "label": "Floatingcl", "value": "3987" }, { "label": "floatingdu", "value": "4916" }, { "label": "Floatingli", "value": "2550" }, { "label": "floatingse", "value": "4800" }, { "label": "flood", "value": "3220" }, { "label": "floodRelax", "value": "3045" }, { "label": "Flourishin", "value": "3369" }, { "label": "Flower&", "value": "3967" }, { "label": "FlowerBlos", "value": "4180" }, { "label": "flowercare", "value": "3177" }, { "label": "flowercare", "value": "3077" }, { "label": "flowercare", "value": "2997" }, { "label": "flowerdust", "value": "4400" }, { "label": "Flowersblo", "value": "5952" }, { "label": "flowersoft", "value": "2805" }, { "label": "Flowingclo", "value": "5258" }, { "label": "Flowingclo", "value": "4933" }, { "label": "flyburning", "value": "5784" }, { "label": "flyingcow", "value": "2547" }, { "label": "FlyingDrag", "value": "4458" }, { "label": "flyingfish", "value": "2146" }, { "label": "Flyinggras", "value": "4019" }, { "label": "flyinglitt", "value": "2522" }, { "label": "FlyingLuTi", "value": "2301" }, { "label": "Flyingmeat", "value": "4710" }, { "label": "flyingnood", "value": "3914" }, { "label": "flyingshar", "value": "2719" }, { "label": "Flyingsnow", "value": "5304" }, { "label": "flyingsqui", "value": "2364" }, { "label": "Flyingwhit", "value": "2862" }, { "label": "flyinthelo", "value": "2615" }, { "label": "flytothemo", "value": "4124" }, { "label": "FocusSpeci", "value": "3795" }, { "label": "Foggy", "value": "4204" }, { "label": "FogLan", "value": "4732" }, { "label": "foldedkite", "value": "4628" }, { "label": "Foldoffthi", "value": "5668" }, { "label": "Folklore", "value": "623" }, { "label": "folksuspen", "value": "3364" }, { "label": "Followthew", "value": "2091" }, { "label": "Fomalhaut7", "value": "5877" }, { "label": "Food", "value": "814" }, { "label": "foodie", "value": "3414" }, { "label": "FoodShopke", "value": "987" }, { "label": "FoodWars!", "value": "1317" }, { "label": "fool", "value": "4871" }, { "label": "Football", "value": "352" }, { "label": "Forcedinto", "value": "110" }, { "label": "ForcedLivi", "value": "317" }, { "label": "ForcedMarr", "value": "111" }, { "label": "Forcedtomo", "value": "5503" }, { "label": "foreignwei", "value": "3261" }, { "label": "Forensic", "value": "3716" }, { "label": "forest", "value": "2134" }, { "label": "forestinth", "value": "4291" }, { "label": "ForgetfulP", "value": "384" }, { "label": "Forgiveyou", "value": "2211" }, { "label": "forgottoun", "value": "5476" }, { "label": "Formation", "value": "4192" }, { "label": "Formations", "value": "1346" }, { "label": "FormerHero", "value": "478" }, { "label": "formworksk", "value": "2817" }, { "label": "fornoreaso", "value": "5362" }, { "label": "Fortyacres", "value": "6065" }, { "label": "Fourkeys", "value": "2451" }, { "label": "Foursome", "value": "5088" }, { "label": "FourthDisa", "value": "1276" }, { "label": "fox", "value": "3433" }, { "label": "foxcontrol", "value": "5554" }, { "label": "foxdemonpr", "value": "5533" }, { "label": "FoxdemonXi", "value": "2377" }, { "label": "Foxhimself", "value": "3809" }, { "label": "foxlisteni", "value": "1827" }, { "label": "FoxSpirits", "value": "256" }, { "label": "Fragmentof", "value": "4696" }, { "label": "fragmentso", "value": "4070" }, { "label": "France", "value": "1496" }, { "label": "frenchcoun", "value": "5933" }, { "label": "frenzyflow", "value": "4417" }, { "label": "Freshparad", "value": "5864" }, { "label": "Friction", "value": "932" }, { "label": "Friday", "value": "1885" }, { "label": "fried", "value": "3739" }, { "label": "FriedJunhu", "value": "4781" }, { "label": "Friedsquid", "value": "4514" }, { "label": "FriendsBec", "value": "737" }, { "label": "Friendship", "value": "421" }, { "label": "Fromnowon", "value": "5837" }, { "label": "Fromthepup", "value": "4063" }, { "label": "Frostandsn", "value": "5489" }, { "label": "FrostZhong", "value": "5867" }, { "label": "Frozencorn", "value": "4215" }, { "label": "FuHejun", "value": "3676" }, { "label": "Fujoshi", "value": "69" }, { "label": "Fukujin", "value": "3339" }, { "label": "Fullcolor", "value": "3841" }, { "label": "fullflow", "value": "3404" }, { "label": "fullmeal", "value": "2173" }, { "label": "Fullyarmed", "value": "3853" }, { "label": "FungMingHe", "value": "4897" }, { "label": "Funny", "value": "3138" }, { "label": "furioussna", "value": "2336" }, { "label": "Furutake", "value": "3607" }, { "label": "fusion", "value": "5365" }, { "label": "FusoFantas", "value": "4319" }, { "label": "Futanari", "value": "193" }, { "label": "Future", "value": "1698" }, { "label": "FutureCivi", "value": "355" }, { "label": "FutureCivi", "value": "1252" }, { "label": "futuredyst", "value": "5049" }, { "label": "Futureover", "value": "6139" }, { "label": "futureworl", "value": "2909" }, { "label": "futureworl", "value": "3056" }, { "label": "futureworl", "value": "2989" }, { "label": "Futuristic", "value": "126" }, { "label": "Futuristic", "value": "1500" }, { "label": "Fuyuan", "value": "4859" }, { "label": "gacha", "value": "5445" }, { "label": "Galacticos", "value": "1917" }, { "label": "Galaxyboy", "value": "2245" }, { "label": "GalaxyWars", "value": "1266" }, { "label": "Galge", "value": "1109" }, { "label": "GambitPara", "value": "4284" }, { "label": "Gambling", "value": "661" }, { "label": "gamblingst", "value": "3729" }, { "label": "Game", "value": "822" }, { "label": "gamealien", "value": "3153" }, { "label": "gamealienO", "value": "2978" }, { "label": "gamealienp", "value": "3006" }, { "label": "gamealienV", "value": "2966" }, { "label": "gameelemen", "value": "1627" }, { "label": "GameElemen", "value": "70" }, { "label": "GameElemen", "value": "868" }, { "label": "GameLit", "value": "3763" }, { "label": "GameofThro", "value": "3422" }, { "label": "GameOnline", "value": "1449" }, { "label": "gameplayer", "value": "3430" }, { "label": "Gameproduc", "value": "3154" }, { "label": "GameRangki", "value": "1246" }, { "label": "GameRankin", "value": "392" }, { "label": "Gamers", "value": "170" }, { "label": "gameworld", "value": "1220" }, { "label": "Gaming", "value": "1133" }, { "label": "GamingE-Sp", "value": "385" }, { "label": "Gangs", "value": "321" }, { "label": "Gangster", "value": "3226" }, { "label": "Gangsters", "value": "798" }, { "label": "GanYu&0", "value": "4148" }, { "label": "GaoWu", "value": "5673" }, { "label": "GaoYuanyao", "value": "2666" }, { "label": "GatetoAnot", "value": "214" }, { "label": "Gatevalve", "value": "3110" }, { "label": "Geass", "value": "1590" }, { "label": "Geeky", "value": "3408" }, { "label": "GenderBend", "value": "1012" }, { "label": "Genderless", "value": "1632" }, { "label": "Genderless", "value": "609" }, { "label": "gene", "value": "3315" }, { "label": "GeneModifi", "value": "1315" }, { "label": "General", "value": "3349" }, { "label": "Generals", "value": "233" }, { "label": "GeneralXie", "value": "2773" }, { "label": "GeneticMod", "value": "312" }, { "label": "geneticwar", "value": "3340" }, { "label": "Genies", "value": "215" }, { "label": "genius", "value": "1421" }, { "label": "geniusflow", "value": "3129" }, { "label": "geniusflow", "value": "3016" }, { "label": "GeniusProt", "value": "216" }, { "label": "Genshin", "value": "1510" }, { "label": "GenshinImp", "value": "1321" }, { "label": "GentleLove", "value": "1750" }, { "label": "gentleman", "value": "1986" }, { "label": "GentlemanI", "value": "5236" }, { "label": "GentlemanM", "value": "4646" }, { "label": "GentleProt", "value": "1722" }, { "label": "Gentlygath", "value": "4909" }, { "label": "Georgia", "value": "4034" }, { "label": "germanicsn", "value": "3896" }, { "label": "getonit!", "value": "4749" }, { "label": "GetRich", "value": "1717" }, { "label": "Getrichbys", "value": "6072" }, { "label": "Getupearly", "value": "6126" }, { "label": "Ghost", "value": "1099" }, { "label": "Ghostexter", "value": "2677" }, { "label": "Ghosts", "value": "158" }, { "label": "Ghostsinre", "value": "2402" }, { "label": "Giant", "value": "3151" }, { "label": "giantpanda", "value": "2840" }, { "label": "Gilf", "value": "5090" }, { "label": "GingerLemo", "value": "3380" }, { "label": "Girl&03", "value": "1198" }, { "label": "Girl&03", "value": "1191" }, { "label": "girlfallsi", "value": "4697" }, { "label": "girlfriend", "value": "1149" }, { "label": "Girlsareet", "value": "5951" }, { "label": "giveyoutim", "value": "2058" }, { "label": "Gladiators", "value": "981" }, { "label": "Glasses-we", "value": "703" }, { "label": "Glasses-we", "value": "624" }, { "label": "glasseswei", "value": "4419" }, { "label": "glasssauce", "value": "4281" }, { "label": "glassysky", "value": "6102" }, { "label": "GLL", "value": "2329" }, { "label": "GlobalTop1", "value": "4545" }, { "label": "gluttoneat", "value": "4888" }, { "label": "Go", "value": "1942" }, { "label": "goallist", "value": "2659" }, { "label": "Goblins", "value": "616" }, { "label": "God", "value": "1297" }, { "label": "God-humanR", "value": "668" }, { "label": "God-levelf", "value": "3304" }, { "label": "God&039", "value": "4573" }, { "label": "God&039", "value": "2171" }, { "label": "GodandDevi", "value": "1508" }, { "label": "Godcat", "value": "4241" }, { "label": "Goddess", "value": "1575" }, { "label": "goddessbos", "value": "2378" }, { "label": "Goddesses", "value": "278" }, { "label": "Goddidnotg", "value": "2414" }, { "label": "GodLikeMC", "value": "1443" }, { "label": "GodlyPower", "value": "356" }, { "label": "GodlyPower", "value": "1582" }, { "label": "GodlyProta", "value": "960" }, { "label": "Godofcreat", "value": "3626" }, { "label": "godofduel", "value": "1908" }, { "label": "GodofForti", "value": "1996" }, { "label": "godofrainy", "value": "4519" }, { "label": "Godofwings", "value": "2324" }, { "label": "GodProtago", "value": "298" }, { "label": "Gods", "value": "234" }, { "label": "godsaltedf", "value": "2589" }, { "label": "Godzilla", "value": "1710" }, { "label": "Golden", "value": "2634" }, { "label": "GoldenFing", "value": "963" }, { "label": "goldenfore", "value": "2751" }, { "label": "GoldenMang", "value": "4678" }, { "label": "goldenswor", "value": "5617" }, { "label": "goldenthom", "value": "5815" }, { "label": "goldfinger", "value": "1941" }, { "label": "Goldfinger", "value": "3031" }, { "label": "Goldfinger", "value": "2938" }, { "label": "goldrush", "value": "4274" }, { "label": "Golems", "value": "778" }, { "label": "GoneDouble", "value": "5775" }, { "label": "GoneStrawb", "value": "2078" }, { "label": "Gongdou", "value": "3254" }, { "label": "Gongdou1V1", "value": "5334" }, { "label": "Gongdouswe", "value": "3078" }, { "label": "GongdouZha", "value": "5690" }, { "label": "gongregret", "value": "3894" }, { "label": "Goo!Justki", "value": "5465" }, { "label": "good-natur", "value": "2651" }, { "label": "goodbyeex", "value": "4212" }, { "label": "goodpotdre", "value": "1870" }, { "label": "Goodsir", "value": "4410" }, { "label": "goodstar", "value": "5470" }, { "label": "googoogoog", "value": "4003" }, { "label": "Gooifyouca", "value": "2853" }, { "label": "goose", "value": "5296" }, { "label": "Gore", "value": "94" }, { "label": "goslowbro", "value": "1861" }, { "label": "gossip", "value": "2053" }, { "label": "Gotaki", "value": "2090" }, { "label": "Gotoschool", "value": "3550" }, { "label": "gotta", "value": "5247" }, { "label": "Gouor", "value": "4222" }, { "label": "Gourmet", "value": "1551" }, { "label": "GouTaoist", "value": "4571" }, { "label": "Government", "value": "1616" }, { "label": "GovernorWh", "value": "4134" }, { "label": "Graceunder", "value": "6007" }, { "label": "GradeXNUMX", "value": "1799" }, { "label": "gradually", "value": "4994" }, { "label": "Grandpa", "value": "3180" }, { "label": "Granvillec", "value": "4659" }, { "label": "GrassCrick", "value": "5202" }, { "label": "Grassroots", "value": "3128" }, { "label": "GraveKeepe", "value": "1016" }, { "label": "gravityfal", "value": "1430" }, { "label": "Grayborn", "value": "4827" }, { "label": "greatbriti", "value": "5899" }, { "label": "GreatCeles", "value": "2317" }, { "label": "GreatCod", "value": "5401" }, { "label": "GreatDesol", "value": "4147" }, { "label": "GreatDrago", "value": "4256" }, { "label": "Greatgod", "value": "3554" }, { "label": "GreatQinIm", "value": "4263" }, { "label": "GreatQinvi", "value": "4000" }, { "label": "GreatSage", "value": "2037" }, { "label": "greedydrin", "value": "4186" }, { "label": "GreedyProt", "value": "1217" }, { "label": "GreenCong", "value": "3577" }, { "label": "greenfruit", "value": "4810" }, { "label": "greengrass", "value": "4288" }, { "label": "Greenplum", "value": "3337" }, { "label": "greentea", "value": "1777" }, { "label": "greenteaL", "value": "5505" }, { "label": "GrilledPac", "value": "5147" }, { "label": "GrilledPir", "value": "3957" }, { "label": "Grimdark", "value": "787" }, { "label": "grimReaper", "value": "3459" }, { "label": "GrimReaper", "value": "4893" }, { "label": "Grinding", "value": "544" }, { "label": "Group", "value": "3188" }, { "label": "GroupChat", "value": "1272" }, { "label": "Groupfavor", "value": "6151" }, { "label": "GroupPet", "value": "2914" }, { "label": "groupwear", "value": "3591" }, { "label": "growingup", "value": "6137" }, { "label": "Growth", "value": "1486" }, { "label": "Grumpyoldm", "value": "3947" }, { "label": "grumpyoran", "value": "5942" }, { "label": "Grupchat", "value": "1477" }, { "label": "GuaguaSoar", "value": "4406" }, { "label": "GuardianRe", "value": "264" }, { "label": "GudaoZhous", "value": "4250" }, { "label": "Gugu", "value": "4840" }, { "label": "gugugugu", "value": "4913" }, { "label": "Guilds", "value": "631" }, { "label": "GuiltyScis", "value": "2581" }, { "label": "Guluton", "value": "5418" }, { "label": "Gundam", "value": "1741" }, { "label": "Gunfighter", "value": "95" }, { "label": "GuodianAna", "value": "5294" }, { "label": "Guoshu", "value": "3272" }, { "label": "Guoshuflow", "value": "5711" }, { "label": "GuShaoxia", "value": "1858" }, { "label": "H11H", "value": "2737" }, { "label": "Hachime", "value": "3688" }, { "label": "Hacker", "value": "957" }, { "label": "Hackers", "value": "367" }, { "label": "Hahariding", "value": "4610" }, { "label": "Haikyuu", "value": "1768" }, { "label": "Hailuojun", "value": "5988" }, { "label": "HakoniwaSe", "value": "2398" }, { "label": "Half-human", "value": "265" }, { "label": "halfafrog", "value": "3539" }, { "label": "halfanoran", "value": "2618" }, { "label": "HalfCityDe", "value": "5394" }, { "label": "HalfJiangS", "value": "3643" }, { "label": "halfmoonem", "value": "4525" }, { "label": "halfnights", "value": "4961" }, { "label": "halfsmoke", "value": "5238" }, { "label": "halfstepge", "value": "2476" }, { "label": "halfstring", "value": "5555" }, { "label": "Halo", "value": "811" }, { "label": "HamabeMiwa", "value": "4854" }, { "label": "Haminstant", "value": "2689" }, { "label": "Handjob", "value": "699" }, { "label": "HandjobBet", "value": "3656" }, { "label": "handsome", "value": "3566" }, { "label": "handsomeat", "value": "4329" }, { "label": "handsomebl", "value": "6023" }, { "label": "Handsomegu", "value": "2789" }, { "label": "HandsomeMa", "value": "11" }, { "label": "HandsomeMa", "value": "1656" }, { "label": "HandsomeMC", "value": "5096" }, { "label": "handsomeon", "value": "2607" }, { "label": "HandsomePr", "value": "1195" }, { "label": "handtearin", "value": "2362" }, { "label": "HanlinBrok", "value": "5388" }, { "label": "HansChrist", "value": "5173" }, { "label": "HanXiaoshe", "value": "4318" }, { "label": "HaotianExt", "value": "2356" }, { "label": "HaoyuYingx", "value": "3379" }, { "label": "Happy", "value": "1157" }, { "label": "HappyBeanl", "value": "2177" }, { "label": "happydrago", "value": "4886" }, { "label": "HappyEndin", "value": "833" }, { "label": "happyenemy", "value": "3094" }, { "label": "Happyfirst", "value": "4522" }, { "label": "HappyFlow", "value": "2825" }, { "label": "happylittl", "value": "3664" }, { "label": "happylutho", "value": "3687" }, { "label": "Hard-Worki", "value": "127" }, { "label": "HardSci-fi", "value": "3424" }, { "label": "hardtofind", "value": "4428" }, { "label": "Hardworkin", "value": "4857" }, { "label": "Hardworkin", "value": "1173" }, { "label": "Harem", "value": "37" }, { "label": "Harem-seek", "value": "324" }, { "label": "Haremismta", "value": "2521" }, { "label": "HaremSeeki", "value": "1084" }, { "label": "Harpertime", "value": "5635" }, { "label": "harpyfrog", "value": "5435" }, { "label": "harrypotte", "value": "1427" }, { "label": "HarryPotte", "value": "237" }, { "label": "HarshTrain", "value": "625" }, { "label": "HarukoHaru", "value": "5941" }, { "label": "Hashihime", "value": "2100" }, { "label": "HatedProta", "value": "112" }, { "label": "haveagoody", "value": "4270" }, { "label": "havealongm", "value": "4967" }, { "label": "Haveasofts", "value": "6128" }, { "label": "haveryconf", "value": "4095" }, { "label": "Hawkeye", "value": "2330" }, { "label": "hazelneck", "value": "3961" }, { "label": "HE", "value": "3152" }, { "label": "Head", "value": "3707" }, { "label": "headedsalt", "value": "5911" }, { "label": "Headmaster", "value": "4831" }, { "label": "HeadofShil", "value": "4642" }, { "label": "Healers", "value": "566" }, { "label": "Healing", "value": "1474" }, { "label": "Healthewor", "value": "2326" }, { "label": "heart", "value": "4283" }, { "label": "heartandey", "value": "2619" }, { "label": "HeartHunte", "value": "2684" }, { "label": "Heartwarmi", "value": "106" }, { "label": "Heaven", "value": "582" }, { "label": "heavenclea", "value": "2526" }, { "label": "HeavenlyKi", "value": "3481" }, { "label": "HeavenlyTr", "value": "128" }, { "label": "heavensong", "value": "2544" }, { "label": "HefanAnzi", "value": "5805" }, { "label": "Hegemony", "value": "2904" }, { "label": "Hehehehehe", "value": "6011" }, { "label": "HeHuaninth", "value": "5276" }, { "label": "HeiTongWuG", "value": "4268" }, { "label": "Hell", "value": "651" }, { "label": "HelpfulPro", "value": "612" }, { "label": "helpmeup", "value": "4622" }, { "label": "HengdianXi", "value": "4146" }, { "label": "Hentai", "value": "978" }, { "label": "Herbalist", "value": "779" }, { "label": "hereIcome", "value": "3623" }, { "label": "HERelaxeds", "value": "5342" }, { "label": "Hero", "value": "784" }, { "label": "Heroes", "value": "536" }, { "label": "Heroesofth", "value": "1961" }, { "label": "heroine", "value": "1778" }, { "label": "heroinecut", "value": "3161" }, { "label": "Hesitatean", "value": "4126" }, { "label": "Heterochro", "value": "969" }, { "label": "HEwearbook", "value": "3009" }, { "label": "hewon&0", "value": "5855" }, { "label": "Hexue", "value": "4460" }, { "label": "HeXueguan", "value": "5413" }, { "label": "hey", "value": "2094" }, { "label": "HeYeTonggu", "value": "5523" }, { "label": "HeyMajesty", "value": "4920" }, { "label": "hi", "value": "1995" }, { "label": "hibernatin", "value": "4596" }, { "label": "HidakaDanc", "value": "4868" }, { "label": "HiddenAbil", "value": "259" }, { "label": "hiddenbook", "value": "5411" }, { "label": "HiddenBoss", "value": "1483" }, { "label": "HiddenGem", "value": "982" }, { "label": "HiddenIden", "value": "921" }, { "label": "HiddenIden", "value": "1216" }, { "label": "hiddenmarr", "value": "3258" }, { "label": "hiddenmarr", "value": "5338" }, { "label": "HiddenTrue", "value": "1107" }, { "label": "hiddenvest", "value": "1210" }, { "label": "HiddenYrue", "value": "1135" }, { "label": "Hidethepen", "value": "4928" }, { "label": "HidingAbil", "value": "479" }, { "label": "HidingTrue", "value": "200" }, { "label": "HidingTrue", "value": "117" }, { "label": "HidingTrue", "value": "1086" }, { "label": "HidingTrue", "value": "958" }, { "label": "Highcold", "value": "3429" }, { "label": "HighFantas", "value": "1666" }, { "label": "highiq", "value": "1428" }, { "label": "HighSchool", "value": "1039" }, { "label": "HighSchool", "value": "1159" }, { "label": "Higu", "value": "2104" }, { "label": "Hikari", "value": "4158" }, { "label": "HiKeli", "value": "5716" }, { "label": "Hikusei", "value": "3239" }, { "label": "Hiroyuki", "value": "4057" }, { "label": "hishy", "value": "4925" }, { "label": "HisMajesty", "value": "2430" }, { "label": "HisnameisJ", "value": "4374" }, { "label": "HisRoyalHi", "value": "4265" }, { "label": "Historical", "value": "824" }, { "label": "Historical", "value": "5709" }, { "label": "History", "value": "860" }, { "label": "Historyoft", "value": "5885" }, { "label": "hitten", "value": "2927" }, { "label": "hitthestre", "value": "4385" }, { "label": "Hndjob", "value": "376" }, { "label": "Hogwarts", "value": "1608" }, { "label": "Hokage", "value": "845" }, { "label": "HoldingaMe", "value": "5758" }, { "label": "Holdthemom", "value": "5756" }, { "label": "Hollywood", "value": "1196" }, { "label": "holyangel", "value": "2017" }, { "label": "HolyFather", "value": "5184" }, { "label": "HolyFireDT", "value": "3964" }, { "label": "HolyKingRa", "value": "1826" }, { "label": "holymonk", "value": "3891" }, { "label": "HolyWaterP", "value": "6062" }, { "label": "HomeAttrib", "value": "2369" }, { "label": "homelessma", "value": "3913" }, { "label": "HonestandR", "value": "2622" }, { "label": "honestdogg", "value": "4144" }, { "label": "honestking", "value": "3470" }, { "label": "HonestProt", "value": "648" }, { "label": "HongchenJi", "value": "4387" }, { "label": "HongfeiQin", "value": "2597" }, { "label": "HongHuangB", "value": "5779" }, { "label": "HonghuangN", "value": "2516" }, { "label": "Honghuangs", "value": "2217" }, { "label": "HonghuangS", "value": "4496" }, { "label": "HongHuangz", "value": "5286" }, { "label": "HongKongFi", "value": "4018" }, { "label": "HongmengSh", "value": "1783" }, { "label": "HongTang", "value": "1886" }, { "label": "Hongxuetyp", "value": "5936" }, { "label": "Honkai1999", "value": "4171" }, { "label": "HonkaiImpa", "value": "1375" }, { "label": "HonkaiMess", "value": "3586" }, { "label": "hopeful", "value": "5482" }, { "label": "hornreverb", "value": "4691" }, { "label": "horror", "value": "818" }, { "label": "horrorgod", "value": "2394" }, { "label": "horsehorse", "value": "4873" }, { "label": "HoshinoSor", "value": "5828" }, { "label": "Hospital", "value": "636" }, { "label": "Hot-bloode", "value": "300" }, { "label": "HotBlood", "value": "3013" }, { "label": "Hotels", "value": "906" }, { "label": "Hotpepper", "value": "4821" }, { "label": "hotpot", "value": "2721" }, { "label": "housefight", "value": "3170" }, { "label": "housefight", "value": "5336" }, { "label": "housefight", "value": "5326" }, { "label": "housefight", "value": "3049" }, { "label": "housegirl", "value": "5132" }, { "label": "housekeepe", "value": "5545" }, { "label": "houseprope", "value": "2412" }, { "label": "howcomfort", "value": "5389" }, { "label": "howlingpig", "value": "2312" }, { "label": "howlingwin", "value": "2770" }, { "label": "Huahuababy", "value": "5444" }, { "label": "HuaihaiChi", "value": "4988" }, { "label": "HuanHuanHu", "value": "2061" }, { "label": "HuaNiaoFen", "value": "6006" }, { "label": "HuaXiaowas", "value": "4042" }, { "label": "hugTA&0", "value": "4704" }, { "label": "Huijingund", "value": "2236" }, { "label": "HuiMochou", "value": "1997" }, { "label": "HuiXiaCong", "value": "4382" }, { "label": "human", "value": "4653" }, { "label": "Human-Nonh", "value": "159" }, { "label": "HumanExper", "value": "413" }, { "label": "HumanExper", "value": "1392" }, { "label": "humannatur", "value": "5803" }, { "label": "HumanoidPr", "value": "129" }, { "label": "HumanWeapo", "value": "490" }, { "label": "Humbleboy", "value": "3277" }, { "label": "Humiliatio", "value": "5093" }, { "label": "humla", "value": "2221" }, { "label": "hundredhou", "value": "4064" }, { "label": "hunter", "value": "3562" }, { "label": "Hunter×Hu", "value": "2921" }, { "label": "hunterkill", "value": "1881" }, { "label": "hunterleav", "value": "4245" }, { "label": "Hunters", "value": "531" }, { "label": "HunterxHun", "value": "1338" }, { "label": "HunyuanDal", "value": "5148" }, { "label": "Huoshulour", "value": "3791" }, { "label": "HuoxiangZh", "value": "3771" }, { "label": "Hurry", "value": "5914" }, { "label": "HuTiandi", "value": "2386" }, { "label": "HuYuan&", "value": "5602" }, { "label": "HxH", "value": "1062" }, { "label": "HyogoNorth", "value": "5747" }, { "label": "hyperknigh", "value": "1927" }, { "label": "Hypnotism", "value": "377" }, { "label": "I&039ll", "value": "4249" }, { "label": "i&039ma", "value": "3657" }, { "label": "I&039ma", "value": "4949" }, { "label": "I&039ma", "value": "2191" }, { "label": "I&039mj", "value": "3674" }, { "label": "I&039mn", "value": "5186" }, { "label": "I&039mn", "value": "4484" }, { "label": "I&039mo", "value": "2351" }, { "label": "I&039mr", "value": "4500" }, { "label": "I&039ms", "value": "4026" }, { "label": "I&039ms", "value": "3655" }, { "label": "I&039mX", "value": "4529" }, { "label": "ialmostbel", "value": "3519" }, { "label": "iamabigsal", "value": "3963" }, { "label": "Iamamelanc", "value": "4639" }, { "label": "Iamapirate", "value": "2321" }, { "label": "Iamareader", "value": "4630" }, { "label": "Iamarealdi", "value": "2304" }, { "label": "IamAsi", "value": "2744" }, { "label": "iamatravel", "value": "1930" }, { "label": "Iamfifth", "value": "2314" }, { "label": "IamGuanxi", "value": "2438" }, { "label": "Iamhell", "value": "2443" }, { "label": "IamHisMaje", "value": "2296" }, { "label": "Iamnotaloc", "value": "2009" }, { "label": "Iamnottheo", "value": "5774" }, { "label": "Iamolderth", "value": "2269" }, { "label": "Iamoldwolf", "value": "2695" }, { "label": "Iamthemurd", "value": "2765" }, { "label": "Iamtheseak", "value": "1890" }, { "label": "Iamtheseco", "value": "2650" }, { "label": "Iamtwenty-", "value": "2596" }, { "label": "Iateeightc", "value": "2931" }, { "label": "IbukiGourd", "value": "3813" }, { "label": "Ibuprofen", "value": "2580" }, { "label": "icalledthe", "value": "2036" }, { "label": "Ican&03", "value": "4456" }, { "label": "Icanreally", "value": "4088" }, { "label": "IceCreamAs", "value": "4412" }, { "label": "iceddaught", "value": "4197" }, { "label": "IcedDurian", "value": "2826" }, { "label": "icesweet", "value": "4575" }, { "label": "icewalk", "value": "1979" }, { "label": "Icomefromt", "value": "3578" }, { "label": "IdentityCr", "value": "344" }, { "label": "ideologica", "value": "3278" }, { "label": "Idiotdeado", "value": "5777" }, { "label": "idlerscome", "value": "4788" }, { "label": "Idol", "value": "1301" }, { "label": "Idon’tkno", "value": "6034" }, { "label": "idon&03", "value": "2195" }, { "label": "Idon&03", "value": "4661" }, { "label": "Idon&03", "value": "4031" }, { "label": "idropbaby", "value": "1839" }, { "label": "ieatgrass", "value": "2609" }, { "label": "ieatguava", "value": "4624" }, { "label": "IfIdon&", "value": "4248" }, { "label": "ifthewindi", "value": "6068" }, { "label": "Ifyoucango", "value": "2118" }, { "label": "Igotit!", "value": "5201" }, { "label": "Ihaveeight", "value": "4140" }, { "label": "ihaveseven", "value": "4407" }, { "label": "ihavethere", "value": "2774" }, { "label": "Ijustwantt", "value": "1906" }, { "label": "Ilikedried", "value": "3495" }, { "label": "Iliveupsta", "value": "2010" }, { "label": "Illigitima", "value": "1714" }, { "label": "Ilo", "value": "1786" }, { "label": "Iloveboile", "value": "3508" }, { "label": "ilovegrape", "value": "6041" }, { "label": "ilovewatch", "value": "4774" }, { "label": "ilovewoo", "value": "2704" }, { "label": "immeasurab", "value": "4770" }, { "label": "Immortal", "value": "1077" }, { "label": "ImmortalBi", "value": "2658" }, { "label": "ImmortalEm", "value": "3428" }, { "label": "ImmortalMa", "value": "2781" }, { "label": "Immortals", "value": "235" }, { "label": "ImperialCa", "value": "5035" }, { "label": "imperialco", "value": "1473" }, { "label": "Imperialco", "value": "5706" }, { "label": "ImperialCu", "value": "6117" }, { "label": "Imperialex", "value": "3276" }, { "label": "ImperialFa", "value": "1088" }, { "label": "ImperialHa", "value": "238" }, { "label": "Imposter", "value": "5056" }, { "label": "inactionin", "value": "5393" }, { "label": "Incarnatio", "value": "5548" }, { "label": "Incest", "value": "179" }, { "label": "inchshadow", "value": "5115" }, { "label": "Inclassroo", "value": "4169" }, { "label": "Inclined", "value": "3970" }, { "label": "Incubus", "value": "1019" }, { "label": "Indecisive", "value": "568" }, { "label": "Indestruct", "value": "4271" }, { "label": "Indonesia", "value": "1687" }, { "label": "IndonesiaN", "value": "1686" }, { "label": "indulgemyd", "value": "4033" }, { "label": "industrial", "value": "3565" }, { "label": "Industrial", "value": "641" }, { "label": "Industry", "value": "1269" }, { "label": "industryel", "value": "5053" }, { "label": "Industryel", "value": "6131" }, { "label": "industryHo", "value": "2949" }, { "label": "Inexplicab", "value": "4206" }, { "label": "infatuatio", "value": "3158" }, { "label": "Inferiorit", "value": "431" }, { "label": "Infernalco", "value": "2067" }, { "label": "infinite", "value": "1368" }, { "label": "InfiniteBu", "value": "2190" }, { "label": "InfiniteFl", "value": "1292" }, { "label": "infinitega", "value": "5825" }, { "label": "Infiniteme", "value": "2027" }, { "label": "infinitesu", "value": "2531" }, { "label": "infrastrac", "value": "1374" }, { "label": "Infrastruc", "value": "1384" }, { "label": "Infrastruc", "value": "3431" }, { "label": "Ingeniousg", "value": "4687" }, { "label": "Inherenten", "value": "4699" }, { "label": "Inheritanc", "value": "426" }, { "label": "Ink", "value": "2804" }, { "label": "Ink-dyedIm", "value": "4586" }, { "label": "inkdirty", "value": "4583" }, { "label": "inlove", "value": "3206" }, { "label": "Inlovewith", "value": "3666" }, { "label": "InnerVoice", "value": "1638" }, { "label": "innocentmo", "value": "3949" }, { "label": "Inscriptio", "value": "744" }, { "label": "Insects", "value": "313" }, { "label": "Insectword", "value": "4856" }, { "label": "insitu", "value": "2816" }, { "label": "insomniaun", "value": "3869" }, { "label": "Inspiratio", "value": "3253" }, { "label": "instantnoo", "value": "5917" }, { "label": "Instantnoo", "value": "5996" }, { "label": "instantsta", "value": "4705" }, { "label": "Instructor", "value": "5447" }, { "label": "intenseflu", "value": "1029" }, { "label": "Intercept0", "value": "2801" }, { "label": "Intercept0", "value": "1988" }, { "label": "Interconne", "value": "1745" }, { "label": "Interdimen", "value": "27" }, { "label": "Interestel", "value": "927" }, { "label": "interpenet", "value": "5713" }, { "label": "interracia", "value": "6152" }, { "label": "Interracia", "value": "5684" }, { "label": "interstell", "value": "2967" }, { "label": "Interstell", "value": "903" }, { "label": "inthecloud", "value": "4286" }, { "label": "inthenameo", "value": "4969" }, { "label": "Introverte", "value": "680" }, { "label": "InukaiOmor", "value": "4937" }, { "label": "Inuyasha", "value": "1125" }, { "label": "Investigat", "value": "496" }, { "label": "Investigat", "value": "1169" }, { "label": "Invincible", "value": "3106" }, { "label": "Invincible", "value": "5449" }, { "label": "Invincible", "value": "5244" }, { "label": "Invincible", "value": "3680" }, { "label": "Invincible", "value": "3029" }, { "label": "Invincible", "value": "2964" }, { "label": "Invincible", "value": "2942" }, { "label": "Invincible", "value": "1956" }, { "label": "Invincible", "value": "1887" }, { "label": "Invincible", "value": "1875" }, { "label": "Invincible", "value": "1812" }, { "label": "InvolveNo.", "value": "5740" }, { "label": "IQOnline", "value": "3098" }, { "label": "Ireallydon", "value": "6037" }, { "label": "Ireallywan", "value": "5646" }, { "label": "Ireallywan", "value": "4761" }, { "label": "ironfistri", "value": "3719" }, { "label": "IronMaiden", "value": "2923" }, { "label": "ironpillar", "value": "2339" }, { "label": "IronThanos", "value": "2665" }, { "label": "iscoding", "value": "4211" }, { "label": "Isekai", "value": "850" }, { "label": "Isellflowe", "value": "4599" }, { "label": "IsitatLoli", "value": "5481" }, { "label": "isitnecess", "value": "2063" }, { "label": "IsItWrongt", "value": "1671" }, { "label": "Isuckbrown", "value": "2102" }, { "label": "IsumiLily", "value": "2490" }, { "label": "It’sAmoyo", "value": "5994" }, { "label": "It’syouwh", "value": "5903" }, { "label": "it&039s", "value": "5195" }, { "label": "It&039s", "value": "5894" }, { "label": "It&039s", "value": "4252" }, { "label": "It&039s", "value": "3932" }, { "label": "It&039s", "value": "2179" }, { "label": "Itbecameaf", "value": "5672" }, { "label": "Itissaidth", "value": "6042" }, { "label": "Itissaidth", "value": "5397" }, { "label": "Itsdaybrea", "value": "2113" }, { "label": "Itwillbead", "value": "4932" }, { "label": "Iunotbad", "value": "4834" }, { "label": "iwantmoney", "value": "2463" }, { "label": "IwantSiste", "value": "3950" }, { "label": "Iwanttobea", "value": "2866" }, { "label": "Iwanttobeo", "value": "2523" }, { "label": "iwanttoeat", "value": "2811" }, { "label": "iwanttogot", "value": "2636" }, { "label": "Iwanttogot", "value": "6076" }, { "label": "Iwanttohit", "value": "6055" }, { "label": "Iwanttolie", "value": "3474" }, { "label": "iwanttosee", "value": "5513" }, { "label": "Iwanttosee", "value": "4667" }, { "label": "Iwanttotak", "value": "4364" }, { "label": "Iwillbecom", "value": "5813" }, { "label": "Iwishyouat", "value": "2114" }, { "label": "Izanagi233", "value": "4152" }, { "label": "Jackdaw", "value": "5382" }, { "label": "JackieChan", "value": "2891" }, { "label": "JackofAllT", "value": "71" }, { "label": "jadeeveryy", "value": "2334" }, { "label": "Jaderabbit", "value": "3463" }, { "label": "JaneShu", "value": "3806" }, { "label": "JangSeok-g", "value": "1793" }, { "label": "januarygod", "value": "3953" }, { "label": "Japan", "value": "1342" }, { "label": "Japanese", "value": "843" }, { "label": "JapIdols", "value": "907" }, { "label": "JasperKnif", "value": "5564" }, { "label": "Jazz", "value": "2679" }, { "label": "Jealousy", "value": "258" }, { "label": "jediescape", "value": "5862" }, { "label": "jellyjelly", "value": "2872" }, { "label": "JianBao", "value": "3209" }, { "label": "JiangCheng", "value": "4785" }, { "label": "Jianghu", "value": "1258" }, { "label": "Jianghugri", "value": "5697" }, { "label": "Jiangshi", "value": "603" }, { "label": "JiangWu", "value": "4841" }, { "label": "JiangYu", "value": "5034" }, { "label": "Jianjiamix", "value": "2387" }, { "label": "Jiaqi", "value": "4173" }, { "label": "JinglongTa", "value": "2763" }, { "label": "JingShenTi", "value": "5879" }, { "label": "JinguNoFun", "value": "4570" }, { "label": "Jinwan1", "value": "3499" }, { "label": "JinYiwei", "value": "3400" }, { "label": "Jiulu丶", "value": "5846" }, { "label": "Jiutianyu", "value": "2170" }, { "label": "Jiuxiao", "value": "4166" }, { "label": "JiuYuan", "value": "3737" }, { "label": "JixingGaoz", "value": "4989" }, { "label": "JiYipao", "value": "6004" }, { "label": "JKing", "value": "4205" }, { "label": "JOAmbulanc", "value": "4065" }, { "label": "JoanHuang", "value": "5516" }, { "label": "John117", "value": "2641" }, { "label": "JoJo", "value": "2882" }, { "label": "JoJo&03", "value": "2883" }, { "label": "JojoBizarr", "value": "1126" }, { "label": "JOJOWE", "value": "1954" }, { "label": "Josei", "value": "886" }, { "label": "Journeytot", "value": "1326" }, { "label": "joydrummer", "value": "2013" }, { "label": "JujutsuKai", "value": "1127" }, { "label": "Juliet", "value": "1811" }, { "label": "July&03", "value": "5831" }, { "label": "JulyBrewma", "value": "4313" }, { "label": "JunCaiXing", "value": "2791" }, { "label": "Jundrunkdr", "value": "5770" }, { "label": "Jung", "value": "5608" }, { "label": "JuniorSist", "value": "2176" }, { "label": "JunRuoxu", "value": "4605" }, { "label": "JunRuyu", "value": "4422" }, { "label": "justapiece", "value": "3988" }, { "label": "justdrunk", "value": "5245" }, { "label": "justplay", "value": "4879" }, { "label": "justsaydon", "value": "4685" }, { "label": "justshout", "value": "2795" }, { "label": "jzkyushu", "value": "5808" }, { "label": "K-popIdols", "value": "1102" }, { "label": "Kafkajumpi", "value": "2035" }, { "label": "Kahn", "value": "5387" }, { "label": "Kailandros", "value": "3886" }, { "label": "KakamieCro", "value": "4666" }, { "label": "Kakashi", "value": "846" }, { "label": "KakashiTen", "value": "4023" }, { "label": "KanohiroSa", "value": "4261" }, { "label": "Karma", "value": "999" }, { "label": "Karmadance", "value": "4604" }, { "label": "Katena", "value": "5012" }, { "label": "Kaying", "value": "4258" }, { "label": "Kazamahyac", "value": "3538" }, { "label": "keel", "value": "4195" }, { "label": "keepitsimp", "value": "4254" }, { "label": "Kendo", "value": "1001" }, { "label": "KennelSaku", "value": "5558" }, { "label": "KensenShin", "value": "4795" }, { "label": "keyboardki", "value": "3785" }, { "label": "keykey", "value": "3958" }, { "label": "keytocome", "value": "2458" }, { "label": "Kidnapping", "value": "509" }, { "label": "KiharaKaqu", "value": "5587" }, { "label": "killdecisi", "value": "3126" }, { "label": "Killer", "value": "3608" }, { "label": "killerwhal", "value": "6086" }, { "label": "killpigeon", "value": "5761" }, { "label": "Killthewor", "value": "2196" }, { "label": "Kim&039", "value": "3879" }, { "label": "KimuraShit", "value": "6067" }, { "label": "Kindergart", "value": "1754" }, { "label": "Kindergart", "value": "3726" }, { "label": "KindLoveIn", "value": "131" }, { "label": "Kindness", "value": "3405" }, { "label": "KindomBuil", "value": "1462" }, { "label": "KindProtag", "value": "1464" }, { "label": "King", "value": "1901" }, { "label": "KingAsura", "value": "2391" }, { "label": "Kingdom", "value": "1629" }, { "label": "Kingdom-bu", "value": "871" }, { "label": "KingdomBui", "value": "340" }, { "label": "Kingdoms", "value": "181" }, { "label": "KingdomsKn", "value": "533" }, { "label": "KingKonggo", "value": "2629" }, { "label": "KingLingyu", "value": "3528" }, { "label": "kingofdeat", "value": "2592" }, { "label": "KingofDest", "value": "1823" }, { "label": "kingoffoot", "value": "5111" }, { "label": "KingofMons", "value": "2437" }, { "label": "KingofSold", "value": "3268" }, { "label": "kingpirate", "value": "2185" }, { "label": "Kiritani", "value": "2518" }, { "label": "kittenrun", "value": "5223" }, { "label": "Kneelingan", "value": "2796" }, { "label": "Kneelingth", "value": "2305" }, { "label": "KnifePromi", "value": "2001" }, { "label": "Knight", "value": "900" }, { "label": "knightcomm", "value": "4231" }, { "label": "knightflow", "value": "5707" }, { "label": "knightinar", "value": "5580" }, { "label": "knightmeow", "value": "4497" }, { "label": "Knights", "value": "208" }, { "label": "KnightsLev", "value": "613" }, { "label": "knightupgr", "value": "3621" }, { "label": "Knockingca", "value": "5566" }, { "label": "knowfate", "value": "4461" }, { "label": "KnowKingAl", "value": "3815" }, { "label": "Knowtheric", "value": "2478" }, { "label": "Koi", "value": "1578" }, { "label": "KoiKing", "value": "3757" }, { "label": "Kojin", "value": "2216" }, { "label": "Konohasalt", "value": "4058" }, { "label": "KonohaVoll", "value": "2532" }, { "label": "Korean", "value": "1674" }, { "label": "KoreanNove", "value": "1310" }, { "label": "KotomineSa", "value": "5531" }, { "label": "KpopIdols", "value": "908" }, { "label": "Kuchikiwha", "value": "5538" }, { "label": "KunHao", "value": "5149" }, { "label": "KurongTemp", "value": "2008" }, { "label": "Kutiaoren", "value": "4170" }, { "label": "Kuudere", "value": "708" }, { "label": "KwunTong", "value": "2043" }, { "label": "KyokoKurot", "value": "3807" }, { "label": "Kyokowassi", "value": "5812" }, { "label": "laborhonor", "value": "2527" }, { "label": "lackofboat", "value": "2262" }, { "label": "LackofComm", "value": "160" }, { "label": "LacquerNig", "value": "2099" }, { "label": "lady", "value": "3403" }, { "label": "LaidBack", "value": "3821" }, { "label": "LaiXiaomin", "value": "3482" }, { "label": "LambSoupwi", "value": "5839" }, { "label": "LameHaoisa", "value": "2310" }, { "label": "LanguageBa", "value": "133" }, { "label": "langyalist", "value": "2441" }, { "label": "LangyaPavi", "value": "4992" }, { "label": "LaoLaoXu", "value": "2076" }, { "label": "LaoWang", "value": "3976" }, { "label": "Lappy", "value": "4715" }, { "label": "LargeBoard", "value": "4717" }, { "label": "lasercatbo", "value": "5137" }, { "label": "lastnight", "value": "4072" }, { "label": "lastwear", "value": "3595" }, { "label": "latenightf", "value": "5664" }, { "label": "LateRomanc", "value": "249" }, { "label": "laughandcr", "value": "5780" }, { "label": "laughingor", "value": "3954" }, { "label": "laurel", "value": "2201" }, { "label": "LawofNineG", "value": "5403" }, { "label": "lawyer", "value": "3458" }, { "label": "Lawyers", "value": "548" }, { "label": "layoutflow", "value": "3192" }, { "label": "layoutflow", "value": "2982" }, { "label": "lazy", "value": "3555" }, { "label": "lazyandcru", "value": "4399" }, { "label": "lazyangel", "value": "4469" }, { "label": "lazycaramb", "value": "4062" }, { "label": "lazycatsch", "value": "4720" }, { "label": "LazycatZ", "value": "5958" }, { "label": "lazydevil", "value": "2120" }, { "label": "Lazyintoab", "value": "3525" }, { "label": "LazyProtag", "value": "441" }, { "label": "LazyYang", "value": "4016" }, { "label": "Leadership", "value": "375" }, { "label": "leadthemai", "value": "3357" }, { "label": "leadwall", "value": "3801" }, { "label": "LeafofTian", "value": "4590" }, { "label": "LeagueofLe", "value": "849" }, { "label": "leaningont", "value": "3542" }, { "label": "Leaningont", "value": "5507" }, { "label": "Leaningont", "value": "4312" }, { "label": "Leapeveryd", "value": "2347" }, { "label": "Leaves", "value": "5409" }, { "label": "leavesfall", "value": "5467" }, { "label": "Leavingaga", "value": "5725" }, { "label": "Leavingthe", "value": "4282" }, { "label": "leftandrig", "value": "3746" }, { "label": "Leftgirl", "value": "3612" }, { "label": "leftpigeon", "value": "5457" }, { "label": "Legend", "value": "701" }, { "label": "Legends", "value": "607" }, { "label": "leggod", "value": "4190" }, { "label": "LeiHuofeng", "value": "3670" }, { "label": "LeiJiedoes", "value": "1933" }, { "label": "Leisurelys", "value": "2426" }, { "label": "LeiXunqing", "value": "3372" }, { "label": "LeJiangli", "value": "4331" }, { "label": "Lemonade", "value": "5881" }, { "label": "lemonandsi", "value": "2285" }, { "label": "lemoneatar", "value": "4178" }, { "label": "Lemonfruit", "value": "3870" }, { "label": "lemonlemon", "value": "3875" }, { "label": "lendmefive", "value": "2837" }, { "label": "LengquanAt", "value": "4549" }, { "label": "leonine", "value": "1035" }, { "label": "lessmeatmo", "value": "3918" }, { "label": "lesstime", "value": "1842" }, { "label": "Let&039", "value": "5845" }, { "label": "Let&039", "value": "4898" }, { "label": "Letmetelly", "value": "3692" }, { "label": "Levatin", "value": "4243" }, { "label": "LevelSyste", "value": "201" }, { "label": "levelthree", "value": "4156" }, { "label": "Levelup", "value": "5055" }, { "label": "LeYang", "value": "3883" }, { "label": "lgbt", "value": "1429" }, { "label": "LGBTQA", "value": "994" }, { "label": "LiangFeifa", "value": "3888" }, { "label": "Lianhai&am", "value": "4794" }, { "label": "LianHongyu", "value": "4767" }, { "label": "LianshanGu", "value": "4323" }, { "label": "LiaoZhai", "value": "3445" }, { "label": "Liar", "value": "1165" }, { "label": "LiBaiisnot", "value": "4779" }, { "label": "Library", "value": "773" }, { "label": "Liedown", "value": "5547" }, { "label": "lifealive2", "value": "5301" }, { "label": "lifeanddea", "value": "3568" }, { "label": "lifeextrac", "value": "5023" }, { "label": "Lifeisthre", "value": "4975" }, { "label": "Lifelongfa", "value": "6094" }, { "label": "LifeScript", "value": "1721" }, { "label": "lifestillh", "value": "3509" }, { "label": "Lifestyle", "value": "5678" }, { "label": "lightandsh", "value": "3526" }, { "label": "lightfluff", "value": "4503" }, { "label": "Lightnings", "value": "2163" }, { "label": "lightnovel", "value": "1405" }, { "label": "LightNovel", "value": "1680" }, { "label": "lightofday", "value": "3492" }, { "label": "lightsaber", "value": "3682" }, { "label": "lightsail", "value": "4299" }, { "label": "LiJunhao", "value": "2756" }, { "label": "LikeaDrago", "value": "1907" }, { "label": "LikeaDrago", "value": "1902" }, { "label": "LikeMeiAox", "value": "2582" }, { "label": "lilac", "value": "4307" }, { "label": "Lillie", "value": "2642" }, { "label": "Lily&03", "value": "5440" }, { "label": "LilyNo.XNU", "value": "5150" }, { "label": "LiMengxi", "value": "6106" }, { "label": "LimitedLif", "value": "470" }, { "label": "LimitlessF", "value": "794" }, { "label": "LiMumu", "value": "2280" }, { "label": "LinBei", "value": "2730" }, { "label": "lindenone", "value": "5528" }, { "label": "Lindentree", "value": "2745" }, { "label": "LingbiWhit", "value": "3518" }, { "label": "Lingen", "value": "3332" }, { "label": "LingHanyi", "value": "4384" }, { "label": "LingLingSa", "value": "5291" }, { "label": "LingLuoBai", "value": "4663" }, { "label": "LingofGemi", "value": "5785" }, { "label": "Lingran", "value": "2089" }, { "label": "LingshanIs", "value": "2654" }, { "label": "LingwuLuqi", "value": "5042" }, { "label": "Lingxiwhow", "value": "4021" }, { "label": "LingyueRed", "value": "3882" }, { "label": "LinQinghua", "value": "4189" }, { "label": "LinSake", "value": "5460" }, { "label": "LinSanjiu", "value": "3900" }, { "label": "LinShendu", "value": "6103" }, { "label": "LinXiufigh", "value": "2668" }, { "label": "LinYiliu", "value": "5970" }, { "label": "LinYouyu", "value": "5757" }, { "label": "LinZhengyi", "value": "2572" }, { "label": "lionazaaza", "value": "5968" }, { "label": "LiShaoming", "value": "4309" }, { "label": "ListAdvent", "value": "3842" }, { "label": "ListCreati", "value": "1335" }, { "label": "listentoth", "value": "5836" }, { "label": "listentoth", "value": "4141" }, { "label": "listentoth", "value": "3524" }, { "label": "listentoth", "value": "2717" }, { "label": "Listentoth", "value": "5956" }, { "label": "Listentoth", "value": "4032" }, { "label": "Literaryes", "value": "5692" }, { "label": "literature", "value": "1416" }, { "label": "Literature", "value": "3695" }, { "label": "LitRPG", "value": "983" }, { "label": "littleahxi", "value": "2197" }, { "label": "littleassa", "value": "5746" }, { "label": "Littleblue", "value": "5390" }, { "label": "littlebow", "value": "4542" }, { "label": "littlebrot", "value": "2291" }, { "label": "littleches", "value": "4474" }, { "label": "littleclou", "value": "3920" }, { "label": "littlecray", "value": "2823" }, { "label": "littledemo", "value": "2130" }, { "label": "Littledemo", "value": "4797" }, { "label": "littledete", "value": "2803" }, { "label": "littledevi", "value": "2357" }, { "label": "littledoct", "value": "3984" }, { "label": "LittleDoud", "value": "5644" }, { "label": "LittleFeng", "value": "5237" }, { "label": "littlefing", "value": "2388" }, { "label": "littleflow", "value": "5461" }, { "label": "littlefox", "value": "2152" }, { "label": "littlefoxi", "value": "4645" }, { "label": "Littlefurb", "value": "5670" }, { "label": "littlehson", "value": "2002" }, { "label": "LittleJack", "value": "4083" }, { "label": "littlelitt", "value": "6080" }, { "label": "littlemiss", "value": "4588" }, { "label": "LittleMo", "value": "5109" }, { "label": "littlemoon", "value": "2041" }, { "label": "Littlepros", "value": "4044" }, { "label": "LittleRedR", "value": "5024" }, { "label": "LittleRoma", "value": "990" }, { "label": "Littlesold", "value": "3263" }, { "label": "LittleSpri", "value": "4175" }, { "label": "littlesuns", "value": "2320" }, { "label": "LittleTeem", "value": "5242" }, { "label": "LittleThro", "value": "4239" }, { "label": "littlewate", "value": "2848" }, { "label": "littlewhit", "value": "4638" }, { "label": "littlewhit", "value": "4531" }, { "label": "LittleWhit", "value": "3596" }, { "label": "littlewind", "value": "2558" }, { "label": "Littlewood", "value": "6096" }, { "label": "littleworl", "value": "4069" }, { "label": "LittleZhug", "value": "3939" }, { "label": "littlezlov", "value": "2031" }, { "label": "Liuhuaacri", "value": "5496" }, { "label": "LiuXiaozu", "value": "5613" }, { "label": "LiuYujun", "value": "2418" }, { "label": "LiuYuxuemo", "value": "5749" }, { "label": "LiuZiqing", "value": "3936" }, { "label": "Livebroadc", "value": "919" }, { "label": "LiveBroadc", "value": "941" }, { "label": "LiveGemini", "value": "4191" }, { "label": "LiverPigeo", "value": "2033" }, { "label": "LiveStream", "value": "1604" }, { "label": "LiveStream", "value": "883" }, { "label": "Livetext", "value": "3136" }, { "label": "LivingAlon", "value": "474" }, { "label": "LiWudi", "value": "1877" }, { "label": "LiXiaojian", "value": "5431" }, { "label": "LiYouqiong", "value": "5100" }, { "label": "LiyuePlann", "value": "4998" }, { "label": "LiYuer", "value": "5786" }, { "label": "LiZhitaoJu", "value": "4111" }, { "label": "LoadingApp", "value": "4056" }, { "label": "Lol", "value": "3139" }, { "label": "Loli", "value": "576" }, { "label": "Lolicon", "value": "425" }, { "label": "LoliProtag", "value": "1518" }, { "label": "LoneCloudP", "value": "2242" }, { "label": "Lonely", "value": "5856" }, { "label": "lonelyboy", "value": "2855" }, { "label": "LonelyChen", "value": "3532" }, { "label": "LonelyCity", "value": "2007" }, { "label": "Lonelynota", "value": "1990" }, { "label": "lonelyreco", "value": "4505" }, { "label": "lonelyseas", "value": "5849" }, { "label": "lonelyshoo", "value": "4798" }, { "label": "LonerProta", "value": "585" }, { "label": "lonewolfl", "value": "5471" }, { "label": "Long", "value": "3632" }, { "label": "Long-dista", "value": "273" }, { "label": "Longanloli", "value": "4708" }, { "label": "Longcenter", "value": "4475" }, { "label": "Longevity", "value": "3299" }, { "label": "longlivedm", "value": "2877" }, { "label": "longlivemy", "value": "2456" }, { "label": "Longlivesa", "value": "2556" }, { "label": "longliveth", "value": "5733" }, { "label": "Longliveth", "value": "2655" }, { "label": "Longliveth", "value": "2439" }, { "label": "LongMengme", "value": "2287" }, { "label": "Longmensin", "value": "4423" }, { "label": "longnightl", "value": "4380" }, { "label": "Longpigeon", "value": "4688" }, { "label": "Longpigeon", "value": "2390" }, { "label": "LongquanNo", "value": "3863" }, { "label": "LongSepara", "value": "412" }, { "label": "LongShao12", "value": "5655" }, { "label": "longsongan", "value": "4275" }, { "label": "LongStrip", "value": "3843" }, { "label": "Longtimeco", "value": "5399" }, { "label": "LongYu", "value": "5000" }, { "label": "Lookatthep", "value": "4464" }, { "label": "Lookingbac", "value": "6020" }, { "label": "lookingout", "value": "4615" }, { "label": "Lookthroug", "value": "4649" }, { "label": "lootflow", "value": "3333" }, { "label": "LordAbilit", "value": "1724" }, { "label": "LordCrimso", "value": "5641" }, { "label": "Lorddevelo", "value": "3819" }, { "label": "Lordfarmin", "value": "3410" }, { "label": "LordGod", "value": "3705" }, { "label": "LordGodSpa", "value": "1588" }, { "label": "LordGrim", "value": "3722" }, { "label": "LordofDark", "value": "3868" }, { "label": "LordoftheM", "value": "895" }, { "label": "LordoftheS", "value": "4618" }, { "label": "LordoftheS", "value": "1976" }, { "label": "LordofWar1", "value": "4207" }, { "label": "LordTiansh", "value": "2614" }, { "label": "LordZhangj", "value": "2332" }, { "label": "LosAngeles", "value": "4576" }, { "label": "Loseafewpo", "value": "1925" }, { "label": "losemoney", "value": "5166" }, { "label": "loser", "value": "5691" }, { "label": "Lostbeliev", "value": "4858" }, { "label": "lostblack", "value": "5260" }, { "label": "LostCivili", "value": "330" }, { "label": "Lostfarewe", "value": "5208" }, { "label": "Lottery", "value": "573" }, { "label": "LotterySys", "value": "817" }, { "label": "Love", "value": "1498" }, { "label": "LoveandMar", "value": "1385" }, { "label": "loveapplep", "value": "4665" }, { "label": "loveatfirs", "value": "3087" }, { "label": "LoveatFirs", "value": "168" }, { "label": "lovebefore", "value": "3217" }, { "label": "lovebefore", "value": "5332" }, { "label": "lovebefore", "value": "3024" }, { "label": "Lovecomedy", "value": "4510" }, { "label": "LoveContra", "value": "1576" }, { "label": "Loveeachot", "value": "3127" }, { "label": "LoveIntere", "value": "1660" }, { "label": "LoveIntere", "value": "1624" }, { "label": "LoveIntere", "value": "19" }, { "label": "LoveintheR", "value": "6140" }, { "label": "loveletter", "value": "4462" }, { "label": "lovemints", "value": "4413" }, { "label": "LoveRivals", "value": "610" }, { "label": "LoversReun", "value": "502" }, { "label": "Lovesnacks", "value": "2183" }, { "label": "lovespicyf", "value": "4643" }, { "label": "lovetease", "value": "2785" }, { "label": "lovetoeatr", "value": "4870" }, { "label": "Lovetosuck", "value": "5991" }, { "label": "LoveTriang", "value": "485" }, { "label": "LoveVegeta", "value": "5600" }, { "label": "lovingfami", "value": "1397" }, { "label": "Low-keylux", "value": "2818" }, { "label": "Low-keyPro", "value": "328" }, { "label": "LowFantasy", "value": "1649" }, { "label": "lowintelli", "value": "3703" }, { "label": "LowKeyMc", "value": "1090" }, { "label": "LowkeyProt", "value": "1182" }, { "label": "loyaldog", "value": "3305" }, { "label": "LoyalProta", "value": "1289" }, { "label": "LoyalSubor", "value": "507" }, { "label": "LoyalSurbo", "value": "1599" }, { "label": "lspstoryte", "value": "5180" }, { "label": "lsuyangl", "value": "5285" }, { "label": "lu11034363", "value": "2734" }, { "label": "Luck", "value": "1579" }, { "label": "LuckPlunde", "value": "1720" }, { "label": "luckybag", "value": "3240" }, { "label": "LuckyE&", "value": "4071" }, { "label": "LuckyProta", "value": "368" }, { "label": "Luckytolau", "value": "3650" }, { "label": "LuDehua", "value": "2125" }, { "label": "LujingVill", "value": "4209" }, { "label": "lumpofjade", "value": "3468" }, { "label": "Lungdefici", "value": "4713" }, { "label": "LuoAichen", "value": "4633" }, { "label": "LuoFeige", "value": "5473" }, { "label": "LuoJiangsh", "value": "4791" }, { "label": "LuoLiisnot", "value": "6052" }, { "label": "LuoMuziyi", "value": "4302" }, { "label": "Luoran123", "value": "5990" }, { "label": "LuoShichao", "value": "5493" }, { "label": "LuoShu", "value": "3887" }, { "label": "LuoTianyi", "value": "1865" }, { "label": "LuoTianyic", "value": "3788" }, { "label": "LuoWei", "value": "1994" }, { "label": "LuoXiaoqia", "value": "5232" }, { "label": "LuoXIV", "value": "2530" }, { "label": "LuoYuqianq", "value": "2752" }, { "label": "LutherHark", "value": "4322" }, { "label": "Luxury", "value": "909" }, { "label": "luxurypenm", "value": "4378" }, { "label": "LY", "value": "2474" }, { "label": "machine", "value": "4351" }, { "label": "MadBoyTang", "value": "6088" }, { "label": "madman", "value": "4390" }, { "label": "madmanandf", "value": "4114" }, { "label": "Mag", "value": "5084" }, { "label": "Mage", "value": "1013" }, { "label": "Maggie", "value": "4955" }, { "label": "Magic", "value": "182" }, { "label": "MagicAcade", "value": "988" }, { "label": "MagicalAbi", "value": "1453" }, { "label": "MagicalBat", "value": "1587" }, { "label": "magicalcre", "value": "3444" }, { "label": "magicalgir", "value": "1744" }, { "label": "MagicalSpa", "value": "73" }, { "label": "MagicalTec", "value": "608" }, { "label": "MagicBeast", "value": "314" }, { "label": "MagicDrago", "value": "5817" }, { "label": "MagicForma", "value": "72" }, { "label": "magician", "value": "3700" }, { "label": "MagicOne", "value": "2595" }, { "label": "magicpet", "value": "5626" }, { "label": "MagicTides", "value": "2393" }, { "label": "magicwhip", "value": "4930" }, { "label": "MagicWorld", "value": "1114" }, { "label": "Maid", "value": "1560" }, { "label": "Maids", "value": "649" }, { "label": "MaifengXia", "value": "5962" }, { "label": "Makeafortu", "value": "2638" }, { "label": "makeamirac", "value": "2248" }, { "label": "Makecompla", "value": "3242" }, { "label": "makefine", "value": "3179" }, { "label": "makemehapp", "value": "4431" }, { "label": "Makemoney", "value": "3099" }, { "label": "MakemoneyC", "value": "2945" }, { "label": "MakemoneyI", "value": "3082" }, { "label": "MakemoneyM", "value": "2998" }, { "label": "MakemoneyM", "value": "2937" }, { "label": "MakemoneyR", "value": "3053" }, { "label": "MakemoneyR", "value": "2977" }, { "label": "MakemoneyR", "value": "2950" }, { "label": "Makemoneys", "value": "3018" }, { "label": "makepigeon", "value": "4612" }, { "label": "Makeupforf", "value": "4812" }, { "label": "Malaysian", "value": "1685" }, { "label": "MalaysianN", "value": "1684" }, { "label": "Male-Lead", "value": "1350" }, { "label": "Male-Prota", "value": "1378" }, { "label": "Malegod", "value": "3118" }, { "label": "MaleLead", "value": "716" }, { "label": "MaleMain-l", "value": "1208" }, { "label": "Malemainch", "value": "2878" }, { "label": "malematch", "value": "3628" }, { "label": "MaleMc", "value": "1091" }, { "label": "Maleprotag", "value": "1287" }, { "label": "MaleProtag", "value": "12" }, { "label": "MaleProtag", "value": "2900" }, { "label": "MaleProtag", "value": "965" }, { "label": "MaleProtag", "value": "1261" }, { "label": "MaleProtag", "value": "1079" }, { "label": "MaletoFema", "value": "480" }, { "label": "MaleYander", "value": "28" }, { "label": "maliciousw", "value": "5915" }, { "label": "mambafight", "value": "2718" }, { "label": "man", "value": "2194" }, { "label": "man-eating", "value": "4442" }, { "label": "Manage", "value": "3091" }, { "label": "Management", "value": "642" }, { "label": "Manchengma", "value": "4620" }, { "label": "mandaloria", "value": "1434" }, { "label": "Mangaka", "value": "809" }, { "label": "MangoKK", "value": "2435" }, { "label": "manhasbeco", "value": "5759" }, { "label": "Manhua", "value": "3844" }, { "label": "maninknigh", "value": "4954" }, { "label": "maninnarut", "value": "2486" }, { "label": "maninorang", "value": "5410" }, { "label": "Manipulati", "value": "1480" }, { "label": "Manipulati", "value": "597" }, { "label": "ManlyGayCo", "value": "96" }, { "label": "Manvs.Wild", "value": "3194" }, { "label": "manwithkid", "value": "4947" }, { "label": "manyfemale", "value": "2957" }, { "label": "MaodongChe", "value": "5542" }, { "label": "MaoLinwhol", "value": "5194" }, { "label": "Maonanbei!", "value": "5233" }, { "label": "maple", "value": "5818" }, { "label": "maplebirch", "value": "4315" }, { "label": "maplefores", "value": "3799" }, { "label": "mapleleafb", "value": "2854" }, { "label": "marchisado", "value": "5227" }, { "label": "Marioeatsc", "value": "3478" }, { "label": "Marlene&am", "value": "4731" }, { "label": "MarquisofB", "value": "1953" }, { "label": "Marriage", "value": "85" }, { "label": "MarriageCo", "value": "1543" }, { "label": "Marriageof", "value": "489" }, { "label": "Married", "value": "1235" }, { "label": "MarriedCou", "value": "1751" }, { "label": "marry", "value": "3386" }, { "label": "marrybycha", "value": "3218" }, { "label": "martialart", "value": "3055" }, { "label": "Martialart", "value": "130" }, { "label": "Martialart", "value": "5710" }, { "label": "MartialArt", "value": "1471" }, { "label": "MartialSpi", "value": "394" }, { "label": "MartialSpi", "value": "1364" }, { "label": "Marvel", "value": "537" }, { "label": "MarvelKing", "value": "2135" }, { "label": "MarvelPudd", "value": "2540" }, { "label": "MarvelUniv", "value": "553" }, { "label": "MarvelWang", "value": "5875" }, { "label": "marvelworl", "value": "1779" }, { "label": "Marysue", "value": "5077" }, { "label": "Masashi", "value": "3627" }, { "label": "MaskedAce", "value": "1864" }, { "label": "MaskedArmo", "value": "2860" }, { "label": "MaskedPich", "value": "4538" }, { "label": "Masochisti", "value": "45" }, { "label": "Masquerade", "value": "2253" }, { "label": "Mass-produ", "value": "3516" }, { "label": "Massacre", "value": "1634" }, { "label": "Massive", "value": "1073" }, { "label": "MassiveHar", "value": "891" }, { "label": "Master-App", "value": "1228" }, { "label": "Master-Dis", "value": "304" }, { "label": "Master-Ser", "value": "361" }, { "label": "Masterball", "value": "2277" }, { "label": "Masterflow", "value": "3307" }, { "label": "MasterGree", "value": "5213" }, { "label": "Masterishe", "value": "3512" }, { "label": "Masterofea", "value": "4103" }, { "label": "MasterofSa", "value": "5261" }, { "label": "MasterofSi", "value": "2806" }, { "label": "MasterPeng", "value": "4835" }, { "label": "MasterTian", "value": "6124" }, { "label": "MasterZhiq", "value": "6018" }, { "label": "Masturbati", "value": "733" }, { "label": "Matchmadei", "value": "1736" }, { "label": "math", "value": "1781" }, { "label": "Matriarchy", "value": "686" }, { "label": "MatthewisG", "value": "5188" }, { "label": "Mature", "value": "977" }, { "label": "MatureProt", "value": "97" }, { "label": "MCStrongFr", "value": "1509" }, { "label": "meatsauce", "value": "6015" }, { "label": "Mech", "value": "3289" }, { "label": "Mecha", "value": "804" }, { "label": "Mechanical", "value": "4214" }, { "label": "MechGod", "value": "3738" }, { "label": "Medical", "value": "4013" }, { "label": "medicalfem", "value": "5050" }, { "label": "MedicalKno", "value": "299" }, { "label": "MedicalKno", "value": "1110" }, { "label": "Medicine", "value": "795" }, { "label": "medicineme", "value": "2688" }, { "label": "medicinest", "value": "5484" }, { "label": "Medieval", "value": "429" }, { "label": "meetingdee", "value": "4060" }, { "label": "meetthebea", "value": "2151" }, { "label": "Melancholy", "value": "5620" }, { "label": "MemoryLoss", "value": "1519" }, { "label": "MemoryReve", "value": "1740" }, { "label": "MengBao", "value": "3176" }, { "label": "MengBaowea", "value": "2999" }, { "label": "MengLiangq", "value": "3917" }, { "label": "MengmeiBin", "value": "4463" }, { "label": "MengXiaohu", "value": "4010" }, { "label": "Mengxinsma", "value": "5248" }, { "label": "MengYuxin", "value": "5506" }, { "label": "Mensao", "value": "3322" }, { "label": "MentalIlln", "value": "1815" }, { "label": "Mentor", "value": "3191" }, { "label": "Meowalook", "value": "4259" }, { "label": "meowhokage", "value": "6097" }, { "label": "meowhum", "value": "4670" }, { "label": "Meowingbig", "value": "2087" }, { "label": "meowmeow", "value": "2080" }, { "label": "meowmeowsl", "value": "4647" }, { "label": "Mercenarie", "value": "167" }, { "label": "Mercenary", "value": "797" }, { "label": "Merchant", "value": "2886" }, { "label": "Merchants", "value": "527" }, { "label": "mermaid", "value": "2876" }, { "label": "metaphysic", "value": "3234" }, { "label": "metaphysic", "value": "3065" }, { "label": "Metauniver", "value": "3639" }, { "label": "Meteorstre", "value": "4009" }, { "label": "metropolis", "value": "5121" }, { "label": "Middleage", "value": "1447" }, { "label": "middleaged", "value": "5128" }, { "label": "MiddleAges", "value": "5098" }, { "label": "midnight", "value": "4377" }, { "label": "midnightbl", "value": "5030" }, { "label": "midnightli", "value": "4740" }, { "label": "midnightma", "value": "4280" }, { "label": "midnightsu", "value": "4848" }, { "label": "MidoriSaku", "value": "5254" }, { "label": "Miha", "value": "6114" }, { "label": "MikaMio", "value": "6098" }, { "label": "Milf", "value": "5089" }, { "label": "Military", "value": "86" }, { "label": "militaryfa", "value": "3402" }, { "label": "Militaryin", "value": "3401" }, { "label": "Milkgather", "value": "2831" }, { "label": "milkgrandm", "value": "2278" }, { "label": "Milkteapot", "value": "5932" }, { "label": "Millennium", "value": "5667" }, { "label": "Millennium", "value": "3581" }, { "label": "Millionair", "value": "1459" }, { "label": "milliondig", "value": "5228" }, { "label": "millionord", "value": "2370" }, { "label": "Miluo", "value": "2267" }, { "label": "Mimicry", "value": "1711" }, { "label": "MindBreak", "value": "621" }, { "label": "MindContro", "value": "389" }, { "label": "MindReader", "value": "1484" }, { "label": "mindreadin", "value": "2873" }, { "label": "MingDynast", "value": "3089" }, { "label": "MingDynast", "value": "3076" }, { "label": "MingDynast", "value": "2962" }, { "label": "MingDynast", "value": "2934" }, { "label": "Mingjiao", "value": "1945" }, { "label": "MingjiaoTi", "value": "2026" }, { "label": "MingXi", "value": "4822" }, { "label": "Ministryof", "value": "1609" }, { "label": "Misaki", "value": "4865" }, { "label": "miser", "value": "3140" }, { "label": "Miska10010", "value": "4694" }, { "label": "Mismatched", "value": "1343" }, { "label": "Mista", "value": "5025" }, { "label": "Mistresspl", "value": "2157" }, { "label": "MistyFlyin", "value": "2189" }, { "label": "Misunderst", "value": "1445" }, { "label": "Misunderst", "value": "113" }, { "label": "Misunderst", "value": "1565" }, { "label": "Misunderst", "value": "1072" }, { "label": "mixedintwo", "value": "2601" }, { "label": "MizukiSpir", "value": "4823" }, { "label": "MMORPG", "value": "202" }, { "label": "Mob", "value": "1584" }, { "label": "MobileGame", "value": "3717" }, { "label": "MobProtago", "value": "443" }, { "label": "Models", "value": "657" }, { "label": "ModerDays", "value": "1370" }, { "label": "Modern", "value": "601" }, { "label": "moderncomp", "value": "3319" }, { "label": "ModernDay", "value": "3" }, { "label": "ModernDays", "value": "754" }, { "label": "ModernFant", "value": "1027" }, { "label": "ModernKnow", "value": "307" }, { "label": "ModernKnow", "value": "825" }, { "label": "ModernLife", "value": "2908" }, { "label": "modernlove", "value": "1780" }, { "label": "modernmagi", "value": "5118" }, { "label": "modernmyst", "value": "3413" }, { "label": "ModernRoma", "value": "959" }, { "label": "ModernWorl", "value": "386" }, { "label": "Moedye", "value": "2790" }, { "label": "MoeHan", "value": "5597" }, { "label": "MoeShinkaw", "value": "2930" }, { "label": "Mofamily", "value": "2625" }, { "label": "MoFenghou", "value": "6014" }, { "label": "Moisturizi", "value": "5176" }, { "label": "MojiaAeros", "value": "2396" }, { "label": "MojiaHills", "value": "2355" }, { "label": "moltingsna", "value": "4736" }, { "label": "Momiji", "value": "3849" }, { "label": "MoneyGrubb", "value": "82" }, { "label": "MoneyGrumb", "value": "1199" }, { "label": "Monk", "value": "3633" }, { "label": "MonkeyKing", "value": "3759" }, { "label": "Monogamy", "value": "1197" }, { "label": "Monster", "value": "1136" }, { "label": "MonsterGir", "value": "569" }, { "label": "monsteridl", "value": "5727" }, { "label": "Monsters", "value": "230" }, { "label": "MonsterSoc", "value": "1151" }, { "label": "MonsterTam", "value": "74" }, { "label": "MonsterTar", "value": "1689" }, { "label": "monthand", "value": "5240" }, { "label": "moonandsta", "value": "4581" }, { "label": "moonbug", "value": "1931" }, { "label": "mooncrow", "value": "4763" }, { "label": "MoonlightS", "value": "2661" }, { "label": "moonlightw", "value": "5598" }, { "label": "Moonlikeah", "value": "2467" }, { "label": "moonnight", "value": "5508" }, { "label": "Moonsea", "value": "1923" }, { "label": "moonsetsea", "value": "4321" }, { "label": "moonshadow", "value": "4980" }, { "label": "moonshadow", "value": "4619" }, { "label": "moonshower", "value": "5408" }, { "label": "Moonstay", "value": "6030" }, { "label": "moontea", "value": "3793" }, { "label": "Moonwing", "value": "1789" }, { "label": "MoQingyi", "value": "4449" }, { "label": "Morallessp", "value": "1738" }, { "label": "MorallyAmb", "value": "1494" }, { "label": "moreandmor", "value": "2226" }, { "label": "moreastron", "value": "3804" }, { "label": "Morningclo", "value": "6001" }, { "label": "morninglig", "value": "5135" }, { "label": "morningred", "value": "4946" }, { "label": "mortalflow", "value": "3150" }, { "label": "MoshangHua", "value": "4655" }, { "label": "Mother-in-", "value": "3169" }, { "label": "Mother-in-", "value": "2990" }, { "label": "Motherland", "value": "3010" }, { "label": "Mountainan", "value": "4780" }, { "label": "mountainsa", "value": "5136" }, { "label": "Mountainsa", "value": "2154" }, { "label": "Mountainsa", "value": "1857" }, { "label": "MountainSe", "value": "4077" }, { "label": "mouthgun", "value": "3167" }, { "label": "movies", "value": "1413" }, { "label": "Movies", "value": "292" }, { "label": "movingbean", "value": "2127" }, { "label": "MoXianyu", "value": "3660" }, { "label": "MoXueqing", "value": "2030" }, { "label": "Moyangison", "value": "2570" }, { "label": "Mozun", "value": "3351" }, { "label": "Mpreg", "value": "257" }, { "label": "Mr.Despair", "value": "6112" }, { "label": "Mr.EasyPro", "value": "1987" }, { "label": "Mr.flag", "value": "5171" }, { "label": "Mr.Huo", "value": "2542" }, { "label": "Mr.Quin", "value": "3800" }, { "label": "Mr.ShuiYun", "value": "5844" }, { "label": "Mr.Xiaisfr", "value": "4240" }, { "label": "Mr.Zhaowho", "value": "5921" }, { "label": "MrBearBear", "value": "5391" }, { "label": "mrcoud", "value": "4260" }, { "label": "MrEarl", "value": "4671" }, { "label": "MrMo", "value": "1800" }, { "label": "MrSly", "value": "1610" }, { "label": "MrStardust", "value": "4838" }, { "label": "MsPerfect", "value": "1611" }, { "label": "Msturbatio", "value": "1022" }, { "label": "MuChenchen", "value": "4369" }, { "label": "mudbodhisa", "value": "2215" }, { "label": "MUGEN", "value": "4528" }, { "label": "Mukbang", "value": "1633" }, { "label": "MultipleBo", "value": "1393" }, { "label": "MultipleCP", "value": "756" }, { "label": "MultipleHi", "value": "1188" }, { "label": "multipleid", "value": "1295" }, { "label": "Multipleid", "value": "1729" }, { "label": "MultipleId", "value": "387" }, { "label": "MultipleLe", "value": "1650" }, { "label": "MultipleMo", "value": "1167" }, { "label": "MultiplePe", "value": "20" }, { "label": "MultiplePo", "value": "1277" }, { "label": "MultiplePO", "value": "279" }, { "label": "MultiplePr", "value": "501" }, { "label": "multiplere", "value": "1657" }, { "label": "MultipleRe", "value": "29" }, { "label": "MultipleRe", "value": "435" }, { "label": "MultipleTi", "value": "615" }, { "label": "MultipleTr", "value": "1152" }, { "label": "MultipleTr", "value": "293" }, { "label": "MultipleVe", "value": "1470" }, { "label": "MultipleWo", "value": "1092" }, { "label": "MultipleWo", "value": "1617" }, { "label": "Multiverse", "value": "1026" }, { "label": "MuMushuhua", "value": "5182" }, { "label": "MuNanzhi", "value": "5842" }, { "label": "Munchkin", "value": "5446" }, { "label": "mungbeanga", "value": "4159" }, { "label": "Murder", "value": "345" }, { "label": "Murders", "value": "366" }, { "label": "Mushroomma", "value": "6091" }, { "label": "Music", "value": "186" }, { "label": "musicwilll", "value": "1915" }, { "label": "mustdo", "value": "2199" }, { "label": "mustfire", "value": "3889" }, { "label": "Mutan", "value": "1574" }, { "label": "MutantPowe", "value": "1345" }, { "label": "MutatedCre", "value": "320" }, { "label": "Mutation", "value": "844" }, { "label": "Mutations", "value": "418" }, { "label": "MuteCharac", "value": "736" }, { "label": "Mutualcrus", "value": "1161" }, { "label": "MuxiMuxi", "value": "4078" }, { "label": "MuZixi", "value": "4924" }, { "label": "mygrandma", "value": "5512" }, { "label": "MyGreatQin", "value": "3487" }, { "label": "MyHeroAcad", "value": "1340" }, { "label": "mylittlesi", "value": "2225" }, { "label": "MyLubanThi", "value": "2630" }, { "label": "mymeatisde", "value": "3782" }, { "label": "MynameisDa", "value": "2079" }, { "label": "mynameista", "value": "2270" }, { "label": "MynameisZh", "value": "3511" }, { "label": "mysteries", "value": "3732" }, { "label": "mysterious", "value": "5127" }, { "label": "Mysterious", "value": "388" }, { "label": "Mysterious", "value": "3634" }, { "label": "Mysterious", "value": "656" }, { "label": "Mysterious", "value": "4890" }, { "label": "Mysterious", "value": "4769" }, { "label": "Mysterious", "value": "1096" }, { "label": "Mysterious", "value": "363" }, { "label": "Mystery", "value": "936" }, { "label": "MysterySol", "value": "185" }, { "label": "Mystical", "value": "764" }, { "label": "MysticBlue", "value": "4929" }, { "label": "Myswordisc", "value": "4393" }, { "label": "Myth", "value": "5079" }, { "label": "Mythical", "value": "666" }, { "label": "MythicalBe", "value": "427" }, { "label": "mythicalfi", "value": "2575" }, { "label": "mythicalma", "value": "2440" }, { "label": "Mythology", "value": "484" }, { "label": "Mythos", "value": "1651" }, { "label": "mythunpara", "value": "2408" }, { "label": "mywife", "value": "2448" }, { "label": "mywifeisab", "value": "3784" }, { "label": "mywifeisya", "value": "2754" }, { "label": "NA", "value": "791" }, { "label": "Nagasakiha", "value": "6099" }, { "label": "NagatoYuki", "value": "4963" }, { "label": "NagiNagibe", "value": "4559" }, { "label": "NaiNaiHeTi", "value": "5500" }, { "label": "NaiTsujiCi", "value": "5351" }, { "label": "NaiveProta", "value": "75" }, { "label": "Nakaji", "value": "3614" }, { "label": "namelessna", "value": "5971" }, { "label": "NamoAmitab", "value": "4805" }, { "label": "NanaSauceL", "value": "5621" }, { "label": "Nanshen", "value": "2307" }, { "label": "Napoleon", "value": "1497" }, { "label": "Narcissist", "value": "469" }, { "label": "Nari", "value": "4481" }, { "label": "Naruto", "value": "335" }, { "label": "narutoceda", "value": "2484" }, { "label": "NarutoClou", "value": "2479" }, { "label": "narutodrag", "value": "3617" }, { "label": "NarutoNovi", "value": "5640" }, { "label": "NarutoQuiz", "value": "2485" }, { "label": "Narutosix", "value": "5984" }, { "label": "narutovill", "value": "4306" }, { "label": "NarutoxRea", "value": "2588" }, { "label": "Nasida", "value": "4907" }, { "label": "NationalDi", "value": "3590" }, { "label": "Nationalis", "value": "305" }, { "label": "nationalmy", "value": "3641" }, { "label": "NationBuil", "value": "1115" }, { "label": "Nativebamb", "value": "3727" }, { "label": "natureover", "value": "3649" }, { "label": "Navy", "value": "1097" }, { "label": "nb9527", "value": "4129" }, { "label": "NBA", "value": "617" }, { "label": "Near-Death", "value": "76" }, { "label": "Necromance", "value": "422" }, { "label": "Necromancy", "value": "4444" }, { "label": "Need", "value": "3751" }, { "label": "Needsquirr", "value": "4376" }, { "label": "Neepeatsme", "value": "4942" }, { "label": "Neet", "value": "645" }, { "label": "NegaNebulu", "value": "5502" }, { "label": "neromywife", "value": "3940" }, { "label": "NetherNine", "value": "4127" }, { "label": "Netorare", "value": "77" }, { "label": "Netori", "value": "78" }, { "label": "Netred", "value": "3712" }, { "label": "networkdis", "value": "4644" }, { "label": "neverdream", "value": "4539" }, { "label": "neverfail", "value": "2567" }, { "label": "nevertooba", "value": "4415" }, { "label": "Neveruseso", "value": "5964" }, { "label": "newbie", "value": "6071" }, { "label": "newnine", "value": "5462" }, { "label": "newspapera", "value": "4471" }, { "label": "nextyear", "value": "6141" }, { "label": "NiangkouSa", "value": "2337" }, { "label": "nicheoccup", "value": "5125" }, { "label": "Nidoriya", "value": "4934" }, { "label": "Nidouzi", "value": "2587" }, { "label": "NightAllur", "value": "6000" }, { "label": "nightdance", "value": "2725" }, { "label": "NightDance", "value": "5998" }, { "label": "nightfire", "value": "1863" }, { "label": "nightlangu", "value": "5571" }, { "label": "Nightmare", "value": "346" }, { "label": "Nightmares", "value": "461" }, { "label": "nightrain", "value": "4651" }, { "label": "NightSheng", "value": "5999" }, { "label": "nightsilen", "value": "1891" }, { "label": "nightsleep", "value": "4237" }, { "label": "nightwhite", "value": "4758" }, { "label": "nihilism", "value": "1437" }, { "label": "NikaBaka", "value": "6013" }, { "label": "Nim", "value": "3579" }, { "label": "Nine", "value": "4298" }, { "label": "Nine-color", "value": "2436" }, { "label": "Nine-Taile", "value": "2178" }, { "label": "Ninedays", "value": "3931" }, { "label": "NinefoldSe", "value": "1959" }, { "label": "NineHeaven", "value": "5253" }, { "label": "nineonemor", "value": "4038" }, { "label": "ninepositi", "value": "3618" }, { "label": "NineShaoSh", "value": "5821" }, { "label": "nineshipju", "value": "4051" }, { "label": "NineStarMa", "value": "4523" }, { "label": "NineWarsof", "value": "2082" }, { "label": "NingYi", "value": "3956" }, { "label": "ninja", "value": "1756" }, { "label": "Ninjapirat", "value": "1868" }, { "label": "Ninjas", "value": "460" }, { "label": "ninthinthe", "value": "3977" }, { "label": "ninthsweet", "value": "6066" }, { "label": "NiShiliu", "value": "5043" }, { "label": "NiuBao", "value": "2085" }, { "label": "no", "value": "3808" }, { "label": "No-Harem", "value": "5082" }, { "label": "No.XNUMXon", "value": "3622" }, { "label": "No.XNUMXXi", "value": "5762" }, { "label": "Noble", "value": "1600" }, { "label": "Noblenessi", "value": "4832" }, { "label": "Nobles", "value": "280" }, { "label": "NoblesPoli", "value": "4357" }, { "label": "Nocar", "value": "5742" }, { "label": "nocarton", "value": "5961" }, { "label": "NoCheats", "value": "4354" }, { "label": "NoCp", "value": "1605" }, { "label": "NoCPRelaxe", "value": "5317" }, { "label": "NoCPreveng", "value": "5316" }, { "label": "Nodiscipli", "value": "3249" }, { "label": "nodream", "value": "3906" }, { "label": "Nogoldenfi", "value": "3145" }, { "label": "NoHarem", "value": "1290" }, { "label": "noheroine", "value": "3262" }, { "label": "nohouse", "value": "5743" }, { "label": "noisyfish", "value": "5495" }, { "label": "nokillingm", "value": "1017" }, { "label": "Noless", "value": "2696" }, { "label": "nolove", "value": "4768" }, { "label": "nomooninma", "value": "4733" }, { "label": "Non-Humanl", "value": "1667" }, { "label": "Non-HumanM", "value": "4359" }, { "label": "Non-humano", "value": "143" }, { "label": "Non-humanP", "value": "851" }, { "label": "Non-legacy", "value": "5448" }, { "label": "Non-System", "value": "1311" }, { "label": "noncat", "value": "2578" }, { "label": "nonhuman", "value": "1401" }, { "label": "NonHuman", "value": "1111" }, { "label": "NonHumanPr", "value": "1078" }, { "label": "nonpondfis", "value": "5799" }, { "label": "noon", "value": "5374" }, { "label": "NoPairing", "value": "1278" }, { "label": "noregrets", "value": "4855" }, { "label": "normalluck", "value": "4079" }, { "label": "NoRomance", "value": "1015" }, { "label": "NorthDepar", "value": "5426" }, { "label": "Northeastb", "value": "5592" }, { "label": "Northeastb", "value": "3659" }, { "label": "NorthMu", "value": "3768" }, { "label": "NorthSeaMo", "value": "5487" }, { "label": "Northstar", "value": "4719" }, { "label": "noshadow", "value": "4408" }, { "label": "Nosnacks", "value": "2081" }, { "label": "nostring", "value": "4825" }, { "label": "NoSystem", "value": "1537" }, { "label": "notbad", "value": "4526" }, { "label": "notcold", "value": "4986" }, { "label": "notfalling", "value": "4029" }, { "label": "notgreedy", "value": "4224" }, { "label": "notguilty", "value": "3725" }, { "label": "NotHarem", "value": "996" }, { "label": "NotIke", "value": "4524" }, { "label": "notlevelth", "value": "2564" }, { "label": "notnew", "value": "5468" }, { "label": "Notraceofm", "value": "3762" }, { "label": "notscary", "value": "2488" }, { "label": "nottowersa", "value": "4478" }, { "label": "notwo", "value": "3466" }, { "label": "NotYaoi", "value": "1032" }, { "label": "Nowadays", "value": "2604" }, { "label": "nowife", "value": "5744" }, { "label": "NPC", "value": "3141" }, { "label": "NSFW", "value": "5087" }, { "label": "NTL", "value": "4358" }, { "label": "NuclearBea", "value": "3830" }, { "label": "Nudity", "value": "972" }, { "label": "Numberofwo", "value": "5133" }, { "label": "Nunknightw", "value": "3908" }, { "label": "Nurses", "value": "637" }, { "label": "NuShengsoo", "value": "3510" }, { "label": "Obanbrothe", "value": "2158" }, { "label": "Observer23", "value": "5960" }, { "label": "observerwx", "value": "4735" }, { "label": "Obsession", "value": "3831" }, { "label": "ObsessiveL", "value": "205" }, { "label": "offical", "value": "2898" }, { "label": "Office", "value": "3606" }, { "label": "OfficeRoma", "value": "517" }, { "label": "OhLL", "value": "4842" }, { "label": "ohmygod", "value": "2446" }, { "label": "oldage", "value": "1910" }, { "label": "OldAlfred", "value": "5099" }, { "label": "oldchicken", "value": "3997" }, { "label": "oldclawmac", "value": "5016" }, { "label": "olddemon", "value": "2129" }, { "label": "Olderlovei", "value": "4324" }, { "label": "OlderLoveI", "value": "364" }, { "label": "oldfacesli", "value": "5379" }, { "label": "oldfaceunc", "value": "2698" }, { "label": "oldfashion", "value": "5288" }, { "label": "oldfisheat", "value": "2044" }, { "label": "Oldghostsm", "value": "2469" }, { "label": "Oldies", "value": "4606" }, { "label": "oldlady", "value": "4553" }, { "label": "oldmaneati", "value": "3770" }, { "label": "oldmonth", "value": "4480" }, { "label": "OldQinpeop", "value": "1999" }, { "label": "OldTeaTree", "value": "4997" }, { "label": "oldtombrob", "value": "2487" }, { "label": "oldwalnut", "value": "5297" }, { "label": "OldWuupsta", "value": "5650" }, { "label": "OldYdoesno", "value": "5434" }, { "label": "omega", "value": "4341" }, { "label": "Omegaverse", "value": "301" }, { "label": "On-HookSys", "value": "1615" }, { "label": "One", "value": "3677" }, { "label": "One-Piece", "value": "2874" }, { "label": "Onebyone", "value": "5661" }, { "label": "Oneflower", "value": "2722" }, { "label": "OneLeafRed", "value": "2499" }, { "label": "OneLeafSea", "value": "4739" }, { "label": "onemelonri", "value": "2724" }, { "label": "onemeterst", "value": "2794" }, { "label": "oneminustw", "value": "5898" }, { "label": "onemouthfu", "value": "4047" }, { "label": "OnenightHo", "value": "5880" }, { "label": "Oneofthebe", "value": "5014" }, { "label": "onepiece", "value": "1411" }, { "label": "OnePiece", "value": "336" }, { "label": "Onepunch", "value": "1063" }, { "label": "OnePunchMa", "value": "1328" }, { "label": "Onepunchmo", "value": "2495" }, { "label": "Onepunchto", "value": "2709" }, { "label": "OneSwordEm", "value": "4409" }, { "label": "OneSwordFl", "value": "2039" }, { "label": "OneSwordLi", "value": "5560" }, { "label": "Onethousan", "value": "2083" }, { "label": "onetree", "value": "2723" }, { "label": "Oneyearold", "value": "2715" }, { "label": "Online", "value": "1117" }, { "label": "onlinegame", "value": "3394" }, { "label": "Onlinegame", "value": "3168" }, { "label": "OnlineGame", "value": "762" }, { "label": "OnlineRoma", "value": "638" }, { "label": "onlyloveyo", "value": "1952" }, { "label": "onlyyouth", "value": "2736" }, { "label": "Onocat", "value": "3406" }, { "label": "onparadise", "value": "2283" }, { "label": "oooobe", "value": "2392" }, { "label": "Open", "value": "3259" }, { "label": "openasmall", "value": "1806" }, { "label": "openflow", "value": "3361" }, { "label": "openingflo", "value": "3149" }, { "label": "openingflo", "value": "3020" }, { "label": "Openupwast", "value": "3264" }, { "label": "Openyourey", "value": "2327" }, { "label": "Operation", "value": "2896" }, { "label": "Operationr", "value": "3925" }, { "label": "OpFemalePr", "value": "1189" }, { "label": "OPheroine", "value": "1469" }, { "label": "OPMC", "value": "892" }, { "label": "OPProtagon", "value": "1183" }, { "label": "orangeappl", "value": "2239" }, { "label": "orangeglor", "value": "3765" }, { "label": "OrangeOche", "value": "5510" }, { "label": "Orangespar", "value": "3490" }, { "label": "Orc", "value": "1298" }, { "label": "Orcs", "value": "720" }, { "label": "Orcsworld", "value": "966" }, { "label": "Ordinary", "value": "5887" }, { "label": "Organizati", "value": "1056" }, { "label": "OrganizedC", "value": "174" }, { "label": "Orientalde", "value": "5705" }, { "label": "orientalfa", "value": "4273" }, { "label": "Orientalfa", "value": "694" }, { "label": "Orientalle", "value": "6035" }, { "label": "Orientalre", "value": "4927" }, { "label": "orientalsa", "value": "3747" }, { "label": "origamista", "value": "5863" }, { "label": "originalco", "value": "3238" }, { "label": "originalco", "value": "3046" }, { "label": "Originalfi", "value": "3702" }, { "label": "OriginalON", "value": "1647" }, { "label": "OriginalUn", "value": "2325" }, { "label": "OriginalYe", "value": "2705" }, { "label": "Origuchi", "value": "2742" }, { "label": "Orphan", "value": "1247" }, { "label": "OrphanMC", "value": "933" }, { "label": "Orphans", "value": "428" }, { "label": "Otaku", "value": "472" }, { "label": "Otakuisnot", "value": "4585" }, { "label": "Otezetta", "value": "2117" }, { "label": "otherworld", "value": "5685" }, { "label": "Otoichi", "value": "3929" }, { "label": "OtomeGame", "value": "1580" }, { "label": "OTTGroupCh", "value": "2472" }, { "label": "Ottointhek", "value": "5802" }, { "label": "ourraccoon", "value": "4561" }, { "label": "Outcasts", "value": "991" }, { "label": "Outdoors", "value": "5092" }, { "label": "OuterSpace", "value": "409" }, { "label": "outingbook", "value": "4429" }, { "label": "Outlawluna", "value": "3684" }, { "label": "Outstandin", "value": "5179" }, { "label": "OuyangRuox", "value": "5458" }, { "label": "Over-Power", "value": "4325" }, { "label": "overbearin", "value": "3443" }, { "label": "Overhead", "value": "3225" }, { "label": "OverheadHi", "value": "2905" }, { "label": "OverheadSu", "value": "5321" }, { "label": "Overlord", "value": "1184" }, { "label": "Overpowerd", "value": "821" }, { "label": "overpowere", "value": "1394" }, { "label": "Overpowere", "value": "876" }, { "label": "Overpowere", "value": "864" }, { "label": "Overpowere", "value": "1214" }, { "label": "Overpowere", "value": "41" }, { "label": "Overprotec", "value": "717" }, { "label": "Overseasca", "value": "3778" }, { "label": "owe", "value": "5252" }, { "label": "Owner", "value": "3636" }, { "label": "ownerofwhi", "value": "4025" }, { "label": "PacifistPr", "value": "1186" }, { "label": "Painter", "value": "1262" }, { "label": "Painting", "value": "1229" }, { "label": "Paizuri", "value": "752" }, { "label": "palace", "value": "5048" }, { "label": "palacemaid", "value": "3452" }, { "label": "paleandwhi", "value": "2264" }, { "label": "palebluefl", "value": "3817" }, { "label": "PamperingR", "value": "591" }, { "label": "Panda&0", "value": "3865" }, { "label": "pangolin", "value": "6105" }, { "label": "panic", "value": "2166" }, { "label": "Papaisvery", "value": "2647" }, { "label": "papergrayo", "value": "5164" }, { "label": "ParalelWor", "value": "823" }, { "label": "ParallelWo", "value": "458" }, { "label": "ParallelWo", "value": "819" }, { "label": "Paranoid", "value": "1168" }, { "label": "Parasite", "value": "1554" }, { "label": "Parasites", "value": "331" }, { "label": "ParentComp", "value": "650" }, { "label": "Parenting", "value": "5454" }, { "label": "Parody", "value": "620" }, { "label": "Part-TimeJ", "value": "268" }, { "label": "part-timeo", "value": "2025" }, { "label": "Partnerofa", "value": "1366" }, { "label": "Passer-by", "value": "4940" }, { "label": "passerbylo", "value": "5557" }, { "label": "passingmap", "value": "5527" }, { "label": "PastandPre", "value": "3171" }, { "label": "PastandPre", "value": "2994" }, { "label": "PastPlaysa", "value": "98" }, { "label": "PastPlaysa", "value": "497" }, { "label": "PastTrauma", "value": "114" }, { "label": "patientswi", "value": "3812" }, { "label": "Patriarch", "value": "855" }, { "label": "Peacefulan", "value": "5269" }, { "label": "Peachgift", "value": "3671" }, { "label": "peachmelon", "value": "6069" }, { "label": "Peasant", "value": "3303" }, { "label": "PeasPigeon", "value": "4544" }, { "label": "Peerlessso", "value": "1795" }, { "label": "PeerlessSw", "value": "1791" }, { "label": "penandinkw", "value": "3675" }, { "label": "pencildraw", "value": "5474" }, { "label": "pendragon", "value": "2827" }, { "label": "pendreamst", "value": "2096" }, { "label": "penhero", "value": "5231" }, { "label": "Pennamenot", "value": "4626" }, { "label": "pentaclekn", "value": "4905" }, { "label": "Peoplearef", "value": "5144" }, { "label": "peopleflyi", "value": "3522" }, { "label": "Peoplenear", "value": "2632" }, { "label": "Peoplepass", "value": "5824" }, { "label": "peoplewhoe", "value": "5723" }, { "label": "Pepsi", "value": "4960" }, { "label": "perfectmag", "value": "1803" }, { "label": "perfecttom", "value": "5581" }, { "label": "PerfectWor", "value": "1332" }, { "label": "Persistenc", "value": "3872" }, { "label": "Persistent", "value": "274" }, { "label": "Personalit", "value": "137" }, { "label": "personusin", "value": "5772" }, { "label": "pervertedi", "value": "4786" }, { "label": "PervertedP", "value": "281" }, { "label": "Pet", "value": "1206" }, { "label": "Pets", "value": "107" }, { "label": "petsurviva", "value": "2511" }, { "label": "PhantomThi", "value": "3370" }, { "label": "Pharmacist", "value": "689" }, { "label": "Philosophi", "value": "774" }, { "label": "Phoenixes", "value": "236" }, { "label": "Phosphorus", "value": "4264" }, { "label": "Photograph", "value": "3556" }, { "label": "Photograph", "value": "705" }, { "label": "Physician", "value": "3710" }, { "label": "Pickingupp", "value": "4436" }, { "label": "PickingupY", "value": "5526" }, { "label": "pigc", "value": "4262" }, { "label": "pigeonbeek", "value": "5896" }, { "label": "pigeonnext", "value": "2599" }, { "label": "Pigeonsare", "value": "4673" }, { "label": "pigeonsnev", "value": "4113" }, { "label": "PillBasedC", "value": "399" }, { "label": "PillConcoc", "value": "400" }, { "label": "PillConcot", "value": "674" }, { "label": "Pilots", "value": "1592" }, { "label": "Pipifish", "value": "2234" }, { "label": "PipiGray", "value": "4272" }, { "label": "Pipisanqin", "value": "6079" }, { "label": "Pirate", "value": "1166" }, { "label": "Pirateacto", "value": "2489" }, { "label": "PirateCour", "value": "2497" }, { "label": "PirateDaQi", "value": "1844" }, { "label": "PirateGrea", "value": "2147" }, { "label": "Piratehaha", "value": "1914" }, { "label": "Pirates", "value": "546" }, { "label": "PiratesofH", "value": "2748" }, { "label": "PirateSumm", "value": "4418" }, { "label": "PirateWars", "value": "2491" }, { "label": "PiratexFai", "value": "2559" }, { "label": "Piscesinth", "value": "2681" }, { "label": "Piscesscum", "value": "4695" }, { "label": "pittree", "value": "3728" }, { "label": "pity", "value": "3772" }, { "label": "Plane", "value": "3120" }, { "label": "planeapple", "value": "6024" }, { "label": "Planets", "value": "1004" }, { "label": "PlaneWars", "value": "3972" }, { "label": "Plants", "value": "1137" }, { "label": "Playaswate", "value": "5973" }, { "label": "PlayBlueMo", "value": "2069" }, { "label": "Playboymal", "value": "1275" }, { "label": "Playboys", "value": "653" }, { "label": "Player", "value": "1562" }, { "label": "PlayerKill", "value": "1690" }, { "label": "Players", "value": "1245" }, { "label": "PlayfulPro", "value": "714" }, { "label": "Playingcat", "value": "4922" }, { "label": "PlayingGho", "value": "1482" }, { "label": "playYaoer", "value": "5358" }, { "label": "pleasantin", "value": "2054" }, { "label": "pleasecall", "value": "5018" }, { "label": "Pleaseforg", "value": "2933" }, { "label": "pleasehave", "value": "6084" }, { "label": "pleasehitm", "value": "4097" }, { "label": "Pleasesixt", "value": "4396" }, { "label": "plumthirte", "value": "2156" }, { "label": "Pochita", "value": "5428" }, { "label": "poems", "value": "1438" }, { "label": "Poetry", "value": "731" }, { "label": "Poison1", "value": "4686" }, { "label": "PoisonConc", "value": "3892" }, { "label": "poisondoct", "value": "3409" }, { "label": "PoisonMout", "value": "1070" }, { "label": "Poisonoust", "value": "3426" }, { "label": "Poisons", "value": "370" }, { "label": "Pokemon", "value": "587" }, { "label": "pokemonelf", "value": "5957" }, { "label": "PokémonGo", "value": "2761" }, { "label": "PokémonTi", "value": "2492" }, { "label": "PokémonUn", "value": "4221" }, { "label": "PokémonVo", "value": "2155" }, { "label": "polarflow", "value": "3407" }, { "label": "PoleStarWh", "value": "4983" }, { "label": "Police", "value": "419" }, { "label": "Policemen", "value": "3587" }, { "label": "policyflow", "value": "3198" }, { "label": "PoliteProt", "value": "684" }, { "label": "PoliticalI", "value": "949" }, { "label": "PoliticalS", "value": "1279" }, { "label": "Politics", "value": "43" }, { "label": "Polyandry", "value": "669" }, { "label": "Polygamy", "value": "282" }, { "label": "pomeloslee", "value": "4987" }, { "label": "Pony", "value": "3603" }, { "label": "Poor", "value": "4355" }, { "label": "Poorcrazy", "value": "1787" }, { "label": "PoorProtag", "value": "522" }, { "label": "PoorRoRich", "value": "1535" }, { "label": "PoortoRich", "value": "132" }, { "label": "PopeBibiDo", "value": "2494" }, { "label": "Popi", "value": "4244" }, { "label": "Popular", "value": "5072" }, { "label": "PopularLov", "value": "592" }, { "label": "Popularsci", "value": "3335" }, { "label": "Poriacocos", "value": "4712" }, { "label": "porkbuns", "value": "5204" }, { "label": "porridge", "value": "4008" }, { "label": "PortableSp", "value": "951" }, { "label": "PortalFant", "value": "3421" }, { "label": "Positive", "value": "5888" }, { "label": "Positiveel", "value": "2098" }, { "label": "positiveen", "value": "3202" }, { "label": "PositiveLe", "value": "1455" }, { "label": "Possession", "value": "605" }, { "label": "Possessive", "value": "4" }, { "label": "Possessive", "value": "1211" }, { "label": "Possessive", "value": "5886" }, { "label": "Post-apoca", "value": "401" }, { "label": "Potatoesar", "value": "3993" }, { "label": "potatogirl", "value": "2729" }, { "label": "PotatoRawS", "value": "5796" }, { "label": "poundedric", "value": "4365" }, { "label": "pouringice", "value": "5218" }, { "label": "PovertyAll", "value": "1280" }, { "label": "PowerCoupl", "value": "47" }, { "label": "Powerfulco", "value": "1355" }, { "label": "Powerfulmi", "value": "3104" }, { "label": "PowerGener", "value": "4375" }, { "label": "Powerhouse", "value": "3270" }, { "label": "PowersTran", "value": "1066" }, { "label": "PowerStrug", "value": "690" }, { "label": "pps", "value": "3760" }, { "label": "practice", "value": "3346" }, { "label": "practicefl", "value": "3611" }, { "label": "PragmaticP", "value": "593" }, { "label": "PraiseforD", "value": "4806" }, { "label": "Precogniti", "value": "724" }, { "label": "Preferthew", "value": "4869" }, { "label": "Pregnancy", "value": "83" }, { "label": "prehistori", "value": "4482" }, { "label": "Prehistori", "value": "1362" }, { "label": "Prehistori", "value": "1352" }, { "label": "PresentDay", "value": "1732" }, { "label": "President", "value": "1715" }, { "label": "PretendLov", "value": "250" }, { "label": "Pretendtob", "value": "2976" }, { "label": "PrettyGirl", "value": "5073" }, { "label": "PreviousLi", "value": "138" }, { "label": "PreviousLi", "value": "685" }, { "label": "Priest", "value": "3708" }, { "label": "Priestesse", "value": "1059" }, { "label": "Priests", "value": "707" }, { "label": "PrimeMinis", "value": "3775" }, { "label": "Primitives", "value": "1138" }, { "label": "PrimitiveT", "value": "4336" }, { "label": "Primitivew", "value": "967" }, { "label": "prince", "value": "3163" }, { "label": "PrinceofHe", "value": "2847" }, { "label": "PrinceofTe", "value": "1306" }, { "label": "PrinceQing", "value": "2631" }, { "label": "Princess", "value": "1527" }, { "label": "Prison", "value": "560" }, { "label": "ProactiveP", "value": "423" }, { "label": "probabilit", "value": "4844" }, { "label": "prodigal", "value": "5714" }, { "label": "Prodigalso", "value": "5857" }, { "label": "Profession", "value": "3201" }, { "label": "Profession", "value": "4202" }, { "label": "Professor", "value": "928" }, { "label": "program", "value": "5416" }, { "label": "Programmer", "value": "704" }, { "label": "Programmin", "value": "3848" }, { "label": "Progressio", "value": "1652" }, { "label": "propertyst", "value": "3569" }, { "label": "Prophecies", "value": "718" }, { "label": "Pros", "value": "3300" }, { "label": "Prosperity", "value": "4131" }, { "label": "Prosperous", "value": "4784" }, { "label": "Prostitute", "value": "447" }, { "label": "Protagonis", "value": "1640" }, { "label": "Protagonis", "value": "1037" }, { "label": "Protagonis", "value": "2881" }, { "label": "Protagonis", "value": "1525" }, { "label": "Protagonis", "value": "1341" }, { "label": "Protagonis", "value": "1305" }, { "label": "Protagonis", "value": "1129" }, { "label": "Protagonis", "value": "462" }, { "label": "Protagonis", "value": "283" }, { "label": "Protagonis", "value": "49" }, { "label": "protectsho", "value": "3227" }, { "label": "Protectthe", "value": "4512" }, { "label": "Proud", "value": "3316" }, { "label": "PseudoHolo", "value": "1281" }, { "label": "PseudoReli", "value": "1282" }, { "label": "psionic", "value": "2910" }, { "label": "Psychic", "value": "1067" }, { "label": "PsychicPow", "value": "715" }, { "label": "Psychokill", "value": "5979" }, { "label": "Psychologi", "value": "1045" }, { "label": "Psychology", "value": "1544" }, { "label": "Psychopath", "value": "498" }, { "label": "Punch", "value": "1960" }, { "label": "Puppet", "value": "4301" }, { "label": "puppy", "value": "3599" }, { "label": "PurebloodS", "value": "5657" }, { "label": "pureimpuls", "value": "2538" }, { "label": "purekitten", "value": "2465" }, { "label": "PureLove", "value": "3838" }, { "label": "purelovefa", "value": "5719" }, { "label": "purepigeon", "value": "4015" }, { "label": "puresenior", "value": "5524" }, { "label": "purewhiteo", "value": "4213" }, { "label": "Purple", "value": "4493" }, { "label": "Purple-hai", "value": "5853" }, { "label": "purplebrok", "value": "5168" }, { "label": "PurpleDuri", "value": "5789" }, { "label": "PurpleEmpe", "value": "4155" }, { "label": "PurpleNaya", "value": "4808" }, { "label": "purpleslim", "value": "3540" }, { "label": "Putdownthe", "value": "5924" }, { "label": "Puzzles", "value": "1529" }, { "label": "qhfishinga", "value": "5981" }, { "label": "QianandQia", "value": "5868" }, { "label": "Qiandengwi", "value": "5721" }, { "label": "Qianlong", "value": "3645" }, { "label": "Qianqianra", "value": "4582" }, { "label": "QianshanTw", "value": "2735" }, { "label": "QianXixi", "value": "3718" }, { "label": "QianXunxia", "value": "3683" }, { "label": "qidian", "value": "5044" }, { "label": "Qilixiang", "value": "4045" }, { "label": "QiLuck", "value": "1641" }, { "label": "qimao", "value": "5120" }, { "label": "QinBichu", "value": "1859" }, { "label": "QinBuxiang", "value": "4289" }, { "label": "QingDynast", "value": "3174" }, { "label": "QingDynast", "value": "2993" }, { "label": "Qingfeng1D", "value": "1853" }, { "label": "QingfengYu", "value": "4864" }, { "label": "QingheTaoi", "value": "2032" }, { "label": "QinghuiYen", "value": "5303" }, { "label": "Qingliansw", "value": "1970" }, { "label": "Qingluan", "value": "3693" }, { "label": "Qingsanren", "value": "5820" }, { "label": "QingWeixin", "value": "5368" }, { "label": "Qingxinyuu", "value": "4852" }, { "label": "qingyu", "value": "2360" }, { "label": "QinHan", "value": "3230" }, { "label": "QinHanCros", "value": "3039" }, { "label": "QinHanTang", "value": "4447" }, { "label": "QinShiSwor", "value": "5569" }, { "label": "QinTangFei", "value": "5610" }, { "label": "QiuZiXiaXu", "value": "3995" }, { "label": "QiXuan", "value": "2111" }, { "label": "Qiyao&0", "value": "5603" }, { "label": "QiyueLiuhu", "value": "5730" }, { "label": "QiyueShiqi", "value": "4752" }, { "label": "QiYuwholov", "value": "4817" }, { "label": "QT", "value": "1758" }, { "label": "Quackhamst", "value": "5601" }, { "label": "quantumgoo", "value": "5396" }, { "label": "QuartetSev", "value": "5486" }, { "label": "Quasar", "value": "5568" }, { "label": "Quasi-GodS", "value": "1919" }, { "label": "Queen", "value": "3574" }, { "label": "QueenofBla", "value": "2445" }, { "label": "Question&a", "value": "1728" }, { "label": "QuickPass", "value": "1621" }, { "label": "QuickTrans", "value": "599" }, { "label": "QuickTrans", "value": "944" }, { "label": "QuickTrans", "value": "1659" }, { "label": "Quickwear", "value": "1547" }, { "label": "QuietChara", "value": "719" }, { "label": "quietflowe", "value": "1847" }, { "label": "QuirkyChar", "value": "198" }, { "label": "Quququ", "value": "2613" }, { "label": "R-13", "value": "727" }, { "label": "R-15", "value": "646" }, { "label": "R-18", "value": "5455" }, { "label": "R18", "value": "5058" }, { "label": "RabbitToot", "value": "2539" }, { "label": "raccoonrac", "value": "5028" }, { "label": "raccoonsho", "value": "3797" }, { "label": "RaceChange", "value": "604" }, { "label": "Racism", "value": "13" }, { "label": "Raiders", "value": "3250" }, { "label": "Raids", "value": "971" }, { "label": "Railgun", "value": "4490" }, { "label": "rainandsno", "value": "2254" }, { "label": "Rainandsun", "value": "4537" }, { "label": "rainbeans", "value": "3769" }, { "label": "rainboweig", "value": "2682" }, { "label": "rainclearn", "value": "5634" }, { "label": "Rainfallsf", "value": "4104" }, { "label": "Rainhitsba", "value": "4164" }, { "label": "Rainink", "value": "5154" }, { "label": "rainiscomi", "value": "4368" }, { "label": "rainyday", "value": "5480" }, { "label": "rainydaywi", "value": "2788" }, { "label": "rainystars", "value": "4892" }, { "label": "Raiseaghos", "value": "2611" }, { "label": "raisedache", "value": "2600" }, { "label": "rakepig", "value": "5398" }, { "label": "randomstre", "value": "5631" }, { "label": "randomwhy", "value": "5373" }, { "label": "RankingLis", "value": "1743" }, { "label": "RankSystem", "value": "997" }, { "label": "Ranwho", "value": "3969" }, { "label": "Rape", "value": "402" }, { "label": "Rapeseedra", "value": "2159" }, { "label": "RapeVictim", "value": "827" }, { "label": "RapeVictim", "value": "6" }, { "label": "Rarebloodl", "value": "5060" }, { "label": "Rarely", "value": "4362" }, { "label": "Ras", "value": "1688" }, { "label": "Raven", "value": "4468" }, { "label": "RavenCrow", "value": "3959" }, { "label": "rawstream", "value": "3449" }, { "label": "Raynes", "value": "4157" }, { "label": "readstream", "value": "3205" }, { "label": "Realestate", "value": "5122" }, { "label": "reallyking", "value": "2284" }, { "label": "reallynotg", "value": "5624" }, { "label": "Realmmonst", "value": "2810" }, { "label": "realnamest", "value": "5433" }, { "label": "realoldgen", "value": "5552" }, { "label": "reasoning", "value": "5891" }, { "label": "Rebellion", "value": "757" }, { "label": "Rebellious", "value": "5906" }, { "label": "Rebirth", "value": "139" }, { "label": "RebirthChr", "value": "2984" }, { "label": "Rebirthdoc", "value": "2987" }, { "label": "RebirthedP", "value": "1241" }, { "label": "Rebirtheve", "value": "3014" }, { "label": "Rebirthevo", "value": "3017" }, { "label": "Rebirthfar", "value": "3034" }, { "label": "RebirthGam", "value": "3025" }, { "label": "RebirthGra", "value": "3008" }, { "label": "Rebirthhap", "value": "2936" }, { "label": "Rebirthint", "value": "3019" }, { "label": "Rebirthman", "value": "2988" }, { "label": "RebirthMen", "value": "5311" }, { "label": "RebirthofK", "value": "6033" }, { "label": "RebirthRel", "value": "3048" }, { "label": "Rebirthsho", "value": "5306" }, { "label": "Rebirthstr", "value": "5318" }, { "label": "Rebirthstr", "value": "3032" }, { "label": "Rebirthstr", "value": "2975" }, { "label": "Rebirthswe", "value": "5328" }, { "label": "Reborn", "value": "831" }, { "label": "Rebornprot", "value": "1239" }, { "label": "Recallingt", "value": "5217" }, { "label": "recessiono", "value": "3796" }, { "label": "recreation", "value": "2328" }, { "label": "RED⑨", "value": "5729" }, { "label": "Redactor", "value": "4908" }, { "label": "RedAlert2", "value": "812" }, { "label": "Redcandyso", "value": "3689" }, { "label": "redcutefoo", "value": "4727" }, { "label": "Redemption", "value": "3837" }, { "label": "RedHouse", "value": "3187" }, { "label": "RedIronRoa", "value": "4755" }, { "label": "redlotus", "value": "3576" }, { "label": "RedLotusWi", "value": "5008" }, { "label": "redpacketf", "value": "3711" }, { "label": "redstone", "value": "5572" }, { "label": "Referstomu", "value": "4601" }, { "label": "Refiner", "value": "3155" }, { "label": "RefiningPi", "value": "853" }, { "label": "ReformandO", "value": "5129" }, { "label": "RegalinBla", "value": "5549" }, { "label": "Regardless", "value": "5922" }, { "label": "Regent", "value": "3233" }, { "label": "Regression", "value": "3835" }, { "label": "Regressor", "value": "1563" }, { "label": "Regret", "value": "3832" }, { "label": "Rehabilita", "value": "5412" }, { "label": "Reiki", "value": "3859" }, { "label": "ReikiRecov", "value": "1765" }, { "label": "Reikyrecov", "value": "1054" }, { "label": "Reimuer", "value": "4017" }, { "label": "reincarnat", "value": "3438" }, { "label": "reincarnat", "value": "1399" }, { "label": "reincarnat", "value": "1737" }, { "label": "Reincarnat", "value": "162" }, { "label": "Reincarnat", "value": "4356" }, { "label": "Reincarnat", "value": "1444" }, { "label": "Reincarnat", "value": "1028" }, { "label": "Reincarnat", "value": "913" }, { "label": "Reincarnat", "value": "770" }, { "label": "Reincarnat", "value": "523" }, { "label": "Reincarnat", "value": "467" }, { "label": "Reincarnat", "value": "415" }, { "label": "rejoice", "value": "3228" }, { "label": "Rejoiceint", "value": "4446" }, { "label": "relaxed", "value": "1761" }, { "label": "Religions", "value": "706" }, { "label": "ReligiousO", "value": "1057" }, { "label": "ReligousOr", "value": "923" }, { "label": "Remarriage", "value": "3572" }, { "label": "rememberto", "value": "4640" }, { "label": "Rememberto", "value": "5928" }, { "label": "Rengucuisi", "value": "4235" }, { "label": "Repeat", "value": "4876" }, { "label": "RepeatJiAi", "value": "5027" }, { "label": "Reporters", "value": "545" }, { "label": "Researcher", "value": "1701" }, { "label": "Residencen", "value": "2400" }, { "label": "Residentev", "value": "2887" }, { "label": "ResolutePr", "value": "1034" }, { "label": "respectfor", "value": "4657" }, { "label": "restaurant", "value": "2290" }, { "label": "Restaurant", "value": "635" }, { "label": "Resurrecti", "value": "390" }, { "label": "Resurrecti", "value": "2701" }, { "label": "Return", "value": "5630" }, { "label": "Returningf", "value": "695" }, { "label": "Returnofth", "value": "3236" }, { "label": "Returnofth", "value": "5378" }, { "label": "Returnofth", "value": "3042" }, { "label": "Returntent", "value": "5778" }, { "label": "Returntoth", "value": "1139" }, { "label": "Reunion", "value": "1487" }, { "label": "revenge", "value": "1398" }, { "label": "Revenge", "value": "225" }, { "label": "revengeLov", "value": "5345" }, { "label": "Reversal", "value": "5131" }, { "label": "Reverse", "value": "3390" }, { "label": "ReverseHar", "value": "378" }, { "label": "ReverseRap", "value": "571" }, { "label": "ReverseRpe", "value": "614" }, { "label": "reversesmo", "value": "2050" }, { "label": "reversewea", "value": "3256" }, { "label": "reversewea", "value": "5325" }, { "label": "reversewea", "value": "3080" }, { "label": "Reversible", "value": "740" }, { "label": "Rhapsodyof", "value": "5748" }, { "label": "Rhein-Life", "value": "5250" }, { "label": "ricebath", "value": "4850" }, { "label": "ricestar", "value": "5102" }, { "label": "Rich", "value": "1051" }, { "label": "richandbea", "value": "3454" }, { "label": "RichCharac", "value": "910" }, { "label": "Richestman", "value": "3715" }, { "label": "richeveryy", "value": "2510" }, { "label": "Richfamily", "value": "1388" }, { "label": "RichMC", "value": "1144" }, { "label": "richpeople", "value": "3395" }, { "label": "RichProtag", "value": "875" }, { "label": "RichtoPoor", "value": "743" }, { "label": "rideapiggy", "value": "5975" }, { "label": "Rideawhale", "value": "1821" }, { "label": "Rideawhale", "value": "6063" }, { "label": "ridethewin", "value": "3493" }, { "label": "Ridethewin", "value": "5537" }, { "label": "ridicule", "value": "4860" }, { "label": "ridiculous", "value": "3744" }, { "label": "RighteousP", "value": "630" }, { "label": "RimuruTemp", "value": "1593" }, { "label": "RinYueqing", "value": "1792" }, { "label": "riot", "value": "3604" }, { "label": "RipplesofD", "value": "5220" }, { "label": "RiseofGras", "value": "3437" }, { "label": "Rivalry", "value": "687" }, { "label": "rivercruis", "value": "5161" }, { "label": "riversande", "value": "2011" }, { "label": "RoadtoAwak", "value": "4970" }, { "label": "rockblosso", "value": "5156" }, { "label": "rockfox", "value": "3720" }, { "label": "Rococo", "value": "3924" }, { "label": "rodeaway", "value": "5623" }, { "label": "Roger18", "value": "4504" }, { "label": "Rollover", "value": "3457" }, { "label": "Romance", "value": "768" }, { "label": "RomanceFan", "value": "3833" }, { "label": "RomanHolid", "value": "3489" }, { "label": "RomanticPr", "value": "842" }, { "label": "RomanticSu", "value": "14" }, { "label": "RomanticSu", "value": "711" }, { "label": "RomeoTanak", "value": "4766" }, { "label": "RongRong", "value": "4787" }, { "label": "RookieProt", "value": "1358" }, { "label": "Roommates", "value": "772" }, { "label": "Roon", "value": "2557" }, { "label": "Rossini", "value": "5167" }, { "label": "Rotaryhotp", "value": "2627" }, { "label": "rottenoran", "value": "3781" }, { "label": "roughman", "value": "3397" }, { "label": "Royal", "value": "3354" }, { "label": "RoyalBeast", "value": "3131" }, { "label": "RoyalSabur", "value": "1957" }, { "label": "Royalty", "value": "35" }, { "label": "Rpe", "value": "5" }, { "label": "RpeVictimB", "value": "115" }, { "label": "runaftercl", "value": "5104" }, { "label": "runawayant", "value": "1841" }, { "label": "runawaycit", "value": "1809" }, { "label": "runawaydum", "value": "4979" }, { "label": "runawaymid", "value": "4217" }, { "label": "runawayrab", "value": "4792" }, { "label": "Rune", "value": "1244" }, { "label": "RuneMaster", "value": "3365" }, { "label": "runningfis", "value": "3690" }, { "label": "Ruoshuithr", "value": "2241" }, { "label": "ruotuosave", "value": "5415" }, { "label": "rural", "value": "3696" }, { "label": "Rushduck", "value": "3922" }, { "label": "Russian", "value": "1766" }, { "label": "ruthelessm", "value": "1435" }, { "label": "RuthlessMc", "value": "1093" }, { "label": "RuthlessPr", "value": "15" }, { "label": "rwby", "value": "1406" }, { "label": "SacrificeX", "value": "2727" }, { "label": "Sadakoiscu", "value": "3672" }, { "label": "SadisticCh", "value": "622" }, { "label": "Sadomasoch", "value": "5677" }, { "label": "Sadreminde", "value": "1936" }, { "label": "sadsadness", "value": "2086" }, { "label": "sadsword", "value": "1840" }, { "label": "SaikiK", "value": "1064" }, { "label": "SaikiK.", "value": "1382" }, { "label": "Sailing", "value": "1734" }, { "label": "Saint", "value": "1561" }, { "label": "SaintPauli", "value": "4367" }, { "label": "Saints", "value": "598" }, { "label": "SaintSeiya", "value": "1082" }, { "label": "Saint丨Men", "value": "5593" }, { "label": "SakeAsahi", "value": "5518" }, { "label": "Sako", "value": "5754" }, { "label": "Sakuracat", "value": "4066" }, { "label": "Sakurajima", "value": "2639" }, { "label": "SakuraMoon", "value": "2207" }, { "label": "saltedfish", "value": "4074" }, { "label": "saltedfish", "value": "5794" }, { "label": "saltedfish", "value": "4723" }, { "label": "saltedfish", "value": "3857" }, { "label": "Saltedfish", "value": "3292" }, { "label": "Saltedfish", "value": "4874" }, { "label": "Saltedfish", "value": "4233" }, { "label": "Saltedfish", "value": "2405" }, { "label": "Saltedfish", "value": "5959" }, { "label": "Saltedfish", "value": "5893" }, { "label": "Saltedfish", "value": "5852" }, { "label": "Saltedfish", "value": "4818" }, { "label": "SaltedFish", "value": "5811" }, { "label": "SaltedFish", "value": "2685" }, { "label": "SaltedFish", "value": "2299" }, { "label": "SaltedFish", "value": "1851" }, { "label": "SaltedFish", "value": "1089" }, { "label": "Saltyandsw", "value": "3314" }, { "label": "saltyfox", "value": "3986" }, { "label": "Salvation", "value": "3846" }, { "label": "sama", "value": "4167" }, { "label": "SameSexMar", "value": "1170" }, { "label": "Samurai", "value": "1025" }, { "label": "SancheonHo", "value": "4938" }, { "label": "sanctifica", "value": "5209" }, { "label": "sandrivere", "value": "2116" }, { "label": "Sandsculpt", "value": "6142" }, { "label": "Sanguanzhe", "value": "3197" }, { "label": "SanmitheGr", "value": "2401" }, { "label": "SanyueFeng", "value": "5215" }, { "label": "SaraDouble", "value": "3810" }, { "label": "Satire", "value": "3420" }, { "label": "saturdaymo", "value": "5645" }, { "label": "Sauce", "value": "5348" }, { "label": "Sauerkraut", "value": "4450" }, { "label": "Saves", "value": "781" }, { "label": "SavingtheW", "value": "682" }, { "label": "Saygoodbye", "value": "3822" }, { "label": "SCaja", "value": "4889" }, { "label": "Scalesofth", "value": "1825" }, { "label": "scarletmon", "value": "5814" }, { "label": "ScarletMoo", "value": "4660" }, { "label": "Scary", "value": "5083" }, { "label": "schemeandc", "value": "1742" }, { "label": "Schemes", "value": "1460" }, { "label": "Schemesand", "value": "1047" }, { "label": "SchemesAnd", "value": "405" }, { "label": "SchemingPr", "value": "1283" }, { "label": "scholar", "value": "5119" }, { "label": "School-lif", "value": "1267" }, { "label": "schoolgras", "value": "3615" }, { "label": "SchoolLife", "value": "746" }, { "label": "SchoolSett", "value": "1678" }, { "label": "Sci-Fantas", "value": "1003" }, { "label": "Sci-fi", "value": "931" }, { "label": "Science", "value": "1782" }, { "label": "sciencefic", "value": "1046" }, { "label": "Scientist", "value": "1523" }, { "label": "Scientists", "value": "486" }, { "label": "Scorpio", "value": "4914" }, { "label": "Scorpionho", "value": "5193" }, { "label": "Scourge", "value": "1971" }, { "label": "SCP", "value": "1140" }, { "label": "scrupulous", "value": "5432" }, { "label": "scumbag", "value": "3114" }, { "label": "scumbagReb", "value": "2981" }, { "label": "scumfish", "value": "5262" }, { "label": "scumteache", "value": "2308" }, { "label": "Sea", "value": "1570" }, { "label": "SeaExplora", "value": "1116" }, { "label": "SealedPowe", "value": "284" }, { "label": "SealGod", "value": "3399" }, { "label": "sea​​rou", "value": "5930" }, { "label": "secludedci", "value": "5221" }, { "label": "second-han", "value": "4577" }, { "label": "Secondbatt", "value": "3816" }, { "label": "secondchan", "value": "1410" }, { "label": "SecondChan", "value": "99" }, { "label": "SecondChan", "value": "1665" }, { "label": "Secondgive", "value": "4366" }, { "label": "secondpira", "value": "2428" }, { "label": "secretary", "value": "1733" }, { "label": "SecretCrus", "value": "266" }, { "label": "SecretFrag", "value": "4105" }, { "label": "SecretIden", "value": "285" }, { "label": "Secretive", "value": "5066" }, { "label": "secretivec", "value": "3085" }, { "label": "SecretiveP", "value": "552" }, { "label": "Secretobse", "value": "2483" }, { "label": "secretolds", "value": "4974" }, { "label": "SecretOrga", "value": "1141" }, { "label": "SecretOrga", "value": "652" }, { "label": "SecretRela", "value": "1021" }, { "label": "Secrets", "value": "286" }, { "label": "Sect", "value": "3547" }, { "label": "SectDevelo", "value": "692" }, { "label": "SectMaster", "value": "841" }, { "label": "Sects", "value": "881" }, { "label": "Securitygu", "value": "3320" }, { "label": "Seduction", "value": "732" }, { "label": "SeeingThin", "value": "633" }, { "label": "Seelemywif", "value": "4216" }, { "label": "seeyouagai", "value": "3116" }, { "label": "Seeyouatth", "value": "4208" }, { "label": "self-disci", "value": "2372" }, { "label": "Self-disci", "value": "3207" }, { "label": "self-impro", "value": "3306" }, { "label": "SelfDiscip", "value": "3548" }, { "label": "SelfishPro", "value": "254" }, { "label": "SelflessPr", "value": "558" }, { "label": "sellbloodf", "value": "5357" }, { "label": "sellumbrel", "value": "4035" }, { "label": "sellwine", "value": "5606" }, { "label": "SemeProtag", "value": "500" }, { "label": "Senbeiboy", "value": "3373" }, { "label": "Sencha", "value": "2664" }, { "label": "sendapacka", "value": "5585" }, { "label": "Senior", "value": "3318" }, { "label": "SentientOb", "value": "970" }, { "label": "SentientSk", "value": "1313" }, { "label": "Sentimenta", "value": "771" }, { "label": "Sequel", "value": "1179" }, { "label": "SerialKill", "value": "550" }, { "label": "SerpentKin", "value": "3389" }, { "label": "ServantofZ", "value": "1817" }, { "label": "Servants", "value": "665" }, { "label": "SevenDeadl", "value": "691" }, { "label": "Sevengener", "value": "2209" }, { "label": "sevenpigeo", "value": "1883" }, { "label": "SevenProfo", "value": "5929" }, { "label": "severekaro", "value": "4314" }, { "label": "SexSlaves", "value": "475" }, { "label": "SexualAbus", "value": "175" }, { "label": "SexualCult", "value": "748" }, { "label": "shadowfall", "value": "2800" }, { "label": "shadowfire", "value": "4022" }, { "label": "shadowghos", "value": "2302" }, { "label": "Shadowless", "value": "2929" }, { "label": "Shallowsea", "value": "1805" }, { "label": "Shame", "value": "4565" }, { "label": "ShamelessA", "value": "6108" }, { "label": "ShamelessP", "value": "203" }, { "label": "ShangshanX", "value": "4813" }, { "label": "ShanHaiJin", "value": "3396" }, { "label": "ShanhaiSpe", "value": "4473" }, { "label": "Shaohuaisf", "value": "5639" }, { "label": "Shapeshift", "value": "267" }, { "label": "Shapeshift", "value": "1100" }, { "label": "ShareHaiTs", "value": "3996" }, { "label": "Sharp-tong", "value": "296" }, { "label": "Shelter", "value": "1506" }, { "label": "ShenhaoMec", "value": "2561" }, { "label": "ShenhuoxoR", "value": "2074" }, { "label": "ShenJin", "value": "2543" }, { "label": "ShenLuo", "value": "1993" }, { "label": "ShenShen", "value": "4386" }, { "label": "Sherlock", "value": "4300" }, { "label": "shesaiditw", "value": "4465" }, { "label": "Shiewillno", "value": "4764" }, { "label": "Shijia", "value": "3244" }, { "label": "Shiko", "value": "3367" }, { "label": "ShiTianfen", "value": "4427" }, { "label": "ShoesMenlu", "value": "4086" }, { "label": "shortforpa", "value": "3175" }, { "label": "ShortStory", "value": "559" }, { "label": "Shota", "value": "493" }, { "label": "Shotacon", "value": "556" }, { "label": "Shoujo-AiS", "value": "595" }, { "label": "ShoujoAi", "value": "955" }, { "label": "Shouldhand", "value": "1860" }, { "label": "Shounen", "value": "1533" }, { "label": "Shounen-Ai", "value": "530" }, { "label": "shounenai", "value": "1719" }, { "label": "ShouProtag", "value": "1467" }, { "label": "Show-biz", "value": "2888" }, { "label": "Showbiz", "value": "108" }, { "label": "showdownfl", "value": "3598" }, { "label": "ShowdownSa", "value": "4613" }, { "label": "showstory", "value": "2056" }, { "label": "ShreddedOn", "value": "3529" }, { "label": "ShrimpBall", "value": "4652" }, { "label": "shrimpinth", "value": "1820" }, { "label": "Shuangjie", "value": "3148" }, { "label": "ShuangjieD", "value": "5312" }, { "label": "Shuangwen", "value": "1207" }, { "label": "shudder", "value": "1828" }, { "label": "Shura", "value": "4287" }, { "label": "Shurachang", "value": "3291" }, { "label": "Shushan", "value": "3284" }, { "label": "Shuttlebus", "value": "5577" }, { "label": "ShuyinFloa", "value": "4564" }, { "label": "ShuYuChenX", "value": "2346" }, { "label": "ShyCharact", "value": "482" }, { "label": "Si-fi", "value": "1094" }, { "label": "Sibling&am", "value": "750" }, { "label": "SiblingRiv", "value": "46" }, { "label": "Siblings", "value": "48" }, { "label": "SiblingsNo", "value": "448" }, { "label": "sick", "value": "3323" }, { "label": "sickleredr", "value": "3861" }, { "label": "SicklyChar", "value": "600" }, { "label": "sifeizhai", "value": "3531" }, { "label": "Sign-in", "value": "934" }, { "label": "Sign-InChe", "value": "1242" }, { "label": "Signboardm", "value": "4438" }, { "label": "signin", "value": "1294" }, { "label": "SigninChec", "value": "1331" }, { "label": "signinsalt", "value": "2371" }, { "label": "SiheyuanDa", "value": "5663" }, { "label": "SiheyuanDe", "value": "2276" }, { "label": "Siheyuanfl", "value": "2175" }, { "label": "SiheyuanGo", "value": "2246" }, { "label": "Siheyuanpi", "value": "4448" }, { "label": "Sijiu", "value": "4162" }, { "label": "Silencehim", "value": "2341" }, { "label": "silentauth", "value": "5423" }, { "label": "Silentcare", "value": "3787" }, { "label": "silentkill", "value": "2059" }, { "label": "sillycatse", "value": "1909" }, { "label": "SillyColum", "value": "2363" }, { "label": "SillyTeres", "value": "5145" }, { "label": "sillywhite", "value": "3776" }, { "label": "silver", "value": "2807" }, { "label": "silverbigs", "value": "5178" }, { "label": "silvercold", "value": "3483" }, { "label": "Silverhair", "value": "4540" }, { "label": "Simmel", "value": "3667" }, { "label": "Simon", "value": "4743" }, { "label": "Simpleone", "value": "2382" }, { "label": "simpletwo", "value": "5648" }, { "label": "SimpleXiaZ", "value": "4706" }, { "label": "Simulation", "value": "1646" }, { "label": "Simulator", "value": "1172" }, { "label": "singer", "value": "1770" }, { "label": "Singers", "value": "187" }, { "label": "SingleHero", "value": "1569" }, { "label": "singlemons", "value": "5469" }, { "label": "SinglePare", "value": "503" }, { "label": "singlepush", "value": "4753" }, { "label": "singlesalt", "value": "2865" }, { "label": "sink", "value": "4414" }, { "label": "SirBirefel", "value": "6090" }, { "label": "Siriuslook", "value": "5003" }, { "label": "Siscon", "value": "1726" }, { "label": "Sisterandb", "value": "3358" }, { "label": "SisterComp", "value": "709" }, { "label": "sistercook", "value": "2553" }, { "label": "sisterisbe", "value": "2379" }, { "label": "SisterLuo", "value": "4724" }, { "label": "SisterYu", "value": "3184" }, { "label": "SituQingfe", "value": "4090" }, { "label": "six-twochi", "value": "1913" }, { "label": "Sixcauseso", "value": "6026" }, { "label": "sixchiefs", "value": "5586" }, { "label": "Sixi", "value": "4055" }, { "label": "SixImmorta", "value": "4796" }, { "label": "sixlittlef", "value": "5609" }, { "label": "SixPathsof", "value": "2449" }, { "label": "sixteenmir", "value": "3783" }, { "label": "sixteennig", "value": "4516" }, { "label": "sixthousan", "value": "3871" }, { "label": "Sixty-six", "value": "2052" }, { "label": "SkeletonSo", "value": "3440" }, { "label": "SkillAssim", "value": "403" }, { "label": "SkillBooks", "value": "508" }, { "label": "SkillCreat", "value": "572" }, { "label": "SkillSteal", "value": "1353" }, { "label": "SkinButler", "value": "2322" }, { "label": "skybird", "value": "4112" }, { "label": "skycity", "value": "4352" }, { "label": "SkyFeather", "value": "4226" }, { "label": "SkyKilling", "value": "4962" }, { "label": "SkyMender", "value": "4036" }, { "label": "Skyrim", "value": "979" }, { "label": "Skyshadowm", "value": "4527" }, { "label": "SkyStealin", "value": "3805" }, { "label": "slackerstu", "value": "3713" }, { "label": "slagfly", "value": "5589" }, { "label": "Slagwritin", "value": "4903" }, { "label": "Slap", "value": "3135" }, { "label": "SlapstickC", "value": "1566" }, { "label": "Slapstrong", "value": "5313" }, { "label": "Slave", "value": "1463" }, { "label": "SlaveHarem", "value": "730" }, { "label": "SlaveProta", "value": "540" }, { "label": "Slaves", "value": "287" }, { "label": "SlaveSyste", "value": "828" }, { "label": "sleepingbi", "value": "4847" }, { "label": "sleepingra", "value": "5521" }, { "label": "sleepingsa", "value": "2006" }, { "label": "sleeplesst", "value": "2471" }, { "label": "sleepslate", "value": "1969" }, { "label": "sleepyanim", "value": "4664" }, { "label": "Slice-of-l", "value": "1259" }, { "label": "SliceofLif", "value": "877" }, { "label": "slightlyco", "value": "3890" }, { "label": "SlightlySu", "value": "1270" }, { "label": "Slimeatsun", "value": "5576" }, { "label": "slow-movin", "value": "3825" }, { "label": "slow-roman", "value": "1011" }, { "label": "SlowCultiv", "value": "1009" }, { "label": "SlowGrowth", "value": "487" }, { "label": "SlowLife", "value": "1481" }, { "label": "slowlytwis", "value": "4910" }, { "label": "SlowRomanc", "value": "144" }, { "label": "Slvery", "value": "4337" }, { "label": "smallblade", "value": "4734" }, { "label": "Smallcardd", "value": "5982" }, { "label": "Smalldogs", "value": "3592" }, { "label": "smallhalft", "value": "5162" }, { "label": "Smallmushr", "value": "2552" }, { "label": "smallninel", "value": "1900" }, { "label": "SmallRibs", "value": "5978" }, { "label": "smallself", "value": "5107" }, { "label": "smalltempl", "value": "3990" }, { "label": "smallten", "value": "4814" }, { "label": "Smart", "value": "3557" }, { "label": "SmartCoupl", "value": "513" }, { "label": "SmartMC", "value": "937" }, { "label": "smartprota", "value": "1215" }, { "label": "SmelltheFo", "value": "3646" }, { "label": "smellylitt", "value": "4931" }, { "label": "smilecool", "value": "4106" }, { "label": "Smokeandra", "value": "6038" }, { "label": "Smokebambo", "value": "2644" }, { "label": "SmokeCloud", "value": "1798" }, { "label": "smokeinthe", "value": "1790" }, { "label": "SMPZ", "value": "5268" }, { "label": "Smut", "value": "975" }, { "label": "snorkeling", "value": "2038" }, { "label": "Snow", "value": "3471" }, { "label": "Snowballfi", "value": "5442" }, { "label": "snowcherry", "value": "4394" }, { "label": "snowfall", "value": "5937" }, { "label": "snowinthec", "value": "4295" }, { "label": "snowmanbef", "value": "4833" }, { "label": "snowmoonco", "value": "5618" }, { "label": "SnowRoy", "value": "4466" }, { "label": "so-and-soa", "value": "4037" }, { "label": "soarupbyda", "value": "4075" }, { "label": "Soccer", "value": "511" }, { "label": "SocialOutc", "value": "755" }, { "label": "softorange", "value": "2750" }, { "label": "softricefl", "value": "3308" }, { "label": "SoftSci-fi", "value": "3425" }, { "label": "Softyander", "value": "3840" }, { "label": "SoIsay", "value": "4043" }, { "label": "soisthewin", "value": "5797" }, { "label": "Soldiers", "value": "455" }, { "label": "Solitary", "value": "4198" }, { "label": "Solitarype", "value": "3243" }, { "label": "Son-in-law", "value": "1461" }, { "label": "Song", "value": "5695" }, { "label": "SongHuangl", "value": "4165" }, { "label": "SongofNort", "value": "5861" }, { "label": "SongoftheG", "value": "2509" }, { "label": "SonInLaw", "value": "2918" }, { "label": "sonnet", "value": "4452" }, { "label": "SonOfAGodP", "value": "1132" }, { "label": "SonofMyria", "value": "3952" }, { "label": "sonoftheqi", "value": "3968" }, { "label": "SonofYuyin", "value": "5883" }, { "label": "sopoor", "value": "2732" }, { "label": "Sora", "value": "4420" }, { "label": "soslack", "value": "4411" }, { "label": "soulanddre", "value": "2424" }, { "label": "SoulCelest", "value": "2415" }, { "label": "SoulChef", "value": "2244" }, { "label": "soulconver", "value": "3589" }, { "label": "soulmemory", "value": "2515" }, { "label": "SoulPower", "value": "404" }, { "label": "Souls", "value": "449" }, { "label": "SoulWorldR", "value": "5654" }, { "label": "SoundMagic", "value": "989" }, { "label": "SourceTaie", "value": "5556" }, { "label": "southfire", "value": "3854" }, { "label": "SouthKefei", "value": "2769" }, { "label": "southmirro", "value": "5013" }, { "label": "Southofthe", "value": "5211" }, { "label": "Southwindo", "value": "5515" }, { "label": "southwindt", "value": "4959" }, { "label": "Space", "value": "917" }, { "label": "space-time", "value": "5694" }, { "label": "Space-time", "value": "3178" }, { "label": "Space-time", "value": "3036" }, { "label": "Space-time", "value": "2986" }, { "label": "SpaceOpera", "value": "807" }, { "label": "Spaceship", "value": "547" }, { "label": "spacetimes", "value": "4508" }, { "label": "SparklingP", "value": "4757" }, { "label": "SpatialMan", "value": "721" }, { "label": "SpearWield", "value": "578" }, { "label": "SpecialAbi", "value": "353" }, { "label": "SpecialAbi", "value": "347" }, { "label": "SpecialAbi", "value": "1558" }, { "label": "SpecialFor", "value": "1327" }, { "label": "SpecialLik", "value": "940" }, { "label": "SpecialLov", "value": "1162" }, { "label": "specialpow", "value": "5051" }, { "label": "specialwar", "value": "2359" }, { "label": "speechless", "value": "2692" }, { "label": "Speechless", "value": "5174" }, { "label": "spendthewo", "value": "2049" }, { "label": "Spies", "value": "251" }, { "label": "Spike", "value": "4304" }, { "label": "SpiritAdvi", "value": "654" }, { "label": "SpiritAnal", "value": "1237" }, { "label": "Spirits", "value": "555" }, { "label": "Spiritstri", "value": "4935" }, { "label": "SpiritualQ", "value": "1307" }, { "label": "SpiritualR", "value": "1219" }, { "label": "SpiritUser", "value": "450" }, { "label": "spoiler", "value": "3588" }, { "label": "spoilevery", "value": "4177" }, { "label": "spookygame", "value": "3570" }, { "label": "sport", "value": "1432" }, { "label": "Sports", "value": "992" }, { "label": "SportsBask", "value": "993" }, { "label": "Sportscomp", "value": "3706" }, { "label": "sportsgeni", "value": "4024" }, { "label": "spring", "value": "4371" }, { "label": "Spywar", "value": "3186" }, { "label": "squirrelth", "value": "5809" }, { "label": "ssangrydra", "value": "4625" }, { "label": "St.LingYi", "value": "4725" }, { "label": "stablefort", "value": "2506" }, { "label": "stallion", "value": "4149" }, { "label": "Stand", "value": "2884" }, { "label": "Stand-alon", "value": "5130" }, { "label": "Star", "value": "1302" }, { "label": "Starcraft", "value": "1120" }, { "label": "stardarkni", "value": "2376" }, { "label": "stareather", "value": "5371" }, { "label": "starfish", "value": "2667" }, { "label": "starlessni", "value": "3533" }, { "label": "starnightf", "value": "4895" }, { "label": "Startabusi", "value": "3325" }, { "label": "startingze", "value": "5859" }, { "label": "startofthe", "value": "2258" }, { "label": "startwriti", "value": "2121" }, { "label": "starwars", "value": "1433" }, { "label": "Stayupalln", "value": "1813" }, { "label": "stayupnigh", "value": "3903" }, { "label": "stealingme", "value": "4867" }, { "label": "Stealtheop", "value": "5116" }, { "label": "steamponk", "value": "3559" }, { "label": "Steampunk", "value": "896" }, { "label": "Stepmother", "value": "1626" }, { "label": "Sterile", "value": "1862" }, { "label": "sterlingsi", "value": "5986" }, { "label": "stevec", "value": "2462" }, { "label": "StewedChic", "value": "2482" }, { "label": "StewedRice", "value": "5272" }, { "label": "stickfilia", "value": "4308" }, { "label": "StinkBeanS", "value": "2343" }, { "label": "Stir-fried", "value": "3911" }, { "label": "Stir-Fried", "value": "5033" }, { "label": "StockholmS", "value": "188" }, { "label": "StoicChara", "value": "729" }, { "label": "Stomachhur", "value": "2493" }, { "label": "stonemored", "value": "2512" }, { "label": "stopatfirs", "value": "2799" }, { "label": "stopfighti", "value": "4507" }, { "label": "stopsleepi", "value": "5765" }, { "label": "StoreOwner", "value": "322" }, { "label": "StormyMoon", "value": "5806" }, { "label": "stormyolds", "value": "4434" }, { "label": "storytelle", "value": "5117" }, { "label": "StraightAs", "value": "3286" }, { "label": "Straightfo", "value": "4470" }, { "label": "straightma", "value": "3203" }, { "label": "straightma", "value": "2893" }, { "label": "Straightme", "value": "2528" }, { "label": "StraightSe", "value": "643" }, { "label": "StraightUk", "value": "438" }, { "label": "stranger", "value": "3211" }, { "label": "Strangerss", "value": "5904" }, { "label": "StrategicB", "value": "150" }, { "label": "Strategist", "value": "451" }, { "label": "Strategy", "value": "3109" }, { "label": "strawshoes", "value": "4381" }, { "label": "Streamer", "value": "911" }, { "label": "streamerbl", "value": "2762" }, { "label": "streamofhe", "value": "3130" }, { "label": "Streamwith", "value": "3241" }, { "label": "Strength-b", "value": "371" }, { "label": "StrideinCh", "value": "4266" }, { "label": "string", "value": "5277" }, { "label": "Strong", "value": "1271" }, { "label": "StrongBack", "value": "1324" }, { "label": "strongbun", "value": "3766" }, { "label": "StrongCoup", "value": "1380" }, { "label": "strongesta", "value": "4255" }, { "label": "StrongestP", "value": "1520" }, { "label": "strongfema", "value": "3102" }, { "label": "strongfema", "value": "5339" }, { "label": "strongfema", "value": "5331" }, { "label": "strongfema", "value": "3062" }, { "label": "strongfema", "value": "3059" }, { "label": "strongfema", "value": "3057" }, { "label": "strongfema", "value": "3043" }, { "label": "strongfema", "value": "3033" }, { "label": "strongfema", "value": "2985" }, { "label": "strongfema", "value": "2958" }, { "label": "strongfema", "value": "2954" }, { "label": "strongfema", "value": "1747" }, { "label": "StrongFema", "value": "861" }, { "label": "StrongFema", "value": "1200" }, { "label": "Strongfrom", "value": "306" }, { "label": "Strongfrom", "value": "873" }, { "label": "StrongLove", "value": "30" }, { "label": "StrongLove", "value": "1224" }, { "label": "StrongMC", "value": "889" }, { "label": "StrongOpFe", "value": "1065" }, { "label": "StrongPowe", "value": "915" }, { "label": "StrongProt", "value": "1212" }, { "label": "strongstre", "value": "3347" }, { "label": "Strongsubo", "value": "862" }, { "label": "StrongSubo", "value": "838" }, { "label": "StrongtoSt", "value": "118" }, { "label": "strongwoma", "value": "4349" }, { "label": "struggle", "value": "3326" }, { "label": "Stubbornan", "value": "5108" }, { "label": "StubbornPr", "value": "565" }, { "label": "Student", "value": "3208" }, { "label": "Student-Te", "value": "365" }, { "label": "StudentUni", "value": "2358" }, { "label": "stupidfox", "value": "2020" }, { "label": "subjugatio", "value": "4402" }, { "label": "submissive", "value": "1760" }, { "label": "substitute", "value": "3567" }, { "label": "successoro", "value": "4454" }, { "label": "Succubus", "value": "681" }, { "label": "suddenlyit", "value": "4517" }, { "label": "SuddenStre", "value": "551" }, { "label": "SuddenWeal", "value": "660" }, { "label": "SuFengqian", "value": "4999" }, { "label": "Sufferingp", "value": "5376" }, { "label": "sugarpoem", "value": "3876" }, { "label": "Sugary", "value": "3374" }, { "label": "SuiandTang", "value": "3392" }, { "label": "suicidalpr", "value": "1774" }, { "label": "Suicides", "value": "775" }, { "label": "summer", "value": "4372" }, { "label": "summerjoke", "value": "4629" }, { "label": "summernow", "value": "2574" }, { "label": "summerrain", "value": "5355" }, { "label": "summerseaf", "value": "4828" }, { "label": "summertree", "value": "1889" }, { "label": "summertrip", "value": "1888" }, { "label": "summon", "value": "803" }, { "label": "SummonedHe", "value": "602" }, { "label": "Summoner", "value": "938" }, { "label": "Summoningf", "value": "3156" }, { "label": "SummoningM", "value": "315" }, { "label": "Summons", "value": "1475" }, { "label": "SuMuQiuxue", "value": "4702" }, { "label": "sundaysun", "value": "1869" }, { "label": "SunflowerF", "value": "4534" }, { "label": "SunnyPiggy", "value": "4782" }, { "label": "sunset", "value": "6048" }, { "label": "sunsetmoon", "value": "3476" }, { "label": "sunsetnear", "value": "3901" }, { "label": "sunsetover", "value": "2755" }, { "label": "SuperA", "value": "3252" }, { "label": "SuperAbili", "value": "5067" }, { "label": "superdarkd", "value": "4006" }, { "label": "Superfire", "value": "2852" }, { "label": "supergodfi", "value": "3753" }, { "label": "SuperGodGr", "value": "2014" }, { "label": "SuperGodNo", "value": "2849" }, { "label": "SuperHeroe", "value": "1130" }, { "label": "Superman", "value": "3011" }, { "label": "Superman7", "value": "6028" }, { "label": "Supernatur", "value": "820" }, { "label": "Supernatur", "value": "2385" }, { "label": "supernice1", "value": "5584" }, { "label": "supernovab", "value": "2731" }, { "label": "SuperPiran", "value": "2273" }, { "label": "Superpower", "value": "360" }, { "label": "Superpower", "value": "1265" }, { "label": "superround", "value": "5281" }, { "label": "SuperSemin", "value": "839" }, { "label": "Superstar", "value": "1147" }, { "label": "SuperTechn", "value": "1243" }, { "label": "supplier", "value": "3602" }, { "label": "Supporting", "value": "5682" }, { "label": "Supporting", "value": "5400" }, { "label": "Supportive", "value": "1524" }, { "label": "supportthe", "value": "4554" }, { "label": "supremekin", "value": "5698" }, { "label": "SupremeStr", "value": "3640" }, { "label": "sure", "value": "5243" }, { "label": "SurfProsec", "value": "5251" }, { "label": "Survival", "value": "100" }, { "label": "Survivalch", "value": "3344" }, { "label": "SurvivalGa", "value": "514" }, { "label": "SuShaoqing", "value": "1892" }, { "label": "SushiKingB", "value": "4745" }, { "label": "Suspense", "value": "1213" }, { "label": "Suspensefl", "value": "3363" }, { "label": "Suspensefu", "value": "3345" }, { "label": "SuWei", "value": "2383" }, { "label": "SuYechen", "value": "1878" }, { "label": "SuYuyu", "value": "4229" }, { "label": "SuZiyouyou", "value": "2252" }, { "label": "SuzuharaYu", "value": "5383" }, { "label": "SwallowedS", "value": "1339" }, { "label": "swearnotto", "value": "2670" }, { "label": "Sweet", "value": "1158" }, { "label": "sweetandco", "value": "5681" }, { "label": "Sweetandso", "value": "2261" }, { "label": "sweetheart", "value": "5688" }, { "label": "sweetjelly", "value": "1836" }, { "label": "Sweetlove", "value": "5086" }, { "label": "sweetpet", "value": "3105" }, { "label": "sweetroman", "value": "1488" }, { "label": "SweetSoyMi", "value": "5591" }, { "label": "SweetText", "value": "929" }, { "label": "sweetwife", "value": "3563" }, { "label": "SweetYaoi", "value": "948" }, { "label": "Swimmingfi", "value": "2686" }, { "label": "SwingingDe", "value": "2733" }, { "label": "SwordAndMa", "value": "288" }, { "label": "SwordArtOn", "value": "1320" }, { "label": "Swordblood", "value": "1852" }, { "label": "Swordgod", "value": "2579" }, { "label": "SwordImmor", "value": "1898" }, { "label": "swordrepai", "value": "3280" }, { "label": "swordrepai", "value": "2617" }, { "label": "Swordsheep", "value": "5464" }, { "label": "Swordsman", "value": "793" }, { "label": "SwordWield", "value": "325" }, { "label": "Sword丨Lea", "value": "2229" }, { "label": "SxFriends", "value": "1581" }, { "label": "SxualAbuse", "value": "116" }, { "label": "Sysetm", "value": "1501" }, { "label": "system", "value": "1409" }, { "label": "System", "value": "119" }, { "label": "SystemAdmi", "value": "31" }, { "label": "SystemAdmi", "value": "865" }, { "label": "systemflow", "value": "3040" }, { "label": "systemflow", "value": "3023" }, { "label": "systemflow", "value": "3015" }, { "label": "systemflow", "value": "2983" }, { "label": "systemflow", "value": "2979" }, { "label": "SystemFlow", "value": "1644" }, { "label": "systemmale", "value": "3734" }, { "label": "SystemNo.3", "value": "2281" }, { "label": "systemowne", "value": "1240" }, { "label": "SystemTran", "value": "1468" }, { "label": "SystemTran", "value": "1330" }, { "label": "TableTenni", "value": "518" }, { "label": "TachibanaM", "value": "5934" }, { "label": "TaibaiJun1", "value": "5417" }, { "label": "TaihoZwei", "value": "4676" }, { "label": "Tailsman", "value": "1713" }, { "label": "Takeaplane", "value": "2455" }, { "label": "takehome", "value": "3434" }, { "label": "takeoffboy", "value": "2633" }, { "label": "takeoverth", "value": "2421" }, { "label": "takestock", "value": "2172" }, { "label": "Talent", "value": "586" }, { "label": "Talentedgi", "value": "3398" }, { "label": "Talents", "value": "1314" }, { "label": "TalentShow", "value": "1521" }, { "label": "Talismans", "value": "1175" }, { "label": "talkingtig", "value": "5562" }, { "label": "tallpoorha", "value": "4789" }, { "label": "TangDynast", "value": "3107" }, { "label": "TangDynast", "value": "2941" }, { "label": "TangerineT", "value": "4391" }, { "label": "TangJichen", "value": "1855" }, { "label": "TangShaoqi", "value": "2220" }, { "label": "TangThirty", "value": "2843" }, { "label": "Taoist", "value": "1472" }, { "label": "Taoistprie", "value": "3113" }, { "label": "Tasker", "value": "1628" }, { "label": "TataTam", "value": "4896" }, { "label": "TaurenIron", "value": "1929" }, { "label": "TaurenWarr", "value": "5985" }, { "label": "Taurus", "value": "3905" }, { "label": "TCOCChrysa", "value": "5807" }, { "label": "Teacher", "value": "664" }, { "label": "teacher-st", "value": "3731" }, { "label": "TeacherDap", "value": "5905" }, { "label": "TeacherDis", "value": "1348" }, { "label": "TeacherHua", "value": "5866" }, { "label": "teachermal", "value": "5052" }, { "label": "TeacherMC", "value": "1349" }, { "label": "Teachers", "value": "252" }, { "label": "tealcan&am", "value": "5372" }, { "label": "team", "value": "1351" }, { "label": "Teamwork", "value": "101" }, { "label": "Technologi", "value": "488" }, { "label": "technology", "value": "3288" }, { "label": "Technology", "value": "1121" }, { "label": "Technology", "value": "961" }, { "label": "Technology", "value": "3348" }, { "label": "Technology", "value": "1967" }, { "label": "Technology", "value": "847" }, { "label": "TeckTyrann", "value": "2107" }, { "label": "Teemotofly", "value": "2442" }, { "label": "TeenageXia", "value": "2784" }, { "label": "TempleThir", "value": "1949" }, { "label": "ten-cutmad", "value": "4108" }, { "label": "TenCommand", "value": "2164" }, { "label": "Tenconsecu", "value": "3943" }, { "label": "Tennis", "value": "519" }, { "label": "tenrabbits", "value": "3878" }, { "label": "Tensura", "value": "1594" }, { "label": "tentaclemu", "value": "5249" }, { "label": "Tentacles", "value": "1020" }, { "label": "Tenthousan", "value": "1939" }, { "label": "TenThousan", "value": "2620" }, { "label": "TenYearsof", "value": "3921" }, { "label": "TerminalIl", "value": "658" }, { "label": "Terracenea", "value": "3342" }, { "label": "TerritoryC", "value": "1329" }, { "label": "TerritoryM", "value": "1725" }, { "label": "Terrori", "value": "5068" }, { "label": "Terrorists", "value": "767" }, { "label": "ThaiNovel", "value": "1683" }, { "label": "Thanksgivi", "value": "5011" }, { "label": "Thankyou", "value": "4115" }, { "label": "Thankyoufo", "value": "2563" }, { "label": "ThatMing", "value": "5944" }, { "label": "TheAdventu", "value": "4433" }, { "label": "Theancesto", "value": "2259" }, { "label": "Theashesar", "value": "2419" }, { "label": "TheAsteris", "value": "1672" }, { "label": "TheBeginni", "value": "5574" }, { "label": "Thebestbra", "value": "3514" }, { "label": "Thebigdevi", "value": "2024" }, { "label": "Thebiggest", "value": "2016" }, { "label": "Thebloodco", "value": "5492" }, { "label": "Thebluesta", "value": "4592" }, { "label": "Thebrillia", "value": "4403" }, { "label": "Thecatisgo", "value": "2475" }, { "label": "Thecatwhos", "value": "6093" }, { "label": "TheChaosOr", "value": "5636" }, { "label": "TheDailyLi", "value": "4530" }, { "label": "thedayisco", "value": "3580" }, { "label": "TheDevil", "value": "5075" }, { "label": "theendofth", "value": "5430" }, { "label": "TheEndofWo", "value": "3975" }, { "label": "theevening", "value": "3469" }, { "label": "theevernon", "value": "1426" }, { "label": "Thefirstli", "value": "3898" }, { "label": "thefishint", "value": "4445" }, { "label": "Thefishkin", "value": "5920" }, { "label": "Thefishmar", "value": "2871" }, { "label": "Thefiveele", "value": "5226" }, { "label": "Theflowero", "value": "1808" }, { "label": "TheFourthC", "value": "3210" }, { "label": "TheGamer", "value": "1668" }, { "label": "Theghostre", "value": "5539" }, { "label": "Thegloryof", "value": "3467" }, { "label": "Thegloryof", "value": "2671" }, { "label": "TheGodfath", "value": "2161" }, { "label": "thegodofde", "value": "1977" }, { "label": "Thegodoffa", "value": "3625" }, { "label": "TheGospelo", "value": "1854" }, { "label": "TheGreatDe", "value": "3828" }, { "label": "theInterne", "value": "3287" }, { "label": "Theirstory", "value": "4882" }, { "label": "Thejourney", "value": "6104" }, { "label": "thejudge", "value": "4102" }, { "label": "Thekingask", "value": "5488" }, { "label": "Thelastday", "value": "3741" }, { "label": "Thelightof", "value": "1920" }, { "label": "Thelistdep", "value": "2747" }, { "label": "Thelistisi", "value": "2375" }, { "label": "TheLonelyM", "value": "4285" }, { "label": "Thelong-te", "value": "4181" }, { "label": "TheMainCha", "value": "5074" }, { "label": "TheManInTh", "value": "1225" }, { "label": "Themorning", "value": "4829" }, { "label": "Themysteri", "value": "3584" }, { "label": "Thenewbact", "value": "2062" }, { "label": "Theoceando", "value": "2115" }, { "label": "Theoldboyw", "value": "5735" }, { "label": "Theoldfive", "value": "2350" }, { "label": "Theoldmani", "value": "3856" }, { "label": "theothersh", "value": "4082" }, { "label": "Theplayofg", "value": "5832" }, { "label": "Thepowerof", "value": "2537" }, { "label": "Theprideof", "value": "6132" }, { "label": "Theprovinc", "value": "6092" }, { "label": "Thequeenis", "value": "2300" }, { "label": "Therainisf", "value": "6077" }, { "label": "TherealMr.", "value": "3998" }, { "label": "therearefi", "value": "2143" }, { "label": "Therearewh", "value": "5575" }, { "label": "Thereisabu", "value": "6003" }, { "label": "Thereisana", "value": "5196" }, { "label": "Thereisfir", "value": "3500" }, { "label": "ThereisnoN", "value": "3543" }, { "label": "Thereisnos", "value": "5246" }, { "label": "Therunaway", "value": "4971" }, { "label": "thescienti", "value": "3213" }, { "label": "Theseahasn", "value": "3486" }, { "label": "theseventh", "value": "3473" }, { "label": "Thestronga", "value": "5076" }, { "label": "Thestronge", "value": "2105" }, { "label": "Thesunsett", "value": "1807" }, { "label": "Theswordsw", "value": "5869" }, { "label": "Thetasteof", "value": "4917" }, { "label": "TheThreeKi", "value": "1872" }, { "label": "Thetopofth", "value": "2841" }, { "label": "Thetruegod", "value": "2303" }, { "label": "Thetwothor", "value": "4851" }, { "label": "Thevoiceof", "value": "4824" }, { "label": "Thewayofth", "value": "2758" }, { "label": "thewholewo", "value": "6021" }, { "label": "Thewindblo", "value": "6039" }, { "label": "thewindisb", "value": "2075" }, { "label": "TheWizardS", "value": "5752" }, { "label": "Theworld&a", "value": "2205" }, { "label": "Theworldis", "value": "4548" }, { "label": "Theworldis", "value": "3520" }, { "label": "Theworldof", "value": "4602" }, { "label": "theworldwi", "value": "5838" }, { "label": "Thief", "value": "3630" }, { "label": "Thieves", "value": "420" }, { "label": "thinkcaref", "value": "4136" }, { "label": "Thinkingof", "value": "2186" }, { "label": "thirteen", "value": "4405" }, { "label": "thirteenth", "value": "5871" }, { "label": "Thirty-two", "value": "2323" }, { "label": "Thirtycatt", "value": "5142" }, { "label": "Thisconten", "value": "3982" }, { "label": "thisisatru", "value": "4845" }, { "label": "Thisissure", "value": "2768" }, { "label": "Thismanisn", "value": "4759" }, { "label": "Thiswaterm", "value": "5955" }, { "label": "thisyear", "value": "2034" }, { "label": "Thosewhowa", "value": "5210" }, { "label": "ThousandMo", "value": "4899" }, { "label": "ThousandSh", "value": "4621" }, { "label": "thousandso", "value": "5163" }, { "label": "Thousandso", "value": "2498" }, { "label": "ThousandTe", "value": "2399" }, { "label": "thousandti", "value": "4700" }, { "label": "Three-flav", "value": "1912" }, { "label": "threeandfo", "value": "3679" }, { "label": "threeclear", "value": "4567" }, { "label": "Threedaysa", "value": "1856" }, { "label": "threedaysf", "value": "3786" }, { "label": "threedayst", "value": "4776" }, { "label": "ThreeDotIn", "value": "2712" }, { "label": "Threehundr", "value": "5717" }, { "label": "ThreeKingd", "value": "1356" }, { "label": "ThreeKingd", "value": "5693" }, { "label": "ThreeKingd", "value": "2935" }, { "label": "threelittl", "value": "2198" }, { "label": "ThreeLives", "value": "2503" }, { "label": "ThreeLives", "value": "2072" }, { "label": "Threepiece", "value": "5995" }, { "label": "Threerelig", "value": "3360" }, { "label": "Threesome", "value": "1042" }, { "label": "threestick", "value": "4092" }, { "label": "threeteeth", "value": "2381" }, { "label": "threethous", "value": "5151" }, { "label": "ThreeThous", "value": "5419" }, { "label": "threethree", "value": "3885" }, { "label": "ThreeTower", "value": "5239" }, { "label": "Threeways", "value": "4107" }, { "label": "Threeyolks", "value": "6044" }, { "label": "ThreshingG", "value": "1950" }, { "label": "Thriller", "value": "476" }, { "label": "Throughthe", "value": "4080" }, { "label": "ThugLuFeng", "value": "3691" }, { "label": "thunderand", "value": "5289" }, { "label": "Thunderous", "value": "1981" }, { "label": "Tianbang78", "value": "1785" }, { "label": "Tianbangbi", "value": "5197" }, { "label": "TianbangCh", "value": "6087" }, { "label": "TianbangDi", "value": "3371" }, { "label": "TianbangFa", "value": "4041" }, { "label": "Tianbanggr", "value": "2741" }, { "label": "TianbangHu", "value": "2603" }, { "label": "Tianbangol", "value": "2222" }, { "label": "TianbangOt", "value": "6051" }, { "label": "Tianbangth", "value": "2148" }, { "label": "TianbangTo", "value": "4004" }, { "label": "TianbangYa", "value": "2311" }, { "label": "TianjiCour", "value": "4067" }, { "label": "TianNaixin", "value": "5504" }, { "label": "TianrenCit", "value": "4040" }, { "label": "Tianshi", "value": "3709" }, { "label": "Tianshitak", "value": "2338" }, { "label": "TianTingwe", "value": "3383" }, { "label": "Tiantong", "value": "4054" }, { "label": "TianyanShe", "value": "3507" }, { "label": "TianYiding", "value": "2306" }, { "label": "TianYixian", "value": "5010" }, { "label": "tigerqueen", "value": "5769" }, { "label": "tigerroar", "value": "5225" }, { "label": "TigerSkinM", "value": "3991" }, { "label": "Tigerteeth", "value": "2520" }, { "label": "tigertiger", "value": "4451" }, { "label": "Tiggerlove", "value": "4991" }, { "label": "Time-Trave", "value": "1940" }, { "label": "TimeandSpa", "value": "1499" }, { "label": "TimeandSpa", "value": "897" }, { "label": "timegate", "value": "3336" }, { "label": "Timeissile", "value": "5987" }, { "label": "TimeKingJO", "value": "2560" }, { "label": "Timelimit", "value": "3834" }, { "label": "TimeLoop", "value": "702" }, { "label": "TimeManipu", "value": "672" }, { "label": "TimeParado", "value": "777" }, { "label": "TimeSkip", "value": "410" }, { "label": "TimeTravel", "value": "199" }, { "label": "TimidProta", "value": "463" }, { "label": "TingFengZh", "value": "1884" }, { "label": "Titans", "value": "753" }, { "label": "toast", "value": "4801" }, { "label": "tobacco", "value": "2187" }, { "label": "Today&0", "value": "2699" }, { "label": "Toilet", "value": "2716" }, { "label": "toiletlepr", "value": "3794" }, { "label": "Tokyo", "value": "1446" }, { "label": "TokyoGhoul", "value": "1739" }, { "label": "tomatofish", "value": "4388" }, { "label": "TomatoUme", "value": "5499" }, { "label": "TomboyishF", "value": "466" }, { "label": "TombRaider", "value": "3978" }, { "label": "TombRaider", "value": "2444" }, { "label": "TombRaider", "value": "2433" }, { "label": "TombRaider", "value": "2344" }, { "label": "TombRaider", "value": "2213" }, { "label": "tomorrowwh", "value": "4492" }, { "label": "tomorrowwi", "value": "1896" }, { "label": "ToneMasaya", "value": "2012" }, { "label": "Tongsheng", "value": "4926" }, { "label": "Tongzi", "value": "4491" }, { "label": "tonightrai", "value": "5567" }, { "label": "Tooold", "value": "6060" }, { "label": "toothinpig", "value": "4485" }, { "label": "TopMC", "value": "1655" }, { "label": "TopoftheCl", "value": "2740" }, { "label": "TopoftheCl", "value": "2103" }, { "label": "TopoftheCl", "value": "2023" }, { "label": "TopoftheFo", "value": "2420" }, { "label": "Topstream", "value": "3260" }, { "label": "Toriko", "value": "1336" }, { "label": "Tornadodes", "value": "6057" }, { "label": "Torture", "value": "728" }, { "label": "touchyou", "value": "4048" }, { "label": "Toughgirl", "value": "3142" }, { "label": "towashthed", "value": "2662" }, { "label": "TowerDefen", "value": "1177" }, { "label": "trackandfi", "value": "3610" }, { "label": "Trade", "value": "863" }, { "label": "TradeWar", "value": "3100" }, { "label": "Tragedy", "value": "887" }, { "label": "TragicPast", "value": "140" }, { "label": "Tramsmigra", "value": "1601" }, { "label": "Tranformer", "value": "852" }, { "label": "Transforma", "value": "5686" }, { "label": "Transforma", "value": "109" }, { "label": "Transforme", "value": "4123" }, { "label": "transmigat", "value": "1436" }, { "label": "transmigra", "value": "1420" }, { "label": "Transmigra", "value": "32" }, { "label": "Transmigra", "value": "1512" }, { "label": "Transmigra", "value": "1098" }, { "label": "Transmigra", "value": "1209" }, { "label": "Transmigra", "value": "1119" }, { "label": "Transmigra", "value": "1112" }, { "label": "Transmigra", "value": "1048" }, { "label": "Transmigra", "value": "968" }, { "label": "Transplant", "value": "525" }, { "label": "Transporte", "value": "790" }, { "label": "Transporte", "value": "554" }, { "label": "Transporte", "value": "464" }, { "label": "Transporte", "value": "372" }, { "label": "TransportI", "value": "1299" }, { "label": "Transportt", "value": "1231" }, { "label": "Trap", "value": "348" }, { "label": "travel", "value": "4353" }, { "label": "Traveling", "value": "1571" }, { "label": "Travelinga", "value": "6115" }, { "label": "TravelingT", "value": "1075" }, { "label": "traveller", "value": "1625" }, { "label": "Travelthro", "value": "6134" }, { "label": "Traverse", "value": "901" }, { "label": "TreasureCh", "value": "3635" }, { "label": "TreasureHu", "value": "1238" }, { "label": "TreasureHu", "value": "964" }, { "label": "TreasureHu", "value": "942" }, { "label": "treefool", "value": "3823" }, { "label": "treeofenli", "value": "2809" }, { "label": "TribalSoci", "value": "465" }, { "label": "trickery", "value": "3157" }, { "label": "trickery1V", "value": "3075" }, { "label": "trickeryin", "value": "2970" }, { "label": "trickerySl", "value": "5335" }, { "label": "Trickster", "value": "452" }, { "label": "Trnasmigra", "value": "1552" }, { "label": "Troubledti", "value": "3092" }, { "label": "Troubledti", "value": "3054" }, { "label": "Troubledti", "value": "3052" }, { "label": "TroubledTi", "value": "5349" }, { "label": "TroubledWo", "value": "2534" }, { "label": "Trueandfal", "value": "3189" }, { "label": "TrueorFake", "value": "2915" }, { "label": "TrumanLive", "value": "2452" }, { "label": "TS", "value": "4334" }, { "label": "TsingYiLao", "value": "5264" }, { "label": "TsukibaAki", "value": "2138" }, { "label": "Tsundere", "value": "349" }, { "label": "TsundereLo", "value": "1723" }, { "label": "Tsunderesc", "value": "2464" }, { "label": "Tsuru", "value": "801" }, { "label": "tumbler", "value": "3534" }, { "label": "Turnonairc", "value": "5943" }, { "label": "Turnthecir", "value": "5561" }, { "label": "Turtle", "value": "3937" }, { "label": "turtlelike", "value": "4750" }, { "label": "Tutuwantst", "value": "4392" }, { "label": "tv", "value": "1431" }, { "label": "twelvemove", "value": "3852" }, { "label": "TwentyFame", "value": "2380" }, { "label": "twilight", "value": "1964" }, { "label": "twilightdr", "value": "2775" }, { "label": "Twilightis", "value": "1850" }, { "label": "twilightmy", "value": "4011" }, { "label": "Twinbabies", "value": "1176" }, { "label": "twingods", "value": "2764" }, { "label": "Twins", "value": "196" }, { "label": "Twistbroth", "value": "2645" }, { "label": "TwistedChe", "value": "5385" }, { "label": "TwistedPer", "value": "499" }, { "label": "two", "value": "3678" }, { "label": "Two-dimens", "value": "6138" }, { "label": "Two-dimens", "value": "4116" }, { "label": "Two-dimens", "value": "2612" }, { "label": "Two-dimens", "value": "2427" }, { "label": "Two-dimens", "value": "2373" }, { "label": "two-waycru", "value": "3115" }, { "label": "two-wayred", "value": "3321" }, { "label": "TwoChildre", "value": "3488" }, { "label": "Twodimensi", "value": "6144" }, { "label": "Twohorsesa", "value": "6010" }, { "label": "TwoJinSuia", "value": "5704" }, { "label": "Twopeopleb", "value": "2714" }, { "label": "Twopoundso", "value": "2673" }, { "label": "Twotwothre", "value": "3536" }, { "label": "twotwoyell", "value": "4648" }, { "label": "TypeMoon", "value": "1595" }, { "label": "Tyrant", "value": "1762" }, { "label": "Uchihaswor", "value": "5578" }, { "label": "Ugly", "value": "3448" }, { "label": "Uglyface", "value": "6040" }, { "label": "UglyProtag", "value": "739" }, { "label": "UglytoBeau", "value": "483" }, { "label": "Ultimatein", "value": "4760" }, { "label": "UltramanJu", "value": "5658" }, { "label": "UltramanPo", "value": "1935" }, { "label": "unbearable", "value": "2048" }, { "label": "Uncertainw", "value": "5669" }, { "label": "Uncle", "value": "3593" }, { "label": "UncleArche", "value": "5386" }, { "label": "UncleLiter", "value": "4435" }, { "label": "UncleLiuHu", "value": "5544" }, { "label": "UncleMario", "value": "4296" }, { "label": "unclemerea", "value": "5404" }, { "label": "Unconditio", "value": "141" }, { "label": "Undead", "value": "4345" }, { "label": "undeadfish", "value": "2124" }, { "label": "Undead丨Kn", "value": "2214" }, { "label": "Undefeated", "value": "2850" }, { "label": "Undercover", "value": "3328" }, { "label": "Underestim", "value": "580" }, { "label": "underlolic", "value": "2702" }, { "label": "undersilve", "value": "2431" }, { "label": "understate", "value": "2833" }, { "label": "understood", "value": "4843" }, { "label": "underthera", "value": "3537" }, { "label": "underthesn", "value": "4616" }, { "label": "underthest", "value": "3743" }, { "label": "UnderYeYuc", "value": "5360" }, { "label": "Undocument", "value": "1801" }, { "label": "unexpected", "value": "1395" }, { "label": "Unexpected", "value": "4574" }, { "label": "unfinished", "value": "5381" }, { "label": "Unintentio", "value": "2824" }, { "label": "Unique", "value": "3845" }, { "label": "UniqueCult", "value": "323" }, { "label": "UniqueWeap", "value": "735" }, { "label": "UniqueWeap", "value": "751" }, { "label": "Universale", "value": "4293" }, { "label": "unknown", "value": "2517" }, { "label": "UnknownTao", "value": "2422" }, { "label": "Unknowntea", "value": "1833" }, { "label": "Unlimitedc", "value": "2844" }, { "label": "UnlimitedF", "value": "1530" }, { "label": "Unlimiteds", "value": "3955" }, { "label": "unlucky", "value": "4119" }, { "label": "UnluckyPro", "value": "432" }, { "label": "Unprincipl", "value": "5078" }, { "label": "Unreliable", "value": "456" }, { "label": "Unremarkab", "value": "5948" }, { "label": "Unrequited", "value": "561" }, { "label": "UnrulyConf", "value": "3472" }, { "label": "unyielding", "value": "4098" }, { "label": "Updatewith", "value": "3951" }, { "label": "upgrade", "value": "3132" }, { "label": "upgradeflo", "value": "3204" }, { "label": "Upsetting", "value": "2184" }, { "label": "Urban", "value": "350" }, { "label": "UrbanDatan", "value": "1874" }, { "label": "urbanimmor", "value": "3601" }, { "label": "UrbanLife", "value": "893" }, { "label": "UrbanMilit", "value": "2505" }, { "label": "urbanshark", "value": "2256" }, { "label": "urbanstar", "value": "2210" }, { "label": "Urbanyearn", "value": "2846" }, { "label": "urbanyoung", "value": "5907" }, { "label": "Urbanyouth", "value": "1727" }, { "label": "vampire", "value": "1419" }, { "label": "Vampire", "value": "995" }, { "label": "vampiredri", "value": "2504" }, { "label": "Vampires", "value": "16" }, { "label": "Vanves", "value": "3232" }, { "label": "Variety", "value": "3274" }, { "label": "VarietySho", "value": "1645" }, { "label": "VenerableP", "value": "4210" }, { "label": "VenusSoul", "value": "4039" }, { "label": "VersatileM", "value": "1222" }, { "label": "veryhappy", "value": "3989" }, { "label": "veryobsess", "value": "5402" }, { "label": "verypurean", "value": "4957" }, { "label": "verysleepy", "value": "3933" }, { "label": "Vest", "value": "1504" }, { "label": "Vicissitud", "value": "5230" }, { "label": "Victoria", "value": "5819" }, { "label": "VictorianE", "value": "924" }, { "label": "Videogame", "value": "5080" }, { "label": "videogames", "value": "4339" }, { "label": "videostrea", "value": "3362" }, { "label": "Vientiane", "value": "4183" }, { "label": "Viewofthec", "value": "1973" }, { "label": "VikaBaka", "value": "3381" }, { "label": "villageisv", "value": "3935" }, { "label": "VillagerB", "value": "5031" }, { "label": "Villain", "value": "538" }, { "label": "Villainess", "value": "698" }, { "label": "Villainess", "value": "1618" }, { "label": "VillainEvi", "value": "1323" }, { "label": "VillainPro", "value": "1637" }, { "label": "Villains", "value": "1548" }, { "label": "VillIain", "value": "1502" }, { "label": "VinegarKin", "value": "3195" }, { "label": "Violence", "value": "4338" }, { "label": "violentthu", "value": "5980" }, { "label": "VirtualRea", "value": "93" }, { "label": "Vlogging", "value": "912" }, { "label": "Vodkaandmi", "value": "4826" }, { "label": "Voice", "value": "3224" }, { "label": "VoiceActor", "value": "549" }, { "label": "VoicePack", "value": "1319" }, { "label": "VoidLinnos", "value": "5463" }, { "label": "VoidStupid", "value": "4623" }, { "label": "Wakeup", "value": "5764" }, { "label": "Walkinthec", "value": "2297" }, { "label": "walkonthee", "value": "4658" }, { "label": "Wanderer", "value": "2088" }, { "label": "wanderings", "value": "1963" }, { "label": "WangDachen", "value": "4513" }, { "label": "WangEr", "value": "2459" }, { "label": "WangHuoyub", "value": "5908" }, { "label": "WangJiu", "value": "1845" }, { "label": "WangLin", "value": "3504" }, { "label": "WangXiaomi", "value": "2353" }, { "label": "WanliWanhu", "value": "3779" }, { "label": "Wannianfen", "value": "5475" }, { "label": "WanTsang", "value": "5270" }, { "label": "wanttocome", "value": "2859" }, { "label": "wanttoeatg", "value": "2501" }, { "label": "Wanttoeatt", "value": "4952" }, { "label": "wanttohold", "value": "5540" }, { "label": "wanttolive", "value": "4520" }, { "label": "war", "value": "1408" }, { "label": "War", "value": "848" }, { "label": "warboss", "value": "3904" }, { "label": "Warcraft", "value": "4360" }, { "label": "Warhammer4", "value": "796" }, { "label": "Warlock", "value": "3418" }, { "label": "Warlocks", "value": "792" }, { "label": "Warm", "value": "3216" }, { "label": "warmalittl", "value": "4722" }, { "label": "warmaster", "value": "4251" }, { "label": "Warmman", "value": "3447" }, { "label": "warmmilkte", "value": "4472" }, { "label": "warmtime", "value": "2606" }, { "label": "WarofCivil", "value": "2906" }, { "label": "WarRecords", "value": "1187" }, { "label": "warrior", "value": "3293" }, { "label": "Wars", "value": "151" }, { "label": "Warship", "value": "1572" }, { "label": "WarsWeakto", "value": "696" }, { "label": "wastebaske", "value": "4247" }, { "label": "wastedream", "value": "4020" }, { "label": "wastefish", "value": "2453" }, { "label": "Wasteland", "value": "898" }, { "label": "WasteWoodA", "value": "2167" }, { "label": "Wastewoodf", "value": "3442" }, { "label": "Wastewoodn", "value": "5594" }, { "label": "watchtoget", "value": "3926" }, { "label": "waterdropr", "value": "4502" }, { "label": "WaterMargi", "value": "3355" }, { "label": "watermelon", "value": "5007" }, { "label": "watermelon", "value": "4721" }, { "label": "watermelon", "value": "2169" }, { "label": "watermolec", "value": "3515" }, { "label": "watertenta", "value": "5967" }, { "label": "watertown", "value": "2585" }, { "label": "waxypen", "value": "3485" }, { "label": "weaklyacid", "value": "4614" }, { "label": "WeakProtag", "value": "477" }, { "label": "WeaktoClan", "value": "1325" }, { "label": "WeaktoStro", "value": "17" }, { "label": "WeaktoStro", "value": "5097" }, { "label": "Wealth", "value": "1536" }, { "label": "WealthChar", "value": "1602" }, { "label": "wealthy", "value": "4467" }, { "label": "WealthyCha", "value": "7" }, { "label": "WealthyCha", "value": "1573" }, { "label": "wealthyfam", "value": "5046" }, { "label": "Wearabook", "value": "1612" }, { "label": "wearback", "value": "3147" }, { "label": "WearBook", "value": "1154" }, { "label": "wearbooksy", "value": "5333" }, { "label": "wearingabo", "value": "1718" }, { "label": "weatapeach", "value": "5369" }, { "label": "WebNovel", "value": "1673" }, { "label": "WebnovelSp", "value": "1043" }, { "label": "WeektoStro", "value": "1002" }, { "label": "Weirdstori", "value": "6135" }, { "label": "WeiyangXun", "value": "3826" }, { "label": "WenGuang", "value": "2541" }, { "label": "WenrenJing", "value": "4880" }, { "label": "WenXuanyu", "value": "2546" }, { "label": "WenYue", "value": "4242" }, { "label": "Werebeasts", "value": "765" }, { "label": "Werewolf", "value": "5061" }, { "label": "Werewolves", "value": "1148" }, { "label": "WesternFan", "value": "1387" }, { "label": "Westernrai", "value": "2119" }, { "label": "WestwardJo", "value": "3382" }, { "label": "what&03", "value": "5181" }, { "label": "What&03", "value": "4430" }, { "label": "What&03", "value": "2028" }, { "label": "Whatareyou", "value": "5926" }, { "label": "whatisyour", "value": "5773" }, { "label": "Whattodoif", "value": "5835" }, { "label": "Whattodowi", "value": "5157" }, { "label": "Whenthedev", "value": "4294" }, { "label": "WhentheJun", "value": "4707" }, { "label": "WhenyourNP", "value": "4748" }, { "label": "White", "value": "3453" }, { "label": "WhiteBunSe", "value": "1260" }, { "label": "Whitecolla", "value": "3748" }, { "label": "whiteconfe", "value": "4501" }, { "label": "WhiteDevil", "value": "5266" }, { "label": "whitefiref", "value": "4701" }, { "label": "whitefox", "value": "5300" }, { "label": "whitefoxfr", "value": "3662" }, { "label": "whitegown", "value": "4778" }, { "label": "Whitehorse", "value": "2349" }, { "label": "whitekeybo", "value": "2249" }, { "label": "whitelate", "value": "5002" }, { "label": "whitelotus", "value": "3749" }, { "label": "Whitemoonl", "value": "3343" }, { "label": "whiterice", "value": "4904" }, { "label": "whiteshirt", "value": "2798" }, { "label": "Whitesnake", "value": "3573" }, { "label": "Whitesparr", "value": "5925" }, { "label": "Wholesome", "value": "3839" }, { "label": "Whoringmak", "value": "2713" }, { "label": "wife-chasi", "value": "3895" }, { "label": "WifeistheD", "value": "2583" }, { "label": "wildcatsus", "value": "5140" }, { "label": "wildcrumbs", "value": "5263" }, { "label": "Wilde", "value": "4777" }, { "label": "wilderness", "value": "6089" }, { "label": "Wilderness", "value": "884" }, { "label": "wildlove", "value": "5884" }, { "label": "wildradish", "value": "5953" }, { "label": "Will-o&", "value": "5550" }, { "label": "willowcand", "value": "2447" }, { "label": "Willowleav", "value": "3465" }, { "label": "windandclo", "value": "3723" }, { "label": "windandfor", "value": "5459" }, { "label": "windandmap", "value": "2616" }, { "label": "WindandSno", "value": "4728" }, { "label": "Windandwea", "value": "4632" }, { "label": "windandwhe", "value": "3930" }, { "label": "windchime~", "value": "4176" }, { "label": "winddance", "value": "4783" }, { "label": "WindMeteor", "value": "4830" }, { "label": "WindSpirit", "value": "1932" }, { "label": "windstopsn", "value": "5801" }, { "label": "windtobebu", "value": "3824" }, { "label": "windup", "value": "5110" }, { "label": "WindWhispe", "value": "5642" }, { "label": "windy", "value": "5751" }, { "label": "windyblack", "value": "6012" }, { "label": "wingedgras", "value": "5293" }, { "label": "Winningthe", "value": "2294" }, { "label": "winter", "value": "4150" }, { "label": "WinterandS", "value": "4744" }, { "label": "winterbird", "value": "5876" }, { "label": "Winterfall", "value": "4547" }, { "label": "wipeandpic", "value": "4911" }, { "label": "Wisdom", "value": "3108" }, { "label": "wishardtow", "value": "1819" }, { "label": "Wishes", "value": "562" }, { "label": "Witch", "value": "3750" }, { "label": "Witches", "value": "647" }, { "label": "witchfan", "value": "2139" }, { "label": "witheredpr", "value": "2413" }, { "label": "witheredsh", "value": "5169" }, { "label": "WithShehbu", "value": "3521" }, { "label": "wittylittl", "value": "4939" }, { "label": "Wizard", "value": "902" }, { "label": "Wizards", "value": "316" }, { "label": "wizardstre", "value": "3301" }, { "label": "WolfTotem", "value": "6058" }, { "label": "women&0", "value": "6148" }, { "label": "WongTingLi", "value": "3983" }, { "label": "woodbig", "value": "4091" }, { "label": "Woodbrothe", "value": "3916" }, { "label": "woodenswor", "value": "5599" }, { "label": "Working", "value": "5126" }, { "label": "Workplace", "value": "3271" }, { "label": "workplaceb", "value": "3571" }, { "label": "world", "value": "5974" }, { "label": "World-hopp", "value": "867" }, { "label": "WorldEmpir", "value": "1337" }, { "label": "WorldHopin", "value": "945" }, { "label": "WorldHoppi", "value": "33" }, { "label": "worldofphi", "value": "4737" }, { "label": "WorldofWar", "value": "1703" }, { "label": "Worlds", "value": "5063" }, { "label": "WorldTrave", "value": "332" }, { "label": "WorldTree", "value": "679" }, { "label": "WorldWar2", "value": "1495" }, { "label": "WOW", "value": "2894" }, { "label": "Writeabook", "value": "5141" }, { "label": "writebighe", "value": "4977" }, { "label": "writebookq", "value": "5718" }, { "label": "WriteBooks", "value": "4820" }, { "label": "writeonlyz", "value": "1837" }, { "label": "Writer", "value": "872" }, { "label": "Writers", "value": "406" }, { "label": "WriterUHae", "value": "5833" }, { "label": "Writingfoo", "value": "5615" }, { "label": "Wuhutookof", "value": "2429" }, { "label": "WuhuWuhu", "value": "4073" }, { "label": "Wuxia", "value": "626" }, { "label": "Wuxiabuysf", "value": "5947" }, { "label": "Wuxicheng", "value": "1849" }, { "label": "WW2", "value": "3730" }, { "label": "wxya", "value": "4310" }, { "label": "XiaJiBanxi", "value": "4981" }, { "label": "XiaJiEight", "value": "4027" }, { "label": "XiangziYan", "value": "4379" }, { "label": "Xianjun", "value": "3173" }, { "label": "XianmengXi", "value": "4227" }, { "label": "Xianxia", "value": "255" }, { "label": "XianxiaCul", "value": "6133" }, { "label": "XianYushan", "value": "5874" }, { "label": "Xianzun", "value": "3446" }, { "label": "Xiaobaicry", "value": "4973" }, { "label": "Xiaobuisno", "value": "5439" }, { "label": "Xiaofei", "value": "4747" }, { "label": "Xiaohubuys", "value": "4627" }, { "label": "XiaoJieJie", "value": "5737" }, { "label": "XiaoLinWei", "value": "6119" }, { "label": "Xiaomiisah", "value": "6054" }, { "label": "XiaomiStar", "value": "2648" }, { "label": "XiaoMo&", "value": "4742" }, { "label": "Xiaonianbl", "value": "2529" }, { "label": "XiaonianXu", "value": "2621" }, { "label": "Xiaoqianhu", "value": "6081" }, { "label": "Xiaoran", "value": "5535" }, { "label": "XiaoshanQi", "value": "4669" }, { "label": "XiaoTangon", "value": "4679" }, { "label": "Xiaothreey", "value": "2858" }, { "label": "XiaoxiangP", "value": "2836" }, { "label": "XiaoXiao", "value": "5529" }, { "label": "Xiaoxin", "value": "1944" }, { "label": "Xiaoyuhast", "value": "5224" }, { "label": "Xiaozhi", "value": "4558" }, { "label": "XiaTing", "value": "4887" }, { "label": "Xiawholove", "value": "3912" }, { "label": "XiaXiaolan", "value": "4894" }, { "label": "XiaXiaXia", "value": "4684" }, { "label": "XieDaoheng", "value": "2519" }, { "label": "Xier", "value": "4257" }, { "label": "Xijing", "value": "3387" }, { "label": "Xinjia", "value": "5380" }, { "label": "Xiuwaihuih", "value": "3353" }, { "label": "Xiuxian", "value": "3133" }, { "label": "Xiuxian&am", "value": "5198" }, { "label": "XiuXiuXiuX", "value": "1848" }, { "label": "Xizhilangc", "value": "5781" }, { "label": "XL-423", "value": "5546" }, { "label": "XNUMXDupda", "value": "3985" }, { "label": "Xuanhuan", "value": "539" }, { "label": "Xuansheng", "value": "3962" }, { "label": "XuanyueQin", "value": "4551" }, { "label": "XuanYuisea", "value": "4279" }, { "label": "XuebaIII", "value": "2231" }, { "label": "Xuebaisinv", "value": "2275" }, { "label": "Xueqiunder", "value": "2065" }, { "label": "XueshenSan", "value": "4521" }, { "label": "Xufamilyel", "value": "2247" }, { "label": "XuIintheTa", "value": "2477" }, { "label": "XuShizi", "value": "4515" }, { "label": "XuShiziqia", "value": "5633" }, { "label": "XuYuanle", "value": "4437" }, { "label": "YaeSakurai", "value": "4161" }, { "label": "Yahyfvs", "value": "6043" }, { "label": "Yakult", "value": "2279" }, { "label": "Yakumo", "value": "3909" }, { "label": "Yakumobloo", "value": "3923" }, { "label": "Yakumofami", "value": "4121" }, { "label": "Yakumowhit", "value": "5882" }, { "label": "Yamasquirr", "value": "5625" }, { "label": "Yancontrol", "value": "3229" }, { "label": "yandcrooke", "value": "5627" }, { "label": "Yandere", "value": "510" }, { "label": "YangXiaoA", "value": "2071" }, { "label": "YangXiaoli", "value": "4311" }, { "label": "YanQiuyu", "value": "5352" }, { "label": "YanyunYing", "value": "5259" }, { "label": "Yaoi", "value": "446" }, { "label": "Yaoyue", "value": "2864" }, { "label": "Yapi", "value": "5683" }, { "label": "yary", "value": "4726" }, { "label": "YawuZiyun", "value": "5255" }, { "label": "yearaftery", "value": "2822" }, { "label": "yearningfo", "value": "2743" }, { "label": "yearningfo", "value": "2551" }, { "label": "yearningfo", "value": "2230" }, { "label": "Yearningfo", "value": "2365" }, { "label": "Yearningfo", "value": "2193" }, { "label": "Yearningto", "value": "2926" }, { "label": "YeChengzho", "value": "4218" }, { "label": "YeFeiyu", "value": "4762" }, { "label": "YeGongzi", "value": "2680" }, { "label": "YeGucheng", "value": "2646" }, { "label": "YeGuxue", "value": "4151" }, { "label": "yellowleav", "value": "5158" }, { "label": "YellowSpri", "value": "1788" }, { "label": "YeluChengj", "value": "1829" }, { "label": "YeQianqiu", "value": "2766" }, { "label": "YeTingfeng", "value": "6025" }, { "label": "YeTong", "value": "4846" }, { "label": "YeXiaobai", "value": "2286" }, { "label": "YeYe", "value": "2928" }, { "label": "Yibai", "value": "4716" }, { "label": "Yibuchuckl", "value": "5976" }, { "label": "YichenSwor", "value": "5422" }, { "label": "yinandyang", "value": "6143" }, { "label": "Ying&03", "value": "2274" }, { "label": "Yinglili&a", "value": "4600" }, { "label": "YinGongziY", "value": "5629" }, { "label": "YingTianMo", "value": "4906" }, { "label": "YingXiaofe", "value": "2029" }, { "label": "YinLiisins", "value": "1924" }, { "label": "Yongchuang", "value": "1983" }, { "label": "yonorth", "value": "3881" }, { "label": "Yoooooooom", "value": "4690" }, { "label": "Youalsowan", "value": "3505" }, { "label": "youareatra", "value": "5356" }, { "label": "Youarelike", "value": "5612" }, { "label": "youaretoow", "value": "1899" }, { "label": "Youkaishan", "value": "4672" }, { "label": "Young", "value": "5091" }, { "label": "YoungerBro", "value": "747" }, { "label": "YoungerLov", "value": "769" }, { "label": "YoungerSis", "value": "563" }, { "label": "Younghero", "value": "6083" }, { "label": "younglovei", "value": "4326" }, { "label": "YoungMaste", "value": "5234" }, { "label": "YoungMaste", "value": "2757" }, { "label": "YoungMaste", "value": "2669" }, { "label": "Youofthesk", "value": "5732" }, { "label": "Yourpupils", "value": "4361" }, { "label": "Youth", "value": "894" }, { "label": "YouthLittl", "value": "5152" }, { "label": "youwholove", "value": "5153" }, { "label": "YouZhu", "value": "5854" }, { "label": "youzi", "value": "5039" }, { "label": "yoyo", "value": "5299" }, { "label": "Yu-Gi-Oh", "value": "1085" }, { "label": "YuanandMin", "value": "5696" }, { "label": "YuanXiwu", "value": "5652" }, { "label": "Yuanyiunde", "value": "3938" }, { "label": "Yuanyuzhou", "value": "6075" }, { "label": "YuboTiandi", "value": "2282" }, { "label": "YuDaoan", "value": "4084" }, { "label": "Yueguhua", "value": "4094" }, { "label": "YuFengqian", "value": "4550" }, { "label": "Yugioh", "value": "1263" }, { "label": "Yujielonga", "value": "3773" }, { "label": "YuMingYins", "value": "3780" }, { "label": "Yunding丨P", "value": "3583" }, { "label": "YunJiangdo", "value": "4915" }, { "label": "Yunmu", "value": "2233" }, { "label": "Yunshan", "value": "6008" }, { "label": "YunXiaoluo", "value": "6073" }, { "label": "YunZhongju", "value": "2839" }, { "label": "YunZimo", "value": "3544" }, { "label": "Yuri", "value": "840" }, { "label": "YuShiyu", "value": "4714" }, { "label": "YushuangYS", "value": "4656" }, { "label": "YuSu", "value": "5015" }, { "label": "Yutang", "value": "5354" }, { "label": "YuTsingYi", "value": "2524" }, { "label": "YuXiaoqi", "value": "2136" }, { "label": "YuYuyu", "value": "2687" }, { "label": "z-man", "value": "805" }, { "label": "Zanfran", "value": "4246" }, { "label": "ZanpakutoK", "value": "4968" }, { "label": "Zcraft", "value": "5787" }, { "label": "Zerg", "value": "1076" }, { "label": "Zergs", "value": "1104" }, { "label": "Zerocharge", "value": "3754" }, { "label": "zeroclothe", "value": "3827" }, { "label": "zerooverfl", "value": "6005" }, { "label": "zfighters", "value": "1442" }, { "label": "ZhangErgou", "value": "2653" }, { "label": "ZhangFeiin", "value": "2569" }, { "label": "ZhangGaoqi", "value": "3756" }, { "label": "Zhanginfro", "value": "4276" }, { "label": "ZhangJuli", "value": "2548" }, { "label": "ZhangLuo", "value": "4703" }, { "label": "ZhangShuan", "value": "3669" }, { "label": "ZhangTianb", "value": "2335" }, { "label": "ZhaNiu", "value": "5190" }, { "label": "ZhaoSisi", "value": "4327" }, { "label": "ZhaoWenwub", "value": "5498" }, { "label": "Zhengde", "value": "3295" }, { "label": "Zhenguan", "value": "3391" }, { "label": "ZhiLingInk", "value": "4985" }, { "label": "zhishen", "value": "2697" }, { "label": "Zhiyuan", "value": "4477" }, { "label": "ZhouJijiu", "value": "5611" }, { "label": "ZhuangShis", "value": "4234" }, { "label": "ZhuDabald", "value": "2851" }, { "label": "Zhuge", "value": "4563" }, { "label": "ZhugeDali&", "value": "2576" }, { "label": "ZhugeIrona", "value": "2165" }, { "label": "Zhugeiscra", "value": "2584" }, { "label": "ZhuqiuSanj", "value": "5361" }, { "label": "Zhutianliu", "value": "6146" }, { "label": "ZhuZhiyue", "value": "2123" }, { "label": "ZiandIaren", "value": "3811" }, { "label": "Zippo", "value": "2706" }, { "label": "ZiXuanXuan", "value": "1903" }, { "label": "Ziyingisno", "value": "5927" }, { "label": "Zofi", "value": "5005" }, { "label": "Zombie", "value": "918" }, { "label": "zombiefish", "value": "2257" }, { "label": "ZombieGod", "value": "2145" }, { "label": "ZombieQuee", "value": "1577" }, { "label": "Zombies", "value": "102" }, { "label": "ZombieSumo", "value": "3377" }, { "label": "Zongmen", "value": "3412" }, { "label": "Zoo", "value": "920" }, { "label": "Zuge", "value": "2150" }, { "label": "Zulongstil", "value": "2266" }, { "label": "ZuoJinghon", "value": "5791" }, { "label": "ZuwuGonggo", "value": "2676" }, { "label": "一条小段段", "value": "5851" }, { "label": "丑颜", "value": "5890" }, { "label": "东晨", "value": "5945" }, { "label": "丫大", "value": "5214" }, { "label": "云怅", "value": "5834" }, { "label": "仕辰", "value": "1873" }, { "label": "你的答案", "value": "4028" }, { "label": "北八", "value": "5520" }, { "label": "半弦", "value": "3873" }, { "label": "夜独", "value": "6009" }, { "label": "天律", "value": "6032" }, { "label": "女神", "value": "3212" }, { "label": "妖精", "value": "3172" }, { "label": "婚姻", "value": "5123" }, { "label": "宋朝", "value": "3124" }, { "label": "家族", "value": "3460" }, { "label": "小封", "value": "2203" }, { "label": "开凡", "value": "6111" }, { "label": "影", "value": "5901" }, { "label": "往月", "value": "5720" }, { "label": "慕阳", "value": "2057" }, { "label": "教授", "value": "3777" }, { "label": "晓墨", "value": "5939" }, { "label": "木其", "value": "5522" }, { "label": "森罗", "value": "2361" }, { "label": "氪金", "value": "3312" }, { "label": "汪叽", "value": "5800" }, { "label": "沙酱", "value": "6027" }, { "label": "清裁", "value": "2838" }, { "label": "温桑", "value": "5192" }, { "label": "焕焕", "value": "6116" }, { "label": "王晏", "value": "5816" }, { "label": "王者荣耀", "value": "3393" }, { "label": "直播", "value": "3279" }, { "label": "神话", "value": "3222" }, { "label": "空间", "value": "3103" }, { "label": "肆灵", "value": "6123" }, { "label": "萌图", "value": "2821" }, { "label": "蝉眠", "value": "5514" }, { "label": "谢邀", "value": "1904" }, { "label": "财女", "value": "5989" }, { "label": "越泽", "value": "5963" }, { "label": "酣歌", "value": "2182" }, { "label": "醉咏", "value": "5895" }, { "label": "醉猫", "value": "5923" }, { "label": "金融", "value": "3101" }, { "label": "铁帅", "value": "2093" }, { "label": "零充", "value": "2924" }, { "label": "非洲", "value": "3714" }, { "label": "风水", "value": "4863" }, { "label": "饕牛", "value": "1831" }, { "label": "A.I", "value": "3128" }, { "label": "Aaron&0", "value": "2097" }, { "label": "Abandoned", "value": "1023" }, { "label": "AbandonedC", "value": "339" }, { "label": "AbandonedC", "value": "1633" }, { "label": "Abilities", "value": "1734" }, { "label": "Ability", "value": "1017" }, { "label": "AbilitySte", "value": "221" }, { "label": "ABO", "value": "899" }, { "label": "Abortion", "value": "1739" }, { "label": "AbsentPare", "value": "249" }, { "label": "AbsoluteDu", "value": "1724" }, { "label": "absolutely", "value": "2294" }, { "label": "Abuse", "value": "1707" }, { "label": "AbusiveCha", "value": "274" }, { "label": "AbusiveCha", "value": "818" }, { "label": "Abyss", "value": "3071" }, { "label": "Academy", "value": "49" }, { "label": "AcasualPaw", "value": "163" }, { "label": "Accelerate", "value": "236" }, { "label": "AcceptingD", "value": "1543" }, { "label": "ACGN", "value": "1692" }, { "label": "Acting", "value": "102" }, { "label": "Action", "value": "251" }, { "label": "Actors", "value": "1149" }, { "label": "Actress", "value": "1563" }, { "label": "AdaptedtoA", "value": "17" }, { "label": "AdaptedtoD", "value": "93" }, { "label": "AdaptedtoD", "value": "486" }, { "label": "AdaptedtoG", "value": "601" }, { "label": "AdaptedtoM", "value": "3" }, { "label": "AdaptedtoM", "value": "108" }, { "label": "AdaptedtoM", "value": "810" }, { "label": "AdaptedtoM", "value": "676" }, { "label": "AdaptedtoV", "value": "975" }, { "label": "ADeadBody", "value": "3161" }, { "label": "Adopted", "value": "1352" }, { "label": "AdoptedChi", "value": "404" }, { "label": "AdoptedPro", "value": "340" }, { "label": "Adoption", "value": "1740" }, { "label": "Adrogynous", "value": "1152" }, { "label": "Adult", "value": "1486" }, { "label": "Adultery", "value": "405" }, { "label": "AdvancedKn", "value": "1600" }, { "label": "advancedte", "value": "1700" }, { "label": "adventerer", "value": "2992" }, { "label": "Adventure", "value": "910" }, { "label": "Adventurer", "value": "288" }, { "label": "Adventurer", "value": "1012" }, { "label": "Affair", "value": "605" }, { "label": "AfricanEmi", "value": "1931" }, { "label": "Aftertheso", "value": "1859" }, { "label": "Age-gap", "value": "1982" }, { "label": "AgeDiffere", "value": "908" }, { "label": "Agedistrib", "value": "3259" }, { "label": "AgeGap", "value": "1681" }, { "label": "Agent", "value": "3278" }, { "label": "AgeofGods", "value": "1933" }, { "label": "AgeProgres", "value": "319" }, { "label": "AgeRegress", "value": "446" }, { "label": "AggresiveC", "value": "1336" }, { "label": "Aggressive", "value": "410" }, { "label": "Aggressive", "value": "1513" }, { "label": "agrass", "value": "1926" }, { "label": "ahveryfish", "value": "1917" }, { "label": "AI", "value": "67" }, { "label": "AI-chip", "value": "1228" }, { "label": "Alchemist", "value": "1731" }, { "label": "Alchemy", "value": "22" }, { "label": "Aliens", "value": "95" }, { "label": "Aliverday", "value": "2716" }, { "label": "All-GirlsS", "value": "1217" }, { "label": "allenzhang", "value": "2057" }, { "label": "AllHeavens", "value": "2387" }, { "label": "Almighty", "value": "3254" }, { "label": "AlmightyCo", "value": "2845" }, { "label": "Almightypl", "value": "2842" }, { "label": "Almost", "value": "990" }, { "label": "Alone", "value": "2674" }, { "label": "alpha", "value": "3098" }, { "label": "AlterateHi", "value": "2942" }, { "label": "AlternateH", "value": "1303" }, { "label": "AlternateW", "value": "97" }, { "label": "Alternativ", "value": "3050" }, { "label": "Amagicpill", "value": "2478" }, { "label": "America", "value": "3039" }, { "label": "AmericanCo", "value": "2939" }, { "label": "Americas", "value": "2943" }, { "label": "Amnesia", "value": "495" }, { "label": "AmusementP", "value": "765" }, { "label": "Anal", "value": "575" }, { "label": "Anautumnra", "value": "2638" }, { "label": "Ancient", "value": "1582" }, { "label": "AncientBus", "value": "1304" }, { "label": "AncientChi", "value": "94" }, { "label": "AncientChi", "value": "232" }, { "label": "AncientChi", "value": "2932" }, { "label": "ancientcit", "value": "958" }, { "label": "AncientRea", "value": "1515" }, { "label": "ancientset", "value": "1502" }, { "label": "ancienttim", "value": "1096" }, { "label": "AncientTim", "value": "50" }, { "label": "AncientWea", "value": "1773" }, { "label": "Androgynou", "value": "521" }, { "label": "Androids", "value": "725" }, { "label": "anewworld", "value": "1472" }, { "label": "Angel", "value": "1625" }, { "label": "Angels", "value": "31" }, { "label": "angryhouse", "value": "2375" }, { "label": "AnimalChar", "value": "497" }, { "label": "AnimalRear", "value": "432" }, { "label": "animals", "value": "1737" }, { "label": "Animation", "value": "3078" }, { "label": "AnimationD", "value": "3079" }, { "label": "Animator", "value": "1747" }, { "label": "Anime", "value": "656" }, { "label": "animenewco", "value": "2247" }, { "label": "Anl", "value": "748" }, { "label": "AnlanInvin", "value": "2905" }, { "label": "anoldman", "value": "2311" }, { "label": "AnotherWor", "value": "864" }, { "label": "AnotherWor", "value": "1586" }, { "label": "Anti-Hero", "value": "1220" }, { "label": "Anti-HeroL", "value": "4" }, { "label": "Anti-heroP", "value": "1216" }, { "label": "Anti-Magic", "value": "592" }, { "label": "Anti-MC", "value": "2956" }, { "label": "Anti-routi", "value": "3252" }, { "label": "Anti-socia", "value": "233" }, { "label": "AntiHero", "value": "819" }, { "label": "AntiheroPr", "value": "234" }, { "label": "AntiqueSho", "value": "547" }, { "label": "ApartmentL", "value": "589" }, { "label": "ApatheticP", "value": "194" }, { "label": "Apocalypse", "value": "39" }, { "label": "Apocalypse", "value": "1128" }, { "label": "Apocalypse", "value": "1279" }, { "label": "Apocalypti", "value": "1522" }, { "label": "Appearance", "value": "458" }, { "label": "Appearance", "value": "411" }, { "label": "Apple", "value": "2007" }, { "label": "Appraisal", "value": "1227" }, { "label": "Apprentice", "value": "1426" }, { "label": "arayofsuns", "value": "2160" }, { "label": "Archer", "value": "2656" }, { "label": "Archery", "value": "112" }, { "label": "Aristocrac", "value": "281" }, { "label": "Aristocrat", "value": "1193" }, { "label": "Aristrocac", "value": "1634" }, { "label": "Arknights", "value": "1576" }, { "label": "armoredcit", "value": "3023" }, { "label": "ArmsDealer", "value": "587" }, { "label": "ArmsDealer", "value": "2947" }, { "label": "ArmsTrade", "value": "1437" }, { "label": "Army", "value": "76" }, { "label": "Army-build", "value": "1194" }, { "label": "ArmyBuildi", "value": "120" }, { "label": "ArrangedMa", "value": "116" }, { "label": "ArrogantCh", "value": "202" }, { "label": "ArtifactCr", "value": "353" }, { "label": "Artifacts", "value": "65" }, { "label": "ArtifactsB", "value": "807" }, { "label": "ArtifactsC", "value": "253" }, { "label": "artificer", "value": "1797" }, { "label": "Artificial", "value": "43" }, { "label": "Artificial", "value": "2959" }, { "label": "Artist", "value": "657" }, { "label": "Artists", "value": "422" }, { "label": "askTaichi", "value": "2361" }, { "label": "ASOIAF", "value": "2999" }, { "label": "assasin", "value": "1805" }, { "label": "Assasins", "value": "3014" }, { "label": "Assassin", "value": "1098" }, { "label": "Assassins", "value": "23" }, { "label": "Astrologer", "value": "779" }, { "label": "atravellin", "value": "1870" }, { "label": "AttemptedM", "value": "1070" }, { "label": "Attractive", "value": "1687" }, { "label": "Auspicious", "value": "2335" }, { "label": "Authoroffa", "value": "2059" }, { "label": "Autism", "value": "488" }, { "label": "AutomaticU", "value": "1678" }, { "label": "AutomaticU", "value": "1364" }, { "label": "Automatons", "value": "794" }, { "label": "autumnautu", "value": "1874" }, { "label": "Avatar", "value": "3100" }, { "label": "Avatar&", "value": "1674" }, { "label": "Average-lo", "value": "524" }, { "label": "AverageLoo", "value": "871" }, { "label": "avigorous", "value": "2513" }, { "label": "Award-winn", "value": "1032" }, { "label": "AwkwardPro", "value": "707" }, { "label": "Ayanokoji", "value": "2101" }, { "label": "AZanpakut", "value": "2693" }, { "label": "Azeroth", "value": "1745" }, { "label": "AzurLane", "value": "1111" }, { "label": "Babies", "value": "1269" }, { "label": "Baby", "value": "3202" }, { "label": "Badassprot", "value": "1738" }, { "label": "Badboy", "value": "3191" }, { "label": "BaiXiaowei", "value": "2884" }, { "label": "baldman", "value": "2433" }, { "label": "baldnessat", "value": "2355" }, { "label": "balduncle", "value": "2892" }, { "label": "Bandit", "value": "2978" }, { "label": "BarrenEmpe", "value": "2300" }, { "label": "Baseball", "value": "550" }, { "label": "BasedonaMo", "value": "369" }, { "label": "BasedonanA", "value": "1093" }, { "label": "BasedonaSo", "value": "1163" }, { "label": "BasedonaTV", "value": "747" }, { "label": "BasedonaVi", "value": "1130" }, { "label": "BasedonaVi", "value": "3119" }, { "label": "Basket", "value": "1642" }, { "label": "Basketball", "value": "228" }, { "label": "BattleAcad", "value": "380" }, { "label": "BattleComp", "value": "284" }, { "label": "BattleThro", "value": "1386" }, { "label": "BDSM", "value": "653" }, { "label": "beaming", "value": "2565" }, { "label": "Beansandgr", "value": "2848" }, { "label": "Bearcat", "value": "2179" }, { "label": "BearChild", "value": "3013" }, { "label": "Bearchildl", "value": "2272" }, { "label": "bearcocoa", "value": "2713" }, { "label": "Beast", "value": "1300" }, { "label": "beastcompa", "value": "1173" }, { "label": "BeastCompa", "value": "280" }, { "label": "Beastkin", "value": "479" }, { "label": "beastman", "value": "1743" }, { "label": "Beastmen", "value": "1419" }, { "label": "beastprota", "value": "2348" }, { "label": "Beasts", "value": "135" }, { "label": "Beasttamer", "value": "1301" }, { "label": "Beasttamin", "value": "3147" }, { "label": "Beatthefem", "value": "3153" }, { "label": "Beatthemal", "value": "3152" }, { "label": "beatyourse", "value": "2243" }, { "label": "beautifula", "value": "2755" }, { "label": "Beautifula", "value": "1043" }, { "label": "BeautifulC", "value": "3002" }, { "label": "beautifulf", "value": "1788" }, { "label": "Beautifulf", "value": "1493" }, { "label": "BeautifulF", "value": "186" }, { "label": "BeautifulF", "value": "1790" }, { "label": "Beautifulg", "value": "973" }, { "label": "beautifulh", "value": "434" }, { "label": "Beautifull", "value": "1552" }, { "label": "BeautifulP", "value": "1204" }, { "label": "beauty", "value": "1464" }, { "label": "becausesoh", "value": "2705" }, { "label": "Becomefamo", "value": "1960" }, { "label": "beggingfor", "value": "2772" }, { "label": "BehindtheS", "value": "1682" }, { "label": "BehindtheS", "value": "1541" }, { "label": "Belltouche", "value": "2440" }, { "label": "belovedbab", "value": "2031" }, { "label": "ben10", "value": "1459" }, { "label": "Bestiality", "value": "745" }, { "label": "Betrayal", "value": "25" }, { "label": "bewitching", "value": "2890" }, { "label": "BickeringC", "value": "467" }, { "label": "bickeringl", "value": "3139" }, { "label": "BigBroHasD", "value": "154" }, { "label": "bigcitysma", "value": "2406" }, { "label": "Bigcockcut", "value": "2646" }, { "label": "Bigdog", "value": "2082" }, { "label": "bigharem", "value": "931" }, { "label": "bighippo", "value": "2749" }, { "label": "bigorangew", "value": "2354" }, { "label": "bigpicture", "value": "1833" }, { "label": "Bigplayers", "value": "1916" }, { "label": "Bigshot", "value": "3197" }, { "label": "BigSkeleto", "value": "2268" }, { "label": "bigtent", "value": "2666" }, { "label": "bigwhitewh", "value": "1950" }, { "label": "Billionair", "value": "1494" }, { "label": "billionpeo", "value": "2629" }, { "label": "BingtangHu", "value": "2175" }, { "label": "Biochemist", "value": "3283" }, { "label": "Biochip", "value": "406" }, { "label": "Biomass", "value": "1749" }, { "label": "Biscuits", "value": "1879" }, { "label": "BisexualPr", "value": "823" }, { "label": "bitefire", "value": "2250" }, { "label": "Bl", "value": "3150" }, { "label": "Black-bell", "value": "891" }, { "label": "Black-bell", "value": "1324" }, { "label": "blackandim", "value": "2254" }, { "label": "blackandwh", "value": "1908" }, { "label": "blackandwh", "value": "2859" }, { "label": "Blackbelli", "value": "1592" }, { "label": "BlackBelly", "value": "170" }, { "label": "BlackBelly", "value": "1097" }, { "label": "blackcatis", "value": "2776" }, { "label": "BlackDrago", "value": "2789" }, { "label": "Blackening", "value": "3108" }, { "label": "blackice", "value": "2990" }, { "label": "Blacklight", "value": "1750" }, { "label": "Blackmail", "value": "722" }, { "label": "Blacksmith", "value": "265" }, { "label": "blacksoil", "value": "2181" }, { "label": "blacktechn", "value": "928" }, { "label": "Bleach", "value": "1168" }, { "label": "Blind", "value": "1280" }, { "label": "BlindDates", "value": "607" }, { "label": "BlindProta", "value": "720" }, { "label": "Bloodborne", "value": "1577" }, { "label": "blooddemon", "value": "2135" }, { "label": "Bloodline", "value": "1248" }, { "label": "Bloodlines", "value": "114" }, { "label": "BloodManip", "value": "485" }, { "label": "BloodMoonG", "value": "2278" }, { "label": "BloodofAni", "value": "1861" }, { "label": "Bloodpumpi", "value": "3146" }, { "label": "bloomingon", "value": "1992" }, { "label": "blueshirts", "value": "2230" }, { "label": "bluesilk", "value": "2896" }, { "label": "bluesilksu", "value": "2742" }, { "label": "bluestone", "value": "2245" }, { "label": "Bodhicitta", "value": "2562" }, { "label": "Bodyguards", "value": "610" }, { "label": "BodySwap", "value": "590" }, { "label": "BodyTemper", "value": "61" }, { "label": "Boiled", "value": "2855" }, { "label": "book", "value": "1462" }, { "label": "BookDustSp", "value": "2453" }, { "label": "Books", "value": "433" }, { "label": "bookslikeu", "value": "2962" }, { "label": "BookstoreS", "value": "2177" }, { "label": "BookTransm", "value": "915" }, { "label": "BookWearer", "value": "1198" }, { "label": "Bookworm", "value": "577" }, { "label": "Boss", "value": "2951" }, { "label": "Boss-Subor", "value": "525" }, { "label": "Boundlessf", "value": "2024" }, { "label": "BoXiaowen", "value": "2432" }, { "label": "Boxing", "value": "737" }, { "label": "boycold", "value": "2683" }, { "label": "BoysLove", "value": "964" }, { "label": "Brainwashi", "value": "559" }, { "label": "BraisedPai", "value": "2172" }, { "label": "Brave", "value": "971" }, { "label": "BraveandDe", "value": "991" }, { "label": "Breakingth", "value": "2624" }, { "label": "breaktheke", "value": "2304" }, { "label": "Breakup", "value": "1395" }, { "label": "Breeze", "value": "2142" }, { "label": "breezesilv", "value": "2083" }, { "label": "Brightmoon", "value": "2115" }, { "label": "Bringaknif", "value": "2708" }, { "label": "BritishEmp", "value": "1525" }, { "label": "broalwaysg", "value": "2532" }, { "label": "BrokenEnga", "value": "403" }, { "label": "BrotherChe", "value": "2216" }, { "label": "BrotherCom", "value": "53" }, { "label": "Brotherhoo", "value": "426" }, { "label": "BrotherInL", "value": "3106" }, { "label": "BrotherZhu", "value": "2270" }, { "label": "Brownsugar", "value": "1905" }, { "label": "BTTH", "value": "1340" }, { "label": "BuddhaofNi", "value": "2989" }, { "label": "Buddhism", "value": "166" }, { "label": "building", "value": "929" }, { "label": "buildingki", "value": "1806" }, { "label": "BuildKingd", "value": "1575" }, { "label": "Buildthewo", "value": "2626" }, { "label": "Bulldozer", "value": "1650" }, { "label": "Bully", "value": "54" }, { "label": "Bullying", "value": "503" }, { "label": "BuLofan", "value": "2102" }, { "label": "BungouStra", "value": "1814" }, { "label": "BunguoStra", "value": "1430" }, { "label": "Burningmou", "value": "2767" }, { "label": "burnout", "value": "2756" }, { "label": "Business", "value": "51" }, { "label": "BusinessDe", "value": "1082" }, { "label": "BusinessEm", "value": "658" }, { "label": "businessfl", "value": "3262" }, { "label": "BusinessMa", "value": "171" }, { "label": "BusinessMa", "value": "1114" }, { "label": "Businessme", "value": "201" }, { "label": "businessor", "value": "920" }, { "label": "BusinessRi", "value": "1853" }, { "label": "Bussinesma", "value": "1550" }, { "label": "Bussiness", "value": "1488" }, { "label": "Butlers", "value": "708" }, { "label": "Butnoconsp", "value": "1002" }, { "label": "ButterflyD", "value": "2026" }, { "label": "Caicolorsh", "value": "2700" }, { "label": "callthebea", "value": "2462" }, { "label": "Calm", "value": "3015" }, { "label": "Calmdown", "value": "3118" }, { "label": "CalmMalePr", "value": "839" }, { "label": "CalmProtag", "value": "227" }, { "label": "camera", "value": "2045" }, { "label": "Campus", "value": "1728" }, { "label": "CampusLife", "value": "1325" }, { "label": "CampusLove", "value": "468" }, { "label": "CampusRoma", "value": "2919" }, { "label": "Can&039", "value": "2454" }, { "label": "Can&039", "value": "2689" }, { "label": "Cancat", "value": "2333" }, { "label": "canfly", "value": "2055" }, { "label": "CangxueFei", "value": "2968" }, { "label": "Cannibalis", "value": "289" }, { "label": "Canolaflow", "value": "2014" }, { "label": "Cantaloupe", "value": "2839" }, { "label": "Canteendry", "value": "2266" }, { "label": "Capitalism", "value": "1526" }, { "label": "CarambolaJ", "value": "2761" }, { "label": "Card", "value": "1138" }, { "label": "CardGames", "value": "483" }, { "label": "Cards", "value": "723" }, { "label": "CareerOrie", "value": "1104" }, { "label": "CarefreePr", "value": "418" }, { "label": "CaringMale", "value": "1589" }, { "label": "CaringProt", "value": "388" }, { "label": "carpenter", "value": "3214" }, { "label": "cartoonwil", "value": "2205" }, { "label": "CatchaGhos", "value": "3163" }, { "label": "Catchtheca", "value": "2180" }, { "label": "catdaylist", "value": "1947" }, { "label": "cateatingp", "value": "2850" }, { "label": "catgod", "value": "2500" }, { "label": "catisrisin", "value": "2625" }, { "label": "catloveson", "value": "2596" }, { "label": "catpowerfi", "value": "2686" }, { "label": "Catswithfi", "value": "2310" }, { "label": "catthatwan", "value": "2056" }, { "label": "catthousan", "value": "2369" }, { "label": "CautiousMc", "value": "1143" }, { "label": "CautiousPr", "value": "237" }, { "label": "caviar", "value": "2169" }, { "label": "Celebritie", "value": "18" }, { "label": "Celebrity", "value": "911" }, { "label": "CelestialC", "value": "2668" }, { "label": "Celestials", "value": "147" }, { "label": "CEO", "value": "1250" }, { "label": "ChainsawMa", "value": "2929" }, { "label": "championge", "value": "2405" }, { "label": "ChanelNo.1", "value": "2039" }, { "label": "Changeever", "value": "2263" }, { "label": "Channel", "value": "1072" }, { "label": "Chaos", "value": "1410" }, { "label": "chaoticwor", "value": "1919" }, { "label": "CharacterD", "value": "384" }, { "label": "CharacterG", "value": "282" }, { "label": "Charismati", "value": "172" }, { "label": "CharmingPr", "value": "350" }, { "label": "chasingthe", "value": "2831" }, { "label": "chat", "value": "1799" }, { "label": "chat-room", "value": "1337" }, { "label": "ChatGroup", "value": "861" }, { "label": "ChatRooms", "value": "73" }, { "label": "Cheat", "value": "853" }, { "label": "Cheats", "value": "19" }, { "label": "Cheerful", "value": "1062" }, { "label": "Chef", "value": "834" }, { "label": "chef&03", "value": "2136" }, { "label": "Chefs", "value": "68" }, { "label": "ChefSurviv", "value": "2215" }, { "label": "ChenChangf", "value": "2374" }, { "label": "ChenHegao", "value": "1751" }, { "label": "ChenTwelve", "value": "2164" }, { "label": "CherryBlos", "value": "2000" }, { "label": "ChiDongdon", "value": "2003" }, { "label": "child", "value": "3077" }, { "label": "ChildAbuse", "value": "412" }, { "label": "Childbirth", "value": "1124" }, { "label": "Childcare", "value": "268" }, { "label": "ChildhoodE", "value": "1660" }, { "label": "Childhoodf", "value": "2987" }, { "label": "ChildhoodF", "value": "364" }, { "label": "ChildhoodL", "value": "365" }, { "label": "ChildhoodP", "value": "366" }, { "label": "ChildhoodS", "value": "217" }, { "label": "ChildhoodS", "value": "1200" }, { "label": "ChildishPr", "value": "419" }, { "label": "ChildProta", "value": "363" }, { "label": "ChinaNamba", "value": "1748" }, { "label": "ChinaRefor", "value": "1407" }, { "label": "Chinese", "value": "923" }, { "label": "ChineseAnc", "value": "1735" }, { "label": "Chinesemed", "value": "3274" }, { "label": "ChineseNov", "value": "1708" }, { "label": "ChinesePre", "value": "1356" }, { "label": "Chirika", "value": "1876" }, { "label": "Chivalryof", "value": "1723" }, { "label": "ChocolateI", "value": "1962" }, { "label": "ChoiceSele", "value": "1358" }, { "label": "Chosen12", "value": "2585" }, { "label": "Chronology", "value": "1485" }, { "label": "Chugoku", "value": "3227" }, { "label": "ChuningMC", "value": "1439" }, { "label": "Church", "value": "1409" }, { "label": "Chuunibyou", "value": "813" }, { "label": "Cicadasand", "value": "2384" }, { "label": "city", "value": "3236" }, { "label": "CityGod", "value": "2323" }, { "label": "city​​ya", "value": "2800" }, { "label": "civetcatat", "value": "2620" }, { "label": "Civilizati", "value": "1649" }, { "label": "Civilizati", "value": "1816" }, { "label": "CivilServa", "value": "1527" }, { "label": "ClanBuildi", "value": "343" }, { "label": "ClanSectDe", "value": "1368" }, { "label": "ClassicXia", "value": "3231" }, { "label": "ClassroomO", "value": "3207" }, { "label": "clearthink", "value": "3245" }, { "label": "CleverMc", "value": "1188" }, { "label": "CleverProt", "value": "238" }, { "label": "CleverProt", "value": "594" }, { "label": "ClingyLove", "value": "307" }, { "label": "Clones", "value": "321" }, { "label": "CloseComba", "value": "1021" }, { "label": "cloudmadeo", "value": "2838" }, { "label": "Cloudseest", "value": "2092" }, { "label": "CloudSummi", "value": "2036" }, { "label": "Cloudtopfi", "value": "2131" }, { "label": "Cloudtop丨", "value": "2244" }, { "label": "CloudTop丨", "value": "1987" }, { "label": "CloudTop丨", "value": "2170" }, { "label": "cloudysky", "value": "1967" }, { "label": "Club", "value": "1619" }, { "label": "Clubs", "value": "704" }, { "label": "Cluelessly", "value": "1374" }, { "label": "CluelessPr", "value": "1415" }, { "label": "ClumsyLove", "value": "469" }, { "label": "cluthullu", "value": "1703" }, { "label": "Cnnilingus", "value": "1311" }, { "label": "Co-Workers", "value": "729" }, { "label": "cockroache", "value": "2792" }, { "label": "codegeass", "value": "1813" }, { "label": "Codeuntilt", "value": "2809" }, { "label": "codewordge", "value": "2751" }, { "label": "coffeefatc", "value": "2089" }, { "label": "coffeeinst", "value": "2587" }, { "label": "coffeewith", "value": "1844" }, { "label": "Cohabitati", "value": "470" }, { "label": "CokeII", "value": "2497" }, { "label": "coldcolddo", "value": "2510" }, { "label": "ColdLoveIn", "value": "344" }, { "label": "ColdLoveIn", "value": "1153" }, { "label": "ColdMaleLe", "value": "879" }, { "label": "ColdNightL", "value": "2879" }, { "label": "ColdProtag", "value": "229" }, { "label": "coldrivers", "value": "2148" }, { "label": "ColdStar&a", "value": "1912" }, { "label": "Collection", "value": "703" }, { "label": "Collective", "value": "1001" }, { "label": "College", "value": "1491" }, { "label": "CollegeorU", "value": "1318" }, { "label": "CollegeStr", "value": "3261" }, { "label": "CollegeUni", "value": "212" }, { "label": "Colonializ", "value": "1245" }, { "label": "Coma", "value": "517" }, { "label": "ComedicUnd", "value": "299" }, { "label": "ComedicUnd", "value": "892" }, { "label": "comedy", "value": "1191" }, { "label": "Comeon", "value": "2147" }, { "label": "Comic", "value": "1603" }, { "label": "comics", "value": "1451" }, { "label": "comics", "value": "1470" }, { "label": "ComingofAg", "value": "757" }, { "label": "Commandand", "value": "820" }, { "label": "CommonerLi", "value": "917" }, { "label": "Companies", "value": "1338" }, { "label": "CompanyMan", "value": "1047" }, { "label": "Competitio", "value": "1643" }, { "label": "competitiv", "value": "1468" }, { "label": "Complaint", "value": "1179" }, { "label": "ComplexFam", "value": "173" }, { "label": "ComplexFam", "value": "1075" }, { "label": "Complicate", "value": "1343" }, { "label": "comprehens", "value": "3232" }, { "label": "Comprehens", "value": "2280" }, { "label": "Comprehens", "value": "3265" }, { "label": "Conditiona", "value": "651" }, { "label": "ConfidentP", "value": "203" }, { "label": "Confinemen", "value": "647" }, { "label": "Conflictin", "value": "684" }, { "label": "conquer", "value": "1461" }, { "label": "Conquer", "value": "3148" }, { "label": "Conspiracy", "value": "3008" }, { "label": "Conspirati", "value": "1551" }, { "label": "Constellat", "value": "1069" }, { "label": "Constructi", "value": "1157" }, { "label": "Contagonis", "value": "1752" }, { "label": "contempora", "value": "1449" }, { "label": "Contract", "value": "1210" }, { "label": "ContractLo", "value": "921" }, { "label": "Contracts", "value": "489" }, { "label": "Cooking", "value": "69" }, { "label": "CoolMc", "value": "1094" }, { "label": "CoolText", "value": "1236" }, { "label": "cornjuice", "value": "2881" }, { "label": "CorpseFrag", "value": "2726" }, { "label": "Corruption", "value": "691" }, { "label": "CosmicHorr", "value": "1294" }, { "label": "CosmicWars", "value": "370" }, { "label": "Cosplay", "value": "781" }, { "label": "Counteratt", "value": "1656" }, { "label": "CountrySid", "value": "3103" }, { "label": "CoupleGrow", "value": "373" }, { "label": "CourtOffic", "value": "522" }, { "label": "Cousins", "value": "734" }, { "label": "coverthesu", "value": "1877" }, { "label": "CowardlyPr", "value": "490" }, { "label": "coyote", "value": "2028" }, { "label": "Crafting", "value": "222" }, { "label": "Crazyforam", "value": "2261" }, { "label": "CrazyProta", "value": "1295" }, { "label": "Crazystory", "value": "2444" }, { "label": "Creation", "value": "1298" }, { "label": "Creator", "value": "1585" }, { "label": "Creatures", "value": "752" }, { "label": "Crime", "value": "596" }, { "label": "crimesolvi", "value": "3034" }, { "label": "Criminals", "value": "131" }, { "label": "Criminolog", "value": "837" }, { "label": "crookeddoo", "value": "2844" }, { "label": "Cross", "value": "3222" }, { "label": "Cross-dres", "value": "250" }, { "label": "Crossdress", "value": "1137" }, { "label": "Crossdress", "value": "963" }, { "label": "Crossing", "value": "2941" }, { "label": "Crossover", "value": "583" }, { "label": "Cruel", "value": "2960" }, { "label": "CruelChara", "value": "466" }, { "label": "Cruelportr", "value": "1045" }, { "label": "Cryostasis", "value": "709" }, { "label": "Cthulhu", "value": "1578" }, { "label": "CubRaising", "value": "883" }, { "label": "CucumberHa", "value": "1952" }, { "label": "cultivatio", "value": "1465" }, { "label": "Cultivatio", "value": "46" }, { "label": "Cultivatio", "value": "2993" }, { "label": "Cultivatio", "value": "3043" }, { "label": "Cultivator", "value": "1411" }, { "label": "cunning", "value": "2937" }, { "label": "cunningfem", "value": "1278" }, { "label": "cunningmc", "value": "1801" }, { "label": "CunningPro", "value": "390" }, { "label": "CunningPro", "value": "1604" }, { "label": "Cupola", "value": "2864" }, { "label": "cure", "value": "3226" }, { "label": "curechildr", "value": "3042" }, { "label": "CuriousPro", "value": "617" }, { "label": "Curse", "value": "35" }, { "label": "Curses", "value": "585" }, { "label": "Cute", "value": "1042" }, { "label": "CuteChild", "value": "1489" }, { "label": "CuteChildr", "value": "313" }, { "label": "cutegrapef", "value": "2186" }, { "label": "cutelovein", "value": "2914" }, { "label": "CuteMaleLe", "value": "1559" }, { "label": "CutePet", "value": "1774" }, { "label": "cutepomelo", "value": "2826" }, { "label": "CuteProtag", "value": "367" }, { "label": "CuteProtag", "value": "1553" }, { "label": "cuteshadow", "value": "2008" }, { "label": "CuteStory", "value": "368" }, { "label": "Daddywants", "value": "2470" }, { "label": "dagougou", "value": "2569" }, { "label": "Dahunjun", "value": "2385" }, { "label": "Daily", "value": "969" }, { "label": "Dailylife", "value": "3239" }, { "label": "DamingYong", "value": "2202" }, { "label": "Dancers", "value": "509" }, { "label": "dancetofig", "value": "1996" }, { "label": "DanMachi", "value": "1675" }, { "label": "Danmei", "value": "599" }, { "label": "DaoCompani", "value": "98" }, { "label": "DaoCompreh", "value": "283" }, { "label": "Daoism", "value": "78" }, { "label": "DaoyanShen", "value": "2226" }, { "label": "DaqingXiao", "value": "2276" }, { "label": "Dark", "value": "110" }, { "label": "DarkDeatho", "value": "649" }, { "label": "DarkFantas", "value": "888" }, { "label": "darknight", "value": "1920" }, { "label": "darkpirate", "value": "1855" }, { "label": "DarkPower", "value": "1413" }, { "label": "Dashuaihen", "value": "2464" }, { "label": "DatangDaqi", "value": "1977" }, { "label": "DatangDaqi", "value": "2403" }, { "label": "DatangErwu", "value": "2030" }, { "label": "Datangpota", "value": "2906" }, { "label": "Datangsupe", "value": "2042" }, { "label": "daughterco", "value": "2121" }, { "label": "Daybyday", "value": "2604" }, { "label": "DC", "value": "840" }, { "label": "deadfatfas", "value": "2360" }, { "label": "DeadProtag", "value": "644" }, { "label": "Death", "value": "417" }, { "label": "DeathofLov", "value": "462" }, { "label": "Debts", "value": "710" }, { "label": "Decadeligh", "value": "2001" }, { "label": "Decisive", "value": "2976" }, { "label": "DecisiveMc", "value": "3093" }, { "label": "deepbluese", "value": "2016" }, { "label": "Deepl", "value": "941" }, { "label": "DeepLTrans", "value": "1421" }, { "label": "Delinquent", "value": "552" }, { "label": "Delusions", "value": "815" }, { "label": "Demi-Human", "value": "70" }, { "label": "Demon", "value": "1276" }, { "label": "Demondomai", "value": "2450" }, { "label": "DemonicCul", "value": "322" }, { "label": "DemonInvas", "value": "2260" }, { "label": "DemonKing", "value": "970" }, { "label": "DemonLord", "value": "40" }, { "label": "DemonPower", "value": "3025" }, { "label": "Demons", "value": "5" }, { "label": "DemonSlaye", "value": "1169" }, { "label": "DenseProta", "value": "398" }, { "label": "Depictions", "value": "391" }, { "label": "Depictions", "value": "1267" }, { "label": "Depression", "value": "308" }, { "label": "Desperatel", "value": "2392" }, { "label": "DestinedLo", "value": "1567" }, { "label": "Destiny", "value": "692" }, { "label": "Destroyerf", "value": "2350" }, { "label": "Detective", "value": "903" }, { "label": "DetectiveC", "value": "962" }, { "label": "Detectives", "value": "633" }, { "label": "Determined", "value": "174" }, { "label": "Determined", "value": "1189" }, { "label": "Devil", "value": "952" }, { "label": "Devils", "value": "92" }, { "label": "Devilveget", "value": "2336" }, { "label": "DevotedCou", "value": "1817" }, { "label": "Devotedlov", "value": "1778" }, { "label": "DevotedLov", "value": "175" }, { "label": "Diablo", "value": "3284" }, { "label": "Differenta", "value": "989" }, { "label": "DifferentS", "value": "374" }, { "label": "differentw", "value": "1417" }, { "label": "DifferentW", "value": "1041" }, { "label": "Diga", "value": "2617" }, { "label": "Digimon", "value": "1809" }, { "label": "digitalold", "value": "2062" }, { "label": "digthreefe", "value": "2662" }, { "label": "Dikabenka", "value": "2603" }, { "label": "dimensiona", "value": "2918" }, { "label": "Dining", "value": "3264" }, { "label": "Dinosaurs", "value": "1167" }, { "label": "Diplomacy", "value": "1148" }, { "label": "Diplomats", "value": "1528" }, { "label": "Director", "value": "1238" }, { "label": "dirtylittl", "value": "2802" }, { "label": "Disabiliti", "value": "323" }, { "label": "disability", "value": "3130" }, { "label": "DisabledPr", "value": "1736" }, { "label": "DiscipleLo", "value": "1427" }, { "label": "DiscipleTr", "value": "1370" }, { "label": "Discrimina", "value": "475" }, { "label": "Disfigurem", "value": "399" }, { "label": "DishonestP", "value": "505" }, { "label": "Disobedien", "value": "1668" }, { "label": "Disqualifi", "value": "1063" }, { "label": "Distrustfu", "value": "685" }, { "label": "Divination", "value": "538" }, { "label": "Divination", "value": "294" }, { "label": "DivineBook", "value": "2531" }, { "label": "DivineProt", "value": "375" }, { "label": "divinesign", "value": "1845" }, { "label": "Divorce", "value": "472" }, { "label": "Doctor", "value": "1282" }, { "label": "DoctorData", "value": "2720" }, { "label": "Doctors", "value": "142" }, { "label": "doctorstre", "value": "3260" }, { "label": "Dog", "value": "1791" }, { "label": "dogeggsold", "value": "2514" }, { "label": "DoingBusin", "value": "1759" }, { "label": "Dollsister", "value": "2292" }, { "label": "DollsPuppe", "value": "544" }, { "label": "DomesticAf", "value": "459" }, { "label": "Dominator", "value": "1539" }, { "label": "Domineerin", "value": "2952" }, { "label": "don&039", "value": "2010" }, { "label": "don&039", "value": "2105" }, { "label": "Don&039", "value": "2549" }, { "label": "Donotbecon", "value": "2622" }, { "label": "Donotforge", "value": "2635" }, { "label": "Doomdays", "value": "1568" }, { "label": "Doomsday", "value": "1129" }, { "label": "Doomsdaywa", "value": "2694" }, { "label": "Doraemon", "value": "2930" }, { "label": "dotingfami", "value": "1422" }, { "label": "dotinghusb", "value": "1445" }, { "label": "dotinglove", "value": "1423" }, { "label": "DotingLove", "value": "230" }, { "label": "DotingOlde", "value": "337" }, { "label": "DotingPare", "value": "338" }, { "label": "DotingPare", "value": "835" }, { "label": "DotingSibl", "value": "1704" }, { "label": "DoubleLife", "value": "1232" }, { "label": "DoubleRebi", "value": "1273" }, { "label": "Doujin", "value": "1345" }, { "label": "Doujinshi", "value": "3242" }, { "label": "Douluo", "value": "2957" }, { "label": "DouluoDalu", "value": "245" }, { "label": "Doupo", "value": "842" }, { "label": "DoupoBTTH", "value": "831" }, { "label": "DouTuKing", "value": "2099" }, { "label": "doyoueator", "value": "2334" }, { "label": "doyouwantc", "value": "2546" }, { "label": "Dragon", "value": "1399" }, { "label": "dragon-eat", "value": "2436" }, { "label": "DragonandL", "value": "2735" }, { "label": "DragonBall", "value": "1359" }, { "label": "DragonBall", "value": "2330" }, { "label": "DragonPala", "value": "2043" }, { "label": "DragonPowe", "value": "3026" }, { "label": "Dragons", "value": "24" }, { "label": "DragonSlay", "value": "624" }, { "label": "dragracing", "value": "1975" }, { "label": "Drama", "value": "855" }, { "label": "Dramatic", "value": "3183" }, { "label": "Dream", "value": "615" }, { "label": "dreamblizz", "value": "2875" }, { "label": "dreamcatch", "value": "2530" }, { "label": "dreamintot", "value": "2446" }, { "label": "dreamleave", "value": "1838" }, { "label": "Dreamofthe", "value": "2190" }, { "label": "Dreams", "value": "541" }, { "label": "DriftwoodD", "value": "2571" }, { "label": "Drugs", "value": "413" }, { "label": "Druids", "value": "636" }, { "label": "Drunklifed", "value": "2897" }, { "label": "DumbProtag", "value": "1117" }, { "label": "dungeon", "value": "1404" }, { "label": "DungeonMas", "value": "628" }, { "label": "Dungeons", "value": "32" }, { "label": "Dwarf", "value": "1595" }, { "label": "Dwarfs", "value": "449" }, { "label": "Dwarves", "value": "28" }, { "label": "Dynasty", "value": "3009" }, { "label": "Dystopia", "value": "681" }, { "label": "e-Sports", "value": "335" }, { "label": "EarlyRoman", "value": "104" }, { "label": "EarthInvas", "value": "304" }, { "label": "eartwarmin", "value": "3027" }, { "label": "easternfan", "value": "396" }, { "label": "EasternSet", "value": "1078" }, { "label": "EasyGoingL", "value": "300" }, { "label": "Easygoingp", "value": "1593" }, { "label": "EatingBroa", "value": "1669" }, { "label": "Eccentricp", "value": "1632" }, { "label": "Ecchi", "value": "3200" }, { "label": "Economics", "value": "316" }, { "label": "Editors", "value": "799" }, { "label": "Eggpie", "value": "2223" }, { "label": "Eggplantan", "value": "2852" }, { "label": "Egoist", "value": "3201" }, { "label": "EideticMem", "value": "423" }, { "label": "Eighteence", "value": "2964" }, { "label": "eincarnate", "value": "75" }, { "label": "electricia", "value": "1811" }, { "label": "electricmo", "value": "2687" }, { "label": "elemental", "value": "3111" }, { "label": "ElementalM", "value": "213" }, { "label": "Elf", "value": "1348" }, { "label": "Elfcold", "value": "1941" }, { "label": "Elite", "value": "1320" }, { "label": "Elixirs", "value": "3255" }, { "label": "Elves", "value": "6" }, { "label": "Emotional", "value": "3082" }, { "label": "Emotionall", "value": "188" }, { "label": "Emperialpo", "value": "1549" }, { "label": "Emperor", "value": "3037" }, { "label": "EmperorCha", "value": "2547" }, { "label": "EmperorYao", "value": "1978" }, { "label": "Empire", "value": "1246" }, { "label": "Empires", "value": "133" }, { "label": "Empress", "value": "966" }, { "label": "empressfem", "value": "3132" }, { "label": "emptymonol", "value": "2448" }, { "label": "EndoftheWo", "value": "2556" }, { "label": "EnemiesBec", "value": "309" }, { "label": "EnemiesBec", "value": "476" }, { "label": "enemiestol", "value": "1812" }, { "label": "EnemytoLov", "value": "1661" }, { "label": "EnemytoLov", "value": "1201" }, { "label": "Engage", "value": "3258" }, { "label": "engageinba", "value": "2731" }, { "label": "Engagement", "value": "447" }, { "label": "Engineer", "value": "306" }, { "label": "Enlightenm", "value": "342" }, { "label": "Entertaime", "value": "1211" }, { "label": "Entertaini", "value": "2496" }, { "label": "entertainm", "value": "1742" }, { "label": "entertainm", "value": "2651" }, { "label": "entertainm", "value": "2843" }, { "label": "Entertainm", "value": "146" }, { "label": "Entertainm", "value": "869" }, { "label": "Entertainm", "value": "894" }, { "label": "Episodic", "value": "608" }, { "label": "Erwazi", "value": "2841" }, { "label": "Eschatolog", "value": "3221" }, { "label": "ESNGrandPr", "value": "999" }, { "label": "Esper", "value": "3216" }, { "label": "eternityor", "value": "2502" }, { "label": "Eunuch", "value": "409" }, { "label": "EunuchJinr", "value": "1865" }, { "label": "Europe", "value": "3102" }, { "label": "EuropeanAm", "value": "621" }, { "label": "EuropeanAm", "value": "914" }, { "label": "Evergrande", "value": "2769" }, { "label": "Evergrande", "value": "2391" }, { "label": "everlastin", "value": "2736" }, { "label": "everydayfi", "value": "2563" }, { "label": "Everyoneli", "value": "1025" }, { "label": "Evil", "value": "165" }, { "label": "Evil-prota", "value": "1516" }, { "label": "EvilCharac", "value": "1296" }, { "label": "EvilGod", "value": "1102" }, { "label": "EvilGods", "value": "381" }, { "label": "EvilMistre", "value": "982" }, { "label": "EvilOrgani", "value": "356" }, { "label": "EvilOrgani", "value": "1435" }, { "label": "EvilProtag", "value": "471" }, { "label": "EvilReligi", "value": "392" }, { "label": "EvilSpirit", "value": "3162" }, { "label": "EvilSprits", "value": "1755" }, { "label": "evolution", "value": "1452" }, { "label": "Evolution", "value": "52" }, { "label": "evolutiona", "value": "3241" }, { "label": "Ex", "value": "3171" }, { "label": "Ex-girlfri", "value": "1570" }, { "label": "exes", "value": "1794" }, { "label": "Exhaustion", "value": "3061" }, { "label": "Exhibition", "value": "1312" }, { "label": "Exorcism", "value": "487" }, { "label": "Exorcist", "value": "1239" }, { "label": "Experience", "value": "1387" }, { "label": "Extraordin", "value": "1639" }, { "label": "Extremelyi", "value": "2283" }, { "label": "eyepower", "value": "1432" }, { "label": "EyePowers", "value": "324" }, { "label": "Faceslap", "value": "1657" }, { "label": "FaceSlappi", "value": "880" }, { "label": "FahaiInvin", "value": "2722" }, { "label": "Fahaiunder", "value": "2286" }, { "label": "Fairies", "value": "58" }, { "label": "Fairy", "value": "3016" }, { "label": "fairygirlf", "value": "2523" }, { "label": "FairySword", "value": "2005" }, { "label": "FairyTail", "value": "940" }, { "label": "Fairy丨Pin", "value": "1864" }, { "label": "fakegod", "value": "2616" }, { "label": "FaketoReal", "value": "922" }, { "label": "FallenAnge", "value": "809" }, { "label": "Fallenleav", "value": "2146" }, { "label": "FallenNobi", "value": "716" }, { "label": "FallenWing", "value": "2822" }, { "label": "FallingRai", "value": "1985" }, { "label": "fallintoth", "value": "2874" }, { "label": "Faloo", "value": "1040" }, { "label": "FamilialLo", "value": "214" }, { "label": "Familiars", "value": "1057" }, { "label": "FamillialL", "value": "1247" }, { "label": "Family", "value": "314" }, { "label": "FamilyBuil", "value": "1115" }, { "label": "FamilyBusi", "value": "401" }, { "label": "FamilyConf", "value": "176" }, { "label": "familylife", "value": "1627" }, { "label": "FamilyLove", "value": "1727" }, { "label": "famouscoup", "value": "1702" }, { "label": "Famousdete", "value": "1957" }, { "label": "FamousPare", "value": "464" }, { "label": "FamousProt", "value": "269" }, { "label": "Fan", "value": "3230" }, { "label": "Fan-fictio", "value": "100" }, { "label": "Fanaticism", "value": "772" }, { "label": "fanfic", "value": "1471" }, { "label": "Fanfic", "value": "1240" }, { "label": "Fanfiction", "value": "235" }, { "label": "FanFicton", "value": "1581" }, { "label": "FangQingya", "value": "2410" }, { "label": "FanJiu", "value": "2316" }, { "label": "fanofstar", "value": "2793" }, { "label": "fanqienove", "value": "3129" }, { "label": "FantaCola", "value": "2306" }, { "label": "Fantasy", "value": "397" }, { "label": "Fantasybos", "value": "2552" }, { "label": "FantasyCre", "value": "516" }, { "label": "FantasyCre", "value": "3101" }, { "label": "Fantasyfut", "value": "1795" }, { "label": "FantasyMag", "value": "382" }, { "label": "Fantasyrom", "value": "3184" }, { "label": "FantasyWor", "value": "189" }, { "label": "Farm", "value": "1694" }, { "label": "Farmer", "value": "3267" }, { "label": "Farming", "value": "96" }, { "label": "FarmingTex", "value": "1264" }, { "label": "FastCultiv", "value": "239" }, { "label": "FastGrowth", "value": "1315" }, { "label": "FastLearne", "value": "240" }, { "label": "Fastpace", "value": "3204" }, { "label": "Fastpaced", "value": "3182" }, { "label": "fasttravel", "value": "3109" }, { "label": "FastWearin", "value": "1503" }, { "label": "FatDiddy", "value": "2649" }, { "label": "Fatedlove", "value": "3157" }, { "label": "FatedLover", "value": "437" }, { "label": "fatedxd", "value": "1453" }, { "label": "FateSeries", "value": "1621" }, { "label": "Fatestayni", "value": "2995" }, { "label": "fatmanoffa", "value": "2098" }, { "label": "FatProtago", "value": "349" }, { "label": "FattoFit", "value": "480" }, { "label": "Faucet", "value": "2770" }, { "label": "Favoritebl", "value": "2149" }, { "label": "Favoriteco", "value": "2823" }, { "label": "FearlessPr", "value": "402" }, { "label": "FeiLuEdiso", "value": "1986" }, { "label": "Fellatio", "value": "204" }, { "label": "FemaleEmpe", "value": "3073" }, { "label": "FemaleFigh", "value": "1622" }, { "label": "FemaleLead", "value": "1305" }, { "label": "FemaleMast", "value": "395" }, { "label": "FemaleMast", "value": "595" }, { "label": "FemaleMC", "value": "1440" }, { "label": "FemalePart", "value": "3107" }, { "label": "FemalePres", "value": "1495" }, { "label": "Femaleprot", "value": "1272" }, { "label": "FemaleProt", "value": "55" }, { "label": "FemaleProt", "value": "1051" }, { "label": "FemaleProt", "value": "2953" }, { "label": "FemaleSpie", "value": "1529" }, { "label": "FemalesPro", "value": "1224" }, { "label": "FemaletoMa", "value": "696" }, { "label": "Fengqing", "value": "2463" }, { "label": "FengShui", "value": "532" }, { "label": "FengziXiao", "value": "2109" }, { "label": "FerrariEnz", "value": "1970" }, { "label": "Fiction", "value": "3213" }, { "label": "fierce", "value": "2165" }, { "label": "Fifi&03", "value": "2868" }, { "label": "FifthEmper", "value": "2493" }, { "label": "Fightforhe", "value": "3116" }, { "label": "Fighting", "value": "1003" }, { "label": "FightingCo", "value": "2490" }, { "label": "Filipino", "value": "1713" }, { "label": "FilipinoNo", "value": "1712" }, { "label": "Finance", "value": "2935" }, { "label": "Firearms", "value": "137" }, { "label": "Fireinthes", "value": "2079" }, { "label": "fireonfire", "value": "2657" }, { "label": "Firethief", "value": "1842" }, { "label": "FireWinged", "value": "2421" }, { "label": "First-time", "value": "850" }, { "label": "First-time", "value": "481" }, { "label": "firstgreen", "value": "2595" }, { "label": "FirstLove", "value": "454" }, { "label": "firstperso", "value": "2017" }, { "label": "fishandraf", "value": "2512" }, { "label": "fisheatpan", "value": "2630" }, { "label": "fishfishda", "value": "2119" }, { "label": "Fishheadis", "value": "2870" }, { "label": "fishinflam", "value": "2817" }, { "label": "Fishing", "value": "1176" }, { "label": "fishswimmi", "value": "2834" }, { "label": "flamingfla", "value": "1884" }, { "label": "Flashbacks", "value": "616" }, { "label": "FleetBattl", "value": "626" }, { "label": "Fllatio", "value": "744" }, { "label": "Floatingli", "value": "2614" }, { "label": "flowersoft", "value": "2872" }, { "label": "flyingcow", "value": "2598" }, { "label": "flyingfish", "value": "2183" }, { "label": "flyinglitt", "value": "2581" }, { "label": "FlyingLuTi", "value": "2340" }, { "label": "flyingshar", "value": "2777" }, { "label": "flyingsqui", "value": "2408" }, { "label": "Flyingwhit", "value": "2738" }, { "label": "flyinthelo", "value": "2675" }, { "label": "Focusonexp", "value": "3249" }, { "label": "Folklore", "value": "673" }, { "label": "Followthew", "value": "2133" }, { "label": "Food", "value": "824" }, { "label": "FoodWars!", "value": "1369" }, { "label": "Football", "value": "134" }, { "label": "Forbiddenl", "value": "3190" }, { "label": "Forcedinto", "value": "619" }, { "label": "ForcedLivi", "value": "683" }, { "label": "ForcedMarr", "value": "609" }, { "label": "Foreigncou", "value": "3277" }, { "label": "forest", "value": "2174" }, { "label": "ForgetfulP", "value": "420" }, { "label": "Forgiveyou", "value": "2249" }, { "label": "Formation", "value": "3076" }, { "label": "Formations", "value": "150" }, { "label": "FormerHero", "value": "711" }, { "label": "formworksk", "value": "2882" }, { "label": "Fourkeys", "value": "2494" }, { "label": "FourthDisa", "value": "1328" }, { "label": "FoxdemonXi", "value": "2415" }, { "label": "foxlisteni", "value": "1867" }, { "label": "FoxSpirits", "value": "325" }, { "label": "France", "value": "1533" }, { "label": "Friction", "value": "901" }, { "label": "Friday", "value": "1939" }, { "label": "FriendsBec", "value": "650" }, { "label": "Friendship", "value": "501" }, { "label": "Friendstol", "value": "3192" }, { "label": "Fujoshi", "value": "576" }, { "label": "Fullcolor", "value": "3053" }, { "label": "fullmeal", "value": "2212" }, { "label": "Funny", "value": "3089" }, { "label": "furioussna", "value": "2380" }, { "label": "Furutake", "value": "3275" }, { "label": "Fusión", "value": "1326" }, { "label": "FusionFant", "value": "1064" }, { "label": "Futanari", "value": "496" }, { "label": "Future", "value": "1741" }, { "label": "FutureCivi", "value": "542" }, { "label": "FutureCivi", "value": "1299" }, { "label": "futuredyst", "value": "3134" }, { "label": "futureworl", "value": "2949" }, { "label": "Futuristic", "value": "241" }, { "label": "Futuristic", "value": "1016" }, { "label": "gacha", "value": "3211" }, { "label": "Galacticos", "value": "1958" }, { "label": "Galaxyboy", "value": "2282" }, { "label": "GalaxyWars", "value": "1317" }, { "label": "Gambling", "value": "89" }, { "label": "Game", "value": "827" }, { "label": "gamealien", "value": "3233" }, { "label": "Gamedesign", "value": "937" }, { "label": "gameelemen", "value": "1665" }, { "label": "GameElemen", "value": "8" }, { "label": "GameElemen", "value": "858" }, { "label": "GameLit", "value": "3041" }, { "label": "GameofThro", "value": "2998" }, { "label": "GameOnline", "value": "1487" }, { "label": "GameRangki", "value": "1292" }, { "label": "GameRankin", "value": "443" }, { "label": "Gamers", "value": "190" }, { "label": "gameworld", "value": "1266" }, { "label": "Gaming", "value": "1178" }, { "label": "GamingE-Sp", "value": "336" }, { "label": "Gangs", "value": "143" }, { "label": "Gangster", "value": "3279" }, { "label": "Gangsters", "value": "90" }, { "label": "GaoYuanyao", "value": "2727" }, { "label": "GatetoAnot", "value": "326" }, { "label": "Geass", "value": "1626" }, { "label": "Genderbend", "value": "1054" }, { "label": "Genderless", "value": "697" }, { "label": "Genderless", "value": "1670" }, { "label": "GeneModifi", "value": "1367" }, { "label": "Generals", "value": "513" }, { "label": "GeneralXie", "value": "2837" }, { "label": "GeneticMod", "value": "285" }, { "label": "Genies", "value": "726" }, { "label": "genius", "value": "1467" }, { "label": "geniusflow", "value": "3244" }, { "label": "GeniusProt", "value": "252" }, { "label": "Genshin", "value": "1546" }, { "label": "GenshinImp", "value": "1372" }, { "label": "GentleLove", "value": "1792" }, { "label": "gentleman", "value": "2027" }, { "label": "GentleProt", "value": "1765" }, { "label": "GetRich", "value": "1760" }, { "label": "Gettingbac", "value": "3170" }, { "label": "Ghost", "value": "660" }, { "label": "Ghostexter", "value": "2740" }, { "label": "Ghosts", "value": "82" }, { "label": "Ghostsinre", "value": "2441" }, { "label": "giantpanda", "value": "2902" }, { "label": "Giants", "value": "164" }, { "label": "GingerLemo", "value": "2985" }, { "label": "Girl&03", "value": "1237" }, { "label": "giveyoutim", "value": "2094" }, { "label": "Glasses-we", "value": "506" }, { "label": "Glasses-we", "value": "690" }, { "label": "GLL", "value": "2372" }, { "label": "Go", "value": "1981" }, { "label": "goallist", "value": "2725" }, { "label": "Goblins", "value": "9" }, { "label": "God", "value": "1349" }, { "label": "God-humanR", "value": "618" }, { "label": "God&039", "value": "2210" }, { "label": "GodandDevi", "value": "1544" }, { "label": "Goddess", "value": "1611" }, { "label": "goddessbos", "value": "2411" }, { "label": "Goddesses", "value": "444" }, { "label": "Goddidnotg", "value": "2451" }, { "label": "GodLikeMC", "value": "1480" }, { "label": "GodlyPower", "value": "383" }, { "label": "GodlyPower", "value": "1618" }, { "label": "GodlyProta", "value": "1085" }, { "label": "godofduel", "value": "1948" }, { "label": "GodofForti", "value": "2037" }, { "label": "Godofwings", "value": "2366" }, { "label": "GodProtago", "value": "191" }, { "label": "Gods", "value": "242" }, { "label": "godsaltedf", "value": "2650" }, { "label": "Godzilla", "value": "1753" }, { "label": "Golden", "value": "2699" }, { "label": "GoldenFing", "value": "1083" }, { "label": "goldenfore", "value": "2810" }, { "label": "goldfinger", "value": "1980" }, { "label": "goldrush", "value": "3081" }, { "label": "Golems", "value": "156" }, { "label": "GoneStrawb", "value": "2116" }, { "label": "gongregret", "value": "3064" }, { "label": "good-natur", "value": "2712" }, { "label": "goodpotdre", "value": "1909" }, { "label": "Gooifyouca", "value": "2533" }, { "label": "Gore", "value": "10" }, { "label": "goslowbro", "value": "1900" }, { "label": "gossip", "value": "2088" }, { "label": "Gotaki", "value": "2129" }, { "label": "Gourmet", "value": "1587" }, { "label": "Government", "value": "1653" }, { "label": "GradeXNUMX", "value": "1837" }, { "label": "Grandpa", "value": "3290" }, { "label": "gravityfal", "value": "1477" }, { "label": "GreatCeles", "value": "2353" }, { "label": "GreatSage", "value": "2075" }, { "label": "GreedyProt", "value": "1263" }, { "label": "GreekMytho", "value": "1067" }, { "label": "greentea", "value": "1818" }, { "label": "Grimdark", "value": "60" }, { "label": "Grinding", "value": "625" }, { "label": "GroupChat", "value": "1323" }, { "label": "GroupPet", "value": "2954" }, { "label": "Growth", "value": "1024" }, { "label": "Growthsyst", "value": "1039" }, { "label": "grudges", "value": "3272" }, { "label": "Grupchat", "value": "1514" }, { "label": "GuardianRe", "value": "614" }, { "label": "Guilds", "value": "11" }, { "label": "GuiltyScis", "value": "2640" }, { "label": "Gundam", "value": "1784" }, { "label": "Gunfighter", "value": "518" }, { "label": "GuShaoxia", "value": "1887" }, { "label": "H11H", "value": "2798" }, { "label": "Hacker", "value": "1076" }, { "label": "Hackers", "value": "205" }, { "label": "Haikyuu", "value": "1810" }, { "label": "HakoniwaSe", "value": "2438" }, { "label": "Half-human", "value": "557" }, { "label": "halfanoran", "value": "2679" }, { "label": "halfstepge", "value": "2522" }, { "label": "Halo", "value": "821" }, { "label": "Haminstant", "value": "2753" }, { "label": "Handjob", "value": "782" }, { "label": "Handsomegu", "value": "2851" }, { "label": "HandsomeMa", "value": "177" }, { "label": "HandsomeMa", "value": "1696" }, { "label": "handsomeon", "value": "2669" }, { "label": "HandsomePr", "value": "1241" }, { "label": "handtearin", "value": "2399" }, { "label": "HaotianExt", "value": "2397" }, { "label": "HaoyuYingx", "value": "2986" }, { "label": "Happy", "value": "1202" }, { "label": "HappyBeanl", "value": "2213" }, { "label": "HappyEndin", "value": "838" }, { "label": "HappyFlow", "value": "2886" }, { "label": "Hard-Worki", "value": "178" }, { "label": "HardBoiled", "value": "1027" }, { "label": "HardSci-fi", "value": "3003" }, { "label": "Hardworkin", "value": "1218" }, { "label": "Harem", "value": "157" }, { "label": "Harem-seek", "value": "195" }, { "label": "Haremismta", "value": "2580" }, { "label": "HaremSeeki", "value": "1257" }, { "label": "harrypotte", "value": "1474" }, { "label": "HarryPotte", "value": "185" }, { "label": "HarshTrain", "value": "554" }, { "label": "Hashihime", "value": "2137" }, { "label": "HatedProta", "value": "477" }, { "label": "Hawkeye", "value": "2364" }, { "label": "Healers", "value": "719" }, { "label": "Healing", "value": "1511" }, { "label": "Healthewor", "value": "2358" }, { "label": "heartandey", "value": "2678" }, { "label": "HeartBreak", "value": "3083" }, { "label": "Heartful", "value": "985" }, { "label": "HeartHunte", "value": "2741" }, { "label": "Heartthrob", "value": "3172" }, { "label": "Heartwarmi", "value": "450" }, { "label": "Heaven", "value": "548" }, { "label": "heavenclea", "value": "2588" }, { "label": "HeavenlyTr", "value": "529" }, { "label": "heavensong", "value": "2594" }, { "label": "Hegemony", "value": "2944" }, { "label": "Hell", "value": "549" }, { "label": "HelpfulPro", "value": "376" }, { "label": "Hero", "value": "26" }, { "label": "HeroandDem", "value": "988" }, { "label": "Heroes", "value": "551" }, { "label": "Heroesofth", "value": "1999" }, { "label": "heroine", "value": "1819" }, { "label": "Heterochro", "value": "1701" }, { "label": "hey", "value": "2134" }, { "label": "hi", "value": "2034" }, { "label": "HiddenAbil", "value": "215" }, { "label": "HiddenBoss", "value": "1520" }, { "label": "HiddenIden", "value": "1614" }, { "label": "HiddenIden", "value": "1262" }, { "label": "Hiddenmarr", "value": "3187" }, { "label": "HiddenTrue", "value": "1154" }, { "label": "hiddenvest", "value": "1252" }, { "label": "HiddenYrue", "value": "1180" }, { "label": "HidingAbil", "value": "712" }, { "label": "HidingTrue", "value": "231" }, { "label": "HidingTrue", "value": "243" }, { "label": "HidingTrue", "value": "1134" }, { "label": "HidingTrue", "value": "1077" }, { "label": "HighFantas", "value": "1719" }, { "label": "highiq", "value": "1475" }, { "label": "HighSchool", "value": "1053" }, { "label": "HighSchool", "value": "1672" }, { "label": "Higu", "value": "2145" }, { "label": "Hikusei", "value": "3246" }, { "label": "HisMajesty", "value": "2472" }, { "label": "Historical", "value": "828" }, { "label": "history", "value": "1131" }, { "label": "hitten", "value": "2973" }, { "label": "HJGrandPri", "value": "994" }, { "label": "Hndjob", "value": "784" }, { "label": "Hogwarts", "value": "1644" }, { "label": "Hollywood", "value": "935" }, { "label": "holyangel", "value": "2051" }, { "label": "HolyKingRa", "value": "1862" }, { "label": "Homeaffair", "value": "968" }, { "label": "HomeAttrib", "value": "2407" }, { "label": "HomeDrama", "value": "976" }, { "label": "Homunculus", "value": "1029" }, { "label": "HonestandR", "value": "2688" }, { "label": "HonestProt", "value": "492" }, { "label": "HongfeiQin", "value": "2659" }, { "label": "HonghuangN", "value": "2574" }, { "label": "Honghuangs", "value": "2253" }, { "label": "HongmengSh", "value": "1823" }, { "label": "HongTang", "value": "1924" }, { "label": "HonkaiImpa", "value": "1425" }, { "label": "horror", "value": "825" }, { "label": "horrorgod", "value": "2430" }, { "label": "Hospital", "value": "572" }, { "label": "Hot-bloode", "value": "540" }, { "label": "HotBlood", "value": "2977" }, { "label": "Hotels", "value": "872" }, { "label": "hotpot", "value": "2783" }, { "label": "houseprope", "value": "2452" }, { "label": "howlingpig", "value": "2351" }, { "label": "howlingwin", "value": "2840" }, { "label": "HuanHuanHu", "value": "2107" }, { "label": "Huijingund", "value": "2277" }, { "label": "HuiMochou", "value": "2035" }, { "label": "Human-Nonh", "value": "327" }, { "label": "HumanExper", "value": "407" }, { "label": "HumanExper", "value": "1441" }, { "label": "HumanoidPr", "value": "629" }, { "label": "HumanWeapo", "value": "742" }, { "label": "humla", "value": "2258" }, { "label": "Hunter", "value": "3030" }, { "label": "Hunter×Hu", "value": "2961" }, { "label": "hunterkill", "value": "1927" }, { "label": "Hunters", "value": "80" }, { "label": "HunterxHun", "value": "1391" }, { "label": "HuTiandi", "value": "2426" }, { "label": "HxH", "value": "1105" }, { "label": "hyperknigh", "value": "1965" }, { "label": "Hypnotism", "value": "785" }, { "label": "I&039ma", "value": "2227" }, { "label": "I&039mo", "value": "2390" }, { "label": "Iamapirate", "value": "2362" }, { "label": "Iamarealdi", "value": "2346" }, { "label": "IamAsi", "value": "2806" }, { "label": "iamatravel", "value": "1966" }, { "label": "Iamfifth", "value": "2356" }, { "label": "IamGuanxi", "value": "2466" }, { "label": "Iamhell", "value": "2482" }, { "label": "IamHisMaje", "value": "2337" }, { "label": "Iamnotaloc", "value": "2054" }, { "label": "Iamolderth", "value": "2309" }, { "label": "Iamoldwolf", "value": "2757" }, { "label": "Iamthemurd", "value": "2835" }, { "label": "Iamtheseak", "value": "1943" }, { "label": "Iamtheseco", "value": "2707" }, { "label": "Iamtwenty-", "value": "2663" }, { "label": "Iateeightc", "value": "2969" }, { "label": "Ibuprofen", "value": "2639" }, { "label": "icalledthe", "value": "2076" }, { "label": "IcedDurian", "value": "2888" }, { "label": "icewalk", "value": "2009" }, { "label": "IdentityCr", "value": "724" }, { "label": "Idol", "value": "1353" }, { "label": "idon&03", "value": "2232" }, { "label": "idropbaby", "value": "1878" }, { "label": "ieatgrass", "value": "2670" }, { "label": "Ifyoucango", "value": "2158" }, { "label": "ihavethere", "value": "2829" }, { "label": "Ijustwantt", "value": "1944" }, { "label": "Iliveupsta", "value": "2053" }, { "label": "Illigitima", "value": "1757" }, { "label": "Ilo", "value": "1829" }, { "label": "ilovewoo", "value": "2764" }, { "label": "Immortal", "value": "1123" }, { "label": "ImmortalBi", "value": "2717" }, { "label": "ImmortalEm", "value": "3253" }, { "label": "ImmortalMa", "value": "2836" }, { "label": "Immortals", "value": "79" }, { "label": "imperialco", "value": "1510" }, { "label": "ImperialEx", "value": "3010" }, { "label": "ImperialFa", "value": "1135" }, { "label": "ImperialHa", "value": "193" }, { "label": "Imposter", "value": "3142" }, { "label": "Incest", "value": "341" }, { "label": "Indecisive", "value": "431" }, { "label": "Indonesia", "value": "1718" }, { "label": "IndonesiaN", "value": "1717" }, { "label": "industrial", "value": "3028" }, { "label": "Industrial", "value": "535" }, { "label": "Industry", "value": "1321" }, { "label": "industryel", "value": "3138" }, { "label": "Inferior", "value": "3084" }, { "label": "Inferiorit", "value": "611" }, { "label": "Infernalco", "value": "2112" }, { "label": "infinite", "value": "1418" }, { "label": "InfiniteBu", "value": "2228" }, { "label": "InfiniteFl", "value": "1344" }, { "label": "Infiniteme", "value": "2073" }, { "label": "infinitesu", "value": "2590" }, { "label": "InfinitySt", "value": "957" }, { "label": "infrastrac", "value": "1424" }, { "label": "Infrastruc", "value": "1433" }, { "label": "Inheritanc", "value": "553" }, { "label": "Ink", "value": "2861" }, { "label": "InnerVoice", "value": "1677" }, { "label": "Inscriptio", "value": "727" }, { "label": "Insects", "value": "257" }, { "label": "insitu", "value": "2880" }, { "label": "Intercept0", "value": "2029" }, { "label": "Intercept0", "value": "2865" }, { "label": "Interconne", "value": "1056" }, { "label": "Interdimen", "value": "357" }, { "label": "Interestel", "value": "897" }, { "label": "Interstell", "value": "870" }, { "label": "Intimate", "value": "1011" }, { "label": "Introverte", "value": "452" }, { "label": "Inuyasha", "value": "938" }, { "label": "Investigat", "value": "698" }, { "label": "Investigat", "value": "1214" }, { "label": "Invincible", "value": "3199" }, { "label": "Invincible", "value": "1849" }, { "label": "Invincible", "value": "1913" }, { "label": "Invincible", "value": "1922" }, { "label": "Invincible", "value": "1993" }, { "label": "Invincible", "value": "3266" }, { "label": "IronMaiden", "value": "2966" }, { "label": "ironpillar", "value": "2373" }, { "label": "IronThanos", "value": "2730" }, { "label": "Isekai", "value": "846" }, { "label": "IsekaiBatt", "value": "977" }, { "label": "isitnecess", "value": "2114" }, { "label": "IsItWrongt", "value": "1725" }, { "label": "Isuckbrown", "value": "2140" }, { "label": "IsumiLily", "value": "2529" }, { "label": "It&039s", "value": "2218" }, { "label": "Itsdaybrea", "value": "2151" }, { "label": "iwantmoney", "value": "2507" }, { "label": "Iwanttobea", "value": "2543" }, { "label": "Iwanttobeo", "value": "2579" }, { "label": "iwanttoeat", "value": "2876" }, { "label": "iwanttogot", "value": "2701" }, { "label": "Iwishyouat", "value": "2157" }, { "label": "JackieChan", "value": "2931" }, { "label": "JackofAllT", "value": "196" }, { "label": "jadeeveryy", "value": "2378" }, { "label": "JangSeok-g", "value": "1834" }, { "label": "Japan", "value": "1354" }, { "label": "Japanese", "value": "1710" }, { "label": "JapIdols", "value": "873" }, { "label": "Jazz", "value": "2746" }, { "label": "Jealousy", "value": "448" }, { "label": "jellyjelly", "value": "2542" }, { "label": "Jianghu", "value": "1306" }, { "label": "Jiangshi", "value": "604" }, { "label": "Jianjiamix", "value": "2422" }, { "label": "JinglongTa", "value": "2820" }, { "label": "Jiutianyu", "value": "2211" }, { "label": "JoblessCla", "value": "1052" }, { "label": "John117", "value": "2704" }, { "label": "JoJo", "value": "2921" }, { "label": "JoJo&03", "value": "2922" }, { "label": "JojoBizarr", "value": "1170" }, { "label": "JOJOWE", "value": "1998" }, { "label": "Josei", "value": "856" }, { "label": "Journeytot", "value": "1379" }, { "label": "joydrummer", "value": "2050" }, { "label": "JujutsuKai", "value": "1171" }, { "label": "Juliet", "value": "1846" }, { "label": "JunCaiXing", "value": "2854" }, { "label": "JuniorSist", "value": "2219" }, { "label": "justshout", "value": "2858" }, { "label": "juvenile", "value": "3228" }, { "label": "K-popIdols", "value": "1150" }, { "label": "Kafkajumpi", "value": "2074" }, { "label": "KamenRider", "value": "956" }, { "label": "kendo", "value": "3219" }, { "label": "keytocome", "value": "2492" }, { "label": "Kidnapping", "value": "310" }, { "label": "killdecisi", "value": "3235" }, { "label": "Killer", "value": "3143" }, { "label": "Killthewor", "value": "2233" }, { "label": "Kindergart", "value": "1796" }, { "label": "KindLoveIn", "value": "652" }, { "label": "KindomBuil", "value": "1499" }, { "label": "KindProtag", "value": "1501" }, { "label": "King", "value": "1935" }, { "label": "KingAsura", "value": "2431" }, { "label": "Kingdom", "value": "1667" }, { "label": "Kingdom-bu", "value": "1195" }, { "label": "KingdomBui", "value": "71" }, { "label": "KingdomBui", "value": "153" }, { "label": "Kingdoms", "value": "66" }, { "label": "KingdomsKn", "value": "451" }, { "label": "KingKonggo", "value": "2697" }, { "label": "kingofdeat", "value": "2654" }, { "label": "KingofDest", "value": "1863" }, { "label": "KingofMons", "value": "2475" }, { "label": "kingpirate", "value": "2225" }, { "label": "Kiritani", "value": "2576" }, { "label": "Kneelingan", "value": "2857" }, { "label": "Kneelingth", "value": "2344" }, { "label": "KnifePromi", "value": "2044" }, { "label": "Knight", "value": "865" }, { "label": "Knights", "value": "15" }, { "label": "KnightsLev", "value": "563" }, { "label": "Knowledgeo", "value": "924" }, { "label": "Knowtheric", "value": "2519" }, { "label": "Koi", "value": "1615" }, { "label": "Kojin", "value": "2255" }, { "label": "KonohaVoll", "value": "2591" }, { "label": "Korean", "value": "1038" }, { "label": "KoreanNove", "value": "1362" }, { "label": "KpopIdols", "value": "874" }, { "label": "KurokonoBa", "value": "926" }, { "label": "KurongTemp", "value": "2046" }, { "label": "Kuudere", "value": "478" }, { "label": "KwunTong", "value": "2081" }, { "label": "laborhonor", "value": "2586" }, { "label": "lackofboat", "value": "2302" }, { "label": "LackofComm", "value": "277" }, { "label": "LacquerNig", "value": "2139" }, { "label": "LaidBack", "value": "3044" }, { "label": "LameHaoisa", "value": "2345" }, { "label": "langyalist", "value": "2469" }, { "label": "LaoLaoXu", "value": "2110" }, { "label": "LateRomanc", "value": "83" }, { "label": "laurel", "value": "2241" }, { "label": "Lawyers", "value": "358" }, { "label": "lazy", "value": "3020" }, { "label": "lazydevil", "value": "2159" }, { "label": "LazyProtag", "value": "303" }, { "label": "Leadership", "value": "345" }, { "label": "LeagueofLe", "value": "845" }, { "label": "Leapeveryd", "value": "2381" }, { "label": "Legend", "value": "682" }, { "label": "Legends", "value": "792" }, { "label": "LeiJiedoes", "value": "1971" }, { "label": "Leisurelys", "value": "2471" }, { "label": "LeiXunqing", "value": "2980" }, { "label": "lemonandsi", "value": "2327" }, { "label": "lendmefive", "value": "2898" }, { "label": "lesstime", "value": "1883" }, { "label": "LevelSyste", "value": "33" }, { "label": "Levelup", "value": "3141" }, { "label": "lgbt", "value": "1476" }, { "label": "Liar", "value": "1209" }, { "label": "Library", "value": "568" }, { "label": "Life", "value": "3085" }, { "label": "LifeScript", "value": "1764" }, { "label": "Lightnings", "value": "2203" }, { "label": "lightnovel", "value": "1454" }, { "label": "LightNovel", "value": "1711" }, { "label": "LiJunhao", "value": "2816" }, { "label": "LikeaDrago", "value": "1942" }, { "label": "LikeaDrago", "value": "1945" }, { "label": "LikeMeiAox", "value": "2643" }, { "label": "Lillie", "value": "2709" }, { "label": "LimitedLif", "value": "578" }, { "label": "LimitlessF", "value": "124" }, { "label": "LiMumu", "value": "2322" }, { "label": "LinBei", "value": "2785" }, { "label": "Lindentree", "value": "2808" }, { "label": "Lingran", "value": "2127" }, { "label": "LingshanIs", "value": "2715" }, { "label": "LinXiufigh", "value": "2723" }, { "label": "LinZhengyi", "value": "2631" }, { "label": "ListAdvent", "value": "3054" }, { "label": "ListCreati", "value": "1388" }, { "label": "listentoth", "value": "2782" }, { "label": "literature", "value": "1463" }, { "label": "literature", "value": "126" }, { "label": "LitRPG", "value": "1080" }, { "label": "littleahxi", "value": "2236" }, { "label": "littlebrot", "value": "2331" }, { "label": "littlecray", "value": "2878" }, { "label": "littledemo", "value": "2171" }, { "label": "littledete", "value": "2866" }, { "label": "littledevi", "value": "2393" }, { "label": "littlefing", "value": "2429" }, { "label": "littlefox", "value": "2189" }, { "label": "littlehson", "value": "2040" }, { "label": "littlemoon", "value": "2080" }, { "label": "littlesuns", "value": "2359" }, { "label": "littlewate", "value": "2910" }, { "label": "LittleWhit", "value": "3029" }, { "label": "littlewind", "value": "2611" }, { "label": "littlezlov", "value": "2068" }, { "label": "LiuYujun", "value": "2458" }, { "label": "Livebroadc", "value": "886" }, { "label": "LiveBroadc", "value": "912" }, { "label": "LiverPigeo", "value": "2072" }, { "label": "LiveStream", "value": "851" }, { "label": "LiveStream", "value": "1640" }, { "label": "LivingAlon", "value": "602" }, { "label": "LiWudi", "value": "1915" }, { "label": "Loli", "value": "630" }, { "label": "Lolicon", "value": "29" }, { "label": "LoliProtag", "value": "1554" }, { "label": "LoneCloudP", "value": "2275" }, { "label": "lonelyboy", "value": "2541" }, { "label": "LonelyCity", "value": "2049" }, { "label": "Lonelynota", "value": "2023" }, { "label": "Loner", "value": "1068" }, { "label": "LonerProta", "value": "453" }, { "label": "Long-dista", "value": "783" }, { "label": "longlivedm", "value": "2916" }, { "label": "longlivemy", "value": "2491" }, { "label": "Longlivesa", "value": "2618" }, { "label": "Longliveth", "value": "2480" }, { "label": "Longliveth", "value": "2718" }, { "label": "LongMengme", "value": "2324" }, { "label": "Longpigeon", "value": "2427" }, { "label": "LongSepara", "value": "493" }, { "label": "LongStrip", "value": "3055" }, { "label": "Lord", "value": "3005" }, { "label": "LordAbilit", "value": "1767" }, { "label": "LordGodSpa", "value": "1624" }, { "label": "LordoftheM", "value": "1196" }, { "label": "LordoftheS", "value": "2019" }, { "label": "LordTiansh", "value": "2671" }, { "label": "LordZhangj", "value": "2371" }, { "label": "Loseafewpo", "value": "1963" }, { "label": "LostCivili", "value": "789" }, { "label": "Lottery", "value": "393" }, { "label": "Love", "value": "1535" }, { "label": "Loveafterm", "value": "3203" }, { "label": "LoveandMar", "value": "1434" }, { "label": "LoveatFirs", "value": "494" }, { "label": "LoveComedy", "value": "950" }, { "label": "LoveContra", "value": "1612" }, { "label": "LoveIntere", "value": "184" }, { "label": "LoveIntere", "value": "1662" }, { "label": "LoveIntere", "value": "1699" }, { "label": "LoveRivals", "value": "677" }, { "label": "LoversReun", "value": "438" }, { "label": "Lovesnacks", "value": "2222" }, { "label": "lovetease", "value": "2847" }, { "label": "Lovetriang", "value": "3168" }, { "label": "LoveTriang", "value": "646" }, { "label": "lovingfami", "value": "1446" }, { "label": "Low-keylux", "value": "2877" }, { "label": "Low-keyPro", "value": "244" }, { "label": "LowFantasy", "value": "1688" }, { "label": "LowKeyMc", "value": "1139" }, { "label": "LowkeyProt", "value": "1229" }, { "label": "LoyalProta", "value": "1341" }, { "label": "LoyalSubor", "value": "389" }, { "label": "LoyalSubor", "value": "3006" }, { "label": "LoyalSurbo", "value": "1635" }, { "label": "lu11034363", "value": "2799" }, { "label": "Luck", "value": "1616" }, { "label": "LuckPlunde", "value": "1763" }, { "label": "Lucky", "value": "3066" }, { "label": "LuckyProta", "value": "332" }, { "label": "LuDehua", "value": "2168" }, { "label": "LuoTianyi", "value": "1904" }, { "label": "LuoWei", "value": "2033" }, { "label": "LuoXIV", "value": "2593" }, { "label": "LuoYuqianq", "value": "2814" }, { "label": "Luxury", "value": "875" }, { "label": "LY", "value": "2504" }, { "label": "machine", "value": "3112" }, { "label": "Mafia", "value": "961" }, { "label": "Mag", "value": "3198" }, { "label": "Mage", "value": "1297" }, { "label": "Magic", "value": "1" }, { "label": "MagicalAbi", "value": "1490" }, { "label": "MagicalBat", "value": "1623" }, { "label": "magicalgir", "value": "1787" }, { "label": "MagicalSpa", "value": "219" }, { "label": "MagicalTec", "value": "318" }, { "label": "MagicBeast", "value": "317" }, { "label": "MagicForma", "value": "394" }, { "label": "Magician", "value": "1258" }, { "label": "MagicOne", "value": "2660" }, { "label": "MagicTides", "value": "2434" }, { "label": "MagicWorld", "value": "1158" }, { "label": "Maid", "value": "1596" }, { "label": "Maids", "value": "502" }, { "label": "Makeafortu", "value": "2695" }, { "label": "makeamirac", "value": "2290" }, { "label": "Malaysian", "value": "1716" }, { "label": "MalaysianN", "value": "1715" }, { "label": "Male-Lead", "value": "1400" }, { "label": "Male-Prota", "value": "1428" }, { "label": "MaleLead", "value": "655" }, { "label": "MaleMain-l", "value": "1253" }, { "label": "Malemainch", "value": "2917" }, { "label": "MaleMc", "value": "1140" }, { "label": "Maleprotag", "value": "1339" }, { "label": "MaleProtag", "value": "187" }, { "label": "MaleProtag", "value": "2940" }, { "label": "MaleProtag", "value": "1081" }, { "label": "MaleProtag", "value": "1309" }, { "label": "MaletoFema", "value": "631" }, { "label": "MaleYander", "value": "428" }, { "label": "mambafight", "value": "2780" }, { "label": "man", "value": "2231" }, { "label": "Management", "value": "400" }, { "label": "Mangaka", "value": "817" }, { "label": "MangaUP!Aw", "value": "978" }, { "label": "MangoKK", "value": "2479" }, { "label": "Manhua", "value": "3056" }, { "label": "maninnarut", "value": "2525" }, { "label": "Manipulati", "value": "346" }, { "label": "Manipulati", "value": "1517" }, { "label": "ManlyGayCo", "value": "733" }, { "label": "Mansour", "value": "1010" }, { "label": "mapleleafb", "value": "2537" }, { "label": "MarquisofB", "value": "1989" }, { "label": "Marriage", "value": "254" }, { "label": "MarriageCo", "value": "1579" }, { "label": "Marriageof", "value": "473" }, { "label": "Married", "value": "1281" }, { "label": "MarriedCou", "value": "1793" }, { "label": "Martialart", "value": "197" }, { "label": "Martialart", "value": "954" }, { "label": "MartialArt", "value": "1508" }, { "label": "MartialSpi", "value": "246" }, { "label": "MartialSpi", "value": "1414" }, { "label": "Marvel", "value": "385" }, { "label": "MarvelKing", "value": "2173" }, { "label": "MarvelPudd", "value": "2600" }, { "label": "MarvelUniv", "value": "386" }, { "label": "marvelworl", "value": "1820" }, { "label": "Marysue", "value": "3175" }, { "label": "MaskedAce", "value": "1903" }, { "label": "MaskedArmo", "value": "2733" }, { "label": "Masochisti", "value": "270" }, { "label": "Masquerade", "value": "2291" }, { "label": "Massacre", "value": "1673" }, { "label": "Massive", "value": "1120" }, { "label": "MassiveHar", "value": "862" }, { "label": "Master-App", "value": "1274" }, { "label": "Master-Dis", "value": "292" }, { "label": "Master-Ser", "value": "523" }, { "label": "Masterball", "value": "2320" }, { "label": "MasterofSi", "value": "2869" }, { "label": "Masturbati", "value": "645" }, { "label": "Matchmadei", "value": "1779" }, { "label": "math", "value": "1822" }, { "label": "Matriarchy", "value": "582" }, { "label": "Mature", "value": "3017" }, { "label": "MatureProt", "value": "564" }, { "label": "MCStrongFr", "value": "1545" }, { "label": "Mech", "value": "3271" }, { "label": "Mecha", "value": "162" }, { "label": "Medical", "value": "3074" }, { "label": "medicalfem", "value": "3135" }, { "label": "MedicalKno", "value": "275" }, { "label": "MedicalKno", "value": "1155" }, { "label": "Medicine", "value": "81" }, { "label": "medicineme", "value": "2752" }, { "label": "Medieval", "value": "537" }, { "label": "meetthebea", "value": "2195" }, { "label": "MemoryLoss", "value": "1555" }, { "label": "MemoryReve", "value": "1783" }, { "label": "MentalIlln", "value": "1854" }, { "label": "Meowingbig", "value": "2126" }, { "label": "meowmeow", "value": "2120" }, { "label": "Mercenarie", "value": "586" }, { "label": "Mercenary", "value": "140" }, { "label": "Merchant", "value": "2925" }, { "label": "Merchants", "value": "695" }, { "label": "mermaid", "value": "2915" }, { "label": "Middleage", "value": "1484" }, { "label": "MiddleAges", "value": "3205" }, { "label": "Military", "value": "139" }, { "label": "Milkgather", "value": "2893" }, { "label": "milkgrandm", "value": "2319" }, { "label": "Millionair", "value": "1496" }, { "label": "millionord", "value": "2412" }, { "label": "Miluo", "value": "2303" }, { "label": "Mimicry", "value": "1754" }, { "label": "MindBreak", "value": "802" }, { "label": "MindContro", "value": "206" }, { "label": "MindReader", "value": "1521" }, { "label": "mindreadin", "value": "2911" }, { "label": "MingDynast", "value": "3038" }, { "label": "Mingjiao", "value": "1984" }, { "label": "MingjiaoTi", "value": "2064" }, { "label": "Ministryof", "value": "1645" }, { "label": "Mismatched", "value": "1355" }, { "label": "Mistresspl", "value": "2197" }, { "label": "MistyFlyin", "value": "2234" }, { "label": "Misunderst", "value": "1482" }, { "label": "Misunderst", "value": "276" }, { "label": "Misunderst", "value": "1118" }, { "label": "Misunderst", "value": "1601" }, { "label": "mixedintwo", "value": "2664" }, { "label": "MMORPG", "value": "44" }, { "label": "Mob", "value": "1620" }, { "label": "MobProtago", "value": "484" }, { "label": "Models", "value": "439" }, { "label": "ModerDays", "value": "1420" }, { "label": "Modern", "value": "519" }, { "label": "ModernDay", "value": "179" }, { "label": "ModernDays", "value": "667" }, { "label": "ModernFant", "value": "1172" }, { "label": "ModernKnow", "value": "320" }, { "label": "ModernKnow", "value": "829" }, { "label": "ModernLife", "value": "2948" }, { "label": "modernlove", "value": "1821" }, { "label": "ModernRoma", "value": "1087" }, { "label": "ModernWorl", "value": "36" }, { "label": "Moedye", "value": "2853" }, { "label": "MoeShinkaw", "value": "2970" }, { "label": "Mofamily", "value": "2682" }, { "label": "MojiaAeros", "value": "2435" }, { "label": "MojiaHills", "value": "2398" }, { "label": "MoneyGrubb", "value": "330" }, { "label": "MoneyGrumb", "value": "1243" }, { "label": "Monogamy", "value": "1242" }, { "label": "Monster", "value": "1181" }, { "label": "MonsterGir", "value": "223" }, { "label": "Monsters", "value": "7" }, { "label": "MonsterSoc", "value": "1206" }, { "label": "MonsterTam", "value": "258" }, { "label": "MonsterTar", "value": "1732" }, { "label": "moonbug", "value": "1973" }, { "label": "MoonlightS", "value": "2721" }, { "label": "Moonlikeah", "value": "2508" }, { "label": "Moonsea", "value": "1964" }, { "label": "Moonwing", "value": "1828" }, { "label": "Morallessp", "value": "1781" }, { "label": "MorallyAmb", "value": "1530" }, { "label": "moreandmor", "value": "2264" }, { "label": "Morethanju", "value": "3247" }, { "label": "Motherland", "value": "2974" }, { "label": "Mountainsa", "value": "1892" }, { "label": "Mountainsa", "value": "2185" }, { "label": "movies", "value": "1460" }, { "label": "Movies", "value": "119" }, { "label": "movingbean", "value": "2166" }, { "label": "MoXueqing", "value": "2069" }, { "label": "Moyangison", "value": "2632" }, { "label": "Mpreg", "value": "255" }, { "label": "Mr.EasyPro", "value": "2022" }, { "label": "Mr.Huo", "value": "2605" }, { "label": "MrMo", "value": "1840" }, { "label": "MrSly", "value": "1646" }, { "label": "MsPerfect", "value": "1647" }, { "label": "Msturbatio", "value": "1617" }, { "label": "mudbodhisa", "value": "2257" }, { "label": "Mukbang", "value": "1671" }, { "label": "MultipleBo", "value": "1442" }, { "label": "MultipleCP", "value": "773" }, { "label": "MultipleHi", "value": "1234" }, { "label": "multipleid", "value": "1347" }, { "label": "Multipleid", "value": "1772" }, { "label": "MultipleId", "value": "328" }, { "label": "Multiplele", "value": "3186" }, { "label": "MultipleLe", "value": "1689" }, { "label": "MultipleLo", "value": "992" }, { "label": "MultipleMo", "value": "1212" }, { "label": "MultiplePe", "value": "256" }, { "label": "MultiplePo", "value": "1329" }, { "label": "MultiplePO", "value": "504" }, { "label": "MultiplePr", "value": "674" }, { "label": "multiplere", "value": "1697" }, { "label": "MultipleRe", "value": "85" }, { "label": "MultipleRe", "value": "180" }, { "label": "MultipleTi", "value": "672" }, { "label": "MultipleTr", "value": "455" }, { "label": "MultipleTr", "value": "1197" }, { "label": "MultipleVe", "value": "1507" }, { "label": "MultipleWo", "value": "151" }, { "label": "MultipleWo", "value": "1654" }, { "label": "Multiverse", "value": "1558" }, { "label": "Munchkin", "value": "3212" }, { "label": "Murder", "value": "565" }, { "label": "Murders", "value": "679" }, { "label": "music", "value": "127" }, { "label": "musicwilll", "value": "1956" }, { "label": "mustdo", "value": "2238" }, { "label": "Mutan", "value": "1610" }, { "label": "MutantPowe", "value": "1396" }, { "label": "MutatedCre", "value": "460" }, { "label": "Mutation", "value": "132" }, { "label": "Mutations", "value": "634" }, { "label": "MuteCharac", "value": "721" }, { "label": "Mutualcrus", "value": "1207" }, { "label": "myflightat", "value": "3281" }, { "label": "MyHeroAcad", "value": "1393" }, { "label": "mylittlesi", "value": "2267" }, { "label": "MyLubanThi", "value": "2685" }, { "label": "MynameisDa", "value": "2117" }, { "label": "mynameista", "value": "2307" }, { "label": "mysteries", "value": "3033" }, { "label": "Mysterious", "value": "510" }, { "label": "Mysterious", "value": "377" }, { "label": "Mysterious", "value": "301" }, { "label": "Mysterious", "value": "1144" }, { "label": "Mystery", "value": "904" }, { "label": "MysterySol", "value": "372" }, { "label": "Mystical", "value": "753" }, { "label": "MyTeenRoma", "value": "943" }, { "label": "Myth", "value": "3178" }, { "label": "Mythical", "value": "498" }, { "label": "MythicalBe", "value": "333" }, { "label": "mythicalfi", "value": "2634" }, { "label": "mythicalma", "value": "2477" }, { "label": "Mythology", "value": "499" }, { "label": "Mythos", "value": "1690" }, { "label": "mythunpara", "value": "2445" }, { "label": "mywife", "value": "2485" }, { "label": "mywifeisya", "value": "2818" }, { "label": "NA", "value": "107" }, { "label": "NaiveProta", "value": "266" }, { "label": "Nanshen", "value": "2347" }, { "label": "Napoleon", "value": "1534" }, { "label": "Narcissist", "value": "512" }, { "label": "Naruto", "value": "445" }, { "label": "narutoceda", "value": "2520" }, { "label": "NarutoClou", "value": "2516" }, { "label": "NarutoQuiz", "value": "2515" }, { "label": "NarutoxRea", "value": "2647" }, { "label": "Nationalis", "value": "198" }, { "label": "NationBuil", "value": "1159" }, { "label": "NaturalDis", "value": "1033" }, { "label": "Navy", "value": "1145" }, { "label": "NBA", "value": "591" }, { "label": "Near-Death", "value": "290" }, { "label": "Necromance", "value": "72" }, { "label": "Necromancy", "value": "3127" }, { "label": "Neet", "value": "797" }, { "label": "Netorare", "value": "293" }, { "label": "Netori", "value": "115" }, { "label": "neverfail", "value": "2627" }, { "label": "NiangkouSa", "value": "2382" }, { "label": "Nidouzi", "value": "2644" }, { "label": "nightdance", "value": "2784" }, { "label": "nightfire", "value": "1902" }, { "label": "Nightmare", "value": "149" }, { "label": "Nightmares", "value": "643" }, { "label": "nightsilen", "value": "1934" }, { "label": "Nine-color", "value": "2476" }, { "label": "Nine-Taile", "value": "2217" }, { "label": "NinefoldSe", "value": "1994" }, { "label": "NineWarsof", "value": "2122" }, { "label": "ninja", "value": "1798" }, { "label": "Ninjapirat", "value": "1906" }, { "label": "Ninjas", "value": "145" }, { "label": "NiuBao", "value": "2118" }, { "label": "No-Harem", "value": "3181" }, { "label": "Noble", "value": "1636" }, { "label": "Nobles", "value": "16" }, { "label": "NoblesPoli", "value": "3121" }, { "label": "NoCheats", "value": "3115" }, { "label": "NoCp", "value": "1641" }, { "label": "NoFL", "value": "936" }, { "label": "NoGoldFing", "value": "3104" }, { "label": "NoHarem", "value": "1342" }, { "label": "Noless", "value": "2759" }, { "label": "Non-Humanl", "value": "1720" }, { "label": "Non-HumanM", "value": "3125" }, { "label": "Non-humano", "value": "247" }, { "label": "Non-humanP", "value": "847" }, { "label": "Non-System", "value": "1363" }, { "label": "noncat", "value": "2637" }, { "label": "nonhuman", "value": "1450" }, { "label": "NonHuman", "value": "1156" }, { "label": "NonHumanPr", "value": "1127" }, { "label": "NoPairing", "value": "1330" }, { "label": "Noromance", "value": "1310" }, { "label": "Nosnacks", "value": "2113" }, { "label": "NoSystem", "value": "1573" }, { "label": "NotHarem", "value": "1030" }, { "label": "notlevelth", "value": "2623" }, { "label": "notscary", "value": "2521" }, { "label": "Nowadays", "value": "2665" }, { "label": "NPC", "value": "3001" }, { "label": "NTL", "value": "3124" }, { "label": "Nudity", "value": "946" }, { "label": "Nurses", "value": "805" }, { "label": "Obanbrothe", "value": "2191" }, { "label": "Obsession", "value": "3045" }, { "label": "ObsessiveL", "value": "520" }, { "label": "offical", "value": "2938" }, { "label": "OfficeRoma", "value": "686" }, { "label": "Official", "value": "3067" }, { "label": "ohmygod", "value": "2488" }, { "label": "oldage", "value": "1949" }, { "label": "olddemon", "value": "2167" }, { "label": "Olderlovei", "value": "3088" }, { "label": "OlderLoveI", "value": "207" }, { "label": "oldfaceunc", "value": "2762" }, { "label": "oldfisheat", "value": "2087" }, { "label": "Oldghostsm", "value": "2503" }, { "label": "OldMainCha", "value": "983" }, { "label": "OldQinpeop", "value": "2038" }, { "label": "oldtombrob", "value": "2526" }, { "label": "omega", "value": "3099" }, { "label": "Omegaverse", "value": "311" }, { "label": "On-HookSys", "value": "1651" }, { "label": "One-Piece", "value": "2913" }, { "label": "Oneflower", "value": "2786" }, { "label": "OneLeafRed", "value": "2559" }, { "label": "onemelonri", "value": "2788" }, { "label": "onemeterst", "value": "2856" }, { "label": "Onenightst", "value": "3176" }, { "label": "onepiece", "value": "1458" }, { "label": "OnePiece", "value": "105" }, { "label": "Onepunch", "value": "1106" }, { "label": "OnePunchMa", "value": "1380" }, { "label": "Onepunchmo", "value": "2555" }, { "label": "Onepunchto", "value": "2768" }, { "label": "Oneshot", "value": "1037" }, { "label": "OneSwordFl", "value": "2078" }, { "label": "Onethousan", "value": "2124" }, { "label": "onetree", "value": "2787" }, { "label": "Oneyearold", "value": "2774" }, { "label": "Online", "value": "1162" }, { "label": "Onlinegame", "value": "3269" }, { "label": "OnlineGame", "value": "776" }, { "label": "OnlineNove", "value": "1035" }, { "label": "OnlineRoma", "value": "637" }, { "label": "onlyloveyo", "value": "1990" }, { "label": "onlyyouth", "value": "2795" }, { "label": "onparadise", "value": "2326" }, { "label": "oooobe", "value": "2425" }, { "label": "openasmall", "value": "1847" }, { "label": "Openyourey", "value": "2370" }, { "label": "Operation", "value": "2936" }, { "label": "OpFemalePr", "value": "1235" }, { "label": "OPheroine", "value": "1506" }, { "label": "OPMC", "value": "859" }, { "label": "OPProtagon", "value": "1230" }, { "label": "orangeappl", "value": "2281" }, { "label": "Orc", "value": "1350" }, { "label": "Orcs", "value": "12" }, { "label": "Orcsworld", "value": "1089" }, { "label": "Ordinary", "value": "3217" }, { "label": "Organizati", "value": "1099" }, { "label": "OrganizedC", "value": "750" }, { "label": "Orientalde", "value": "3263" }, { "label": "Orientalfa", "value": "769" }, { "label": "OriginalON", "value": "1686" }, { "label": "OriginalUn", "value": "2367" }, { "label": "OriginalWa", "value": "997" }, { "label": "OriginalWa", "value": "1059" }, { "label": "OriginalYe", "value": "2766" }, { "label": "Origuchi", "value": "2804" }, { "label": "Orphan", "value": "1293" }, { "label": "OrphanMC", "value": "902" }, { "label": "Orphans", "value": "224" }, { "label": "Otaku", "value": "37" }, { "label": "Otezetta", "value": "2156" }, { "label": "otherworld", "value": "984" }, { "label": "OtomeGame", "value": "944" }, { "label": "OTTGroupCh", "value": "2511" }, { "label": "OutdoorInt", "value": "1031" }, { "label": "OuterSpace", "value": "371" }, { "label": "Over-Power", "value": "3090" }, { "label": "Overhead", "value": "3225" }, { "label": "OverheadHi", "value": "2945" }, { "label": "Overlord", "value": "1231" }, { "label": "overpowere", "value": "1443" }, { "label": "Overpowere", "value": "3140" }, { "label": "Overpowere", "value": "167" }, { "label": "Overpowere", "value": "1260" }, { "label": "Overpowere", "value": "1518" }, { "label": "Overprotec", "value": "436" }, { "label": "OVLGrandPr", "value": "1000" }, { "label": "PacifistPr", "value": "1233" }, { "label": "Painter", "value": "1313" }, { "label": "Painting", "value": "1275" }, { "label": "Paizuri", "value": "812" }, { "label": "palace", "value": "3133" }, { "label": "paleandwhi", "value": "2301" }, { "label": "PamperingR", "value": "814" }, { "label": "panic", "value": "2206" }, { "label": "Papaisvery", "value": "2703" }, { "label": "ParalelWor", "value": "830" }, { "label": "ParallelWo", "value": "109" }, { "label": "ParallelWo", "value": "826" }, { "label": "Paranoid", "value": "1112" }, { "label": "Parasite", "value": "1590" }, { "label": "Parasites", "value": "790" }, { "label": "ParentComp", "value": "421" }, { "label": "Parody", "value": "555" }, { "label": "Part-TimeJ", "value": "768" }, { "label": "part-timeo", "value": "2063" }, { "label": "Partnerofa", "value": "1416" }, { "label": "PastandPre", "value": "3287" }, { "label": "PastPlaysa", "value": "456" }, { "label": "PastPlaysa", "value": "780" }, { "label": "PastTrauma", "value": "648" }, { "label": "Patriarch", "value": "1116" }, { "label": "Peasant", "value": "2979" }, { "label": "Peerlessso", "value": "1835" }, { "label": "PeerlessSw", "value": "1832" }, { "label": "pendragon", "value": "2889" }, { "label": "pendreamst", "value": "2132" }, { "label": "Peoplenear", "value": "2691" }, { "label": "perfectmag", "value": "1843" }, { "label": "PerfectWor", "value": "1385" }, { "label": "Persistent", "value": "623" }, { "label": "Personalit", "value": "545" }, { "label": "PervertedP", "value": "515" }, { "label": "Pet", "value": "1249" }, { "label": "Pets", "value": "148" }, { "label": "petsurviva", "value": "2570" }, { "label": "PhantomThi", "value": "2982" }, { "label": "Pharmacist", "value": "593" }, { "label": "Philosophi", "value": "801" }, { "label": "Phoenixes", "value": "702" }, { "label": "Photograph", "value": "694" }, { "label": "Photograph", "value": "3021" }, { "label": "pigeonnext", "value": "2658" }, { "label": "PillBasedC", "value": "424" }, { "label": "PillConcoc", "value": "425" }, { "label": "PillConcot", "value": "91" }, { "label": "Pilots", "value": "1628" }, { "label": "Pipifish", "value": "2273" }, { "label": "Pirate", "value": "1213" }, { "label": "Pirateacto", "value": "2528" }, { "label": "PirateCour", "value": "2553" }, { "label": "PirateDaQi", "value": "1893" }, { "label": "PirateGrea", "value": "2194" }, { "label": "Piratehaha", "value": "1954" }, { "label": "Pirates", "value": "106" }, { "label": "PiratesofH", "value": "2811" }, { "label": "PirateWars", "value": "2554" }, { "label": "PiratexFai", "value": "2613" }, { "label": "Piscesinth", "value": "2747" }, { "label": "PlaneWars", "value": "3072" }, { "label": "Plants", "value": "1185" }, { "label": "PlayBlueMo", "value": "2104" }, { "label": "Playboy", "value": "1259" }, { "label": "Playboymal", "value": "1327" }, { "label": "Playboys", "value": "570" }, { "label": "Player", "value": "1598" }, { "label": "PlayerKill", "value": "1733" }, { "label": "Players", "value": "1291" }, { "label": "PlayfulPro", "value": "560" }, { "label": "PlayingGho", "value": "1519" }, { "label": "pleasantin", "value": "2093" }, { "label": "Pleaseforg", "value": "2967" }, { "label": "Pleasure", "value": "1073" }, { "label": "plumthirte", "value": "2188" }, { "label": "poems", "value": "128" }, { "label": "Poetry", "value": "113" }, { "label": "PoisonMout", "value": "1119" }, { "label": "Poisons", "value": "514" }, { "label": "Pokemon", "value": "562" }, { "label": "PokémonGo", "value": "2827" }, { "label": "PokémonTi", "value": "2550" }, { "label": "PokémonVo", "value": "2196" }, { "label": "Police", "value": "566" }, { "label": "PoliteProt", "value": "567" }, { "label": "PoliticalB", "value": "996" }, { "label": "PoliticalI", "value": "919" }, { "label": "PoliticalS", "value": "1331" }, { "label": "Politics", "value": "56" }, { "label": "Polyandry", "value": "530" }, { "label": "Polygamy", "value": "34" }, { "label": "Poor", "value": "3117" }, { "label": "Poorcrazy", "value": "1826" }, { "label": "PoorProtag", "value": "220" }, { "label": "PoorRoRich", "value": "1571" }, { "label": "PoortoRich", "value": "199" }, { "label": "PopeBibiDo", "value": "2551" }, { "label": "Popular", "value": "3164" }, { "label": "PopularLov", "value": "528" }, { "label": "Porn", "value": "949" }, { "label": "PortableSp", "value": "918" }, { "label": "PortalFant", "value": "2997" }, { "label": "Positive", "value": "3196" }, { "label": "Positiveel", "value": "2138" }, { "label": "PositiveLe", "value": "1492" }, { "label": "Possession", "value": "678" }, { "label": "Possessive", "value": "463" }, { "label": "Possessive", "value": "3155" }, { "label": "Possessive", "value": "1255" }, { "label": "Post-apoca", "value": "59" }, { "label": "potatogirl", "value": "2791" }, { "label": "PovertyAll", "value": "1332" }, { "label": "PowerCoupl", "value": "360" }, { "label": "Powerfulco", "value": "1405" }, { "label": "PowersTran", "value": "1109" }, { "label": "PowerStrug", "value": "531" }, { "label": "PragmaticP", "value": "546" }, { "label": "Pre-Stewar", "value": "3280" }, { "label": "Precogniti", "value": "534" }, { "label": "Pregnancy", "value": "297" }, { "label": "Prehistori", "value": "1402" }, { "label": "Prehistori", "value": "1412" }, { "label": "PresentDay", "value": "1775" }, { "label": "President", "value": "1758" }, { "label": "PretendLov", "value": "680" }, { "label": "Pretendtob", "value": "3223" }, { "label": "PrettyGirl", "value": "3165" }, { "label": "PreviousLi", "value": "457" }, { "label": "PreviousLi", "value": "526" }, { "label": "Priestesse", "value": "1022" }, { "label": "Priests", "value": "739" }, { "label": "Primitives", "value": "1186" }, { "label": "PrimitiveT", "value": "3094" }, { "label": "Primitivew", "value": "1090" }, { "label": "Prince", "value": "3123" }, { "label": "PrinceofHe", "value": "2908" }, { "label": "PrinceofTe", "value": "1360" }, { "label": "PrinceQing", "value": "2696" }, { "label": "Princess", "value": "1564" }, { "label": "Prison", "value": "758" }, { "label": "ProactiveP", "value": "718" }, { "label": "Production", "value": "1018" }, { "label": "Professor", "value": "895" }, { "label": "Programmer", "value": "561" }, { "label": "Programmin", "value": "3062" }, { "label": "Progressio", "value": "1691" }, { "label": "Prophecies", "value": "351" }, { "label": "Prostitute", "value": "740" }, { "label": "Protagonis", "value": "1679" }, { "label": "Protagonis", "value": "248" }, { "label": "Protagonis", "value": "482" }, { "label": "Protagonis", "value": "715" }, { "label": "Protagonis", "value": "1174" }, { "label": "Protagonis", "value": "1357" }, { "label": "Protagonis", "value": "1394" }, { "label": "Protagonis", "value": "1562" }, { "label": "Protagonis", "value": "2920" }, { "label": "PseudoHolo", "value": "1333" }, { "label": "PseudoReli", "value": "1334" }, { "label": "psionic", "value": "2950" }, { "label": "Psychic", "value": "1110" }, { "label": "PsychicPow", "value": "661" }, { "label": "Psychologi", "value": "1122" }, { "label": "Psychology", "value": "1580" }, { "label": "Psychopath", "value": "278" }, { "label": "Punch", "value": "2004" }, { "label": "pureimpuls", "value": "2597" }, { "label": "purekitten", "value": "2506" }, { "label": "PureLove", "value": "3052" }, { "label": "Puzzles", "value": "1566" }, { "label": "QianshanTw", "value": "2796" }, { "label": "Qidian", "value": "933" }, { "label": "QiLuck", "value": "1680" }, { "label": "qimao", "value": "3208" }, { "label": "QinBichu", "value": "1897" }, { "label": "Qingfeng1D", "value": "1898" }, { "label": "QingheTaoi", "value": "2066" }, { "label": "Qingliansw", "value": "2012" }, { "label": "qingyu", "value": "2400" }, { "label": "QinTianhu", "value": "3256" }, { "label": "QiXuan", "value": "2153" }, { "label": "QT", "value": "1800" }, { "label": "Quasi-GodS", "value": "1959" }, { "label": "QueenofBla", "value": "2484" }, { "label": "Question&a", "value": "1771" }, { "label": "QuickPass", "value": "1658" }, { "label": "QuickTrans", "value": "414" }, { "label": "QuickTrans", "value": "1698" }, { "label": "Quickwear", "value": "1583" }, { "label": "QuietChara", "value": "706" }, { "label": "quietflowe", "value": "1890" }, { "label": "QuirkyChar", "value": "701" }, { "label": "Quququ", "value": "2677" }, { "label": "R-15", "value": "63" }, { "label": "R-18", "value": "30" }, { "label": "R15", "value": "942" }, { "label": "R18", "value": "1547" }, { "label": "RabbitToot", "value": "2601" }, { "label": "RaceChange", "value": "580" }, { "label": "Races", "value": "3000" }, { "label": "Racism", "value": "208" }, { "label": "rainandsno", "value": "2293" }, { "label": "rainboweig", "value": "2745" }, { "label": "rainydaywi", "value": "2849" }, { "label": "Raiseaghos", "value": "2672" }, { "label": "raisedache", "value": "2655" }, { "label": "RankingLis", "value": "1786" }, { "label": "Rape", "value": "13" }, { "label": "Rapeseedra", "value": "2198" }, { "label": "RapeVictim", "value": "387" }, { "label": "RapeVictim", "value": "832" }, { "label": "Rarebloodl", "value": "3149" }, { "label": "Ras", "value": "1730" }, { "label": "reality", "value": "3276" }, { "label": "reallyking", "value": "2317" }, { "label": "Realmmonst", "value": "2873" }, { "label": "reasoning", "value": "3218" }, { "label": "Rebellion", "value": "756" }, { "label": "Rebirth", "value": "192" }, { "label": "RebirthedP", "value": "1287" }, { "label": "Reborn", "value": "836" }, { "label": "Rebornprot", "value": "1285" }, { "label": "recreation", "value": "2363" }, { "label": "redalert", "value": "927" }, { "label": "RedAlert2", "value": "822" }, { "label": "Redemption", "value": "3051" }, { "label": "Regression", "value": "3049" }, { "label": "Regressor", "value": "1599" }, { "label": "Regret", "value": "3046" }, { "label": "Reiki", "value": "3063" }, { "label": "ReikiRecov", "value": "1807" }, { "label": "Reikyrecov", "value": "1100" }, { "label": "reincarnat", "value": "1448" }, { "label": "reincarnat", "value": "1780" }, { "label": "Reincarnat", "value": "20" }, { "label": "Reincarnat", "value": "14" }, { "label": "Reincarnat", "value": "225" }, { "label": "Reincarnat", "value": "539" }, { "label": "Reincarnat", "value": "749" }, { "label": "Reincarnat", "value": "881" }, { "label": "Reincarnat", "value": "1481" }, { "label": "Reincarnat", "value": "3120" }, { "label": "Rejuvenati", "value": "1055" }, { "label": "relaxed", "value": "1803" }, { "label": "Relaxing", "value": "987" }, { "label": "Religions", "value": "622" }, { "label": "ReligiousO", "value": "1101" }, { "label": "ReligousOr", "value": "889" }, { "label": "ReluctantP", "value": "1060" }, { "label": "Reporters", "value": "775" }, { "label": "Researcher", "value": "1744" }, { "label": "Residencen", "value": "2439" }, { "label": "Residentev", "value": "2926" }, { "label": "restaurant", "value": "2328" }, { "label": "Restaurant", "value": "788" }, { "label": "Resurrecti", "value": "305" }, { "label": "Resurrecti", "value": "2758" }, { "label": "Return", "value": "3215" }, { "label": "Returningf", "value": "770" }, { "label": "returnofth", "value": "3286" }, { "label": "Returntoth", "value": "925" }, { "label": "Returntoth", "value": "1187" }, { "label": "Reunion", "value": "1523" }, { "label": "revenge", "value": "1447" }, { "label": "Revenge", "value": "42" }, { "label": "Reversal", "value": "3209" }, { "label": "Reversalof", "value": "1048" }, { "label": "Reverse", "value": "3122" }, { "label": "ReverseHar", "value": "581" }, { "label": "ReverseRap", "value": "573" }, { "label": "ReverseRpe", "value": "759" }, { "label": "reversesmo", "value": "2084" }, { "label": "Reversible", "value": "786" }, { "label": "Rich", "value": "1095" }, { "label": "RichCharac", "value": "876" }, { "label": "richeveryy", "value": "2568" }, { "label": "Richfamily", "value": "1438" }, { "label": "RichProtag", "value": "1205" }, { "label": "RichtoPoor", "value": "315" }, { "label": "Rideawhale", "value": "1858" }, { "label": "Righteous", "value": "3195" }, { "label": "RighteousP", "value": "271" }, { "label": "RimuruTemp", "value": "1629" }, { "label": "RinYueqing", "value": "1831" }, { "label": "RiseofGras", "value": "3011" }, { "label": "Rivalry", "value": "746" }, { "label": "riversande", "value": "2048" }, { "label": "Role-Playi", "value": "849" }, { "label": "Romance", "value": "774" }, { "label": "RomanceFan", "value": "3047" }, { "label": "RomanticPr", "value": "841" }, { "label": "RomanticSu", "value": "62" }, { "label": "RomanticSu", "value": "754" }, { "label": "RookieProt", "value": "1408" }, { "label": "Roommates", "value": "777" }, { "label": "Roon", "value": "2609" }, { "label": "Rotaryhotp", "value": "2692" }, { "label": "Royalfamil", "value": "3179" }, { "label": "RoyalSabur", "value": "1995" }, { "label": "Royalty", "value": "2" }, { "label": "Rpe", "value": "259" }, { "label": "RpeVictimB", "value": "717" }, { "label": "RPG", "value": "3080" }, { "label": "runawayant", "value": "1881" }, { "label": "runawaycit", "value": "1852" }, { "label": "runawayher", "value": "1005" }, { "label": "Rune", "value": "1290" }, { "label": "Ruoshuithr", "value": "2284" }, { "label": "Russian", "value": "1808" }, { "label": "Ruthless", "value": "117" }, { "label": "RuthlessMc", "value": "1141" }, { "label": "RuthlessPr", "value": "286" }, { "label": "RWBY", "value": "1722" }, { "label": "SacrificeX", "value": "2781" }, { "label": "SadisticCh", "value": "556" }, { "label": "Sadreminde", "value": "1972" }, { "label": "sadsadness", "value": "2125" }, { "label": "sadsword", "value": "1888" }, { "label": "SaikiK", "value": "1107" }, { "label": "SaikiK.", "value": "1431" }, { "label": "Sailing", "value": "1777" }, { "label": "Saint", "value": "1597" }, { "label": "Saints", "value": "741" }, { "label": "SaintSeiya", "value": "1132" }, { "label": "Sakurajima", "value": "2706" }, { "label": "SakuraMoon", "value": "2246" }, { "label": "Saltedfish", "value": "2443" }, { "label": "SaltedFish", "value": "1136" }, { "label": "SaltedFish", "value": "1891" }, { "label": "SaltedFish", "value": "2325" }, { "label": "SaltedFish", "value": "2744" }, { "label": "Salvation", "value": "3060" }, { "label": "SameSexMar", "value": "1215" }, { "label": "Samurai", "value": "1020" }, { "label": "sandrivere", "value": "2150" }, { "label": "SanmitheGr", "value": "2437" }, { "label": "SAT", "value": "1034" }, { "label": "Satire", "value": "2996" }, { "label": "SaveHarem", "value": "948" }, { "label": "Saves", "value": "1050" }, { "label": "SavingtheW", "value": "760" }, { "label": "Scalesofth", "value": "1866" }, { "label": "Scary", "value": "3188" }, { "label": "Scavengers", "value": "84" }, { "label": "schemeandc", "value": "1785" }, { "label": "Schemes", "value": "1497" }, { "label": "Schemesand", "value": "1091" }, { "label": "SchemesAnd", "value": "260" }, { "label": "SchemingPr", "value": "1335" }, { "label": "Schizophre", "value": "261" }, { "label": "School-lif", "value": "1319" }, { "label": "SchoolLife", "value": "654" }, { "label": "SchoolSett", "value": "1729" }, { "label": "Sci-fi", "value": "898" }, { "label": "science", "value": "129" }, { "label": "Science-fi", "value": "2912" }, { "label": "Sciencefic", "value": "1706" }, { "label": "Scientist", "value": "1560" }, { "label": "Scientists", "value": "427" }, { "label": "Scourge", "value": "2013" }, { "label": "SCP", "value": "1182" }, { "label": "scumteache", "value": "2349" }, { "label": "Sea", "value": "1606" }, { "label": "SeaExplora", "value": "1160" }, { "label": "SealedPowe", "value": "771" }, { "label": "secondchan", "value": "1457" }, { "label": "SecondChan", "value": "41" }, { "label": "SecondChan", "value": "1705" }, { "label": "SecondChan", "value": "123" }, { "label": "secondpira", "value": "2467" }, { "label": "secretary", "value": "1776" }, { "label": "SecretCrus", "value": "600" }, { "label": "SecretIden", "value": "118" }, { "label": "Secretive", "value": "3158" }, { "label": "SecretiveP", "value": "635" }, { "label": "Secretobse", "value": "2524" }, { "label": "SecretOrga", "value": "1183" }, { "label": "SecretOrga", "value": "755" }, { "label": "SecretRela", "value": "1659" }, { "label": "Secrets", "value": "675" }, { "label": "Sect", "value": "3018" }, { "label": "SectDevelo", "value": "507" }, { "label": "Sects", "value": "86" }, { "label": "Seduction", "value": "732" }, { "label": "Seductive", "value": "3194" }, { "label": "SeeingThin", "value": "662" }, { "label": "self-disci", "value": "2414" }, { "label": "Self-disci", "value": "3086" }, { "label": "SelfDiscip", "value": "3019" }, { "label": "SelfishPro", "value": "508" }, { "label": "SelflessPr", "value": "640" }, { "label": "SemeProtag", "value": "588" }, { "label": "Senbeiboy", "value": "2981" }, { "label": "Sencha", "value": "2724" }, { "label": "Senpai-Kou", "value": "960" }, { "label": "SentientOb", "value": "1061" }, { "label": "SentientSk", "value": "1365" }, { "label": "Sentimenta", "value": "735" }, { "label": "Sequel", "value": "1225" }, { "label": "SerialKill", "value": "218" }, { "label": "Serious", "value": "986" }, { "label": "ServantofZ", "value": "1856" }, { "label": "Servants", "value": "571" }, { "label": "SevenDeadl", "value": "808" }, { "label": "Sevengener", "value": "2248" }, { "label": "sevenpigeo", "value": "1921" }, { "label": "SevenVirtu", "value": "1044" }, { "label": "SexSlaves", "value": "574" }, { "label": "SexualAbus", "value": "569" }, { "label": "SexualCult", "value": "638" }, { "label": "shadowfall", "value": "2860" }, { "label": "shadowghos", "value": "2341" }, { "label": "Shadowless", "value": "2971" }, { "label": "Shallowsea", "value": "1848" }, { "label": "ShamelessP", "value": "87" }, { "label": "Shapeshift", "value": "688" }, { "label": "Shapeshift", "value": "1147" }, { "label": "SharingABo", "value": "981" }, { "label": "Sharp-tong", "value": "378" }, { "label": "Shelter", "value": "1542" }, { "label": "Shenhao", "value": "3285" }, { "label": "ShenhaoMec", "value": "2619" }, { "label": "ShenhuoxoR", "value": "2111" }, { "label": "ShenJin", "value": "2599" }, { "label": "ShenLuo", "value": "2032" }, { "label": "shokugekin", "value": "939" }, { "label": "ShortStory", "value": "641" }, { "label": "Shota", "value": "584" }, { "label": "Shotacon", "value": "796" }, { "label": "Shoujo-AiS", "value": "666" }, { "label": "ShoujoAi", "value": "1074" }, { "label": "Shouldhand", "value": "1889" }, { "label": "Shounen", "value": "1569" }, { "label": "Shounen-Ai", "value": "598" }, { "label": "shounenai", "value": "1762" }, { "label": "ShouProtag", "value": "1504" }, { "label": "Show-biz", "value": "2928" }, { "label": "Showbiz", "value": "103" }, { "label": "showstory", "value": "2090" }, { "label": "shrimpinth", "value": "1857" }, { "label": "Shuangwen", "value": "1251" }, { "label": "shudder", "value": "1868" }, { "label": "ShuYuChenX", "value": "2377" }, { "label": "ShyCharact", "value": "761" }, { "label": "Si-fi", "value": "1142" }, { "label": "Sibling&am", "value": "811" }, { "label": "SiblingRiv", "value": "804" }, { "label": "Siblings", "value": "442" }, { "label": "SiblingsNo", "value": "429" }, { "label": "SicklyChar", "value": "474" }, { "label": "Sign-in", "value": "900" }, { "label": "Sign-InChe", "value": "1288" }, { "label": "signin", "value": "1346" }, { "label": "SigninChec", "value": "1384" }, { "label": "signinsalt", "value": "2409" }, { "label": "SiheyuanDe", "value": "2313" }, { "label": "Siheyuanfl", "value": "2214" }, { "label": "SiheyuanGo", "value": "2285" }, { "label": "Silencehim", "value": "2383" }, { "label": "silentkill", "value": "2095" }, { "label": "sillycatse", "value": "1946" }, { "label": "SillyColum", "value": "2401" }, { "label": "silver", "value": "2871" }, { "label": "Simpleone", "value": "2417" }, { "label": "Simulation", "value": "1685" }, { "label": "Simulator", "value": "1219" }, { "label": "Singer", "value": "1065" }, { "label": "Singers", "value": "500" }, { "label": "Singlefema", "value": "3193" }, { "label": "SingleHero", "value": "1605" }, { "label": "SinglePare", "value": "415" }, { "label": "singlesalt", "value": "2628" }, { "label": "Sinology", "value": "3220" }, { "label": "Siscon", "value": "1769" }, { "label": "SisterComp", "value": "347" }, { "label": "sistercook", "value": "2606" }, { "label": "sisterisbe", "value": "2424" }, { "label": "six-twochi", "value": "1953" }, { "label": "SixPathsof", "value": "2489" }, { "label": "Sixty-six", "value": "2091" }, { "label": "Skill", "value": "979" }, { "label": "SkillAssim", "value": "352" }, { "label": "SkillBooks", "value": "766" }, { "label": "SkillCreat", "value": "767" }, { "label": "Skills", "value": "1006" }, { "label": "SkillSteal", "value": "1403" }, { "label": "SkinButler", "value": "2365" }, { "label": "skycity", "value": "3113" }, { "label": "SlapstickC", "value": "1602" }, { "label": "Slave", "value": "1500" }, { "label": "SlaveHarem", "value": "209" }, { "label": "SlaveProta", "value": "627" }, { "label": "Slaves", "value": "74" }, { "label": "SlaveSyste", "value": "833" }, { "label": "sleepingsa", "value": "2041" }, { "label": "sleeplesst", "value": "2518" }, { "label": "sleepslate", "value": "2011" }, { "label": "Slice-of-l", "value": "1307" }, { "label": "SliceofLif", "value": "906" }, { "label": "SlightlySu", "value": "1322" }, { "label": "SlowCultiv", "value": "1079" }, { "label": "SlowGrowth", "value": "295" }, { "label": "SlowLife", "value": "953" }, { "label": "SlowRomanc", "value": "361" }, { "label": "Slvery", "value": "3095" }, { "label": "Smallmushr", "value": "2607" }, { "label": "smallninel", "value": "1938" }, { "label": "Smart", "value": "3022" }, { "label": "SmartCoupl", "value": "263" }, { "label": "SmartMC", "value": "905" }, { "label": "smartprota", "value": "1261" }, { "label": "Smokebambo", "value": "2702" }, { "label": "SmokeCloud", "value": "1839" }, { "label": "smokeinthe", "value": "1830" }, { "label": "Smut", "value": "3145" }, { "label": "snorkeling", "value": "2077" }, { "label": "Soccer", "value": "155" }, { "label": "SocialOutc", "value": "736" }, { "label": "softorange", "value": "2812" }, { "label": "SoftSci-fi", "value": "3004" }, { "label": "Softyander", "value": "3057" }, { "label": "Soldiers", "value": "612" }, { "label": "Sometimesa", "value": "1019" }, { "label": "Son-in-law", "value": "1498" }, { "label": "SongoftheG", "value": "2560" }, { "label": "SonInLaw", "value": "2958" }, { "label": "SonOfAGodP", "value": "1177" }, { "label": "sopoor", "value": "2790" }, { "label": "soulanddre", "value": "2461" }, { "label": "SoulCelest", "value": "2447" }, { "label": "SoulChef", "value": "2287" }, { "label": "soulmemory", "value": "2573" }, { "label": "SoulPower", "value": "136" }, { "label": "Souls", "value": "642" }, { "label": "SouthKefei", "value": "2832" }, { "label": "Space", "value": "884" }, { "label": "SpaceOpera", "value": "101" }, { "label": "Spaceship", "value": "632" }, { "label": "SpatialMan", "value": "795" }, { "label": "SpearWield", "value": "764" }, { "label": "SpecialAbi", "value": "334" }, { "label": "SpecialAbi", "value": "668" }, { "label": "SpecialAbi", "value": "1594" }, { "label": "SpecialFor", "value": "1381" }, { "label": "SpecialLik", "value": "909" }, { "label": "SpecialLov", "value": "1208" }, { "label": "specialpow", "value": "3136" }, { "label": "specialwar", "value": "2394" }, { "label": "speechless", "value": "2750" }, { "label": "spendthewo", "value": "2085" }, { "label": "Spies", "value": "751" }, { "label": "SpiritAdvi", "value": "800" }, { "label": "SpiritAnal", "value": "1283" }, { "label": "Spirits", "value": "663" }, { "label": "SpiritualQ", "value": "1361" }, { "label": "SpiritualR", "value": "1265" }, { "label": "SpiritUser", "value": "798" }, { "label": "sport", "value": "1479" }, { "label": "Sports", "value": "1377" }, { "label": "Spy", "value": "932" }, { "label": "stablefort", "value": "2567" }, { "label": "stallion", "value": "3075" }, { "label": "Stand", "value": "2923" }, { "label": "star", "value": "934" }, { "label": "Starcraft", "value": "1165" }, { "label": "stardarkni", "value": "2418" }, { "label": "starfish", "value": "2729" }, { "label": "startofthe", "value": "2297" }, { "label": "startwriti", "value": "2161" }, { "label": "Starwars", "value": "3007" }, { "label": "Status", "value": "965" }, { "label": "steamponk", "value": "3024" }, { "label": "Stepmom", "value": "3173" }, { "label": "Stepmother", "value": "1664" }, { "label": "Sterile", "value": "1901" }, { "label": "stevec", "value": "2505" }, { "label": "StewedChic", "value": "2527" }, { "label": "StinkBeanS", "value": "2376" }, { "label": "StockholmS", "value": "620" }, { "label": "StoicChara", "value": "669" }, { "label": "Stomachhur", "value": "2548" }, { "label": "stonemored", "value": "2572" }, { "label": "stopatfirs", "value": "2862" }, { "label": "StoreOwner", "value": "331" }, { "label": "straightma", "value": "2933" }, { "label": "Straightme", "value": "2584" }, { "label": "StraightSe", "value": "699" }, { "label": "StraightUk", "value": "700" }, { "label": "StrategicB", "value": "687" }, { "label": "Strategist", "value": "731" }, { "label": "Strategy", "value": "3012" }, { "label": "Streamer", "value": "877" }, { "label": "streamerbl", "value": "2819" }, { "label": "Strength-b", "value": "527" }, { "label": "strong", "value": "959" }, { "label": "StrongBack", "value": "1376" }, { "label": "strongcomb", "value": "1014" }, { "label": "StrongCoup", "value": "1429" }, { "label": "StrongestP", "value": "1556" }, { "label": "Strongests", "value": "993" }, { "label": "strongfema", "value": "1789" }, { "label": "strongfema", "value": "3237" }, { "label": "StrongFema", "value": "893" }, { "label": "StrongFema", "value": "1244" }, { "label": "Strongfl", "value": "3154" }, { "label": "Strongfrom", "value": "362" }, { "label": "StrongLove", "value": "264" }, { "label": "StrongLove", "value": "1270" }, { "label": "StrongMC", "value": "854" }, { "label": "StrongOpFe", "value": "1108" }, { "label": "StrongPowe", "value": "882" }, { "label": "Strongprod", "value": "1013" }, { "label": "StrongProt", "value": "951" }, { "label": "StrongSubo", "value": "843" }, { "label": "StrongtoSt", "value": "558" }, { "label": "strongwoma", "value": "3110" }, { "label": "StubbornPr", "value": "216" }, { "label": "Student", "value": "3270" }, { "label": "Student-Te", "value": "714" }, { "label": "Studenttea", "value": "3185" }, { "label": "StudentUni", "value": "2395" }, { "label": "stupidfox", "value": "2061" }, { "label": "submissive", "value": "1802" }, { "label": "Succubus", "value": "806" }, { "label": "SuddenStre", "value": "416" }, { "label": "SuddenWeal", "value": "200" }, { "label": "Sugary", "value": "2991" }, { "label": "suicidalpr", "value": "1815" }, { "label": "Suicides", "value": "1007" }, { "label": "summernow", "value": "2641" }, { "label": "summertree", "value": "1928" }, { "label": "summertrip", "value": "1923" }, { "label": "summon", "value": "161" }, { "label": "SummonedHe", "value": "64" }, { "label": "Summoner", "value": "907" }, { "label": "Summoning", "value": "980" }, { "label": "SummoningM", "value": "579" }, { "label": "Summons", "value": "1512" }, { "label": "sundaysun", "value": "1907" }, { "label": "sunsetover", "value": "2815" }, { "label": "SuperAbili", "value": "3159" }, { "label": "Superfire", "value": "2545" }, { "label": "SuperGodGr", "value": "2058" }, { "label": "SuperGodNo", "value": "2534" }, { "label": "SuperHeroe", "value": "1175" }, { "label": "Superman", "value": "2975" }, { "label": "Supernatur", "value": "664" }, { "label": "Supernatur", "value": "1015" }, { "label": "Supernatur", "value": "2428" }, { "label": "supernovab", "value": "2797" }, { "label": "SuperPiran", "value": "2312" }, { "label": "Superpower", "value": "408" }, { "label": "Superpower", "value": "1316" }, { "label": "SuperSemin", "value": "844" }, { "label": "Superstar", "value": "1190" }, { "label": "SuperTechn", "value": "1289" }, { "label": "Supporting", "value": "3210" }, { "label": "Supportive", "value": "1561" }, { "label": "Survival", "value": "291" }, { "label": "SurvivalGa", "value": "693" }, { "label": "SuShaoqing", "value": "1925" }, { "label": "Suspense", "value": "1256" }, { "label": "SuWei", "value": "2423" }, { "label": "SuYechen", "value": "1918" }, { "label": "SuZiyouyou", "value": "2288" }, { "label": "SwallowedS", "value": "1392" }, { "label": "swearnotto", "value": "2732" }, { "label": "Sweet", "value": "1203" }, { "label": "Sweetandso", "value": "2299" }, { "label": "sweetjelly", "value": "1873" }, { "label": "Sweetlove", "value": "3156" }, { "label": "sweetpet", "value": "3257" }, { "label": "sweetroman", "value": "1524" }, { "label": "SweetText", "value": "896" }, { "label": "SweetYaoi", "value": "916" }, { "label": "Swimmingfi", "value": "2748" }, { "label": "SwingingDe", "value": "2794" }, { "label": "SwordAndMa", "value": "287" }, { "label": "SwordArtOn", "value": "1373" }, { "label": "Swordblood", "value": "1882" }, { "label": "Swordgod", "value": "2645" }, { "label": "SwordImmor", "value": "1929" }, { "label": "swordrepai", "value": "2680" }, { "label": "Swordsman", "value": "99" }, { "label": "SwordWield", "value": "272" }, { "label": "Sword丨Lea", "value": "2265" }, { "label": "SxFriends", "value": "945" }, { "label": "SxSlaves", "value": "1049" }, { "label": "SxualAbuse", "value": "791" }, { "label": "SxualCulti", "value": "947" }, { "label": "Sysetm", "value": "1537" }, { "label": "system", "value": "1456" }, { "label": "System", "value": "168" }, { "label": "SystemAdmi", "value": "169" }, { "label": "SystemFlow", "value": "1683" }, { "label": "systemmale", "value": "3035" }, { "label": "SystemNo.3", "value": "2315" }, { "label": "systemowne", "value": "1286" }, { "label": "SystemTran", "value": "1383" }, { "label": "SystemTran", "value": "1505" }, { "label": "TableTenni", "value": "670" }, { "label": "Tactics", "value": "1028" }, { "label": "Tailsman", "value": "1756" }, { "label": "Takeaplane", "value": "2499" }, { "label": "takeoffboy", "value": "2690" }, { "label": "takeoverth", "value": "2457" }, { "label": "takestock", "value": "2209" }, { "label": "Talent", "value": "659" }, { "label": "Talents", "value": "1366" }, { "label": "TalentShow", "value": "1557" }, { "label": "Talismans", "value": "1221" }, { "label": "Talkshow", "value": "3240" }, { "label": "TangJichen", "value": "1886" }, { "label": "TangShaoqi", "value": "2259" }, { "label": "TangThirty", "value": "2904" }, { "label": "Taoist", "value": "1509" }, { "label": "Taoistprie", "value": "3291" }, { "label": "Tasker", "value": "1666" }, { "label": "TaurenIron", "value": "1968" }, { "label": "teacher", "value": "130" }, { "label": "teacher-st", "value": "3032" }, { "label": "TeacherDis", "value": "1397" }, { "label": "teachermal", "value": "3137" }, { "label": "TeacherMC", "value": "1398" }, { "label": "Teachers", "value": "665" }, { "label": "team", "value": "1401" }, { "label": "TeamManage", "value": "1066" }, { "label": "Teamwork", "value": "181" }, { "label": "Technologi", "value": "302" }, { "label": "Technology", "value": "1086" }, { "label": "Technology", "value": "1166" }, { "label": "Technology", "value": "2002" }, { "label": "TeckTyrann", "value": "2144" }, { "label": "Teemotofly", "value": "2481" }, { "label": "Teen", "value": "3189" }, { "label": "TeenageXia", "value": "2846" }, { "label": "Television", "value": "1071" }, { "label": "Temple", "value": "1009" }, { "label": "TempleThir", "value": "1988" }, { "label": "TenCommand", "value": "2201" }, { "label": "Tennis", "value": "671" }, { "label": "Tensura", "value": "1630" }, { "label": "Tenthousan", "value": "1974" }, { "label": "TenThousan", "value": "2684" }, { "label": "TerminalIl", "value": "440" }, { "label": "TerritoryC", "value": "1382" }, { "label": "TerritoryM", "value": "1768" }, { "label": "Terrori", "value": "3160" }, { "label": "Terrorists", "value": "762" }, { "label": "ThaiNovel", "value": "1714" }, { "label": "Thankyoufo", "value": "2621" }, { "label": "Theancesto", "value": "2298" }, { "label": "Theashesar", "value": "2455" }, { "label": "TheAsteris", "value": "1726" }, { "label": "Thebigdevi", "value": "2065" }, { "label": "Thebiggest", "value": "2052" }, { "label": "Thecatisgo", "value": "2517" }, { "label": "TheDevil", "value": "3167" }, { "label": "theevernon", "value": "1473" }, { "label": "Thefishmar", "value": "2538" }, { "label": "Theflowero", "value": "1850" }, { "label": "TheGamer", "value": "1721" }, { "label": "Thegloryof", "value": "2728" }, { "label": "TheGodfath", "value": "2200" }, { "label": "thegodofde", "value": "2018" }, { "label": "TheGospelo", "value": "1899" }, { "label": "Theheroist", "value": "972" }, { "label": "Thelightof", "value": "1955" }, { "label": "Thelistdep", "value": "2807" }, { "label": "Thelistisi", "value": "2419" }, { "label": "TheMainCha", "value": "3166" }, { "label": "TheManInTh", "value": "1271" }, { "label": "Thenewbact", "value": "2100" }, { "label": "Theoceando", "value": "2154" }, { "label": "Theoldfive", "value": "2389" }, { "label": "Thepowerof", "value": "2592" }, { "label": "Thequeenis", "value": "2339" }, { "label": "Thereareal", "value": "3248" }, { "label": "therearefi", "value": "2182" }, { "label": "Thereisasu", "value": "3250" }, { "label": "Thestronga", "value": "3174" }, { "label": "Thestronge", "value": "2143" }, { "label": "Thesunsett", "value": "1851" }, { "label": "TheThreeKi", "value": "1910" }, { "label": "Thetopofth", "value": "2903" }, { "label": "Thetruegod", "value": "2342" }, { "label": "Thewayofth", "value": "2824" }, { "label": "thewindisb", "value": "2123" }, { "label": "Theworld&a", "value": "2242" }, { "label": "Thieves", "value": "705" }, { "label": "Thinkingof", "value": "2229" }, { "label": "Thirty-two", "value": "2357" }, { "label": "Thisissure", "value": "2833" }, { "label": "thisyear", "value": "2071" }, { "label": "Thousandso", "value": "2557" }, { "label": "ThousandTe", "value": "2442" }, { "label": "Three-flav", "value": "1951" }, { "label": "Threedaysa", "value": "1894" }, { "label": "ThreeDotIn", "value": "2775" }, { "label": "ThreeKingd", "value": "1406" }, { "label": "threelittl", "value": "2239" }, { "label": "ThreeLives", "value": "2103" }, { "label": "ThreeLives", "value": "2558" }, { "label": "Threesome", "value": "210" }, { "label": "threeteeth", "value": "2420" }, { "label": "ThreshingG", "value": "1991" }, { "label": "Thriller", "value": "138" }, { "label": "Thunderous", "value": "2021" }, { "label": "Tianbang78", "value": "1825" }, { "label": "TianbangDi", "value": "2983" }, { "label": "Tianbanggr", "value": "2803" }, { "label": "TianbangHu", "value": "2661" }, { "label": "Tianbangol", "value": "2262" }, { "label": "Tianbangth", "value": "2184" }, { "label": "TianbangYa", "value": "2352" }, { "label": "Tianshitak", "value": "2368" }, { "label": "TianYiding", "value": "2343" }, { "label": "Tigerteeth", "value": "2583" }, { "label": "Time-Trave", "value": "1979" }, { "label": "TimeandSpa", "value": "1536" }, { "label": "TimeKingJO", "value": "2615" }, { "label": "Timelimit", "value": "3048" }, { "label": "TimeLoop", "value": "47" }, { "label": "TimeManipu", "value": "543" }, { "label": "TimeParado", "value": "1184" }, { "label": "TimeSkip", "value": "27" }, { "label": "TimeTravel", "value": "48" }, { "label": "TingFengZh", "value": "1932" }, { "label": "Titans", "value": "160" }, { "label": "tobacco", "value": "2224" }, { "label": "Today&0", "value": "2763" }, { "label": "Toilet", "value": "2779" }, { "label": "Tokyo", "value": "1483" }, { "label": "TokyoGhoul", "value": "1782" }, { "label": "TomboyishF", "value": "348" }, { "label": "TombRaider", "value": "2252" }, { "label": "TombRaider", "value": "2386" }, { "label": "TombRaider", "value": "2465" }, { "label": "TombRaider", "value": "2483" }, { "label": "tomorrowwi", "value": "1936" }, { "label": "ToneMasaya", "value": "2047" }, { "label": "TopMC", "value": "1695" }, { "label": "TopoftheCl", "value": "2070" }, { "label": "TopoftheCl", "value": "2141" }, { "label": "TopoftheCl", "value": "2801" }, { "label": "TopoftheFo", "value": "2456" }, { "label": "Toriko", "value": "1390" }, { "label": "Torture", "value": "763" }, { "label": "towashthed", "value": "2719" }, { "label": "TowerDefen", "value": "1223" }, { "label": "Toys", "value": "1036" }, { "label": "Trade", "value": "2927" }, { "label": "Tragedy", "value": "857" }, { "label": "TragicPast", "value": "533" }, { "label": "Tramsmigra", "value": "1637" }, { "label": "Tranformer", "value": "848" }, { "label": "Transforma", "value": "606" }, { "label": "Transmigat", "value": "1652" }, { "label": "transmigra", "value": "1469" }, { "label": "Transmigra", "value": "57" }, { "label": "Transmigra", "value": "1146" }, { "label": "Transmigra", "value": "1548" }, { "label": "Transmigra", "value": "1088" }, { "label": "Transmigra", "value": "1092" }, { "label": "Transmigra", "value": "1161" }, { "label": "Transmigra", "value": "1164" }, { "label": "Transmigra", "value": "1254" }, { "label": "Transplant", "value": "226" }, { "label": "Transporte", "value": "21" }, { "label": "Transporte", "value": "88" }, { "label": "Transporte", "value": "279" }, { "label": "Transporte", "value": "491" }, { "label": "TransportI", "value": "1351" }, { "label": "Transportt", "value": "1277" }, { "label": "Transworld", "value": "967" }, { "label": "Trap", "value": "639" }, { "label": "travel", "value": "3114" }, { "label": "Traveling", "value": "1607" }, { "label": "TravelingT", "value": "1125" }, { "label": "traveller", "value": "1663" }, { "label": "Traverse", "value": "866" }, { "label": "TreasureHu", "value": "913" }, { "label": "TreasureHu", "value": "1084" }, { "label": "TreasureHu", "value": "1284" }, { "label": "treeofenli", "value": "2867" }, { "label": "TribalSoci", "value": "803" }, { "label": "Trickster", "value": "995" }, { "label": "Trnasmigra", "value": "1588" }, { "label": "TroubledWo", "value": "2589" }, { "label": "TrueorFake", "value": "2955" }, { "label": "TrumanLive", "value": "2495" }, { "label": "TS", "value": "3092" }, { "label": "TsukibaAki", "value": "2178" }, { "label": "Tsundere", "value": "38" }, { "label": "TsundereLo", "value": "1766" }, { "label": "Tsunderesc", "value": "2501" }, { "label": "Tsuru", "value": "158" }, { "label": "Turtle", "value": "3070" }, { "label": "tv", "value": "1478" }, { "label": "TwentyFame", "value": "2416" }, { "label": "twilight", "value": "2006" }, { "label": "twilightdr", "value": "2830" }, { "label": "Twilightis", "value": "1896" }, { "label": "Twinbabies", "value": "1222" }, { "label": "twingods", "value": "2828" }, { "label": "Twins", "value": "441" }, { "label": "Twistbroth", "value": "2698" }, { "label": "Twisted", "value": "3169" }, { "label": "TwistedPer", "value": "182" }, { "label": "Two-dimens", "value": "2413" }, { "label": "Two-dimens", "value": "2468" }, { "label": "Two-dimens", "value": "2673" }, { "label": "two-wayred", "value": "3036" }, { "label": "Twopeopleb", "value": "2778" }, { "label": "Twopoundso", "value": "2734" }, { "label": "TypeMoon", "value": "1631" }, { "label": "Tyrant", "value": "1804" }, { "label": "Ugly", "value": "3087" }, { "label": "UglyProtag", "value": "793" }, { "label": "UglytoBeau", "value": "298" }, { "label": "UltramanPo", "value": "1976" }, { "label": "unbearable", "value": "2086" }, { "label": "Unconditio", "value": "728" }, { "label": "unconsciou", "value": "1026" }, { "label": "Undead", "value": "3105" }, { "label": "undeadfish", "value": "2162" }, { "label": "Undead丨Kn", "value": "2256" }, { "label": "Undefeated", "value": "2539" }, { "label": "Underestim", "value": "267" }, { "label": "underlolic", "value": "2765" }, { "label": "undersilve", "value": "2473" }, { "label": "understate", "value": "2894" }, { "label": "Undocument", "value": "1841" }, { "label": "unexpected", "value": "1444" }, { "label": "Unintentio", "value": "2887" }, { "label": "Unique", "value": "3059" }, { "label": "UniqueCult", "value": "211" }, { "label": "UniqueWeap", "value": "354" }, { "label": "UniqueWeap", "value": "778" }, { "label": "unknown", "value": "2575" }, { "label": "UnknownTao", "value": "2459" }, { "label": "Unknowntea", "value": "1871" }, { "label": "Unlimitedc", "value": "2907" }, { "label": "Unlimitedf", "value": "955" }, { "label": "Unlucky", "value": "3068" }, { "label": "UnluckyPro", "value": "379" }, { "label": "Unprincipl", "value": "3177" }, { "label": "Unreliable", "value": "613" }, { "label": "Unrequited", "value": "430" }, { "label": "upgrade", "value": "3224" }, { "label": "upgradeflo", "value": "3251" }, { "label": "Upsetting", "value": "2221" }, { "label": "Urban", "value": "144" }, { "label": "Urbanbrain", "value": "3292" }, { "label": "UrbanDatan", "value": "1911" }, { "label": "urbanhero", "value": "3273" }, { "label": "UrbanLife", "value": "860" }, { "label": "urbanlove", "value": "3238" }, { "label": "UrbanMilit", "value": "2566" }, { "label": "urbanroman", "value": "3282" }, { "label": "urbanshark", "value": "2295" }, { "label": "urbanstar", "value": "2251" }, { "label": "Urbanyearn", "value": "2909" }, { "label": "Urbanyouth", "value": "1770" }, { "label": "vampire", "value": "1466" }, { "label": "Vampire", "value": "1693" }, { "label": "vampiredri", "value": "2564" }, { "label": "Vampires", "value": "125" }, { "label": "VarietySho", "value": "1684" }, { "label": "VersatileM", "value": "1268" }, { "label": "Vest", "value": "1540" }, { "label": "VictorianE", "value": "890" }, { "label": "Videogame", "value": "3180" }, { "label": "videogames", "value": "3097" }, { "label": "Viewofthec", "value": "2015" }, { "label": "VikaBaka", "value": "2984" }, { "label": "Villager", "value": "1008" }, { "label": "Villain", "value": "465" }, { "label": "Villainess", "value": "713" }, { "label": "Villainess", "value": "1655" }, { "label": "VillainEvi", "value": "1375" }, { "label": "VillainPro", "value": "1676" }, { "label": "Villains", "value": "1584" }, { "label": "VillIain", "value": "1538" }, { "label": "Violence", "value": "3096" }, { "label": "virtualrea", "value": "45" }, { "label": "Vlogging", "value": "878" }, { "label": "VoiceActor", "value": "597" }, { "label": "VoicePack", "value": "1371" }, { "label": "VRMMO", "value": "1004" }, { "label": "Walkinthec", "value": "2338" }, { "label": "Wanderer", "value": "2128" }, { "label": "wanderings", "value": "1997" }, { "label": "WangEr", "value": "2498" }, { "label": "WangJiu", "value": "1885" }, { "label": "WangXiaomi", "value": "2396" }, { "label": "wanttocome", "value": "2544" }, { "label": "wanttoeatg", "value": "2561" }, { "label": "war", "value": "1455" }, { "label": "War", "value": "1531" }, { "label": "Warcraft", "value": "3126" }, { "label": "Warhammer4", "value": "141" }, { "label": "Warlock", "value": "2994" }, { "label": "Warlocks", "value": "121" }, { "label": "warmtime", "value": "2667" }, { "label": "WarofCivil", "value": "2946" }, { "label": "WarRecords", "value": "1046" }, { "label": "Wars", "value": "262" }, { "label": "Warship", "value": "1608" }, { "label": "WarsWeakto", "value": "603" }, { "label": "wastefish", "value": "2487" }, { "label": "Wasteland", "value": "868" }, { "label": "WasteWoodA", "value": "2208" }, { "label": "watermelon", "value": "2207" }, { "label": "watertown", "value": "2652" }, { "label": "WeakProtag", "value": "329" }, { "label": "WeaktoClan", "value": "1378" }, { "label": "WeaktoStro", "value": "273" }, { "label": "Wealth", "value": "1572" }, { "label": "WealthChar", "value": "1638" }, { "label": "Wealthy", "value": "1113" }, { "label": "WealthyCha", "value": "183" }, { "label": "WealthyCha", "value": "1609" }, { "label": "wealthyfam", "value": "3131" }, { "label": "Wearabook", "value": "1648" }, { "label": "WearBook", "value": "1199" }, { "label": "wearingabo", "value": "1761" }, { "label": "WebNovel", "value": "1709" }, { "label": "weektoStro", "value": "1121" }, { "label": "WenGuang", "value": "2602" }, { "label": "WenXuanyu", "value": "2610" }, { "label": "Werebeasts", "value": "689" }, { "label": "Werewolf", "value": "3144" }, { "label": "Werewolves", "value": "1192" }, { "label": "Western", "value": "998" }, { "label": "WesternFan", "value": "1436" }, { "label": "Westernrai", "value": "2155" }, { "label": "What&03", "value": "2067" }, { "label": "WhiteBunSe", "value": "1308" }, { "label": "Whitehorse", "value": "2388" }, { "label": "whitekeybo", "value": "2289" }, { "label": "whiteshirt", "value": "2863" }, { "label": "Wholesome", "value": "3058" }, { "label": "Whoringmak", "value": "2771" }, { "label": "wife-chasi", "value": "3065" }, { "label": "WifeistheD", "value": "2648" }, { "label": "Wilderness", "value": "852" }, { "label": "willowcand", "value": "2486" }, { "label": "windandmap", "value": "2676" }, { "label": "WindSpirit", "value": "1969" }, { "label": "Winningthe", "value": "2332" }, { "label": "Wisdom", "value": "3206" }, { "label": "wishardtow", "value": "1860" }, { "label": "Wishes", "value": "435" }, { "label": "Witch", "value": "3040" }, { "label": "Witches", "value": "511" }, { "label": "witchfan", "value": "2192" }, { "label": "Withbrutal", "value": "974" }, { "label": "witheredpr", "value": "2460" }, { "label": "Wizard", "value": "867" }, { "label": "Wizards", "value": "122" }, { "label": "World-hopp", "value": "1226" }, { "label": "WorldEmpir", "value": "1389" }, { "label": "WorldHoppi", "value": "312" }, { "label": "WorldofWar", "value": "1746" }, { "label": "Worlds", "value": "3151" }, { "label": "WorldTrave", "value": "461" }, { "label": "WorldTree", "value": "296" }, { "label": "WorldWar2", "value": "1532" }, { "label": "WOW", "value": "2934" }, { "label": "writeonlyz", "value": "1875" }, { "label": "Writers", "value": "536" }, { "label": "Wuhutookof", "value": "2474" }, { "label": "Wuxia", "value": "730" }, { "label": "Wuxicheng", "value": "1880" }, { "label": "WW2", "value": "3031" }, { "label": "Xianxia", "value": "355" }, { "label": "XiaomiStar", "value": "2710" }, { "label": "Xiaonianbl", "value": "2582" }, { "label": "XiaonianXu", "value": "2681" }, { "label": "Xiaothreey", "value": "2535" }, { "label": "XiaoxiangP", "value": "2899" }, { "label": "Xiaoxin", "value": "1983" }, { "label": "XieDaoheng", "value": "2577" }, { "label": "Xiuxian", "value": "3243" }, { "label": "XiuXiuXiuX", "value": "1895" }, { "label": "Xuanhuan", "value": "743" }, { "label": "XuebaIII", "value": "2274" }, { "label": "Xuebaisinv", "value": "2314" }, { "label": "Xueqiunder", "value": "2108" }, { "label": "Xufamilyel", "value": "2279" }, { "label": "XuIintheTa", "value": "2509" }, { "label": "Yakult", "value": "2321" }, { "label": "Yamen", "value": "3069" }, { "label": "Yandere", "value": "77" }, { "label": "YangXiaoA", "value": "2106" }, { "label": "Yaoi", "value": "738" }, { "label": "Yaoyue", "value": "2536" }, { "label": "yearaftery", "value": "2885" }, { "label": "yearningfo", "value": "2269" }, { "label": "yearningfo", "value": "2612" }, { "label": "yearningfo", "value": "2805" }, { "label": "Yearningfo", "value": "2235" }, { "label": "Yearningfo", "value": "2402" }, { "label": "Yearningto", "value": "2963" }, { "label": "YeGongzi", "value": "2743" }, { "label": "YeGucheng", "value": "2711" }, { "label": "YellowSpri", "value": "1827" }, { "label": "YeluChengj", "value": "1869" }, { "label": "YeQianqiu", "value": "2825" }, { "label": "YeXiaobai", "value": "2329" }, { "label": "YeYe", "value": "2972" }, { "label": "Ying&03", "value": "2308" }, { "label": "YingXiaofe", "value": "2060" }, { "label": "YinLiisins", "value": "1961" }, { "label": "Yongchuang", "value": "2025" }, { "label": "youaretoow", "value": "1930" }, { "label": "Youkai", "value": "1058" }, { "label": "YoungerBro", "value": "816" }, { "label": "YoungerLov", "value": "787" }, { "label": "YoungerSis", "value": "359" }, { "label": "younglovei", "value": "3091" }, { "label": "YoungMaste", "value": "2739" }, { "label": "YoungMaste", "value": "2821" }, { "label": "Youth", "value": "863" }, { "label": "Yu-Gi-Oh", "value": "1133" }, { "label": "YuboTiandi", "value": "2318" }, { "label": "Yugioh", "value": "1314" }, { "label": "Yunmu", "value": "2271" }, { "label": "YunZhongju", "value": "2901" }, { "label": "Yuri", "value": "152" }, { "label": "YuTsingYi", "value": "2578" }, { "label": "YuXiaoqi", "value": "2176" }, { "label": "YuYuyu", "value": "2754" }, { "label": "z-man", "value": "159" }, { "label": "Zerg", "value": "1126" }, { "label": "Zergs", "value": "1151" }, { "label": "ZhangErgou", "value": "2714" }, { "label": "ZhangFeiin", "value": "2636" }, { "label": "ZhangJuli", "value": "2608" }, { "label": "ZhangTianb", "value": "2379" }, { "label": "zhishen", "value": "2760" }, { "label": "ZhuDabald", "value": "2540" }, { "label": "ZhugeDali&", "value": "2633" }, { "label": "ZhugeIrona", "value": "2204" }, { "label": "Zhugeiscra", "value": "2642" }, { "label": "ZhuZhiyue", "value": "2163" }, { "label": "Zippo", "value": "2773" }, { "label": "ZiXuanXuan", "value": "1940" }, { "label": "Zombie", "value": "885" }, { "label": "zombiefish", "value": "2296" }, { "label": "ZombieGod", "value": "2193" }, { "label": "ZombieQuee", "value": "1613" }, { "label": "Zombies", "value": "111" }, { "label": "ZombieSumo", "value": "2988" }, { "label": "Zoo", "value": "887" }, { "label": "Zuge", "value": "2187" }, { "label": "Zulongstil", "value": "2305" }, { "label": "ZuwuGonggo", "value": "2737" }, { "label": "仕辰", "value": "1914" }, { "label": "家族", "value": "3234" }, { "label": "小封", "value": "2240" }, { "label": "慕阳", "value": "2096" }, { "label": "日常", "value": "3289" }, { "label": "森罗", "value": "2404" }, { "label": "清裁", "value": "2900" }, { "label": "直播", "value": "3268" }, { "label": "社会", "value": "3229" }, { "label": "空间", "value": "3288" }, { "label": "萌图", "value": "2883" }, { "label": "谢邀", "value": "1937" }, { "label": "酣歌", "value": "2220" }, { "label": "铁帅", "value": "2130" }, { "label": "零充", "value": "2965" }, { "label": "饕牛", "value": "1872" }, { "label": "Abandoned", "value": "910" }, { "label": "AbandonedC", "value": "213" }, { "label": "AbilitySte", "value": "166" }, { "label": "AbsentPare", "value": "250" }, { "label": "AbsoluteDu", "value": "824" }, { "label": "AbusiveCha", "value": "196" }, { "label": "Academy", "value": "43" }, { "label": "Accelerate", "value": "163" }, { "label": "Acting", "value": "1" }, { "label": "action", "value": "639" }, { "label": "AdaptedtoA", "value": "144" }, { "label": "AdaptedtoD", "value": "145" }, { "label": "AdaptedtoD", "value": "170" }, { "label": "AdaptedtoG", "value": "225" }, { "label": "AdaptedtoM", "value": "2" }, { "label": "AdaptedtoM", "value": "167" }, { "label": "AdaptedtoM", "value": "249" }, { "label": "AdaptedtoM", "value": "479" }, { "label": "AdaptedtoV", "value": "485" }, { "label": "ADeadBody", "value": "883" }, { "label": "AdoptedChi", "value": "326" }, { "label": "AdoptedPro", "value": "211" }, { "label": "Adultery", "value": "573" }, { "label": "advancedte", "value": "804" }, { "label": "Adventure", "value": "657" }, { "label": "Adventurer", "value": "171" }, { "label": "Affair", "value": "217" }, { "label": "AgeProgres", "value": "208" }, { "label": "AgeRegress", "value": "283" }, { "label": "Aggressive", "value": "440" }, { "label": "AkamegaKil", "value": "703" }, { "label": "Alchemist", "value": "616" }, { "label": "Alchemy", "value": "46" }, { "label": "Aliens", "value": "137" }, { "label": "All-GirlsS", "value": "682" }, { "label": "Alpha", "value": "853" }, { "label": "AlternateW", "value": "205" }, { "label": "Amnesia", "value": "131" }, { "label": "AmoralityP", "value": "711" }, { "label": "AmusementP", "value": "462" }, { "label": "AncientChi", "value": "164" }, { "label": "AncientTim", "value": "193" }, { "label": "Androgynou", "value": "3" }, { "label": "Androids", "value": "408" }, { "label": "Angel", "value": "955" }, { "label": "Angels", "value": "104" }, { "label": "Angst", "value": "617" }, { "label": "AnimalChar", "value": "172" }, { "label": "AnimalRear", "value": "409" }, { "label": "Anime", "value": "952" }, { "label": "Anl", "value": "178" }, { "label": "Anti-Magic", "value": "527" }, { "label": "Anti-socia", "value": "194" }, { "label": "Antihero", "value": "858" }, { "label": "AntiheroPr", "value": "173" }, { "label": "AntiqueSho", "value": "493" }, { "label": "ApartmentL", "value": "327" }, { "label": "ApatheticP", "value": "169" }, { "label": "Apocalypse", "value": "206" }, { "label": "Appearance", "value": "23" }, { "label": "Appearance", "value": "122" }, { "label": "APsychicDe", "value": "885" }, { "label": "Archery", "value": "24" }, { "label": "Aristocrac", "value": "123" }, { "label": "ArmsDealer", "value": "569" }, { "label": "Army", "value": "125" }, { "label": "ArmyBuildi", "value": "105" }, { "label": "ArrangedMa", "value": "126" }, { "label": "ArrogantCh", "value": "4" }, { "label": "ArtifactCr", "value": "140" }, { "label": "Artifacts", "value": "127" }, { "label": "Artificial", "value": "106" }, { "label": "Artists", "value": "492" }, { "label": "ASOIAF", "value": "838" }, { "label": "Assassins", "value": "107" }, { "label": "Astrologer", "value": "419" }, { "label": "Attractive", "value": "795" }, { "label": "Autism", "value": "555" }, { "label": "Automatons", "value": "236" }, { "label": "Avatar&", "value": "788" }, { "label": "Average-lo", "value": "49" }, { "label": "Award-winn", "value": "593" }, { "label": "AwkwardPro", "value": "304" }, { "label": "Baby", "value": "915" }, { "label": "Badboy", "value": "881" }, { "label": "Bands", "value": "565" }, { "label": "Baseball", "value": "585" }, { "label": "BasedonaMo", "value": "770" }, { "label": "BasedonanA", "value": "719" }, { "label": "BasedonaSo", "value": "726" }, { "label": "BasedonaVi", "value": "644" }, { "label": "BasedonaVi", "value": "721" }, { "label": "Basketball", "value": "587" }, { "label": "BattleAcad", "value": "146" }, { "label": "BattleComp", "value": "128" }, { "label": "BDSM", "value": "508" }, { "label": "BeastCompa", "value": "27" }, { "label": "Beastkin", "value": "179" }, { "label": "Beasts", "value": "29" }, { "label": "Beasttamin", "value": "859" }, { "label": "Beatthefem", "value": "872" }, { "label": "Beatthemal", "value": "871" }, { "label": "BeautifulC", "value": "669" }, { "label": "BeautifulF", "value": "5" }, { "label": "Beauty", "value": "898" }, { "label": "Betrayal", "value": "6" }, { "label": "BickeringC", "value": "218" }, { "label": "Bigshot", "value": "951" }, { "label": "Billionair", "value": "975" }, { "label": "Biochip", "value": "471" }, { "label": "BisexualPr", "value": "480" }, { "label": "Bl", "value": "867" }, { "label": "BlackBelly", "value": "129" }, { "label": "Blackmail", "value": "320" }, { "label": "Blacksmith", "value": "192" }, { "label": "Bleach", "value": "802" }, { "label": "BlindProta", "value": "358" }, { "label": "Bloodlines", "value": "32" }, { "label": "BloodManip", "value": "441" }, { "label": "Bloodpumpi", "value": "860" }, { "label": "Body-doubl", "value": "533" }, { "label": "Bodyguards", "value": "431" }, { "label": "BodySwap", "value": "628" }, { "label": "BodyTemper", "value": "34" }, { "label": "Books", "value": "54" }, { "label": "Bookworm", "value": "56" }, { "label": "Boss-Subor", "value": "329" }, { "label": "Brainwashi", "value": "528" }, { "label": "BreastFeti", "value": "489" }, { "label": "BrokenEnga", "value": "120" }, { "label": "BrotherCom", "value": "311" }, { "label": "Brotherhoo", "value": "293" }, { "label": "Buddhism", "value": "209" }, { "label": "Bullying", "value": "141" }, { "label": "BusinessMa", "value": "121" }, { "label": "Businessme", "value": "376" }, { "label": "Businesswo", "value": "901" }, { "label": "Butlers", "value": "421" }, { "label": "CalmProtag", "value": "36" }, { "label": "Campus", "value": "927" }, { "label": "Cannibalis", "value": "294" }, { "label": "CardGames", "value": "478" }, { "label": "CarefreePr", "value": "219" }, { "label": "CaringProt", "value": "7" }, { "label": "CatchaGhos", "value": "893" }, { "label": "CautiousPr", "value": "157" }, { "label": "Celebritie", "value": "8" }, { "label": "CEO", "value": "623" }, { "label": "ChaptersRe", "value": "687" }, { "label": "CharacterD", "value": "742" }, { "label": "CharacterG", "value": "158" }, { "label": "Charismati", "value": "58" }, { "label": "Charlotte(", "value": "704" }, { "label": "CharmingPr", "value": "59" }, { "label": "Chatgroup", "value": "608" }, { "label": "ChatRooms", "value": "383" }, { "label": "Cheat", "value": "771" }, { "label": "Cheats", "value": "60" }, { "label": "Chefs", "value": "359" }, { "label": "ChildAbuse", "value": "331" }, { "label": "Childcare", "value": "9" }, { "label": "ChildhoodF", "value": "240" }, { "label": "ChildhoodL", "value": "10" }, { "label": "ChildhoodP", "value": "318" }, { "label": "Childhoods", "value": "870" }, { "label": "ChildishPr", "value": "515" }, { "label": "ChildProta", "value": "210" }, { "label": "Chinese", "value": "808" }, { "label": "ChineseNov", "value": "807" }, { "label": "Chivalryof", "value": "823" }, { "label": "Chuunibyou", "value": "474" }, { "label": "ClanBuildi", "value": "159" }, { "label": "ClassroomO", "value": "969" }, { "label": "CleverProt", "value": "11" }, { "label": "ClingyLove", "value": "180" }, { "label": "Clones", "value": "61" }, { "label": "Clubs", "value": "576" }, { "label": "ClumsyLove", "value": "499" }, { "label": "Cnnilingus", "value": "509" }, { "label": "Co-Workers", "value": "541" }, { "label": "Cohabitati", "value": "404" }, { "label": "ColdLoveIn", "value": "165" }, { "label": "ColdProtag", "value": "38" }, { "label": "CollegeorU", "value": "224" }, { "label": "CollegeUni", "value": "536" }, { "label": "Coma", "value": "544" }, { "label": "ComedicUnd", "value": "264" }, { "label": "Comedy", "value": "584" }, { "label": "ComingofAg", "value": "464" }, { "label": "ComplexFam", "value": "12" }, { "label": "Conditiona", "value": "490" }, { "label": "ConfidentP", "value": "40" }, { "label": "Confinemen", "value": "684" }, { "label": "Conflictin", "value": "458" }, { "label": "Conquer", "value": "863" }, { "label": "Contractma", "value": "930" }, { "label": "Contracts", "value": "312" }, { "label": "Cooking", "value": "245" }, { "label": "Coolguy", "value": "966" }, { "label": "Corruption", "value": "138" }, { "label": "CosmicWars", "value": "422" }, { "label": "Counteratt", "value": "968" }, { "label": "CoupleGrow", "value": "214" }, { "label": "CourtOffic", "value": "465" }, { "label": "Cousins", "value": "181" }, { "label": "CowardlyPr", "value": "174" }, { "label": "Crafting", "value": "108" }, { "label": "Crime", "value": "220" }, { "label": "Criminals", "value": "517" }, { "label": "Cross-dres", "value": "13" }, { "label": "Crossdress", "value": "933" }, { "label": "Crossover", "value": "366" }, { "label": "CruelChara", "value": "284" }, { "label": "Crush", "value": "919" }, { "label": "Cryostasis", "value": "553" }, { "label": "Cultivatio", "value": "42" }, { "label": "CunningPro", "value": "45" }, { "label": "CuriousPro", "value": "720" }, { "label": "Curses", "value": "328" }, { "label": "CuteChildr", "value": "14" }, { "label": "CuteProtag", "value": "248" }, { "label": "CuteStory", "value": "496" }, { "label": "Cyberpunk", "value": "792" }, { "label": "Dancers", "value": "566" }, { "label": "DanMachi", "value": "789" }, { "label": "DaoCompani", "value": "168" }, { "label": "DaoCompreh", "value": "47" }, { "label": "Daoism", "value": "212" }, { "label": "Dark", "value": "317" }, { "label": "DeadProtag", "value": "698" }, { "label": "Death", "value": "406" }, { "label": "DeathofLov", "value": "139" }, { "label": "Debts", "value": "562" }, { "label": "Delinquent", "value": "675" }, { "label": "Delusions", "value": "443" }, { "label": "Demi-Human", "value": "226" }, { "label": "DemonicCul", "value": "195" }, { "label": "DemonLord", "value": "147" }, { "label": "Demons", "value": "65" }, { "label": "DenseProta", "value": "67" }, { "label": "Depictions", "value": "130" }, { "label": "Depression", "value": "306" }, { "label": "Destiny", "value": "305" }, { "label": "Detailed", "value": "900" }, { "label": "Detective", "value": "970" }, { "label": "Detectives", "value": "221" }, { "label": "Determined", "value": "109" }, { "label": "Devil", "value": "934" }, { "label": "Devils", "value": "613" }, { "label": "DevotedLov", "value": "70" }, { "label": "DifferentS", "value": "466" }, { "label": "Diplomacy", "value": "728" }, { "label": "Disabiliti", "value": "633" }, { "label": "Discrimina", "value": "132" }, { "label": "Disfigurem", "value": "420" }, { "label": "DishonestP", "value": "643" }, { "label": "Distrustfu", "value": "653" }, { "label": "Divination", "value": "384" }, { "label": "Divination", "value": "685" }, { "label": "DivineProt", "value": "399" }, { "label": "Divorce", "value": "215" }, { "label": "Doctor", "value": "902" }, { "label": "Doctors", "value": "72" }, { "label": "DollsorPup", "value": "579" }, { "label": "DomesticAf", "value": "246" }, { "label": "doppelgang", "value": "625" }, { "label": "DotingLove", "value": "15" }, { "label": "DotingOlde", "value": "227" }, { "label": "DotingPare", "value": "360" }, { "label": "DoulouDalu", "value": "700" }, { "label": "DouluoDalu", "value": "787" }, { "label": "Dragon", "value": "610" }, { "label": "DragonBall", "value": "791" }, { "label": "DragonRide", "value": "668" }, { "label": "Dragons", "value": "48" }, { "label": "DragonSlay", "value": "361" }, { "label": "Dramatic", "value": "926" }, { "label": "Dreams", "value": "477" }, { "label": "Drugs", "value": "390" }, { "label": "Druids", "value": "395" }, { "label": "DungeonMas", "value": "502" }, { "label": "Dungeons", "value": "110" }, { "label": "Dwarfs", "value": "111" }, { "label": "Dwarves", "value": "740" }, { "label": "Dystopia", "value": "564" }, { "label": "e-Sports", "value": "271" }, { "label": "EarlyRoman", "value": "133" }, { "label": "EarthInvas", "value": "423" }, { "label": "EasternSet", "value": "597" }, { "label": "EasyGoingL", "value": "400" }, { "label": "Ecchi", "value": "956" }, { "label": "Economics", "value": "112" }, { "label": "Egoist", "value": "957" }, { "label": "EideticMem", "value": "50" }, { "label": "ElderlyPro", "value": "649" }, { "label": "Elementali", "value": "622" }, { "label": "ElementalM", "value": "160" }, { "label": "Elves", "value": "113" }, { "label": "Emotionall", "value": "321" }, { "label": "Empires", "value": "182" }, { "label": "EnemiesBec", "value": "175" }, { "label": "EnemiesBec", "value": "134" }, { "label": "Enemiestol", "value": "875" }, { "label": "Engagement", "value": "307" }, { "label": "Engineer", "value": "135" }, { "label": "Enlightenm", "value": "75" }, { "label": "Entertainm", "value": "830" }, { "label": "Episodic", "value": "222" }, { "label": "Esper", "value": "976" }, { "label": "Eunuch", "value": "753" }, { "label": "EuropeanAm", "value": "261" }, { "label": "EvilGods", "value": "232" }, { "label": "EvilOrgani", "value": "207" }, { "label": "EvilProtag", "value": "411" }, { "label": "EvilReligi", "value": "161" }, { "label": "EvilSpirit", "value": "892" }, { "label": "Evolution", "value": "265" }, { "label": "Ex", "value": "908" }, { "label": "Exhibition", "value": "511" }, { "label": "Exorcism", "value": "646" }, { "label": "EyePowers", "value": "51" }, { "label": "faceslappi", "value": "632" }, { "label": "Fairies", "value": "114" }, { "label": "FairyTail", "value": "674" }, { "label": "FallenAnge", "value": "618" }, { "label": "FallenNobi", "value": "619" }, { "label": "FamilialLo", "value": "347" }, { "label": "Familiars", "value": "556" }, { "label": "Family", "value": "354" }, { "label": "FamilyBusi", "value": "437" }, { "label": "FamilyConf", "value": "335" }, { "label": "FamousPare", "value": "438" }, { "label": "FamousProt", "value": "176" }, { "label": "Fan-fictio", "value": "755" }, { "label": "Fanfiction", "value": "282" }, { "label": "Fantasy", "value": "781" }, { "label": "FantasyCre", "value": "115" }, { "label": "FantasyMag", "value": "748" }, { "label": "Fantasyrom", "value": "939" }, { "label": "FantasyWor", "value": "136" }, { "label": "Farming", "value": "247" }, { "label": "FastCultiv", "value": "78" }, { "label": "FastLearne", "value": "80" }, { "label": "Fastpace", "value": "967" }, { "label": "Fastpaced", "value": "938" }, { "label": "Fatedlove", "value": "888" }, { "label": "FatedLover", "value": "116" }, { "label": "Fatestayni", "value": "834" }, { "label": "FatProtago", "value": "567" }, { "label": "FattoFit", "value": "488" }, { "label": "FearlessPr", "value": "497" }, { "label": "Fellatio", "value": "723" }, { "label": "FemaleLead", "value": "575" }, { "label": "FemaleMast", "value": "510" }, { "label": "FemaleProt", "value": "16" }, { "label": "FemaletoMa", "value": "727" }, { "label": "FengShui", "value": "762" }, { "label": "Fiction", "value": "974" }, { "label": "Filipino", "value": "813" }, { "label": "FilipinoNo", "value": "812" }, { "label": "Firearms", "value": "17" }, { "label": "First-time", "value": "183" }, { "label": "First-time", "value": "765" }, { "label": "FirstLove", "value": "279" }, { "label": "Flashbacks", "value": "459" }, { "label": "FleetBattl", "value": "424" }, { "label": "Fllatio", "value": "184" }, { "label": "Folklore", "value": "460" }, { "label": "FoodShopke", "value": "592" }, { "label": "Forbiddenl", "value": "899" }, { "label": "Forcedinto", "value": "197" }, { "label": "ForcedMarr", "value": "198" }, { "label": "FormerHero", "value": "627" }, { "label": "FoxSpirits", "value": "531" }, { "label": "FriendsBec", "value": "407" }, { "label": "Friendship", "value": "177" }, { "label": "Friendstol", "value": "903" }, { "label": "Futanari", "value": "512" }, { "label": "Future", "value": "868" }, { "label": "Futuristic", "value": "308" }, { "label": "Galge", "value": "741" }, { "label": "Gambling", "value": "330" }, { "label": "Game", "value": "769" }, { "label": "GameElemen", "value": "117" }, { "label": "GameLit", "value": "844" }, { "label": "GameofThro", "value": "837" }, { "label": "GameRankin", "value": "118" }, { "label": "Gamers", "value": "272" }, { "label": "Gangs", "value": "142" }, { "label": "GatetoAnot", "value": "337" }, { "label": "GenderBend", "value": "634" }, { "label": "Genderless", "value": "699" }, { "label": "Generals", "value": "369" }, { "label": "GeneticMod", "value": "295" }, { "label": "Genius", "value": "862" }, { "label": "GeniusProt", "value": "143" }, { "label": "Gettingbac", "value": "907" }, { "label": "GhostEvent", "value": "886" }, { "label": "Ghosts", "value": "367" }, { "label": "Girl&03", "value": "746" }, { "label": "Gladiators", "value": "534" }, { "label": "Glasses-we", "value": "778" }, { "label": "Goblins", "value": "346" }, { "label": "God-humanR", "value": "185" }, { "label": "Goddesses", "value": "336" }, { "label": "GodlyPower", "value": "162" }, { "label": "GodProtago", "value": "287" }, { "label": "Gods", "value": "52" }, { "label": "Golems", "value": "270" }, { "label": "Gore", "value": "237" }, { "label": "GraveKeepe", "value": "647" }, { "label": "Grimdark", "value": "827" }, { "label": "Grinding", "value": "377" }, { "label": "Guilds", "value": "119" }, { "label": "Gunfighter", "value": "482" }, { "label": "Hackers", "value": "216" }, { "label": "Half-human", "value": "235" }, { "label": "Handjob", "value": "545" }, { "label": "HandsomeMa", "value": "18" }, { "label": "Hard-Worki", "value": "53" }, { "label": "HardSci-fi", "value": "839" }, { "label": "Harem", "value": "650" }, { "label": "Harem-seek", "value": "186" }, { "label": "HarryPotte", "value": "715" }, { "label": "HarshTrain", "value": "309" }, { "label": "HatedProta", "value": "199" }, { "label": "Healers", "value": "500" }, { "label": "Healing", "value": "760" }, { "label": "Heartthrob", "value": "911" }, { "label": "Heartwarmi", "value": "362" }, { "label": "Heaven", "value": "620" }, { "label": "HeavenlyTr", "value": "148" }, { "label": "Hell", "value": "503" }, { "label": "HelpfulPro", "value": "453" }, { "label": "Hentai", "value": "532" }, { "label": "Herbalist", "value": "442" }, { "label": "Heroes", "value": "288" }, { "label": "Heterochro", "value": "55" }, { "label": "HiddenAbil", "value": "333" }, { "label": "HiddenGem", "value": "538" }, { "label": "Hiddenmarr", "value": "943" }, { "label": "HidingTrue", "value": "57" }, { "label": "HidingTrue", "value": "251" }, { "label": "HighFantas", "value": "821" }, { "label": "Highiq", "value": "920" }, { "label": "HighSchool", "value": "702" }, { "label": "Historical", "value": "874" }, { "label": "history", "value": "724" }, { "label": "Hndjob", "value": "187" }, { "label": "Hokage", "value": "756" }, { "label": "HonestProt", "value": "385" }, { "label": "Horror", "value": "971" }, { "label": "Hospital", "value": "535" }, { "label": "Hot-bloode", "value": "413" }, { "label": "Human-Nonh", "value": "391" }, { "label": "HumanExper", "value": "296" }, { "label": "HumanoidPr", "value": "289" }, { "label": "HumanWeapo", "value": "310" }, { "label": "Hunter×Hu", "value": "767" }, { "label": "Hunters", "value": "266" }, { "label": "Hypnotism", "value": "392" }, { "label": "IdentityCr", "value": "831" }, { "label": "Immortal", "value": "851" }, { "label": "Immortals", "value": "252" }, { "label": "ImperialHa", "value": "374" }, { "label": "Imposter", "value": "854" }, { "label": "Incest", "value": "355" }, { "label": "Incubus", "value": "663" }, { "label": "Indonesia", "value": "819" }, { "label": "IndonesiaN", "value": "818" }, { "label": "Industrial", "value": "468" }, { "label": "Inferiorit", "value": "447" }, { "label": "Inheritanc", "value": "149" }, { "label": "Inscriptio", "value": "150" }, { "label": "Insects", "value": "338" }, { "label": "Interconne", "value": "290" }, { "label": "Interdimen", "value": "425" }, { "label": "Interstell", "value": "963" }, { "label": "Introverte", "value": "291" }, { "label": "Investigat", "value": "223" }, { "label": "Invincible", "value": "954" }, { "label": "Invisibili", "value": "641" }, { "label": "Isekai", "value": "833" }, { "label": "IsItWrongt", "value": "825" }, { "label": "JackofAllT", "value": "82" }, { "label": "Japanese", "value": "806" }, { "label": "Jealousy", "value": "124" }, { "label": "Kakashi", "value": "757" }, { "label": "Karma", "value": "614" }, { "label": "Kendo", "value": "604" }, { "label": "Kidnapping", "value": "285" }, { "label": "Killer", "value": "856" }, { "label": "KindLoveIn", "value": "348" }, { "label": "KingdomBui", "value": "486" }, { "label": "Kingdoms", "value": "253" }, { "label": "Knights", "value": "188" }, { "label": "Korean", "value": "810" }, { "label": "KoreanNove", "value": "811" }, { "label": "Kuudere", "value": "501" }, { "label": "LackofComm", "value": "439" }, { "label": "LateRomanc", "value": "19" }, { "label": "LazyProtag", "value": "254" }, { "label": "Leadership", "value": "238" }, { "label": "Legends", "value": "151" }, { "label": "leonine", "value": "695" }, { "label": "LevelSyste", "value": "239" }, { "label": "Levelup", "value": "847" }, { "label": "LGBTQA", "value": "601" }, { "label": "Library", "value": "85" }, { "label": "LightNovel", "value": "809" }, { "label": "LimitedLif", "value": "86" }, { "label": "LitRPG", "value": "539" }, { "label": "Littlebun", "value": "931" }, { "label": "LittleRoma", "value": "581" }, { "label": "LivingAlon", "value": "733" }, { "label": "Loli", "value": "189" }, { "label": "Lolicon", "value": "286" }, { "label": "Loneliness", "value": "694" }, { "label": "LonerProta", "value": "426" }, { "label": "LongSepara", "value": "190" }, { "label": "LostCivili", "value": "455" }, { "label": "Lottery", "value": "563" }, { "label": "Loveafterm", "value": "962" }, { "label": "LoveatFirs", "value": "461" }, { "label": "LoveIntere", "value": "20" }, { "label": "LoveRivals", "value": "676" }, { "label": "LoversReun", "value": "350" }, { "label": "Lovetriang", "value": "905" }, { "label": "LoveTriang", "value": "349" }, { "label": "Low-keyPro", "value": "313" }, { "label": "LowFantasy", "value": "796" }, { "label": "LoyalSubor", "value": "241" }, { "label": "LuckyProta", "value": "21" }, { "label": "Mafia", "value": "877" }, { "label": "Mag", "value": "953" }, { "label": "Mage", "value": "631" }, { "label": "Magic", "value": "292" }, { "label": "MagicAcade", "value": "590" }, { "label": "MagicalGir", "value": "543" }, { "label": "MagicalSpa", "value": "228" }, { "label": "MagicalTec", "value": "273" }, { "label": "MagicBeast", "value": "339" }, { "label": "MagicForma", "value": "62" }, { "label": "Maids", "value": "255" }, { "label": "Malaysian", "value": "817" }, { "label": "MalaysianN", "value": "816" }, { "label": "MaleLead", "value": "797" }, { "label": "MaleProtag", "value": "63" }, { "label": "MaletoFema", "value": "635" }, { "label": "MaleYander", "value": "401" }, { "label": "Management", "value": "487" }, { "label": "Manipulati", "value": "87" }, { "label": "ManlyGayCo", "value": "754" }, { "label": "Marriage", "value": "191" }, { "label": "Marriageof", "value": "718" }, { "label": "Martialart", "value": "549" }, { "label": "MartialSpi", "value": "414" }, { "label": "Marvel", "value": "651" }, { "label": "Marysue", "value": "921" }, { "label": "Masochisti", "value": "523" }, { "label": "Massacre", "value": "790" }, { "label": "Master-Dis", "value": "88" }, { "label": "Master-Ser", "value": "89" }, { "label": "Masturbati", "value": "671" }, { "label": "Mature", "value": "928" }, { "label": "MatureProt", "value": "256" }, { "label": "Mecha", "value": "394" }, { "label": "MedicalKno", "value": "351" }, { "label": "Medieval", "value": "580" }, { "label": "Mercenarie", "value": "314" }, { "label": "Merchants", "value": "557" }, { "label": "Military", "value": "257" }, { "label": "MindContro", "value": "577" }, { "label": "Misunderst", "value": "22" }, { "label": "MMORPG", "value": "454" }, { "label": "MobProtago", "value": "734" }, { "label": "Models", "value": "280" }, { "label": "Modern", "value": "909" }, { "label": "ModernDay", "value": "25" }, { "label": "ModernFant", "value": "688" }, { "label": "ModernKnow", "value": "274" }, { "label": "ModernLife", "value": "972" }, { "label": "ModernWorl", "value": "686" }, { "label": "MoneyGrubb", "value": "90" }, { "label": "Monster", "value": "960" }, { "label": "MonsterGir", "value": "664" }, { "label": "Monsters", "value": "64" }, { "label": "MonsterSoc", "value": "739" }, { "label": "MonsterTam", "value": "267" }, { "label": "Movies", "value": "26" }, { "label": "Mpreg", "value": "546" }, { "label": "Msturbatio", "value": "677" }, { "label": "MultipleId", "value": "345" }, { "label": "Multiplele", "value": "942" }, { "label": "MultipleLe", "value": "798" }, { "label": "MultiplePe", "value": "801" }, { "label": "MultiplePO", "value": "258" }, { "label": "MultiplePr", "value": "655" }, { "label": "MultipleRe", "value": "66" }, { "label": "MultipleRe", "value": "463" }, { "label": "MultipleTi", "value": "761" }, { "label": "MultipleTr", "value": "558" }, { "label": "Multiverse", "value": "681" }, { "label": "Murders", "value": "636" }, { "label": "Music", "value": "332" }, { "label": "MutatedCre", "value": "268" }, { "label": "Mutation", "value": "945" }, { "label": "Mutations", "value": "297" }, { "label": "MuteCharac", "value": "568" }, { "label": "MyHeroAcad", "value": "751" }, { "label": "Mysterious", "value": "298" }, { "label": "Mysterious", "value": "526" }, { "label": "Mysterious", "value": "152" }, { "label": "Mysterious", "value": "882" }, { "label": "Mystery", "value": "848" }, { "label": "MysterySol", "value": "578" }, { "label": "Myth", "value": "924" }, { "label": "MythicalBe", "value": "356" }, { "label": "Mythology", "value": "469" }, { "label": "Mythos", "value": "799" }, { "label": "NA", "value": "814" }, { "label": "NaiveProta", "value": "322" }, { "label": "Narcissist", "value": "432" }, { "label": "Naruto", "value": "652" }, { "label": "Nationalis", "value": "262" }, { "label": "Near-Death", "value": "28" }, { "label": "Necromance", "value": "315" }, { "label": "Neet", "value": "758" }, { "label": "Netorare", "value": "707" }, { "label": "Netori", "value": "498" }, { "label": "Ninjas", "value": "521" }, { "label": "No-Harem", "value": "935" }, { "label": "Nobles", "value": "259" }, { "label": "NoCheats", "value": "845" }, { "label": "Non-Humanl", "value": "822" }, { "label": "Non-humano", "value": "427" }, { "label": "Non-humanP", "value": "665" }, { "label": "Nonhuman", "value": "904" }, { "label": "NoRomance", "value": "642" }, { "label": "NotHarem", "value": "599" }, { "label": "NotYaoi", "value": "691" }, { "label": "NPC", "value": "842" }, { "label": "Nudity", "value": "472" }, { "label": "Nurses", "value": "766" }, { "label": "ObsessiveL", "value": "494" }, { "label": "OfficeRoma", "value": "648" }, { "label": "OlderLoveI", "value": "396" }, { "label": "Omegaverse", "value": "918" }, { "label": "Onenightst", "value": "917" }, { "label": "OnePiece", "value": "785" }, { "label": "Orcs", "value": "363" }, { "label": "ordinary", "value": "747" }, { "label": "OrganizedC", "value": "380" }, { "label": "OriginalON", "value": "793" }, { "label": "Orphans", "value": "397" }, { "label": "OtomeGame", "value": "735" }, { "label": "Outcasts", "value": "583" }, { "label": "OuterSpace", "value": "378" }, { "label": "Overlord", "value": "743" }, { "label": "Overpowere", "value": "846" }, { "label": "Overpowere", "value": "91" }, { "label": "Overpowere", "value": "961" }, { "label": "Overprotec", "value": "729" }, { "label": "PacifistPr", "value": "744" }, { "label": "Paizuri", "value": "670" }, { "label": "ParallelWo", "value": "507" }, { "label": "Parasites", "value": "629" }, { "label": "ParentComp", "value": "393" }, { "label": "Parody", "value": "386" }, { "label": "PastPlaysa", "value": "200" }, { "label": "PastTrauma", "value": "201" }, { "label": "Persistent", "value": "749" }, { "label": "Personalit", "value": "68" }, { "label": "PervertedP", "value": "448" }, { "label": "Pets", "value": "69" }, { "label": "Pharmacist", "value": "574" }, { "label": "Philosophi", "value": "456" }, { "label": "Phoenixes", "value": "153" }, { "label": "PillBasedC", "value": "415" }, { "label": "PillConcoc", "value": "92" }, { "label": "Pilots", "value": "780" }, { "label": "Pirates", "value": "547" }, { "label": "Planets", "value": "607" }, { "label": "Playboys", "value": "630" }, { "label": "PlayfulPro", "value": "701" }, { "label": "Poisons", "value": "93" }, { "label": "Pokemon", "value": "779" }, { "label": "Police", "value": "518" }, { "label": "Politics", "value": "242" }, { "label": "Polyandry", "value": "519" }, { "label": "Polygamy", "value": "71" }, { "label": "PoorProtag", "value": "476" }, { "label": "PoortoRich", "value": "229" }, { "label": "Popular", "value": "894" }, { "label": "PopularLov", "value": "30" }, { "label": "PortalFant", "value": "836" }, { "label": "Positive", "value": "948" }, { "label": "Possession", "value": "357" }, { "label": "Possessive", "value": "31" }, { "label": "Possessive", "value": "850" }, { "label": "Post-apoca", "value": "299" }, { "label": "PowerCoupl", "value": "33" }, { "label": "Powerfulco", "value": "852" }, { "label": "PowerStrug", "value": "370" }, { "label": "PragmaticP", "value": "660" }, { "label": "Precogniti", "value": "710" }, { "label": "Pregnancy", "value": "35" }, { "label": "PrettyGirl", "value": "895" }, { "label": "PreviousLi", "value": "467" }, { "label": "PreviousLi", "value": "529" }, { "label": "Priestesse", "value": "717" }, { "label": "Priests", "value": "654" }, { "label": "Princess", "value": "879" }, { "label": "Prison", "value": "444" }, { "label": "ProactiveP", "value": "316" }, { "label": "Programmer", "value": "667" }, { "label": "Progressio", "value": "800" }, { "label": "Prophecies", "value": "572" }, { "label": "Protagonis", "value": "705" }, { "label": "Protagonis", "value": "94" }, { "label": "Protagonis", "value": "381" }, { "label": "Protagonis", "value": "403" }, { "label": "Protagonis", "value": "737" }, { "label": "PsychicPow", "value": "260" }, { "label": "Psychologi", "value": "713" }, { "label": "Psychopath", "value": "561" }, { "label": "QuirkyChar", "value": "387" }, { "label": "R-15", "value": "559" }, { "label": "R-18", "value": "417" }, { "label": "R18", "value": "855" }, { "label": "RaceChange", "value": "73" }, { "label": "Races", "value": "841" }, { "label": "Racism", "value": "379" }, { "label": "Raids", "value": "436" }, { "label": "RankSystem", "value": "595" }, { "label": "Rape", "value": "530" }, { "label": "Rarebloodl", "value": "864" }, { "label": "Rebellion", "value": "750" }, { "label": "Rebirth", "value": "491" }, { "label": "Reincarnat", "value": "74" }, { "label": "Reincarnat", "value": "95" }, { "label": "Reincarnat", "value": "428" }, { "label": "Reincarnat", "value": "605" }, { "label": "Reincarnat", "value": "689" }, { "label": "Reincarnat", "value": "722" }, { "label": "Religions", "value": "398" }, { "label": "ResolutePr", "value": "697" }, { "label": "Restaurant", "value": "364" }, { "label": "Resurrecti", "value": "552" }, { "label": "Returningf", "value": "412" }, { "label": "Revenge", "value": "37" }, { "label": "ReverseHar", "value": "520" }, { "label": "ReverseRap", "value": "690" }, { "label": "ReverseRpe", "value": "483" }, { "label": "Richfamily", "value": "889" }, { "label": "RichProtag", "value": "803" }, { "label": "Righteous", "value": "947" }, { "label": "RighteousP", "value": "540" }, { "label": "Romance", "value": "638" }, { "label": "RomanticSu", "value": "154" }, { "label": "Royalfamil", "value": "873" }, { "label": "Royalty", "value": "243" }, { "label": "Rpe", "value": "203" }, { "label": "RpeVictimB", "value": "202" }, { "label": "RuthlessPr", "value": "76" }, { "label": "RWBY", "value": "829" }, { "label": "SadisticCh", "value": "692" }, { "label": "Saints", "value": "481" }, { "label": "Samurai", "value": "683" }, { "label": "Satire", "value": "835" }, { "label": "SaveProtag", "value": "772" }, { "label": "Saves", "value": "300" }, { "label": "Scary", "value": "937" }, { "label": "SchemesAnd", "value": "244" }, { "label": "Sci-Fantas", "value": "606" }, { "label": "Sci-fi", "value": "679" }, { "label": "sciencefic", "value": "714" }, { "label": "Scientists", "value": "388" }, { "label": "SealedPowe", "value": "155" }, { "label": "SecondChan", "value": "281" }, { "label": "Secretary", "value": "932" }, { "label": "SecretIden", "value": "96" }, { "label": "Secretive", "value": "890" }, { "label": "SecretiveP", "value": "708" }, { "label": "SecretOrga", "value": "548" }, { "label": "SecretRela", "value": "658" }, { "label": "Secrets", "value": "319" }, { "label": "SectDevelo", "value": "475" }, { "label": "Sects", "value": "410" }, { "label": "Seduction", "value": "672" }, { "label": "Seductive", "value": "949" }, { "label": "SeeingThin", "value": "776" }, { "label": "Sekai", "value": "958" }, { "label": "SelfishPro", "value": "470" }, { "label": "SelflessPr", "value": "738" }, { "label": "SentientOb", "value": "353" }, { "label": "SerialKill", "value": "786" }, { "label": "Serious", "value": "936" }, { "label": "SevenDeadl", "value": "416" }, { "label": "SexualAbus", "value": "730" }, { "label": "SexualCult", "value": "230" }, { "label": "ShamelessP", "value": "97" }, { "label": "Shapeshift", "value": "944" }, { "label": "Shapeshift", "value": "525" }, { "label": "SharingABo", "value": "783" }, { "label": "Sharp-tong", "value": "457" }, { "label": "Shoujo-AiS", "value": "661" }, { "label": "Shounen-Ai", "value": "596" }, { "label": "Showbiz", "value": "39" }, { "label": "ShyCharact", "value": "98" }, { "label": "Sibling&am", "value": "774" }, { "label": "Siblings", "value": "505" }, { "label": "SiblingsNo", "value": "340" }, { "label": "SicklyChar", "value": "712" }, { "label": "Signin", "value": "977" }, { "label": "Singers", "value": "832" }, { "label": "Singlefema", "value": "946" }, { "label": "SinglePare", "value": "365" }, { "label": "SisterComp", "value": "659" }, { "label": "SkillAssim", "value": "371" }, { "label": "SkillBooks", "value": "434" }, { "label": "SkillCreat", "value": "352" }, { "label": "Skyrim", "value": "554" }, { "label": "Slaves", "value": "678" }, { "label": "Sleeping", "value": "275" }, { "label": "SliceofLif", "value": "621" }, { "label": "slow-roman", "value": "626" }, { "label": "SlowCultiv", "value": "624" }, { "label": "SlowGrowth", "value": "341" }, { "label": "SlowRomanc", "value": "231" }, { "label": "SmartCoupl", "value": "41" }, { "label": "Smartprota", "value": "876" }, { "label": "Smut", "value": "516" }, { "label": "SoftSci-fi", "value": "840" }, { "label": "Soldiers", "value": "449" }, { "label": "SoulPower", "value": "452" }, { "label": "Souls", "value": "99" }, { "label": "SoundMagic", "value": "591" }, { "label": "Space", "value": "716" }, { "label": "Spaceship", "value": "600" }, { "label": "SpatialMan", "value": "233" }, { "label": "SpearWield", "value": "524" }, { "label": "SpecialAbi", "value": "269" }, { "label": "Spies", "value": "731" }, { "label": "SpiritAdvi", "value": "484" }, { "label": "Spirits", "value": "372" }, { "label": "SpiritUser", "value": "645" }, { "label": "Sports", "value": "586" }, { "label": "SportsBask", "value": "588" }, { "label": "Stepmom", "value": "912" }, { "label": "StockholmS", "value": "495" }, { "label": "StoreOwner", "value": "276" }, { "label": "StrategicB", "value": "373" }, { "label": "Strategist", "value": "435" }, { "label": "Strategy", "value": "843" }, { "label": "Strength-b", "value": "301" }, { "label": "Strongfema", "value": "950" }, { "label": "Strongfl", "value": "878" }, { "label": "StrongLove", "value": "156" }, { "label": "StrongtoSt", "value": "450" }, { "label": "StubbornPr", "value": "736" }, { "label": "Student-Te", "value": "513" }, { "label": "Studenttea", "value": "940" }, { "label": "Succubus", "value": "673" }, { "label": "SuddenStre", "value": "77" }, { "label": "SuddenWeal", "value": "342" }, { "label": "Suicides", "value": "656" }, { "label": "SummonedHe", "value": "560" }, { "label": "SummoningM", "value": "343" }, { "label": "Summons", "value": "913" }, { "label": "SuperAbili", "value": "891" }, { "label": "SuperHeroe", "value": "725" }, { "label": "Supernatur", "value": "964" }, { "label": "Superpower", "value": "782" }, { "label": "Superstar", "value": "922" }, { "label": "Survival", "value": "302" }, { "label": "SurvivalGa", "value": "368" }, { "label": "Sweet", "value": "916" }, { "label": "Sweetlove", "value": "865" }, { "label": "SwordAndMa", "value": "344" }, { "label": "SwordWield", "value": "100" }, { "label": "SxFriends", "value": "777" }, { "label": "SxualAbuse", "value": "204" }, { "label": "System", "value": "537" }, { "label": "SystemAdmi", "value": "277" }, { "label": "Talesof D", "value": "752" }, { "label": "Teachers", "value": "101" }, { "label": "Teamwork", "value": "542" }, { "label": "Technologi", "value": "429" }, { "label": "Teen", "value": "857" }, { "label": "Tentacles", "value": "666" }, { "label": "Terrori", "value": "884" }, { "label": "ThaiNovel", "value": "815" }, { "label": "TheAsteris", "value": "826" }, { "label": "TheDevil", "value": "897" }, { "label": "TheGamer", "value": "828" }, { "label": "TheMainCha", "value": "896" }, { "label": "TheParanor", "value": "887" }, { "label": "Thestronga", "value": "914" }, { "label": "Thieves", "value": "514" }, { "label": "Threesome", "value": "706" }, { "label": "Thriller", "value": "637" }, { "label": "TimeLoop", "value": "696" }, { "label": "TimeManipu", "value": "263" }, { "label": "TimeParado", "value": "430" }, { "label": "TimeSkip", "value": "234" }, { "label": "TimeTravel", "value": "389" }, { "label": "TimidProta", "value": "473" }, { "label": "Torture", "value": "589" }, { "label": "Tragedy", "value": "794" }, { "label": "TragicPast", "value": "44" }, { "label": "Transforma", "value": "612" }, { "label": "Transmigra", "value": "102" }, { "label": "Transmigra", "value": "764" }, { "label": "Transplant", "value": "768" }, { "label": "Transporte", "value": "103" }, { "label": "Transporte", "value": "278" }, { "label": "Transporte", "value": "375" }, { "label": "Transporte", "value": "784" }, { "label": "Trap", "value": "405" }, { "label": "Trialmarri", "value": "880" }, { "label": "Tsundere", "value": "382" }, { "label": "Twins", "value": "506" }, { "label": "Twisted", "value": "906" }, { "label": "TwistedPer", "value": "693" }, { "label": "UglytoBeau", "value": "550" }, { "label": "Unconditio", "value": "445" }, { "label": "Undead", "value": "965" }, { "label": "Underestim", "value": "79" }, { "label": "UniqueCult", "value": "81" }, { "label": "UniqueWeap", "value": "418" }, { "label": "UniqueWeap", "value": "582" }, { "label": "UnluckyPro", "value": "611" }, { "label": "Unprincipl", "value": "923" }, { "label": "Unreliable", "value": "451" }, { "label": "Urban", "value": "522" }, { "label": "Vampire", "value": "602" }, { "label": "Vampires", "value": "323" }, { "label": "Videogame", "value": "925" }, { "label": "VideoGames", "value": "973" }, { "label": "Vietnamese", "value": "820" }, { "label": "Villain", "value": "861" }, { "label": "Villainess", "value": "680" }, { "label": "Villainpro", "value": "941" }, { "label": "VirtualRea", "value": "433" }, { "label": "VoiceActor", "value": "446" }, { "label": "Warhammer4", "value": "732" }, { "label": "WarRecords", "value": "745" }, { "label": "Wars", "value": "303" }, { "label": "Weak-to-st", "value": "959" }, { "label": "WeakProtag", "value": "324" }, { "label": "WeaktoStro", "value": "83" }, { "label": "WealthyCha", "value": "334" }, { "label": "WebNovel", "value": "805" }, { "label": "WebnovelSp", "value": "709" }, { "label": "WeektoStro", "value": "609" }, { "label": "Werebeasts", "value": "325" }, { "label": "Werewolf", "value": "849" }, { "label": "Wishes", "value": "615" }, { "label": "Witches", "value": "570" }, { "label": "Wizards", "value": "571" }, { "label": "WorldHoppi", "value": "504" }, { "label": "Worlds", "value": "869" }, { "label": "WorldTrave", "value": "84" }, { "label": "WorldTree", "value": "640" }, { "label": "Writers", "value": "662" }, { "label": "Wuxia", "value": "759" }, { "label": "Xianxia", "value": "603" }, { "label": "Xuanhuan", "value": "773" }, { "label": "Yandere", "value": "402" }, { "label": "Yaoi", "value": "866" }, { "label": "YoungerBro", "value": "775" }, { "label": "YoungerLov", "value": "551" }, { "label": "YoungerSis", "value": "763" }, { "label": "Yuri", "value": "929" }, { "label": "Zombie", "value": "598" }, { "label": "Zombies", "value": "594" }], "value": "", "type": filterInputs_1.FilterTypes.Picker } } }); -exports.default = plugin; diff --git a/.js/plugins/english/LunarLetters[madara].js b/.js/plugins/english/LunarLetters[madara].js deleted file mode 100644 index 5241c33..0000000 --- a/.js/plugins/english/LunarLetters[madara].js +++ /dev/null @@ -1,296 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var dayjs_1 = __importDefault(require("dayjs")); -var MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; -var MadaraPlugin = /** @class */ (function () { - function MadaraPlugin(metadata) { - this.id = metadata.id; - this.name = metadata.sourceName + "[madara]"; - var iconFileName = metadata.sourceName - .replace(/\s+/g, "") - .toLowerCase(); - this.icon = "multisrc/madara/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - this.filters = metadata.filters; - } - MadaraPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - novels = []; - url = this.site; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) { - url += (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.path) === null || _d === void 0 ? void 0 : _d.genres) || MadaraDefaultPath.genres) + - "/" + - filters.genres.value; - } - else { - url += ((_f = (_e = this.options) === null || _e === void 0 ? void 0 : _e.path) === null || _f === void 0 ? void 0 : _f.novels) || MadaraDefaultPath.novels; - } - url += - "/page/" + - pageNo + - "/" + - "?m_orderby=" + - (showLatestNovels ? "latest" : ((_g = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _g === void 0 ? void 0 : _g.value) || "rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges").remove(); - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novel, body, loadedCheerio, html, novelId, formData, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges, #manga-title span").remove(); - novel.name = - loadedCheerio(".post-title h1").text().trim() || - loadedCheerio("#manga-title h1").text(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("data-lazy-src") || - loadedCheerio(".summary_image > a > img").attr("data-src") || - loadedCheerio(".summary_image > a > img").attr("src") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item, .post-content").each(function () { - var detailName = loadedCheerio(this).find("h5").text().trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - case "التصنيفات": - novel.genres = detail.replace(/[\\t\\n]/g, ","); - break; - case "Author(s)": - case "المؤلف": - case "المؤلف (ين)": - novel.author = detail; - break; - case "Status": - case "الحالة": - novel.status = - detail.includes("OnGoing") || detail.includes("مستمرة") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - loadedCheerio("div.summary__content .code-block,script").remove(); - novel.summary = - loadedCheerio("div.summary__content").text().trim() || - loadedCheerio("#tab-manga-about").text().trim() || - loadedCheerio('.post-content_item h5:contains("Summary")') - .next() - .text() - .trim(); - if (!(((_a = this.options) === null || _a === void 0 ? void 0 : _a.useNewChapterEndpoint) !== true)) return [3 /*break*/, 3]; - novelId = loadedCheerio(".rating-post-id").attr("value") || - loadedCheerio("#manga-chapters-holder").attr("data-id") || - ""; - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - }).then(function (res) { return res.text(); })]; - case 2: - html = _b.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl + "ajax/chapters/", { - method: "POST", - }).then(function (res) { return res.text(); })]; - case 4: - html = _b.sent(); - _b.label = 5; - case 5: - if (html !== "0") { - loadedCheerio = (0, cheerio_1.load)(html); - } - chapters = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - releaseDate = loadedCheerio(this) - .find("span.chapter-release-date") - .text() - .trim(); - if (releaseDate) { - releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(releaseDate); - } - else { - /** - * Insert current date - */ - releaseDate = (0, dayjs_1.default)().format("LL"); - } - var chapterUrl = loadedCheerio(this).find("a").attr("href") || ""; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MadaraPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || - loadedCheerio(".text-right").html() || - loadedCheerio(".entry-content").html() || - ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MadaraPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url, {})]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return MadaraPlugin; -}()); -var plugin = new MadaraPlugin({ "id": "lunarletters", "sourceSite": "https://www.lunarletters.com/", "sourceName": "LunarLetters", "filters": { "sort": { "label": "Order by", "options": [{ "label": "Default", "value": "" }, { "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" }], "value": "", "type": filterInputs_1.FilterTypes.Picker } }, "options": { "path": { "novels": "series", "novel": "series", "chapter": "series" }, "useNewChapterEndpoint": true, "lang": "English" } }); -exports.default = plugin; diff --git a/.js/plugins/english/MTLNovelClub[madara].js b/.js/plugins/english/MTLNovelClub[madara].js deleted file mode 100644 index 6e295bf..0000000 --- a/.js/plugins/english/MTLNovelClub[madara].js +++ /dev/null @@ -1,295 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var dayjs_1 = __importDefault(require("dayjs")); -var MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; -var MadaraPlugin = /** @class */ (function () { - function MadaraPlugin(metadata) { - this.id = metadata.id; - this.name = metadata.sourceName + "[madara]"; - var iconFileName = metadata.sourceName - .replace(/\s+/g, "") - .toLowerCase(); - this.icon = "multisrc/madara/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - this.filters = metadata.filters; - } - MadaraPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - novels = []; - url = this.site; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) { - url += (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.path) === null || _d === void 0 ? void 0 : _d.genres) || MadaraDefaultPath.genres) + - "/" + - filters.genres.value; - } - else { - url += ((_f = (_e = this.options) === null || _e === void 0 ? void 0 : _e.path) === null || _f === void 0 ? void 0 : _f.novels) || MadaraDefaultPath.novels; - } - url += - "/page/" + - pageNo + - "/" + - "?m_orderby=" + - (showLatestNovels ? "latest" : ((_g = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _g === void 0 ? void 0 : _g.value) || "rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges").remove(); - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novel, body, loadedCheerio, html, novelId, formData, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges, #manga-title span").remove(); - novel.name = - loadedCheerio(".post-title h1").text().trim() || - loadedCheerio("#manga-title h1").text(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("data-lazy-src") || - loadedCheerio(".summary_image > a > img").attr("data-src") || - loadedCheerio(".summary_image > a > img").attr("src") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item, .post-content").each(function () { - var detailName = loadedCheerio(this).find("h5").text().trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - case "التصنيفات": - novel.genres = detail.replace(/[\\t\\n]/g, ","); - break; - case "Author(s)": - case "المؤلف": - case "المؤلف (ين)": - novel.author = detail; - break; - case "Status": - case "الحالة": - novel.status = - detail.includes("OnGoing") || detail.includes("مستمرة") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - loadedCheerio("div.summary__content .code-block,script").remove(); - novel.summary = - loadedCheerio("div.summary__content").text().trim() || - loadedCheerio("#tab-manga-about").text().trim() || - loadedCheerio('.post-content_item h5:contains("Summary")') - .next() - .text() - .trim(); - if (!(((_a = this.options) === null || _a === void 0 ? void 0 : _a.useNewChapterEndpoint) !== true)) return [3 /*break*/, 3]; - novelId = loadedCheerio(".rating-post-id").attr("value") || - loadedCheerio("#manga-chapters-holder").attr("data-id") || - ""; - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - }).then(function (res) { return res.text(); })]; - case 2: - html = _b.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl + "ajax/chapters/", { - method: "POST", - }).then(function (res) { return res.text(); })]; - case 4: - html = _b.sent(); - _b.label = 5; - case 5: - if (html !== "0") { - loadedCheerio = (0, cheerio_1.load)(html); - } - chapters = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - releaseDate = loadedCheerio(this) - .find("span.chapter-release-date") - .text() - .trim(); - if (releaseDate) { - releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(releaseDate); - } - else { - /** - * Insert current date - */ - releaseDate = (0, dayjs_1.default)().format("LL"); - } - var chapterUrl = loadedCheerio(this).find("a").attr("href") || ""; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MadaraPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || - loadedCheerio(".text-right").html() || - loadedCheerio(".entry-content").html() || - ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MadaraPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url, {})]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return MadaraPlugin; -}()); -var plugin = new MadaraPlugin({ "id": "mtlnovel.club", "sourceSite": "https://mtlnovel.club/", "sourceName": "MTLNovel.Club", "filters": {}, "options": { "useNewChapterEndpoint": true, "lang": "English" } }); -exports.default = plugin; diff --git a/.js/plugins/english/MTLNovel[madara].js b/.js/plugins/english/MTLNovel[madara].js deleted file mode 100644 index c1d1ed8..0000000 --- a/.js/plugins/english/MTLNovel[madara].js +++ /dev/null @@ -1,296 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var dayjs_1 = __importDefault(require("dayjs")); -var MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; -var MadaraPlugin = /** @class */ (function () { - function MadaraPlugin(metadata) { - this.id = metadata.id; - this.name = metadata.sourceName + "[madara]"; - var iconFileName = metadata.sourceName - .replace(/\s+/g, "") - .toLowerCase(); - this.icon = "multisrc/madara/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - this.filters = metadata.filters; - } - MadaraPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - novels = []; - url = this.site; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) { - url += (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.path) === null || _d === void 0 ? void 0 : _d.genres) || MadaraDefaultPath.genres) + - "/" + - filters.genres.value; - } - else { - url += ((_f = (_e = this.options) === null || _e === void 0 ? void 0 : _e.path) === null || _f === void 0 ? void 0 : _f.novels) || MadaraDefaultPath.novels; - } - url += - "/page/" + - pageNo + - "/" + - "?m_orderby=" + - (showLatestNovels ? "latest" : ((_g = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _g === void 0 ? void 0 : _g.value) || "rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges").remove(); - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novel, body, loadedCheerio, html, novelId, formData, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges, #manga-title span").remove(); - novel.name = - loadedCheerio(".post-title h1").text().trim() || - loadedCheerio("#manga-title h1").text(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("data-lazy-src") || - loadedCheerio(".summary_image > a > img").attr("data-src") || - loadedCheerio(".summary_image > a > img").attr("src") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item, .post-content").each(function () { - var detailName = loadedCheerio(this).find("h5").text().trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - case "التصنيفات": - novel.genres = detail.replace(/[\\t\\n]/g, ","); - break; - case "Author(s)": - case "المؤلف": - case "المؤلف (ين)": - novel.author = detail; - break; - case "Status": - case "الحالة": - novel.status = - detail.includes("OnGoing") || detail.includes("مستمرة") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - loadedCheerio("div.summary__content .code-block,script").remove(); - novel.summary = - loadedCheerio("div.summary__content").text().trim() || - loadedCheerio("#tab-manga-about").text().trim() || - loadedCheerio('.post-content_item h5:contains("Summary")') - .next() - .text() - .trim(); - if (!(((_a = this.options) === null || _a === void 0 ? void 0 : _a.useNewChapterEndpoint) !== true)) return [3 /*break*/, 3]; - novelId = loadedCheerio(".rating-post-id").attr("value") || - loadedCheerio("#manga-chapters-holder").attr("data-id") || - ""; - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - }).then(function (res) { return res.text(); })]; - case 2: - html = _b.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl + "ajax/chapters/", { - method: "POST", - }).then(function (res) { return res.text(); })]; - case 4: - html = _b.sent(); - _b.label = 5; - case 5: - if (html !== "0") { - loadedCheerio = (0, cheerio_1.load)(html); - } - chapters = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - releaseDate = loadedCheerio(this) - .find("span.chapter-release-date") - .text() - .trim(); - if (releaseDate) { - releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(releaseDate); - } - else { - /** - * Insert current date - */ - releaseDate = (0, dayjs_1.default)().format("LL"); - } - var chapterUrl = loadedCheerio(this).find("a").attr("href") || ""; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MadaraPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || - loadedCheerio(".text-right").html() || - loadedCheerio(".entry-content").html() || - ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MadaraPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url, {})]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return MadaraPlugin; -}()); -var plugin = new MadaraPlugin({ "id": "mtl-novel", "sourceSite": "https://mtl-novel.com/", "sourceName": "MTL-Novel", "filters": { "sort": { "label": "Order by", "value": "", "options": [{ "label": "Default", "value": "" }, { "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": filterInputs_1.FilterTypes.Picker }, "genres": { "label": "GENRES", "value": "", "options": [{ "label": "NONE", "value": "" }, { "label": "Action", "value": "action" }, { "label": "Adult", "value": "adult" }, { "label": "Adventure", "value": "adventure" }, { "label": "Chinese", "value": "chinese" }, { "label": "Comedy", "value": "comedy" }, { "label": "Conan", "value": "conan" }, { "label": "Drama", "value": "drama" }, { "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": "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": "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 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": "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": filterInputs_1.FilterTypes.Picker } }, "options": { "path": { "genres": "manga-genre" }, "useNewChapterEndpoint": true, "lang": "English" } }); -exports.default = plugin; diff --git a/.js/plugins/english/MostNovel[madara].js b/.js/plugins/english/MostNovel[madara].js deleted file mode 100644 index 72054a6..0000000 --- a/.js/plugins/english/MostNovel[madara].js +++ /dev/null @@ -1,296 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var dayjs_1 = __importDefault(require("dayjs")); -var MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; -var MadaraPlugin = /** @class */ (function () { - function MadaraPlugin(metadata) { - this.id = metadata.id; - this.name = metadata.sourceName + "[madara]"; - var iconFileName = metadata.sourceName - .replace(/\s+/g, "") - .toLowerCase(); - this.icon = "multisrc/madara/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - this.filters = metadata.filters; - } - MadaraPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - novels = []; - url = this.site; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) { - url += (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.path) === null || _d === void 0 ? void 0 : _d.genres) || MadaraDefaultPath.genres) + - "/" + - filters.genres.value; - } - else { - url += ((_f = (_e = this.options) === null || _e === void 0 ? void 0 : _e.path) === null || _f === void 0 ? void 0 : _f.novels) || MadaraDefaultPath.novels; - } - url += - "/page/" + - pageNo + - "/" + - "?m_orderby=" + - (showLatestNovels ? "latest" : ((_g = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _g === void 0 ? void 0 : _g.value) || "rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges").remove(); - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novel, body, loadedCheerio, html, novelId, formData, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges, #manga-title span").remove(); - novel.name = - loadedCheerio(".post-title h1").text().trim() || - loadedCheerio("#manga-title h1").text(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("data-lazy-src") || - loadedCheerio(".summary_image > a > img").attr("data-src") || - loadedCheerio(".summary_image > a > img").attr("src") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item, .post-content").each(function () { - var detailName = loadedCheerio(this).find("h5").text().trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - case "التصنيفات": - novel.genres = detail.replace(/[\\t\\n]/g, ","); - break; - case "Author(s)": - case "المؤلف": - case "المؤلف (ين)": - novel.author = detail; - break; - case "Status": - case "الحالة": - novel.status = - detail.includes("OnGoing") || detail.includes("مستمرة") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - loadedCheerio("div.summary__content .code-block,script").remove(); - novel.summary = - loadedCheerio("div.summary__content").text().trim() || - loadedCheerio("#tab-manga-about").text().trim() || - loadedCheerio('.post-content_item h5:contains("Summary")') - .next() - .text() - .trim(); - if (!(((_a = this.options) === null || _a === void 0 ? void 0 : _a.useNewChapterEndpoint) !== true)) return [3 /*break*/, 3]; - novelId = loadedCheerio(".rating-post-id").attr("value") || - loadedCheerio("#manga-chapters-holder").attr("data-id") || - ""; - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - }).then(function (res) { return res.text(); })]; - case 2: - html = _b.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl + "ajax/chapters/", { - method: "POST", - }).then(function (res) { return res.text(); })]; - case 4: - html = _b.sent(); - _b.label = 5; - case 5: - if (html !== "0") { - loadedCheerio = (0, cheerio_1.load)(html); - } - chapters = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - releaseDate = loadedCheerio(this) - .find("span.chapter-release-date") - .text() - .trim(); - if (releaseDate) { - releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(releaseDate); - } - else { - /** - * Insert current date - */ - releaseDate = (0, dayjs_1.default)().format("LL"); - } - var chapterUrl = loadedCheerio(this).find("a").attr("href") || ""; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MadaraPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || - loadedCheerio(".text-right").html() || - loadedCheerio(".entry-content").html() || - ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MadaraPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url, {})]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return MadaraPlugin; -}()); -var plugin = new MadaraPlugin({ "id": "mostnovel", "sourceSite": "https://mostnovel.com/", "sourceName": "MostNovel", "filters": { "sort": { "value": "", "label": "Order by", "options": [{ "label": "Default", "value": "" }, { "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": filterInputs_1.FilterTypes.Picker }, "genres": { "value": "", "label": "GENRES", "options": [{ "label": "NONE", "value": "" }, { "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": "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": filterInputs_1.FilterTypes.Picker } }, "options": { "path": { "novels": "manga", "novel": "manga", "chapter": "manga", "genres": "manga-genre" }, "lang": "English" } }); -exports.default = plugin; diff --git a/.js/plugins/english/MysticalSeries[madara].js b/.js/plugins/english/MysticalSeries[madara].js deleted file mode 100644 index 03dead0..0000000 --- a/.js/plugins/english/MysticalSeries[madara].js +++ /dev/null @@ -1,296 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var dayjs_1 = __importDefault(require("dayjs")); -var MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; -var MadaraPlugin = /** @class */ (function () { - function MadaraPlugin(metadata) { - this.id = metadata.id; - this.name = metadata.sourceName + "[madara]"; - var iconFileName = metadata.sourceName - .replace(/\s+/g, "") - .toLowerCase(); - this.icon = "multisrc/madara/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - this.filters = metadata.filters; - } - MadaraPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - novels = []; - url = this.site; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) { - url += (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.path) === null || _d === void 0 ? void 0 : _d.genres) || MadaraDefaultPath.genres) + - "/" + - filters.genres.value; - } - else { - url += ((_f = (_e = this.options) === null || _e === void 0 ? void 0 : _e.path) === null || _f === void 0 ? void 0 : _f.novels) || MadaraDefaultPath.novels; - } - url += - "/page/" + - pageNo + - "/" + - "?m_orderby=" + - (showLatestNovels ? "latest" : ((_g = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _g === void 0 ? void 0 : _g.value) || "rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges").remove(); - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novel, body, loadedCheerio, html, novelId, formData, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges, #manga-title span").remove(); - novel.name = - loadedCheerio(".post-title h1").text().trim() || - loadedCheerio("#manga-title h1").text(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("data-lazy-src") || - loadedCheerio(".summary_image > a > img").attr("data-src") || - loadedCheerio(".summary_image > a > img").attr("src") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item, .post-content").each(function () { - var detailName = loadedCheerio(this).find("h5").text().trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - case "التصنيفات": - novel.genres = detail.replace(/[\\t\\n]/g, ","); - break; - case "Author(s)": - case "المؤلف": - case "المؤلف (ين)": - novel.author = detail; - break; - case "Status": - case "الحالة": - novel.status = - detail.includes("OnGoing") || detail.includes("مستمرة") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - loadedCheerio("div.summary__content .code-block,script").remove(); - novel.summary = - loadedCheerio("div.summary__content").text().trim() || - loadedCheerio("#tab-manga-about").text().trim() || - loadedCheerio('.post-content_item h5:contains("Summary")') - .next() - .text() - .trim(); - if (!(((_a = this.options) === null || _a === void 0 ? void 0 : _a.useNewChapterEndpoint) !== true)) return [3 /*break*/, 3]; - novelId = loadedCheerio(".rating-post-id").attr("value") || - loadedCheerio("#manga-chapters-holder").attr("data-id") || - ""; - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - }).then(function (res) { return res.text(); })]; - case 2: - html = _b.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl + "ajax/chapters/", { - method: "POST", - }).then(function (res) { return res.text(); })]; - case 4: - html = _b.sent(); - _b.label = 5; - case 5: - if (html !== "0") { - loadedCheerio = (0, cheerio_1.load)(html); - } - chapters = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - releaseDate = loadedCheerio(this) - .find("span.chapter-release-date") - .text() - .trim(); - if (releaseDate) { - releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(releaseDate); - } - else { - /** - * Insert current date - */ - releaseDate = (0, dayjs_1.default)().format("LL"); - } - var chapterUrl = loadedCheerio(this).find("a").attr("href") || ""; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MadaraPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || - loadedCheerio(".text-right").html() || - loadedCheerio(".entry-content").html() || - ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MadaraPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url, {})]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return MadaraPlugin; -}()); -var plugin = new MadaraPlugin({ "id": "mysticalmerries", "sourceSite": "https://mysticalmerries.com/", "sourceName": "MysticalSeries", "filters": { "sort": { "label": "Order by", "value": "", "options": [{ "label": "Default", "value": "" }, { "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": filterInputs_1.FilterTypes.Picker }, "genres": { "label": "GENRES", "value": "", "options": [{ "label": "NONE", "value": "" }, { "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": filterInputs_1.FilterTypes.Picker } }, "options": { "path": { "novels": "series", "novel": "series", "chapter": "series", "genres": "genre" }, "useNewChapterEndpoint": true, "lang": "English" } }); -exports.default = plugin; diff --git a/.js/plugins/english/NeoSekaiTranslations[madara].js b/.js/plugins/english/NeoSekaiTranslations[madara].js deleted file mode 100644 index 52580bb..0000000 --- a/.js/plugins/english/NeoSekaiTranslations[madara].js +++ /dev/null @@ -1,296 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var dayjs_1 = __importDefault(require("dayjs")); -var MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; -var MadaraPlugin = /** @class */ (function () { - function MadaraPlugin(metadata) { - this.id = metadata.id; - this.name = metadata.sourceName + "[madara]"; - var iconFileName = metadata.sourceName - .replace(/\s+/g, "") - .toLowerCase(); - this.icon = "multisrc/madara/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - this.filters = metadata.filters; - } - MadaraPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - novels = []; - url = this.site; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) { - url += (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.path) === null || _d === void 0 ? void 0 : _d.genres) || MadaraDefaultPath.genres) + - "/" + - filters.genres.value; - } - else { - url += ((_f = (_e = this.options) === null || _e === void 0 ? void 0 : _e.path) === null || _f === void 0 ? void 0 : _f.novels) || MadaraDefaultPath.novels; - } - url += - "/page/" + - pageNo + - "/" + - "?m_orderby=" + - (showLatestNovels ? "latest" : ((_g = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _g === void 0 ? void 0 : _g.value) || "rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges").remove(); - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novel, body, loadedCheerio, html, novelId, formData, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges, #manga-title span").remove(); - novel.name = - loadedCheerio(".post-title h1").text().trim() || - loadedCheerio("#manga-title h1").text(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("data-lazy-src") || - loadedCheerio(".summary_image > a > img").attr("data-src") || - loadedCheerio(".summary_image > a > img").attr("src") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item, .post-content").each(function () { - var detailName = loadedCheerio(this).find("h5").text().trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - case "التصنيفات": - novel.genres = detail.replace(/[\\t\\n]/g, ","); - break; - case "Author(s)": - case "المؤلف": - case "المؤلف (ين)": - novel.author = detail; - break; - case "Status": - case "الحالة": - novel.status = - detail.includes("OnGoing") || detail.includes("مستمرة") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - loadedCheerio("div.summary__content .code-block,script").remove(); - novel.summary = - loadedCheerio("div.summary__content").text().trim() || - loadedCheerio("#tab-manga-about").text().trim() || - loadedCheerio('.post-content_item h5:contains("Summary")') - .next() - .text() - .trim(); - if (!(((_a = this.options) === null || _a === void 0 ? void 0 : _a.useNewChapterEndpoint) !== true)) return [3 /*break*/, 3]; - novelId = loadedCheerio(".rating-post-id").attr("value") || - loadedCheerio("#manga-chapters-holder").attr("data-id") || - ""; - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - }).then(function (res) { return res.text(); })]; - case 2: - html = _b.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl + "ajax/chapters/", { - method: "POST", - }).then(function (res) { return res.text(); })]; - case 4: - html = _b.sent(); - _b.label = 5; - case 5: - if (html !== "0") { - loadedCheerio = (0, cheerio_1.load)(html); - } - chapters = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - releaseDate = loadedCheerio(this) - .find("span.chapter-release-date") - .text() - .trim(); - if (releaseDate) { - releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(releaseDate); - } - else { - /** - * Insert current date - */ - releaseDate = (0, dayjs_1.default)().format("LL"); - } - var chapterUrl = loadedCheerio(this).find("a").attr("href") || ""; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MadaraPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || - loadedCheerio(".text-right").html() || - loadedCheerio(".entry-content").html() || - ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MadaraPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url, {})]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return MadaraPlugin; -}()); -var plugin = new MadaraPlugin({ "id": "neosekaiTLS", "sourceSite": "https://www.neosekaitranslations.com/", "sourceName": "NeoSekai Translations", "filters": { "sort": { "label": "Order by", "value": "", "options": [{ "label": "Default", "value": "" }, { "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": filterInputs_1.FilterTypes.Picker }, "genres": { "label": "GENRES", "value": "", "options": [{ "label": "NONE", "value": "" }, { "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": filterInputs_1.FilterTypes.Picker } }, "options": { "lang": "English" } }); -exports.default = plugin; diff --git a/.js/plugins/english/NocturneTranslations[madara].js b/.js/plugins/english/NocturneTranslations[madara].js deleted file mode 100644 index f881eaa..0000000 --- a/.js/plugins/english/NocturneTranslations[madara].js +++ /dev/null @@ -1,296 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var dayjs_1 = __importDefault(require("dayjs")); -var MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; -var MadaraPlugin = /** @class */ (function () { - function MadaraPlugin(metadata) { - this.id = metadata.id; - this.name = metadata.sourceName + "[madara]"; - var iconFileName = metadata.sourceName - .replace(/\s+/g, "") - .toLowerCase(); - this.icon = "multisrc/madara/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - this.filters = metadata.filters; - } - MadaraPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - novels = []; - url = this.site; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) { - url += (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.path) === null || _d === void 0 ? void 0 : _d.genres) || MadaraDefaultPath.genres) + - "/" + - filters.genres.value; - } - else { - url += ((_f = (_e = this.options) === null || _e === void 0 ? void 0 : _e.path) === null || _f === void 0 ? void 0 : _f.novels) || MadaraDefaultPath.novels; - } - url += - "/page/" + - pageNo + - "/" + - "?m_orderby=" + - (showLatestNovels ? "latest" : ((_g = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _g === void 0 ? void 0 : _g.value) || "rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges").remove(); - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novel, body, loadedCheerio, html, novelId, formData, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges, #manga-title span").remove(); - novel.name = - loadedCheerio(".post-title h1").text().trim() || - loadedCheerio("#manga-title h1").text(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("data-lazy-src") || - loadedCheerio(".summary_image > a > img").attr("data-src") || - loadedCheerio(".summary_image > a > img").attr("src") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item, .post-content").each(function () { - var detailName = loadedCheerio(this).find("h5").text().trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - case "التصنيفات": - novel.genres = detail.replace(/[\\t\\n]/g, ","); - break; - case "Author(s)": - case "المؤلف": - case "المؤلف (ين)": - novel.author = detail; - break; - case "Status": - case "الحالة": - novel.status = - detail.includes("OnGoing") || detail.includes("مستمرة") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - loadedCheerio("div.summary__content .code-block,script").remove(); - novel.summary = - loadedCheerio("div.summary__content").text().trim() || - loadedCheerio("#tab-manga-about").text().trim() || - loadedCheerio('.post-content_item h5:contains("Summary")') - .next() - .text() - .trim(); - if (!(((_a = this.options) === null || _a === void 0 ? void 0 : _a.useNewChapterEndpoint) !== true)) return [3 /*break*/, 3]; - novelId = loadedCheerio(".rating-post-id").attr("value") || - loadedCheerio("#manga-chapters-holder").attr("data-id") || - ""; - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - }).then(function (res) { return res.text(); })]; - case 2: - html = _b.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl + "ajax/chapters/", { - method: "POST", - }).then(function (res) { return res.text(); })]; - case 4: - html = _b.sent(); - _b.label = 5; - case 5: - if (html !== "0") { - loadedCheerio = (0, cheerio_1.load)(html); - } - chapters = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - releaseDate = loadedCheerio(this) - .find("span.chapter-release-date") - .text() - .trim(); - if (releaseDate) { - releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(releaseDate); - } - else { - /** - * Insert current date - */ - releaseDate = (0, dayjs_1.default)().format("LL"); - } - var chapterUrl = loadedCheerio(this).find("a").attr("href") || ""; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MadaraPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || - loadedCheerio(".text-right").html() || - loadedCheerio(".entry-content").html() || - ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MadaraPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url, {})]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return MadaraPlugin; -}()); -var plugin = new MadaraPlugin({ "id": "nocturneTLS", "sourceSite": "https://nocturnetls.net/", "sourceName": "Nocturne Translations", "filters": { "sort": { "label": "Order by", "value": "", "options": [{ "label": "Default", "value": "" }, { "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": filterInputs_1.FilterTypes.Picker }, "genres": { "label": "GENRES", "value": "", "options": [{ "label": "NONE", "value": "" }, { "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": filterInputs_1.FilterTypes.Picker } }, "options": { "path": { "novels": "novels", "novel": "novels", "chapter": "novels", "genres": "manga-genre" }, "lang": "English" } }); -exports.default = plugin; diff --git a/.js/plugins/english/NoobchanTranslation[madara].js b/.js/plugins/english/NoobchanTranslation[madara].js deleted file mode 100644 index ea0732e..0000000 --- a/.js/plugins/english/NoobchanTranslation[madara].js +++ /dev/null @@ -1,295 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var dayjs_1 = __importDefault(require("dayjs")); -var MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; -var MadaraPlugin = /** @class */ (function () { - function MadaraPlugin(metadata) { - this.id = metadata.id; - this.name = metadata.sourceName + "[madara]"; - var iconFileName = metadata.sourceName - .replace(/\s+/g, "") - .toLowerCase(); - this.icon = "multisrc/madara/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - this.filters = metadata.filters; - } - MadaraPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - novels = []; - url = this.site; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) { - url += (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.path) === null || _d === void 0 ? void 0 : _d.genres) || MadaraDefaultPath.genres) + - "/" + - filters.genres.value; - } - else { - url += ((_f = (_e = this.options) === null || _e === void 0 ? void 0 : _e.path) === null || _f === void 0 ? void 0 : _f.novels) || MadaraDefaultPath.novels; - } - url += - "/page/" + - pageNo + - "/" + - "?m_orderby=" + - (showLatestNovels ? "latest" : ((_g = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _g === void 0 ? void 0 : _g.value) || "rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges").remove(); - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novel, body, loadedCheerio, html, novelId, formData, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges, #manga-title span").remove(); - novel.name = - loadedCheerio(".post-title h1").text().trim() || - loadedCheerio("#manga-title h1").text(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("data-lazy-src") || - loadedCheerio(".summary_image > a > img").attr("data-src") || - loadedCheerio(".summary_image > a > img").attr("src") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item, .post-content").each(function () { - var detailName = loadedCheerio(this).find("h5").text().trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - case "التصنيفات": - novel.genres = detail.replace(/[\\t\\n]/g, ","); - break; - case "Author(s)": - case "المؤلف": - case "المؤلف (ين)": - novel.author = detail; - break; - case "Status": - case "الحالة": - novel.status = - detail.includes("OnGoing") || detail.includes("مستمرة") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - loadedCheerio("div.summary__content .code-block,script").remove(); - novel.summary = - loadedCheerio("div.summary__content").text().trim() || - loadedCheerio("#tab-manga-about").text().trim() || - loadedCheerio('.post-content_item h5:contains("Summary")') - .next() - .text() - .trim(); - if (!(((_a = this.options) === null || _a === void 0 ? void 0 : _a.useNewChapterEndpoint) !== true)) return [3 /*break*/, 3]; - novelId = loadedCheerio(".rating-post-id").attr("value") || - loadedCheerio("#manga-chapters-holder").attr("data-id") || - ""; - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - }).then(function (res) { return res.text(); })]; - case 2: - html = _b.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl + "ajax/chapters/", { - method: "POST", - }).then(function (res) { return res.text(); })]; - case 4: - html = _b.sent(); - _b.label = 5; - case 5: - if (html !== "0") { - loadedCheerio = (0, cheerio_1.load)(html); - } - chapters = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - releaseDate = loadedCheerio(this) - .find("span.chapter-release-date") - .text() - .trim(); - if (releaseDate) { - releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(releaseDate); - } - else { - /** - * Insert current date - */ - releaseDate = (0, dayjs_1.default)().format("LL"); - } - var chapterUrl = loadedCheerio(this).find("a").attr("href") || ""; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MadaraPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || - loadedCheerio(".text-right").html() || - loadedCheerio(".entry-content").html() || - ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MadaraPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url, {})]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return MadaraPlugin; -}()); -var plugin = new MadaraPlugin({ "id": "noobchanTL", "sourceSite": "https://noobchan.xyz/", "sourceName": "Noobchan Translation", "filters": {}, "options": { "useNewChapterEndpoint": true, "lang": "English" } }); -exports.default = plugin; diff --git a/.js/plugins/english/NovelFullMe.js b/.js/plugins/english/NovelFullMe.js deleted file mode 100644 index eb49d9d..0000000 --- a/.js/plugins/english/NovelFullMe.js +++ /dev/null @@ -1,211 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var cheerio_1 = require("cheerio"); -var fetch_1 = require("@libs/fetch"); -var NovelFull = /** @class */ (function () { - function NovelFull() { - this.id = "NF.me"; - this.name = "NovelFullMe"; - this.site = "https://novelfull.me/"; - this.version = "1.0.0"; - this.icon = "src/en/novelfullme/icon.png"; - this.baseUrl = this.site; - } - NovelFull.prototype.popularNovels = function (pageNo, options) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novels; - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = "".concat(this.baseUrl, "popular?page=").concat(pageNo); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio(".book-item").each(function (idx, ele) { - var _a; - var novelName = loadedCheerio(ele).find(".title").text(); - var novelCover = "https:" + loadedCheerio(ele).find("img").attr("data-src"); - var novelUrl = _this.baseUrl + - ((_a = loadedCheerio(ele).find(".title a").attr("href")) === null || _a === void 0 ? void 0 : _a.substring(1)); - var novel = { name: novelName, cover: novelCover, url: novelUrl }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - NovelFull.prototype.parseNovelAndChapters = function (novelUrl) { - var _a, _b; - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novel, chapters, chaptersUrl, chaptersRequest, chaptersHtml; - return __generator(this, function (_c) { - switch (_c.label) { - case 0: - url = novelUrl; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _c.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _c.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { - url: url, - name: "", - cover: "", - author: "", - status: "", - genres: "", - summary: "", - chapters: [], - }; - novel.name = loadedCheerio(".name h1").text().trim(); - novel.cover = - "https:" + loadedCheerio(".img-cover img").attr("data-src"); - novel.summary = loadedCheerio("body > div.layout > div.main-container.book-details > div > div.row.no-gutters > div.col-lg-8 > div.mt-1 > div.section.box.mt-1.summary > div.section-body > p.content") - .text() - .trim(); - novel.author = "Unknown"; - novel.status = (_a = loadedCheerio("body > div.layout > div.main-container.book-details > div > div.row.no-gutters > div.col-lg-8 > div.book-info > div.detail > div.meta.box.mt-1.p-10 > p:nth-child(1) > a > span") - .text()) === null || _a === void 0 ? void 0 : _a.trim(); - novel.genres = (_b = loadedCheerio("body > div.layout > div.main-container.book-details > div > div.row.no-gutters > div.col-lg-8 > div.book-info > div.detail > div.meta.box.mt-1.p-10 > p:nth-child(2)") - .text()) === null || _b === void 0 ? void 0 : _b.replace("Genres :", "").replace(/[\s\n]+/g, " ").trim(); - chapters = []; - chaptersUrl = novelUrl.replace(this.baseUrl, "https://novelfull.me/api/novels/") + - "/chapters?source=detail"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(chaptersUrl)]; - case 3: - chaptersRequest = _c.sent(); - return [4 /*yield*/, chaptersRequest.text()]; - case 4: - chaptersHtml = _c.sent(); - loadedCheerio = (0, cheerio_1.load)(chaptersHtml); - loadedCheerio("li").each(function () { - var chapterName = loadedCheerio(this) - .find(".chapter-title") - .text() - .trim(); - var releaseDate = loadedCheerio(this) - .find(".chapter-update") - .text() - .trim(); - var chapterUrl = loadedCheerio(this).find("a").attr("href"); - if (!chapterUrl) - return; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - NovelFull.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = chapterUrl; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio("#listen-chapter").remove(); - loadedCheerio("#google_translate_element").remove(); - chapterText = loadedCheerio(".chapter__content").html() || ''; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - NovelFull.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novels; - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = "".concat(this.baseUrl, "search?status=all&sort=views&q=").concat(searchTerm); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio(".book-item").each(function (idx, ele) { - var _a; - var novelName = loadedCheerio(ele).find(".title").text(); - var novelCover = "https:" + loadedCheerio(ele).find("img").attr("data-src"); - var novelUrl = _this.baseUrl + - ((_a = loadedCheerio(ele).find(".title a").attr("href")) === null || _a === void 0 ? void 0 : _a.substring(1)); - var novel = { name: novelName, cover: novelCover, url: novelUrl }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - NovelFull.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2 /*return*/, (0, fetch_1.fetchFile)(url)]; - }); - }); - }; - return NovelFull; -}()); -exports.default = new NovelFull(); diff --git a/.js/plugins/english/NovelMultiverse[madara].js b/.js/plugins/english/NovelMultiverse[madara].js deleted file mode 100644 index dd0def4..0000000 --- a/.js/plugins/english/NovelMultiverse[madara].js +++ /dev/null @@ -1,296 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var dayjs_1 = __importDefault(require("dayjs")); -var MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; -var MadaraPlugin = /** @class */ (function () { - function MadaraPlugin(metadata) { - this.id = metadata.id; - this.name = metadata.sourceName + "[madara]"; - var iconFileName = metadata.sourceName - .replace(/\s+/g, "") - .toLowerCase(); - this.icon = "multisrc/madara/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - this.filters = metadata.filters; - } - MadaraPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - novels = []; - url = this.site; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) { - url += (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.path) === null || _d === void 0 ? void 0 : _d.genres) || MadaraDefaultPath.genres) + - "/" + - filters.genres.value; - } - else { - url += ((_f = (_e = this.options) === null || _e === void 0 ? void 0 : _e.path) === null || _f === void 0 ? void 0 : _f.novels) || MadaraDefaultPath.novels; - } - url += - "/page/" + - pageNo + - "/" + - "?m_orderby=" + - (showLatestNovels ? "latest" : ((_g = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _g === void 0 ? void 0 : _g.value) || "rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges").remove(); - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novel, body, loadedCheerio, html, novelId, formData, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges, #manga-title span").remove(); - novel.name = - loadedCheerio(".post-title h1").text().trim() || - loadedCheerio("#manga-title h1").text(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("data-lazy-src") || - loadedCheerio(".summary_image > a > img").attr("data-src") || - loadedCheerio(".summary_image > a > img").attr("src") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item, .post-content").each(function () { - var detailName = loadedCheerio(this).find("h5").text().trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - case "التصنيفات": - novel.genres = detail.replace(/[\\t\\n]/g, ","); - break; - case "Author(s)": - case "المؤلف": - case "المؤلف (ين)": - novel.author = detail; - break; - case "Status": - case "الحالة": - novel.status = - detail.includes("OnGoing") || detail.includes("مستمرة") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - loadedCheerio("div.summary__content .code-block,script").remove(); - novel.summary = - loadedCheerio("div.summary__content").text().trim() || - loadedCheerio("#tab-manga-about").text().trim() || - loadedCheerio('.post-content_item h5:contains("Summary")') - .next() - .text() - .trim(); - if (!(((_a = this.options) === null || _a === void 0 ? void 0 : _a.useNewChapterEndpoint) !== true)) return [3 /*break*/, 3]; - novelId = loadedCheerio(".rating-post-id").attr("value") || - loadedCheerio("#manga-chapters-holder").attr("data-id") || - ""; - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - }).then(function (res) { return res.text(); })]; - case 2: - html = _b.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl + "ajax/chapters/", { - method: "POST", - }).then(function (res) { return res.text(); })]; - case 4: - html = _b.sent(); - _b.label = 5; - case 5: - if (html !== "0") { - loadedCheerio = (0, cheerio_1.load)(html); - } - chapters = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - releaseDate = loadedCheerio(this) - .find("span.chapter-release-date") - .text() - .trim(); - if (releaseDate) { - releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(releaseDate); - } - else { - /** - * Insert current date - */ - releaseDate = (0, dayjs_1.default)().format("LL"); - } - var chapterUrl = loadedCheerio(this).find("a").attr("href") || ""; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MadaraPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || - loadedCheerio(".text-right").html() || - loadedCheerio(".entry-content").html() || - ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MadaraPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url, {})]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return MadaraPlugin; -}()); -var plugin = new MadaraPlugin({ "id": "novelmultiverse", "sourceSite": "https://www.novelmultiverse.com/", "sourceName": "NovelMultiverse", "filters": { "sort": { "value": "", "label": "Order by", "options": [{ "label": "Default", "value": "" }, { "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": filterInputs_1.FilterTypes.Picker }, "genres": { "label": "GENRES", "value": "", "options": [{ "label": "NONE", "value": "" }, { "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": filterInputs_1.FilterTypes.Picker } }, "options": { "lang": "English" } }); -exports.default = plugin; diff --git a/.js/plugins/english/NovelOnline.js b/.js/plugins/english/NovelOnline.js deleted file mode 100644 index edb8506..0000000 --- a/.js/plugins/english/NovelOnline.js +++ /dev/null @@ -1,161 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var cheerio_1 = require("cheerio"); -var fetch_1 = require("@libs/fetch"); -var NovelsOnline = /** @class */ (function () { - function NovelsOnline() { - this.id = "NO.net"; - this.name = "novelsOnline"; - this.site = "https://novelsonline.net"; - this.icon = "src/coverNotAvailable.jpg"; - this.version = "1.0.0"; - } - NovelsOnline.prototype.popularNovels = function (pageNo, options) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2 /*return*/, []]; /** TO DO */ - }); - }); - }; - NovelsOnline.prototype.parseNovelAndChapters = function (novelUrl) { - return __awaiter(this, void 0, void 0, function () { - var novel, result, $; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novel = { - url: novelUrl, - chapters: [], - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - result = _a.sent(); - $ = (0, cheerio_1.load)(result); - novel.name = $("h1").text(); - novel.cover = $(".novel-cover").find("a > img").attr("src"); - novel.author = $("div.novel-details > div:nth-child(5) > div.novel-detail-body") - .find("li") - .map(function (_, el) { return $(el).text(); }) - .get() - .join(", "); - novel.genres = $("div.novel-details > div:nth-child(2) > div.novel-detail-body") - .find("li") - .map(function (_, el) { return $(el).text(); }) - .get() - .join(","); - novel.summary = $("div.novel-right > div > div:nth-child(1) > div.novel-detail-body").text(); - novel.chapters = $("ul.chapter-chs > li > a") - .map(function (_, el) { - var chapterUrl = $(el).attr("href"); - var chapterName = $(el).text(); - return { - name: chapterName, - releaseTime: "", - url: chapterUrl, - }; - }) - .get(); - return [2 /*return*/, novel]; - } - }); - }); - }; - NovelsOnline.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var result, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - result = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(result); - chapterText = loadedCheerio("#contentall").html() || ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - NovelsOnline.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var result, $, headers; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)("https://novelsonline.net/sResults.php", { - headers: { - Accept: "*/*", - "Accept-Language": "pl,en-US;q=0.7,en;q=0.3", - "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", - }, - method: "POST", - body: "q=" + encodeURIComponent(searchTerm), - }).then(function (res) { return res.text(); })]; - case 1: - result = _a.sent(); - $ = (0, cheerio_1.load)(result); - headers = $("li"); - return [2 /*return*/, headers - .map(function (i, h) { - var novelName = $(h).text(); - var novelUrl = $(h).find("a").attr("href"); - var novelCover = $(h).find("img").attr("src"); - if (!novelUrl) { - return null; - } - return { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - }) - .get() - .filter(function (sr) { return sr !== null; })]; - } - }); - }); - }; - NovelsOnline.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2 /*return*/, (0, fetch_1.fetchFile)(url)]; - }); - }); - }; - return NovelsOnline; -}()); -exports.default = new NovelsOnline(); diff --git a/.js/plugins/english/NovelR18[madara].js b/.js/plugins/english/NovelR18[madara].js deleted file mode 100644 index b2c6836..0000000 --- a/.js/plugins/english/NovelR18[madara].js +++ /dev/null @@ -1,296 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var dayjs_1 = __importDefault(require("dayjs")); -var MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; -var MadaraPlugin = /** @class */ (function () { - function MadaraPlugin(metadata) { - this.id = metadata.id; - this.name = metadata.sourceName + "[madara]"; - var iconFileName = metadata.sourceName - .replace(/\s+/g, "") - .toLowerCase(); - this.icon = "multisrc/madara/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - this.filters = metadata.filters; - } - MadaraPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - novels = []; - url = this.site; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) { - url += (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.path) === null || _d === void 0 ? void 0 : _d.genres) || MadaraDefaultPath.genres) + - "/" + - filters.genres.value; - } - else { - url += ((_f = (_e = this.options) === null || _e === void 0 ? void 0 : _e.path) === null || _f === void 0 ? void 0 : _f.novels) || MadaraDefaultPath.novels; - } - url += - "/page/" + - pageNo + - "/" + - "?m_orderby=" + - (showLatestNovels ? "latest" : ((_g = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _g === void 0 ? void 0 : _g.value) || "rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges").remove(); - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novel, body, loadedCheerio, html, novelId, formData, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges, #manga-title span").remove(); - novel.name = - loadedCheerio(".post-title h1").text().trim() || - loadedCheerio("#manga-title h1").text(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("data-lazy-src") || - loadedCheerio(".summary_image > a > img").attr("data-src") || - loadedCheerio(".summary_image > a > img").attr("src") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item, .post-content").each(function () { - var detailName = loadedCheerio(this).find("h5").text().trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - case "التصنيفات": - novel.genres = detail.replace(/[\\t\\n]/g, ","); - break; - case "Author(s)": - case "المؤلف": - case "المؤلف (ين)": - novel.author = detail; - break; - case "Status": - case "الحالة": - novel.status = - detail.includes("OnGoing") || detail.includes("مستمرة") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - loadedCheerio("div.summary__content .code-block,script").remove(); - novel.summary = - loadedCheerio("div.summary__content").text().trim() || - loadedCheerio("#tab-manga-about").text().trim() || - loadedCheerio('.post-content_item h5:contains("Summary")') - .next() - .text() - .trim(); - if (!(((_a = this.options) === null || _a === void 0 ? void 0 : _a.useNewChapterEndpoint) !== true)) return [3 /*break*/, 3]; - novelId = loadedCheerio(".rating-post-id").attr("value") || - loadedCheerio("#manga-chapters-holder").attr("data-id") || - ""; - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - }).then(function (res) { return res.text(); })]; - case 2: - html = _b.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl + "ajax/chapters/", { - method: "POST", - }).then(function (res) { return res.text(); })]; - case 4: - html = _b.sent(); - _b.label = 5; - case 5: - if (html !== "0") { - loadedCheerio = (0, cheerio_1.load)(html); - } - chapters = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - releaseDate = loadedCheerio(this) - .find("span.chapter-release-date") - .text() - .trim(); - if (releaseDate) { - releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(releaseDate); - } - else { - /** - * Insert current date - */ - releaseDate = (0, dayjs_1.default)().format("LL"); - } - var chapterUrl = loadedCheerio(this).find("a").attr("href") || ""; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MadaraPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || - loadedCheerio(".text-right").html() || - loadedCheerio(".entry-content").html() || - ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MadaraPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url, {})]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return MadaraPlugin; -}()); -var plugin = new MadaraPlugin({ "id": "novelr18", "sourceSite": "https://novelr18.com/", "sourceName": "NovelR18", "filters": { "sort": { "label": "Sort by :", "value": "", "options": [{ "label": "Default", "value": "" }, { "label": "Rating", "value": "rating" }, { "label": "A-Z", "value": "alphabet" }, { "label": "Latest Update", "value": "latest" }, { "label": "Most Views", "value": "views" }, { "label": "Newly Added Novels", "value": "new-manga" }, { "label": "Trending", "value": "trending" }], "type": filterInputs_1.FilterTypes.Picker } }, "options": { "path": { "novels": "novel", "novel": "manga", "chapter": "manga" }, "useNewChapterEndpoint": true, "lang": "English" } }); -exports.default = plugin; diff --git a/.js/plugins/english/NovelTranslate[madara].js b/.js/plugins/english/NovelTranslate[madara].js deleted file mode 100644 index 8dbeef6..0000000 --- a/.js/plugins/english/NovelTranslate[madara].js +++ /dev/null @@ -1,296 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var dayjs_1 = __importDefault(require("dayjs")); -var MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; -var MadaraPlugin = /** @class */ (function () { - function MadaraPlugin(metadata) { - this.id = metadata.id; - this.name = metadata.sourceName + "[madara]"; - var iconFileName = metadata.sourceName - .replace(/\s+/g, "") - .toLowerCase(); - this.icon = "multisrc/madara/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - this.filters = metadata.filters; - } - MadaraPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - novels = []; - url = this.site; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) { - url += (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.path) === null || _d === void 0 ? void 0 : _d.genres) || MadaraDefaultPath.genres) + - "/" + - filters.genres.value; - } - else { - url += ((_f = (_e = this.options) === null || _e === void 0 ? void 0 : _e.path) === null || _f === void 0 ? void 0 : _f.novels) || MadaraDefaultPath.novels; - } - url += - "/page/" + - pageNo + - "/" + - "?m_orderby=" + - (showLatestNovels ? "latest" : ((_g = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _g === void 0 ? void 0 : _g.value) || "rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges").remove(); - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novel, body, loadedCheerio, html, novelId, formData, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges, #manga-title span").remove(); - novel.name = - loadedCheerio(".post-title h1").text().trim() || - loadedCheerio("#manga-title h1").text(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("data-lazy-src") || - loadedCheerio(".summary_image > a > img").attr("data-src") || - loadedCheerio(".summary_image > a > img").attr("src") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item, .post-content").each(function () { - var detailName = loadedCheerio(this).find("h5").text().trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - case "التصنيفات": - novel.genres = detail.replace(/[\\t\\n]/g, ","); - break; - case "Author(s)": - case "المؤلف": - case "المؤلف (ين)": - novel.author = detail; - break; - case "Status": - case "الحالة": - novel.status = - detail.includes("OnGoing") || detail.includes("مستمرة") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - loadedCheerio("div.summary__content .code-block,script").remove(); - novel.summary = - loadedCheerio("div.summary__content").text().trim() || - loadedCheerio("#tab-manga-about").text().trim() || - loadedCheerio('.post-content_item h5:contains("Summary")') - .next() - .text() - .trim(); - if (!(((_a = this.options) === null || _a === void 0 ? void 0 : _a.useNewChapterEndpoint) !== true)) return [3 /*break*/, 3]; - novelId = loadedCheerio(".rating-post-id").attr("value") || - loadedCheerio("#manga-chapters-holder").attr("data-id") || - ""; - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - }).then(function (res) { return res.text(); })]; - case 2: - html = _b.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl + "ajax/chapters/", { - method: "POST", - }).then(function (res) { return res.text(); })]; - case 4: - html = _b.sent(); - _b.label = 5; - case 5: - if (html !== "0") { - loadedCheerio = (0, cheerio_1.load)(html); - } - chapters = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - releaseDate = loadedCheerio(this) - .find("span.chapter-release-date") - .text() - .trim(); - if (releaseDate) { - releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(releaseDate); - } - else { - /** - * Insert current date - */ - releaseDate = (0, dayjs_1.default)().format("LL"); - } - var chapterUrl = loadedCheerio(this).find("a").attr("href") || ""; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MadaraPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || - loadedCheerio(".text-right").html() || - loadedCheerio(".entry-content").html() || - ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MadaraPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url, {})]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return MadaraPlugin; -}()); -var plugin = new MadaraPlugin({ "id": "novelTL", "sourceSite": "https://noveltranslate.com/", "sourceName": "NovelTranslate", "filters": { "sort": { "label": "Order by", "options": [{ "label": "Default", "value": "" }, { "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" }], "value": "", "type": filterInputs_1.FilterTypes.Picker }, "genres": { "label": "GENRES", "options": [{ "label": "NONE", "value": "" }, { "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" }], "value": "", "type": filterInputs_1.FilterTypes.Picker } }, "options": { "path": { "novels": "all-novels", "novel": "manga", "chapter": "manga", "genres": "manga-genre" }, "lang": "English" } }); -exports.default = plugin; diff --git a/.js/plugins/english/Novelroomnet[madara].js b/.js/plugins/english/Novelroomnet[madara].js deleted file mode 100644 index c58f5da..0000000 --- a/.js/plugins/english/Novelroomnet[madara].js +++ /dev/null @@ -1,295 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var dayjs_1 = __importDefault(require("dayjs")); -var MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; -var MadaraPlugin = /** @class */ (function () { - function MadaraPlugin(metadata) { - this.id = metadata.id; - this.name = metadata.sourceName + "[madara]"; - var iconFileName = metadata.sourceName - .replace(/\s+/g, "") - .toLowerCase(); - this.icon = "multisrc/madara/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - this.filters = metadata.filters; - } - MadaraPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - novels = []; - url = this.site; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) { - url += (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.path) === null || _d === void 0 ? void 0 : _d.genres) || MadaraDefaultPath.genres) + - "/" + - filters.genres.value; - } - else { - url += ((_f = (_e = this.options) === null || _e === void 0 ? void 0 : _e.path) === null || _f === void 0 ? void 0 : _f.novels) || MadaraDefaultPath.novels; - } - url += - "/page/" + - pageNo + - "/" + - "?m_orderby=" + - (showLatestNovels ? "latest" : ((_g = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _g === void 0 ? void 0 : _g.value) || "rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges").remove(); - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novel, body, loadedCheerio, html, novelId, formData, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges, #manga-title span").remove(); - novel.name = - loadedCheerio(".post-title h1").text().trim() || - loadedCheerio("#manga-title h1").text(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("data-lazy-src") || - loadedCheerio(".summary_image > a > img").attr("data-src") || - loadedCheerio(".summary_image > a > img").attr("src") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item, .post-content").each(function () { - var detailName = loadedCheerio(this).find("h5").text().trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - case "التصنيفات": - novel.genres = detail.replace(/[\\t\\n]/g, ","); - break; - case "Author(s)": - case "المؤلف": - case "المؤلف (ين)": - novel.author = detail; - break; - case "Status": - case "الحالة": - novel.status = - detail.includes("OnGoing") || detail.includes("مستمرة") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - loadedCheerio("div.summary__content .code-block,script").remove(); - novel.summary = - loadedCheerio("div.summary__content").text().trim() || - loadedCheerio("#tab-manga-about").text().trim() || - loadedCheerio('.post-content_item h5:contains("Summary")') - .next() - .text() - .trim(); - if (!(((_a = this.options) === null || _a === void 0 ? void 0 : _a.useNewChapterEndpoint) !== true)) return [3 /*break*/, 3]; - novelId = loadedCheerio(".rating-post-id").attr("value") || - loadedCheerio("#manga-chapters-holder").attr("data-id") || - ""; - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - }).then(function (res) { return res.text(); })]; - case 2: - html = _b.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl + "ajax/chapters/", { - method: "POST", - }).then(function (res) { return res.text(); })]; - case 4: - html = _b.sent(); - _b.label = 5; - case 5: - if (html !== "0") { - loadedCheerio = (0, cheerio_1.load)(html); - } - chapters = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - releaseDate = loadedCheerio(this) - .find("span.chapter-release-date") - .text() - .trim(); - if (releaseDate) { - releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(releaseDate); - } - else { - /** - * Insert current date - */ - releaseDate = (0, dayjs_1.default)().format("LL"); - } - var chapterUrl = loadedCheerio(this).find("a").attr("href") || ""; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MadaraPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || - loadedCheerio(".text-right").html() || - loadedCheerio(".entry-content").html() || - ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MadaraPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url, {})]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return MadaraPlugin; -}()); -var plugin = new MadaraPlugin({ "id": "novelroom", "sourceSite": "https://novelroom.net/", "sourceName": "Novelroom.net", "filters": {}, "options": { "path": { "novels": "manga", "novel": "manga", "chapter": "manga" }, "lang": "English" } }); -exports.default = plugin; diff --git a/.js/plugins/english/Novelstic[madara].js b/.js/plugins/english/Novelstic[madara].js deleted file mode 100644 index 9996bfb..0000000 --- a/.js/plugins/english/Novelstic[madara].js +++ /dev/null @@ -1,296 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var dayjs_1 = __importDefault(require("dayjs")); -var MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; -var MadaraPlugin = /** @class */ (function () { - function MadaraPlugin(metadata) { - this.id = metadata.id; - this.name = metadata.sourceName + "[madara]"; - var iconFileName = metadata.sourceName - .replace(/\s+/g, "") - .toLowerCase(); - this.icon = "multisrc/madara/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - this.filters = metadata.filters; - } - MadaraPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - novels = []; - url = this.site; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) { - url += (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.path) === null || _d === void 0 ? void 0 : _d.genres) || MadaraDefaultPath.genres) + - "/" + - filters.genres.value; - } - else { - url += ((_f = (_e = this.options) === null || _e === void 0 ? void 0 : _e.path) === null || _f === void 0 ? void 0 : _f.novels) || MadaraDefaultPath.novels; - } - url += - "/page/" + - pageNo + - "/" + - "?m_orderby=" + - (showLatestNovels ? "latest" : ((_g = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _g === void 0 ? void 0 : _g.value) || "rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges").remove(); - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novel, body, loadedCheerio, html, novelId, formData, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges, #manga-title span").remove(); - novel.name = - loadedCheerio(".post-title h1").text().trim() || - loadedCheerio("#manga-title h1").text(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("data-lazy-src") || - loadedCheerio(".summary_image > a > img").attr("data-src") || - loadedCheerio(".summary_image > a > img").attr("src") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item, .post-content").each(function () { - var detailName = loadedCheerio(this).find("h5").text().trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - case "التصنيفات": - novel.genres = detail.replace(/[\\t\\n]/g, ","); - break; - case "Author(s)": - case "المؤلف": - case "المؤلف (ين)": - novel.author = detail; - break; - case "Status": - case "الحالة": - novel.status = - detail.includes("OnGoing") || detail.includes("مستمرة") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - loadedCheerio("div.summary__content .code-block,script").remove(); - novel.summary = - loadedCheerio("div.summary__content").text().trim() || - loadedCheerio("#tab-manga-about").text().trim() || - loadedCheerio('.post-content_item h5:contains("Summary")') - .next() - .text() - .trim(); - if (!(((_a = this.options) === null || _a === void 0 ? void 0 : _a.useNewChapterEndpoint) !== true)) return [3 /*break*/, 3]; - novelId = loadedCheerio(".rating-post-id").attr("value") || - loadedCheerio("#manga-chapters-holder").attr("data-id") || - ""; - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - }).then(function (res) { return res.text(); })]; - case 2: - html = _b.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl + "ajax/chapters/", { - method: "POST", - }).then(function (res) { return res.text(); })]; - case 4: - html = _b.sent(); - _b.label = 5; - case 5: - if (html !== "0") { - loadedCheerio = (0, cheerio_1.load)(html); - } - chapters = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - releaseDate = loadedCheerio(this) - .find("span.chapter-release-date") - .text() - .trim(); - if (releaseDate) { - releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(releaseDate); - } - else { - /** - * Insert current date - */ - releaseDate = (0, dayjs_1.default)().format("LL"); - } - var chapterUrl = loadedCheerio(this).find("a").attr("href") || ""; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MadaraPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || - loadedCheerio(".text-right").html() || - loadedCheerio(".entry-content").html() || - ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MadaraPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url, {})]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return MadaraPlugin; -}()); -var plugin = new MadaraPlugin({ "id": "novelstic", "sourceSite": "https://novelstic.com/", "sourceName": "Novelstic", "filters": { "sort": { "label": "Order by", "value": "", "options": [{ "label": "Default", "value": "" }, { "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": filterInputs_1.FilterTypes.Picker } }, "options": { "useNewChapterEndpoint": true, "lang": "English" } }); -exports.default = plugin; diff --git a/.js/plugins/english/OnlyMTL[madara].js b/.js/plugins/english/OnlyMTL[madara].js deleted file mode 100644 index 277344d..0000000 --- a/.js/plugins/english/OnlyMTL[madara].js +++ /dev/null @@ -1,295 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var dayjs_1 = __importDefault(require("dayjs")); -var MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; -var MadaraPlugin = /** @class */ (function () { - function MadaraPlugin(metadata) { - this.id = metadata.id; - this.name = metadata.sourceName + "[madara]"; - var iconFileName = metadata.sourceName - .replace(/\s+/g, "") - .toLowerCase(); - this.icon = "multisrc/madara/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - this.filters = metadata.filters; - } - MadaraPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - novels = []; - url = this.site; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) { - url += (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.path) === null || _d === void 0 ? void 0 : _d.genres) || MadaraDefaultPath.genres) + - "/" + - filters.genres.value; - } - else { - url += ((_f = (_e = this.options) === null || _e === void 0 ? void 0 : _e.path) === null || _f === void 0 ? void 0 : _f.novels) || MadaraDefaultPath.novels; - } - url += - "/page/" + - pageNo + - "/" + - "?m_orderby=" + - (showLatestNovels ? "latest" : ((_g = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _g === void 0 ? void 0 : _g.value) || "rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges").remove(); - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novel, body, loadedCheerio, html, novelId, formData, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges, #manga-title span").remove(); - novel.name = - loadedCheerio(".post-title h1").text().trim() || - loadedCheerio("#manga-title h1").text(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("data-lazy-src") || - loadedCheerio(".summary_image > a > img").attr("data-src") || - loadedCheerio(".summary_image > a > img").attr("src") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item, .post-content").each(function () { - var detailName = loadedCheerio(this).find("h5").text().trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - case "التصنيفات": - novel.genres = detail.replace(/[\\t\\n]/g, ","); - break; - case "Author(s)": - case "المؤلف": - case "المؤلف (ين)": - novel.author = detail; - break; - case "Status": - case "الحالة": - novel.status = - detail.includes("OnGoing") || detail.includes("مستمرة") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - loadedCheerio("div.summary__content .code-block,script").remove(); - novel.summary = - loadedCheerio("div.summary__content").text().trim() || - loadedCheerio("#tab-manga-about").text().trim() || - loadedCheerio('.post-content_item h5:contains("Summary")') - .next() - .text() - .trim(); - if (!(((_a = this.options) === null || _a === void 0 ? void 0 : _a.useNewChapterEndpoint) !== true)) return [3 /*break*/, 3]; - novelId = loadedCheerio(".rating-post-id").attr("value") || - loadedCheerio("#manga-chapters-holder").attr("data-id") || - ""; - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - }).then(function (res) { return res.text(); })]; - case 2: - html = _b.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl + "ajax/chapters/", { - method: "POST", - }).then(function (res) { return res.text(); })]; - case 4: - html = _b.sent(); - _b.label = 5; - case 5: - if (html !== "0") { - loadedCheerio = (0, cheerio_1.load)(html); - } - chapters = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - releaseDate = loadedCheerio(this) - .find("span.chapter-release-date") - .text() - .trim(); - if (releaseDate) { - releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(releaseDate); - } - else { - /** - * Insert current date - */ - releaseDate = (0, dayjs_1.default)().format("LL"); - } - var chapterUrl = loadedCheerio(this).find("a").attr("href") || ""; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MadaraPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || - loadedCheerio(".text-right").html() || - loadedCheerio(".entry-content").html() || - ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MadaraPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url, {})]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return MadaraPlugin; -}()); -var plugin = new MadaraPlugin({ "id": "onlymtl", "sourceSite": "https://www.onlymtl.com/", "sourceName": "OnlyMTL", "filters": {}, "options": { "useNewChapterEndpoint": true, "lang": "English" } }); -exports.default = plugin; diff --git a/.js/plugins/english/ReadWebNovels[madara].js b/.js/plugins/english/ReadWebNovels[madara].js deleted file mode 100644 index d42798c..0000000 --- a/.js/plugins/english/ReadWebNovels[madara].js +++ /dev/null @@ -1,296 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var dayjs_1 = __importDefault(require("dayjs")); -var MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; -var MadaraPlugin = /** @class */ (function () { - function MadaraPlugin(metadata) { - this.id = metadata.id; - this.name = metadata.sourceName + "[madara]"; - var iconFileName = metadata.sourceName - .replace(/\s+/g, "") - .toLowerCase(); - this.icon = "multisrc/madara/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - this.filters = metadata.filters; - } - MadaraPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - novels = []; - url = this.site; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) { - url += (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.path) === null || _d === void 0 ? void 0 : _d.genres) || MadaraDefaultPath.genres) + - "/" + - filters.genres.value; - } - else { - url += ((_f = (_e = this.options) === null || _e === void 0 ? void 0 : _e.path) === null || _f === void 0 ? void 0 : _f.novels) || MadaraDefaultPath.novels; - } - url += - "/page/" + - pageNo + - "/" + - "?m_orderby=" + - (showLatestNovels ? "latest" : ((_g = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _g === void 0 ? void 0 : _g.value) || "rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges").remove(); - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novel, body, loadedCheerio, html, novelId, formData, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges, #manga-title span").remove(); - novel.name = - loadedCheerio(".post-title h1").text().trim() || - loadedCheerio("#manga-title h1").text(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("data-lazy-src") || - loadedCheerio(".summary_image > a > img").attr("data-src") || - loadedCheerio(".summary_image > a > img").attr("src") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item, .post-content").each(function () { - var detailName = loadedCheerio(this).find("h5").text().trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - case "التصنيفات": - novel.genres = detail.replace(/[\\t\\n]/g, ","); - break; - case "Author(s)": - case "المؤلف": - case "المؤلف (ين)": - novel.author = detail; - break; - case "Status": - case "الحالة": - novel.status = - detail.includes("OnGoing") || detail.includes("مستمرة") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - loadedCheerio("div.summary__content .code-block,script").remove(); - novel.summary = - loadedCheerio("div.summary__content").text().trim() || - loadedCheerio("#tab-manga-about").text().trim() || - loadedCheerio('.post-content_item h5:contains("Summary")') - .next() - .text() - .trim(); - if (!(((_a = this.options) === null || _a === void 0 ? void 0 : _a.useNewChapterEndpoint) !== true)) return [3 /*break*/, 3]; - novelId = loadedCheerio(".rating-post-id").attr("value") || - loadedCheerio("#manga-chapters-holder").attr("data-id") || - ""; - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - }).then(function (res) { return res.text(); })]; - case 2: - html = _b.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl + "ajax/chapters/", { - method: "POST", - }).then(function (res) { return res.text(); })]; - case 4: - html = _b.sent(); - _b.label = 5; - case 5: - if (html !== "0") { - loadedCheerio = (0, cheerio_1.load)(html); - } - chapters = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - releaseDate = loadedCheerio(this) - .find("span.chapter-release-date") - .text() - .trim(); - if (releaseDate) { - releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(releaseDate); - } - else { - /** - * Insert current date - */ - releaseDate = (0, dayjs_1.default)().format("LL"); - } - var chapterUrl = loadedCheerio(this).find("a").attr("href") || ""; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MadaraPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || - loadedCheerio(".text-right").html() || - loadedCheerio(".entry-content").html() || - ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MadaraPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url, {})]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return MadaraPlugin; -}()); -var plugin = new MadaraPlugin({ "id": "readwebnovels", "sourceSite": "https://readwebnovels.net/", "sourceName": "ReadWebNovels", "filters": { "sort": { "label": "Order by", "value": "", "options": [{ "label": "Default", "value": "" }, { "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": filterInputs_1.FilterTypes.Picker } }, "options": { "lang": "English" } }); -exports.default = plugin; diff --git a/.js/plugins/english/SleepyTranslations[madara].js b/.js/plugins/english/SleepyTranslations[madara].js deleted file mode 100644 index b7fb8e6..0000000 --- a/.js/plugins/english/SleepyTranslations[madara].js +++ /dev/null @@ -1,296 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var dayjs_1 = __importDefault(require("dayjs")); -var MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; -var MadaraPlugin = /** @class */ (function () { - function MadaraPlugin(metadata) { - this.id = metadata.id; - this.name = metadata.sourceName + "[madara]"; - var iconFileName = metadata.sourceName - .replace(/\s+/g, "") - .toLowerCase(); - this.icon = "multisrc/madara/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - this.filters = metadata.filters; - } - MadaraPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - novels = []; - url = this.site; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) { - url += (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.path) === null || _d === void 0 ? void 0 : _d.genres) || MadaraDefaultPath.genres) + - "/" + - filters.genres.value; - } - else { - url += ((_f = (_e = this.options) === null || _e === void 0 ? void 0 : _e.path) === null || _f === void 0 ? void 0 : _f.novels) || MadaraDefaultPath.novels; - } - url += - "/page/" + - pageNo + - "/" + - "?m_orderby=" + - (showLatestNovels ? "latest" : ((_g = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _g === void 0 ? void 0 : _g.value) || "rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges").remove(); - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novel, body, loadedCheerio, html, novelId, formData, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges, #manga-title span").remove(); - novel.name = - loadedCheerio(".post-title h1").text().trim() || - loadedCheerio("#manga-title h1").text(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("data-lazy-src") || - loadedCheerio(".summary_image > a > img").attr("data-src") || - loadedCheerio(".summary_image > a > img").attr("src") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item, .post-content").each(function () { - var detailName = loadedCheerio(this).find("h5").text().trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - case "التصنيفات": - novel.genres = detail.replace(/[\\t\\n]/g, ","); - break; - case "Author(s)": - case "المؤلف": - case "المؤلف (ين)": - novel.author = detail; - break; - case "Status": - case "الحالة": - novel.status = - detail.includes("OnGoing") || detail.includes("مستمرة") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - loadedCheerio("div.summary__content .code-block,script").remove(); - novel.summary = - loadedCheerio("div.summary__content").text().trim() || - loadedCheerio("#tab-manga-about").text().trim() || - loadedCheerio('.post-content_item h5:contains("Summary")') - .next() - .text() - .trim(); - if (!(((_a = this.options) === null || _a === void 0 ? void 0 : _a.useNewChapterEndpoint) !== true)) return [3 /*break*/, 3]; - novelId = loadedCheerio(".rating-post-id").attr("value") || - loadedCheerio("#manga-chapters-holder").attr("data-id") || - ""; - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - }).then(function (res) { return res.text(); })]; - case 2: - html = _b.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl + "ajax/chapters/", { - method: "POST", - }).then(function (res) { return res.text(); })]; - case 4: - html = _b.sent(); - _b.label = 5; - case 5: - if (html !== "0") { - loadedCheerio = (0, cheerio_1.load)(html); - } - chapters = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - releaseDate = loadedCheerio(this) - .find("span.chapter-release-date") - .text() - .trim(); - if (releaseDate) { - releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(releaseDate); - } - else { - /** - * Insert current date - */ - releaseDate = (0, dayjs_1.default)().format("LL"); - } - var chapterUrl = loadedCheerio(this).find("a").attr("href") || ""; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MadaraPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || - loadedCheerio(".text-right").html() || - loadedCheerio(".entry-content").html() || - ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MadaraPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url, {})]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return MadaraPlugin; -}()); -var plugin = new MadaraPlugin({ "id": "sleeptTLS", "sourceSite": "https://sleepytranslations.com/", "sourceName": "SleepyTranslations", "filters": { "sort": { "label": "Order by", "options": [{ "label": "Default", "value": "" }, { "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" }], "value": "", "type": filterInputs_1.FilterTypes.Picker } }, "options": { "path": { "novels": "series", "novel": "series", "chapter": "series" }, "useNewChapterEndpoint": true, "lang": "English" } }); -exports.default = plugin; diff --git a/.js/plugins/english/SonicMTL[madara].js b/.js/plugins/english/SonicMTL[madara].js deleted file mode 100644 index fa08601..0000000 --- a/.js/plugins/english/SonicMTL[madara].js +++ /dev/null @@ -1,296 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var dayjs_1 = __importDefault(require("dayjs")); -var MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; -var MadaraPlugin = /** @class */ (function () { - function MadaraPlugin(metadata) { - this.id = metadata.id; - this.name = metadata.sourceName + "[madara]"; - var iconFileName = metadata.sourceName - .replace(/\s+/g, "") - .toLowerCase(); - this.icon = "multisrc/madara/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - this.filters = metadata.filters; - } - MadaraPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - novels = []; - url = this.site; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) { - url += (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.path) === null || _d === void 0 ? void 0 : _d.genres) || MadaraDefaultPath.genres) + - "/" + - filters.genres.value; - } - else { - url += ((_f = (_e = this.options) === null || _e === void 0 ? void 0 : _e.path) === null || _f === void 0 ? void 0 : _f.novels) || MadaraDefaultPath.novels; - } - url += - "/page/" + - pageNo + - "/" + - "?m_orderby=" + - (showLatestNovels ? "latest" : ((_g = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _g === void 0 ? void 0 : _g.value) || "rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges").remove(); - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novel, body, loadedCheerio, html, novelId, formData, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges, #manga-title span").remove(); - novel.name = - loadedCheerio(".post-title h1").text().trim() || - loadedCheerio("#manga-title h1").text(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("data-lazy-src") || - loadedCheerio(".summary_image > a > img").attr("data-src") || - loadedCheerio(".summary_image > a > img").attr("src") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item, .post-content").each(function () { - var detailName = loadedCheerio(this).find("h5").text().trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - case "التصنيفات": - novel.genres = detail.replace(/[\\t\\n]/g, ","); - break; - case "Author(s)": - case "المؤلف": - case "المؤلف (ين)": - novel.author = detail; - break; - case "Status": - case "الحالة": - novel.status = - detail.includes("OnGoing") || detail.includes("مستمرة") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - loadedCheerio("div.summary__content .code-block,script").remove(); - novel.summary = - loadedCheerio("div.summary__content").text().trim() || - loadedCheerio("#tab-manga-about").text().trim() || - loadedCheerio('.post-content_item h5:contains("Summary")') - .next() - .text() - .trim(); - if (!(((_a = this.options) === null || _a === void 0 ? void 0 : _a.useNewChapterEndpoint) !== true)) return [3 /*break*/, 3]; - novelId = loadedCheerio(".rating-post-id").attr("value") || - loadedCheerio("#manga-chapters-holder").attr("data-id") || - ""; - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - }).then(function (res) { return res.text(); })]; - case 2: - html = _b.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl + "ajax/chapters/", { - method: "POST", - }).then(function (res) { return res.text(); })]; - case 4: - html = _b.sent(); - _b.label = 5; - case 5: - if (html !== "0") { - loadedCheerio = (0, cheerio_1.load)(html); - } - chapters = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - releaseDate = loadedCheerio(this) - .find("span.chapter-release-date") - .text() - .trim(); - if (releaseDate) { - releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(releaseDate); - } - else { - /** - * Insert current date - */ - releaseDate = (0, dayjs_1.default)().format("LL"); - } - var chapterUrl = loadedCheerio(this).find("a").attr("href") || ""; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MadaraPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || - loadedCheerio(".text-right").html() || - loadedCheerio(".entry-content").html() || - ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MadaraPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url, {})]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return MadaraPlugin; -}()); -var plugin = new MadaraPlugin({ "id": "sonicmtl", "sourceSite": "https://www.sonicmtl.com/", "sourceName": "SonicMTL", "filters": { "sort": { "label": "Order by", "value": "", "options": [{ "label": "Default", "value": "" }, { "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": filterInputs_1.FilterTypes.Picker }, "genres": { "label": "GENRES", "value": "", "options": [{ "label": "NONE", "value": "" }, { "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": filterInputs_1.FilterTypes.Picker } }, "options": { "useNewChapterEndpoint": true, "lang": "English" } }); -exports.default = plugin; diff --git a/.js/plugins/english/SugarBabies[madara].js b/.js/plugins/english/SugarBabies[madara].js deleted file mode 100644 index 9a698e3..0000000 --- a/.js/plugins/english/SugarBabies[madara].js +++ /dev/null @@ -1,295 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var dayjs_1 = __importDefault(require("dayjs")); -var MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; -var MadaraPlugin = /** @class */ (function () { - function MadaraPlugin(metadata) { - this.id = metadata.id; - this.name = metadata.sourceName + "[madara]"; - var iconFileName = metadata.sourceName - .replace(/\s+/g, "") - .toLowerCase(); - this.icon = "multisrc/madara/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - this.filters = metadata.filters; - } - MadaraPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - novels = []; - url = this.site; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) { - url += (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.path) === null || _d === void 0 ? void 0 : _d.genres) || MadaraDefaultPath.genres) + - "/" + - filters.genres.value; - } - else { - url += ((_f = (_e = this.options) === null || _e === void 0 ? void 0 : _e.path) === null || _f === void 0 ? void 0 : _f.novels) || MadaraDefaultPath.novels; - } - url += - "/page/" + - pageNo + - "/" + - "?m_orderby=" + - (showLatestNovels ? "latest" : ((_g = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _g === void 0 ? void 0 : _g.value) || "rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges").remove(); - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novel, body, loadedCheerio, html, novelId, formData, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges, #manga-title span").remove(); - novel.name = - loadedCheerio(".post-title h1").text().trim() || - loadedCheerio("#manga-title h1").text(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("data-lazy-src") || - loadedCheerio(".summary_image > a > img").attr("data-src") || - loadedCheerio(".summary_image > a > img").attr("src") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item, .post-content").each(function () { - var detailName = loadedCheerio(this).find("h5").text().trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - case "التصنيفات": - novel.genres = detail.replace(/[\\t\\n]/g, ","); - break; - case "Author(s)": - case "المؤلف": - case "المؤلف (ين)": - novel.author = detail; - break; - case "Status": - case "الحالة": - novel.status = - detail.includes("OnGoing") || detail.includes("مستمرة") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - loadedCheerio("div.summary__content .code-block,script").remove(); - novel.summary = - loadedCheerio("div.summary__content").text().trim() || - loadedCheerio("#tab-manga-about").text().trim() || - loadedCheerio('.post-content_item h5:contains("Summary")') - .next() - .text() - .trim(); - if (!(((_a = this.options) === null || _a === void 0 ? void 0 : _a.useNewChapterEndpoint) !== true)) return [3 /*break*/, 3]; - novelId = loadedCheerio(".rating-post-id").attr("value") || - loadedCheerio("#manga-chapters-holder").attr("data-id") || - ""; - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - }).then(function (res) { return res.text(); })]; - case 2: - html = _b.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl + "ajax/chapters/", { - method: "POST", - }).then(function (res) { return res.text(); })]; - case 4: - html = _b.sent(); - _b.label = 5; - case 5: - if (html !== "0") { - loadedCheerio = (0, cheerio_1.load)(html); - } - chapters = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - releaseDate = loadedCheerio(this) - .find("span.chapter-release-date") - .text() - .trim(); - if (releaseDate) { - releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(releaseDate); - } - else { - /** - * Insert current date - */ - releaseDate = (0, dayjs_1.default)().format("LL"); - } - var chapterUrl = loadedCheerio(this).find("a").attr("href") || ""; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MadaraPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || - loadedCheerio(".text-right").html() || - loadedCheerio(".entry-content").html() || - ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MadaraPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url, {})]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return MadaraPlugin; -}()); -var plugin = new MadaraPlugin({ "id": "sugarbbscan", "sourceSite": "https://sugarbbscan.com/", "sourceName": "Sugar Babies", "filters": {}, "options": { "path": { "novels": "series", "novel": "series", "chapter": "series" }, "lang": "English" } }); -exports.default = plugin; diff --git a/.js/plugins/english/SweetEscapeTranslations[madara].js b/.js/plugins/english/SweetEscapeTranslations[madara].js deleted file mode 100644 index 81d55c4..0000000 --- a/.js/plugins/english/SweetEscapeTranslations[madara].js +++ /dev/null @@ -1,296 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var dayjs_1 = __importDefault(require("dayjs")); -var MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; -var MadaraPlugin = /** @class */ (function () { - function MadaraPlugin(metadata) { - this.id = metadata.id; - this.name = metadata.sourceName + "[madara]"; - var iconFileName = metadata.sourceName - .replace(/\s+/g, "") - .toLowerCase(); - this.icon = "multisrc/madara/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - this.filters = metadata.filters; - } - MadaraPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - novels = []; - url = this.site; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) { - url += (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.path) === null || _d === void 0 ? void 0 : _d.genres) || MadaraDefaultPath.genres) + - "/" + - filters.genres.value; - } - else { - url += ((_f = (_e = this.options) === null || _e === void 0 ? void 0 : _e.path) === null || _f === void 0 ? void 0 : _f.novels) || MadaraDefaultPath.novels; - } - url += - "/page/" + - pageNo + - "/" + - "?m_orderby=" + - (showLatestNovels ? "latest" : ((_g = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _g === void 0 ? void 0 : _g.value) || "rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges").remove(); - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novel, body, loadedCheerio, html, novelId, formData, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges, #manga-title span").remove(); - novel.name = - loadedCheerio(".post-title h1").text().trim() || - loadedCheerio("#manga-title h1").text(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("data-lazy-src") || - loadedCheerio(".summary_image > a > img").attr("data-src") || - loadedCheerio(".summary_image > a > img").attr("src") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item, .post-content").each(function () { - var detailName = loadedCheerio(this).find("h5").text().trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - case "التصنيفات": - novel.genres = detail.replace(/[\\t\\n]/g, ","); - break; - case "Author(s)": - case "المؤلف": - case "المؤلف (ين)": - novel.author = detail; - break; - case "Status": - case "الحالة": - novel.status = - detail.includes("OnGoing") || detail.includes("مستمرة") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - loadedCheerio("div.summary__content .code-block,script").remove(); - novel.summary = - loadedCheerio("div.summary__content").text().trim() || - loadedCheerio("#tab-manga-about").text().trim() || - loadedCheerio('.post-content_item h5:contains("Summary")') - .next() - .text() - .trim(); - if (!(((_a = this.options) === null || _a === void 0 ? void 0 : _a.useNewChapterEndpoint) !== true)) return [3 /*break*/, 3]; - novelId = loadedCheerio(".rating-post-id").attr("value") || - loadedCheerio("#manga-chapters-holder").attr("data-id") || - ""; - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - }).then(function (res) { return res.text(); })]; - case 2: - html = _b.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl + "ajax/chapters/", { - method: "POST", - }).then(function (res) { return res.text(); })]; - case 4: - html = _b.sent(); - _b.label = 5; - case 5: - if (html !== "0") { - loadedCheerio = (0, cheerio_1.load)(html); - } - chapters = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - releaseDate = loadedCheerio(this) - .find("span.chapter-release-date") - .text() - .trim(); - if (releaseDate) { - releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(releaseDate); - } - else { - /** - * Insert current date - */ - releaseDate = (0, dayjs_1.default)().format("LL"); - } - var chapterUrl = loadedCheerio(this).find("a").attr("href") || ""; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MadaraPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || - loadedCheerio(".text-right").html() || - loadedCheerio(".entry-content").html() || - ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MadaraPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url, {})]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return MadaraPlugin; -}()); -var plugin = new MadaraPlugin({ "id": "sweetEscapeTL", "sourceSite": "https://sweetescapetranslations.com/", "sourceName": "Sweet Escape Translations", "filters": { "sort": { "label": "Order by", "value": "", "options": [{ "label": "Default", "value": "" }, { "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": filterInputs_1.FilterTypes.Picker }, "genres": { "label": "GENRES", "value": "", "options": [{ "label": "NONE", "value": "" }, { "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": filterInputs_1.FilterTypes.Picker } }, "options": { "path": { "novels": "manga", "novel": "manga", "chapter": "manga", "genres": "manga-genre" }, "useNewChapterEndpoint": false, "lang": "English" } }); -exports.default = plugin; diff --git a/.js/plugins/english/WebNovelLover[madara].js b/.js/plugins/english/WebNovelLover[madara].js deleted file mode 100644 index 182071d..0000000 --- a/.js/plugins/english/WebNovelLover[madara].js +++ /dev/null @@ -1,296 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var dayjs_1 = __importDefault(require("dayjs")); -var MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; -var MadaraPlugin = /** @class */ (function () { - function MadaraPlugin(metadata) { - this.id = metadata.id; - this.name = metadata.sourceName + "[madara]"; - var iconFileName = metadata.sourceName - .replace(/\s+/g, "") - .toLowerCase(); - this.icon = "multisrc/madara/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - this.filters = metadata.filters; - } - MadaraPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - novels = []; - url = this.site; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) { - url += (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.path) === null || _d === void 0 ? void 0 : _d.genres) || MadaraDefaultPath.genres) + - "/" + - filters.genres.value; - } - else { - url += ((_f = (_e = this.options) === null || _e === void 0 ? void 0 : _e.path) === null || _f === void 0 ? void 0 : _f.novels) || MadaraDefaultPath.novels; - } - url += - "/page/" + - pageNo + - "/" + - "?m_orderby=" + - (showLatestNovels ? "latest" : ((_g = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _g === void 0 ? void 0 : _g.value) || "rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges").remove(); - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novel, body, loadedCheerio, html, novelId, formData, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges, #manga-title span").remove(); - novel.name = - loadedCheerio(".post-title h1").text().trim() || - loadedCheerio("#manga-title h1").text(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("data-lazy-src") || - loadedCheerio(".summary_image > a > img").attr("data-src") || - loadedCheerio(".summary_image > a > img").attr("src") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item, .post-content").each(function () { - var detailName = loadedCheerio(this).find("h5").text().trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - case "التصنيفات": - novel.genres = detail.replace(/[\\t\\n]/g, ","); - break; - case "Author(s)": - case "المؤلف": - case "المؤلف (ين)": - novel.author = detail; - break; - case "Status": - case "الحالة": - novel.status = - detail.includes("OnGoing") || detail.includes("مستمرة") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - loadedCheerio("div.summary__content .code-block,script").remove(); - novel.summary = - loadedCheerio("div.summary__content").text().trim() || - loadedCheerio("#tab-manga-about").text().trim() || - loadedCheerio('.post-content_item h5:contains("Summary")') - .next() - .text() - .trim(); - if (!(((_a = this.options) === null || _a === void 0 ? void 0 : _a.useNewChapterEndpoint) !== true)) return [3 /*break*/, 3]; - novelId = loadedCheerio(".rating-post-id").attr("value") || - loadedCheerio("#manga-chapters-holder").attr("data-id") || - ""; - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - }).then(function (res) { return res.text(); })]; - case 2: - html = _b.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl + "ajax/chapters/", { - method: "POST", - }).then(function (res) { return res.text(); })]; - case 4: - html = _b.sent(); - _b.label = 5; - case 5: - if (html !== "0") { - loadedCheerio = (0, cheerio_1.load)(html); - } - chapters = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - releaseDate = loadedCheerio(this) - .find("span.chapter-release-date") - .text() - .trim(); - if (releaseDate) { - releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(releaseDate); - } - else { - /** - * Insert current date - */ - releaseDate = (0, dayjs_1.default)().format("LL"); - } - var chapterUrl = loadedCheerio(this).find("a").attr("href") || ""; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MadaraPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || - loadedCheerio(".text-right").html() || - loadedCheerio(".entry-content").html() || - ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MadaraPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url, {})]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return MadaraPlugin; -}()); -var plugin = new MadaraPlugin({ "id": "webnovelover", "sourceSite": "https://www.webnovelover.com/", "sourceName": "WebNovelLover", "filters": { "sort": { "label": "Order by", "value": "", "options": [{ "label": "Default", "value": "" }, { "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": filterInputs_1.FilterTypes.Picker }, "genres": { "label": "GENRES", "value": "", "options": [{ "label": "NONE", "value": "" }, { "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": filterInputs_1.FilterTypes.Picker } }, "options": { "lang": "English" } }); -exports.default = plugin; diff --git a/.js/plugins/english/WuxiaWorldSite[madara].js b/.js/plugins/english/WuxiaWorldSite[madara].js deleted file mode 100644 index 620927b..0000000 --- a/.js/plugins/english/WuxiaWorldSite[madara].js +++ /dev/null @@ -1,296 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var dayjs_1 = __importDefault(require("dayjs")); -var MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; -var MadaraPlugin = /** @class */ (function () { - function MadaraPlugin(metadata) { - this.id = metadata.id; - this.name = metadata.sourceName + "[madara]"; - var iconFileName = metadata.sourceName - .replace(/\s+/g, "") - .toLowerCase(); - this.icon = "multisrc/madara/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - this.filters = metadata.filters; - } - MadaraPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - novels = []; - url = this.site; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) { - url += (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.path) === null || _d === void 0 ? void 0 : _d.genres) || MadaraDefaultPath.genres) + - "/" + - filters.genres.value; - } - else { - url += ((_f = (_e = this.options) === null || _e === void 0 ? void 0 : _e.path) === null || _f === void 0 ? void 0 : _f.novels) || MadaraDefaultPath.novels; - } - url += - "/page/" + - pageNo + - "/" + - "?m_orderby=" + - (showLatestNovels ? "latest" : ((_g = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _g === void 0 ? void 0 : _g.value) || "rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges").remove(); - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novel, body, loadedCheerio, html, novelId, formData, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges, #manga-title span").remove(); - novel.name = - loadedCheerio(".post-title h1").text().trim() || - loadedCheerio("#manga-title h1").text(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("data-lazy-src") || - loadedCheerio(".summary_image > a > img").attr("data-src") || - loadedCheerio(".summary_image > a > img").attr("src") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item, .post-content").each(function () { - var detailName = loadedCheerio(this).find("h5").text().trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - case "التصنيفات": - novel.genres = detail.replace(/[\\t\\n]/g, ","); - break; - case "Author(s)": - case "المؤلف": - case "المؤلف (ين)": - novel.author = detail; - break; - case "Status": - case "الحالة": - novel.status = - detail.includes("OnGoing") || detail.includes("مستمرة") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - loadedCheerio("div.summary__content .code-block,script").remove(); - novel.summary = - loadedCheerio("div.summary__content").text().trim() || - loadedCheerio("#tab-manga-about").text().trim() || - loadedCheerio('.post-content_item h5:contains("Summary")') - .next() - .text() - .trim(); - if (!(((_a = this.options) === null || _a === void 0 ? void 0 : _a.useNewChapterEndpoint) !== true)) return [3 /*break*/, 3]; - novelId = loadedCheerio(".rating-post-id").attr("value") || - loadedCheerio("#manga-chapters-holder").attr("data-id") || - ""; - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - }).then(function (res) { return res.text(); })]; - case 2: - html = _b.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl + "ajax/chapters/", { - method: "POST", - }).then(function (res) { return res.text(); })]; - case 4: - html = _b.sent(); - _b.label = 5; - case 5: - if (html !== "0") { - loadedCheerio = (0, cheerio_1.load)(html); - } - chapters = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - releaseDate = loadedCheerio(this) - .find("span.chapter-release-date") - .text() - .trim(); - if (releaseDate) { - releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(releaseDate); - } - else { - /** - * Insert current date - */ - releaseDate = (0, dayjs_1.default)().format("LL"); - } - var chapterUrl = loadedCheerio(this).find("a").attr("href") || ""; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MadaraPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || - loadedCheerio(".text-right").html() || - loadedCheerio(".entry-content").html() || - ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MadaraPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url, {})]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return MadaraPlugin; -}()); -var plugin = new MadaraPlugin({ "id": "wuxiaworld.site", "sourceSite": "https://wuxiaworld.site/", "sourceName": "WuxiaWorld.Site", "filters": { "sort": { "label": "Order by", "value": "", "options": [{ "label": "Default", "value": "" }, { "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": filterInputs_1.FilterTypes.Picker } }, "options": { "useNewChapterEndpoint": true, "lang": "English" } }); -exports.default = plugin; diff --git a/.js/plugins/english/Wuxiacity[readwn].js b/.js/plugins/english/Wuxiacity[readwn].js deleted file mode 100644 index 98fa188..0000000 --- a/.js/plugins/english/Wuxiacity[readwn].js +++ /dev/null @@ -1,209 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var cheerio_1 = require("cheerio"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var ReadwnPlugin = /** @class */ (function () { - function ReadwnPlugin(metadata) { - this.fetchImage = fetch_1.fetchFile; - this.id = metadata.id; - this.name = metadata.sourceName + "[readwn]"; - var iconFileName = metadata.sourceName.replace(/\s+/g, "").toLowerCase(); - this.icon = "multisrc/readwn/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.filters = metadata.filters; - } - ReadwnPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var url, body, loadedCheerio, novels; - var _this = this; - return __generator(this, function (_f) { - switch (_f.label) { - case 0: - url = this.site + "/list/"; - url += (((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) || "all") + "/"; - url += (((_c = filters === null || filters === void 0 ? void 0 : filters.status) === null || _c === void 0 ? void 0 : _c.value) || "all") + "-"; - url += showLatestNovels ? "lastdotime" : ((_d = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _d === void 0 ? void 0 : _d.value) || "newstime"; - url += "-" + (pageNo - 1) + ".html"; - if ((_e = filters === null || filters === void 0 ? void 0 : filters.tags) === null || _e === void 0 ? void 0 : _e.value) { //only 1 page - url = this.site + "/tags/" + filters.tags.value + "-0.html"; - } - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _f.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = loadedCheerio("li.novel-item") - .map(function (index, element) { return ({ - name: loadedCheerio(element).find("h4").text(), - cover: _this.site + - loadedCheerio(element).find(".novel-cover > img").attr("data-src"), - url: _this.site + loadedCheerio(element).find("a").attr("href"), - }); }) - .get(); - return [2 /*return*/, novels]; - } - }); - }); - }; - ReadwnPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, novel, latestChapterNo, chapters, lastChapterNo, i; - var _this = this; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { - url: novelUrl, - }; - novel.name = loadedCheerio("h1.novel-title").text(); - novel.author = loadedCheerio("span[itemprop=author]").text(); - novel.cover = this.site + loadedCheerio("figure.cover > img").attr("data-src"); - novel.summary = loadedCheerio(".summary") - .text() - .replace("Summary", "") - .trim(); - novel.genres = loadedCheerio("div.categories > ul > li") - .map(function (index, element) { var _a; return (_a = loadedCheerio(element).text()) === null || _a === void 0 ? void 0 : _a.trim(); }) - .get() - .join(","); - loadedCheerio("div.header-stats > span").each(function () { - if (loadedCheerio(this).find("small").text() === "Status") { - novel.status = loadedCheerio(this).find("strong").text(); - } - }); - latestChapterNo = parseInt(loadedCheerio(".header-stats") - .find("span > strong") - .first() - .text() - .trim()); - chapters = loadedCheerio(".chapter-list li") - .map(function (index, element) { - var _a; - var name = loadedCheerio(element).find("a .chapter-title").text().trim(); - var url = (_a = loadedCheerio(element).find("a").attr("href")) === null || _a === void 0 ? void 0 : _a.trim(); - var releaseTime = loadedCheerio(element).find("a .chapter-update").text().trim(); - if (!name || !url) - return null; - return { - name: name, - releaseTime: (0, parseMadaraDate_1.parseMadaraDate)(releaseTime), - url: _this.site + url, - }; - }) - .get() - .filter(function (chapter) { return chapter; }); - if (latestChapterNo > chapters.length) { - lastChapterNo = parseInt(((_a = chapters[chapters.length - 1].url.match(/_(\d+)\.html/)) === null || _a === void 0 ? void 0 : _a[1]) || "", 10); - for (i = (lastChapterNo || chapters.length) + 1; i <= latestChapterNo; i++) { - chapters.push({ - name: "Chapter " + i, - releaseTime: null, - url: novelUrl.replace(".html", "_" + i + ".html"), - }); - } - } - novel.chapters = chapters; - return [2 /*return*/, novel]; - } - }); - }); - }; - ReadwnPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".chapter-content").html() || ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - ReadwnPlugin.prototype.searchNovels = function (keyboard) { - return __awaiter(this, void 0, void 0, function () { - var result, loadedCheerio, novels; - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "/e/search/index.php", { - headers: { - "Content-Type": "application/x-www-form-urlencoded", - Referer: this.site + "/search.html", - Origin: this.site, - "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36", - }, - method: "POST", - body: JSON.stringify({ - show: "title", - tempid: 1, - tbname: "news", - keyboard: keyboard, - }), - }).then(function (res) { return res.text(); })]; - case 1: - result = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(result); - novels = loadedCheerio("li.novel-item") - .map(function (index, element) { return ({ - name: loadedCheerio(element).find("h4").text(), - cover: _this.site + loadedCheerio(element).find("img").attr("data-src"), - url: _this.site + loadedCheerio(element).find("a").attr("href"), - }); }) - .get(); - return [2 /*return*/, novels]; - } - }); - }); - }; - return ReadwnPlugin; -}()); -var plugin = new ReadwnPlugin({ "id": "wuxiacity", "sourceSite": "https://www.wuxiacity.com", "sourceName": "Wuxiacity", "filters": { "sort": { "label": "Sort By", "options": [{ "label": "New", "value": "newstime" }, { "label": "Popular", "value": "onclick" }, { "label": "Updates", "value": "lastdotime" }], "value": "newstime", "type": filterInputs_1.FilterTypes.Picker }, "status": { "label": "Status", "options": [{ "label": "All", "value": "all" }, { "label": "Completed", "value": "Completed" }, { "label": "Ongoing", "value": "Ongoing" }], "value": "all", "type": filterInputs_1.FilterTypes.Picker }, "genres": { "label": "Genre / Category", "options": [{ "label": "All", "value": "all" }, { "label": "Action", "value": "action" }, { "label": "Adventure", "value": "adventure" }, { "label": "Comedy", "value": "comedy" }, { "label": "Contemporary Romance", "value": "contemporary-romance" }, { "label": "Drama", "value": "drama" }, { "label": "Eastern Fantasy", "value": "eastern-fantasy" }, { "label": "Fantasy", "value": "fantasy" }, { "label": "Fantasy Romance", "value": "fantasy-romance" }, { "label": "Game", "value": "game" }, { "label": "Gender Bender", "value": "gender-bender" }, { "label": "Harem", "value": "harem" }, { "label": "Historical", "value": "historical" }, { "label": "Horror", "value": "horror" }, { "label": "Josei", "value": "josei" }, { "label": "Lolicon", "value": "lolicon" }, { "label": "Magical Realism", "value": "magical-realism" }, { "label": "Martial Arts", "value": "martial-arts" }, { "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": "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": "Video Games", "value": "video-games" }, { "label": "Wuxia", "value": "wuxia" }, { "label": "Xianxia", "value": "xianxia" }, { "label": "Xuanhuan", "value": "xuanhuan" }, { "label": "Yaoi", "value": "yaoi" }, { "label": "Chinese", "value": "chinese" }, { "label": "Erciyuan", "value": "erciyuan" }, { "label": "Faloo", "value": "faloo" }, { "label": "Fan-Fiction", "value": "fan-fiction" }, { "label": "Hentai", "value": "hentai" }, { "label": "Isekai", "value": "isekai" }, { "label": "Japanese", "value": "japanese" }, { "label": "Korean", "value": "korean" }, { "label": "Magic", "value": "magic" }, { "label": "Military", "value": "military" }, { "label": "Official Circles", "value": "official_circles" }, { "label": "Science Fiction", "value": "science_fiction" }, { "label": "Shoujo Ai", "value": "shoujo-ai" }, { "label": "Suspense Thriller", "value": "suspense_thriller" }, { "label": "Travel Through Time", "value": "travel_through_time" }, { "label": "Two-dimensional", "value": "two-dimensional" }, { "label": "Urban", "value": "urban" }, { "label": "Urban Life", "value": "urban-life" }, { "label": "Virtual Reality", "value": "virtual-reality" }, { "label": "Wuxia Xianxia", "value": "wuxia_xianxia" }, { "label": "Yuri", "value": "yuri" }, { "label": "Billionaire", "value": "billionaire" }, { "label": "CEO", "value": "ceo" }, { "label": "Chinese", "value": "chinese" }, { "label": "Ecchi", "value": "ecchi" }, { "label": "Erciyuan", "value": "erciyuan" }, { "label": "Faloo", "value": "faloo" }, { "label": "Fan-Fiction", "value": "fan-fiction" }, { "label": "Farming", "value": "farming" }, { "label": "Games", "value": "games" }, { "label": "Gay Romance", "value": "gay-romance" }, { "label": "Historical Romance", "value": "historical-romance" }, { "label": "Isekai", "value": "isekai" }, { "label": "Japanese", "value": "japanese" }, { "label": "Korean", "value": "korean" }, { "label": "Magic", "value": "magic" }, { "label": "Military", "value": "military" }, { "label": "Modern Life", "value": "modern-life" }, { "label": "Modern Romance", "value": "modern-romance" }, { "label": "Romantic", "value": "romantic" }, { "label": "Shoujo Ai", "value": "shoujo-ai" }, { "label": "Smut", "value": "smut" }, { "label": "Two-dimensional", "value": "two-dimensional" }, { "label": "Urban", "value": "urban" }, { "label": "Urban Life", "value": "urban-life" }, { "label": "Virtual Reality", "value": "virtual-reality" }, { "label": "Yuri", "value": "yuri" }], "value": "", "type": filterInputs_1.FilterTypes.Picker }, "tags": { "label": "Tags", "options": [{ "label": "Default", "value": "" }, { "label": "☆Crazy→M", "value": "5728" }, { "label": "A.I", "value": "4862" }, { "label": "a55421", "value": "6070" }, { "label": "Aaron&0", "value": "2064" }, { "label": "AbaloneHou", "value": "5017" }, { "label": "Abandoned", "value": "5452" }, { "label": "AbandonedC", "value": "145" }, { "label": "AbandonedC", "value": "1597" }, { "label": "abandonedw", "value": "3327" }, { "label": "Abilities", "value": "1691" }, { "label": "Ability", "value": "1203" }, { "label": "AbilitySte", "value": "289" }, { "label": "ABO", "value": "930" }, { "label": "Abortion", "value": "1696" }, { "label": "ABowlofCar", "value": "4168" }, { "label": "Abowlofduk", "value": "4398" }, { "label": "AbsentPare", "value": "240" }, { "label": "AbsoluteDu", "value": "1670" }, { "label": "absolutely", "value": "2255" }, { "label": "Absorbform", "value": "3681" }, { "label": "Abuse", "value": "856" }, { "label": "AbusiveCha", "value": "1" }, { "label": "AbusiveCha", "value": "815" }, { "label": "Abyss", "value": "3971" }, { "label": "Academy", "value": "50" }, { "label": "Acane", "value": "5993" }, { "label": "acanofcoke", "value": "4689" }, { "label": "AcasualPaw", "value": "806" }, { "label": "Accelerate", "value": "51" }, { "label": "AcceptingD", "value": "1507" }, { "label": "ACGN", "value": "1653" }, { "label": "acloudpier", "value": "4002" }, { "label": "Acorneroft", "value": "5910" }, { "label": "Acting", "value": "103" }, { "label": "Action", "value": "90" }, { "label": "Actors", "value": "1101" }, { "label": "Actress", "value": "1526" }, { "label": "Acupoffrag", "value": "4815" }, { "label": "acupofwarm", "value": "3745" }, { "label": "AdaptedtoA", "value": "87" }, { "label": "AdaptedtoD", "value": "146" }, { "label": "AdaptedtoD", "value": "495" }, { "label": "AdaptedtoG", "value": "334" }, { "label": "AdaptedtoM", "value": "88" }, { "label": "AdaptedtoM", "value": "239" }, { "label": "AdaptedtoM", "value": "677" }, { "label": "AdaptedtoM", "value": "147" }, { "label": "AdaptedtoV", "value": "973" }, { "label": "ADeadBody", "value": "5069" }, { "label": "Administra", "value": "5659" }, { "label": "Admiral-sa", "value": "4680" }, { "label": "Adopted", "value": "1300" }, { "label": "AdoptedChi", "value": "262" }, { "label": "AdoptedPro", "value": "270" }, { "label": "Adoption", "value": "1697" }, { "label": "adreamcome", "value": "4569" }, { "label": "Adrogynous", "value": "1105" }, { "label": "Adult", "value": "1448" }, { "label": "Adultery", "value": "433" }, { "label": "AdvancedKn", "value": "1564" }, { "label": "advancedte", "value": "1661" }, { "label": "adventerer", "value": "3416" }, { "label": "Adventure", "value": "943" }, { "label": "adventurep", "value": "3942" }, { "label": "Adventurer", "value": "276" }, { "label": "Adventurer", "value": "4342" }, { "label": "Affair", "value": "670" }, { "label": "afigure", "value": "5843" }, { "label": "afinegray", "value": "4804" }, { "label": "AfricanEmi", "value": "1894" }, { "label": "afterthera", "value": "4489" }, { "label": "Afterthesh", "value": "3231" }, { "label": "Aftertheso", "value": "1818" }, { "label": "Afunnyguy", "value": "3697" }, { "label": "Age-gap", "value": "1943" }, { "label": "AgeDiffere", "value": "939" }, { "label": "AgeGap", "value": "1642" }, { "label": "Agent", "value": "3605" }, { "label": "AgeofGods", "value": "1897" }, { "label": "AgeProgres", "value": "206" }, { "label": "AgeRegress", "value": "436" }, { "label": "AggresiveC", "value": "1284" }, { "label": "Aggressive", "value": "242" }, { "label": "Aggressive", "value": "1476" }, { "label": "aglassofhu", "value": "4049" }, { "label": "Agleamoffl", "value": "4483" }, { "label": "agluttonou", "value": "4884" }, { "label": "agrass", "value": "1893" }, { "label": "Ahbig", "value": "5530" }, { "label": "aheart", "value": "4219" }, { "label": "AhQing", "value": "3965" }, { "label": "ahundredth", "value": "3475" }, { "label": "ahveryfish", "value": "1876" }, { "label": "AI", "value": "788" }, { "label": "AI-chip", "value": "1181" }, { "label": "AiAiwhowor", "value": "5491" }, { "label": "ailii", "value": "4923" }, { "label": "Aimingatth", "value": "5897" }, { "label": "airflow", "value": "3266" }, { "label": "airflowgen", "value": "3051" }, { "label": "Aishara", "value": "4885" }, { "label": "AJiu", "value": "5892" }, { "label": "ajugofsake", "value": "5736" }, { "label": "AkamegaKil", "value": "1040" }, { "label": "AkiraHayak", "value": "4595" }, { "label": "akitten", "value": "4536" }, { "label": "AladleofCh", "value": "5873" }, { "label": "alazybones", "value": "5295" }, { "label": "alazyscale", "value": "4096" }, { "label": "Alchemist", "value": "1000" }, { "label": "Alchemy", "value": "52" }, { "label": "AliceSupre", "value": "4557" }, { "label": "Alicia", "value": "3758" }, { "label": "Alien", "value": "3111" }, { "label": "Aliens", "value": "243" }, { "label": "alittlebit", "value": "4546" }, { "label": "AlittleJun", "value": "4921" }, { "label": "alittlewol", "value": "4232" }, { "label": "Aliverday", "value": "2656" }, { "label": "All-GirlsS", "value": "1024" }, { "label": "Alldaylong", "value": "4316" }, { "label": "allenzhang", "value": "2015" }, { "label": "allergytoe", "value": "3665" }, { "label": "AllHeavens", "value": "2348" }, { "label": "Alloverthe", "value": "3897" }, { "label": "Almighty", "value": "3265" }, { "label": "AlmightyCo", "value": "2778" }, { "label": "Almightypl", "value": "2780" }, { "label": "Almostsir", "value": "4238" }, { "label": "Alone", "value": "2610" }, { "label": "Alpaca", "value": "5616" }, { "label": "alpha", "value": "4340" }, { "label": "alsothough", "value": "4775" }, { "label": "AltecNewco", "value": "5298" }, { "label": "AlterateHi", "value": "2902" }, { "label": "AlternateH", "value": "1256" }, { "label": "AlternateH", "value": "3026" }, { "label": "AlternateH", "value": "2995" }, { "label": "AlternateH", "value": "2948" }, { "label": "AlternateW", "value": "220" }, { "label": "Alternativ", "value": "3836" }, { "label": "AmadaR", "value": "5792" }, { "label": "Amagicpill", "value": "2434" }, { "label": "AmanChuanl", "value": "5841" }, { "label": "Amatchmade", "value": "6129" }, { "label": "amateurtra", "value": "6059" }, { "label": "amberstar", "value": "4087" }, { "label": "ambitionin", "value": "4853" }, { "label": "Amelonisno", "value": "5026" }, { "label": "America", "value": "3285" }, { "label": "Americaiss", "value": "3450" }, { "label": "AmericanCo", "value": "2899" }, { "label": "Americas", "value": "2903" }, { "label": "Amis", "value": "5279" }, { "label": "Amnesia", "value": "244" }, { "label": "Amnesty", "value": "5965" }, { "label": "Amon&03", "value": "3740" }, { "label": "amoonrabbi", "value": "4877" }, { "label": "AmoralityP", "value": "1044" }, { "label": "Amouthfulo", "value": "3980" }, { "label": "AmusementP", "value": "766" }, { "label": "An83", "value": "5020" }, { "label": "Anal", "value": "53" }, { "label": "anamewithd", "value": "5019" }, { "label": "Anarchism", "value": "3855" }, { "label": "Anas", "value": "3764" }, { "label": "Anautumnra", "value": "2577" }, { "label": "Ancestralf", "value": "3352" }, { "label": "ancestry", "value": "5826" }, { "label": "Ancient", "value": "1546" }, { "label": "AncientArm", "value": "5701" }, { "label": "AncientBus", "value": "1257" }, { "label": "AncientChi", "value": "34" }, { "label": "AncientChi", "value": "2892" }, { "label": "AncientChi", "value": "424" }, { "label": "ancientlov", "value": "5680" }, { "label": "Ancientmar", "value": "6150" }, { "label": "AncientRea", "value": "1478" }, { "label": "ancientset", "value": "1465" }, { "label": "AncientSpi", "value": "3235" }, { "label": "ancienttim", "value": "1049" }, { "label": "AncientTim", "value": "149" }, { "label": "AncientWea", "value": "1730" }, { "label": "ancientwei", "value": "3637" }, { "label": "ancientwil", "value": "3432" }, { "label": "andfall", "value": "4373" }, { "label": "Androgynou", "value": "318" }, { "label": "Androids", "value": "471" }, { "label": "anewworld", "value": "1425" }, { "label": "Angel", "value": "1589" }, { "label": "Angel&0", "value": "6127" }, { "label": "angeldoom", "value": "4089" }, { "label": "AngelofGai", "value": "4636" }, { "label": "AngelPeerl", "value": "4059" }, { "label": "Angels", "value": "369" }, { "label": "anglemetal", "value": "5414" }, { "label": "AngryChick", "value": "4426" }, { "label": "angryhouse", "value": "2331" }, { "label": "Angst", "value": "1007" }, { "label": "AnimalChar", "value": "120" }, { "label": "AnimalRear", "value": "453" }, { "label": "animals", "value": "1694" }, { "label": "Animator", "value": "1704" }, { "label": "Anime", "value": "759" }, { "label": "animenewco", "value": "2208" }, { "label": "Anl", "value": "189" }, { "label": "AnlanInvin", "value": "2842" }, { "label": "AnNuan84", "value": "6085" }, { "label": "anoldliqun", "value": "3792" }, { "label": "anoldman", "value": "2268" }, { "label": "Anon", "value": "4223" }, { "label": "Anonymous", "value": "5229" }, { "label": "Anonymouso", "value": "5420" }, { "label": "AnonymousX", "value": "4816" }, { "label": "anorangetr", "value": "4389" }, { "label": "anotherpac", "value": "4138" }, { "label": "AnotherWor", "value": "899" }, { "label": "AnotherWor", "value": "1550" }, { "label": "anovernigh", "value": "5407" }, { "label": "anthology", "value": "1440" }, { "label": "anti-entro", "value": "3820" }, { "label": "Anti-Hero", "value": "1174" }, { "label": "Anti-HeroL", "value": "782" }, { "label": "Anti-heroP", "value": "1171" }, { "label": "Anti-Japan", "value": "3269" }, { "label": "Anti-Magic", "value": "688" }, { "label": "Anti-MC", "value": "2916" }, { "label": "Anti-routi", "value": "3096" }, { "label": "Anti-routi", "value": "3073" }, { "label": "Anti-socia", "value": "454" }, { "label": "AntiHero", "value": "816" }, { "label": "AntiheroPr", "value": "36" }, { "label": "AntiqueSho", "value": "619" }, { "label": "AoChen", "value": "5731" }, { "label": "Aoyamafell", "value": "5662" }, { "label": "AozakiAoko", "value": "4811" }, { "label": "apapertige", "value": "4603" }, { "label": "ApartmentL", "value": "725" }, { "label": "apassingfi", "value": "4891" }, { "label": "Apassingfo", "value": "5913" }, { "label": "ApatheticP", "value": "295" }, { "label": "apieceofno", "value": "3498" }, { "label": "apigeon", "value": "5029" }, { "label": "Apocalypse", "value": "89" }, { "label": "Apocalypse", "value": "5466" }, { "label": "Apocalypse", "value": "1233" }, { "label": "Apocalypse", "value": "1081" }, { "label": "Apocalypti", "value": "1485" }, { "label": "ApostleCel", "value": "5858" }, { "label": "Apotofrefr", "value": "5865" }, { "label": "Appearance", "value": "54" }, { "label": "Appearance", "value": "104" }, { "label": "Apple", "value": "1962" }, { "label": "Appraisal", "value": "1180" }, { "label": "Apprentice", "value": "1376" }, { "label": "aquablue", "value": "3642" }, { "label": "Aquadoesn&", "value": "4050" }, { "label": "arayofsuns", "value": "2126" }, { "label": "Arbor11", "value": "3673" }, { "label": "archeology", "value": "3629" }, { "label": "Archer", "value": "2590" }, { "label": "Archery", "value": "411" }, { "label": "Aresstream", "value": "3214" }, { "label": "Aristocrac", "value": "221" }, { "label": "Aristocrat", "value": "1150" }, { "label": "Aristrocac", "value": "1598" }, { "label": "Arknights", "value": "1540" }, { "label": "armoredcit", "value": "3558" }, { "label": "ArmsDealer", "value": "357" }, { "label": "ArmsDealer", "value": "2907" }, { "label": "ArmsTrade", "value": "1389" }, { "label": "Army", "value": "329" }, { "label": "Army-build", "value": "870" }, { "label": "ArmyBuildi", "value": "163" }, { "label": "ArrangedMa", "value": "223" }, { "label": "ArrayMage", "value": "4344" }, { "label": "ArrogantCh", "value": "55" }, { "label": "ArthurJun", "value": "5940" }, { "label": "ArtifactCr", "value": "209" }, { "label": "Artifacts", "value": "210" }, { "label": "ArtifactsB", "value": "567" }, { "label": "ArtifactsC", "value": "56" }, { "label": "artificer", "value": "1755" }, { "label": "Artificial", "value": "2919" }, { "label": "Artificial", "value": "91" }, { "label": "artillery", "value": "5124" }, { "label": "Artis", "value": "869" }, { "label": "Artist", "value": "760" }, { "label": "Artists", "value": "302" }, { "label": "asaltedfis", "value": "5638" }, { "label": "Asasi", "value": "4951" }, { "label": "Ascension", "value": "5497" }, { "label": "Ashcanfly", "value": "4110" }, { "label": "Ashesthatd", "value": "3803" }, { "label": "ashtrayold", "value": "4499" }, { "label": "AskJianZho", "value": "4807" }, { "label": "askTaichi", "value": "2316" }, { "label": "asmallgras", "value": "3497" }, { "label": "Asmalloffi", "value": "5766" }, { "label": "ASOIAF", "value": "3423" }, { "label": "assasin", "value": "1763" }, { "label": "Assasins", "value": "3462" }, { "label": "Assassin", "value": "1055" }, { "label": "assassin95", "value": "5553" }, { "label": "Assassins", "value": "217" }, { "label": "Aston", "value": "5519" }, { "label": "astonelion", "value": "5477" }, { "label": "Astrologer", "value": "700" }, { "label": "Asukatired", "value": "4803" }, { "label": "asword", "value": "5103" }, { "label": "aswordbone", "value": "4617" }, { "label": "atabbycat", "value": "4395" }, { "label": "athlete", "value": "3275" }, { "label": "AThousandM", "value": "3484" }, { "label": "ATom", "value": "5763" }, { "label": "atravellin", "value": "1832" }, { "label": "Attractive", "value": "1648" }, { "label": "aturkey", "value": "4203" }, { "label": "Auspicious", "value": "2298" }, { "label": "AuthorJi", "value": "4443" }, { "label": "Authoroffa", "value": "2018" }, { "label": "Autism", "value": "241" }, { "label": "AutomaticU", "value": "1639" }, { "label": "AutomaticU", "value": "1312" }, { "label": "Automatons", "value": "675" }, { "label": "autumnautu", "value": "1838" }, { "label": "autumncold", "value": "4142" }, { "label": "autumnisno", "value": "5436" }, { "label": "autumnleav", "value": "3685" }, { "label": "AutumnLeav", "value": "4518" }, { "label": "Avatar", "value": "3698" }, { "label": "Avatar&", "value": "1635" }, { "label": "Average-lo", "value": "245" }, { "label": "AverageLoo", "value": "905" }, { "label": "avigorous", "value": "2466" }, { "label": "Awakeningf", "value": "5715" }, { "label": "Award-winn", "value": "985" }, { "label": "awhitebait", "value": "5517" }, { "label": "AwkwardPro", "value": "271" }, { "label": "Ayanokoji", "value": "2066" }, { "label": "Ayres", "value": "5241" }, { "label": "AZanpakut", "value": "2637" }, { "label": "Azeroth", "value": "1702" }, { "label": "azure", "value": "5954" }, { "label": "AzurLane", "value": "1068" }, { "label": "babbling1", "value": "3862" }, { "label": "Babies", "value": "1223" }, { "label": "baby", "value": "3594" }, { "label": "BabyFeng", "value": "4278" }, { "label": "backtoboat", "value": "4479" }, { "label": "Badassprot", "value": "1695" }, { "label": "badcheese", "value": "4584" }, { "label": "Bagpipeson", "value": "5977" }, { "label": "BaiBailan~", "value": "5427" }, { "label": "BaiMaoisno", "value": "5472" }, { "label": "BaiMingxia", "value": "4875" }, { "label": "BaiTuanJiu", "value": "4995" }, { "label": "BaiXiaowei", "value": "2820" }, { "label": "BaiYuenake", "value": "4432" }, { "label": "baldman", "value": "2395" }, { "label": "Baldmaster", "value": "5207" }, { "label": "baldnessat", "value": "2313" }, { "label": "BaldTraine", "value": "5628" }, { "label": "balduncle", "value": "2830" }, { "label": "BalmoreBea", "value": "5189" }, { "label": "bamboobamb", "value": "3654" }, { "label": "BambooFlow", "value": "4506" }, { "label": "bambooink", "value": "4918" }, { "label": "bambooshad", "value": "5643" }, { "label": "Bambooskin", "value": "5776" }, { "label": "Bandit", "value": "3302" }, { "label": "BarrenEmpe", "value": "2260" }, { "label": "Baseball", "value": "673" }, { "label": "BasedonaMo", "value": "579" }, { "label": "BasedonanA", "value": "1052" }, { "label": "BasedonaSo", "value": "1118" }, { "label": "BasedonaTV", "value": "671" }, { "label": "BasedonaVi", "value": "1014" }, { "label": "BasedonaVi", "value": "1083" }, { "label": "BashuiDuxi", "value": "5653" }, { "label": "Basket", "value": "1606" }, { "label": "basketball", "value": "3068" }, { "label": "Basketball", "value": "226" }, { "label": "BatDemonCh", "value": "4912" }, { "label": "BattleAcad", "value": "416" }, { "label": "BattleComp", "value": "211" }, { "label": "BattleThro", "value": "1333" }, { "label": "Baumudrich", "value": "5375" }, { "label": "BBQmadebyt", "value": "4765" }, { "label": "BDSM", "value": "190" }, { "label": "beaming", "value": "2508" }, { "label": "Beansandgr", "value": "2786" }, { "label": "Bearcat", "value": "2142" }, { "label": "BearChild", "value": "3461" }, { "label": "Bearchildl", "value": "2232" }, { "label": "bearcocoa", "value": "2652" }, { "label": "beardada", "value": "5798" }, { "label": "beardwhite", "value": "4253" }, { "label": "Beast", "value": "1253" }, { "label": "beastcompa", "value": "1128" }, { "label": "BeastCompa", "value": "57" }, { "label": "Beastkin", "value": "8" }, { "label": "beastman", "value": "1700" }, { "label": "Beastmen", "value": "1369" }, { "label": "beastprota", "value": "2315" }, { "label": "Beasts", "value": "58" }, { "label": "Beasttamer", "value": "1254" }, { "label": "Beasttamin", "value": "5057" }, { "label": "beastworld", "value": "3441" }, { "label": "Beat", "value": "5170" }, { "label": "Beatthefem", "value": "5065" }, { "label": "Beatthemal", "value": "5064" }, { "label": "beatyourse", "value": "2204" }, { "label": "beautifula", "value": "2691" }, { "label": "Beautifulb", "value": "5870" }, { "label": "BeautifulC", "value": "1018" }, { "label": "beautifulf", "value": "1746" }, { "label": "Beautifulf", "value": "1456" }, { "label": "BeautifulF", "value": "21" }, { "label": "BeautifulF", "value": "1748" }, { "label": "beautifulh", "value": "59" }, { "label": "Beautifull", "value": "1516" }, { "label": "BeautifulP", "value": "1160" }, { "label": "beauty", "value": "1418" }, { "label": "Beautyred", "value": "4560" }, { "label": "becausesoh", "value": "2649" }, { "label": "becomeagod", "value": "3215" }, { "label": "becomeagod", "value": "3022" }, { "label": "Becomefamo", "value": "1921" }, { "label": "BeefandShr", "value": "4790" }, { "label": "beggingfor", "value": "2710" }, { "label": "Beginner", "value": "5878" }, { "label": "Behappytod", "value": "4836" }, { "label": "BehindtheS", "value": "1643" }, { "label": "BehindtheS", "value": "1505" }, { "label": "BeichengNa", "value": "3945" }, { "label": "BeidouTian", "value": "6050" }, { "label": "BeiHaiPiao", "value": "5421" }, { "label": "BeishanRai", "value": "5112" }, { "label": "bellbell", "value": "6045" }, { "label": "bellsofjoy", "value": "4568" }, { "label": "Belltouche", "value": "2404" }, { "label": "Bellyblack", "value": "3117" }, { "label": "belovedbab", "value": "1992" }, { "label": "ben10", "value": "1412" }, { "label": "Benson", "value": "4668" }, { "label": "Bestiality", "value": "628" }, { "label": "Betrayal", "value": "40" }, { "label": "Betweenthe", "value": "5456" }, { "label": "Betweenthe", "value": "5172" }, { "label": "bewitching", "value": "2828" }, { "label": "BickeringC", "value": "79" }, { "label": "bickeringl", "value": "5054" }, { "label": "bigblue", "value": "5660" }, { "label": "bigbrain", "value": "3125" }, { "label": "BigBroHasD", "value": "802" }, { "label": "bigcatpres", "value": "5782" }, { "label": "bigcatslav", "value": "4793" }, { "label": "bigchinchi", "value": "5274" }, { "label": "bigcitysma", "value": "2367" }, { "label": "Bigcockcut", "value": "2586" }, { "label": "Bigdog", "value": "2042" }, { "label": "bigdreamsa", "value": "3752" }, { "label": "bigfacemor", "value": "5146" }, { "label": "bigfire", "value": "5651" }, { "label": "bighippo", "value": "2683" }, { "label": "bigisbeaut", "value": "4498" }, { "label": "bigorange", "value": "6046" }, { "label": "bigorangew", "value": "2319" }, { "label": "bigpeninth", "value": "4948" }, { "label": "bigpicture", "value": "1796" }, { "label": "Bigplayers", "value": "1880" }, { "label": "BigSesameR", "value": "3721" }, { "label": "BigSkeleto", "value": "2235" }, { "label": "bigtent", "value": "2605" }, { "label": "bigwhitewh", "value": "1911" }, { "label": "Billionair", "value": "1457" }, { "label": "billionpeo", "value": "2868" }, { "label": "billionpoi", "value": "4330" }, { "label": "BingtangHu", "value": "2140" }, { "label": "Biochip", "value": "473" }, { "label": "Biomass", "value": "1706" }, { "label": "Biscuits", "value": "1846" }, { "label": "BisexualPr", "value": "813" }, { "label": "Bishamonte", "value": "5992" }, { "label": "BishopMyri", "value": "5001" }, { "label": "bite", "value": "6125" }, { "label": "bitefire", "value": "2212" }, { "label": "BL", "value": "857" }, { "label": "Black-bell", "value": "1273" }, { "label": "Black-bell", "value": "925" }, { "label": "blackabyss", "value": "4081" }, { "label": "blackandim", "value": "2219" }, { "label": "blackandwh", "value": "2797" }, { "label": "blackandwh", "value": "1867" }, { "label": "Blackbelli", "value": "1556" }, { "label": "BlackBelly", "value": "38" }, { "label": "BlackBelly", "value": "1053" }, { "label": "Blackbirch", "value": "4572" }, { "label": "blackcatam", "value": "5509" }, { "label": "blackcatis", "value": "2711" }, { "label": "BlackDrago", "value": "2720" }, { "label": "Blackening", "value": "3219" }, { "label": "blackflash", "value": "4984" }, { "label": "blackgreen", "value": "5203" }, { "label": "blackice", "value": "3375" }, { "label": "blackInter", "value": "3506" }, { "label": "Blacklight", "value": "1707" }, { "label": "Blacklotus", "value": "3366" }, { "label": "Blackmail", "value": "171" }, { "label": "blackpupil", "value": "3973" }, { "label": "blackpupil", "value": "3944" }, { "label": "blackreinc", "value": "4709" }, { "label": "blacksilkj", "value": "4014" }, { "label": "Blacksmith", "value": "379" }, { "label": "blacksoil", "value": "2144" }, { "label": "blacksword", "value": "4593" }, { "label": "blacktea", "value": "4303" }, { "label": "blackteais", "value": "3866" }, { "label": "Blacktechn", "value": "5700" }, { "label": "BladeofFal", "value": "4756" }, { "label": "blast", "value": "3966" }, { "label": "BlazingAng", "value": "5739" }, { "label": "Bleach", "value": "1123" }, { "label": "Blind", "value": "1234" }, { "label": "Blinddate", "value": "3694" }, { "label": "BlindDates", "value": "676" }, { "label": "blindnomik", "value": "4532" }, { "label": "BlindProta", "value": "481" }, { "label": "blindzhang", "value": "4139" }, { "label": "Bloodborne", "value": "1541" }, { "label": "blooddemon", "value": "2095" }, { "label": "Bloodline", "value": "1205" }, { "label": "Bloodlines", "value": "9" }, { "label": "BloodManip", "value": "534" }, { "label": "BloodMoonG", "value": "2237" }, { "label": "BloodofAni", "value": "1822" }, { "label": "Bloodpumpi", "value": "5062" }, { "label": "bloodytuna", "value": "5037" }, { "label": "bloomingon", "value": "1951" }, { "label": "blowdreamt", "value": "4598" }, { "label": "bluelight", "value": "4455" }, { "label": "bluemoonco", "value": "5966" }, { "label": "bluenight", "value": "6036" }, { "label": "bluepigeon", "value": "4837" }, { "label": "blueshirts", "value": "2192" }, { "label": "bluesilk", "value": "2832" }, { "label": "bluesilksu", "value": "2675" }, { "label": "BlueSkyDem", "value": "4495" }, { "label": "blueskyspa", "value": "5565" }, { "label": "bluestone", "value": "2206" }, { "label": "bluewaterg", "value": "4269" }, { "label": "bluewhale", "value": "4333" }, { "label": "BoboXiaolu", "value": "5479" }, { "label": "Bodhi", "value": "3661" }, { "label": "Bodhicitta", "value": "2507" }, { "label": "Body-doubl", "value": "980" }, { "label": "bodyguard", "value": "3701" }, { "label": "Bodyguards", "value": "439" }, { "label": "BodySwap", "value": "269" }, { "label": "BodyTemper", "value": "246" }, { "label": "Boiled", "value": "2793" }, { "label": "Bombardmen", "value": "5830" }, { "label": "book", "value": "1415" }, { "label": "BookDustSp", "value": "2416" }, { "label": "Books", "value": "337" }, { "label": "bookslikeu", "value": "2922" }, { "label": "Booksonthe", "value": "3907" }, { "label": "BookstoreS", "value": "2133" }, { "label": "BookTransm", "value": "947" }, { "label": "BookWearer", "value": "1153" }, { "label": "Bookworm", "value": "659" }, { "label": "Boss", "value": "2911" }, { "label": "Boss-Subor", "value": "80" }, { "label": "BOSSflow", "value": "3324" }, { "label": "BossSim", "value": "5366" }, { "label": "Botharetwo", "value": "4486" }, { "label": "bottommc", "value": "1030" }, { "label": "bouncingei", "value": "3582" }, { "label": "Boundlessf", "value": "1982" }, { "label": "BoundlessL", "value": "5622" }, { "label": "Bowandjack", "value": "5041" }, { "label": "Bowandshoo", "value": "3902" }, { "label": "BoXiaowen", "value": "2389" }, { "label": "Boxing", "value": "667" }, { "label": "boxser", "value": "4631" }, { "label": "boycold", "value": "2626" }, { "label": "Brainisuna", "value": "4509" }, { "label": "BrainJam", "value": "5588" }, { "label": "Brainwashi", "value": "396" }, { "label": "braisedfis", "value": "4839" }, { "label": "BraisedPai", "value": "2132" }, { "label": "BraisedPis", "value": "3541" }, { "label": "breakingli", "value": "1441" }, { "label": "Breakingth", "value": "2565" }, { "label": "breaktheke", "value": "2263" }, { "label": "Breakup", "value": "1344" }, { "label": "BreastFeti", "value": "974" }, { "label": "Breeze", "value": "2101" }, { "label": "Breeze&", "value": "5290" }, { "label": "breezesilv", "value": "2045" }, { "label": "Brewingflo", "value": "5909" }, { "label": "BrigadeSec", "value": "5872" }, { "label": "Brightmoon", "value": "2073" }, { "label": "Bringaknif", "value": "2643" }, { "label": "BritishEmp", "value": "1489" }, { "label": "broalwaysg", "value": "2870" }, { "label": "broken", "value": "5004" }, { "label": "brokenambi", "value": "4153" }, { "label": "BrokenDanf", "value": "5840" }, { "label": "brokendrea", "value": "5543" }, { "label": "brokendrea", "value": "4611" }, { "label": "BrokenEnga", "value": "231" }, { "label": "brokenfrui", "value": "5823" }, { "label": "brokengodo", "value": "4634" }, { "label": "brokenhear", "value": "4397" }, { "label": "brokenlitt", "value": "4580" }, { "label": "brokenmoon", "value": "4317" }, { "label": "brokenred", "value": "4677" }, { "label": "BrokenYuri", "value": "5525" }, { "label": "BronzeEndo", "value": "4135" }, { "label": "Brother", "value": "3609" }, { "label": "BrotherChe", "value": "2181" }, { "label": "BrotherCom", "value": "521" }, { "label": "Brotherhoo", "value": "570" }, { "label": "BrotherInL", "value": "4346" }, { "label": "BrotherQin", "value": "5395" }, { "label": "BrotherZhu", "value": "2227" }, { "label": "Browlin", "value": "5022" }, { "label": "Brownsugar", "value": "1866" }, { "label": "BrutalBeas", "value": "3884" }, { "label": "BTTH", "value": "1288" }, { "label": "Bubble012", "value": "5590" }, { "label": "bubblebath", "value": "4802" }, { "label": "BucketofIn", "value": "6016" }, { "label": "BuddhaofNi", "value": "3376" }, { "label": "Buddhism", "value": "442" }, { "label": "Buddhistco", "value": "4220" }, { "label": "building", "value": "5347" }, { "label": "buildingki", "value": "1764" }, { "label": "BuildKingd", "value": "1539" }, { "label": "Buildthewo", "value": "2571" }, { "label": "bulgingbel", "value": "4965" }, { "label": "Bulldozer", "value": "1614" }, { "label": "Bully", "value": "786" }, { "label": "Bullying", "value": "134" }, { "label": "BuLofan", "value": "2068" }, { "label": "BungouStra", "value": "1773" }, { "label": "BunguoStra", "value": "1381" }, { "label": "Bunnyeatse", "value": "3974" }, { "label": "Bunsaresol", "value": "4936" }, { "label": "BurningEye", "value": "4773" }, { "label": "BurningEye", "value": "4711" }, { "label": "Burningmou", "value": "2703" }, { "label": "burnout", "value": "2694" }, { "label": "Business", "value": "663" }, { "label": "BusinessDe", "value": "962" }, { "label": "BusinessEm", "value": "761" }, { "label": "businessfl", "value": "5679" }, { "label": "BusinessMa", "value": "60" }, { "label": "BusinessMa", "value": "1069" }, { "label": "Businessme", "value": "227" }, { "label": "businessor", "value": "954" }, { "label": "BusinessRi", "value": "1814" }, { "label": "Bussinesma", "value": "1514" }, { "label": "Bussiness", "value": "1450" }, { "label": "Butlers", "value": "763" }, { "label": "ButterflyD", "value": "1980" }, { "label": "Butterrice", "value": "5038" }, { "label": "BZ", "value": "4982" }, { "label": "C14H18N2O5", "value": "4693" }, { "label": "cabbagebut", "value": "5829" }, { "label": "Caicolorsh", "value": "2640" }, { "label": "callmeknig", "value": "3755" }, { "label": "callmethep", "value": "4993" }, { "label": "callthebea", "value": "2417" }, { "label": "calm", "value": "3164" }, { "label": "CalmMalePr", "value": "834" }, { "label": "CalmProtag", "value": "22" }, { "label": "camera", "value": "2004" }, { "label": "Campus", "value": "1677" }, { "label": "CampusLife", "value": "1274" }, { "label": "CampusLove", "value": "589" }, { "label": "CampusRoma", "value": "2880" }, { "label": "can&039", "value": "3927" }, { "label": "can&039", "value": "5827" }, { "label": "can&039", "value": "4944" }, { "label": "Can&039", "value": "3535" }, { "label": "Can&039", "value": "2623" }, { "label": "Can&039", "value": "2409" }, { "label": "Canbeheart", "value": "4424" }, { "label": "Cancat", "value": "2292" }, { "label": "CandiedLem", "value": "5969" }, { "label": "candlecher", "value": "4160" }, { "label": "Candleligh", "value": "4996" }, { "label": "Canepepper", "value": "3464" }, { "label": "canfly", "value": "2019" }, { "label": "CangsongTa", "value": "4681" }, { "label": "CangxueFei", "value": "2932" }, { "label": "Cannibalis", "value": "407" }, { "label": "cannonfodd", "value": "3350" }, { "label": "Canolaflow", "value": "1985" }, { "label": "Cantaloupe", "value": "2782" }, { "label": "Canteendry", "value": "2228" }, { "label": "Canyoustop", "value": "5032" }, { "label": "Caothiefne", "value": "5666" }, { "label": "Capitalism", "value": "1490" }, { "label": "captain", "value": "3290" }, { "label": "captaindra", "value": "4587" }, { "label": "Captainoft", "value": "6031" }, { "label": "carafe", "value": "6101" }, { "label": "CarambolaJ", "value": "2700" }, { "label": "Card", "value": "1379" }, { "label": "CardGames", "value": "512" }, { "label": "CardinalSa", "value": "4861" }, { "label": "cardleague", "value": "4692" }, { "label": "Cards", "value": "564" }, { "label": "CareerOrie", "value": "1061" }, { "label": "CarefreePr", "value": "121" }, { "label": "CaringMale", "value": "1553" }, { "label": "CaringProt", "value": "122" }, { "label": "Carola", "value": "4641" }, { "label": "carpenter", "value": "5453" }, { "label": "CarrotCake", "value": "5724" }, { "label": "carrotsdon", "value": "5804" }, { "label": "cartoonwil", "value": "2168" }, { "label": "CastlePeak", "value": "5559" }, { "label": "CastlePeak", "value": "5282" }, { "label": "Casual", "value": "4125" }, { "label": "Cat", "value": "5364" }, { "label": "CatCarMK2", "value": "4730" }, { "label": "catcatfrui", "value": "4881" }, { "label": "CatchaGhos", "value": "5071" }, { "label": "catchfast", "value": "3359" }, { "label": "Catchtheca", "value": "2141" }, { "label": "catchthecl", "value": "4030" }, { "label": "catdaylist", "value": "1895" }, { "label": "cateatingp", "value": "4535" }, { "label": "cateatingp", "value": "2787" }, { "label": "caterpilla", "value": "4579" }, { "label": "catgod", "value": "2470" }, { "label": "catheadsan", "value": "5741" }, { "label": "catisland", "value": "4900" }, { "label": "Catisnotat", "value": "5760" }, { "label": "catisrisin", "value": "2568" }, { "label": "catloveson", "value": "2536" }, { "label": "catontheba", "value": "4122" }, { "label": "catorange", "value": "3648" }, { "label": "catpowerfi", "value": "2624" }, { "label": "Catsandcat", "value": "5753" }, { "label": "Catswithfi", "value": "2271" }, { "label": "catthatwan", "value": "2022" }, { "label": "catthousan", "value": "2333" }, { "label": "catwatchin", "value": "5795" }, { "label": "catwithbla", "value": "5138" }, { "label": "catworship", "value": "4849" }, { "label": "cautious", "value": "3193" }, { "label": "CautiousMc", "value": "1095" }, { "label": "CautiousPr", "value": "222" }, { "label": "caviar", "value": "2131" }, { "label": "ccc", "value": "4511" }, { "label": "Celebritie", "value": "23" }, { "label": "Celebrity", "value": "880" }, { "label": "celeryeats", "value": "5563" }, { "label": "celestial", "value": "1439" }, { "label": "CelestialC", "value": "2608" }, { "label": "Celestials", "value": "799" }, { "label": "CEO", "value": "1008" }, { "label": "Ceobeisthe", "value": "3653" }, { "label": "ChainsawMa", "value": "2889" }, { "label": "championge", "value": "2368" }, { "label": "chanceenco", "value": "3631" }, { "label": "Chang&0", "value": "5949" }, { "label": "changedhea", "value": "5511" }, { "label": "Changeever", "value": "2223" }, { "label": "ChangGuxue", "value": "4118" }, { "label": "Chanyi", "value": "4305" }, { "label": "ChaoGezi", "value": "4100" }, { "label": "ChaoPrimeM", "value": "5750" }, { "label": "Chaos", "value": "1360" }, { "label": "Chaotang", "value": "3123" }, { "label": "ChaotangJi", "value": "3282" }, { "label": "chaotichea", "value": "5788" }, { "label": "chaoticwor", "value": "1882" }, { "label": "CharacterD", "value": "341" }, { "label": "CharacterG", "value": "61" }, { "label": "chargingca", "value": "3774" }, { "label": "Charismati", "value": "39" }, { "label": "Charlotte(", "value": "1041" }, { "label": "CharmingPr", "value": "520" }, { "label": "chase", "value": "3597" }, { "label": "chasingthe", "value": "2777" }, { "label": "chasingwif", "value": "3330" }, { "label": "chat", "value": "1757" }, { "label": "chat-room", "value": "1285" }, { "label": "ChatGroup", "value": "890" }, { "label": "ChatRooms", "value": "142" }, { "label": "chatter", "value": "3668" }, { "label": "Cheat", "value": "888" }, { "label": "cheating", "value": "6149" }, { "label": "Cheats", "value": "62" }, { "label": "Cheesemous", "value": "5534" }, { "label": "Cheesesnow", "value": "5478" }, { "label": "Chef", "value": "829" }, { "label": "chef&03", "value": "2097" }, { "label": "ChefEmiya", "value": "3818" }, { "label": "Chefs", "value": "260" }, { "label": "ChefSurviv", "value": "2174" }, { "label": "ChenChangf", "value": "2342" }, { "label": "ChenChen", "value": "5734" }, { "label": "ChenDashun", "value": "4608" }, { "label": "Chengnanex", "value": "4718" }, { "label": "ChengWangH", "value": "5443" }, { "label": "ChenHegao", "value": "1708" }, { "label": "ChenShiAi", "value": "3736" }, { "label": "ChenTing", "value": "6053" }, { "label": "ChenTwelve", "value": "2122" }, { "label": "ChenYibing", "value": "4566" }, { "label": "ChenZijin", "value": "5363" }, { "label": "CherryBlos", "value": "1965" }, { "label": "Chestnutca", "value": "4675" }, { "label": "chestnutch", "value": "5105" }, { "label": "ChevaRoy", "value": "6017" }, { "label": "chiccatles", "value": "4154" }, { "label": "ChicSu", "value": "4754" }, { "label": "ChiDongdon", "value": "1966" }, { "label": "chief", "value": "3699" }, { "label": "ChiefScien", "value": "3663" }, { "label": "Chika", "value": "4332" }, { "label": "child", "value": "4193" }, { "label": "ChildAbuse", "value": "393" }, { "label": "Childbirth", "value": "1074" }, { "label": "Childcare", "value": "81" }, { "label": "ChildhoodE", "value": "1622" }, { "label": "Childhoodf", "value": "3378" }, { "label": "ChildhoodF", "value": "197" }, { "label": "ChildhoodL", "value": "176" }, { "label": "ChildhoodP", "value": "588" }, { "label": "ChildhoodS", "value": "590" }, { "label": "ChildhoodS", "value": "1155" }, { "label": "ChildishPr", "value": "123" }, { "label": "ChildProta", "value": "491" }, { "label": "ChinaEnter", "value": "3549" }, { "label": "ChinaNamba", "value": "1705" }, { "label": "ChinaRefor", "value": "1357" }, { "label": "Chinese", "value": "1675" }, { "label": "ChineseAnc", "value": "1692" }, { "label": "Chinesemed", "value": "3166" }, { "label": "ChineseNov", "value": "1679" }, { "label": "ChinesePre", "value": "1303" }, { "label": "Chirika", "value": "1843" }, { "label": "Chirpingan", "value": "4872" }, { "label": "Chivalryof", "value": "1669" }, { "label": "Chiyudoesn", "value": "3874" }, { "label": "ChocolateI", "value": "1922" }, { "label": "ChoiceSele", "value": "1308" }, { "label": "Chosen12", "value": "2533" }, { "label": "chromatics", "value": "5155" }, { "label": "Chronology", "value": "1451" }, { "label": "chugong", "value": "5605" }, { "label": "Chunghwape", "value": "5200" }, { "label": "ChuningMC", "value": "1390" }, { "label": "Church", "value": "1359" }, { "label": "Chuunibyou", "value": "713" }, { "label": "ChuXiaNo.X", "value": "5573" }, { "label": "Cicadasand", "value": "2340" }, { "label": "CinderHand", "value": "5755" }, { "label": "CiShuhua", "value": "5021" }, { "label": "CitrusRoas", "value": "4533" }, { "label": "city", "value": "6130" }, { "label": "CityGod", "value": "2288" }, { "label": "CitySky1", "value": "4819" }, { "label": "city​​ya", "value": "2738" }, { "label": "civetcatat", "value": "2562" }, { "label": "civilizati", "value": "3221" }, { "label": "Civilizati", "value": "3329" }, { "label": "Civilizati", "value": "1613" }, { "label": "Civilizati", "value": "1775" }, { "label": "CivilServa", "value": "1491" }, { "label": "ClanBuildi", "value": "327" }, { "label": "ClanSectDe", "value": "1316" }, { "label": "ClassicXia", "value": "3112" }, { "label": "ClassicXia", "value": "3086" }, { "label": "ClassicXia", "value": "2946" }, { "label": "Cleaningfi", "value": "4476" }, { "label": "clear", "value": "3338" }, { "label": "clearthink", "value": "3237" }, { "label": "CleverMc", "value": "1142" }, { "label": "CleverProt", "value": "92" }, { "label": "CleverProt", "value": "373" }, { "label": "ClingyLove", "value": "297" }, { "label": "Clivia", "value": "4292" }, { "label": "Clones", "value": "644" }, { "label": "cloud-like", "value": "4976" }, { "label": "cloudmadeo", "value": "2771" }, { "label": "cloudpierc", "value": "5106" }, { "label": "Cloudseest", "value": "2047" }, { "label": "CloudSummi", "value": "2000" }, { "label": "Cloudtopfi", "value": "2092" }, { "label": "Cloudtop丨", "value": "2202" }, { "label": "CloudTop丨", "value": "2137" }, { "label": "CloudTop丨", "value": "1948" }, { "label": "cloudymoon", "value": "4674" }, { "label": "cloudysky", "value": "1926" }, { "label": "Club", "value": "1583" }, { "label": "Clubs", "value": "611" }, { "label": "Cluelessly", "value": "1322" }, { "label": "CluelessPr", "value": "1365" }, { "label": "ClumsyLove", "value": "204" }, { "label": "cluthullu", "value": "1663" }, { "label": "ClydeVirgi", "value": "6078" }, { "label": "Cnnilingus", "value": "1031" }, { "label": "Co-Workers", "value": "662" }, { "label": "coach", "value": "3553" }, { "label": "cobrasnake", "value": "4228" }, { "label": "cockroache", "value": "2726" }, { "label": "Cocoawithf", "value": "5983" }, { "label": "codegeass", "value": "1772" }, { "label": "Codeuntilt", "value": "2746" }, { "label": "CodewordG", "value": "4179" }, { "label": "codewordge", "value": "2693" }, { "label": "codewordgi", "value": "4201" }, { "label": "codewordna", "value": "4919" }, { "label": "coffeefatc", "value": "2046" }, { "label": "coffeeinst", "value": "2525" }, { "label": "coffeevi", "value": "4230" }, { "label": "coffeewith", "value": "1802" }, { "label": "Cohabitati", "value": "152" }, { "label": "CokeII", "value": "2461" }, { "label": "coldcolddo", "value": "2473" }, { "label": "coldinearl", "value": "4128" }, { "label": "ColdLoveIn", "value": "84" }, { "label": "ColdLoveIn", "value": "1106" }, { "label": "ColdMaleLe", "value": "904" }, { "label": "ColdMalePr", "value": "1033" }, { "label": "ColdNightL", "value": "2819" }, { "label": "coldnoodle", "value": "5219" }, { "label": "ColdProtag", "value": "10" }, { "label": "coldrivers", "value": "2106" }, { "label": "coldsalted", "value": "4200" }, { "label": "ColdStar&a", "value": "1871" }, { "label": "collapse", "value": "3297" }, { "label": "Collection", "value": "749" }, { "label": "College", "value": "1454" }, { "label": "CollegeorU", "value": "976" }, { "label": "CollegeStr", "value": "3095" }, { "label": "CollegeStr", "value": "2940" }, { "label": "CollegeUni", "value": "169" }, { "label": "Colonializ", "value": "1201" }, { "label": "Colonizati", "value": "858" }, { "label": "colorfasti", "value": "5006" }, { "label": "colorfulcl", "value": "4182" }, { "label": "colorless", "value": "5425" }, { "label": "Coma", "value": "105" }, { "label": "ComedicUnd", "value": "154" }, { "label": "ComedicUnd", "value": "926" }, { "label": "comedy", "value": "878" }, { "label": "Comeon", "value": "2112" }, { "label": "Comic", "value": "1567" }, { "label": "ComicMonst", "value": "6002" }, { "label": "comics", "value": "1402" }, { "label": "comics", "value": "1423" }, { "label": "ComingofAg", "value": "722" }, { "label": "Commandand", "value": "810" }, { "label": "commander", "value": "3200" }, { "label": "Commanderd", "value": "4163" }, { "label": "commemorat", "value": "5384" }, { "label": "CommonerLi", "value": "950" }, { "label": "Companies", "value": "1286" }, { "label": "Competingf", "value": "3928" }, { "label": "Competitio", "value": "1607" }, { "label": "competitiv", "value": "1422" }, { "label": "Complaint", "value": "1134" }, { "label": "Completebo", "value": "5278" }, { "label": "ComplexFam", "value": "956" }, { "label": "ComplexFam", "value": "253" }, { "label": "Complicate", "value": "1291" }, { "label": "comprehens", "value": "3190" }, { "label": "comprehens", "value": "5341" }, { "label": "comprehens", "value": "3047" }, { "label": "comprehens", "value": "3021" }, { "label": "comprehens", "value": "3003" }, { "label": "comprehens", "value": "2974" }, { "label": "Comprehens", "value": "3119" }, { "label": "Comprehens", "value": "3071" }, { "label": "Comprehens", "value": "3041" }, { "label": "Comprehens", "value": "2969" }, { "label": "Comprehens", "value": "2952" }, { "label": "Comprehens", "value": "2243" }, { "label": "Conan", "value": "5972" }, { "label": "Conan&0", "value": "4187" }, { "label": "Conanadrea", "value": "5604" }, { "label": "Conanisnot", "value": "5946" }, { "label": "ConantheTh", "value": "6113" }, { "label": "ConanXiang", "value": "3802" }, { "label": "ConchBay", "value": "5367" }, { "label": "concubine", "value": "3255" }, { "label": "Conditiona", "value": "445" }, { "label": "ConfidentP", "value": "232" }, { "label": "Confinemen", "value": "172" }, { "label": "Conflictin", "value": "541" }, { "label": "Confuciani", "value": "3384" }, { "label": "confusedfi", "value": "5637" }, { "label": "conquer", "value": "1414" }, { "label": "Conquer", "value": "5059" }, { "label": "Conservati", "value": "4001" }, { "label": "Conspiracy", "value": "3435" }, { "label": "Conspirati", "value": "1515" }, { "label": "Constructi", "value": "1113" }, { "label": "Contagonis", "value": "1709" }, { "label": "contempora", "value": "1400" }, { "label": "Contendfor", "value": "3093" }, { "label": "Contest", "value": "5699" }, { "label": "Contract", "value": "1163" }, { "label": "contractlo", "value": "3600" }, { "label": "ContractLo", "value": "952" }, { "label": "contractma", "value": "3134" }, { "label": "contractma", "value": "2959" }, { "label": "Contracts", "value": "294" }, { "label": "Contrastcu", "value": "3455" }, { "label": "cook", "value": "3317" }, { "label": "Cooking", "value": "161" }, { "label": "coolandhan", "value": "3735" }, { "label": "Coolchubby", "value": "5918" }, { "label": "coolinocto", "value": "4383" }, { "label": "CoolMc", "value": "1050" }, { "label": "coolmeowma", "value": "5101" }, { "label": "CoolText", "value": "1190" }, { "label": "corgishort", "value": "3502" }, { "label": "cornisripe", "value": "4109" }, { "label": "cornjuice", "value": "2815" }, { "label": "CorpseFrag", "value": "2663" }, { "label": "Corruption", "value": "408" }, { "label": "CosmicChar", "value": "4990" }, { "label": "CosmicHorr", "value": "1248" }, { "label": "CosmicWars", "value": "338" }, { "label": "Cosplay", "value": "726" }, { "label": "cosplaystr", "value": "3551" }, { "label": "Counteratt", "value": "1619" }, { "label": "Couple", "value": "3309" }, { "label": "CoupleGrow", "value": "153" }, { "label": "CourtOffic", "value": "594" }, { "label": "Cousins", "value": "683" }, { "label": "coverthesu", "value": "1834" }, { "label": "CowardlyPr", "value": "290" }, { "label": "coyote", "value": "1984" }, { "label": "CP", "value": "3331" }, { "label": "crackedegg", "value": "4085" }, { "label": "Crafting", "value": "374" }, { "label": "crashreinc", "value": "6110" }, { "label": "Crayfishan", "value": "4958" }, { "label": "Crazy&0", "value": "5406" }, { "label": "crazydream", "value": "3829" }, { "label": "Crazyforam", "value": "2224" }, { "label": "Crazylittl", "value": "6064" }, { "label": "CrazyProta", "value": "1249" }, { "label": "CrazySanMe", "value": "4578" }, { "label": "crazysquid", "value": "3652" }, { "label": "Crazystory", "value": "2403" }, { "label": "createpreh", "value": "4052" }, { "label": "Creation", "value": "1251" }, { "label": "Creator", "value": "1549" }, { "label": "Creatures", "value": "526" }, { "label": "Crime", "value": "440" }, { "label": "crimesolvi", "value": "3733" }, { "label": "Criminalin", "value": "3185" }, { "label": "Criminals", "value": "173" }, { "label": "Criminolog", "value": "832" }, { "label": "CrimsonFir", "value": "4866" }, { "label": "CrimsonMoo", "value": "4746" }, { "label": "crimsonsku", "value": "4076" }, { "label": "crookeddoo", "value": "2772" }, { "label": "CrookedPay", "value": "3798" }, { "label": "Cross", "value": "3090" }, { "label": "Cross-dres", "value": "155" }, { "label": "Cross1V1HE", "value": "2996" }, { "label": "Cross1V1st", "value": "3072" }, { "label": "CrossChatg", "value": "3066" }, { "label": "CrossCount", "value": "2947" }, { "label": "Crossdress", "value": "1087" }, { "label": "Crossevery", "value": "2944" }, { "label": "Crossfarmi", "value": "5323" }, { "label": "Crossfarmi", "value": "3007" }, { "label": "Crossfarmi", "value": "2973" }, { "label": "Crossgeniu", "value": "2963" }, { "label": "CrossGiant", "value": "5307" }, { "label": "CrossGoldf", "value": "2971" }, { "label": "Crossing", "value": "2901" }, { "label": "CrossInvin", "value": "3064" }, { "label": "CrossInvin", "value": "2953" }, { "label": "CrossInvin", "value": "2939" }, { "label": "Crossmanyf", "value": "3038" }, { "label": "Crossmarti", "value": "2980" }, { "label": "Crossmarti", "value": "2955" }, { "label": "CrossMengB", "value": "3005" }, { "label": "Crossopeni", "value": "2965" }, { "label": "Crossover", "value": "492" }, { "label": "CrossOverh", "value": "5319" }, { "label": "CrossRebir", "value": "5344" }, { "label": "CrossRebir", "value": "3070" }, { "label": "CrossRebir", "value": "3001" }, { "label": "CrossRebir", "value": "2951" }, { "label": "CrossRelax", "value": "3004" }, { "label": "Crossshort", "value": "2991" }, { "label": "CrossSlapC", "value": "2956" }, { "label": "Crosssweet", "value": "3027" }, { "label": "Crosssyste", "value": "3088" }, { "label": "Crosssyste", "value": "3058" }, { "label": "Crosssyste", "value": "3000" }, { "label": "Crosstalka", "value": "3122" }, { "label": "Crosswar", "value": "3044" }, { "label": "Cross空间O", "value": "3084" }, { "label": "Cross空间u", "value": "2968" }, { "label": "crowastron", "value": "5283" }, { "label": "crowmouth", "value": "3552" }, { "label": "Cruel", "value": "2920" }, { "label": "CruelChara", "value": "42" }, { "label": "Crush", "value": "5674" }, { "label": "Cryostasis", "value": "741" }, { "label": "Cthulhu", "value": "1542" }, { "label": "CubRaising", "value": "916" }, { "label": "cuckoobunn", "value": "4005" }, { "label": "CuckooChen", "value": "5302" }, { "label": "cucumber", "value": "4741" }, { "label": "CucumberHa", "value": "1916" }, { "label": "cultivatio", "value": "1417" }, { "label": "Cultivatio", "value": "63" }, { "label": "Cultivatio", "value": "3790" }, { "label": "Cultivatio", "value": "3417" }, { "label": "Cultivator", "value": "1361" }, { "label": "cunning", "value": "2897" }, { "label": "cunningfem", "value": "1232" }, { "label": "cunningmc", "value": "1759" }, { "label": "CunningPro", "value": "164" }, { "label": "CunningPro", "value": "1568" }, { "label": "Cupola", "value": "2802" }, { "label": "cure", "value": "3251" }, { "label": "curechildr", "value": "3789" }, { "label": "CuredChick", "value": "5860" }, { "label": "CuriousPro", "value": "261" }, { "label": "Curse", "value": "785" }, { "label": "Curses", "value": "528" }, { "label": "Cute", "value": "1658" }, { "label": "CuteChild", "value": "1452" }, { "label": "CuteChildr", "value": "224" }, { "label": "cuteflower", "value": "6047" }, { "label": "cutegrapef", "value": "2149" }, { "label": "cutelittle", "value": "5793" }, { "label": "Cutelittle", "value": "6019" }, { "label": "cutelovein", "value": "2875" }, { "label": "CuteMaleLe", "value": "1522" }, { "label": "Cutemeow-c", "value": "6121" }, { "label": "CutePet", "value": "1731" }, { "label": "cutepomelo", "value": "2760" }, { "label": "CuteProtag", "value": "124" }, { "label": "CuteProtag", "value": "1517" }, { "label": "cuteshadow", "value": "1972" }, { "label": "CuteStory", "value": "125" }, { "label": "cutewhite", "value": "4978" }, { "label": "Cutthelone", "value": "3647" }, { "label": "cutthrough", "value": "4196" }, { "label": "Cyberpunk", "value": "3294" }, { "label": "cyclingwin", "value": "6074" }, { "label": "Cyclospori", "value": "5429" }, { "label": "cynicism", "value": "3456" }, { "label": "D", "value": "4194" }, { "label": "DaDaping", "value": "5235" }, { "label": "Daddywants", "value": "2432" }, { "label": "dagougou", "value": "2513" }, { "label": "Dahuaisjea", "value": "4682" }, { "label": "Dahunjun", "value": "2345" }, { "label": "Dailyupdat", "value": "5579" }, { "label": "Dailyupdat", "value": "4133" }, { "label": "DaluoGod&a", "value": "5353" }, { "label": "DamingComi", "value": "4068" }, { "label": "DamingYong", "value": "2162" }, { "label": "Dancers", "value": "380" }, { "label": "dancetofig", "value": "1955" }, { "label": "dandy", "value": "3159" }, { "label": "DangeYihe", "value": "5143" }, { "label": "DanMachi", "value": "1636" }, { "label": "Danmei", "value": "758" }, { "label": "DanMing", "value": "5783" }, { "label": "DaoCompani", "value": "417" }, { "label": "DaoCompreh", "value": "583" }, { "label": "DaoguangEt", "value": "6022" }, { "label": "Daoism", "value": "444" }, { "label": "DaoyanShen", "value": "2188" }, { "label": "DaqingXiao", "value": "2238" }, { "label": "DaqinTombR", "value": "5541" }, { "label": "Dark", "value": "319" }, { "label": "DarkDeatho", "value": "574" }, { "label": "DarkFantas", "value": "922" }, { "label": "DarkFaust", "value": "5902" }, { "label": "darkfriedg", "value": "4729" }, { "label": "darknight", "value": "1879" }, { "label": "darkpirate", "value": "1816" }, { "label": "DarkPower", "value": "1363" }, { "label": "Dashuaihen", "value": "2423" }, { "label": "DatangDaqi", "value": "2366" }, { "label": "DatangDaqi", "value": "1938" }, { "label": "DatangErwu", "value": "1991" }, { "label": "Datanggodo", "value": "3620" }, { "label": "Datangpota", "value": "2845" }, { "label": "Datangstyl", "value": "4143" }, { "label": "Datangsupe", "value": "2003" }, { "label": "Daughter", "value": "1145" }, { "label": "daughterco", "value": "2084" }, { "label": "Daughterof", "value": "3893" }, { "label": "Dawn&03", "value": "5665" }, { "label": "Daybyday", "value": "2545" }, { "label": "Dayefire", "value": "5726" }, { "label": "Dayfestiva", "value": "3480" }, { "label": "DayKunpeng", "value": "3517" }, { "label": "DC", "value": "835" }, { "label": "dcc98", "value": "5619" }, { "label": "dd", "value": "5822" }, { "label": "deadfatfas", "value": "2318" }, { "label": "deadfishda", "value": "5359" }, { "label": "DeadProtag", "value": "723" }, { "label": "Deadwoodwa", "value": "6109" }, { "label": "Death", "value": "194" }, { "label": "DeathofDae", "value": "4172" }, { "label": "DeathofLov", "value": "64" }, { "label": "Debts", "value": "515" }, { "label": "Decadeligh", "value": "1958" }, { "label": "decayingro", "value": "5501" }, { "label": "Decisive", "value": "3012" }, { "label": "DecisiveMc", "value": "4335" }, { "label": "deepbluese", "value": "1975" }, { "label": "deepdream", "value": "5257" }, { "label": "DeepLTrans", "value": "1371" }, { "label": "deepsea", "value": "5551" }, { "label": "deepseadiv", "value": "3545" }, { "label": "Dejarimi", "value": "4683" }, { "label": "Delinquent", "value": "247" }, { "label": "Delusions", "value": "640" }, { "label": "Demi-Human", "value": "430" }, { "label": "Demon", "value": "1230" }, { "label": "Demondomai", "value": "2406" }, { "label": "DemonHunte", "value": "5175" }, { "label": "DemonicCul", "value": "395" }, { "label": "DemonInvas", "value": "2218" }, { "label": "DemonKing", "value": "2690" }, { "label": "DemonKingL", "value": "5847" }, { "label": "DemonLord", "value": "218" }, { "label": "DemonPower", "value": "3560" }, { "label": "Demons", "value": "219" }, { "label": "DemonsFami", "value": "1108" }, { "label": "DemonSlaye", "value": "1124" }, { "label": "DenseProta", "value": "65" }, { "label": "Depictions", "value": "156" }, { "label": "Depictions", "value": "1221" }, { "label": "Depression", "value": "303" }, { "label": "derivative", "value": "3388" }, { "label": "desertsalt", "value": "3724" }, { "label": "desertspri", "value": "5596" }, { "label": "Designer", "value": "3385" }, { "label": "Desperate", "value": "3503" }, { "label": "desperatec", "value": "5350" }, { "label": "Desperatel", "value": "2354" }, { "label": "DestinedLo", "value": "1531" }, { "label": "Destiny", "value": "342" }, { "label": "DestinyDra", "value": "6029" }, { "label": "Destituteh", "value": "4053" }, { "label": "Destroyerf", "value": "2309" }, { "label": "Detective", "value": "935" }, { "label": "DetectiveC", "value": "1347" }, { "label": "Detectiver", "value": "3223" }, { "label": "Detectives", "value": "180" }, { "label": "Determined", "value": "1143" }, { "label": "Determined", "value": "165" }, { "label": "Develop", "value": "3246" }, { "label": "Deviationo", "value": "5280" }, { "label": "Devil", "value": "5081" }, { "label": "devilcrayf", "value": "4956" }, { "label": "Devils", "value": "800" }, { "label": "Devilveget", "value": "2293" }, { "label": "DevilWarri", "value": "4953" }, { "label": "DevotedCou", "value": "1776" }, { "label": "Devotedlov", "value": "1735" }, { "label": "DevotedLov", "value": "24" }, { "label": "Diabloisno", "value": "5912" }, { "label": "Dianhuo", "value": "4439" }, { "label": "DianZhongD", "value": "5437" }, { "label": "Didicat", "value": "3742" }, { "label": "DidiDidi", "value": "5607" }, { "label": "DifferentS", "value": "136" }, { "label": "differentw", "value": "1367" }, { "label": "difficulty", "value": "4799" }, { "label": "Diga", "value": "2554" }, { "label": "DiggingtoS", "value": "866" }, { "label": "Digigod", "value": "5582" }, { "label": "Digimon", "value": "1767" }, { "label": "digitalold", "value": "2021" }, { "label": "DigJueJi", "value": "5370" }, { "label": "digthreefe", "value": "2598" }, { "label": "Dikabenka", "value": "2549" }, { "label": "dimensiona", "value": "2879" }, { "label": "Dining", "value": "3181" }, { "label": "Dinosaurs", "value": "1122" }, { "label": "Diplomacy", "value": "1103" }, { "label": "Diplomats", "value": "1492" }, { "label": "directdaug", "value": "3162" }, { "label": "Director", "value": "1192" }, { "label": "Dirge", "value": "4943" }, { "label": "dirtyadmir", "value": "4174" }, { "label": "dirtylittl", "value": "2739" }, { "label": "Disabiliti", "value": "263" }, { "label": "disability", "value": "5045" }, { "label": "DisabledPr", "value": "1693" }, { "label": "DiscipleLo", "value": "1377" }, { "label": "DiscipleTr", "value": "1318" }, { "label": "discordbir", "value": "3860" }, { "label": "Discrimina", "value": "504" }, { "label": "Disfigurem", "value": "634" }, { "label": "Disguiseas", "value": "3245" }, { "label": "DishonestP", "value": "516" }, { "label": "disillusio", "value": "5536" }, { "label": "Disobedien", "value": "1630" }, { "label": "distantsky", "value": "4225" }, { "label": "Distrustfu", "value": "542" }, { "label": "Divination", "value": "535" }, { "label": "Divination", "value": "678" }, { "label": "DivineBook", "value": "2863" }, { "label": "DivineProt", "value": "984" }, { "label": "divineradi", "value": "5848" }, { "label": "divinesign", "value": "1804" }, { "label": "Divorce", "value": "44" }, { "label": "DND", "value": "3199" }, { "label": "Doctor", "value": "1236" }, { "label": "DoctorData", "value": "2657" }, { "label": "Doctors", "value": "25" }, { "label": "doctorstre", "value": "3165" }, { "label": "Dodosaurus", "value": "6082" }, { "label": "DoDumbbell", "value": "5738" }, { "label": "Dog", "value": "1749" }, { "label": "Dogcarp", "value": "3644" }, { "label": "dogeggsold", "value": "2468" }, { "label": "DoingBusin", "value": "1716" }, { "label": "Dollsister", "value": "2250" }, { "label": "DollsPuppe", "value": "212" }, { "label": "DomesticAf", "value": "414" }, { "label": "Dominator", "value": "1503" }, { "label": "Domineerin", "value": "4555" }, { "label": "Domineerin", "value": "2912" }, { "label": "Don’taske", "value": "6049" }, { "label": "don’tgowi", "value": "5916" }, { "label": "don&039", "value": "6056" }, { "label": "don&039", "value": "5671" }, { "label": "don&039", "value": "5490" }, { "label": "don&039", "value": "5206" }, { "label": "don&039", "value": "4901" }, { "label": "don&039", "value": "4878" }, { "label": "don&039", "value": "3880" }, { "label": "don&039", "value": "3624" }, { "label": "don&039", "value": "3496" }, { "label": "don&039", "value": "2055" }, { "label": "don&039", "value": "1968" }, { "label": "Don&039", "value": "4457" }, { "label": "Don&039", "value": "2861" }, { "label": "DongfangYu", "value": "5483" }, { "label": "Dongfengbu", "value": "4363" }, { "label": "DongmenSno", "value": "3941" }, { "label": "Donotbecon", "value": "2566" }, { "label": "Donotforge", "value": "2573" }, { "label": "Donothinga", "value": "3934" }, { "label": "Doodle", "value": "4130" }, { "label": "Doomdays", "value": "1532" }, { "label": "Doomsday", "value": "1080" }, { "label": "Doomsdaywa", "value": "2635" }, { "label": "door", "value": "3451" }, { "label": "doppelgang", "value": "1010" }, { "label": "Doraemon", "value": "2890" }, { "label": "dotingfami", "value": "1372" }, { "label": "dotinghusb", "value": "1396" }, { "label": "dotinglove", "value": "1373" }, { "label": "DotingLove", "value": "26" }, { "label": "DotingOlde", "value": "177" }, { "label": "DotingPare", "value": "178" }, { "label": "DotingPare", "value": "830" }, { "label": "DotingSibl", "value": "1664" }, { "label": "Dotingwife", "value": "3267" }, { "label": "doublebirt", "value": "3341" }, { "label": "doublebirt", "value": "5320" }, { "label": "Doublebusi", "value": "3313" }, { "label": "DoubleLife", "value": "1185" }, { "label": "doublepupp", "value": "5950" }, { "label": "DoubleRebi", "value": "1227" }, { "label": "Doujin", "value": "1293" }, { "label": "Doujinghos", "value": "4562" }, { "label": "Doujinshi", "value": "5675" }, { "label": "Doujipin", "value": "6147" }, { "label": "DoulouDalu", "value": "1038" }, { "label": "Douluo", "value": "2917" }, { "label": "DouluoDalu", "value": "326" }, { "label": "DouluoDolu", "value": "836" }, { "label": "Doupo", "value": "837" }, { "label": "DoupoBTTH", "value": "826" }, { "label": "DouroConti", "value": "3182" }, { "label": "DouroConti", "value": "2992" }, { "label": "DouTuKing", "value": "2051" }, { "label": "doyoueator", "value": "2295" }, { "label": "doyouseemy", "value": "5216" }, { "label": "Doyouunder", "value": "5595" }, { "label": "Doyouwanta", "value": "4007" }, { "label": "doyouwantc", "value": "2856" }, { "label": "Dr.lifeadj", "value": "5790" }, { "label": "Dragon", "value": "1005" }, { "label": "dragon-eat", "value": "2397" }, { "label": "dragon&", "value": "5392" }, { "label": "DragonandL", "value": "2672" }, { "label": "dragonball", "value": "5649" }, { "label": "dragonball", "value": "5256" }, { "label": "DragonBall", "value": "1309" }, { "label": "DragonBall", "value": "5183" }, { "label": "DragonBall", "value": "2289" }, { "label": "DragonButt", "value": "3919" }, { "label": "dragongodd", "value": "5377" }, { "label": "DragonKing", "value": "4459" }, { "label": "DragonLord", "value": "5160" }, { "label": "DragonPala", "value": "2005" }, { "label": "DragonPowe", "value": "3561" }, { "label": "DragonRide", "value": "308" }, { "label": "Dragons", "value": "310" }, { "label": "DragonSlay", "value": "309" }, { "label": "DragonWarr", "value": "3992" }, { "label": "dragracing", "value": "1934" }, { "label": "Drama", "value": "885" }, { "label": "drawing123", "value": "4494" }, { "label": "drawTangpe", "value": "4552" }, { "label": "Dream", "value": "606" }, { "label": "Dream101", "value": "3575" }, { "label": "dreamblizz", "value": "2812" }, { "label": "dreambysta", "value": "4597" }, { "label": "dreamcatch", "value": "2857" }, { "label": "dreamglaze", "value": "3864" }, { "label": "dreamintot", "value": "2410" }, { "label": "dreamleave", "value": "1797" }, { "label": "dreamnine", "value": "4453" }, { "label": "dreamofmak", "value": "4120" }, { "label": "Dreamofthe", "value": "2153" }, { "label": "Dreams", "value": "494" }, { "label": "dreamstarr", "value": "5187" }, { "label": "Dreamstrin", "value": "5938" }, { "label": "dreamtogot", "value": "3981" }, { "label": "DriedRadis", "value": "5265" }, { "label": "driftingra", "value": "5134" }, { "label": "DriftwoodD", "value": "2514" }, { "label": "Drinkingam", "value": "4698" }, { "label": "drinkmorew", "value": "5139" }, { "label": "drinkupLan", "value": "3479" }, { "label": "DrivingAdv", "value": "3651" }, { "label": "DrivingHok", "value": "4591" }, { "label": "Drugs", "value": "543" }, { "label": "Druids", "value": "506" }, { "label": "Drunkencat", "value": "4416" }, { "label": "Drunklifed", "value": "2835" }, { "label": "Drunkmeet", "value": "4635" }, { "label": "DrunkMoonS", "value": "5113" }, { "label": "Drunktime", "value": "5165" }, { "label": "dryday", "value": "4093" }, { "label": "DualCultiv", "value": "5095" }, { "label": "Duaninksto", "value": "5850" }, { "label": "DuckMantou", "value": "5494" }, { "label": "DumbProtag", "value": "1071" }, { "label": "dungeon", "value": "1354" }, { "label": "DungeonMas", "value": "742" }, { "label": "Dungeons", "value": "632" }, { "label": "DurianGras", "value": "3994" }, { "label": "dustpatter", "value": "4487" }, { "label": "DustRainMa", "value": "5267" }, { "label": "Dwarf", "value": "1559" }, { "label": "Dwarfs", "value": "311" }, { "label": "Dwarves", "value": "783" }, { "label": "dwatermelo", "value": "3899" }, { "label": "DXNTotoro", "value": "5040" }, { "label": "DyeingBais", "value": "5191" }, { "label": "Dynasty", "value": "3436" }, { "label": "Dystopia", "value": "618" }, { "label": "e-Sports", "value": "275" }, { "label": "EagleRoadC", "value": "5771" }, { "label": "EarlyRoman", "value": "2" }, { "label": "EarthInvas", "value": "712" }, { "label": "eartwarmin", "value": "3564" }, { "label": "easternfan", "value": "693" }, { "label": "EasternSet", "value": "998" }, { "label": "EasyGoingL", "value": "434" }, { "label": "Easygoingp", "value": "1557" }, { "label": "Eat", "value": "3311" }, { "label": "Eatasteril", "value": "3850" }, { "label": "Eatchicken", "value": "3704" }, { "label": "eatfeet", "value": "4964" }, { "label": "eatfishdon", "value": "3658" }, { "label": "EatingBroa", "value": "1631" }, { "label": "eatingmeat", "value": "4421" }, { "label": "eatmoremea", "value": "5614" }, { "label": "Eatsmallto", "value": "5292" }, { "label": "Eccentricp", "value": "1596" }, { "label": "Ecchi", "value": "5085" }, { "label": "Economics", "value": "505" }, { "label": "EconomicsE", "value": "738" }, { "label": "Ecstasy", "value": "4771" }, { "label": "edgecoatin", "value": "4277" }, { "label": "Editors", "value": "575" }, { "label": "Effort", "value": "3356" }, { "label": "Eggpie", "value": "2180" }, { "label": "Eggplantan", "value": "2792" }, { "label": "Egoist", "value": "5451" }, { "label": "EideticMem", "value": "397" }, { "label": "Eight-star", "value": "3858" }, { "label": "Eighteence", "value": "2925" }, { "label": "EighteenRa", "value": "4751" }, { "label": "eighteight", "value": "4541" }, { "label": "eighthundr", "value": "4609" }, { "label": "Eightswast", "value": "4185" }, { "label": "eincarnate", "value": "789" }, { "label": "ElderlyPro", "value": "776" }, { "label": "electricia", "value": "1769" }, { "label": "electricmo", "value": "2628" }, { "label": "elegantlit", "value": "4184" }, { "label": "elemental", "value": "4350" }, { "label": "Elementali", "value": "1006" }, { "label": "ElementalM", "value": "398" }, { "label": "Elf", "value": "1296" }, { "label": "Elfcold", "value": "1905" }, { "label": "Elite", "value": "1268" }, { "label": "Elves", "value": "354" }, { "label": "elvesandgh", "value": "5689" }, { "label": "Elvish", "value": "3247" }, { "label": "EmbraceofL", "value": "6095" }, { "label": "Emotionall", "value": "381" }, { "label": "Emotionles", "value": "3910" }, { "label": "Emperialpo", "value": "1513" }, { "label": "emperor", "value": "3411" }, { "label": "EmperorCha", "value": "2867" }, { "label": "emperorstr", "value": "3143" }, { "label": "EmperorYao", "value": "1937" }, { "label": "Empire", "value": "1202" }, { "label": "EmpireBuil", "value": "859" }, { "label": "Empires", "value": "437" }, { "label": "Empress", "value": "3257" }, { "label": "empressfem", "value": "5047" }, { "label": "emptydream", "value": "5275" }, { "label": "emptyempty", "value": "5900" }, { "label": "emptyhate", "value": "4132" }, { "label": "emptymind", "value": "4440" }, { "label": "emptymonol", "value": "2407" }, { "label": "emptystard", "value": "4101" }, { "label": "EndlessSha", "value": "4883" }, { "label": "Endlesswin", "value": "6061" }, { "label": "EndoftheWo", "value": "5177" }, { "label": "EndoftheWo", "value": "2500" }, { "label": "EnemiesBec", "value": "195" }, { "label": "EnemiesBec", "value": "213" }, { "label": "enemiestol", "value": "1771" }, { "label": "enemy", "value": "3296" }, { "label": "EnemytoLov", "value": "1623" }, { "label": "EnemytoLov", "value": "1156" }, { "label": "Engage", "value": "3283" }, { "label": "engageinba", "value": "2674" }, { "label": "Engagement", "value": "655" }, { "label": "Engineer", "value": "697" }, { "label": "Enlightenm", "value": "577" }, { "label": "Entertaime", "value": "1164" }, { "label": "Entertaini", "value": "2460" }, { "label": "entertainm", "value": "4637" }, { "label": "entertainm", "value": "2783" }, { "label": "entertainm", "value": "2593" }, { "label": "entertainm", "value": "1699" }, { "label": "Entertainm", "value": "228" }, { "label": "Entertainm", "value": "874" }, { "label": "Entertainm", "value": "6122" }, { "label": "Entertainm", "value": "5327" }, { "label": "Entertainm", "value": "5284" }, { "label": "Entertainm", "value": "3083" }, { "label": "Entertainm", "value": "3060" }, { "label": "Entertainm", "value": "3037" }, { "label": "Entertainm", "value": "3030" }, { "label": "Entertainm", "value": "2961" }, { "label": "Entertainm", "value": "879" }, { "label": "epicfantas", "value": "5712" }, { "label": "Episodic", "value": "157" }, { "label": "Ergouzi&am", "value": "5185" }, { "label": "Erhuowon’", "value": "5919" }, { "label": "ErieShaggy", "value": "3948" }, { "label": "Eroticmeow", "value": "4404" }, { "label": "Erwazi", "value": "2776" }, { "label": "escapemarr", "value": "3613" }, { "label": "Eschatolog", "value": "3183" }, { "label": "Eschatolog", "value": "5340" }, { "label": "Eschatolog", "value": "5315" }, { "label": "Eschatolog", "value": "3074" }, { "label": "Eschatolog", "value": "3002" }, { "label": "Esper", "value": "5889" }, { "label": "ESports", "value": "5676" }, { "label": "Essencedre", "value": "3477" }, { "label": "EternalLif", "value": "5159" }, { "label": "eternallor", "value": "3767" }, { "label": "eternalsta", "value": "4320" }, { "label": "eternityor", "value": "2457" }, { "label": "Eunuch", "value": "343" }, { "label": "EunuchJinr", "value": "1830" }, { "label": "Europe", "value": "3334" }, { "label": "EuropeanAm", "value": "457" }, { "label": "EuropeanAm", "value": "946" }, { "label": "Europeanem", "value": "4188" }, { "label": "Europeansd", "value": "4738" }, { "label": "evengod", "value": "5768" }, { "label": "eveningdog", "value": "3979" }, { "label": "Eveningwin", "value": "4594" }, { "label": "evensuture", "value": "3523" }, { "label": "Evergrande", "value": "2708" }, { "label": "Evergrande", "value": "2352" }, { "label": "everlastin", "value": "2678" }, { "label": "EvernightB", "value": "4589" }, { "label": "everydayfi", "value": "2502" }, { "label": "everydayla", "value": "3097" }, { "label": "everydayla", "value": "3079" }, { "label": "Everyonewh", "value": "4199" }, { "label": "Everyyear", "value": "3761" }, { "label": "Evil", "value": "808" }, { "label": "Evil-prota", "value": "1479" }, { "label": "EvilCharac", "value": "1250" }, { "label": "evildoer", "value": "3310" }, { "label": "EvilGod", "value": "1058" }, { "label": "EvilGods", "value": "333" }, { "label": "evilking", "value": "5114" }, { "label": "EvilOrgani", "value": "66" }, { "label": "EvilOrgani", "value": "1386" }, { "label": "EvilProtag", "value": "382" }, { "label": "EvilReligi", "value": "529" }, { "label": "EvilSpirit", "value": "5070" }, { "label": "EvilSprits", "value": "1712" }, { "label": "evolution", "value": "1403" }, { "label": "Evolution", "value": "339" }, { "label": "evolutiona", "value": "5703" }, { "label": "Ex-girlfri", "value": "1534" }, { "label": "excellentp", "value": "3851" }, { "label": "ExcerptKin", "value": "4425" }, { "label": "exes", "value": "1752" }, { "label": "Exhaustion", "value": "3847" }, { "label": "Exhibition", "value": "1036" }, { "label": "Exorcism", "value": "468" }, { "label": "Exorcist", "value": "1193" }, { "label": "Experience", "value": "1334" }, { "label": "Explodethe", "value": "4945" }, { "label": "Exposurefl", "value": "3137" }, { "label": "Extraordin", "value": "1603" }, { "label": "ExtremeAng", "value": "4809" }, { "label": "Extremelyi", "value": "2240" }, { "label": "eyepower", "value": "1383" }, { "label": "EyePowers", "value": "351" }, { "label": "Faceslap", "value": "1620" }, { "label": "FaceSlappi", "value": "914" }, { "label": "FahaiInvin", "value": "2660" }, { "label": "Fahaiunder", "value": "2251" }, { "label": "faintpenan", "value": "3501" }, { "label": "Fairies", "value": "584" }, { "label": "Fairy", "value": "3546" }, { "label": "fairygirlf", "value": "2480" }, { "label": "Fairyrefer", "value": "3619" }, { "label": "FairySword", "value": "1974" }, { "label": "FairyTail", "value": "1023" }, { "label": "fairytailb", "value": "5583" }, { "label": "FairyTailR", "value": "4137" }, { "label": "Fairy丨Pin", "value": "1824" }, { "label": "Fairy丨San", "value": "3946" }, { "label": "Fairy丨Xiy", "value": "5656" }, { "label": "fakegod", "value": "2555" }, { "label": "FaketoReal", "value": "953" }, { "label": "FallenAnge", "value": "596" }, { "label": "Fallenleav", "value": "2108" }, { "label": "FallenNobi", "value": "524" }, { "label": "FallenWing", "value": "2767" }, { "label": "FallingRai", "value": "1946" }, { "label": "fallinlove", "value": "4145" }, { "label": "fallintoth", "value": "2813" }, { "label": "Faloo", "value": "1304" }, { "label": "FamilialLo", "value": "291" }, { "label": "Familiars", "value": "780" }, { "label": "FamillialL", "value": "1204" }, { "label": "Family", "value": "148" }, { "label": "FamilyBuil", "value": "854" }, { "label": "FamilyBusi", "value": "459" }, { "label": "FamilyConf", "value": "248" }, { "label": "familylife", "value": "1591" }, { "label": "FamilyLove", "value": "1676" }, { "label": "famous", "value": "3427" }, { "label": "famouscoup", "value": "1662" }, { "label": "Famousdete", "value": "1918" }, { "label": "FamousPare", "value": "627" }, { "label": "FamousProt", "value": "383" }, { "label": "Fan-fictio", "value": "183" }, { "label": "Fanaticism", "value": "710" }, { "label": "fancywords", "value": "5935" }, { "label": "Fanderivat", "value": "6145" }, { "label": "fanfic", "value": "1424" }, { "label": "Fanfic", "value": "1194" }, { "label": "Fanfiction", "value": "184" }, { "label": "FanFicton", "value": "1545" }, { "label": "FangQingya", "value": "2374" }, { "label": "FanJiu", "value": "2272" }, { "label": "fanofstar", "value": "2728" }, { "label": "fanqienove", "value": "5009" }, { "label": "Fanqin", "value": "4950" }, { "label": "FantaCola", "value": "2265" }, { "label": "fantasticf", "value": "5708" }, { "label": "Fantastico", "value": "5570" }, { "label": "Fantasy", "value": "391" }, { "label": "Fantasybos", "value": "2496" }, { "label": "FantasyCre", "value": "362" }, { "label": "FantasyCre", "value": "4343" }, { "label": "Fantasyfut", "value": "1753" }, { "label": "fantasyhis", "value": "3439" }, { "label": "FantasyJi", "value": "5997" }, { "label": "FantasyMag", "value": "532" }, { "label": "fantasyspa", "value": "6136" }, { "label": "FantasyWor", "value": "277" }, { "label": "Fantian36L", "value": "6118" }, { "label": "faraway", "value": "4607" }, { "label": "Farm", "value": "1654" }, { "label": "Farmer", "value": "3196" }, { "label": "farmgate", "value": "3160" }, { "label": "Farming", "value": "229" }, { "label": "farmingsys", "value": "3067" }, { "label": "FarmingTex", "value": "1218" }, { "label": "Farmingthr", "value": "5485" }, { "label": "FastCultiv", "value": "67" }, { "label": "FastGrowth", "value": "1264" }, { "label": "FastLearne", "value": "68" }, { "label": "fastpaced", "value": "3144" }, { "label": "fasttravel", "value": "4348" }, { "label": "fastwear", "value": "3146" }, { "label": "fastwear1V", "value": "5330" }, { "label": "fastwear1V", "value": "3063" }, { "label": "fastwearCo", "value": "3028" }, { "label": "fastwearIn", "value": "5305" }, { "label": "FastWearin", "value": "1466" }, { "label": "fastwearNo", "value": "5310" }, { "label": "fastwearPr", "value": "3081" }, { "label": "fastwearRe", "value": "2960" }, { "label": "fastwearst", "value": "3061" }, { "label": "fastwearsw", "value": "5346" }, { "label": "fatcatunde", "value": "4099" }, { "label": "Fatcatwhow", "value": "5441" }, { "label": "FatDiddy", "value": "2594" }, { "label": "FatDragonJ", "value": "5767" }, { "label": "fate", "value": "4488" }, { "label": "Fate90degr", "value": "5287" }, { "label": "FatedLover", "value": "272" }, { "label": "fatedxd", "value": "1404" }, { "label": "FateSeries", "value": "1585" }, { "label": "Fatestayni", "value": "3419" }, { "label": "Father", "value": "1146" }, { "label": "FatHouseDu", "value": "4328" }, { "label": "Fathouselo", "value": "5647" }, { "label": "fatmanoffa", "value": "2060" }, { "label": "Fatmeowdoe", "value": "4556" }, { "label": "fatorange", "value": "4370" }, { "label": "FatProtago", "value": "358" }, { "label": "FattoFit", "value": "359" }, { "label": "Faucet", "value": "2707" }, { "label": "Favoritebl", "value": "2110" }, { "label": "Favoriteco", "value": "6100" }, { "label": "Favoriteco", "value": "2759" }, { "label": "favoritegr", "value": "3814" }, { "label": "favoritepo", "value": "3915" }, { "label": "Favoriteup", "value": "3867" }, { "label": "FearlessPr", "value": "639" }, { "label": "featherand", "value": "3513" }, { "label": "federalhea", "value": "4236" }, { "label": "FeiLuEdiso", "value": "1947" }, { "label": "FeitianOld", "value": "3686" }, { "label": "Fellatio", "value": "629" }, { "label": "FemaleEmpe", "value": "4012" }, { "label": "FemaleFigh", "value": "1586" }, { "label": "femalehono", "value": "3248" }, { "label": "FemaleLead", "value": "986" }, { "label": "FemaleMast", "value": "557" }, { "label": "femalematc", "value": "3121" }, { "label": "FemaleMC", "value": "1391" }, { "label": "FemalePart", "value": "4347" }, { "label": "FemalePres", "value": "1458" }, { "label": "femaleprim", "value": "5745" }, { "label": "Femaleprot", "value": "1226" }, { "label": "FemaleProt", "value": "18" }, { "label": "FemaleProt", "value": "2913" }, { "label": "FemaleSpie", "value": "1493" }, { "label": "FemalesPro", "value": "1178" }, { "label": "FemaletoMa", "value": "734" }, { "label": "FengLingzo", "value": "3585" }, { "label": "FenglinYey", "value": "5199" }, { "label": "Fengqing", "value": "2425" }, { "label": "FengShui", "value": "581" }, { "label": "FengTingyu", "value": "5273" }, { "label": "FengyueXun", "value": "4543" }, { "label": "Fengzilike", "value": "5205" }, { "label": "FengziXiao", "value": "2077" }, { "label": "Fenwhoeats", "value": "5810" }, { "label": "FerrariEnz", "value": "1928" }, { "label": "Fetish", "value": "5094" }, { "label": "Fiction", "value": "5450" }, { "label": "fieldowner", "value": "4046" }, { "label": "fierce", "value": "2128" }, { "label": "Fierceadve", "value": "5212" }, { "label": "fiercewife", "value": "3273" }, { "label": "Fifi&03", "value": "2808" }, { "label": "FifthEmper", "value": "2454" }, { "label": "FifthQingl", "value": "5931" }, { "label": "Fightagain", "value": "3281" }, { "label": "FightingCo", "value": "2450" }, { "label": "Fightingpi", "value": "5687" }, { "label": "Filipino", "value": "1682" }, { "label": "FilipinoNo", "value": "1681" }, { "label": "Filmempero", "value": "3368" }, { "label": "Finance", "value": "2895" }, { "label": "Fineartisl", "value": "5424" }, { "label": "finepoint", "value": "3638" }, { "label": "fingertips", "value": "3877" }, { "label": "Firearms", "value": "166" }, { "label": "fireborn", "value": "1407" }, { "label": "firefire", "value": "4650" }, { "label": "Fireinthes", "value": "2040" }, { "label": "fireonfire", "value": "2602" }, { "label": "Firethief", "value": "1810" }, { "label": "FireWinged", "value": "2384" }, { "label": "FireXinxin", "value": "4902" }, { "label": "First-time", "value": "882" }, { "label": "First-time", "value": "192" }, { "label": "firstaid", "value": "3298" }, { "label": "firstfragr", "value": "4662" }, { "label": "firstgreen", "value": "2535" }, { "label": "FirstLove", "value": "207" }, { "label": "firstperso", "value": "1989" }, { "label": "fishandraf", "value": "2481" }, { "label": "fishdragon", "value": "3530" }, { "label": "fisheatpan", "value": "2869" }, { "label": "fishfishda", "value": "2070" }, { "label": "Fishheadis", "value": "2814" }, { "label": "fishinflam", "value": "2753" }, { "label": "Fishing", "value": "1131" }, { "label": "fishinginf", "value": "4972" }, { "label": "Fishingmak", "value": "4117" }, { "label": "fishswimmi", "value": "2779" }, { "label": "five-color", "value": "5722" }, { "label": "FiveDynast", "value": "5702" }, { "label": "flamboyant", "value": "3491" }, { "label": "flamingfla", "value": "1835" }, { "label": "Flashbacks", "value": "135" }, { "label": "FlashBonda", "value": "4441" }, { "label": "flashhusky", "value": "5405" }, { "label": "FleetBattl", "value": "745" }, { "label": "flirtatiou", "value": "3616" }, { "label": "flirtyclou", "value": "5036" }, { "label": "Fllatio", "value": "191" }, { "label": "Floatingcl", "value": "3987" }, { "label": "floatingdu", "value": "4916" }, { "label": "Floatingli", "value": "2550" }, { "label": "floatingse", "value": "4800" }, { "label": "flood", "value": "3220" }, { "label": "floodRelax", "value": "3045" }, { "label": "Flourishin", "value": "3369" }, { "label": "Flower&", "value": "3967" }, { "label": "FlowerBlos", "value": "4180" }, { "label": "flowercare", "value": "3177" }, { "label": "flowercare", "value": "3077" }, { "label": "flowercare", "value": "2997" }, { "label": "flowerdust", "value": "4400" }, { "label": "Flowersblo", "value": "5952" }, { "label": "flowersoft", "value": "2805" }, { "label": "Flowingclo", "value": "5258" }, { "label": "Flowingclo", "value": "4933" }, { "label": "flyburning", "value": "5784" }, { "label": "flyingcow", "value": "2547" }, { "label": "FlyingDrag", "value": "4458" }, { "label": "flyingfish", "value": "2146" }, { "label": "Flyinggras", "value": "4019" }, { "label": "flyinglitt", "value": "2522" }, { "label": "FlyingLuTi", "value": "2301" }, { "label": "Flyingmeat", "value": "4710" }, { "label": "flyingnood", "value": "3914" }, { "label": "flyingshar", "value": "2719" }, { "label": "Flyingsnow", "value": "5304" }, { "label": "flyingsqui", "value": "2364" }, { "label": "Flyingwhit", "value": "2862" }, { "label": "flyinthelo", "value": "2615" }, { "label": "flytothemo", "value": "4124" }, { "label": "FocusSpeci", "value": "3795" }, { "label": "Foggy", "value": "4204" }, { "label": "FogLan", "value": "4732" }, { "label": "foldedkite", "value": "4628" }, { "label": "Foldoffthi", "value": "5668" }, { "label": "Folklore", "value": "623" }, { "label": "folksuspen", "value": "3364" }, { "label": "Followthew", "value": "2091" }, { "label": "Fomalhaut7", "value": "5877" }, { "label": "Food", "value": "814" }, { "label": "foodie", "value": "3414" }, { "label": "FoodShopke", "value": "987" }, { "label": "FoodWars!", "value": "1317" }, { "label": "fool", "value": "4871" }, { "label": "Football", "value": "352" }, { "label": "Forcedinto", "value": "110" }, { "label": "ForcedLivi", "value": "317" }, { "label": "ForcedMarr", "value": "111" }, { "label": "Forcedtomo", "value": "5503" }, { "label": "foreignwei", "value": "3261" }, { "label": "Forensic", "value": "3716" }, { "label": "forest", "value": "2134" }, { "label": "forestinth", "value": "4291" }, { "label": "ForgetfulP", "value": "384" }, { "label": "Forgiveyou", "value": "2211" }, { "label": "forgottoun", "value": "5476" }, { "label": "Formation", "value": "4192" }, { "label": "Formations", "value": "1346" }, { "label": "FormerHero", "value": "478" }, { "label": "formworksk", "value": "2817" }, { "label": "fornoreaso", "value": "5362" }, { "label": "Fortyacres", "value": "6065" }, { "label": "Fourkeys", "value": "2451" }, { "label": "Foursome", "value": "5088" }, { "label": "FourthDisa", "value": "1276" }, { "label": "fox", "value": "3433" }, { "label": "foxcontrol", "value": "5554" }, { "label": "foxdemonpr", "value": "5533" }, { "label": "FoxdemonXi", "value": "2377" }, { "label": "Foxhimself", "value": "3809" }, { "label": "foxlisteni", "value": "1827" }, { "label": "FoxSpirits", "value": "256" }, { "label": "Fragmentof", "value": "4696" }, { "label": "fragmentso", "value": "4070" }, { "label": "France", "value": "1496" }, { "label": "frenchcoun", "value": "5933" }, { "label": "frenzyflow", "value": "4417" }, { "label": "Freshparad", "value": "5864" }, { "label": "Friction", "value": "932" }, { "label": "Friday", "value": "1885" }, { "label": "fried", "value": "3739" }, { "label": "FriedJunhu", "value": "4781" }, { "label": "Friedsquid", "value": "4514" }, { "label": "FriendsBec", "value": "737" }, { "label": "Friendship", "value": "421" }, { "label": "Fromnowon", "value": "5837" }, { "label": "Fromthepup", "value": "4063" }, { "label": "Frostandsn", "value": "5489" }, { "label": "FrostZhong", "value": "5867" }, { "label": "Frozencorn", "value": "4215" }, { "label": "FuHejun", "value": "3676" }, { "label": "Fujoshi", "value": "69" }, { "label": "Fukujin", "value": "3339" }, { "label": "Fullcolor", "value": "3841" }, { "label": "fullflow", "value": "3404" }, { "label": "fullmeal", "value": "2173" }, { "label": "Fullyarmed", "value": "3853" }, { "label": "FungMingHe", "value": "4897" }, { "label": "Funny", "value": "3138" }, { "label": "furioussna", "value": "2336" }, { "label": "Furutake", "value": "3607" }, { "label": "fusion", "value": "5365" }, { "label": "FusoFantas", "value": "4319" }, { "label": "Futanari", "value": "193" }, { "label": "Future", "value": "1698" }, { "label": "FutureCivi", "value": "355" }, { "label": "FutureCivi", "value": "1252" }, { "label": "futuredyst", "value": "5049" }, { "label": "Futureover", "value": "6139" }, { "label": "futureworl", "value": "2909" }, { "label": "futureworl", "value": "3056" }, { "label": "futureworl", "value": "2989" }, { "label": "Futuristic", "value": "126" }, { "label": "Futuristic", "value": "1500" }, { "label": "Fuyuan", "value": "4859" }, { "label": "gacha", "value": "5445" }, { "label": "Galacticos", "value": "1917" }, { "label": "Galaxyboy", "value": "2245" }, { "label": "GalaxyWars", "value": "1266" }, { "label": "Galge", "value": "1109" }, { "label": "GambitPara", "value": "4284" }, { "label": "Gambling", "value": "661" }, { "label": "gamblingst", "value": "3729" }, { "label": "Game", "value": "822" }, { "label": "gamealien", "value": "3153" }, { "label": "gamealienO", "value": "2978" }, { "label": "gamealienp", "value": "3006" }, { "label": "gamealienV", "value": "2966" }, { "label": "gameelemen", "value": "1627" }, { "label": "GameElemen", "value": "70" }, { "label": "GameElemen", "value": "868" }, { "label": "GameLit", "value": "3763" }, { "label": "GameofThro", "value": "3422" }, { "label": "GameOnline", "value": "1449" }, { "label": "gameplayer", "value": "3430" }, { "label": "Gameproduc", "value": "3154" }, { "label": "GameRangki", "value": "1246" }, { "label": "GameRankin", "value": "392" }, { "label": "Gamers", "value": "170" }, { "label": "gameworld", "value": "1220" }, { "label": "Gaming", "value": "1133" }, { "label": "GamingE-Sp", "value": "385" }, { "label": "Gangs", "value": "321" }, { "label": "Gangster", "value": "3226" }, { "label": "Gangsters", "value": "798" }, { "label": "GanYu&0", "value": "4148" }, { "label": "GaoWu", "value": "5673" }, { "label": "GaoYuanyao", "value": "2666" }, { "label": "GatetoAnot", "value": "214" }, { "label": "Gatevalve", "value": "3110" }, { "label": "Geass", "value": "1590" }, { "label": "Geeky", "value": "3408" }, { "label": "GenderBend", "value": "1012" }, { "label": "Genderless", "value": "1632" }, { "label": "Genderless", "value": "609" }, { "label": "gene", "value": "3315" }, { "label": "GeneModifi", "value": "1315" }, { "label": "General", "value": "3349" }, { "label": "Generals", "value": "233" }, { "label": "GeneralXie", "value": "2773" }, { "label": "GeneticMod", "value": "312" }, { "label": "geneticwar", "value": "3340" }, { "label": "Genies", "value": "215" }, { "label": "genius", "value": "1421" }, { "label": "geniusflow", "value": "3129" }, { "label": "geniusflow", "value": "3016" }, { "label": "GeniusProt", "value": "216" }, { "label": "Genshin", "value": "1510" }, { "label": "GenshinImp", "value": "1321" }, { "label": "GentleLove", "value": "1750" }, { "label": "gentleman", "value": "1986" }, { "label": "GentlemanI", "value": "5236" }, { "label": "GentlemanM", "value": "4646" }, { "label": "GentleProt", "value": "1722" }, { "label": "Gentlygath", "value": "4909" }, { "label": "Georgia", "value": "4034" }, { "label": "germanicsn", "value": "3896" }, { "label": "getonit!", "value": "4749" }, { "label": "GetRich", "value": "1717" }, { "label": "Getrichbys", "value": "6072" }, { "label": "Getupearly", "value": "6126" }, { "label": "Ghost", "value": "1099" }, { "label": "Ghostexter", "value": "2677" }, { "label": "Ghosts", "value": "158" }, { "label": "Ghostsinre", "value": "2402" }, { "label": "Giant", "value": "3151" }, { "label": "giantpanda", "value": "2840" }, { "label": "Gilf", "value": "5090" }, { "label": "GingerLemo", "value": "3380" }, { "label": "Girl&03", "value": "1198" }, { "label": "Girl&03", "value": "1191" }, { "label": "girlfallsi", "value": "4697" }, { "label": "girlfriend", "value": "1149" }, { "label": "Girlsareet", "value": "5951" }, { "label": "giveyoutim", "value": "2058" }, { "label": "Gladiators", "value": "981" }, { "label": "Glasses-we", "value": "703" }, { "label": "Glasses-we", "value": "624" }, { "label": "glasseswei", "value": "4419" }, { "label": "glasssauce", "value": "4281" }, { "label": "glassysky", "value": "6102" }, { "label": "GLL", "value": "2329" }, { "label": "GlobalTop1", "value": "4545" }, { "label": "gluttoneat", "value": "4888" }, { "label": "Go", "value": "1942" }, { "label": "goallist", "value": "2659" }, { "label": "Goblins", "value": "616" }, { "label": "God", "value": "1297" }, { "label": "God-humanR", "value": "668" }, { "label": "God-levelf", "value": "3304" }, { "label": "God&039", "value": "4573" }, { "label": "God&039", "value": "2171" }, { "label": "GodandDevi", "value": "1508" }, { "label": "Godcat", "value": "4241" }, { "label": "Goddess", "value": "1575" }, { "label": "goddessbos", "value": "2378" }, { "label": "Goddesses", "value": "278" }, { "label": "Goddidnotg", "value": "2414" }, { "label": "GodLikeMC", "value": "1443" }, { "label": "GodlyPower", "value": "356" }, { "label": "GodlyPower", "value": "1582" }, { "label": "GodlyProta", "value": "960" }, { "label": "Godofcreat", "value": "3626" }, { "label": "godofduel", "value": "1908" }, { "label": "GodofForti", "value": "1996" }, { "label": "godofrainy", "value": "4519" }, { "label": "Godofwings", "value": "2324" }, { "label": "GodProtago", "value": "298" }, { "label": "Gods", "value": "234" }, { "label": "godsaltedf", "value": "2589" }, { "label": "Godzilla", "value": "1710" }, { "label": "Golden", "value": "2634" }, { "label": "GoldenFing", "value": "963" }, { "label": "goldenfore", "value": "2751" }, { "label": "GoldenMang", "value": "4678" }, { "label": "goldenswor", "value": "5617" }, { "label": "goldenthom", "value": "5815" }, { "label": "goldfinger", "value": "1941" }, { "label": "Goldfinger", "value": "3031" }, { "label": "Goldfinger", "value": "2938" }, { "label": "goldrush", "value": "4274" }, { "label": "Golems", "value": "778" }, { "label": "GoneDouble", "value": "5775" }, { "label": "GoneStrawb", "value": "2078" }, { "label": "Gongdou", "value": "3254" }, { "label": "Gongdou1V1", "value": "5334" }, { "label": "Gongdouswe", "value": "3078" }, { "label": "GongdouZha", "value": "5690" }, { "label": "gongregret", "value": "3894" }, { "label": "Goo!Justki", "value": "5465" }, { "label": "good-natur", "value": "2651" }, { "label": "goodbyeex", "value": "4212" }, { "label": "goodpotdre", "value": "1870" }, { "label": "Goodsir", "value": "4410" }, { "label": "goodstar", "value": "5470" }, { "label": "googoogoog", "value": "4003" }, { "label": "Gooifyouca", "value": "2853" }, { "label": "goose", "value": "5296" }, { "label": "Gore", "value": "94" }, { "label": "goslowbro", "value": "1861" }, { "label": "gossip", "value": "2053" }, { "label": "Gotaki", "value": "2090" }, { "label": "Gotoschool", "value": "3550" }, { "label": "gotta", "value": "5247" }, { "label": "Gouor", "value": "4222" }, { "label": "Gourmet", "value": "1551" }, { "label": "GouTaoist", "value": "4571" }, { "label": "Government", "value": "1616" }, { "label": "GovernorWh", "value": "4134" }, { "label": "Graceunder", "value": "6007" }, { "label": "GradeXNUMX", "value": "1799" }, { "label": "gradually", "value": "4994" }, { "label": "Grandpa", "value": "3180" }, { "label": "Granvillec", "value": "4659" }, { "label": "GrassCrick", "value": "5202" }, { "label": "Grassroots", "value": "3128" }, { "label": "GraveKeepe", "value": "1016" }, { "label": "gravityfal", "value": "1430" }, { "label": "Grayborn", "value": "4827" }, { "label": "greatbriti", "value": "5899" }, { "label": "GreatCeles", "value": "2317" }, { "label": "GreatCod", "value": "5401" }, { "label": "GreatDesol", "value": "4147" }, { "label": "GreatDrago", "value": "4256" }, { "label": "Greatgod", "value": "3554" }, { "label": "GreatQinIm", "value": "4263" }, { "label": "GreatQinvi", "value": "4000" }, { "label": "GreatSage", "value": "2037" }, { "label": "greedydrin", "value": "4186" }, { "label": "GreedyProt", "value": "1217" }, { "label": "GreenCong", "value": "3577" }, { "label": "greenfruit", "value": "4810" }, { "label": "greengrass", "value": "4288" }, { "label": "Greenplum", "value": "3337" }, { "label": "greentea", "value": "1777" }, { "label": "greenteaL", "value": "5505" }, { "label": "GrilledPac", "value": "5147" }, { "label": "GrilledPir", "value": "3957" }, { "label": "Grimdark", "value": "787" }, { "label": "grimReaper", "value": "3459" }, { "label": "GrimReaper", "value": "4893" }, { "label": "Grinding", "value": "544" }, { "label": "Group", "value": "3188" }, { "label": "GroupChat", "value": "1272" }, { "label": "Groupfavor", "value": "6151" }, { "label": "GroupPet", "value": "2914" }, { "label": "groupwear", "value": "3591" }, { "label": "growingup", "value": "6137" }, { "label": "Growth", "value": "1486" }, { "label": "Grumpyoldm", "value": "3947" }, { "label": "grumpyoran", "value": "5942" }, { "label": "Grupchat", "value": "1477" }, { "label": "GuaguaSoar", "value": "4406" }, { "label": "GuardianRe", "value": "264" }, { "label": "GudaoZhous", "value": "4250" }, { "label": "Gugu", "value": "4840" }, { "label": "gugugugu", "value": "4913" }, { "label": "Guilds", "value": "631" }, { "label": "GuiltyScis", "value": "2581" }, { "label": "Guluton", "value": "5418" }, { "label": "Gundam", "value": "1741" }, { "label": "Gunfighter", "value": "95" }, { "label": "GuodianAna", "value": "5294" }, { "label": "Guoshu", "value": "3272" }, { "label": "Guoshuflow", "value": "5711" }, { "label": "GuShaoxia", "value": "1858" }, { "label": "H11H", "value": "2737" }, { "label": "Hachime", "value": "3688" }, { "label": "Hacker", "value": "957" }, { "label": "Hackers", "value": "367" }, { "label": "Hahariding", "value": "4610" }, { "label": "Haikyuu", "value": "1768" }, { "label": "Hailuojun", "value": "5988" }, { "label": "HakoniwaSe", "value": "2398" }, { "label": "Half-human", "value": "265" }, { "label": "halfafrog", "value": "3539" }, { "label": "halfanoran", "value": "2618" }, { "label": "HalfCityDe", "value": "5394" }, { "label": "HalfJiangS", "value": "3643" }, { "label": "halfmoonem", "value": "4525" }, { "label": "halfnights", "value": "4961" }, { "label": "halfsmoke", "value": "5238" }, { "label": "halfstepge", "value": "2476" }, { "label": "halfstring", "value": "5555" }, { "label": "Halo", "value": "811" }, { "label": "HamabeMiwa", "value": "4854" }, { "label": "Haminstant", "value": "2689" }, { "label": "Handjob", "value": "699" }, { "label": "HandjobBet", "value": "3656" }, { "label": "handsome", "value": "3566" }, { "label": "handsomeat", "value": "4329" }, { "label": "handsomebl", "value": "6023" }, { "label": "Handsomegu", "value": "2789" }, { "label": "HandsomeMa", "value": "11" }, { "label": "HandsomeMa", "value": "1656" }, { "label": "HandsomeMC", "value": "5096" }, { "label": "handsomeon", "value": "2607" }, { "label": "HandsomePr", "value": "1195" }, { "label": "handtearin", "value": "2362" }, { "label": "HanlinBrok", "value": "5388" }, { "label": "HansChrist", "value": "5173" }, { "label": "HanXiaoshe", "value": "4318" }, { "label": "HaotianExt", "value": "2356" }, { "label": "HaoyuYingx", "value": "3379" }, { "label": "Happy", "value": "1157" }, { "label": "HappyBeanl", "value": "2177" }, { "label": "happydrago", "value": "4886" }, { "label": "HappyEndin", "value": "833" }, { "label": "happyenemy", "value": "3094" }, { "label": "Happyfirst", "value": "4522" }, { "label": "HappyFlow", "value": "2825" }, { "label": "happylittl", "value": "3664" }, { "label": "happylutho", "value": "3687" }, { "label": "Hard-Worki", "value": "127" }, { "label": "HardSci-fi", "value": "3424" }, { "label": "hardtofind", "value": "4428" }, { "label": "Hardworkin", "value": "4857" }, { "label": "Hardworkin", "value": "1173" }, { "label": "Harem", "value": "37" }, { "label": "Harem-seek", "value": "324" }, { "label": "Haremismta", "value": "2521" }, { "label": "HaremSeeki", "value": "1084" }, { "label": "Harpertime", "value": "5635" }, { "label": "harpyfrog", "value": "5435" }, { "label": "harrypotte", "value": "1427" }, { "label": "HarryPotte", "value": "237" }, { "label": "HarshTrain", "value": "625" }, { "label": "HarukoHaru", "value": "5941" }, { "label": "Hashihime", "value": "2100" }, { "label": "HatedProta", "value": "112" }, { "label": "haveagoody", "value": "4270" }, { "label": "havealongm", "value": "4967" }, { "label": "Haveasofts", "value": "6128" }, { "label": "haveryconf", "value": "4095" }, { "label": "Hawkeye", "value": "2330" }, { "label": "hazelneck", "value": "3961" }, { "label": "HE", "value": "3152" }, { "label": "Head", "value": "3707" }, { "label": "headedsalt", "value": "5911" }, { "label": "Headmaster", "value": "4831" }, { "label": "HeadofShil", "value": "4642" }, { "label": "Healers", "value": "566" }, { "label": "Healing", "value": "1474" }, { "label": "Healthewor", "value": "2326" }, { "label": "heart", "value": "4283" }, { "label": "heartandey", "value": "2619" }, { "label": "HeartHunte", "value": "2684" }, { "label": "Heartwarmi", "value": "106" }, { "label": "Heaven", "value": "582" }, { "label": "heavenclea", "value": "2526" }, { "label": "HeavenlyKi", "value": "3481" }, { "label": "HeavenlyTr", "value": "128" }, { "label": "heavensong", "value": "2544" }, { "label": "HefanAnzi", "value": "5805" }, { "label": "Hegemony", "value": "2904" }, { "label": "Hehehehehe", "value": "6011" }, { "label": "HeHuaninth", "value": "5276" }, { "label": "HeiTongWuG", "value": "4268" }, { "label": "Hell", "value": "651" }, { "label": "HelpfulPro", "value": "612" }, { "label": "helpmeup", "value": "4622" }, { "label": "HengdianXi", "value": "4146" }, { "label": "Hentai", "value": "978" }, { "label": "Herbalist", "value": "779" }, { "label": "hereIcome", "value": "3623" }, { "label": "HERelaxeds", "value": "5342" }, { "label": "Hero", "value": "784" }, { "label": "Heroes", "value": "536" }, { "label": "Heroesofth", "value": "1961" }, { "label": "heroine", "value": "1778" }, { "label": "heroinecut", "value": "3161" }, { "label": "Hesitatean", "value": "4126" }, { "label": "Heterochro", "value": "969" }, { "label": "HEwearbook", "value": "3009" }, { "label": "hewon&0", "value": "5855" }, { "label": "Hexue", "value": "4460" }, { "label": "HeXueguan", "value": "5413" }, { "label": "hey", "value": "2094" }, { "label": "HeYeTonggu", "value": "5523" }, { "label": "HeyMajesty", "value": "4920" }, { "label": "hi", "value": "1995" }, { "label": "hibernatin", "value": "4596" }, { "label": "HidakaDanc", "value": "4868" }, { "label": "HiddenAbil", "value": "259" }, { "label": "hiddenbook", "value": "5411" }, { "label": "HiddenBoss", "value": "1483" }, { "label": "HiddenGem", "value": "982" }, { "label": "HiddenIden", "value": "921" }, { "label": "HiddenIden", "value": "1216" }, { "label": "hiddenmarr", "value": "3258" }, { "label": "hiddenmarr", "value": "5338" }, { "label": "HiddenTrue", "value": "1107" }, { "label": "hiddenvest", "value": "1210" }, { "label": "HiddenYrue", "value": "1135" }, { "label": "Hidethepen", "value": "4928" }, { "label": "HidingAbil", "value": "479" }, { "label": "HidingTrue", "value": "200" }, { "label": "HidingTrue", "value": "117" }, { "label": "HidingTrue", "value": "1086" }, { "label": "HidingTrue", "value": "958" }, { "label": "Highcold", "value": "3429" }, { "label": "HighFantas", "value": "1666" }, { "label": "highiq", "value": "1428" }, { "label": "HighSchool", "value": "1039" }, { "label": "HighSchool", "value": "1159" }, { "label": "Higu", "value": "2104" }, { "label": "Hikari", "value": "4158" }, { "label": "HiKeli", "value": "5716" }, { "label": "Hikusei", "value": "3239" }, { "label": "Hiroyuki", "value": "4057" }, { "label": "hishy", "value": "4925" }, { "label": "HisMajesty", "value": "2430" }, { "label": "HisnameisJ", "value": "4374" }, { "label": "HisRoyalHi", "value": "4265" }, { "label": "Historical", "value": "824" }, { "label": "Historical", "value": "5709" }, { "label": "History", "value": "860" }, { "label": "Historyoft", "value": "5885" }, { "label": "hitten", "value": "2927" }, { "label": "hitthestre", "value": "4385" }, { "label": "Hndjob", "value": "376" }, { "label": "Hogwarts", "value": "1608" }, { "label": "Hokage", "value": "845" }, { "label": "HoldingaMe", "value": "5758" }, { "label": "Holdthemom", "value": "5756" }, { "label": "Hollywood", "value": "1196" }, { "label": "holyangel", "value": "2017" }, { "label": "HolyFather", "value": "5184" }, { "label": "HolyFireDT", "value": "3964" }, { "label": "HolyKingRa", "value": "1826" }, { "label": "holymonk", "value": "3891" }, { "label": "HolyWaterP", "value": "6062" }, { "label": "HomeAttrib", "value": "2369" }, { "label": "homelessma", "value": "3913" }, { "label": "HonestandR", "value": "2622" }, { "label": "honestdogg", "value": "4144" }, { "label": "honestking", "value": "3470" }, { "label": "HonestProt", "value": "648" }, { "label": "HongchenJi", "value": "4387" }, { "label": "HongfeiQin", "value": "2597" }, { "label": "HongHuangB", "value": "5779" }, { "label": "HonghuangN", "value": "2516" }, { "label": "Honghuangs", "value": "2217" }, { "label": "HonghuangS", "value": "4496" }, { "label": "HongHuangz", "value": "5286" }, { "label": "HongKongFi", "value": "4018" }, { "label": "HongmengSh", "value": "1783" }, { "label": "HongTang", "value": "1886" }, { "label": "Hongxuetyp", "value": "5936" }, { "label": "Honkai1999", "value": "4171" }, { "label": "HonkaiImpa", "value": "1375" }, { "label": "HonkaiMess", "value": "3586" }, { "label": "hopeful", "value": "5482" }, { "label": "hornreverb", "value": "4691" }, { "label": "horror", "value": "818" }, { "label": "horrorgod", "value": "2394" }, { "label": "horsehorse", "value": "4873" }, { "label": "HoshinoSor", "value": "5828" }, { "label": "Hospital", "value": "636" }, { "label": "Hot-bloode", "value": "300" }, { "label": "HotBlood", "value": "3013" }, { "label": "Hotels", "value": "906" }, { "label": "Hotpepper", "value": "4821" }, { "label": "hotpot", "value": "2721" }, { "label": "housefight", "value": "3170" }, { "label": "housefight", "value": "5336" }, { "label": "housefight", "value": "5326" }, { "label": "housefight", "value": "3049" }, { "label": "housegirl", "value": "5132" }, { "label": "housekeepe", "value": "5545" }, { "label": "houseprope", "value": "2412" }, { "label": "howcomfort", "value": "5389" }, { "label": "howlingpig", "value": "2312" }, { "label": "howlingwin", "value": "2770" }, { "label": "Huahuababy", "value": "5444" }, { "label": "HuaihaiChi", "value": "4988" }, { "label": "HuanHuanHu", "value": "2061" }, { "label": "HuaNiaoFen", "value": "6006" }, { "label": "HuaXiaowas", "value": "4042" }, { "label": "hugTA&0", "value": "4704" }, { "label": "Huijingund", "value": "2236" }, { "label": "HuiMochou", "value": "1997" }, { "label": "HuiXiaCong", "value": "4382" }, { "label": "human", "value": "4653" }, { "label": "Human-Nonh", "value": "159" }, { "label": "HumanExper", "value": "413" }, { "label": "HumanExper", "value": "1392" }, { "label": "humannatur", "value": "5803" }, { "label": "HumanoidPr", "value": "129" }, { "label": "HumanWeapo", "value": "490" }, { "label": "Humbleboy", "value": "3277" }, { "label": "Humiliatio", "value": "5093" }, { "label": "humla", "value": "2221" }, { "label": "hundredhou", "value": "4064" }, { "label": "hunter", "value": "3562" }, { "label": "Hunter×Hu", "value": "2921" }, { "label": "hunterkill", "value": "1881" }, { "label": "hunterleav", "value": "4245" }, { "label": "Hunters", "value": "531" }, { "label": "HunterxHun", "value": "1338" }, { "label": "HunyuanDal", "value": "5148" }, { "label": "Huoshulour", "value": "3791" }, { "label": "HuoxiangZh", "value": "3771" }, { "label": "Hurry", "value": "5914" }, { "label": "HuTiandi", "value": "2386" }, { "label": "HuYuan&", "value": "5602" }, { "label": "HxH", "value": "1062" }, { "label": "HyogoNorth", "value": "5747" }, { "label": "hyperknigh", "value": "1927" }, { "label": "Hypnotism", "value": "377" }, { "label": "I&039ll", "value": "4249" }, { "label": "i&039ma", "value": "3657" }, { "label": "I&039ma", "value": "4949" }, { "label": "I&039ma", "value": "2191" }, { "label": "I&039mj", "value": "3674" }, { "label": "I&039mn", "value": "5186" }, { "label": "I&039mn", "value": "4484" }, { "label": "I&039mo", "value": "2351" }, { "label": "I&039mr", "value": "4500" }, { "label": "I&039ms", "value": "4026" }, { "label": "I&039ms", "value": "3655" }, { "label": "I&039mX", "value": "4529" }, { "label": "ialmostbel", "value": "3519" }, { "label": "iamabigsal", "value": "3963" }, { "label": "Iamamelanc", "value": "4639" }, { "label": "Iamapirate", "value": "2321" }, { "label": "Iamareader", "value": "4630" }, { "label": "Iamarealdi", "value": "2304" }, { "label": "IamAsi", "value": "2744" }, { "label": "iamatravel", "value": "1930" }, { "label": "Iamfifth", "value": "2314" }, { "label": "IamGuanxi", "value": "2438" }, { "label": "Iamhell", "value": "2443" }, { "label": "IamHisMaje", "value": "2296" }, { "label": "Iamnotaloc", "value": "2009" }, { "label": "Iamnottheo", "value": "5774" }, { "label": "Iamolderth", "value": "2269" }, { "label": "Iamoldwolf", "value": "2695" }, { "label": "Iamthemurd", "value": "2765" }, { "label": "Iamtheseak", "value": "1890" }, { "label": "Iamtheseco", "value": "2650" }, { "label": "Iamtwenty-", "value": "2596" }, { "label": "Iateeightc", "value": "2931" }, { "label": "IbukiGourd", "value": "3813" }, { "label": "Ibuprofen", "value": "2580" }, { "label": "icalledthe", "value": "2036" }, { "label": "Ican&03", "value": "4456" }, { "label": "Icanreally", "value": "4088" }, { "label": "IceCreamAs", "value": "4412" }, { "label": "iceddaught", "value": "4197" }, { "label": "IcedDurian", "value": "2826" }, { "label": "icesweet", "value": "4575" }, { "label": "icewalk", "value": "1979" }, { "label": "Icomefromt", "value": "3578" }, { "label": "IdentityCr", "value": "344" }, { "label": "ideologica", "value": "3278" }, { "label": "Idiotdeado", "value": "5777" }, { "label": "idlerscome", "value": "4788" }, { "label": "Idol", "value": "1301" }, { "label": "Idon’tkno", "value": "6034" }, { "label": "idon&03", "value": "2195" }, { "label": "Idon&03", "value": "4661" }, { "label": "Idon&03", "value": "4031" }, { "label": "idropbaby", "value": "1839" }, { "label": "ieatgrass", "value": "2609" }, { "label": "ieatguava", "value": "4624" }, { "label": "IfIdon&", "value": "4248" }, { "label": "ifthewindi", "value": "6068" }, { "label": "Ifyoucango", "value": "2118" }, { "label": "Igotit!", "value": "5201" }, { "label": "Ihaveeight", "value": "4140" }, { "label": "ihaveseven", "value": "4407" }, { "label": "ihavethere", "value": "2774" }, { "label": "Ijustwantt", "value": "1906" }, { "label": "Ilikedried", "value": "3495" }, { "label": "Iliveupsta", "value": "2010" }, { "label": "Illigitima", "value": "1714" }, { "label": "Ilo", "value": "1786" }, { "label": "Iloveboile", "value": "3508" }, { "label": "ilovegrape", "value": "6041" }, { "label": "ilovewatch", "value": "4774" }, { "label": "ilovewoo", "value": "2704" }, { "label": "immeasurab", "value": "4770" }, { "label": "Immortal", "value": "1077" }, { "label": "ImmortalBi", "value": "2658" }, { "label": "ImmortalEm", "value": "3428" }, { "label": "ImmortalMa", "value": "2781" }, { "label": "Immortals", "value": "235" }, { "label": "ImperialCa", "value": "5035" }, { "label": "imperialco", "value": "1473" }, { "label": "Imperialco", "value": "5706" }, { "label": "ImperialCu", "value": "6117" }, { "label": "Imperialex", "value": "3276" }, { "label": "ImperialFa", "value": "1088" }, { "label": "ImperialHa", "value": "238" }, { "label": "Imposter", "value": "5056" }, { "label": "inactionin", "value": "5393" }, { "label": "Incarnatio", "value": "5548" }, { "label": "Incest", "value": "179" }, { "label": "inchshadow", "value": "5115" }, { "label": "Inclassroo", "value": "4169" }, { "label": "Inclined", "value": "3970" }, { "label": "Incubus", "value": "1019" }, { "label": "Indecisive", "value": "568" }, { "label": "Indestruct", "value": "4271" }, { "label": "Indonesia", "value": "1687" }, { "label": "IndonesiaN", "value": "1686" }, { "label": "indulgemyd", "value": "4033" }, { "label": "industrial", "value": "3565" }, { "label": "Industrial", "value": "641" }, { "label": "Industry", "value": "1269" }, { "label": "industryel", "value": "5053" }, { "label": "Industryel", "value": "6131" }, { "label": "industryHo", "value": "2949" }, { "label": "Inexplicab", "value": "4206" }, { "label": "infatuatio", "value": "3158" }, { "label": "Inferiorit", "value": "431" }, { "label": "Infernalco", "value": "2067" }, { "label": "infinite", "value": "1368" }, { "label": "InfiniteBu", "value": "2190" }, { "label": "InfiniteFl", "value": "1292" }, { "label": "infinitega", "value": "5825" }, { "label": "Infiniteme", "value": "2027" }, { "label": "infinitesu", "value": "2531" }, { "label": "infrastrac", "value": "1374" }, { "label": "Infrastruc", "value": "1384" }, { "label": "Infrastruc", "value": "3431" }, { "label": "Ingeniousg", "value": "4687" }, { "label": "Inherenten", "value": "4699" }, { "label": "Inheritanc", "value": "426" }, { "label": "Ink", "value": "2804" }, { "label": "Ink-dyedIm", "value": "4586" }, { "label": "inkdirty", "value": "4583" }, { "label": "inlove", "value": "3206" }, { "label": "Inlovewith", "value": "3666" }, { "label": "InnerVoice", "value": "1638" }, { "label": "innocentmo", "value": "3949" }, { "label": "Inscriptio", "value": "744" }, { "label": "Insects", "value": "313" }, { "label": "Insectword", "value": "4856" }, { "label": "insitu", "value": "2816" }, { "label": "insomniaun", "value": "3869" }, { "label": "Inspiratio", "value": "3253" }, { "label": "instantnoo", "value": "5917" }, { "label": "Instantnoo", "value": "5996" }, { "label": "instantsta", "value": "4705" }, { "label": "Instructor", "value": "5447" }, { "label": "intenseflu", "value": "1029" }, { "label": "Intercept0", "value": "2801" }, { "label": "Intercept0", "value": "1988" }, { "label": "Interconne", "value": "1745" }, { "label": "Interdimen", "value": "27" }, { "label": "Interestel", "value": "927" }, { "label": "interpenet", "value": "5713" }, { "label": "interracia", "value": "6152" }, { "label": "Interracia", "value": "5684" }, { "label": "interstell", "value": "2967" }, { "label": "Interstell", "value": "903" }, { "label": "inthecloud", "value": "4286" }, { "label": "inthenameo", "value": "4969" }, { "label": "Introverte", "value": "680" }, { "label": "InukaiOmor", "value": "4937" }, { "label": "Inuyasha", "value": "1125" }, { "label": "Investigat", "value": "496" }, { "label": "Investigat", "value": "1169" }, { "label": "Invincible", "value": "3106" }, { "label": "Invincible", "value": "5449" }, { "label": "Invincible", "value": "5244" }, { "label": "Invincible", "value": "3680" }, { "label": "Invincible", "value": "3029" }, { "label": "Invincible", "value": "2964" }, { "label": "Invincible", "value": "2942" }, { "label": "Invincible", "value": "1956" }, { "label": "Invincible", "value": "1887" }, { "label": "Invincible", "value": "1875" }, { "label": "Invincible", "value": "1812" }, { "label": "InvolveNo.", "value": "5740" }, { "label": "IQOnline", "value": "3098" }, { "label": "Ireallydon", "value": "6037" }, { "label": "Ireallywan", "value": "5646" }, { "label": "Ireallywan", "value": "4761" }, { "label": "ironfistri", "value": "3719" }, { "label": "IronMaiden", "value": "2923" }, { "label": "ironpillar", "value": "2339" }, { "label": "IronThanos", "value": "2665" }, { "label": "iscoding", "value": "4211" }, { "label": "Isekai", "value": "850" }, { "label": "Isellflowe", "value": "4599" }, { "label": "IsitatLoli", "value": "5481" }, { "label": "isitnecess", "value": "2063" }, { "label": "IsItWrongt", "value": "1671" }, { "label": "Isuckbrown", "value": "2102" }, { "label": "IsumiLily", "value": "2490" }, { "label": "It’sAmoyo", "value": "5994" }, { "label": "It’syouwh", "value": "5903" }, { "label": "it&039s", "value": "5195" }, { "label": "It&039s", "value": "5894" }, { "label": "It&039s", "value": "4252" }, { "label": "It&039s", "value": "3932" }, { "label": "It&039s", "value": "2179" }, { "label": "Itbecameaf", "value": "5672" }, { "label": "Itissaidth", "value": "6042" }, { "label": "Itissaidth", "value": "5397" }, { "label": "Itsdaybrea", "value": "2113" }, { "label": "Itwillbead", "value": "4932" }, { "label": "Iunotbad", "value": "4834" }, { "label": "iwantmoney", "value": "2463" }, { "label": "IwantSiste", "value": "3950" }, { "label": "Iwanttobea", "value": "2866" }, { "label": "Iwanttobeo", "value": "2523" }, { "label": "iwanttoeat", "value": "2811" }, { "label": "iwanttogot", "value": "2636" }, { "label": "Iwanttogot", "value": "6076" }, { "label": "Iwanttohit", "value": "6055" }, { "label": "Iwanttolie", "value": "3474" }, { "label": "iwanttosee", "value": "5513" }, { "label": "Iwanttosee", "value": "4667" }, { "label": "Iwanttotak", "value": "4364" }, { "label": "Iwillbecom", "value": "5813" }, { "label": "Iwishyouat", "value": "2114" }, { "label": "Izanagi233", "value": "4152" }, { "label": "Jackdaw", "value": "5382" }, { "label": "JackieChan", "value": "2891" }, { "label": "JackofAllT", "value": "71" }, { "label": "jadeeveryy", "value": "2334" }, { "label": "Jaderabbit", "value": "3463" }, { "label": "JaneShu", "value": "3806" }, { "label": "JangSeok-g", "value": "1793" }, { "label": "januarygod", "value": "3953" }, { "label": "Japan", "value": "1342" }, { "label": "Japanese", "value": "843" }, { "label": "JapIdols", "value": "907" }, { "label": "JasperKnif", "value": "5564" }, { "label": "Jazz", "value": "2679" }, { "label": "Jealousy", "value": "258" }, { "label": "jediescape", "value": "5862" }, { "label": "jellyjelly", "value": "2872" }, { "label": "JianBao", "value": "3209" }, { "label": "JiangCheng", "value": "4785" }, { "label": "Jianghu", "value": "1258" }, { "label": "Jianghugri", "value": "5697" }, { "label": "Jiangshi", "value": "603" }, { "label": "JiangWu", "value": "4841" }, { "label": "JiangYu", "value": "5034" }, { "label": "Jianjiamix", "value": "2387" }, { "label": "Jiaqi", "value": "4173" }, { "label": "JinglongTa", "value": "2763" }, { "label": "JingShenTi", "value": "5879" }, { "label": "JinguNoFun", "value": "4570" }, { "label": "Jinwan1", "value": "3499" }, { "label": "JinYiwei", "value": "3400" }, { "label": "Jiulu丶", "value": "5846" }, { "label": "Jiutianyu", "value": "2170" }, { "label": "Jiuxiao", "value": "4166" }, { "label": "JiuYuan", "value": "3737" }, { "label": "JixingGaoz", "value": "4989" }, { "label": "JiYipao", "value": "6004" }, { "label": "JKing", "value": "4205" }, { "label": "JOAmbulanc", "value": "4065" }, { "label": "JoanHuang", "value": "5516" }, { "label": "John117", "value": "2641" }, { "label": "JoJo", "value": "2882" }, { "label": "JoJo&03", "value": "2883" }, { "label": "JojoBizarr", "value": "1126" }, { "label": "JOJOWE", "value": "1954" }, { "label": "Josei", "value": "886" }, { "label": "Journeytot", "value": "1326" }, { "label": "joydrummer", "value": "2013" }, { "label": "JujutsuKai", "value": "1127" }, { "label": "Juliet", "value": "1811" }, { "label": "July&03", "value": "5831" }, { "label": "JulyBrewma", "value": "4313" }, { "label": "JunCaiXing", "value": "2791" }, { "label": "Jundrunkdr", "value": "5770" }, { "label": "Jung", "value": "5608" }, { "label": "JuniorSist", "value": "2176" }, { "label": "JunRuoxu", "value": "4605" }, { "label": "JunRuyu", "value": "4422" }, { "label": "justapiece", "value": "3988" }, { "label": "justdrunk", "value": "5245" }, { "label": "justplay", "value": "4879" }, { "label": "justsaydon", "value": "4685" }, { "label": "justshout", "value": "2795" }, { "label": "jzkyushu", "value": "5808" }, { "label": "K-popIdols", "value": "1102" }, { "label": "Kafkajumpi", "value": "2035" }, { "label": "Kahn", "value": "5387" }, { "label": "Kailandros", "value": "3886" }, { "label": "KakamieCro", "value": "4666" }, { "label": "Kakashi", "value": "846" }, { "label": "KakashiTen", "value": "4023" }, { "label": "KanohiroSa", "value": "4261" }, { "label": "Karma", "value": "999" }, { "label": "Karmadance", "value": "4604" }, { "label": "Katena", "value": "5012" }, { "label": "Kaying", "value": "4258" }, { "label": "Kazamahyac", "value": "3538" }, { "label": "keel", "value": "4195" }, { "label": "keepitsimp", "value": "4254" }, { "label": "Kendo", "value": "1001" }, { "label": "KennelSaku", "value": "5558" }, { "label": "KensenShin", "value": "4795" }, { "label": "keyboardki", "value": "3785" }, { "label": "keykey", "value": "3958" }, { "label": "keytocome", "value": "2458" }, { "label": "Kidnapping", "value": "509" }, { "label": "KiharaKaqu", "value": "5587" }, { "label": "killdecisi", "value": "3126" }, { "label": "Killer", "value": "3608" }, { "label": "killerwhal", "value": "6086" }, { "label": "killpigeon", "value": "5761" }, { "label": "Killthewor", "value": "2196" }, { "label": "Kim&039", "value": "3879" }, { "label": "KimuraShit", "value": "6067" }, { "label": "Kindergart", "value": "1754" }, { "label": "Kindergart", "value": "3726" }, { "label": "KindLoveIn", "value": "131" }, { "label": "Kindness", "value": "3405" }, { "label": "KindomBuil", "value": "1462" }, { "label": "KindProtag", "value": "1464" }, { "label": "King", "value": "1901" }, { "label": "KingAsura", "value": "2391" }, { "label": "Kingdom", "value": "1629" }, { "label": "Kingdom-bu", "value": "871" }, { "label": "KingdomBui", "value": "340" }, { "label": "Kingdoms", "value": "181" }, { "label": "KingdomsKn", "value": "533" }, { "label": "KingKonggo", "value": "2629" }, { "label": "KingLingyu", "value": "3528" }, { "label": "kingofdeat", "value": "2592" }, { "label": "KingofDest", "value": "1823" }, { "label": "kingoffoot", "value": "5111" }, { "label": "KingofMons", "value": "2437" }, { "label": "KingofSold", "value": "3268" }, { "label": "kingpirate", "value": "2185" }, { "label": "Kiritani", "value": "2518" }, { "label": "kittenrun", "value": "5223" }, { "label": "Kneelingan", "value": "2796" }, { "label": "Kneelingth", "value": "2305" }, { "label": "KnifePromi", "value": "2001" }, { "label": "Knight", "value": "900" }, { "label": "knightcomm", "value": "4231" }, { "label": "knightflow", "value": "5707" }, { "label": "knightinar", "value": "5580" }, { "label": "knightmeow", "value": "4497" }, { "label": "Knights", "value": "208" }, { "label": "KnightsLev", "value": "613" }, { "label": "knightupgr", "value": "3621" }, { "label": "Knockingca", "value": "5566" }, { "label": "knowfate", "value": "4461" }, { "label": "KnowKingAl", "value": "3815" }, { "label": "Knowtheric", "value": "2478" }, { "label": "Koi", "value": "1578" }, { "label": "KoiKing", "value": "3757" }, { "label": "Kojin", "value": "2216" }, { "label": "Konohasalt", "value": "4058" }, { "label": "KonohaVoll", "value": "2532" }, { "label": "Korean", "value": "1674" }, { "label": "KoreanNove", "value": "1310" }, { "label": "KotomineSa", "value": "5531" }, { "label": "KpopIdols", "value": "908" }, { "label": "Kuchikiwha", "value": "5538" }, { "label": "KunHao", "value": "5149" }, { "label": "KurongTemp", "value": "2008" }, { "label": "Kutiaoren", "value": "4170" }, { "label": "Kuudere", "value": "708" }, { "label": "KwunTong", "value": "2043" }, { "label": "KyokoKurot", "value": "3807" }, { "label": "Kyokowassi", "value": "5812" }, { "label": "laborhonor", "value": "2527" }, { "label": "lackofboat", "value": "2262" }, { "label": "LackofComm", "value": "160" }, { "label": "LacquerNig", "value": "2099" }, { "label": "lady", "value": "3403" }, { "label": "LaidBack", "value": "3821" }, { "label": "LaiXiaomin", "value": "3482" }, { "label": "LambSoupwi", "value": "5839" }, { "label": "LameHaoisa", "value": "2310" }, { "label": "LanguageBa", "value": "133" }, { "label": "langyalist", "value": "2441" }, { "label": "LangyaPavi", "value": "4992" }, { "label": "LaoLaoXu", "value": "2076" }, { "label": "LaoWang", "value": "3976" }, { "label": "Lappy", "value": "4715" }, { "label": "LargeBoard", "value": "4717" }, { "label": "lasercatbo", "value": "5137" }, { "label": "lastnight", "value": "4072" }, { "label": "lastwear", "value": "3595" }, { "label": "latenightf", "value": "5664" }, { "label": "LateRomanc", "value": "249" }, { "label": "laughandcr", "value": "5780" }, { "label": "laughingor", "value": "3954" }, { "label": "laurel", "value": "2201" }, { "label": "LawofNineG", "value": "5403" }, { "label": "lawyer", "value": "3458" }, { "label": "Lawyers", "value": "548" }, { "label": "layoutflow", "value": "3192" }, { "label": "layoutflow", "value": "2982" }, { "label": "lazy", "value": "3555" }, { "label": "lazyandcru", "value": "4399" }, { "label": "lazyangel", "value": "4469" }, { "label": "lazycaramb", "value": "4062" }, { "label": "lazycatsch", "value": "4720" }, { "label": "LazycatZ", "value": "5958" }, { "label": "lazydevil", "value": "2120" }, { "label": "Lazyintoab", "value": "3525" }, { "label": "LazyProtag", "value": "441" }, { "label": "LazyYang", "value": "4016" }, { "label": "Leadership", "value": "375" }, { "label": "leadthemai", "value": "3357" }, { "label": "leadwall", "value": "3801" }, { "label": "LeafofTian", "value": "4590" }, { "label": "LeagueofLe", "value": "849" }, { "label": "leaningont", "value": "3542" }, { "label": "Leaningont", "value": "5507" }, { "label": "Leaningont", "value": "4312" }, { "label": "Leapeveryd", "value": "2347" }, { "label": "Leaves", "value": "5409" }, { "label": "leavesfall", "value": "5467" }, { "label": "Leavingaga", "value": "5725" }, { "label": "Leavingthe", "value": "4282" }, { "label": "leftandrig", "value": "3746" }, { "label": "Leftgirl", "value": "3612" }, { "label": "leftpigeon", "value": "5457" }, { "label": "Legend", "value": "701" }, { "label": "Legends", "value": "607" }, { "label": "leggod", "value": "4190" }, { "label": "LeiHuofeng", "value": "3670" }, { "label": "LeiJiedoes", "value": "1933" }, { "label": "Leisurelys", "value": "2426" }, { "label": "LeiXunqing", "value": "3372" }, { "label": "LeJiangli", "value": "4331" }, { "label": "Lemonade", "value": "5881" }, { "label": "lemonandsi", "value": "2285" }, { "label": "lemoneatar", "value": "4178" }, { "label": "Lemonfruit", "value": "3870" }, { "label": "lemonlemon", "value": "3875" }, { "label": "lendmefive", "value": "2837" }, { "label": "LengquanAt", "value": "4549" }, { "label": "leonine", "value": "1035" }, { "label": "lessmeatmo", "value": "3918" }, { "label": "lesstime", "value": "1842" }, { "label": "Let&039", "value": "5845" }, { "label": "Let&039", "value": "4898" }, { "label": "Letmetelly", "value": "3692" }, { "label": "Levatin", "value": "4243" }, { "label": "LevelSyste", "value": "201" }, { "label": "levelthree", "value": "4156" }, { "label": "Levelup", "value": "5055" }, { "label": "LeYang", "value": "3883" }, { "label": "lgbt", "value": "1429" }, { "label": "LGBTQA", "value": "994" }, { "label": "LiangFeifa", "value": "3888" }, { "label": "Lianhai&am", "value": "4794" }, { "label": "LianHongyu", "value": "4767" }, { "label": "LianshanGu", "value": "4323" }, { "label": "LiaoZhai", "value": "3445" }, { "label": "Liar", "value": "1165" }, { "label": "LiBaiisnot", "value": "4779" }, { "label": "Library", "value": "773" }, { "label": "Liedown", "value": "5547" }, { "label": "lifealive2", "value": "5301" }, { "label": "lifeanddea", "value": "3568" }, { "label": "lifeextrac", "value": "5023" }, { "label": "Lifeisthre", "value": "4975" }, { "label": "Lifelongfa", "value": "6094" }, { "label": "LifeScript", "value": "1721" }, { "label": "lifestillh", "value": "3509" }, { "label": "Lifestyle", "value": "5678" }, { "label": "lightandsh", "value": "3526" }, { "label": "lightfluff", "value": "4503" }, { "label": "Lightnings", "value": "2163" }, { "label": "lightnovel", "value": "1405" }, { "label": "LightNovel", "value": "1680" }, { "label": "lightofday", "value": "3492" }, { "label": "lightsaber", "value": "3682" }, { "label": "lightsail", "value": "4299" }, { "label": "LiJunhao", "value": "2756" }, { "label": "LikeaDrago", "value": "1907" }, { "label": "LikeaDrago", "value": "1902" }, { "label": "LikeMeiAox", "value": "2582" }, { "label": "lilac", "value": "4307" }, { "label": "Lillie", "value": "2642" }, { "label": "Lily&03", "value": "5440" }, { "label": "LilyNo.XNU", "value": "5150" }, { "label": "LiMengxi", "value": "6106" }, { "label": "LimitedLif", "value": "470" }, { "label": "LimitlessF", "value": "794" }, { "label": "LiMumu", "value": "2280" }, { "label": "LinBei", "value": "2730" }, { "label": "lindenone", "value": "5528" }, { "label": "Lindentree", "value": "2745" }, { "label": "LingbiWhit", "value": "3518" }, { "label": "Lingen", "value": "3332" }, { "label": "LingHanyi", "value": "4384" }, { "label": "LingLingSa", "value": "5291" }, { "label": "LingLuoBai", "value": "4663" }, { "label": "LingofGemi", "value": "5785" }, { "label": "Lingran", "value": "2089" }, { "label": "LingshanIs", "value": "2654" }, { "label": "LingwuLuqi", "value": "5042" }, { "label": "Lingxiwhow", "value": "4021" }, { "label": "LingyueRed", "value": "3882" }, { "label": "LinQinghua", "value": "4189" }, { "label": "LinSake", "value": "5460" }, { "label": "LinSanjiu", "value": "3900" }, { "label": "LinShendu", "value": "6103" }, { "label": "LinXiufigh", "value": "2668" }, { "label": "LinYiliu", "value": "5970" }, { "label": "LinYouyu", "value": "5757" }, { "label": "LinZhengyi", "value": "2572" }, { "label": "lionazaaza", "value": "5968" }, { "label": "LiShaoming", "value": "4309" }, { "label": "ListAdvent", "value": "3842" }, { "label": "ListCreati", "value": "1335" }, { "label": "listentoth", "value": "5836" }, { "label": "listentoth", "value": "4141" }, { "label": "listentoth", "value": "3524" }, { "label": "listentoth", "value": "2717" }, { "label": "Listentoth", "value": "5956" }, { "label": "Listentoth", "value": "4032" }, { "label": "Literaryes", "value": "5692" }, { "label": "literature", "value": "1416" }, { "label": "Literature", "value": "3695" }, { "label": "LitRPG", "value": "983" }, { "label": "littleahxi", "value": "2197" }, { "label": "littleassa", "value": "5746" }, { "label": "Littleblue", "value": "5390" }, { "label": "littlebow", "value": "4542" }, { "label": "littlebrot", "value": "2291" }, { "label": "littleches", "value": "4474" }, { "label": "littleclou", "value": "3920" }, { "label": "littlecray", "value": "2823" }, { "label": "littledemo", "value": "2130" }, { "label": "Littledemo", "value": "4797" }, { "label": "littledete", "value": "2803" }, { "label": "littledevi", "value": "2357" }, { "label": "littledoct", "value": "3984" }, { "label": "LittleDoud", "value": "5644" }, { "label": "LittleFeng", "value": "5237" }, { "label": "littlefing", "value": "2388" }, { "label": "littleflow", "value": "5461" }, { "label": "littlefox", "value": "2152" }, { "label": "littlefoxi", "value": "4645" }, { "label": "Littlefurb", "value": "5670" }, { "label": "littlehson", "value": "2002" }, { "label": "LittleJack", "value": "4083" }, { "label": "littlelitt", "value": "6080" }, { "label": "littlemiss", "value": "4588" }, { "label": "LittleMo", "value": "5109" }, { "label": "littlemoon", "value": "2041" }, { "label": "Littlepros", "value": "4044" }, { "label": "LittleRedR", "value": "5024" }, { "label": "LittleRoma", "value": "990" }, { "label": "Littlesold", "value": "3263" }, { "label": "LittleSpri", "value": "4175" }, { "label": "littlesuns", "value": "2320" }, { "label": "LittleTeem", "value": "5242" }, { "label": "LittleThro", "value": "4239" }, { "label": "littlewate", "value": "2848" }, { "label": "littlewhit", "value": "4638" }, { "label": "littlewhit", "value": "4531" }, { "label": "LittleWhit", "value": "3596" }, { "label": "littlewind", "value": "2558" }, { "label": "Littlewood", "value": "6096" }, { "label": "littleworl", "value": "4069" }, { "label": "LittleZhug", "value": "3939" }, { "label": "littlezlov", "value": "2031" }, { "label": "Liuhuaacri", "value": "5496" }, { "label": "LiuXiaozu", "value": "5613" }, { "label": "LiuYujun", "value": "2418" }, { "label": "LiuYuxuemo", "value": "5749" }, { "label": "LiuZiqing", "value": "3936" }, { "label": "Livebroadc", "value": "919" }, { "label": "LiveBroadc", "value": "941" }, { "label": "LiveGemini", "value": "4191" }, { "label": "LiverPigeo", "value": "2033" }, { "label": "LiveStream", "value": "1604" }, { "label": "LiveStream", "value": "883" }, { "label": "Livetext", "value": "3136" }, { "label": "LivingAlon", "value": "474" }, { "label": "LiWudi", "value": "1877" }, { "label": "LiXiaojian", "value": "5431" }, { "label": "LiYouqiong", "value": "5100" }, { "label": "LiyuePlann", "value": "4998" }, { "label": "LiYuer", "value": "5786" }, { "label": "LiZhitaoJu", "value": "4111" }, { "label": "LoadingApp", "value": "4056" }, { "label": "Lol", "value": "3139" }, { "label": "Loli", "value": "576" }, { "label": "Lolicon", "value": "425" }, { "label": "LoliProtag", "value": "1518" }, { "label": "LoneCloudP", "value": "2242" }, { "label": "Lonely", "value": "5856" }, { "label": "lonelyboy", "value": "2855" }, { "label": "LonelyChen", "value": "3532" }, { "label": "LonelyCity", "value": "2007" }, { "label": "Lonelynota", "value": "1990" }, { "label": "lonelyreco", "value": "4505" }, { "label": "lonelyseas", "value": "5849" }, { "label": "lonelyshoo", "value": "4798" }, { "label": "LonerProta", "value": "585" }, { "label": "lonewolfl", "value": "5471" }, { "label": "Long", "value": "3632" }, { "label": "Long-dista", "value": "273" }, { "label": "Longanloli", "value": "4708" }, { "label": "Longcenter", "value": "4475" }, { "label": "Longevity", "value": "3299" }, { "label": "longlivedm", "value": "2877" }, { "label": "longlivemy", "value": "2456" }, { "label": "Longlivesa", "value": "2556" }, { "label": "longliveth", "value": "5733" }, { "label": "Longliveth", "value": "2655" }, { "label": "Longliveth", "value": "2439" }, { "label": "LongMengme", "value": "2287" }, { "label": "Longmensin", "value": "4423" }, { "label": "longnightl", "value": "4380" }, { "label": "Longpigeon", "value": "4688" }, { "label": "Longpigeon", "value": "2390" }, { "label": "LongquanNo", "value": "3863" }, { "label": "LongSepara", "value": "412" }, { "label": "LongShao12", "value": "5655" }, { "label": "longsongan", "value": "4275" }, { "label": "LongStrip", "value": "3843" }, { "label": "Longtimeco", "value": "5399" }, { "label": "LongYu", "value": "5000" }, { "label": "Lookatthep", "value": "4464" }, { "label": "Lookingbac", "value": "6020" }, { "label": "lookingout", "value": "4615" }, { "label": "Lookthroug", "value": "4649" }, { "label": "lootflow", "value": "3333" }, { "label": "LordAbilit", "value": "1724" }, { "label": "LordCrimso", "value": "5641" }, { "label": "Lorddevelo", "value": "3819" }, { "label": "Lordfarmin", "value": "3410" }, { "label": "LordGod", "value": "3705" }, { "label": "LordGodSpa", "value": "1588" }, { "label": "LordGrim", "value": "3722" }, { "label": "LordofDark", "value": "3868" }, { "label": "LordoftheM", "value": "895" }, { "label": "LordoftheS", "value": "4618" }, { "label": "LordoftheS", "value": "1976" }, { "label": "LordofWar1", "value": "4207" }, { "label": "LordTiansh", "value": "2614" }, { "label": "LordZhangj", "value": "2332" }, { "label": "LosAngeles", "value": "4576" }, { "label": "Loseafewpo", "value": "1925" }, { "label": "losemoney", "value": "5166" }, { "label": "loser", "value": "5691" }, { "label": "Lostbeliev", "value": "4858" }, { "label": "lostblack", "value": "5260" }, { "label": "LostCivili", "value": "330" }, { "label": "Lostfarewe", "value": "5208" }, { "label": "Lottery", "value": "573" }, { "label": "LotterySys", "value": "817" }, { "label": "Love", "value": "1498" }, { "label": "LoveandMar", "value": "1385" }, { "label": "loveapplep", "value": "4665" }, { "label": "loveatfirs", "value": "3087" }, { "label": "LoveatFirs", "value": "168" }, { "label": "lovebefore", "value": "3217" }, { "label": "lovebefore", "value": "5332" }, { "label": "lovebefore", "value": "3024" }, { "label": "Lovecomedy", "value": "4510" }, { "label": "LoveContra", "value": "1576" }, { "label": "Loveeachot", "value": "3127" }, { "label": "LoveIntere", "value": "1660" }, { "label": "LoveIntere", "value": "1624" }, { "label": "LoveIntere", "value": "19" }, { "label": "LoveintheR", "value": "6140" }, { "label": "loveletter", "value": "4462" }, { "label": "lovemints", "value": "4413" }, { "label": "LoveRivals", "value": "610" }, { "label": "LoversReun", "value": "502" }, { "label": "Lovesnacks", "value": "2183" }, { "label": "lovespicyf", "value": "4643" }, { "label": "lovetease", "value": "2785" }, { "label": "lovetoeatr", "value": "4870" }, { "label": "Lovetosuck", "value": "5991" }, { "label": "LoveTriang", "value": "485" }, { "label": "LoveVegeta", "value": "5600" }, { "label": "lovingfami", "value": "1397" }, { "label": "Low-keylux", "value": "2818" }, { "label": "Low-keyPro", "value": "328" }, { "label": "LowFantasy", "value": "1649" }, { "label": "lowintelli", "value": "3703" }, { "label": "LowKeyMc", "value": "1090" }, { "label": "LowkeyProt", "value": "1182" }, { "label": "loyaldog", "value": "3305" }, { "label": "LoyalProta", "value": "1289" }, { "label": "LoyalSubor", "value": "507" }, { "label": "LoyalSurbo", "value": "1599" }, { "label": "lspstoryte", "value": "5180" }, { "label": "lsuyangl", "value": "5285" }, { "label": "lu11034363", "value": "2734" }, { "label": "Luck", "value": "1579" }, { "label": "LuckPlunde", "value": "1720" }, { "label": "luckybag", "value": "3240" }, { "label": "LuckyE&", "value": "4071" }, { "label": "LuckyProta", "value": "368" }, { "label": "Luckytolau", "value": "3650" }, { "label": "LuDehua", "value": "2125" }, { "label": "LujingVill", "value": "4209" }, { "label": "lumpofjade", "value": "3468" }, { "label": "Lungdefici", "value": "4713" }, { "label": "LuoAichen", "value": "4633" }, { "label": "LuoFeige", "value": "5473" }, { "label": "LuoJiangsh", "value": "4791" }, { "label": "LuoLiisnot", "value": "6052" }, { "label": "LuoMuziyi", "value": "4302" }, { "label": "Luoran123", "value": "5990" }, { "label": "LuoShichao", "value": "5493" }, { "label": "LuoShu", "value": "3887" }, { "label": "LuoTianyi", "value": "1865" }, { "label": "LuoTianyic", "value": "3788" }, { "label": "LuoWei", "value": "1994" }, { "label": "LuoXiaoqia", "value": "5232" }, { "label": "LuoXIV", "value": "2530" }, { "label": "LuoYuqianq", "value": "2752" }, { "label": "LutherHark", "value": "4322" }, { "label": "Luxury", "value": "909" }, { "label": "luxurypenm", "value": "4378" }, { "label": "LY", "value": "2474" }, { "label": "machine", "value": "4351" }, { "label": "MadBoyTang", "value": "6088" }, { "label": "madman", "value": "4390" }, { "label": "madmanandf", "value": "4114" }, { "label": "Mag", "value": "5084" }, { "label": "Mage", "value": "1013" }, { "label": "Maggie", "value": "4955" }, { "label": "Magic", "value": "182" }, { "label": "MagicAcade", "value": "988" }, { "label": "MagicalAbi", "value": "1453" }, { "label": "MagicalBat", "value": "1587" }, { "label": "magicalcre", "value": "3444" }, { "label": "magicalgir", "value": "1744" }, { "label": "MagicalSpa", "value": "73" }, { "label": "MagicalTec", "value": "608" }, { "label": "MagicBeast", "value": "314" }, { "label": "MagicDrago", "value": "5817" }, { "label": "MagicForma", "value": "72" }, { "label": "magician", "value": "3700" }, { "label": "MagicOne", "value": "2595" }, { "label": "magicpet", "value": "5626" }, { "label": "MagicTides", "value": "2393" }, { "label": "magicwhip", "value": "4930" }, { "label": "MagicWorld", "value": "1114" }, { "label": "Maid", "value": "1560" }, { "label": "Maids", "value": "649" }, { "label": "MaifengXia", "value": "5962" }, { "label": "Makeafortu", "value": "2638" }, { "label": "makeamirac", "value": "2248" }, { "label": "Makecompla", "value": "3242" }, { "label": "makefine", "value": "3179" }, { "label": "makemehapp", "value": "4431" }, { "label": "Makemoney", "value": "3099" }, { "label": "MakemoneyC", "value": "2945" }, { "label": "MakemoneyI", "value": "3082" }, { "label": "MakemoneyM", "value": "2998" }, { "label": "MakemoneyM", "value": "2937" }, { "label": "MakemoneyR", "value": "3053" }, { "label": "MakemoneyR", "value": "2977" }, { "label": "MakemoneyR", "value": "2950" }, { "label": "Makemoneys", "value": "3018" }, { "label": "makepigeon", "value": "4612" }, { "label": "Makeupforf", "value": "4812" }, { "label": "Malaysian", "value": "1685" }, { "label": "MalaysianN", "value": "1684" }, { "label": "Male-Lead", "value": "1350" }, { "label": "Male-Prota", "value": "1378" }, { "label": "Malegod", "value": "3118" }, { "label": "MaleLead", "value": "716" }, { "label": "MaleMain-l", "value": "1208" }, { "label": "Malemainch", "value": "2878" }, { "label": "malematch", "value": "3628" }, { "label": "MaleMc", "value": "1091" }, { "label": "Maleprotag", "value": "1287" }, { "label": "MaleProtag", "value": "12" }, { "label": "MaleProtag", "value": "2900" }, { "label": "MaleProtag", "value": "965" }, { "label": "MaleProtag", "value": "1261" }, { "label": "MaleProtag", "value": "1079" }, { "label": "MaletoFema", "value": "480" }, { "label": "MaleYander", "value": "28" }, { "label": "maliciousw", "value": "5915" }, { "label": "mambafight", "value": "2718" }, { "label": "man", "value": "2194" }, { "label": "man-eating", "value": "4442" }, { "label": "Manage", "value": "3091" }, { "label": "Management", "value": "642" }, { "label": "Manchengma", "value": "4620" }, { "label": "mandaloria", "value": "1434" }, { "label": "Mangaka", "value": "809" }, { "label": "MangoKK", "value": "2435" }, { "label": "manhasbeco", "value": "5759" }, { "label": "Manhua", "value": "3844" }, { "label": "maninknigh", "value": "4954" }, { "label": "maninnarut", "value": "2486" }, { "label": "maninorang", "value": "5410" }, { "label": "Manipulati", "value": "1480" }, { "label": "Manipulati", "value": "597" }, { "label": "ManlyGayCo", "value": "96" }, { "label": "Manvs.Wild", "value": "3194" }, { "label": "manwithkid", "value": "4947" }, { "label": "manyfemale", "value": "2957" }, { "label": "MaodongChe", "value": "5542" }, { "label": "MaoLinwhol", "value": "5194" }, { "label": "Maonanbei!", "value": "5233" }, { "label": "maple", "value": "5818" }, { "label": "maplebirch", "value": "4315" }, { "label": "maplefores", "value": "3799" }, { "label": "mapleleafb", "value": "2854" }, { "label": "marchisado", "value": "5227" }, { "label": "Marioeatsc", "value": "3478" }, { "label": "Marlene&am", "value": "4731" }, { "label": "MarquisofB", "value": "1953" }, { "label": "Marriage", "value": "85" }, { "label": "MarriageCo", "value": "1543" }, { "label": "Marriageof", "value": "489" }, { "label": "Married", "value": "1235" }, { "label": "MarriedCou", "value": "1751" }, { "label": "marry", "value": "3386" }, { "label": "marrybycha", "value": "3218" }, { "label": "martialart", "value": "3055" }, { "label": "Martialart", "value": "130" }, { "label": "Martialart", "value": "5710" }, { "label": "MartialArt", "value": "1471" }, { "label": "MartialSpi", "value": "394" }, { "label": "MartialSpi", "value": "1364" }, { "label": "Marvel", "value": "537" }, { "label": "MarvelKing", "value": "2135" }, { "label": "MarvelPudd", "value": "2540" }, { "label": "MarvelUniv", "value": "553" }, { "label": "MarvelWang", "value": "5875" }, { "label": "marvelworl", "value": "1779" }, { "label": "Marysue", "value": "5077" }, { "label": "Masashi", "value": "3627" }, { "label": "MaskedAce", "value": "1864" }, { "label": "MaskedArmo", "value": "2860" }, { "label": "MaskedPich", "value": "4538" }, { "label": "Masochisti", "value": "45" }, { "label": "Masquerade", "value": "2253" }, { "label": "Mass-produ", "value": "3516" }, { "label": "Massacre", "value": "1634" }, { "label": "Massive", "value": "1073" }, { "label": "MassiveHar", "value": "891" }, { "label": "Master-App", "value": "1228" }, { "label": "Master-Dis", "value": "304" }, { "label": "Master-Ser", "value": "361" }, { "label": "Masterball", "value": "2277" }, { "label": "Masterflow", "value": "3307" }, { "label": "MasterGree", "value": "5213" }, { "label": "Masterishe", "value": "3512" }, { "label": "Masterofea", "value": "4103" }, { "label": "MasterofSa", "value": "5261" }, { "label": "MasterofSi", "value": "2806" }, { "label": "MasterPeng", "value": "4835" }, { "label": "MasterTian", "value": "6124" }, { "label": "MasterZhiq", "value": "6018" }, { "label": "Masturbati", "value": "733" }, { "label": "Matchmadei", "value": "1736" }, { "label": "math", "value": "1781" }, { "label": "Matriarchy", "value": "686" }, { "label": "MatthewisG", "value": "5188" }, { "label": "Mature", "value": "977" }, { "label": "MatureProt", "value": "97" }, { "label": "MCStrongFr", "value": "1509" }, { "label": "meatsauce", "value": "6015" }, { "label": "Mech", "value": "3289" }, { "label": "Mecha", "value": "804" }, { "label": "Mechanical", "value": "4214" }, { "label": "MechGod", "value": "3738" }, { "label": "Medical", "value": "4013" }, { "label": "medicalfem", "value": "5050" }, { "label": "MedicalKno", "value": "299" }, { "label": "MedicalKno", "value": "1110" }, { "label": "Medicine", "value": "795" }, { "label": "medicineme", "value": "2688" }, { "label": "medicinest", "value": "5484" }, { "label": "Medieval", "value": "429" }, { "label": "meetingdee", "value": "4060" }, { "label": "meetthebea", "value": "2151" }, { "label": "Melancholy", "value": "5620" }, { "label": "MemoryLoss", "value": "1519" }, { "label": "MemoryReve", "value": "1740" }, { "label": "MengBao", "value": "3176" }, { "label": "MengBaowea", "value": "2999" }, { "label": "MengLiangq", "value": "3917" }, { "label": "MengmeiBin", "value": "4463" }, { "label": "MengXiaohu", "value": "4010" }, { "label": "Mengxinsma", "value": "5248" }, { "label": "MengYuxin", "value": "5506" }, { "label": "Mensao", "value": "3322" }, { "label": "MentalIlln", "value": "1815" }, { "label": "Mentor", "value": "3191" }, { "label": "Meowalook", "value": "4259" }, { "label": "meowhokage", "value": "6097" }, { "label": "meowhum", "value": "4670" }, { "label": "Meowingbig", "value": "2087" }, { "label": "meowmeow", "value": "2080" }, { "label": "meowmeowsl", "value": "4647" }, { "label": "Mercenarie", "value": "167" }, { "label": "Mercenary", "value": "797" }, { "label": "Merchant", "value": "2886" }, { "label": "Merchants", "value": "527" }, { "label": "mermaid", "value": "2876" }, { "label": "metaphysic", "value": "3234" }, { "label": "metaphysic", "value": "3065" }, { "label": "Metauniver", "value": "3639" }, { "label": "Meteorstre", "value": "4009" }, { "label": "metropolis", "value": "5121" }, { "label": "Middleage", "value": "1447" }, { "label": "middleaged", "value": "5128" }, { "label": "MiddleAges", "value": "5098" }, { "label": "midnight", "value": "4377" }, { "label": "midnightbl", "value": "5030" }, { "label": "midnightli", "value": "4740" }, { "label": "midnightma", "value": "4280" }, { "label": "midnightsu", "value": "4848" }, { "label": "MidoriSaku", "value": "5254" }, { "label": "Miha", "value": "6114" }, { "label": "MikaMio", "value": "6098" }, { "label": "Milf", "value": "5089" }, { "label": "Military", "value": "86" }, { "label": "militaryfa", "value": "3402" }, { "label": "Militaryin", "value": "3401" }, { "label": "Milkgather", "value": "2831" }, { "label": "milkgrandm", "value": "2278" }, { "label": "Milkteapot", "value": "5932" }, { "label": "Millennium", "value": "5667" }, { "label": "Millennium", "value": "3581" }, { "label": "Millionair", "value": "1459" }, { "label": "milliondig", "value": "5228" }, { "label": "millionord", "value": "2370" }, { "label": "Miluo", "value": "2267" }, { "label": "Mimicry", "value": "1711" }, { "label": "MindBreak", "value": "621" }, { "label": "MindContro", "value": "389" }, { "label": "MindReader", "value": "1484" }, { "label": "mindreadin", "value": "2873" }, { "label": "MingDynast", "value": "3089" }, { "label": "MingDynast", "value": "3076" }, { "label": "MingDynast", "value": "2962" }, { "label": "MingDynast", "value": "2934" }, { "label": "Mingjiao", "value": "1945" }, { "label": "MingjiaoTi", "value": "2026" }, { "label": "MingXi", "value": "4822" }, { "label": "Ministryof", "value": "1609" }, { "label": "Misaki", "value": "4865" }, { "label": "miser", "value": "3140" }, { "label": "Miska10010", "value": "4694" }, { "label": "Mismatched", "value": "1343" }, { "label": "Mista", "value": "5025" }, { "label": "Mistresspl", "value": "2157" }, { "label": "MistyFlyin", "value": "2189" }, { "label": "Misunderst", "value": "1445" }, { "label": "Misunderst", "value": "113" }, { "label": "Misunderst", "value": "1565" }, { "label": "Misunderst", "value": "1072" }, { "label": "mixedintwo", "value": "2601" }, { "label": "MizukiSpir", "value": "4823" }, { "label": "MMORPG", "value": "202" }, { "label": "Mob", "value": "1584" }, { "label": "MobileGame", "value": "3717" }, { "label": "MobProtago", "value": "443" }, { "label": "Models", "value": "657" }, { "label": "ModerDays", "value": "1370" }, { "label": "Modern", "value": "601" }, { "label": "moderncomp", "value": "3319" }, { "label": "ModernDay", "value": "3" }, { "label": "ModernDays", "value": "754" }, { "label": "ModernFant", "value": "1027" }, { "label": "ModernKnow", "value": "307" }, { "label": "ModernKnow", "value": "825" }, { "label": "ModernLife", "value": "2908" }, { "label": "modernlove", "value": "1780" }, { "label": "modernmagi", "value": "5118" }, { "label": "modernmyst", "value": "3413" }, { "label": "ModernRoma", "value": "959" }, { "label": "ModernWorl", "value": "386" }, { "label": "Moedye", "value": "2790" }, { "label": "MoeHan", "value": "5597" }, { "label": "MoeShinkaw", "value": "2930" }, { "label": "Mofamily", "value": "2625" }, { "label": "MoFenghou", "value": "6014" }, { "label": "Moisturizi", "value": "5176" }, { "label": "MojiaAeros", "value": "2396" }, { "label": "MojiaHills", "value": "2355" }, { "label": "moltingsna", "value": "4736" }, { "label": "Momiji", "value": "3849" }, { "label": "MoneyGrubb", "value": "82" }, { "label": "MoneyGrumb", "value": "1199" }, { "label": "Monk", "value": "3633" }, { "label": "MonkeyKing", "value": "3759" }, { "label": "Monogamy", "value": "1197" }, { "label": "Monster", "value": "1136" }, { "label": "MonsterGir", "value": "569" }, { "label": "monsteridl", "value": "5727" }, { "label": "Monsters", "value": "230" }, { "label": "MonsterSoc", "value": "1151" }, { "label": "MonsterTam", "value": "74" }, { "label": "MonsterTar", "value": "1689" }, { "label": "monthand", "value": "5240" }, { "label": "moonandsta", "value": "4581" }, { "label": "moonbug", "value": "1931" }, { "label": "mooncrow", "value": "4763" }, { "label": "MoonlightS", "value": "2661" }, { "label": "moonlightw", "value": "5598" }, { "label": "Moonlikeah", "value": "2467" }, { "label": "moonnight", "value": "5508" }, { "label": "Moonsea", "value": "1923" }, { "label": "moonsetsea", "value": "4321" }, { "label": "moonshadow", "value": "4980" }, { "label": "moonshadow", "value": "4619" }, { "label": "moonshower", "value": "5408" }, { "label": "Moonstay", "value": "6030" }, { "label": "moontea", "value": "3793" }, { "label": "Moonwing", "value": "1789" }, { "label": "MoQingyi", "value": "4449" }, { "label": "Morallessp", "value": "1738" }, { "label": "MorallyAmb", "value": "1494" }, { "label": "moreandmor", "value": "2226" }, { "label": "moreastron", "value": "3804" }, { "label": "Morningclo", "value": "6001" }, { "label": "morninglig", "value": "5135" }, { "label": "morningred", "value": "4946" }, { "label": "mortalflow", "value": "3150" }, { "label": "MoshangHua", "value": "4655" }, { "label": "Mother-in-", "value": "3169" }, { "label": "Mother-in-", "value": "2990" }, { "label": "Motherland", "value": "3010" }, { "label": "Mountainan", "value": "4780" }, { "label": "mountainsa", "value": "5136" }, { "label": "Mountainsa", "value": "2154" }, { "label": "Mountainsa", "value": "1857" }, { "label": "MountainSe", "value": "4077" }, { "label": "mouthgun", "value": "3167" }, { "label": "movies", "value": "1413" }, { "label": "Movies", "value": "292" }, { "label": "movingbean", "value": "2127" }, { "label": "MoXianyu", "value": "3660" }, { "label": "MoXueqing", "value": "2030" }, { "label": "Moyangison", "value": "2570" }, { "label": "Mozun", "value": "3351" }, { "label": "Mpreg", "value": "257" }, { "label": "Mr.Despair", "value": "6112" }, { "label": "Mr.EasyPro", "value": "1987" }, { "label": "Mr.flag", "value": "5171" }, { "label": "Mr.Huo", "value": "2542" }, { "label": "Mr.Quin", "value": "3800" }, { "label": "Mr.ShuiYun", "value": "5844" }, { "label": "Mr.Xiaisfr", "value": "4240" }, { "label": "Mr.Zhaowho", "value": "5921" }, { "label": "MrBearBear", "value": "5391" }, { "label": "mrcoud", "value": "4260" }, { "label": "MrEarl", "value": "4671" }, { "label": "MrMo", "value": "1800" }, { "label": "MrSly", "value": "1610" }, { "label": "MrStardust", "value": "4838" }, { "label": "MsPerfect", "value": "1611" }, { "label": "Msturbatio", "value": "1022" }, { "label": "MuChenchen", "value": "4369" }, { "label": "mudbodhisa", "value": "2215" }, { "label": "MUGEN", "value": "4528" }, { "label": "Mukbang", "value": "1633" }, { "label": "MultipleBo", "value": "1393" }, { "label": "MultipleCP", "value": "756" }, { "label": "MultipleHi", "value": "1188" }, { "label": "multipleid", "value": "1295" }, { "label": "Multipleid", "value": "1729" }, { "label": "MultipleId", "value": "387" }, { "label": "MultipleLe", "value": "1650" }, { "label": "MultipleMo", "value": "1167" }, { "label": "MultiplePe", "value": "20" }, { "label": "MultiplePo", "value": "1277" }, { "label": "MultiplePO", "value": "279" }, { "label": "MultiplePr", "value": "501" }, { "label": "multiplere", "value": "1657" }, { "label": "MultipleRe", "value": "29" }, { "label": "MultipleRe", "value": "435" }, { "label": "MultipleTi", "value": "615" }, { "label": "MultipleTr", "value": "1152" }, { "label": "MultipleTr", "value": "293" }, { "label": "MultipleVe", "value": "1470" }, { "label": "MultipleWo", "value": "1092" }, { "label": "MultipleWo", "value": "1617" }, { "label": "Multiverse", "value": "1026" }, { "label": "MuMushuhua", "value": "5182" }, { "label": "MuNanzhi", "value": "5842" }, { "label": "Munchkin", "value": "5446" }, { "label": "mungbeanga", "value": "4159" }, { "label": "Murder", "value": "345" }, { "label": "Murders", "value": "366" }, { "label": "Mushroomma", "value": "6091" }, { "label": "Music", "value": "186" }, { "label": "musicwilll", "value": "1915" }, { "label": "mustdo", "value": "2199" }, { "label": "mustfire", "value": "3889" }, { "label": "Mutan", "value": "1574" }, { "label": "MutantPowe", "value": "1345" }, { "label": "MutatedCre", "value": "320" }, { "label": "Mutation", "value": "844" }, { "label": "Mutations", "value": "418" }, { "label": "MuteCharac", "value": "736" }, { "label": "Mutualcrus", "value": "1161" }, { "label": "MuxiMuxi", "value": "4078" }, { "label": "MuZixi", "value": "4924" }, { "label": "mygrandma", "value": "5512" }, { "label": "MyGreatQin", "value": "3487" }, { "label": "MyHeroAcad", "value": "1340" }, { "label": "mylittlesi", "value": "2225" }, { "label": "MyLubanThi", "value": "2630" }, { "label": "mymeatisde", "value": "3782" }, { "label": "MynameisDa", "value": "2079" }, { "label": "mynameista", "value": "2270" }, { "label": "MynameisZh", "value": "3511" }, { "label": "mysteries", "value": "3732" }, { "label": "mysterious", "value": "5127" }, { "label": "Mysterious", "value": "388" }, { "label": "Mysterious", "value": "3634" }, { "label": "Mysterious", "value": "656" }, { "label": "Mysterious", "value": "4890" }, { "label": "Mysterious", "value": "4769" }, { "label": "Mysterious", "value": "1096" }, { "label": "Mysterious", "value": "363" }, { "label": "Mystery", "value": "936" }, { "label": "MysterySol", "value": "185" }, { "label": "Mystical", "value": "764" }, { "label": "MysticBlue", "value": "4929" }, { "label": "Myswordisc", "value": "4393" }, { "label": "Myth", "value": "5079" }, { "label": "Mythical", "value": "666" }, { "label": "MythicalBe", "value": "427" }, { "label": "mythicalfi", "value": "2575" }, { "label": "mythicalma", "value": "2440" }, { "label": "Mythology", "value": "484" }, { "label": "Mythos", "value": "1651" }, { "label": "mythunpara", "value": "2408" }, { "label": "mywife", "value": "2448" }, { "label": "mywifeisab", "value": "3784" }, { "label": "mywifeisya", "value": "2754" }, { "label": "NA", "value": "791" }, { "label": "Nagasakiha", "value": "6099" }, { "label": "NagatoYuki", "value": "4963" }, { "label": "NagiNagibe", "value": "4559" }, { "label": "NaiNaiHeTi", "value": "5500" }, { "label": "NaiTsujiCi", "value": "5351" }, { "label": "NaiveProta", "value": "75" }, { "label": "Nakaji", "value": "3614" }, { "label": "namelessna", "value": "5971" }, { "label": "NamoAmitab", "value": "4805" }, { "label": "NanaSauceL", "value": "5621" }, { "label": "Nanshen", "value": "2307" }, { "label": "Napoleon", "value": "1497" }, { "label": "Narcissist", "value": "469" }, { "label": "Nari", "value": "4481" }, { "label": "Naruto", "value": "335" }, { "label": "narutoceda", "value": "2484" }, { "label": "NarutoClou", "value": "2479" }, { "label": "narutodrag", "value": "3617" }, { "label": "NarutoNovi", "value": "5640" }, { "label": "NarutoQuiz", "value": "2485" }, { "label": "Narutosix", "value": "5984" }, { "label": "narutovill", "value": "4306" }, { "label": "NarutoxRea", "value": "2588" }, { "label": "Nasida", "value": "4907" }, { "label": "NationalDi", "value": "3590" }, { "label": "Nationalis", "value": "305" }, { "label": "nationalmy", "value": "3641" }, { "label": "NationBuil", "value": "1115" }, { "label": "Nativebamb", "value": "3727" }, { "label": "natureover", "value": "3649" }, { "label": "Navy", "value": "1097" }, { "label": "nb9527", "value": "4129" }, { "label": "NBA", "value": "617" }, { "label": "Near-Death", "value": "76" }, { "label": "Necromance", "value": "422" }, { "label": "Necromancy", "value": "4444" }, { "label": "Need", "value": "3751" }, { "label": "Needsquirr", "value": "4376" }, { "label": "Neepeatsme", "value": "4942" }, { "label": "Neet", "value": "645" }, { "label": "NegaNebulu", "value": "5502" }, { "label": "neromywife", "value": "3940" }, { "label": "NetherNine", "value": "4127" }, { "label": "Netorare", "value": "77" }, { "label": "Netori", "value": "78" }, { "label": "Netred", "value": "3712" }, { "label": "networkdis", "value": "4644" }, { "label": "neverdream", "value": "4539" }, { "label": "neverfail", "value": "2567" }, { "label": "nevertooba", "value": "4415" }, { "label": "Neveruseso", "value": "5964" }, { "label": "newbie", "value": "6071" }, { "label": "newnine", "value": "5462" }, { "label": "newspapera", "value": "4471" }, { "label": "nextyear", "value": "6141" }, { "label": "NiangkouSa", "value": "2337" }, { "label": "nicheoccup", "value": "5125" }, { "label": "Nidoriya", "value": "4934" }, { "label": "Nidouzi", "value": "2587" }, { "label": "NightAllur", "value": "6000" }, { "label": "nightdance", "value": "2725" }, { "label": "NightDance", "value": "5998" }, { "label": "nightfire", "value": "1863" }, { "label": "nightlangu", "value": "5571" }, { "label": "Nightmare", "value": "346" }, { "label": "Nightmares", "value": "461" }, { "label": "nightrain", "value": "4651" }, { "label": "NightSheng", "value": "5999" }, { "label": "nightsilen", "value": "1891" }, { "label": "nightsleep", "value": "4237" }, { "label": "nightwhite", "value": "4758" }, { "label": "nihilism", "value": "1437" }, { "label": "NikaBaka", "value": "6013" }, { "label": "Nim", "value": "3579" }, { "label": "Nine", "value": "4298" }, { "label": "Nine-color", "value": "2436" }, { "label": "Nine-Taile", "value": "2178" }, { "label": "Ninedays", "value": "3931" }, { "label": "NinefoldSe", "value": "1959" }, { "label": "NineHeaven", "value": "5253" }, { "label": "nineonemor", "value": "4038" }, { "label": "ninepositi", "value": "3618" }, { "label": "NineShaoSh", "value": "5821" }, { "label": "nineshipju", "value": "4051" }, { "label": "NineStarMa", "value": "4523" }, { "label": "NineWarsof", "value": "2082" }, { "label": "NingYi", "value": "3956" }, { "label": "ninja", "value": "1756" }, { "label": "Ninjapirat", "value": "1868" }, { "label": "Ninjas", "value": "460" }, { "label": "ninthinthe", "value": "3977" }, { "label": "ninthsweet", "value": "6066" }, { "label": "NiShiliu", "value": "5043" }, { "label": "NiuBao", "value": "2085" }, { "label": "no", "value": "3808" }, { "label": "No-Harem", "value": "5082" }, { "label": "No.XNUMXon", "value": "3622" }, { "label": "No.XNUMXXi", "value": "5762" }, { "label": "Noble", "value": "1600" }, { "label": "Noblenessi", "value": "4832" }, { "label": "Nobles", "value": "280" }, { "label": "NoblesPoli", "value": "4357" }, { "label": "Nocar", "value": "5742" }, { "label": "nocarton", "value": "5961" }, { "label": "NoCheats", "value": "4354" }, { "label": "NoCp", "value": "1605" }, { "label": "NoCPRelaxe", "value": "5317" }, { "label": "NoCPreveng", "value": "5316" }, { "label": "Nodiscipli", "value": "3249" }, { "label": "nodream", "value": "3906" }, { "label": "Nogoldenfi", "value": "3145" }, { "label": "NoHarem", "value": "1290" }, { "label": "noheroine", "value": "3262" }, { "label": "nohouse", "value": "5743" }, { "label": "noisyfish", "value": "5495" }, { "label": "nokillingm", "value": "1017" }, { "label": "Noless", "value": "2696" }, { "label": "nolove", "value": "4768" }, { "label": "nomooninma", "value": "4733" }, { "label": "Non-Humanl", "value": "1667" }, { "label": "Non-HumanM", "value": "4359" }, { "label": "Non-humano", "value": "143" }, { "label": "Non-humanP", "value": "851" }, { "label": "Non-legacy", "value": "5448" }, { "label": "Non-System", "value": "1311" }, { "label": "noncat", "value": "2578" }, { "label": "nonhuman", "value": "1401" }, { "label": "NonHuman", "value": "1111" }, { "label": "NonHumanPr", "value": "1078" }, { "label": "nonpondfis", "value": "5799" }, { "label": "noon", "value": "5374" }, { "label": "NoPairing", "value": "1278" }, { "label": "noregrets", "value": "4855" }, { "label": "normalluck", "value": "4079" }, { "label": "NoRomance", "value": "1015" }, { "label": "NorthDepar", "value": "5426" }, { "label": "Northeastb", "value": "5592" }, { "label": "Northeastb", "value": "3659" }, { "label": "NorthMu", "value": "3768" }, { "label": "NorthSeaMo", "value": "5487" }, { "label": "Northstar", "value": "4719" }, { "label": "noshadow", "value": "4408" }, { "label": "Nosnacks", "value": "2081" }, { "label": "nostring", "value": "4825" }, { "label": "NoSystem", "value": "1537" }, { "label": "notbad", "value": "4526" }, { "label": "notcold", "value": "4986" }, { "label": "notfalling", "value": "4029" }, { "label": "notgreedy", "value": "4224" }, { "label": "notguilty", "value": "3725" }, { "label": "NotHarem", "value": "996" }, { "label": "NotIke", "value": "4524" }, { "label": "notlevelth", "value": "2564" }, { "label": "notnew", "value": "5468" }, { "label": "Notraceofm", "value": "3762" }, { "label": "notscary", "value": "2488" }, { "label": "nottowersa", "value": "4478" }, { "label": "notwo", "value": "3466" }, { "label": "NotYaoi", "value": "1032" }, { "label": "Nowadays", "value": "2604" }, { "label": "nowife", "value": "5744" }, { "label": "NPC", "value": "3141" }, { "label": "NSFW", "value": "5087" }, { "label": "NTL", "value": "4358" }, { "label": "NuclearBea", "value": "3830" }, { "label": "Nudity", "value": "972" }, { "label": "Numberofwo", "value": "5133" }, { "label": "Nunknightw", "value": "3908" }, { "label": "Nurses", "value": "637" }, { "label": "NuShengsoo", "value": "3510" }, { "label": "Obanbrothe", "value": "2158" }, { "label": "Observer23", "value": "5960" }, { "label": "observerwx", "value": "4735" }, { "label": "Obsession", "value": "3831" }, { "label": "ObsessiveL", "value": "205" }, { "label": "offical", "value": "2898" }, { "label": "Office", "value": "3606" }, { "label": "OfficeRoma", "value": "517" }, { "label": "OhLL", "value": "4842" }, { "label": "ohmygod", "value": "2446" }, { "label": "oldage", "value": "1910" }, { "label": "OldAlfred", "value": "5099" }, { "label": "oldchicken", "value": "3997" }, { "label": "oldclawmac", "value": "5016" }, { "label": "olddemon", "value": "2129" }, { "label": "Olderlovei", "value": "4324" }, { "label": "OlderLoveI", "value": "364" }, { "label": "oldfacesli", "value": "5379" }, { "label": "oldfaceunc", "value": "2698" }, { "label": "oldfashion", "value": "5288" }, { "label": "oldfisheat", "value": "2044" }, { "label": "Oldghostsm", "value": "2469" }, { "label": "Oldies", "value": "4606" }, { "label": "oldlady", "value": "4553" }, { "label": "oldmaneati", "value": "3770" }, { "label": "oldmonth", "value": "4480" }, { "label": "OldQinpeop", "value": "1999" }, { "label": "OldTeaTree", "value": "4997" }, { "label": "oldtombrob", "value": "2487" }, { "label": "oldwalnut", "value": "5297" }, { "label": "OldWuupsta", "value": "5650" }, { "label": "OldYdoesno", "value": "5434" }, { "label": "omega", "value": "4341" }, { "label": "Omegaverse", "value": "301" }, { "label": "On-HookSys", "value": "1615" }, { "label": "One", "value": "3677" }, { "label": "One-Piece", "value": "2874" }, { "label": "Onebyone", "value": "5661" }, { "label": "Oneflower", "value": "2722" }, { "label": "OneLeafRed", "value": "2499" }, { "label": "OneLeafSea", "value": "4739" }, { "label": "onemelonri", "value": "2724" }, { "label": "onemeterst", "value": "2794" }, { "label": "oneminustw", "value": "5898" }, { "label": "onemouthfu", "value": "4047" }, { "label": "OnenightHo", "value": "5880" }, { "label": "Oneofthebe", "value": "5014" }, { "label": "onepiece", "value": "1411" }, { "label": "OnePiece", "value": "336" }, { "label": "Onepunch", "value": "1063" }, { "label": "OnePunchMa", "value": "1328" }, { "label": "Onepunchmo", "value": "2495" }, { "label": "Onepunchto", "value": "2709" }, { "label": "OneSwordEm", "value": "4409" }, { "label": "OneSwordFl", "value": "2039" }, { "label": "OneSwordLi", "value": "5560" }, { "label": "Onethousan", "value": "2083" }, { "label": "onetree", "value": "2723" }, { "label": "Oneyearold", "value": "2715" }, { "label": "Online", "value": "1117" }, { "label": "onlinegame", "value": "3394" }, { "label": "Onlinegame", "value": "3168" }, { "label": "OnlineGame", "value": "762" }, { "label": "OnlineRoma", "value": "638" }, { "label": "onlyloveyo", "value": "1952" }, { "label": "onlyyouth", "value": "2736" }, { "label": "Onocat", "value": "3406" }, { "label": "onparadise", "value": "2283" }, { "label": "oooobe", "value": "2392" }, { "label": "Open", "value": "3259" }, { "label": "openasmall", "value": "1806" }, { "label": "openflow", "value": "3361" }, { "label": "openingflo", "value": "3149" }, { "label": "openingflo", "value": "3020" }, { "label": "Openupwast", "value": "3264" }, { "label": "Openyourey", "value": "2327" }, { "label": "Operation", "value": "2896" }, { "label": "Operationr", "value": "3925" }, { "label": "OpFemalePr", "value": "1189" }, { "label": "OPheroine", "value": "1469" }, { "label": "OPMC", "value": "892" }, { "label": "OPProtagon", "value": "1183" }, { "label": "orangeappl", "value": "2239" }, { "label": "orangeglor", "value": "3765" }, { "label": "OrangeOche", "value": "5510" }, { "label": "Orangespar", "value": "3490" }, { "label": "Orc", "value": "1298" }, { "label": "Orcs", "value": "720" }, { "label": "Orcsworld", "value": "966" }, { "label": "Ordinary", "value": "5887" }, { "label": "Organizati", "value": "1056" }, { "label": "OrganizedC", "value": "174" }, { "label": "Orientalde", "value": "5705" }, { "label": "orientalfa", "value": "4273" }, { "label": "Orientalfa", "value": "694" }, { "label": "Orientalle", "value": "6035" }, { "label": "Orientalre", "value": "4927" }, { "label": "orientalsa", "value": "3747" }, { "label": "origamista", "value": "5863" }, { "label": "originalco", "value": "3238" }, { "label": "originalco", "value": "3046" }, { "label": "Originalfi", "value": "3702" }, { "label": "OriginalON", "value": "1647" }, { "label": "OriginalUn", "value": "2325" }, { "label": "OriginalYe", "value": "2705" }, { "label": "Origuchi", "value": "2742" }, { "label": "Orphan", "value": "1247" }, { "label": "OrphanMC", "value": "933" }, { "label": "Orphans", "value": "428" }, { "label": "Otaku", "value": "472" }, { "label": "Otakuisnot", "value": "4585" }, { "label": "Otezetta", "value": "2117" }, { "label": "otherworld", "value": "5685" }, { "label": "Otoichi", "value": "3929" }, { "label": "OtomeGame", "value": "1580" }, { "label": "OTTGroupCh", "value": "2472" }, { "label": "Ottointhek", "value": "5802" }, { "label": "ourraccoon", "value": "4561" }, { "label": "Outcasts", "value": "991" }, { "label": "Outdoors", "value": "5092" }, { "label": "OuterSpace", "value": "409" }, { "label": "outingbook", "value": "4429" }, { "label": "Outlawluna", "value": "3684" }, { "label": "Outstandin", "value": "5179" }, { "label": "OuyangRuox", "value": "5458" }, { "label": "Over-Power", "value": "4325" }, { "label": "overbearin", "value": "3443" }, { "label": "Overhead", "value": "3225" }, { "label": "OverheadHi", "value": "2905" }, { "label": "OverheadSu", "value": "5321" }, { "label": "Overlord", "value": "1184" }, { "label": "Overpowerd", "value": "821" }, { "label": "overpowere", "value": "1394" }, { "label": "Overpowere", "value": "876" }, { "label": "Overpowere", "value": "864" }, { "label": "Overpowere", "value": "1214" }, { "label": "Overpowere", "value": "41" }, { "label": "Overprotec", "value": "717" }, { "label": "Overseasca", "value": "3778" }, { "label": "owe", "value": "5252" }, { "label": "Owner", "value": "3636" }, { "label": "ownerofwhi", "value": "4025" }, { "label": "PacifistPr", "value": "1186" }, { "label": "Painter", "value": "1262" }, { "label": "Painting", "value": "1229" }, { "label": "Paizuri", "value": "752" }, { "label": "palace", "value": "5048" }, { "label": "palacemaid", "value": "3452" }, { "label": "paleandwhi", "value": "2264" }, { "label": "palebluefl", "value": "3817" }, { "label": "PamperingR", "value": "591" }, { "label": "Panda&0", "value": "3865" }, { "label": "pangolin", "value": "6105" }, { "label": "panic", "value": "2166" }, { "label": "Papaisvery", "value": "2647" }, { "label": "papergrayo", "value": "5164" }, { "label": "ParalelWor", "value": "823" }, { "label": "ParallelWo", "value": "458" }, { "label": "ParallelWo", "value": "819" }, { "label": "Paranoid", "value": "1168" }, { "label": "Parasite", "value": "1554" }, { "label": "Parasites", "value": "331" }, { "label": "ParentComp", "value": "650" }, { "label": "Parenting", "value": "5454" }, { "label": "Parody", "value": "620" }, { "label": "Part-TimeJ", "value": "268" }, { "label": "part-timeo", "value": "2025" }, { "label": "Partnerofa", "value": "1366" }, { "label": "Passer-by", "value": "4940" }, { "label": "passerbylo", "value": "5557" }, { "label": "passingmap", "value": "5527" }, { "label": "PastandPre", "value": "3171" }, { "label": "PastandPre", "value": "2994" }, { "label": "PastPlaysa", "value": "98" }, { "label": "PastPlaysa", "value": "497" }, { "label": "PastTrauma", "value": "114" }, { "label": "patientswi", "value": "3812" }, { "label": "Patriarch", "value": "855" }, { "label": "Peacefulan", "value": "5269" }, { "label": "Peachgift", "value": "3671" }, { "label": "peachmelon", "value": "6069" }, { "label": "Peasant", "value": "3303" }, { "label": "PeasPigeon", "value": "4544" }, { "label": "Peerlessso", "value": "1795" }, { "label": "PeerlessSw", "value": "1791" }, { "label": "penandinkw", "value": "3675" }, { "label": "pencildraw", "value": "5474" }, { "label": "pendragon", "value": "2827" }, { "label": "pendreamst", "value": "2096" }, { "label": "penhero", "value": "5231" }, { "label": "Pennamenot", "value": "4626" }, { "label": "pentaclekn", "value": "4905" }, { "label": "Peoplearef", "value": "5144" }, { "label": "peopleflyi", "value": "3522" }, { "label": "Peoplenear", "value": "2632" }, { "label": "Peoplepass", "value": "5824" }, { "label": "peoplewhoe", "value": "5723" }, { "label": "Pepsi", "value": "4960" }, { "label": "perfectmag", "value": "1803" }, { "label": "perfecttom", "value": "5581" }, { "label": "PerfectWor", "value": "1332" }, { "label": "Persistenc", "value": "3872" }, { "label": "Persistent", "value": "274" }, { "label": "Personalit", "value": "137" }, { "label": "personusin", "value": "5772" }, { "label": "pervertedi", "value": "4786" }, { "label": "PervertedP", "value": "281" }, { "label": "Pet", "value": "1206" }, { "label": "Pets", "value": "107" }, { "label": "petsurviva", "value": "2511" }, { "label": "PhantomThi", "value": "3370" }, { "label": "Pharmacist", "value": "689" }, { "label": "Philosophi", "value": "774" }, { "label": "Phoenixes", "value": "236" }, { "label": "Phosphorus", "value": "4264" }, { "label": "Photograph", "value": "3556" }, { "label": "Photograph", "value": "705" }, { "label": "Physician", "value": "3710" }, { "label": "Pickingupp", "value": "4436" }, { "label": "PickingupY", "value": "5526" }, { "label": "pigc", "value": "4262" }, { "label": "pigeonbeek", "value": "5896" }, { "label": "pigeonnext", "value": "2599" }, { "label": "Pigeonsare", "value": "4673" }, { "label": "pigeonsnev", "value": "4113" }, { "label": "PillBasedC", "value": "399" }, { "label": "PillConcoc", "value": "400" }, { "label": "PillConcot", "value": "674" }, { "label": "Pilots", "value": "1592" }, { "label": "Pipifish", "value": "2234" }, { "label": "PipiGray", "value": "4272" }, { "label": "Pipisanqin", "value": "6079" }, { "label": "Pirate", "value": "1166" }, { "label": "Pirateacto", "value": "2489" }, { "label": "PirateCour", "value": "2497" }, { "label": "PirateDaQi", "value": "1844" }, { "label": "PirateGrea", "value": "2147" }, { "label": "Piratehaha", "value": "1914" }, { "label": "Pirates", "value": "546" }, { "label": "PiratesofH", "value": "2748" }, { "label": "PirateSumm", "value": "4418" }, { "label": "PirateWars", "value": "2491" }, { "label": "PiratexFai", "value": "2559" }, { "label": "Piscesinth", "value": "2681" }, { "label": "Piscesscum", "value": "4695" }, { "label": "pittree", "value": "3728" }, { "label": "pity", "value": "3772" }, { "label": "Plane", "value": "3120" }, { "label": "planeapple", "value": "6024" }, { "label": "Planets", "value": "1004" }, { "label": "PlaneWars", "value": "3972" }, { "label": "Plants", "value": "1137" }, { "label": "Playaswate", "value": "5973" }, { "label": "PlayBlueMo", "value": "2069" }, { "label": "Playboymal", "value": "1275" }, { "label": "Playboys", "value": "653" }, { "label": "Player", "value": "1562" }, { "label": "PlayerKill", "value": "1690" }, { "label": "Players", "value": "1245" }, { "label": "PlayfulPro", "value": "714" }, { "label": "Playingcat", "value": "4922" }, { "label": "PlayingGho", "value": "1482" }, { "label": "playYaoer", "value": "5358" }, { "label": "pleasantin", "value": "2054" }, { "label": "pleasecall", "value": "5018" }, { "label": "Pleaseforg", "value": "2933" }, { "label": "pleasehave", "value": "6084" }, { "label": "pleasehitm", "value": "4097" }, { "label": "Pleasesixt", "value": "4396" }, { "label": "plumthirte", "value": "2156" }, { "label": "Pochita", "value": "5428" }, { "label": "poems", "value": "1438" }, { "label": "Poetry", "value": "731" }, { "label": "Poison1", "value": "4686" }, { "label": "PoisonConc", "value": "3892" }, { "label": "poisondoct", "value": "3409" }, { "label": "PoisonMout", "value": "1070" }, { "label": "Poisonoust", "value": "3426" }, { "label": "Poisons", "value": "370" }, { "label": "Pokemon", "value": "587" }, { "label": "pokemonelf", "value": "5957" }, { "label": "PokémonGo", "value": "2761" }, { "label": "PokémonTi", "value": "2492" }, { "label": "PokémonUn", "value": "4221" }, { "label": "PokémonVo", "value": "2155" }, { "label": "polarflow", "value": "3407" }, { "label": "PoleStarWh", "value": "4983" }, { "label": "Police", "value": "419" }, { "label": "Policemen", "value": "3587" }, { "label": "policyflow", "value": "3198" }, { "label": "PoliteProt", "value": "684" }, { "label": "PoliticalI", "value": "949" }, { "label": "PoliticalS", "value": "1279" }, { "label": "Politics", "value": "43" }, { "label": "Polyandry", "value": "669" }, { "label": "Polygamy", "value": "282" }, { "label": "pomeloslee", "value": "4987" }, { "label": "Pony", "value": "3603" }, { "label": "Poor", "value": "4355" }, { "label": "Poorcrazy", "value": "1787" }, { "label": "PoorProtag", "value": "522" }, { "label": "PoorRoRich", "value": "1535" }, { "label": "PoortoRich", "value": "132" }, { "label": "PopeBibiDo", "value": "2494" }, { "label": "Popi", "value": "4244" }, { "label": "Popular", "value": "5072" }, { "label": "PopularLov", "value": "592" }, { "label": "Popularsci", "value": "3335" }, { "label": "Poriacocos", "value": "4712" }, { "label": "porkbuns", "value": "5204" }, { "label": "porridge", "value": "4008" }, { "label": "PortableSp", "value": "951" }, { "label": "PortalFant", "value": "3421" }, { "label": "Positive", "value": "5888" }, { "label": "Positiveel", "value": "2098" }, { "label": "positiveen", "value": "3202" }, { "label": "PositiveLe", "value": "1455" }, { "label": "Possession", "value": "605" }, { "label": "Possessive", "value": "4" }, { "label": "Possessive", "value": "1211" }, { "label": "Possessive", "value": "5886" }, { "label": "Post-apoca", "value": "401" }, { "label": "Potatoesar", "value": "3993" }, { "label": "potatogirl", "value": "2729" }, { "label": "PotatoRawS", "value": "5796" }, { "label": "poundedric", "value": "4365" }, { "label": "pouringice", "value": "5218" }, { "label": "PovertyAll", "value": "1280" }, { "label": "PowerCoupl", "value": "47" }, { "label": "Powerfulco", "value": "1355" }, { "label": "Powerfulmi", "value": "3104" }, { "label": "PowerGener", "value": "4375" }, { "label": "Powerhouse", "value": "3270" }, { "label": "PowersTran", "value": "1066" }, { "label": "PowerStrug", "value": "690" }, { "label": "pps", "value": "3760" }, { "label": "practice", "value": "3346" }, { "label": "practicefl", "value": "3611" }, { "label": "PragmaticP", "value": "593" }, { "label": "PraiseforD", "value": "4806" }, { "label": "Precogniti", "value": "724" }, { "label": "Preferthew", "value": "4869" }, { "label": "Pregnancy", "value": "83" }, { "label": "prehistori", "value": "4482" }, { "label": "Prehistori", "value": "1362" }, { "label": "Prehistori", "value": "1352" }, { "label": "PresentDay", "value": "1732" }, { "label": "President", "value": "1715" }, { "label": "PretendLov", "value": "250" }, { "label": "Pretendtob", "value": "2976" }, { "label": "PrettyGirl", "value": "5073" }, { "label": "PreviousLi", "value": "138" }, { "label": "PreviousLi", "value": "685" }, { "label": "Priest", "value": "3708" }, { "label": "Priestesse", "value": "1059" }, { "label": "Priests", "value": "707" }, { "label": "PrimeMinis", "value": "3775" }, { "label": "Primitives", "value": "1138" }, { "label": "PrimitiveT", "value": "4336" }, { "label": "Primitivew", "value": "967" }, { "label": "prince", "value": "3163" }, { "label": "PrinceofHe", "value": "2847" }, { "label": "PrinceofTe", "value": "1306" }, { "label": "PrinceQing", "value": "2631" }, { "label": "Princess", "value": "1527" }, { "label": "Prison", "value": "560" }, { "label": "ProactiveP", "value": "423" }, { "label": "probabilit", "value": "4844" }, { "label": "prodigal", "value": "5714" }, { "label": "Prodigalso", "value": "5857" }, { "label": "Profession", "value": "3201" }, { "label": "Profession", "value": "4202" }, { "label": "Professor", "value": "928" }, { "label": "program", "value": "5416" }, { "label": "Programmer", "value": "704" }, { "label": "Programmin", "value": "3848" }, { "label": "Progressio", "value": "1652" }, { "label": "propertyst", "value": "3569" }, { "label": "Prophecies", "value": "718" }, { "label": "Pros", "value": "3300" }, { "label": "Prosperity", "value": "4131" }, { "label": "Prosperous", "value": "4784" }, { "label": "Prostitute", "value": "447" }, { "label": "Protagonis", "value": "1640" }, { "label": "Protagonis", "value": "1037" }, { "label": "Protagonis", "value": "2881" }, { "label": "Protagonis", "value": "1525" }, { "label": "Protagonis", "value": "1341" }, { "label": "Protagonis", "value": "1305" }, { "label": "Protagonis", "value": "1129" }, { "label": "Protagonis", "value": "462" }, { "label": "Protagonis", "value": "283" }, { "label": "Protagonis", "value": "49" }, { "label": "protectsho", "value": "3227" }, { "label": "Protectthe", "value": "4512" }, { "label": "Proud", "value": "3316" }, { "label": "PseudoHolo", "value": "1281" }, { "label": "PseudoReli", "value": "1282" }, { "label": "psionic", "value": "2910" }, { "label": "Psychic", "value": "1067" }, { "label": "PsychicPow", "value": "715" }, { "label": "Psychokill", "value": "5979" }, { "label": "Psychologi", "value": "1045" }, { "label": "Psychology", "value": "1544" }, { "label": "Psychopath", "value": "498" }, { "label": "Punch", "value": "1960" }, { "label": "Puppet", "value": "4301" }, { "label": "puppy", "value": "3599" }, { "label": "PurebloodS", "value": "5657" }, { "label": "pureimpuls", "value": "2538" }, { "label": "purekitten", "value": "2465" }, { "label": "PureLove", "value": "3838" }, { "label": "purelovefa", "value": "5719" }, { "label": "purepigeon", "value": "4015" }, { "label": "puresenior", "value": "5524" }, { "label": "purewhiteo", "value": "4213" }, { "label": "Purple", "value": "4493" }, { "label": "Purple-hai", "value": "5853" }, { "label": "purplebrok", "value": "5168" }, { "label": "PurpleDuri", "value": "5789" }, { "label": "PurpleEmpe", "value": "4155" }, { "label": "PurpleNaya", "value": "4808" }, { "label": "purpleslim", "value": "3540" }, { "label": "Putdownthe", "value": "5924" }, { "label": "Puzzles", "value": "1529" }, { "label": "qhfishinga", "value": "5981" }, { "label": "QianandQia", "value": "5868" }, { "label": "Qiandengwi", "value": "5721" }, { "label": "Qianlong", "value": "3645" }, { "label": "Qianqianra", "value": "4582" }, { "label": "QianshanTw", "value": "2735" }, { "label": "QianXixi", "value": "3718" }, { "label": "QianXunxia", "value": "3683" }, { "label": "qidian", "value": "5044" }, { "label": "Qilixiang", "value": "4045" }, { "label": "QiLuck", "value": "1641" }, { "label": "qimao", "value": "5120" }, { "label": "QinBichu", "value": "1859" }, { "label": "QinBuxiang", "value": "4289" }, { "label": "QingDynast", "value": "3174" }, { "label": "QingDynast", "value": "2993" }, { "label": "Qingfeng1D", "value": "1853" }, { "label": "QingfengYu", "value": "4864" }, { "label": "QingheTaoi", "value": "2032" }, { "label": "QinghuiYen", "value": "5303" }, { "label": "Qingliansw", "value": "1970" }, { "label": "Qingluan", "value": "3693" }, { "label": "Qingsanren", "value": "5820" }, { "label": "QingWeixin", "value": "5368" }, { "label": "Qingxinyuu", "value": "4852" }, { "label": "qingyu", "value": "2360" }, { "label": "QinHan", "value": "3230" }, { "label": "QinHanCros", "value": "3039" }, { "label": "QinHanTang", "value": "4447" }, { "label": "QinShiSwor", "value": "5569" }, { "label": "QinTangFei", "value": "5610" }, { "label": "QiuZiXiaXu", "value": "3995" }, { "label": "QiXuan", "value": "2111" }, { "label": "Qiyao&0", "value": "5603" }, { "label": "QiyueLiuhu", "value": "5730" }, { "label": "QiyueShiqi", "value": "4752" }, { "label": "QiYuwholov", "value": "4817" }, { "label": "QT", "value": "1758" }, { "label": "Quackhamst", "value": "5601" }, { "label": "quantumgoo", "value": "5396" }, { "label": "QuartetSev", "value": "5486" }, { "label": "Quasar", "value": "5568" }, { "label": "Quasi-GodS", "value": "1919" }, { "label": "Queen", "value": "3574" }, { "label": "QueenofBla", "value": "2445" }, { "label": "Question&a", "value": "1728" }, { "label": "QuickPass", "value": "1621" }, { "label": "QuickTrans", "value": "599" }, { "label": "QuickTrans", "value": "944" }, { "label": "QuickTrans", "value": "1659" }, { "label": "Quickwear", "value": "1547" }, { "label": "QuietChara", "value": "719" }, { "label": "quietflowe", "value": "1847" }, { "label": "QuirkyChar", "value": "198" }, { "label": "Quququ", "value": "2613" }, { "label": "R-13", "value": "727" }, { "label": "R-15", "value": "646" }, { "label": "R-18", "value": "5455" }, { "label": "R18", "value": "5058" }, { "label": "RabbitToot", "value": "2539" }, { "label": "raccoonrac", "value": "5028" }, { "label": "raccoonsho", "value": "3797" }, { "label": "RaceChange", "value": "604" }, { "label": "Racism", "value": "13" }, { "label": "Raiders", "value": "3250" }, { "label": "Raids", "value": "971" }, { "label": "Railgun", "value": "4490" }, { "label": "rainandsno", "value": "2254" }, { "label": "Rainandsun", "value": "4537" }, { "label": "rainbeans", "value": "3769" }, { "label": "rainboweig", "value": "2682" }, { "label": "rainclearn", "value": "5634" }, { "label": "Rainfallsf", "value": "4104" }, { "label": "Rainhitsba", "value": "4164" }, { "label": "Rainink", "value": "5154" }, { "label": "rainiscomi", "value": "4368" }, { "label": "rainyday", "value": "5480" }, { "label": "rainydaywi", "value": "2788" }, { "label": "rainystars", "value": "4892" }, { "label": "Raiseaghos", "value": "2611" }, { "label": "raisedache", "value": "2600" }, { "label": "rakepig", "value": "5398" }, { "label": "randomstre", "value": "5631" }, { "label": "randomwhy", "value": "5373" }, { "label": "RankingLis", "value": "1743" }, { "label": "RankSystem", "value": "997" }, { "label": "Ranwho", "value": "3969" }, { "label": "Rape", "value": "402" }, { "label": "Rapeseedra", "value": "2159" }, { "label": "RapeVictim", "value": "827" }, { "label": "RapeVictim", "value": "6" }, { "label": "Rarebloodl", "value": "5060" }, { "label": "Rarely", "value": "4362" }, { "label": "Ras", "value": "1688" }, { "label": "Raven", "value": "4468" }, { "label": "RavenCrow", "value": "3959" }, { "label": "rawstream", "value": "3449" }, { "label": "Raynes", "value": "4157" }, { "label": "readstream", "value": "3205" }, { "label": "Realestate", "value": "5122" }, { "label": "reallyking", "value": "2284" }, { "label": "reallynotg", "value": "5624" }, { "label": "Realmmonst", "value": "2810" }, { "label": "realnamest", "value": "5433" }, { "label": "realoldgen", "value": "5552" }, { "label": "reasoning", "value": "5891" }, { "label": "Rebellion", "value": "757" }, { "label": "Rebellious", "value": "5906" }, { "label": "Rebirth", "value": "139" }, { "label": "RebirthChr", "value": "2984" }, { "label": "Rebirthdoc", "value": "2987" }, { "label": "RebirthedP", "value": "1241" }, { "label": "Rebirtheve", "value": "3014" }, { "label": "Rebirthevo", "value": "3017" }, { "label": "Rebirthfar", "value": "3034" }, { "label": "RebirthGam", "value": "3025" }, { "label": "RebirthGra", "value": "3008" }, { "label": "Rebirthhap", "value": "2936" }, { "label": "Rebirthint", "value": "3019" }, { "label": "Rebirthman", "value": "2988" }, { "label": "RebirthMen", "value": "5311" }, { "label": "RebirthofK", "value": "6033" }, { "label": "RebirthRel", "value": "3048" }, { "label": "Rebirthsho", "value": "5306" }, { "label": "Rebirthstr", "value": "5318" }, { "label": "Rebirthstr", "value": "3032" }, { "label": "Rebirthstr", "value": "2975" }, { "label": "Rebirthswe", "value": "5328" }, { "label": "Reborn", "value": "831" }, { "label": "Rebornprot", "value": "1239" }, { "label": "Recallingt", "value": "5217" }, { "label": "recessiono", "value": "3796" }, { "label": "recreation", "value": "2328" }, { "label": "RED⑨", "value": "5729" }, { "label": "Redactor", "value": "4908" }, { "label": "RedAlert2", "value": "812" }, { "label": "Redcandyso", "value": "3689" }, { "label": "redcutefoo", "value": "4727" }, { "label": "Redemption", "value": "3837" }, { "label": "RedHouse", "value": "3187" }, { "label": "RedIronRoa", "value": "4755" }, { "label": "redlotus", "value": "3576" }, { "label": "RedLotusWi", "value": "5008" }, { "label": "redpacketf", "value": "3711" }, { "label": "redstone", "value": "5572" }, { "label": "Referstomu", "value": "4601" }, { "label": "Refiner", "value": "3155" }, { "label": "RefiningPi", "value": "853" }, { "label": "ReformandO", "value": "5129" }, { "label": "RegalinBla", "value": "5549" }, { "label": "Regardless", "value": "5922" }, { "label": "Regent", "value": "3233" }, { "label": "Regression", "value": "3835" }, { "label": "Regressor", "value": "1563" }, { "label": "Regret", "value": "3832" }, { "label": "Rehabilita", "value": "5412" }, { "label": "Reiki", "value": "3859" }, { "label": "ReikiRecov", "value": "1765" }, { "label": "Reikyrecov", "value": "1054" }, { "label": "Reimuer", "value": "4017" }, { "label": "reincarnat", "value": "3438" }, { "label": "reincarnat", "value": "1399" }, { "label": "reincarnat", "value": "1737" }, { "label": "Reincarnat", "value": "162" }, { "label": "Reincarnat", "value": "4356" }, { "label": "Reincarnat", "value": "1444" }, { "label": "Reincarnat", "value": "1028" }, { "label": "Reincarnat", "value": "913" }, { "label": "Reincarnat", "value": "770" }, { "label": "Reincarnat", "value": "523" }, { "label": "Reincarnat", "value": "467" }, { "label": "Reincarnat", "value": "415" }, { "label": "rejoice", "value": "3228" }, { "label": "Rejoiceint", "value": "4446" }, { "label": "relaxed", "value": "1761" }, { "label": "Religions", "value": "706" }, { "label": "ReligiousO", "value": "1057" }, { "label": "ReligousOr", "value": "923" }, { "label": "Remarriage", "value": "3572" }, { "label": "rememberto", "value": "4640" }, { "label": "Rememberto", "value": "5928" }, { "label": "Rengucuisi", "value": "4235" }, { "label": "Repeat", "value": "4876" }, { "label": "RepeatJiAi", "value": "5027" }, { "label": "Reporters", "value": "545" }, { "label": "Researcher", "value": "1701" }, { "label": "Residencen", "value": "2400" }, { "label": "Residentev", "value": "2887" }, { "label": "ResolutePr", "value": "1034" }, { "label": "respectfor", "value": "4657" }, { "label": "restaurant", "value": "2290" }, { "label": "Restaurant", "value": "635" }, { "label": "Resurrecti", "value": "390" }, { "label": "Resurrecti", "value": "2701" }, { "label": "Return", "value": "5630" }, { "label": "Returningf", "value": "695" }, { "label": "Returnofth", "value": "3236" }, { "label": "Returnofth", "value": "5378" }, { "label": "Returnofth", "value": "3042" }, { "label": "Returntent", "value": "5778" }, { "label": "Returntoth", "value": "1139" }, { "label": "Reunion", "value": "1487" }, { "label": "revenge", "value": "1398" }, { "label": "Revenge", "value": "225" }, { "label": "revengeLov", "value": "5345" }, { "label": "Reversal", "value": "5131" }, { "label": "Reverse", "value": "3390" }, { "label": "ReverseHar", "value": "378" }, { "label": "ReverseRap", "value": "571" }, { "label": "ReverseRpe", "value": "614" }, { "label": "reversesmo", "value": "2050" }, { "label": "reversewea", "value": "3256" }, { "label": "reversewea", "value": "5325" }, { "label": "reversewea", "value": "3080" }, { "label": "Reversible", "value": "740" }, { "label": "Rhapsodyof", "value": "5748" }, { "label": "Rhein-Life", "value": "5250" }, { "label": "ricebath", "value": "4850" }, { "label": "ricestar", "value": "5102" }, { "label": "Rich", "value": "1051" }, { "label": "richandbea", "value": "3454" }, { "label": "RichCharac", "value": "910" }, { "label": "Richestman", "value": "3715" }, { "label": "richeveryy", "value": "2510" }, { "label": "Richfamily", "value": "1388" }, { "label": "RichMC", "value": "1144" }, { "label": "richpeople", "value": "3395" }, { "label": "RichProtag", "value": "875" }, { "label": "RichtoPoor", "value": "743" }, { "label": "rideapiggy", "value": "5975" }, { "label": "Rideawhale", "value": "1821" }, { "label": "Rideawhale", "value": "6063" }, { "label": "ridethewin", "value": "3493" }, { "label": "Ridethewin", "value": "5537" }, { "label": "ridicule", "value": "4860" }, { "label": "ridiculous", "value": "3744" }, { "label": "RighteousP", "value": "630" }, { "label": "RimuruTemp", "value": "1593" }, { "label": "RinYueqing", "value": "1792" }, { "label": "riot", "value": "3604" }, { "label": "RipplesofD", "value": "5220" }, { "label": "RiseofGras", "value": "3437" }, { "label": "Rivalry", "value": "687" }, { "label": "rivercruis", "value": "5161" }, { "label": "riversande", "value": "2011" }, { "label": "RoadtoAwak", "value": "4970" }, { "label": "rockblosso", "value": "5156" }, { "label": "rockfox", "value": "3720" }, { "label": "Rococo", "value": "3924" }, { "label": "rodeaway", "value": "5623" }, { "label": "Roger18", "value": "4504" }, { "label": "Rollover", "value": "3457" }, { "label": "Romance", "value": "768" }, { "label": "RomanceFan", "value": "3833" }, { "label": "RomanHolid", "value": "3489" }, { "label": "RomanticPr", "value": "842" }, { "label": "RomanticSu", "value": "14" }, { "label": "RomanticSu", "value": "711" }, { "label": "RomeoTanak", "value": "4766" }, { "label": "RongRong", "value": "4787" }, { "label": "RookieProt", "value": "1358" }, { "label": "Roommates", "value": "772" }, { "label": "Roon", "value": "2557" }, { "label": "Rossini", "value": "5167" }, { "label": "Rotaryhotp", "value": "2627" }, { "label": "rottenoran", "value": "3781" }, { "label": "roughman", "value": "3397" }, { "label": "Royal", "value": "3354" }, { "label": "RoyalBeast", "value": "3131" }, { "label": "RoyalSabur", "value": "1957" }, { "label": "Royalty", "value": "35" }, { "label": "Rpe", "value": "5" }, { "label": "RpeVictimB", "value": "115" }, { "label": "runaftercl", "value": "5104" }, { "label": "runawayant", "value": "1841" }, { "label": "runawaycit", "value": "1809" }, { "label": "runawaydum", "value": "4979" }, { "label": "runawaymid", "value": "4217" }, { "label": "runawayrab", "value": "4792" }, { "label": "Rune", "value": "1244" }, { "label": "RuneMaster", "value": "3365" }, { "label": "runningfis", "value": "3690" }, { "label": "Ruoshuithr", "value": "2241" }, { "label": "ruotuosave", "value": "5415" }, { "label": "rural", "value": "3696" }, { "label": "Rushduck", "value": "3922" }, { "label": "Russian", "value": "1766" }, { "label": "ruthelessm", "value": "1435" }, { "label": "RuthlessMc", "value": "1093" }, { "label": "RuthlessPr", "value": "15" }, { "label": "rwby", "value": "1406" }, { "label": "SacrificeX", "value": "2727" }, { "label": "Sadakoiscu", "value": "3672" }, { "label": "SadisticCh", "value": "622" }, { "label": "Sadomasoch", "value": "5677" }, { "label": "Sadreminde", "value": "1936" }, { "label": "sadsadness", "value": "2086" }, { "label": "sadsword", "value": "1840" }, { "label": "SaikiK", "value": "1064" }, { "label": "SaikiK.", "value": "1382" }, { "label": "Sailing", "value": "1734" }, { "label": "Saint", "value": "1561" }, { "label": "SaintPauli", "value": "4367" }, { "label": "Saints", "value": "598" }, { "label": "SaintSeiya", "value": "1082" }, { "label": "Saint丨Men", "value": "5593" }, { "label": "SakeAsahi", "value": "5518" }, { "label": "Sako", "value": "5754" }, { "label": "Sakuracat", "value": "4066" }, { "label": "Sakurajima", "value": "2639" }, { "label": "SakuraMoon", "value": "2207" }, { "label": "saltedfish", "value": "4074" }, { "label": "saltedfish", "value": "5794" }, { "label": "saltedfish", "value": "4723" }, { "label": "saltedfish", "value": "3857" }, { "label": "Saltedfish", "value": "3292" }, { "label": "Saltedfish", "value": "4874" }, { "label": "Saltedfish", "value": "4233" }, { "label": "Saltedfish", "value": "2405" }, { "label": "Saltedfish", "value": "5959" }, { "label": "Saltedfish", "value": "5893" }, { "label": "Saltedfish", "value": "5852" }, { "label": "Saltedfish", "value": "4818" }, { "label": "SaltedFish", "value": "5811" }, { "label": "SaltedFish", "value": "2685" }, { "label": "SaltedFish", "value": "2299" }, { "label": "SaltedFish", "value": "1851" }, { "label": "SaltedFish", "value": "1089" }, { "label": "Saltyandsw", "value": "3314" }, { "label": "saltyfox", "value": "3986" }, { "label": "Salvation", "value": "3846" }, { "label": "sama", "value": "4167" }, { "label": "SameSexMar", "value": "1170" }, { "label": "Samurai", "value": "1025" }, { "label": "SancheonHo", "value": "4938" }, { "label": "sanctifica", "value": "5209" }, { "label": "sandrivere", "value": "2116" }, { "label": "Sandsculpt", "value": "6142" }, { "label": "Sanguanzhe", "value": "3197" }, { "label": "SanmitheGr", "value": "2401" }, { "label": "SanyueFeng", "value": "5215" }, { "label": "SaraDouble", "value": "3810" }, { "label": "Satire", "value": "3420" }, { "label": "saturdaymo", "value": "5645" }, { "label": "Sauce", "value": "5348" }, { "label": "Sauerkraut", "value": "4450" }, { "label": "Saves", "value": "781" }, { "label": "SavingtheW", "value": "682" }, { "label": "Saygoodbye", "value": "3822" }, { "label": "SCaja", "value": "4889" }, { "label": "Scalesofth", "value": "1825" }, { "label": "scarletmon", "value": "5814" }, { "label": "ScarletMoo", "value": "4660" }, { "label": "Scary", "value": "5083" }, { "label": "schemeandc", "value": "1742" }, { "label": "Schemes", "value": "1460" }, { "label": "Schemesand", "value": "1047" }, { "label": "SchemesAnd", "value": "405" }, { "label": "SchemingPr", "value": "1283" }, { "label": "scholar", "value": "5119" }, { "label": "School-lif", "value": "1267" }, { "label": "schoolgras", "value": "3615" }, { "label": "SchoolLife", "value": "746" }, { "label": "SchoolSett", "value": "1678" }, { "label": "Sci-Fantas", "value": "1003" }, { "label": "Sci-fi", "value": "931" }, { "label": "Science", "value": "1782" }, { "label": "sciencefic", "value": "1046" }, { "label": "Scientist", "value": "1523" }, { "label": "Scientists", "value": "486" }, { "label": "Scorpio", "value": "4914" }, { "label": "Scorpionho", "value": "5193" }, { "label": "Scourge", "value": "1971" }, { "label": "SCP", "value": "1140" }, { "label": "scrupulous", "value": "5432" }, { "label": "scumbag", "value": "3114" }, { "label": "scumbagReb", "value": "2981" }, { "label": "scumfish", "value": "5262" }, { "label": "scumteache", "value": "2308" }, { "label": "Sea", "value": "1570" }, { "label": "SeaExplora", "value": "1116" }, { "label": "SealedPowe", "value": "284" }, { "label": "SealGod", "value": "3399" }, { "label": "sea​​rou", "value": "5930" }, { "label": "secludedci", "value": "5221" }, { "label": "second-han", "value": "4577" }, { "label": "Secondbatt", "value": "3816" }, { "label": "secondchan", "value": "1410" }, { "label": "SecondChan", "value": "99" }, { "label": "SecondChan", "value": "1665" }, { "label": "Secondgive", "value": "4366" }, { "label": "secondpira", "value": "2428" }, { "label": "secretary", "value": "1733" }, { "label": "SecretCrus", "value": "266" }, { "label": "SecretFrag", "value": "4105" }, { "label": "SecretIden", "value": "285" }, { "label": "Secretive", "value": "5066" }, { "label": "secretivec", "value": "3085" }, { "label": "SecretiveP", "value": "552" }, { "label": "Secretobse", "value": "2483" }, { "label": "secretolds", "value": "4974" }, { "label": "SecretOrga", "value": "1141" }, { "label": "SecretOrga", "value": "652" }, { "label": "SecretRela", "value": "1021" }, { "label": "Secrets", "value": "286" }, { "label": "Sect", "value": "3547" }, { "label": "SectDevelo", "value": "692" }, { "label": "SectMaster", "value": "841" }, { "label": "Sects", "value": "881" }, { "label": "Securitygu", "value": "3320" }, { "label": "Seduction", "value": "732" }, { "label": "SeeingThin", "value": "633" }, { "label": "Seelemywif", "value": "4216" }, { "label": "seeyouagai", "value": "3116" }, { "label": "Seeyouatth", "value": "4208" }, { "label": "self-disci", "value": "2372" }, { "label": "Self-disci", "value": "3207" }, { "label": "self-impro", "value": "3306" }, { "label": "SelfDiscip", "value": "3548" }, { "label": "SelfishPro", "value": "254" }, { "label": "SelflessPr", "value": "558" }, { "label": "sellbloodf", "value": "5357" }, { "label": "sellumbrel", "value": "4035" }, { "label": "sellwine", "value": "5606" }, { "label": "SemeProtag", "value": "500" }, { "label": "Senbeiboy", "value": "3373" }, { "label": "Sencha", "value": "2664" }, { "label": "sendapacka", "value": "5585" }, { "label": "Senior", "value": "3318" }, { "label": "SentientOb", "value": "970" }, { "label": "SentientSk", "value": "1313" }, { "label": "Sentimenta", "value": "771" }, { "label": "Sequel", "value": "1179" }, { "label": "SerialKill", "value": "550" }, { "label": "SerpentKin", "value": "3389" }, { "label": "ServantofZ", "value": "1817" }, { "label": "Servants", "value": "665" }, { "label": "SevenDeadl", "value": "691" }, { "label": "Sevengener", "value": "2209" }, { "label": "sevenpigeo", "value": "1883" }, { "label": "SevenProfo", "value": "5929" }, { "label": "severekaro", "value": "4314" }, { "label": "SexSlaves", "value": "475" }, { "label": "SexualAbus", "value": "175" }, { "label": "SexualCult", "value": "748" }, { "label": "shadowfall", "value": "2800" }, { "label": "shadowfire", "value": "4022" }, { "label": "shadowghos", "value": "2302" }, { "label": "Shadowless", "value": "2929" }, { "label": "Shallowsea", "value": "1805" }, { "label": "Shame", "value": "4565" }, { "label": "ShamelessA", "value": "6108" }, { "label": "ShamelessP", "value": "203" }, { "label": "ShangshanX", "value": "4813" }, { "label": "ShanHaiJin", "value": "3396" }, { "label": "ShanhaiSpe", "value": "4473" }, { "label": "Shaohuaisf", "value": "5639" }, { "label": "Shapeshift", "value": "267" }, { "label": "Shapeshift", "value": "1100" }, { "label": "ShareHaiTs", "value": "3996" }, { "label": "Sharp-tong", "value": "296" }, { "label": "Shelter", "value": "1506" }, { "label": "ShenhaoMec", "value": "2561" }, { "label": "ShenhuoxoR", "value": "2074" }, { "label": "ShenJin", "value": "2543" }, { "label": "ShenLuo", "value": "1993" }, { "label": "ShenShen", "value": "4386" }, { "label": "Sherlock", "value": "4300" }, { "label": "shesaiditw", "value": "4465" }, { "label": "Shiewillno", "value": "4764" }, { "label": "Shijia", "value": "3244" }, { "label": "Shiko", "value": "3367" }, { "label": "ShiTianfen", "value": "4427" }, { "label": "ShoesMenlu", "value": "4086" }, { "label": "shortforpa", "value": "3175" }, { "label": "ShortStory", "value": "559" }, { "label": "Shota", "value": "493" }, { "label": "Shotacon", "value": "556" }, { "label": "Shoujo-AiS", "value": "595" }, { "label": "ShoujoAi", "value": "955" }, { "label": "Shouldhand", "value": "1860" }, { "label": "Shounen", "value": "1533" }, { "label": "Shounen-Ai", "value": "530" }, { "label": "shounenai", "value": "1719" }, { "label": "ShouProtag", "value": "1467" }, { "label": "Show-biz", "value": "2888" }, { "label": "Showbiz", "value": "108" }, { "label": "showdownfl", "value": "3598" }, { "label": "ShowdownSa", "value": "4613" }, { "label": "showstory", "value": "2056" }, { "label": "ShreddedOn", "value": "3529" }, { "label": "ShrimpBall", "value": "4652" }, { "label": "shrimpinth", "value": "1820" }, { "label": "Shuangjie", "value": "3148" }, { "label": "ShuangjieD", "value": "5312" }, { "label": "Shuangwen", "value": "1207" }, { "label": "shudder", "value": "1828" }, { "label": "Shura", "value": "4287" }, { "label": "Shurachang", "value": "3291" }, { "label": "Shushan", "value": "3284" }, { "label": "Shuttlebus", "value": "5577" }, { "label": "ShuyinFloa", "value": "4564" }, { "label": "ShuYuChenX", "value": "2346" }, { "label": "ShyCharact", "value": "482" }, { "label": "Si-fi", "value": "1094" }, { "label": "Sibling&am", "value": "750" }, { "label": "SiblingRiv", "value": "46" }, { "label": "Siblings", "value": "48" }, { "label": "SiblingsNo", "value": "448" }, { "label": "sick", "value": "3323" }, { "label": "sickleredr", "value": "3861" }, { "label": "SicklyChar", "value": "600" }, { "label": "sifeizhai", "value": "3531" }, { "label": "Sign-in", "value": "934" }, { "label": "Sign-InChe", "value": "1242" }, { "label": "Signboardm", "value": "4438" }, { "label": "signin", "value": "1294" }, { "label": "SigninChec", "value": "1331" }, { "label": "signinsalt", "value": "2371" }, { "label": "SiheyuanDa", "value": "5663" }, { "label": "SiheyuanDe", "value": "2276" }, { "label": "Siheyuanfl", "value": "2175" }, { "label": "SiheyuanGo", "value": "2246" }, { "label": "Siheyuanpi", "value": "4448" }, { "label": "Sijiu", "value": "4162" }, { "label": "Silencehim", "value": "2341" }, { "label": "silentauth", "value": "5423" }, { "label": "Silentcare", "value": "3787" }, { "label": "silentkill", "value": "2059" }, { "label": "sillycatse", "value": "1909" }, { "label": "SillyColum", "value": "2363" }, { "label": "SillyTeres", "value": "5145" }, { "label": "sillywhite", "value": "3776" }, { "label": "silver", "value": "2807" }, { "label": "silverbigs", "value": "5178" }, { "label": "silvercold", "value": "3483" }, { "label": "Silverhair", "value": "4540" }, { "label": "Simmel", "value": "3667" }, { "label": "Simon", "value": "4743" }, { "label": "Simpleone", "value": "2382" }, { "label": "simpletwo", "value": "5648" }, { "label": "SimpleXiaZ", "value": "4706" }, { "label": "Simulation", "value": "1646" }, { "label": "Simulator", "value": "1172" }, { "label": "singer", "value": "1770" }, { "label": "Singers", "value": "187" }, { "label": "SingleHero", "value": "1569" }, { "label": "singlemons", "value": "5469" }, { "label": "SinglePare", "value": "503" }, { "label": "singlepush", "value": "4753" }, { "label": "singlesalt", "value": "2865" }, { "label": "sink", "value": "4414" }, { "label": "SirBirefel", "value": "6090" }, { "label": "Siriuslook", "value": "5003" }, { "label": "Siscon", "value": "1726" }, { "label": "Sisterandb", "value": "3358" }, { "label": "SisterComp", "value": "709" }, { "label": "sistercook", "value": "2553" }, { "label": "sisterisbe", "value": "2379" }, { "label": "SisterLuo", "value": "4724" }, { "label": "SisterYu", "value": "3184" }, { "label": "SituQingfe", "value": "4090" }, { "label": "six-twochi", "value": "1913" }, { "label": "Sixcauseso", "value": "6026" }, { "label": "sixchiefs", "value": "5586" }, { "label": "Sixi", "value": "4055" }, { "label": "SixImmorta", "value": "4796" }, { "label": "sixlittlef", "value": "5609" }, { "label": "SixPathsof", "value": "2449" }, { "label": "sixteenmir", "value": "3783" }, { "label": "sixteennig", "value": "4516" }, { "label": "sixthousan", "value": "3871" }, { "label": "Sixty-six", "value": "2052" }, { "label": "SkeletonSo", "value": "3440" }, { "label": "SkillAssim", "value": "403" }, { "label": "SkillBooks", "value": "508" }, { "label": "SkillCreat", "value": "572" }, { "label": "SkillSteal", "value": "1353" }, { "label": "SkinButler", "value": "2322" }, { "label": "skybird", "value": "4112" }, { "label": "skycity", "value": "4352" }, { "label": "SkyFeather", "value": "4226" }, { "label": "SkyKilling", "value": "4962" }, { "label": "SkyMender", "value": "4036" }, { "label": "Skyrim", "value": "979" }, { "label": "Skyshadowm", "value": "4527" }, { "label": "SkyStealin", "value": "3805" }, { "label": "slackerstu", "value": "3713" }, { "label": "slagfly", "value": "5589" }, { "label": "Slagwritin", "value": "4903" }, { "label": "Slap", "value": "3135" }, { "label": "SlapstickC", "value": "1566" }, { "label": "Slapstrong", "value": "5313" }, { "label": "Slave", "value": "1463" }, { "label": "SlaveHarem", "value": "730" }, { "label": "SlaveProta", "value": "540" }, { "label": "Slaves", "value": "287" }, { "label": "SlaveSyste", "value": "828" }, { "label": "sleepingbi", "value": "4847" }, { "label": "sleepingra", "value": "5521" }, { "label": "sleepingsa", "value": "2006" }, { "label": "sleeplesst", "value": "2471" }, { "label": "sleepslate", "value": "1969" }, { "label": "sleepyanim", "value": "4664" }, { "label": "Slice-of-l", "value": "1259" }, { "label": "SliceofLif", "value": "877" }, { "label": "slightlyco", "value": "3890" }, { "label": "SlightlySu", "value": "1270" }, { "label": "Slimeatsun", "value": "5576" }, { "label": "slow-movin", "value": "3825" }, { "label": "slow-roman", "value": "1011" }, { "label": "SlowCultiv", "value": "1009" }, { "label": "SlowGrowth", "value": "487" }, { "label": "SlowLife", "value": "1481" }, { "label": "slowlytwis", "value": "4910" }, { "label": "SlowRomanc", "value": "144" }, { "label": "Slvery", "value": "4337" }, { "label": "smallblade", "value": "4734" }, { "label": "Smallcardd", "value": "5982" }, { "label": "Smalldogs", "value": "3592" }, { "label": "smallhalft", "value": "5162" }, { "label": "Smallmushr", "value": "2552" }, { "label": "smallninel", "value": "1900" }, { "label": "SmallRibs", "value": "5978" }, { "label": "smallself", "value": "5107" }, { "label": "smalltempl", "value": "3990" }, { "label": "smallten", "value": "4814" }, { "label": "Smart", "value": "3557" }, { "label": "SmartCoupl", "value": "513" }, { "label": "SmartMC", "value": "937" }, { "label": "smartprota", "value": "1215" }, { "label": "SmelltheFo", "value": "3646" }, { "label": "smellylitt", "value": "4931" }, { "label": "smilecool", "value": "4106" }, { "label": "Smokeandra", "value": "6038" }, { "label": "Smokebambo", "value": "2644" }, { "label": "SmokeCloud", "value": "1798" }, { "label": "smokeinthe", "value": "1790" }, { "label": "SMPZ", "value": "5268" }, { "label": "Smut", "value": "975" }, { "label": "snorkeling", "value": "2038" }, { "label": "Snow", "value": "3471" }, { "label": "Snowballfi", "value": "5442" }, { "label": "snowcherry", "value": "4394" }, { "label": "snowfall", "value": "5937" }, { "label": "snowinthec", "value": "4295" }, { "label": "snowmanbef", "value": "4833" }, { "label": "snowmoonco", "value": "5618" }, { "label": "SnowRoy", "value": "4466" }, { "label": "so-and-soa", "value": "4037" }, { "label": "soarupbyda", "value": "4075" }, { "label": "Soccer", "value": "511" }, { "label": "SocialOutc", "value": "755" }, { "label": "softorange", "value": "2750" }, { "label": "softricefl", "value": "3308" }, { "label": "SoftSci-fi", "value": "3425" }, { "label": "Softyander", "value": "3840" }, { "label": "SoIsay", "value": "4043" }, { "label": "soisthewin", "value": "5797" }, { "label": "Soldiers", "value": "455" }, { "label": "Solitary", "value": "4198" }, { "label": "Solitarype", "value": "3243" }, { "label": "Son-in-law", "value": "1461" }, { "label": "Song", "value": "5695" }, { "label": "SongHuangl", "value": "4165" }, { "label": "SongofNort", "value": "5861" }, { "label": "SongoftheG", "value": "2509" }, { "label": "SonInLaw", "value": "2918" }, { "label": "sonnet", "value": "4452" }, { "label": "SonOfAGodP", "value": "1132" }, { "label": "SonofMyria", "value": "3952" }, { "label": "sonoftheqi", "value": "3968" }, { "label": "SonofYuyin", "value": "5883" }, { "label": "sopoor", "value": "2732" }, { "label": "Sora", "value": "4420" }, { "label": "soslack", "value": "4411" }, { "label": "soulanddre", "value": "2424" }, { "label": "SoulCelest", "value": "2415" }, { "label": "SoulChef", "value": "2244" }, { "label": "soulconver", "value": "3589" }, { "label": "soulmemory", "value": "2515" }, { "label": "SoulPower", "value": "404" }, { "label": "Souls", "value": "449" }, { "label": "SoulWorldR", "value": "5654" }, { "label": "SoundMagic", "value": "989" }, { "label": "SourceTaie", "value": "5556" }, { "label": "southfire", "value": "3854" }, { "label": "SouthKefei", "value": "2769" }, { "label": "southmirro", "value": "5013" }, { "label": "Southofthe", "value": "5211" }, { "label": "Southwindo", "value": "5515" }, { "label": "southwindt", "value": "4959" }, { "label": "Space", "value": "917" }, { "label": "space-time", "value": "5694" }, { "label": "Space-time", "value": "3178" }, { "label": "Space-time", "value": "3036" }, { "label": "Space-time", "value": "2986" }, { "label": "SpaceOpera", "value": "807" }, { "label": "Spaceship", "value": "547" }, { "label": "spacetimes", "value": "4508" }, { "label": "SparklingP", "value": "4757" }, { "label": "SpatialMan", "value": "721" }, { "label": "SpearWield", "value": "578" }, { "label": "SpecialAbi", "value": "353" }, { "label": "SpecialAbi", "value": "347" }, { "label": "SpecialAbi", "value": "1558" }, { "label": "SpecialFor", "value": "1327" }, { "label": "SpecialLik", "value": "940" }, { "label": "SpecialLov", "value": "1162" }, { "label": "specialpow", "value": "5051" }, { "label": "specialwar", "value": "2359" }, { "label": "speechless", "value": "2692" }, { "label": "Speechless", "value": "5174" }, { "label": "spendthewo", "value": "2049" }, { "label": "Spies", "value": "251" }, { "label": "Spike", "value": "4304" }, { "label": "SpiritAdvi", "value": "654" }, { "label": "SpiritAnal", "value": "1237" }, { "label": "Spirits", "value": "555" }, { "label": "Spiritstri", "value": "4935" }, { "label": "SpiritualQ", "value": "1307" }, { "label": "SpiritualR", "value": "1219" }, { "label": "SpiritUser", "value": "450" }, { "label": "spoiler", "value": "3588" }, { "label": "spoilevery", "value": "4177" }, { "label": "spookygame", "value": "3570" }, { "label": "sport", "value": "1432" }, { "label": "Sports", "value": "992" }, { "label": "SportsBask", "value": "993" }, { "label": "Sportscomp", "value": "3706" }, { "label": "sportsgeni", "value": "4024" }, { "label": "spring", "value": "4371" }, { "label": "Spywar", "value": "3186" }, { "label": "squirrelth", "value": "5809" }, { "label": "ssangrydra", "value": "4625" }, { "label": "St.LingYi", "value": "4725" }, { "label": "stablefort", "value": "2506" }, { "label": "stallion", "value": "4149" }, { "label": "Stand", "value": "2884" }, { "label": "Stand-alon", "value": "5130" }, { "label": "Star", "value": "1302" }, { "label": "Starcraft", "value": "1120" }, { "label": "stardarkni", "value": "2376" }, { "label": "stareather", "value": "5371" }, { "label": "starfish", "value": "2667" }, { "label": "starlessni", "value": "3533" }, { "label": "starnightf", "value": "4895" }, { "label": "Startabusi", "value": "3325" }, { "label": "startingze", "value": "5859" }, { "label": "startofthe", "value": "2258" }, { "label": "startwriti", "value": "2121" }, { "label": "starwars", "value": "1433" }, { "label": "Stayupalln", "value": "1813" }, { "label": "stayupnigh", "value": "3903" }, { "label": "stealingme", "value": "4867" }, { "label": "Stealtheop", "value": "5116" }, { "label": "steamponk", "value": "3559" }, { "label": "Steampunk", "value": "896" }, { "label": "Stepmother", "value": "1626" }, { "label": "Sterile", "value": "1862" }, { "label": "sterlingsi", "value": "5986" }, { "label": "stevec", "value": "2462" }, { "label": "StewedChic", "value": "2482" }, { "label": "StewedRice", "value": "5272" }, { "label": "stickfilia", "value": "4308" }, { "label": "StinkBeanS", "value": "2343" }, { "label": "Stir-fried", "value": "3911" }, { "label": "Stir-Fried", "value": "5033" }, { "label": "StockholmS", "value": "188" }, { "label": "StoicChara", "value": "729" }, { "label": "Stomachhur", "value": "2493" }, { "label": "stonemored", "value": "2512" }, { "label": "stopatfirs", "value": "2799" }, { "label": "stopfighti", "value": "4507" }, { "label": "stopsleepi", "value": "5765" }, { "label": "StoreOwner", "value": "322" }, { "label": "StormyMoon", "value": "5806" }, { "label": "stormyolds", "value": "4434" }, { "label": "storytelle", "value": "5117" }, { "label": "StraightAs", "value": "3286" }, { "label": "Straightfo", "value": "4470" }, { "label": "straightma", "value": "3203" }, { "label": "straightma", "value": "2893" }, { "label": "Straightme", "value": "2528" }, { "label": "StraightSe", "value": "643" }, { "label": "StraightUk", "value": "438" }, { "label": "stranger", "value": "3211" }, { "label": "Strangerss", "value": "5904" }, { "label": "StrategicB", "value": "150" }, { "label": "Strategist", "value": "451" }, { "label": "Strategy", "value": "3109" }, { "label": "strawshoes", "value": "4381" }, { "label": "Streamer", "value": "911" }, { "label": "streamerbl", "value": "2762" }, { "label": "streamofhe", "value": "3130" }, { "label": "Streamwith", "value": "3241" }, { "label": "Strength-b", "value": "371" }, { "label": "StrideinCh", "value": "4266" }, { "label": "string", "value": "5277" }, { "label": "Strong", "value": "1271" }, { "label": "StrongBack", "value": "1324" }, { "label": "strongbun", "value": "3766" }, { "label": "StrongCoup", "value": "1380" }, { "label": "strongesta", "value": "4255" }, { "label": "StrongestP", "value": "1520" }, { "label": "strongfema", "value": "3102" }, { "label": "strongfema", "value": "5339" }, { "label": "strongfema", "value": "5331" }, { "label": "strongfema", "value": "3062" }, { "label": "strongfema", "value": "3059" }, { "label": "strongfema", "value": "3057" }, { "label": "strongfema", "value": "3043" }, { "label": "strongfema", "value": "3033" }, { "label": "strongfema", "value": "2985" }, { "label": "strongfema", "value": "2958" }, { "label": "strongfema", "value": "2954" }, { "label": "strongfema", "value": "1747" }, { "label": "StrongFema", "value": "861" }, { "label": "StrongFema", "value": "1200" }, { "label": "Strongfrom", "value": "306" }, { "label": "Strongfrom", "value": "873" }, { "label": "StrongLove", "value": "30" }, { "label": "StrongLove", "value": "1224" }, { "label": "StrongMC", "value": "889" }, { "label": "StrongOpFe", "value": "1065" }, { "label": "StrongPowe", "value": "915" }, { "label": "StrongProt", "value": "1212" }, { "label": "strongstre", "value": "3347" }, { "label": "Strongsubo", "value": "862" }, { "label": "StrongSubo", "value": "838" }, { "label": "StrongtoSt", "value": "118" }, { "label": "strongwoma", "value": "4349" }, { "label": "struggle", "value": "3326" }, { "label": "Stubbornan", "value": "5108" }, { "label": "StubbornPr", "value": "565" }, { "label": "Student", "value": "3208" }, { "label": "Student-Te", "value": "365" }, { "label": "StudentUni", "value": "2358" }, { "label": "stupidfox", "value": "2020" }, { "label": "subjugatio", "value": "4402" }, { "label": "submissive", "value": "1760" }, { "label": "substitute", "value": "3567" }, { "label": "successoro", "value": "4454" }, { "label": "Succubus", "value": "681" }, { "label": "suddenlyit", "value": "4517" }, { "label": "SuddenStre", "value": "551" }, { "label": "SuddenWeal", "value": "660" }, { "label": "SuFengqian", "value": "4999" }, { "label": "Sufferingp", "value": "5376" }, { "label": "sugarpoem", "value": "3876" }, { "label": "Sugary", "value": "3374" }, { "label": "SuiandTang", "value": "3392" }, { "label": "suicidalpr", "value": "1774" }, { "label": "Suicides", "value": "775" }, { "label": "summer", "value": "4372" }, { "label": "summerjoke", "value": "4629" }, { "label": "summernow", "value": "2574" }, { "label": "summerrain", "value": "5355" }, { "label": "summerseaf", "value": "4828" }, { "label": "summertree", "value": "1889" }, { "label": "summertrip", "value": "1888" }, { "label": "summon", "value": "803" }, { "label": "SummonedHe", "value": "602" }, { "label": "Summoner", "value": "938" }, { "label": "Summoningf", "value": "3156" }, { "label": "SummoningM", "value": "315" }, { "label": "Summons", "value": "1475" }, { "label": "SuMuQiuxue", "value": "4702" }, { "label": "sundaysun", "value": "1869" }, { "label": "SunflowerF", "value": "4534" }, { "label": "SunnyPiggy", "value": "4782" }, { "label": "sunset", "value": "6048" }, { "label": "sunsetmoon", "value": "3476" }, { "label": "sunsetnear", "value": "3901" }, { "label": "sunsetover", "value": "2755" }, { "label": "SuperA", "value": "3252" }, { "label": "SuperAbili", "value": "5067" }, { "label": "superdarkd", "value": "4006" }, { "label": "Superfire", "value": "2852" }, { "label": "supergodfi", "value": "3753" }, { "label": "SuperGodGr", "value": "2014" }, { "label": "SuperGodNo", "value": "2849" }, { "label": "SuperHeroe", "value": "1130" }, { "label": "Superman", "value": "3011" }, { "label": "Superman7", "value": "6028" }, { "label": "Supernatur", "value": "820" }, { "label": "Supernatur", "value": "2385" }, { "label": "supernice1", "value": "5584" }, { "label": "supernovab", "value": "2731" }, { "label": "SuperPiran", "value": "2273" }, { "label": "Superpower", "value": "360" }, { "label": "Superpower", "value": "1265" }, { "label": "superround", "value": "5281" }, { "label": "SuperSemin", "value": "839" }, { "label": "Superstar", "value": "1147" }, { "label": "SuperTechn", "value": "1243" }, { "label": "supplier", "value": "3602" }, { "label": "Supporting", "value": "5682" }, { "label": "Supporting", "value": "5400" }, { "label": "Supportive", "value": "1524" }, { "label": "supportthe", "value": "4554" }, { "label": "supremekin", "value": "5698" }, { "label": "SupremeStr", "value": "3640" }, { "label": "sure", "value": "5243" }, { "label": "SurfProsec", "value": "5251" }, { "label": "Survival", "value": "100" }, { "label": "Survivalch", "value": "3344" }, { "label": "SurvivalGa", "value": "514" }, { "label": "SuShaoqing", "value": "1892" }, { "label": "SushiKingB", "value": "4745" }, { "label": "Suspense", "value": "1213" }, { "label": "Suspensefl", "value": "3363" }, { "label": "Suspensefu", "value": "3345" }, { "label": "SuWei", "value": "2383" }, { "label": "SuYechen", "value": "1878" }, { "label": "SuYuyu", "value": "4229" }, { "label": "SuZiyouyou", "value": "2252" }, { "label": "SuzuharaYu", "value": "5383" }, { "label": "SwallowedS", "value": "1339" }, { "label": "swearnotto", "value": "2670" }, { "label": "Sweet", "value": "1158" }, { "label": "sweetandco", "value": "5681" }, { "label": "Sweetandso", "value": "2261" }, { "label": "sweetheart", "value": "5688" }, { "label": "sweetjelly", "value": "1836" }, { "label": "Sweetlove", "value": "5086" }, { "label": "sweetpet", "value": "3105" }, { "label": "sweetroman", "value": "1488" }, { "label": "SweetSoyMi", "value": "5591" }, { "label": "SweetText", "value": "929" }, { "label": "sweetwife", "value": "3563" }, { "label": "SweetYaoi", "value": "948" }, { "label": "Swimmingfi", "value": "2686" }, { "label": "SwingingDe", "value": "2733" }, { "label": "SwordAndMa", "value": "288" }, { "label": "SwordArtOn", "value": "1320" }, { "label": "Swordblood", "value": "1852" }, { "label": "Swordgod", "value": "2579" }, { "label": "SwordImmor", "value": "1898" }, { "label": "swordrepai", "value": "3280" }, { "label": "swordrepai", "value": "2617" }, { "label": "Swordsheep", "value": "5464" }, { "label": "Swordsman", "value": "793" }, { "label": "SwordWield", "value": "325" }, { "label": "Sword丨Lea", "value": "2229" }, { "label": "SxFriends", "value": "1581" }, { "label": "SxualAbuse", "value": "116" }, { "label": "Sysetm", "value": "1501" }, { "label": "system", "value": "1409" }, { "label": "System", "value": "119" }, { "label": "SystemAdmi", "value": "31" }, { "label": "SystemAdmi", "value": "865" }, { "label": "systemflow", "value": "3040" }, { "label": "systemflow", "value": "3023" }, { "label": "systemflow", "value": "3015" }, { "label": "systemflow", "value": "2983" }, { "label": "systemflow", "value": "2979" }, { "label": "SystemFlow", "value": "1644" }, { "label": "systemmale", "value": "3734" }, { "label": "SystemNo.3", "value": "2281" }, { "label": "systemowne", "value": "1240" }, { "label": "SystemTran", "value": "1468" }, { "label": "SystemTran", "value": "1330" }, { "label": "TableTenni", "value": "518" }, { "label": "TachibanaM", "value": "5934" }, { "label": "TaibaiJun1", "value": "5417" }, { "label": "TaihoZwei", "value": "4676" }, { "label": "Tailsman", "value": "1713" }, { "label": "Takeaplane", "value": "2455" }, { "label": "takehome", "value": "3434" }, { "label": "takeoffboy", "value": "2633" }, { "label": "takeoverth", "value": "2421" }, { "label": "takestock", "value": "2172" }, { "label": "Talent", "value": "586" }, { "label": "Talentedgi", "value": "3398" }, { "label": "Talents", "value": "1314" }, { "label": "TalentShow", "value": "1521" }, { "label": "Talismans", "value": "1175" }, { "label": "talkingtig", "value": "5562" }, { "label": "tallpoorha", "value": "4789" }, { "label": "TangDynast", "value": "3107" }, { "label": "TangDynast", "value": "2941" }, { "label": "TangerineT", "value": "4391" }, { "label": "TangJichen", "value": "1855" }, { "label": "TangShaoqi", "value": "2220" }, { "label": "TangThirty", "value": "2843" }, { "label": "Taoist", "value": "1472" }, { "label": "Taoistprie", "value": "3113" }, { "label": "Tasker", "value": "1628" }, { "label": "TataTam", "value": "4896" }, { "label": "TaurenIron", "value": "1929" }, { "label": "TaurenWarr", "value": "5985" }, { "label": "Taurus", "value": "3905" }, { "label": "TCOCChrysa", "value": "5807" }, { "label": "Teacher", "value": "664" }, { "label": "teacher-st", "value": "3731" }, { "label": "TeacherDap", "value": "5905" }, { "label": "TeacherDis", "value": "1348" }, { "label": "TeacherHua", "value": "5866" }, { "label": "teachermal", "value": "5052" }, { "label": "TeacherMC", "value": "1349" }, { "label": "Teachers", "value": "252" }, { "label": "tealcan&am", "value": "5372" }, { "label": "team", "value": "1351" }, { "label": "Teamwork", "value": "101" }, { "label": "Technologi", "value": "488" }, { "label": "technology", "value": "3288" }, { "label": "Technology", "value": "1121" }, { "label": "Technology", "value": "961" }, { "label": "Technology", "value": "3348" }, { "label": "Technology", "value": "1967" }, { "label": "Technology", "value": "847" }, { "label": "TeckTyrann", "value": "2107" }, { "label": "Teemotofly", "value": "2442" }, { "label": "TeenageXia", "value": "2784" }, { "label": "TempleThir", "value": "1949" }, { "label": "ten-cutmad", "value": "4108" }, { "label": "TenCommand", "value": "2164" }, { "label": "Tenconsecu", "value": "3943" }, { "label": "Tennis", "value": "519" }, { "label": "tenrabbits", "value": "3878" }, { "label": "Tensura", "value": "1594" }, { "label": "tentaclemu", "value": "5249" }, { "label": "Tentacles", "value": "1020" }, { "label": "Tenthousan", "value": "1939" }, { "label": "TenThousan", "value": "2620" }, { "label": "TenYearsof", "value": "3921" }, { "label": "TerminalIl", "value": "658" }, { "label": "Terracenea", "value": "3342" }, { "label": "TerritoryC", "value": "1329" }, { "label": "TerritoryM", "value": "1725" }, { "label": "Terrori", "value": "5068" }, { "label": "Terrorists", "value": "767" }, { "label": "ThaiNovel", "value": "1683" }, { "label": "Thanksgivi", "value": "5011" }, { "label": "Thankyou", "value": "4115" }, { "label": "Thankyoufo", "value": "2563" }, { "label": "ThatMing", "value": "5944" }, { "label": "TheAdventu", "value": "4433" }, { "label": "Theancesto", "value": "2259" }, { "label": "Theashesar", "value": "2419" }, { "label": "TheAsteris", "value": "1672" }, { "label": "TheBeginni", "value": "5574" }, { "label": "Thebestbra", "value": "3514" }, { "label": "Thebigdevi", "value": "2024" }, { "label": "Thebiggest", "value": "2016" }, { "label": "Thebloodco", "value": "5492" }, { "label": "Thebluesta", "value": "4592" }, { "label": "Thebrillia", "value": "4403" }, { "label": "Thecatisgo", "value": "2475" }, { "label": "Thecatwhos", "value": "6093" }, { "label": "TheChaosOr", "value": "5636" }, { "label": "TheDailyLi", "value": "4530" }, { "label": "thedayisco", "value": "3580" }, { "label": "TheDevil", "value": "5075" }, { "label": "theendofth", "value": "5430" }, { "label": "TheEndofWo", "value": "3975" }, { "label": "theevening", "value": "3469" }, { "label": "theevernon", "value": "1426" }, { "label": "Thefirstli", "value": "3898" }, { "label": "thefishint", "value": "4445" }, { "label": "Thefishkin", "value": "5920" }, { "label": "Thefishmar", "value": "2871" }, { "label": "Thefiveele", "value": "5226" }, { "label": "Theflowero", "value": "1808" }, { "label": "TheFourthC", "value": "3210" }, { "label": "TheGamer", "value": "1668" }, { "label": "Theghostre", "value": "5539" }, { "label": "Thegloryof", "value": "3467" }, { "label": "Thegloryof", "value": "2671" }, { "label": "TheGodfath", "value": "2161" }, { "label": "thegodofde", "value": "1977" }, { "label": "Thegodoffa", "value": "3625" }, { "label": "TheGospelo", "value": "1854" }, { "label": "TheGreatDe", "value": "3828" }, { "label": "theInterne", "value": "3287" }, { "label": "Theirstory", "value": "4882" }, { "label": "Thejourney", "value": "6104" }, { "label": "thejudge", "value": "4102" }, { "label": "Thekingask", "value": "5488" }, { "label": "Thelastday", "value": "3741" }, { "label": "Thelightof", "value": "1920" }, { "label": "Thelistdep", "value": "2747" }, { "label": "Thelistisi", "value": "2375" }, { "label": "TheLonelyM", "value": "4285" }, { "label": "Thelong-te", "value": "4181" }, { "label": "TheMainCha", "value": "5074" }, { "label": "TheManInTh", "value": "1225" }, { "label": "Themorning", "value": "4829" }, { "label": "Themysteri", "value": "3584" }, { "label": "Thenewbact", "value": "2062" }, { "label": "Theoceando", "value": "2115" }, { "label": "Theoldboyw", "value": "5735" }, { "label": "Theoldfive", "value": "2350" }, { "label": "Theoldmani", "value": "3856" }, { "label": "theothersh", "value": "4082" }, { "label": "Theplayofg", "value": "5832" }, { "label": "Thepowerof", "value": "2537" }, { "label": "Theprideof", "value": "6132" }, { "label": "Theprovinc", "value": "6092" }, { "label": "Thequeenis", "value": "2300" }, { "label": "Therainisf", "value": "6077" }, { "label": "TherealMr.", "value": "3998" }, { "label": "therearefi", "value": "2143" }, { "label": "Therearewh", "value": "5575" }, { "label": "Thereisabu", "value": "6003" }, { "label": "Thereisana", "value": "5196" }, { "label": "Thereisfir", "value": "3500" }, { "label": "ThereisnoN", "value": "3543" }, { "label": "Thereisnos", "value": "5246" }, { "label": "Therunaway", "value": "4971" }, { "label": "thescienti", "value": "3213" }, { "label": "Theseahasn", "value": "3486" }, { "label": "theseventh", "value": "3473" }, { "label": "Thestronga", "value": "5076" }, { "label": "Thestronge", "value": "2105" }, { "label": "Thesunsett", "value": "1807" }, { "label": "Theswordsw", "value": "5869" }, { "label": "Thetasteof", "value": "4917" }, { "label": "TheThreeKi", "value": "1872" }, { "label": "Thetopofth", "value": "2841" }, { "label": "Thetruegod", "value": "2303" }, { "label": "Thetwothor", "value": "4851" }, { "label": "Thevoiceof", "value": "4824" }, { "label": "Thewayofth", "value": "2758" }, { "label": "thewholewo", "value": "6021" }, { "label": "Thewindblo", "value": "6039" }, { "label": "thewindisb", "value": "2075" }, { "label": "TheWizardS", "value": "5752" }, { "label": "Theworld&a", "value": "2205" }, { "label": "Theworldis", "value": "4548" }, { "label": "Theworldis", "value": "3520" }, { "label": "Theworldof", "value": "4602" }, { "label": "theworldwi", "value": "5838" }, { "label": "Thief", "value": "3630" }, { "label": "Thieves", "value": "420" }, { "label": "thinkcaref", "value": "4136" }, { "label": "Thinkingof", "value": "2186" }, { "label": "thirteen", "value": "4405" }, { "label": "thirteenth", "value": "5871" }, { "label": "Thirty-two", "value": "2323" }, { "label": "Thirtycatt", "value": "5142" }, { "label": "Thisconten", "value": "3982" }, { "label": "thisisatru", "value": "4845" }, { "label": "Thisissure", "value": "2768" }, { "label": "Thismanisn", "value": "4759" }, { "label": "Thiswaterm", "value": "5955" }, { "label": "thisyear", "value": "2034" }, { "label": "Thosewhowa", "value": "5210" }, { "label": "ThousandMo", "value": "4899" }, { "label": "ThousandSh", "value": "4621" }, { "label": "thousandso", "value": "5163" }, { "label": "Thousandso", "value": "2498" }, { "label": "ThousandTe", "value": "2399" }, { "label": "thousandti", "value": "4700" }, { "label": "Three-flav", "value": "1912" }, { "label": "threeandfo", "value": "3679" }, { "label": "threeclear", "value": "4567" }, { "label": "Threedaysa", "value": "1856" }, { "label": "threedaysf", "value": "3786" }, { "label": "threedayst", "value": "4776" }, { "label": "ThreeDotIn", "value": "2712" }, { "label": "Threehundr", "value": "5717" }, { "label": "ThreeKingd", "value": "1356" }, { "label": "ThreeKingd", "value": "5693" }, { "label": "ThreeKingd", "value": "2935" }, { "label": "threelittl", "value": "2198" }, { "label": "ThreeLives", "value": "2503" }, { "label": "ThreeLives", "value": "2072" }, { "label": "Threepiece", "value": "5995" }, { "label": "Threerelig", "value": "3360" }, { "label": "Threesome", "value": "1042" }, { "label": "threestick", "value": "4092" }, { "label": "threeteeth", "value": "2381" }, { "label": "threethous", "value": "5151" }, { "label": "ThreeThous", "value": "5419" }, { "label": "threethree", "value": "3885" }, { "label": "ThreeTower", "value": "5239" }, { "label": "Threeways", "value": "4107" }, { "label": "Threeyolks", "value": "6044" }, { "label": "ThreshingG", "value": "1950" }, { "label": "Thriller", "value": "476" }, { "label": "Throughthe", "value": "4080" }, { "label": "ThugLuFeng", "value": "3691" }, { "label": "thunderand", "value": "5289" }, { "label": "Thunderous", "value": "1981" }, { "label": "Tianbang78", "value": "1785" }, { "label": "Tianbangbi", "value": "5197" }, { "label": "TianbangCh", "value": "6087" }, { "label": "TianbangDi", "value": "3371" }, { "label": "TianbangFa", "value": "4041" }, { "label": "Tianbanggr", "value": "2741" }, { "label": "TianbangHu", "value": "2603" }, { "label": "Tianbangol", "value": "2222" }, { "label": "TianbangOt", "value": "6051" }, { "label": "Tianbangth", "value": "2148" }, { "label": "TianbangTo", "value": "4004" }, { "label": "TianbangYa", "value": "2311" }, { "label": "TianjiCour", "value": "4067" }, { "label": "TianNaixin", "value": "5504" }, { "label": "TianrenCit", "value": "4040" }, { "label": "Tianshi", "value": "3709" }, { "label": "Tianshitak", "value": "2338" }, { "label": "TianTingwe", "value": "3383" }, { "label": "Tiantong", "value": "4054" }, { "label": "TianyanShe", "value": "3507" }, { "label": "TianYiding", "value": "2306" }, { "label": "TianYixian", "value": "5010" }, { "label": "tigerqueen", "value": "5769" }, { "label": "tigerroar", "value": "5225" }, { "label": "TigerSkinM", "value": "3991" }, { "label": "Tigerteeth", "value": "2520" }, { "label": "tigertiger", "value": "4451" }, { "label": "Tiggerlove", "value": "4991" }, { "label": "Time-Trave", "value": "1940" }, { "label": "TimeandSpa", "value": "1499" }, { "label": "TimeandSpa", "value": "897" }, { "label": "timegate", "value": "3336" }, { "label": "Timeissile", "value": "5987" }, { "label": "TimeKingJO", "value": "2560" }, { "label": "Timelimit", "value": "3834" }, { "label": "TimeLoop", "value": "702" }, { "label": "TimeManipu", "value": "672" }, { "label": "TimeParado", "value": "777" }, { "label": "TimeSkip", "value": "410" }, { "label": "TimeTravel", "value": "199" }, { "label": "TimidProta", "value": "463" }, { "label": "TingFengZh", "value": "1884" }, { "label": "Titans", "value": "753" }, { "label": "toast", "value": "4801" }, { "label": "tobacco", "value": "2187" }, { "label": "Today&0", "value": "2699" }, { "label": "Toilet", "value": "2716" }, { "label": "toiletlepr", "value": "3794" }, { "label": "Tokyo", "value": "1446" }, { "label": "TokyoGhoul", "value": "1739" }, { "label": "tomatofish", "value": "4388" }, { "label": "TomatoUme", "value": "5499" }, { "label": "TomboyishF", "value": "466" }, { "label": "TombRaider", "value": "3978" }, { "label": "TombRaider", "value": "2444" }, { "label": "TombRaider", "value": "2433" }, { "label": "TombRaider", "value": "2344" }, { "label": "TombRaider", "value": "2213" }, { "label": "tomorrowwh", "value": "4492" }, { "label": "tomorrowwi", "value": "1896" }, { "label": "ToneMasaya", "value": "2012" }, { "label": "Tongsheng", "value": "4926" }, { "label": "Tongzi", "value": "4491" }, { "label": "tonightrai", "value": "5567" }, { "label": "Tooold", "value": "6060" }, { "label": "toothinpig", "value": "4485" }, { "label": "TopMC", "value": "1655" }, { "label": "TopoftheCl", "value": "2740" }, { "label": "TopoftheCl", "value": "2103" }, { "label": "TopoftheCl", "value": "2023" }, { "label": "TopoftheFo", "value": "2420" }, { "label": "Topstream", "value": "3260" }, { "label": "Toriko", "value": "1336" }, { "label": "Tornadodes", "value": "6057" }, { "label": "Torture", "value": "728" }, { "label": "touchyou", "value": "4048" }, { "label": "Toughgirl", "value": "3142" }, { "label": "towashthed", "value": "2662" }, { "label": "TowerDefen", "value": "1177" }, { "label": "trackandfi", "value": "3610" }, { "label": "Trade", "value": "863" }, { "label": "TradeWar", "value": "3100" }, { "label": "Tragedy", "value": "887" }, { "label": "TragicPast", "value": "140" }, { "label": "Tramsmigra", "value": "1601" }, { "label": "Tranformer", "value": "852" }, { "label": "Transforma", "value": "5686" }, { "label": "Transforma", "value": "109" }, { "label": "Transforme", "value": "4123" }, { "label": "transmigat", "value": "1436" }, { "label": "transmigra", "value": "1420" }, { "label": "Transmigra", "value": "32" }, { "label": "Transmigra", "value": "1512" }, { "label": "Transmigra", "value": "1098" }, { "label": "Transmigra", "value": "1209" }, { "label": "Transmigra", "value": "1119" }, { "label": "Transmigra", "value": "1112" }, { "label": "Transmigra", "value": "1048" }, { "label": "Transmigra", "value": "968" }, { "label": "Transplant", "value": "525" }, { "label": "Transporte", "value": "790" }, { "label": "Transporte", "value": "554" }, { "label": "Transporte", "value": "464" }, { "label": "Transporte", "value": "372" }, { "label": "TransportI", "value": "1299" }, { "label": "Transportt", "value": "1231" }, { "label": "Trap", "value": "348" }, { "label": "travel", "value": "4353" }, { "label": "Traveling", "value": "1571" }, { "label": "Travelinga", "value": "6115" }, { "label": "TravelingT", "value": "1075" }, { "label": "traveller", "value": "1625" }, { "label": "Travelthro", "value": "6134" }, { "label": "Traverse", "value": "901" }, { "label": "TreasureCh", "value": "3635" }, { "label": "TreasureHu", "value": "1238" }, { "label": "TreasureHu", "value": "964" }, { "label": "TreasureHu", "value": "942" }, { "label": "treefool", "value": "3823" }, { "label": "treeofenli", "value": "2809" }, { "label": "TribalSoci", "value": "465" }, { "label": "trickery", "value": "3157" }, { "label": "trickery1V", "value": "3075" }, { "label": "trickeryin", "value": "2970" }, { "label": "trickerySl", "value": "5335" }, { "label": "Trickster", "value": "452" }, { "label": "Trnasmigra", "value": "1552" }, { "label": "Troubledti", "value": "3092" }, { "label": "Troubledti", "value": "3054" }, { "label": "Troubledti", "value": "3052" }, { "label": "TroubledTi", "value": "5349" }, { "label": "TroubledWo", "value": "2534" }, { "label": "Trueandfal", "value": "3189" }, { "label": "TrueorFake", "value": "2915" }, { "label": "TrumanLive", "value": "2452" }, { "label": "TS", "value": "4334" }, { "label": "TsingYiLao", "value": "5264" }, { "label": "TsukibaAki", "value": "2138" }, { "label": "Tsundere", "value": "349" }, { "label": "TsundereLo", "value": "1723" }, { "label": "Tsunderesc", "value": "2464" }, { "label": "Tsuru", "value": "801" }, { "label": "tumbler", "value": "3534" }, { "label": "Turnonairc", "value": "5943" }, { "label": "Turnthecir", "value": "5561" }, { "label": "Turtle", "value": "3937" }, { "label": "turtlelike", "value": "4750" }, { "label": "Tutuwantst", "value": "4392" }, { "label": "tv", "value": "1431" }, { "label": "twelvemove", "value": "3852" }, { "label": "TwentyFame", "value": "2380" }, { "label": "twilight", "value": "1964" }, { "label": "twilightdr", "value": "2775" }, { "label": "Twilightis", "value": "1850" }, { "label": "twilightmy", "value": "4011" }, { "label": "Twinbabies", "value": "1176" }, { "label": "twingods", "value": "2764" }, { "label": "Twins", "value": "196" }, { "label": "Twistbroth", "value": "2645" }, { "label": "TwistedChe", "value": "5385" }, { "label": "TwistedPer", "value": "499" }, { "label": "two", "value": "3678" }, { "label": "Two-dimens", "value": "6138" }, { "label": "Two-dimens", "value": "4116" }, { "label": "Two-dimens", "value": "2612" }, { "label": "Two-dimens", "value": "2427" }, { "label": "Two-dimens", "value": "2373" }, { "label": "two-waycru", "value": "3115" }, { "label": "two-wayred", "value": "3321" }, { "label": "TwoChildre", "value": "3488" }, { "label": "Twodimensi", "value": "6144" }, { "label": "Twohorsesa", "value": "6010" }, { "label": "TwoJinSuia", "value": "5704" }, { "label": "Twopeopleb", "value": "2714" }, { "label": "Twopoundso", "value": "2673" }, { "label": "Twotwothre", "value": "3536" }, { "label": "twotwoyell", "value": "4648" }, { "label": "TypeMoon", "value": "1595" }, { "label": "Tyrant", "value": "1762" }, { "label": "Uchihaswor", "value": "5578" }, { "label": "Ugly", "value": "3448" }, { "label": "Uglyface", "value": "6040" }, { "label": "UglyProtag", "value": "739" }, { "label": "UglytoBeau", "value": "483" }, { "label": "Ultimatein", "value": "4760" }, { "label": "UltramanJu", "value": "5658" }, { "label": "UltramanPo", "value": "1935" }, { "label": "unbearable", "value": "2048" }, { "label": "Uncertainw", "value": "5669" }, { "label": "Uncle", "value": "3593" }, { "label": "UncleArche", "value": "5386" }, { "label": "UncleLiter", "value": "4435" }, { "label": "UncleLiuHu", "value": "5544" }, { "label": "UncleMario", "value": "4296" }, { "label": "unclemerea", "value": "5404" }, { "label": "Unconditio", "value": "141" }, { "label": "Undead", "value": "4345" }, { "label": "undeadfish", "value": "2124" }, { "label": "Undead丨Kn", "value": "2214" }, { "label": "Undefeated", "value": "2850" }, { "label": "Undercover", "value": "3328" }, { "label": "Underestim", "value": "580" }, { "label": "underlolic", "value": "2702" }, { "label": "undersilve", "value": "2431" }, { "label": "understate", "value": "2833" }, { "label": "understood", "value": "4843" }, { "label": "underthera", "value": "3537" }, { "label": "underthesn", "value": "4616" }, { "label": "underthest", "value": "3743" }, { "label": "UnderYeYuc", "value": "5360" }, { "label": "Undocument", "value": "1801" }, { "label": "unexpected", "value": "1395" }, { "label": "Unexpected", "value": "4574" }, { "label": "unfinished", "value": "5381" }, { "label": "Unintentio", "value": "2824" }, { "label": "Unique", "value": "3845" }, { "label": "UniqueCult", "value": "323" }, { "label": "UniqueWeap", "value": "735" }, { "label": "UniqueWeap", "value": "751" }, { "label": "Universale", "value": "4293" }, { "label": "unknown", "value": "2517" }, { "label": "UnknownTao", "value": "2422" }, { "label": "Unknowntea", "value": "1833" }, { "label": "Unlimitedc", "value": "2844" }, { "label": "UnlimitedF", "value": "1530" }, { "label": "Unlimiteds", "value": "3955" }, { "label": "unlucky", "value": "4119" }, { "label": "UnluckyPro", "value": "432" }, { "label": "Unprincipl", "value": "5078" }, { "label": "Unreliable", "value": "456" }, { "label": "Unremarkab", "value": "5948" }, { "label": "Unrequited", "value": "561" }, { "label": "UnrulyConf", "value": "3472" }, { "label": "unyielding", "value": "4098" }, { "label": "Updatewith", "value": "3951" }, { "label": "upgrade", "value": "3132" }, { "label": "upgradeflo", "value": "3204" }, { "label": "Upsetting", "value": "2184" }, { "label": "Urban", "value": "350" }, { "label": "UrbanDatan", "value": "1874" }, { "label": "urbanimmor", "value": "3601" }, { "label": "UrbanLife", "value": "893" }, { "label": "UrbanMilit", "value": "2505" }, { "label": "urbanshark", "value": "2256" }, { "label": "urbanstar", "value": "2210" }, { "label": "Urbanyearn", "value": "2846" }, { "label": "urbanyoung", "value": "5907" }, { "label": "Urbanyouth", "value": "1727" }, { "label": "vampire", "value": "1419" }, { "label": "Vampire", "value": "995" }, { "label": "vampiredri", "value": "2504" }, { "label": "Vampires", "value": "16" }, { "label": "Vanves", "value": "3232" }, { "label": "Variety", "value": "3274" }, { "label": "VarietySho", "value": "1645" }, { "label": "VenerableP", "value": "4210" }, { "label": "VenusSoul", "value": "4039" }, { "label": "VersatileM", "value": "1222" }, { "label": "veryhappy", "value": "3989" }, { "label": "veryobsess", "value": "5402" }, { "label": "verypurean", "value": "4957" }, { "label": "verysleepy", "value": "3933" }, { "label": "Vest", "value": "1504" }, { "label": "Vicissitud", "value": "5230" }, { "label": "Victoria", "value": "5819" }, { "label": "VictorianE", "value": "924" }, { "label": "Videogame", "value": "5080" }, { "label": "videogames", "value": "4339" }, { "label": "videostrea", "value": "3362" }, { "label": "Vientiane", "value": "4183" }, { "label": "Viewofthec", "value": "1973" }, { "label": "VikaBaka", "value": "3381" }, { "label": "villageisv", "value": "3935" }, { "label": "VillagerB", "value": "5031" }, { "label": "Villain", "value": "538" }, { "label": "Villainess", "value": "698" }, { "label": "Villainess", "value": "1618" }, { "label": "VillainEvi", "value": "1323" }, { "label": "VillainPro", "value": "1637" }, { "label": "Villains", "value": "1548" }, { "label": "VillIain", "value": "1502" }, { "label": "VinegarKin", "value": "3195" }, { "label": "Violence", "value": "4338" }, { "label": "violentthu", "value": "5980" }, { "label": "VirtualRea", "value": "93" }, { "label": "Vlogging", "value": "912" }, { "label": "Vodkaandmi", "value": "4826" }, { "label": "Voice", "value": "3224" }, { "label": "VoiceActor", "value": "549" }, { "label": "VoicePack", "value": "1319" }, { "label": "VoidLinnos", "value": "5463" }, { "label": "VoidStupid", "value": "4623" }, { "label": "Wakeup", "value": "5764" }, { "label": "Walkinthec", "value": "2297" }, { "label": "walkonthee", "value": "4658" }, { "label": "Wanderer", "value": "2088" }, { "label": "wanderings", "value": "1963" }, { "label": "WangDachen", "value": "4513" }, { "label": "WangEr", "value": "2459" }, { "label": "WangHuoyub", "value": "5908" }, { "label": "WangJiu", "value": "1845" }, { "label": "WangLin", "value": "3504" }, { "label": "WangXiaomi", "value": "2353" }, { "label": "WanliWanhu", "value": "3779" }, { "label": "Wannianfen", "value": "5475" }, { "label": "WanTsang", "value": "5270" }, { "label": "wanttocome", "value": "2859" }, { "label": "wanttoeatg", "value": "2501" }, { "label": "Wanttoeatt", "value": "4952" }, { "label": "wanttohold", "value": "5540" }, { "label": "wanttolive", "value": "4520" }, { "label": "war", "value": "1408" }, { "label": "War", "value": "848" }, { "label": "warboss", "value": "3904" }, { "label": "Warcraft", "value": "4360" }, { "label": "Warhammer4", "value": "796" }, { "label": "Warlock", "value": "3418" }, { "label": "Warlocks", "value": "792" }, { "label": "Warm", "value": "3216" }, { "label": "warmalittl", "value": "4722" }, { "label": "warmaster", "value": "4251" }, { "label": "Warmman", "value": "3447" }, { "label": "warmmilkte", "value": "4472" }, { "label": "warmtime", "value": "2606" }, { "label": "WarofCivil", "value": "2906" }, { "label": "WarRecords", "value": "1187" }, { "label": "warrior", "value": "3293" }, { "label": "Wars", "value": "151" }, { "label": "Warship", "value": "1572" }, { "label": "WarsWeakto", "value": "696" }, { "label": "wastebaske", "value": "4247" }, { "label": "wastedream", "value": "4020" }, { "label": "wastefish", "value": "2453" }, { "label": "Wasteland", "value": "898" }, { "label": "WasteWoodA", "value": "2167" }, { "label": "Wastewoodf", "value": "3442" }, { "label": "Wastewoodn", "value": "5594" }, { "label": "watchtoget", "value": "3926" }, { "label": "waterdropr", "value": "4502" }, { "label": "WaterMargi", "value": "3355" }, { "label": "watermelon", "value": "5007" }, { "label": "watermelon", "value": "4721" }, { "label": "watermelon", "value": "2169" }, { "label": "watermolec", "value": "3515" }, { "label": "watertenta", "value": "5967" }, { "label": "watertown", "value": "2585" }, { "label": "waxypen", "value": "3485" }, { "label": "weaklyacid", "value": "4614" }, { "label": "WeakProtag", "value": "477" }, { "label": "WeaktoClan", "value": "1325" }, { "label": "WeaktoStro", "value": "17" }, { "label": "WeaktoStro", "value": "5097" }, { "label": "Wealth", "value": "1536" }, { "label": "WealthChar", "value": "1602" }, { "label": "wealthy", "value": "4467" }, { "label": "WealthyCha", "value": "7" }, { "label": "WealthyCha", "value": "1573" }, { "label": "wealthyfam", "value": "5046" }, { "label": "Wearabook", "value": "1612" }, { "label": "wearback", "value": "3147" }, { "label": "WearBook", "value": "1154" }, { "label": "wearbooksy", "value": "5333" }, { "label": "wearingabo", "value": "1718" }, { "label": "weatapeach", "value": "5369" }, { "label": "WebNovel", "value": "1673" }, { "label": "WebnovelSp", "value": "1043" }, { "label": "WeektoStro", "value": "1002" }, { "label": "Weirdstori", "value": "6135" }, { "label": "WeiyangXun", "value": "3826" }, { "label": "WenGuang", "value": "2541" }, { "label": "WenrenJing", "value": "4880" }, { "label": "WenXuanyu", "value": "2546" }, { "label": "WenYue", "value": "4242" }, { "label": "Werebeasts", "value": "765" }, { "label": "Werewolf", "value": "5061" }, { "label": "Werewolves", "value": "1148" }, { "label": "WesternFan", "value": "1387" }, { "label": "Westernrai", "value": "2119" }, { "label": "WestwardJo", "value": "3382" }, { "label": "what&03", "value": "5181" }, { "label": "What&03", "value": "4430" }, { "label": "What&03", "value": "2028" }, { "label": "Whatareyou", "value": "5926" }, { "label": "whatisyour", "value": "5773" }, { "label": "Whattodoif", "value": "5835" }, { "label": "Whattodowi", "value": "5157" }, { "label": "Whenthedev", "value": "4294" }, { "label": "WhentheJun", "value": "4707" }, { "label": "WhenyourNP", "value": "4748" }, { "label": "White", "value": "3453" }, { "label": "WhiteBunSe", "value": "1260" }, { "label": "Whitecolla", "value": "3748" }, { "label": "whiteconfe", "value": "4501" }, { "label": "WhiteDevil", "value": "5266" }, { "label": "whitefiref", "value": "4701" }, { "label": "whitefox", "value": "5300" }, { "label": "whitefoxfr", "value": "3662" }, { "label": "whitegown", "value": "4778" }, { "label": "Whitehorse", "value": "2349" }, { "label": "whitekeybo", "value": "2249" }, { "label": "whitelate", "value": "5002" }, { "label": "whitelotus", "value": "3749" }, { "label": "Whitemoonl", "value": "3343" }, { "label": "whiterice", "value": "4904" }, { "label": "whiteshirt", "value": "2798" }, { "label": "Whitesnake", "value": "3573" }, { "label": "Whitesparr", "value": "5925" }, { "label": "Wholesome", "value": "3839" }, { "label": "Whoringmak", "value": "2713" }, { "label": "wife-chasi", "value": "3895" }, { "label": "WifeistheD", "value": "2583" }, { "label": "wildcatsus", "value": "5140" }, { "label": "wildcrumbs", "value": "5263" }, { "label": "Wilde", "value": "4777" }, { "label": "wilderness", "value": "6089" }, { "label": "Wilderness", "value": "884" }, { "label": "wildlove", "value": "5884" }, { "label": "wildradish", "value": "5953" }, { "label": "Will-o&", "value": "5550" }, { "label": "willowcand", "value": "2447" }, { "label": "Willowleav", "value": "3465" }, { "label": "windandclo", "value": "3723" }, { "label": "windandfor", "value": "5459" }, { "label": "windandmap", "value": "2616" }, { "label": "WindandSno", "value": "4728" }, { "label": "Windandwea", "value": "4632" }, { "label": "windandwhe", "value": "3930" }, { "label": "windchime~", "value": "4176" }, { "label": "winddance", "value": "4783" }, { "label": "WindMeteor", "value": "4830" }, { "label": "WindSpirit", "value": "1932" }, { "label": "windstopsn", "value": "5801" }, { "label": "windtobebu", "value": "3824" }, { "label": "windup", "value": "5110" }, { "label": "WindWhispe", "value": "5642" }, { "label": "windy", "value": "5751" }, { "label": "windyblack", "value": "6012" }, { "label": "wingedgras", "value": "5293" }, { "label": "Winningthe", "value": "2294" }, { "label": "winter", "value": "4150" }, { "label": "WinterandS", "value": "4744" }, { "label": "winterbird", "value": "5876" }, { "label": "Winterfall", "value": "4547" }, { "label": "wipeandpic", "value": "4911" }, { "label": "Wisdom", "value": "3108" }, { "label": "wishardtow", "value": "1819" }, { "label": "Wishes", "value": "562" }, { "label": "Witch", "value": "3750" }, { "label": "Witches", "value": "647" }, { "label": "witchfan", "value": "2139" }, { "label": "witheredpr", "value": "2413" }, { "label": "witheredsh", "value": "5169" }, { "label": "WithShehbu", "value": "3521" }, { "label": "wittylittl", "value": "4939" }, { "label": "Wizard", "value": "902" }, { "label": "Wizards", "value": "316" }, { "label": "wizardstre", "value": "3301" }, { "label": "WolfTotem", "value": "6058" }, { "label": "women&0", "value": "6148" }, { "label": "WongTingLi", "value": "3983" }, { "label": "woodbig", "value": "4091" }, { "label": "Woodbrothe", "value": "3916" }, { "label": "woodenswor", "value": "5599" }, { "label": "Working", "value": "5126" }, { "label": "Workplace", "value": "3271" }, { "label": "workplaceb", "value": "3571" }, { "label": "world", "value": "5974" }, { "label": "World-hopp", "value": "867" }, { "label": "WorldEmpir", "value": "1337" }, { "label": "WorldHopin", "value": "945" }, { "label": "WorldHoppi", "value": "33" }, { "label": "worldofphi", "value": "4737" }, { "label": "WorldofWar", "value": "1703" }, { "label": "Worlds", "value": "5063" }, { "label": "WorldTrave", "value": "332" }, { "label": "WorldTree", "value": "679" }, { "label": "WorldWar2", "value": "1495" }, { "label": "WOW", "value": "2894" }, { "label": "Writeabook", "value": "5141" }, { "label": "writebighe", "value": "4977" }, { "label": "writebookq", "value": "5718" }, { "label": "WriteBooks", "value": "4820" }, { "label": "writeonlyz", "value": "1837" }, { "label": "Writer", "value": "872" }, { "label": "Writers", "value": "406" }, { "label": "WriterUHae", "value": "5833" }, { "label": "Writingfoo", "value": "5615" }, { "label": "Wuhutookof", "value": "2429" }, { "label": "WuhuWuhu", "value": "4073" }, { "label": "Wuxia", "value": "626" }, { "label": "Wuxiabuysf", "value": "5947" }, { "label": "Wuxicheng", "value": "1849" }, { "label": "WW2", "value": "3730" }, { "label": "wxya", "value": "4310" }, { "label": "XiaJiBanxi", "value": "4981" }, { "label": "XiaJiEight", "value": "4027" }, { "label": "XiangziYan", "value": "4379" }, { "label": "Xianjun", "value": "3173" }, { "label": "XianmengXi", "value": "4227" }, { "label": "Xianxia", "value": "255" }, { "label": "XianxiaCul", "value": "6133" }, { "label": "XianYushan", "value": "5874" }, { "label": "Xianzun", "value": "3446" }, { "label": "Xiaobaicry", "value": "4973" }, { "label": "Xiaobuisno", "value": "5439" }, { "label": "Xiaofei", "value": "4747" }, { "label": "Xiaohubuys", "value": "4627" }, { "label": "XiaoJieJie", "value": "5737" }, { "label": "XiaoLinWei", "value": "6119" }, { "label": "Xiaomiisah", "value": "6054" }, { "label": "XiaomiStar", "value": "2648" }, { "label": "XiaoMo&", "value": "4742" }, { "label": "Xiaonianbl", "value": "2529" }, { "label": "XiaonianXu", "value": "2621" }, { "label": "Xiaoqianhu", "value": "6081" }, { "label": "Xiaoran", "value": "5535" }, { "label": "XiaoshanQi", "value": "4669" }, { "label": "XiaoTangon", "value": "4679" }, { "label": "Xiaothreey", "value": "2858" }, { "label": "XiaoxiangP", "value": "2836" }, { "label": "XiaoXiao", "value": "5529" }, { "label": "Xiaoxin", "value": "1944" }, { "label": "Xiaoyuhast", "value": "5224" }, { "label": "Xiaozhi", "value": "4558" }, { "label": "XiaTing", "value": "4887" }, { "label": "Xiawholove", "value": "3912" }, { "label": "XiaXiaolan", "value": "4894" }, { "label": "XiaXiaXia", "value": "4684" }, { "label": "XieDaoheng", "value": "2519" }, { "label": "Xier", "value": "4257" }, { "label": "Xijing", "value": "3387" }, { "label": "Xinjia", "value": "5380" }, { "label": "Xiuwaihuih", "value": "3353" }, { "label": "Xiuxian", "value": "3133" }, { "label": "Xiuxian&am", "value": "5198" }, { "label": "XiuXiuXiuX", "value": "1848" }, { "label": "Xizhilangc", "value": "5781" }, { "label": "XL-423", "value": "5546" }, { "label": "XNUMXDupda", "value": "3985" }, { "label": "Xuanhuan", "value": "539" }, { "label": "Xuansheng", "value": "3962" }, { "label": "XuanyueQin", "value": "4551" }, { "label": "XuanYuisea", "value": "4279" }, { "label": "XuebaIII", "value": "2231" }, { "label": "Xuebaisinv", "value": "2275" }, { "label": "Xueqiunder", "value": "2065" }, { "label": "XueshenSan", "value": "4521" }, { "label": "Xufamilyel", "value": "2247" }, { "label": "XuIintheTa", "value": "2477" }, { "label": "XuShizi", "value": "4515" }, { "label": "XuShiziqia", "value": "5633" }, { "label": "XuYuanle", "value": "4437" }, { "label": "YaeSakurai", "value": "4161" }, { "label": "Yahyfvs", "value": "6043" }, { "label": "Yakult", "value": "2279" }, { "label": "Yakumo", "value": "3909" }, { "label": "Yakumobloo", "value": "3923" }, { "label": "Yakumofami", "value": "4121" }, { "label": "Yakumowhit", "value": "5882" }, { "label": "Yamasquirr", "value": "5625" }, { "label": "Yancontrol", "value": "3229" }, { "label": "yandcrooke", "value": "5627" }, { "label": "Yandere", "value": "510" }, { "label": "YangXiaoA", "value": "2071" }, { "label": "YangXiaoli", "value": "4311" }, { "label": "YanQiuyu", "value": "5352" }, { "label": "YanyunYing", "value": "5259" }, { "label": "Yaoi", "value": "446" }, { "label": "Yaoyue", "value": "2864" }, { "label": "Yapi", "value": "5683" }, { "label": "yary", "value": "4726" }, { "label": "YawuZiyun", "value": "5255" }, { "label": "yearaftery", "value": "2822" }, { "label": "yearningfo", "value": "2743" }, { "label": "yearningfo", "value": "2551" }, { "label": "yearningfo", "value": "2230" }, { "label": "Yearningfo", "value": "2365" }, { "label": "Yearningfo", "value": "2193" }, { "label": "Yearningto", "value": "2926" }, { "label": "YeChengzho", "value": "4218" }, { "label": "YeFeiyu", "value": "4762" }, { "label": "YeGongzi", "value": "2680" }, { "label": "YeGucheng", "value": "2646" }, { "label": "YeGuxue", "value": "4151" }, { "label": "yellowleav", "value": "5158" }, { "label": "YellowSpri", "value": "1788" }, { "label": "YeluChengj", "value": "1829" }, { "label": "YeQianqiu", "value": "2766" }, { "label": "YeTingfeng", "value": "6025" }, { "label": "YeTong", "value": "4846" }, { "label": "YeXiaobai", "value": "2286" }, { "label": "YeYe", "value": "2928" }, { "label": "Yibai", "value": "4716" }, { "label": "Yibuchuckl", "value": "5976" }, { "label": "YichenSwor", "value": "5422" }, { "label": "yinandyang", "value": "6143" }, { "label": "Ying&03", "value": "2274" }, { "label": "Yinglili&a", "value": "4600" }, { "label": "YinGongziY", "value": "5629" }, { "label": "YingTianMo", "value": "4906" }, { "label": "YingXiaofe", "value": "2029" }, { "label": "YinLiisins", "value": "1924" }, { "label": "Yongchuang", "value": "1983" }, { "label": "yonorth", "value": "3881" }, { "label": "Yoooooooom", "value": "4690" }, { "label": "Youalsowan", "value": "3505" }, { "label": "youareatra", "value": "5356" }, { "label": "Youarelike", "value": "5612" }, { "label": "youaretoow", "value": "1899" }, { "label": "Youkaishan", "value": "4672" }, { "label": "Young", "value": "5091" }, { "label": "YoungerBro", "value": "747" }, { "label": "YoungerLov", "value": "769" }, { "label": "YoungerSis", "value": "563" }, { "label": "Younghero", "value": "6083" }, { "label": "younglovei", "value": "4326" }, { "label": "YoungMaste", "value": "5234" }, { "label": "YoungMaste", "value": "2757" }, { "label": "YoungMaste", "value": "2669" }, { "label": "Youofthesk", "value": "5732" }, { "label": "Yourpupils", "value": "4361" }, { "label": "Youth", "value": "894" }, { "label": "YouthLittl", "value": "5152" }, { "label": "youwholove", "value": "5153" }, { "label": "YouZhu", "value": "5854" }, { "label": "youzi", "value": "5039" }, { "label": "yoyo", "value": "5299" }, { "label": "Yu-Gi-Oh", "value": "1085" }, { "label": "YuanandMin", "value": "5696" }, { "label": "YuanXiwu", "value": "5652" }, { "label": "Yuanyiunde", "value": "3938" }, { "label": "Yuanyuzhou", "value": "6075" }, { "label": "YuboTiandi", "value": "2282" }, { "label": "YuDaoan", "value": "4084" }, { "label": "Yueguhua", "value": "4094" }, { "label": "YuFengqian", "value": "4550" }, { "label": "Yugioh", "value": "1263" }, { "label": "Yujielonga", "value": "3773" }, { "label": "YuMingYins", "value": "3780" }, { "label": "Yunding丨P", "value": "3583" }, { "label": "YunJiangdo", "value": "4915" }, { "label": "Yunmu", "value": "2233" }, { "label": "Yunshan", "value": "6008" }, { "label": "YunXiaoluo", "value": "6073" }, { "label": "YunZhongju", "value": "2839" }, { "label": "YunZimo", "value": "3544" }, { "label": "Yuri", "value": "840" }, { "label": "YuShiyu", "value": "4714" }, { "label": "YushuangYS", "value": "4656" }, { "label": "YuSu", "value": "5015" }, { "label": "Yutang", "value": "5354" }, { "label": "YuTsingYi", "value": "2524" }, { "label": "YuXiaoqi", "value": "2136" }, { "label": "YuYuyu", "value": "2687" }, { "label": "z-man", "value": "805" }, { "label": "Zanfran", "value": "4246" }, { "label": "ZanpakutoK", "value": "4968" }, { "label": "Zcraft", "value": "5787" }, { "label": "Zerg", "value": "1076" }, { "label": "Zergs", "value": "1104" }, { "label": "Zerocharge", "value": "3754" }, { "label": "zeroclothe", "value": "3827" }, { "label": "zerooverfl", "value": "6005" }, { "label": "zfighters", "value": "1442" }, { "label": "ZhangErgou", "value": "2653" }, { "label": "ZhangFeiin", "value": "2569" }, { "label": "ZhangGaoqi", "value": "3756" }, { "label": "Zhanginfro", "value": "4276" }, { "label": "ZhangJuli", "value": "2548" }, { "label": "ZhangLuo", "value": "4703" }, { "label": "ZhangShuan", "value": "3669" }, { "label": "ZhangTianb", "value": "2335" }, { "label": "ZhaNiu", "value": "5190" }, { "label": "ZhaoSisi", "value": "4327" }, { "label": "ZhaoWenwub", "value": "5498" }, { "label": "Zhengde", "value": "3295" }, { "label": "Zhenguan", "value": "3391" }, { "label": "ZhiLingInk", "value": "4985" }, { "label": "zhishen", "value": "2697" }, { "label": "Zhiyuan", "value": "4477" }, { "label": "ZhouJijiu", "value": "5611" }, { "label": "ZhuangShis", "value": "4234" }, { "label": "ZhuDabald", "value": "2851" }, { "label": "Zhuge", "value": "4563" }, { "label": "ZhugeDali&", "value": "2576" }, { "label": "ZhugeIrona", "value": "2165" }, { "label": "Zhugeiscra", "value": "2584" }, { "label": "ZhuqiuSanj", "value": "5361" }, { "label": "Zhutianliu", "value": "6146" }, { "label": "ZhuZhiyue", "value": "2123" }, { "label": "ZiandIaren", "value": "3811" }, { "label": "Zippo", "value": "2706" }, { "label": "ZiXuanXuan", "value": "1903" }, { "label": "Ziyingisno", "value": "5927" }, { "label": "Zofi", "value": "5005" }, { "label": "Zombie", "value": "918" }, { "label": "zombiefish", "value": "2257" }, { "label": "ZombieGod", "value": "2145" }, { "label": "ZombieQuee", "value": "1577" }, { "label": "Zombies", "value": "102" }, { "label": "ZombieSumo", "value": "3377" }, { "label": "Zongmen", "value": "3412" }, { "label": "Zoo", "value": "920" }, { "label": "Zuge", "value": "2150" }, { "label": "Zulongstil", "value": "2266" }, { "label": "ZuoJinghon", "value": "5791" }, { "label": "ZuwuGonggo", "value": "2676" }, { "label": "一条小段段", "value": "5851" }, { "label": "丑颜", "value": "5890" }, { "label": "东晨", "value": "5945" }, { "label": "丫大", "value": "5214" }, { "label": "云怅", "value": "5834" }, { "label": "仕辰", "value": "1873" }, { "label": "你的答案", "value": "4028" }, { "label": "北八", "value": "5520" }, { "label": "半弦", "value": "3873" }, { "label": "夜独", "value": "6009" }, { "label": "天律", "value": "6032" }, { "label": "女神", "value": "3212" }, { "label": "妖精", "value": "3172" }, { "label": "婚姻", "value": "5123" }, { "label": "宋朝", "value": "3124" }, { "label": "家族", "value": "3460" }, { "label": "小封", "value": "2203" }, { "label": "开凡", "value": "6111" }, { "label": "影", "value": "5901" }, { "label": "往月", "value": "5720" }, { "label": "慕阳", "value": "2057" }, { "label": "教授", "value": "3777" }, { "label": "晓墨", "value": "5939" }, { "label": "木其", "value": "5522" }, { "label": "森罗", "value": "2361" }, { "label": "氪金", "value": "3312" }, { "label": "汪叽", "value": "5800" }, { "label": "沙酱", "value": "6027" }, { "label": "清裁", "value": "2838" }, { "label": "温桑", "value": "5192" }, { "label": "焕焕", "value": "6116" }, { "label": "王晏", "value": "5816" }, { "label": "王者荣耀", "value": "3393" }, { "label": "直播", "value": "3279" }, { "label": "神话", "value": "3222" }, { "label": "空间", "value": "3103" }, { "label": "肆灵", "value": "6123" }, { "label": "萌图", "value": "2821" }, { "label": "蝉眠", "value": "5514" }, { "label": "谢邀", "value": "1904" }, { "label": "财女", "value": "5989" }, { "label": "越泽", "value": "5963" }, { "label": "酣歌", "value": "2182" }, { "label": "醉咏", "value": "5895" }, { "label": "醉猫", "value": "5923" }, { "label": "金融", "value": "3101" }, { "label": "铁帅", "value": "2093" }, { "label": "零充", "value": "2924" }, { "label": "非洲", "value": "3714" }, { "label": "风水", "value": "4863" }, { "label": "饕牛", "value": "1831" }, { "label": "A.I", "value": "3128" }, { "label": "Aaron&0", "value": "2097" }, { "label": "Abandoned", "value": "1023" }, { "label": "AbandonedC", "value": "339" }, { "label": "AbandonedC", "value": "1633" }, { "label": "Abilities", "value": "1734" }, { "label": "Ability", "value": "1017" }, { "label": "AbilitySte", "value": "221" }, { "label": "ABO", "value": "899" }, { "label": "Abortion", "value": "1739" }, { "label": "AbsentPare", "value": "249" }, { "label": "AbsoluteDu", "value": "1724" }, { "label": "absolutely", "value": "2294" }, { "label": "Abuse", "value": "1707" }, { "label": "AbusiveCha", "value": "274" }, { "label": "AbusiveCha", "value": "818" }, { "label": "Abyss", "value": "3071" }, { "label": "Academy", "value": "49" }, { "label": "AcasualPaw", "value": "163" }, { "label": "Accelerate", "value": "236" }, { "label": "AcceptingD", "value": "1543" }, { "label": "ACGN", "value": "1692" }, { "label": "Acting", "value": "102" }, { "label": "Action", "value": "251" }, { "label": "Actors", "value": "1149" }, { "label": "Actress", "value": "1563" }, { "label": "AdaptedtoA", "value": "17" }, { "label": "AdaptedtoD", "value": "93" }, { "label": "AdaptedtoD", "value": "486" }, { "label": "AdaptedtoG", "value": "601" }, { "label": "AdaptedtoM", "value": "3" }, { "label": "AdaptedtoM", "value": "108" }, { "label": "AdaptedtoM", "value": "810" }, { "label": "AdaptedtoM", "value": "676" }, { "label": "AdaptedtoV", "value": "975" }, { "label": "ADeadBody", "value": "3161" }, { "label": "Adopted", "value": "1352" }, { "label": "AdoptedChi", "value": "404" }, { "label": "AdoptedPro", "value": "340" }, { "label": "Adoption", "value": "1740" }, { "label": "Adrogynous", "value": "1152" }, { "label": "Adult", "value": "1486" }, { "label": "Adultery", "value": "405" }, { "label": "AdvancedKn", "value": "1600" }, { "label": "advancedte", "value": "1700" }, { "label": "adventerer", "value": "2992" }, { "label": "Adventure", "value": "910" }, { "label": "Adventurer", "value": "288" }, { "label": "Adventurer", "value": "1012" }, { "label": "Affair", "value": "605" }, { "label": "AfricanEmi", "value": "1931" }, { "label": "Aftertheso", "value": "1859" }, { "label": "Age-gap", "value": "1982" }, { "label": "AgeDiffere", "value": "908" }, { "label": "Agedistrib", "value": "3259" }, { "label": "AgeGap", "value": "1681" }, { "label": "Agent", "value": "3278" }, { "label": "AgeofGods", "value": "1933" }, { "label": "AgeProgres", "value": "319" }, { "label": "AgeRegress", "value": "446" }, { "label": "AggresiveC", "value": "1336" }, { "label": "Aggressive", "value": "410" }, { "label": "Aggressive", "value": "1513" }, { "label": "agrass", "value": "1926" }, { "label": "ahveryfish", "value": "1917" }, { "label": "AI", "value": "67" }, { "label": "AI-chip", "value": "1228" }, { "label": "Alchemist", "value": "1731" }, { "label": "Alchemy", "value": "22" }, { "label": "Aliens", "value": "95" }, { "label": "Aliverday", "value": "2716" }, { "label": "All-GirlsS", "value": "1217" }, { "label": "allenzhang", "value": "2057" }, { "label": "AllHeavens", "value": "2387" }, { "label": "Almighty", "value": "3254" }, { "label": "AlmightyCo", "value": "2845" }, { "label": "Almightypl", "value": "2842" }, { "label": "Almost", "value": "990" }, { "label": "Alone", "value": "2674" }, { "label": "alpha", "value": "3098" }, { "label": "AlterateHi", "value": "2942" }, { "label": "AlternateH", "value": "1303" }, { "label": "AlternateW", "value": "97" }, { "label": "Alternativ", "value": "3050" }, { "label": "Amagicpill", "value": "2478" }, { "label": "America", "value": "3039" }, { "label": "AmericanCo", "value": "2939" }, { "label": "Americas", "value": "2943" }, { "label": "Amnesia", "value": "495" }, { "label": "AmusementP", "value": "765" }, { "label": "Anal", "value": "575" }, { "label": "Anautumnra", "value": "2638" }, { "label": "Ancient", "value": "1582" }, { "label": "AncientBus", "value": "1304" }, { "label": "AncientChi", "value": "94" }, { "label": "AncientChi", "value": "232" }, { "label": "AncientChi", "value": "2932" }, { "label": "ancientcit", "value": "958" }, { "label": "AncientRea", "value": "1515" }, { "label": "ancientset", "value": "1502" }, { "label": "ancienttim", "value": "1096" }, { "label": "AncientTim", "value": "50" }, { "label": "AncientWea", "value": "1773" }, { "label": "Androgynou", "value": "521" }, { "label": "Androids", "value": "725" }, { "label": "anewworld", "value": "1472" }, { "label": "Angel", "value": "1625" }, { "label": "Angels", "value": "31" }, { "label": "angryhouse", "value": "2375" }, { "label": "AnimalChar", "value": "497" }, { "label": "AnimalRear", "value": "432" }, { "label": "animals", "value": "1737" }, { "label": "Animation", "value": "3078" }, { "label": "AnimationD", "value": "3079" }, { "label": "Animator", "value": "1747" }, { "label": "Anime", "value": "656" }, { "label": "animenewco", "value": "2247" }, { "label": "Anl", "value": "748" }, { "label": "AnlanInvin", "value": "2905" }, { "label": "anoldman", "value": "2311" }, { "label": "AnotherWor", "value": "864" }, { "label": "AnotherWor", "value": "1586" }, { "label": "Anti-Hero", "value": "1220" }, { "label": "Anti-HeroL", "value": "4" }, { "label": "Anti-heroP", "value": "1216" }, { "label": "Anti-Magic", "value": "592" }, { "label": "Anti-MC", "value": "2956" }, { "label": "Anti-routi", "value": "3252" }, { "label": "Anti-socia", "value": "233" }, { "label": "AntiHero", "value": "819" }, { "label": "AntiheroPr", "value": "234" }, { "label": "AntiqueSho", "value": "547" }, { "label": "ApartmentL", "value": "589" }, { "label": "ApatheticP", "value": "194" }, { "label": "Apocalypse", "value": "39" }, { "label": "Apocalypse", "value": "1128" }, { "label": "Apocalypse", "value": "1279" }, { "label": "Apocalypti", "value": "1522" }, { "label": "Appearance", "value": "458" }, { "label": "Appearance", "value": "411" }, { "label": "Apple", "value": "2007" }, { "label": "Appraisal", "value": "1227" }, { "label": "Apprentice", "value": "1426" }, { "label": "arayofsuns", "value": "2160" }, { "label": "Archer", "value": "2656" }, { "label": "Archery", "value": "112" }, { "label": "Aristocrac", "value": "281" }, { "label": "Aristocrat", "value": "1193" }, { "label": "Aristrocac", "value": "1634" }, { "label": "Arknights", "value": "1576" }, { "label": "armoredcit", "value": "3023" }, { "label": "ArmsDealer", "value": "587" }, { "label": "ArmsDealer", "value": "2947" }, { "label": "ArmsTrade", "value": "1437" }, { "label": "Army", "value": "76" }, { "label": "Army-build", "value": "1194" }, { "label": "ArmyBuildi", "value": "120" }, { "label": "ArrangedMa", "value": "116" }, { "label": "ArrogantCh", "value": "202" }, { "label": "ArtifactCr", "value": "353" }, { "label": "Artifacts", "value": "65" }, { "label": "ArtifactsB", "value": "807" }, { "label": "ArtifactsC", "value": "253" }, { "label": "artificer", "value": "1797" }, { "label": "Artificial", "value": "43" }, { "label": "Artificial", "value": "2959" }, { "label": "Artist", "value": "657" }, { "label": "Artists", "value": "422" }, { "label": "askTaichi", "value": "2361" }, { "label": "ASOIAF", "value": "2999" }, { "label": "assasin", "value": "1805" }, { "label": "Assasins", "value": "3014" }, { "label": "Assassin", "value": "1098" }, { "label": "Assassins", "value": "23" }, { "label": "Astrologer", "value": "779" }, { "label": "atravellin", "value": "1870" }, { "label": "AttemptedM", "value": "1070" }, { "label": "Attractive", "value": "1687" }, { "label": "Auspicious", "value": "2335" }, { "label": "Authoroffa", "value": "2059" }, { "label": "Autism", "value": "488" }, { "label": "AutomaticU", "value": "1678" }, { "label": "AutomaticU", "value": "1364" }, { "label": "Automatons", "value": "794" }, { "label": "autumnautu", "value": "1874" }, { "label": "Avatar", "value": "3100" }, { "label": "Avatar&", "value": "1674" }, { "label": "Average-lo", "value": "524" }, { "label": "AverageLoo", "value": "871" }, { "label": "avigorous", "value": "2513" }, { "label": "Award-winn", "value": "1032" }, { "label": "AwkwardPro", "value": "707" }, { "label": "Ayanokoji", "value": "2101" }, { "label": "AZanpakut", "value": "2693" }, { "label": "Azeroth", "value": "1745" }, { "label": "AzurLane", "value": "1111" }, { "label": "Babies", "value": "1269" }, { "label": "Baby", "value": "3202" }, { "label": "Badassprot", "value": "1738" }, { "label": "Badboy", "value": "3191" }, { "label": "BaiXiaowei", "value": "2884" }, { "label": "baldman", "value": "2433" }, { "label": "baldnessat", "value": "2355" }, { "label": "balduncle", "value": "2892" }, { "label": "Bandit", "value": "2978" }, { "label": "BarrenEmpe", "value": "2300" }, { "label": "Baseball", "value": "550" }, { "label": "BasedonaMo", "value": "369" }, { "label": "BasedonanA", "value": "1093" }, { "label": "BasedonaSo", "value": "1163" }, { "label": "BasedonaTV", "value": "747" }, { "label": "BasedonaVi", "value": "1130" }, { "label": "BasedonaVi", "value": "3119" }, { "label": "Basket", "value": "1642" }, { "label": "Basketball", "value": "228" }, { "label": "BattleAcad", "value": "380" }, { "label": "BattleComp", "value": "284" }, { "label": "BattleThro", "value": "1386" }, { "label": "BDSM", "value": "653" }, { "label": "beaming", "value": "2565" }, { "label": "Beansandgr", "value": "2848" }, { "label": "Bearcat", "value": "2179" }, { "label": "BearChild", "value": "3013" }, { "label": "Bearchildl", "value": "2272" }, { "label": "bearcocoa", "value": "2713" }, { "label": "Beast", "value": "1300" }, { "label": "beastcompa", "value": "1173" }, { "label": "BeastCompa", "value": "280" }, { "label": "Beastkin", "value": "479" }, { "label": "beastman", "value": "1743" }, { "label": "Beastmen", "value": "1419" }, { "label": "beastprota", "value": "2348" }, { "label": "Beasts", "value": "135" }, { "label": "Beasttamer", "value": "1301" }, { "label": "Beasttamin", "value": "3147" }, { "label": "Beatthefem", "value": "3153" }, { "label": "Beatthemal", "value": "3152" }, { "label": "beatyourse", "value": "2243" }, { "label": "beautifula", "value": "2755" }, { "label": "Beautifula", "value": "1043" }, { "label": "BeautifulC", "value": "3002" }, { "label": "beautifulf", "value": "1788" }, { "label": "Beautifulf", "value": "1493" }, { "label": "BeautifulF", "value": "186" }, { "label": "BeautifulF", "value": "1790" }, { "label": "Beautifulg", "value": "973" }, { "label": "beautifulh", "value": "434" }, { "label": "Beautifull", "value": "1552" }, { "label": "BeautifulP", "value": "1204" }, { "label": "beauty", "value": "1464" }, { "label": "becausesoh", "value": "2705" }, { "label": "Becomefamo", "value": "1960" }, { "label": "beggingfor", "value": "2772" }, { "label": "BehindtheS", "value": "1682" }, { "label": "BehindtheS", "value": "1541" }, { "label": "Belltouche", "value": "2440" }, { "label": "belovedbab", "value": "2031" }, { "label": "ben10", "value": "1459" }, { "label": "Bestiality", "value": "745" }, { "label": "Betrayal", "value": "25" }, { "label": "bewitching", "value": "2890" }, { "label": "BickeringC", "value": "467" }, { "label": "bickeringl", "value": "3139" }, { "label": "BigBroHasD", "value": "154" }, { "label": "bigcitysma", "value": "2406" }, { "label": "Bigcockcut", "value": "2646" }, { "label": "Bigdog", "value": "2082" }, { "label": "bigharem", "value": "931" }, { "label": "bighippo", "value": "2749" }, { "label": "bigorangew", "value": "2354" }, { "label": "bigpicture", "value": "1833" }, { "label": "Bigplayers", "value": "1916" }, { "label": "Bigshot", "value": "3197" }, { "label": "BigSkeleto", "value": "2268" }, { "label": "bigtent", "value": "2666" }, { "label": "bigwhitewh", "value": "1950" }, { "label": "Billionair", "value": "1494" }, { "label": "billionpeo", "value": "2629" }, { "label": "BingtangHu", "value": "2175" }, { "label": "Biochemist", "value": "3283" }, { "label": "Biochip", "value": "406" }, { "label": "Biomass", "value": "1749" }, { "label": "Biscuits", "value": "1879" }, { "label": "BisexualPr", "value": "823" }, { "label": "bitefire", "value": "2250" }, { "label": "Bl", "value": "3150" }, { "label": "Black-bell", "value": "891" }, { "label": "Black-bell", "value": "1324" }, { "label": "blackandim", "value": "2254" }, { "label": "blackandwh", "value": "1908" }, { "label": "blackandwh", "value": "2859" }, { "label": "Blackbelli", "value": "1592" }, { "label": "BlackBelly", "value": "170" }, { "label": "BlackBelly", "value": "1097" }, { "label": "blackcatis", "value": "2776" }, { "label": "BlackDrago", "value": "2789" }, { "label": "Blackening", "value": "3108" }, { "label": "blackice", "value": "2990" }, { "label": "Blacklight", "value": "1750" }, { "label": "Blackmail", "value": "722" }, { "label": "Blacksmith", "value": "265" }, { "label": "blacksoil", "value": "2181" }, { "label": "blacktechn", "value": "928" }, { "label": "Bleach", "value": "1168" }, { "label": "Blind", "value": "1280" }, { "label": "BlindDates", "value": "607" }, { "label": "BlindProta", "value": "720" }, { "label": "Bloodborne", "value": "1577" }, { "label": "blooddemon", "value": "2135" }, { "label": "Bloodline", "value": "1248" }, { "label": "Bloodlines", "value": "114" }, { "label": "BloodManip", "value": "485" }, { "label": "BloodMoonG", "value": "2278" }, { "label": "BloodofAni", "value": "1861" }, { "label": "Bloodpumpi", "value": "3146" }, { "label": "bloomingon", "value": "1992" }, { "label": "blueshirts", "value": "2230" }, { "label": "bluesilk", "value": "2896" }, { "label": "bluesilksu", "value": "2742" }, { "label": "bluestone", "value": "2245" }, { "label": "Bodhicitta", "value": "2562" }, { "label": "Bodyguards", "value": "610" }, { "label": "BodySwap", "value": "590" }, { "label": "BodyTemper", "value": "61" }, { "label": "Boiled", "value": "2855" }, { "label": "book", "value": "1462" }, { "label": "BookDustSp", "value": "2453" }, { "label": "Books", "value": "433" }, { "label": "bookslikeu", "value": "2962" }, { "label": "BookstoreS", "value": "2177" }, { "label": "BookTransm", "value": "915" }, { "label": "BookWearer", "value": "1198" }, { "label": "Bookworm", "value": "577" }, { "label": "Boss", "value": "2951" }, { "label": "Boss-Subor", "value": "525" }, { "label": "Boundlessf", "value": "2024" }, { "label": "BoXiaowen", "value": "2432" }, { "label": "Boxing", "value": "737" }, { "label": "boycold", "value": "2683" }, { "label": "BoysLove", "value": "964" }, { "label": "Brainwashi", "value": "559" }, { "label": "BraisedPai", "value": "2172" }, { "label": "Brave", "value": "971" }, { "label": "BraveandDe", "value": "991" }, { "label": "Breakingth", "value": "2624" }, { "label": "breaktheke", "value": "2304" }, { "label": "Breakup", "value": "1395" }, { "label": "Breeze", "value": "2142" }, { "label": "breezesilv", "value": "2083" }, { "label": "Brightmoon", "value": "2115" }, { "label": "Bringaknif", "value": "2708" }, { "label": "BritishEmp", "value": "1525" }, { "label": "broalwaysg", "value": "2532" }, { "label": "BrokenEnga", "value": "403" }, { "label": "BrotherChe", "value": "2216" }, { "label": "BrotherCom", "value": "53" }, { "label": "Brotherhoo", "value": "426" }, { "label": "BrotherInL", "value": "3106" }, { "label": "BrotherZhu", "value": "2270" }, { "label": "Brownsugar", "value": "1905" }, { "label": "BTTH", "value": "1340" }, { "label": "BuddhaofNi", "value": "2989" }, { "label": "Buddhism", "value": "166" }, { "label": "building", "value": "929" }, { "label": "buildingki", "value": "1806" }, { "label": "BuildKingd", "value": "1575" }, { "label": "Buildthewo", "value": "2626" }, { "label": "Bulldozer", "value": "1650" }, { "label": "Bully", "value": "54" }, { "label": "Bullying", "value": "503" }, { "label": "BuLofan", "value": "2102" }, { "label": "BungouStra", "value": "1814" }, { "label": "BunguoStra", "value": "1430" }, { "label": "Burningmou", "value": "2767" }, { "label": "burnout", "value": "2756" }, { "label": "Business", "value": "51" }, { "label": "BusinessDe", "value": "1082" }, { "label": "BusinessEm", "value": "658" }, { "label": "businessfl", "value": "3262" }, { "label": "BusinessMa", "value": "171" }, { "label": "BusinessMa", "value": "1114" }, { "label": "Businessme", "value": "201" }, { "label": "businessor", "value": "920" }, { "label": "BusinessRi", "value": "1853" }, { "label": "Bussinesma", "value": "1550" }, { "label": "Bussiness", "value": "1488" }, { "label": "Butlers", "value": "708" }, { "label": "Butnoconsp", "value": "1002" }, { "label": "ButterflyD", "value": "2026" }, { "label": "Caicolorsh", "value": "2700" }, { "label": "callthebea", "value": "2462" }, { "label": "Calm", "value": "3015" }, { "label": "Calmdown", "value": "3118" }, { "label": "CalmMalePr", "value": "839" }, { "label": "CalmProtag", "value": "227" }, { "label": "camera", "value": "2045" }, { "label": "Campus", "value": "1728" }, { "label": "CampusLife", "value": "1325" }, { "label": "CampusLove", "value": "468" }, { "label": "CampusRoma", "value": "2919" }, { "label": "Can&039", "value": "2454" }, { "label": "Can&039", "value": "2689" }, { "label": "Cancat", "value": "2333" }, { "label": "canfly", "value": "2055" }, { "label": "CangxueFei", "value": "2968" }, { "label": "Cannibalis", "value": "289" }, { "label": "Canolaflow", "value": "2014" }, { "label": "Cantaloupe", "value": "2839" }, { "label": "Canteendry", "value": "2266" }, { "label": "Capitalism", "value": "1526" }, { "label": "CarambolaJ", "value": "2761" }, { "label": "Card", "value": "1138" }, { "label": "CardGames", "value": "483" }, { "label": "Cards", "value": "723" }, { "label": "CareerOrie", "value": "1104" }, { "label": "CarefreePr", "value": "418" }, { "label": "CaringMale", "value": "1589" }, { "label": "CaringProt", "value": "388" }, { "label": "carpenter", "value": "3214" }, { "label": "cartoonwil", "value": "2205" }, { "label": "CatchaGhos", "value": "3163" }, { "label": "Catchtheca", "value": "2180" }, { "label": "catdaylist", "value": "1947" }, { "label": "cateatingp", "value": "2850" }, { "label": "catgod", "value": "2500" }, { "label": "catisrisin", "value": "2625" }, { "label": "catloveson", "value": "2596" }, { "label": "catpowerfi", "value": "2686" }, { "label": "Catswithfi", "value": "2310" }, { "label": "catthatwan", "value": "2056" }, { "label": "catthousan", "value": "2369" }, { "label": "CautiousMc", "value": "1143" }, { "label": "CautiousPr", "value": "237" }, { "label": "caviar", "value": "2169" }, { "label": "Celebritie", "value": "18" }, { "label": "Celebrity", "value": "911" }, { "label": "CelestialC", "value": "2668" }, { "label": "Celestials", "value": "147" }, { "label": "CEO", "value": "1250" }, { "label": "ChainsawMa", "value": "2929" }, { "label": "championge", "value": "2405" }, { "label": "ChanelNo.1", "value": "2039" }, { "label": "Changeever", "value": "2263" }, { "label": "Channel", "value": "1072" }, { "label": "Chaos", "value": "1410" }, { "label": "chaoticwor", "value": "1919" }, { "label": "CharacterD", "value": "384" }, { "label": "CharacterG", "value": "282" }, { "label": "Charismati", "value": "172" }, { "label": "CharmingPr", "value": "350" }, { "label": "chasingthe", "value": "2831" }, { "label": "chat", "value": "1799" }, { "label": "chat-room", "value": "1337" }, { "label": "ChatGroup", "value": "861" }, { "label": "ChatRooms", "value": "73" }, { "label": "Cheat", "value": "853" }, { "label": "Cheats", "value": "19" }, { "label": "Cheerful", "value": "1062" }, { "label": "Chef", "value": "834" }, { "label": "chef&03", "value": "2136" }, { "label": "Chefs", "value": "68" }, { "label": "ChefSurviv", "value": "2215" }, { "label": "ChenChangf", "value": "2374" }, { "label": "ChenHegao", "value": "1751" }, { "label": "ChenTwelve", "value": "2164" }, { "label": "CherryBlos", "value": "2000" }, { "label": "ChiDongdon", "value": "2003" }, { "label": "child", "value": "3077" }, { "label": "ChildAbuse", "value": "412" }, { "label": "Childbirth", "value": "1124" }, { "label": "Childcare", "value": "268" }, { "label": "ChildhoodE", "value": "1660" }, { "label": "Childhoodf", "value": "2987" }, { "label": "ChildhoodF", "value": "364" }, { "label": "ChildhoodL", "value": "365" }, { "label": "ChildhoodP", "value": "366" }, { "label": "ChildhoodS", "value": "217" }, { "label": "ChildhoodS", "value": "1200" }, { "label": "ChildishPr", "value": "419" }, { "label": "ChildProta", "value": "363" }, { "label": "ChinaNamba", "value": "1748" }, { "label": "ChinaRefor", "value": "1407" }, { "label": "Chinese", "value": "923" }, { "label": "ChineseAnc", "value": "1735" }, { "label": "Chinesemed", "value": "3274" }, { "label": "ChineseNov", "value": "1708" }, { "label": "ChinesePre", "value": "1356" }, { "label": "Chirika", "value": "1876" }, { "label": "Chivalryof", "value": "1723" }, { "label": "ChocolateI", "value": "1962" }, { "label": "ChoiceSele", "value": "1358" }, { "label": "Chosen12", "value": "2585" }, { "label": "Chronology", "value": "1485" }, { "label": "Chugoku", "value": "3227" }, { "label": "ChuningMC", "value": "1439" }, { "label": "Church", "value": "1409" }, { "label": "Chuunibyou", "value": "813" }, { "label": "Cicadasand", "value": "2384" }, { "label": "city", "value": "3236" }, { "label": "CityGod", "value": "2323" }, { "label": "city​​ya", "value": "2800" }, { "label": "civetcatat", "value": "2620" }, { "label": "Civilizati", "value": "1649" }, { "label": "Civilizati", "value": "1816" }, { "label": "CivilServa", "value": "1527" }, { "label": "ClanBuildi", "value": "343" }, { "label": "ClanSectDe", "value": "1368" }, { "label": "ClassicXia", "value": "3231" }, { "label": "ClassroomO", "value": "3207" }, { "label": "clearthink", "value": "3245" }, { "label": "CleverMc", "value": "1188" }, { "label": "CleverProt", "value": "238" }, { "label": "CleverProt", "value": "594" }, { "label": "ClingyLove", "value": "307" }, { "label": "Clones", "value": "321" }, { "label": "CloseComba", "value": "1021" }, { "label": "cloudmadeo", "value": "2838" }, { "label": "Cloudseest", "value": "2092" }, { "label": "CloudSummi", "value": "2036" }, { "label": "Cloudtopfi", "value": "2131" }, { "label": "Cloudtop丨", "value": "2244" }, { "label": "CloudTop丨", "value": "1987" }, { "label": "CloudTop丨", "value": "2170" }, { "label": "cloudysky", "value": "1967" }, { "label": "Club", "value": "1619" }, { "label": "Clubs", "value": "704" }, { "label": "Cluelessly", "value": "1374" }, { "label": "CluelessPr", "value": "1415" }, { "label": "ClumsyLove", "value": "469" }, { "label": "cluthullu", "value": "1703" }, { "label": "Cnnilingus", "value": "1311" }, { "label": "Co-Workers", "value": "729" }, { "label": "cockroache", "value": "2792" }, { "label": "codegeass", "value": "1813" }, { "label": "Codeuntilt", "value": "2809" }, { "label": "codewordge", "value": "2751" }, { "label": "coffeefatc", "value": "2089" }, { "label": "coffeeinst", "value": "2587" }, { "label": "coffeewith", "value": "1844" }, { "label": "Cohabitati", "value": "470" }, { "label": "CokeII", "value": "2497" }, { "label": "coldcolddo", "value": "2510" }, { "label": "ColdLoveIn", "value": "344" }, { "label": "ColdLoveIn", "value": "1153" }, { "label": "ColdMaleLe", "value": "879" }, { "label": "ColdNightL", "value": "2879" }, { "label": "ColdProtag", "value": "229" }, { "label": "coldrivers", "value": "2148" }, { "label": "ColdStar&a", "value": "1912" }, { "label": "Collection", "value": "703" }, { "label": "Collective", "value": "1001" }, { "label": "College", "value": "1491" }, { "label": "CollegeorU", "value": "1318" }, { "label": "CollegeStr", "value": "3261" }, { "label": "CollegeUni", "value": "212" }, { "label": "Colonializ", "value": "1245" }, { "label": "Coma", "value": "517" }, { "label": "ComedicUnd", "value": "299" }, { "label": "ComedicUnd", "value": "892" }, { "label": "comedy", "value": "1191" }, { "label": "Comeon", "value": "2147" }, { "label": "Comic", "value": "1603" }, { "label": "comics", "value": "1451" }, { "label": "comics", "value": "1470" }, { "label": "ComingofAg", "value": "757" }, { "label": "Commandand", "value": "820" }, { "label": "CommonerLi", "value": "917" }, { "label": "Companies", "value": "1338" }, { "label": "CompanyMan", "value": "1047" }, { "label": "Competitio", "value": "1643" }, { "label": "competitiv", "value": "1468" }, { "label": "Complaint", "value": "1179" }, { "label": "ComplexFam", "value": "173" }, { "label": "ComplexFam", "value": "1075" }, { "label": "Complicate", "value": "1343" }, { "label": "comprehens", "value": "3232" }, { "label": "Comprehens", "value": "2280" }, { "label": "Comprehens", "value": "3265" }, { "label": "Conditiona", "value": "651" }, { "label": "ConfidentP", "value": "203" }, { "label": "Confinemen", "value": "647" }, { "label": "Conflictin", "value": "684" }, { "label": "conquer", "value": "1461" }, { "label": "Conquer", "value": "3148" }, { "label": "Conspiracy", "value": "3008" }, { "label": "Conspirati", "value": "1551" }, { "label": "Constellat", "value": "1069" }, { "label": "Constructi", "value": "1157" }, { "label": "Contagonis", "value": "1752" }, { "label": "contempora", "value": "1449" }, { "label": "Contract", "value": "1210" }, { "label": "ContractLo", "value": "921" }, { "label": "Contracts", "value": "489" }, { "label": "Cooking", "value": "69" }, { "label": "CoolMc", "value": "1094" }, { "label": "CoolText", "value": "1236" }, { "label": "cornjuice", "value": "2881" }, { "label": "CorpseFrag", "value": "2726" }, { "label": "Corruption", "value": "691" }, { "label": "CosmicHorr", "value": "1294" }, { "label": "CosmicWars", "value": "370" }, { "label": "Cosplay", "value": "781" }, { "label": "Counteratt", "value": "1656" }, { "label": "CountrySid", "value": "3103" }, { "label": "CoupleGrow", "value": "373" }, { "label": "CourtOffic", "value": "522" }, { "label": "Cousins", "value": "734" }, { "label": "coverthesu", "value": "1877" }, { "label": "CowardlyPr", "value": "490" }, { "label": "coyote", "value": "2028" }, { "label": "Crafting", "value": "222" }, { "label": "Crazyforam", "value": "2261" }, { "label": "CrazyProta", "value": "1295" }, { "label": "Crazystory", "value": "2444" }, { "label": "Creation", "value": "1298" }, { "label": "Creator", "value": "1585" }, { "label": "Creatures", "value": "752" }, { "label": "Crime", "value": "596" }, { "label": "crimesolvi", "value": "3034" }, { "label": "Criminals", "value": "131" }, { "label": "Criminolog", "value": "837" }, { "label": "crookeddoo", "value": "2844" }, { "label": "Cross", "value": "3222" }, { "label": "Cross-dres", "value": "250" }, { "label": "Crossdress", "value": "1137" }, { "label": "Crossdress", "value": "963" }, { "label": "Crossing", "value": "2941" }, { "label": "Crossover", "value": "583" }, { "label": "Cruel", "value": "2960" }, { "label": "CruelChara", "value": "466" }, { "label": "Cruelportr", "value": "1045" }, { "label": "Cryostasis", "value": "709" }, { "label": "Cthulhu", "value": "1578" }, { "label": "CubRaising", "value": "883" }, { "label": "CucumberHa", "value": "1952" }, { "label": "cultivatio", "value": "1465" }, { "label": "Cultivatio", "value": "46" }, { "label": "Cultivatio", "value": "2993" }, { "label": "Cultivatio", "value": "3043" }, { "label": "Cultivator", "value": "1411" }, { "label": "cunning", "value": "2937" }, { "label": "cunningfem", "value": "1278" }, { "label": "cunningmc", "value": "1801" }, { "label": "CunningPro", "value": "390" }, { "label": "CunningPro", "value": "1604" }, { "label": "Cupola", "value": "2864" }, { "label": "cure", "value": "3226" }, { "label": "curechildr", "value": "3042" }, { "label": "CuriousPro", "value": "617" }, { "label": "Curse", "value": "35" }, { "label": "Curses", "value": "585" }, { "label": "Cute", "value": "1042" }, { "label": "CuteChild", "value": "1489" }, { "label": "CuteChildr", "value": "313" }, { "label": "cutegrapef", "value": "2186" }, { "label": "cutelovein", "value": "2914" }, { "label": "CuteMaleLe", "value": "1559" }, { "label": "CutePet", "value": "1774" }, { "label": "cutepomelo", "value": "2826" }, { "label": "CuteProtag", "value": "367" }, { "label": "CuteProtag", "value": "1553" }, { "label": "cuteshadow", "value": "2008" }, { "label": "CuteStory", "value": "368" }, { "label": "Daddywants", "value": "2470" }, { "label": "dagougou", "value": "2569" }, { "label": "Dahunjun", "value": "2385" }, { "label": "Daily", "value": "969" }, { "label": "Dailylife", "value": "3239" }, { "label": "DamingYong", "value": "2202" }, { "label": "Dancers", "value": "509" }, { "label": "dancetofig", "value": "1996" }, { "label": "DanMachi", "value": "1675" }, { "label": "Danmei", "value": "599" }, { "label": "DaoCompani", "value": "98" }, { "label": "DaoCompreh", "value": "283" }, { "label": "Daoism", "value": "78" }, { "label": "DaoyanShen", "value": "2226" }, { "label": "DaqingXiao", "value": "2276" }, { "label": "Dark", "value": "110" }, { "label": "DarkDeatho", "value": "649" }, { "label": "DarkFantas", "value": "888" }, { "label": "darknight", "value": "1920" }, { "label": "darkpirate", "value": "1855" }, { "label": "DarkPower", "value": "1413" }, { "label": "Dashuaihen", "value": "2464" }, { "label": "DatangDaqi", "value": "1977" }, { "label": "DatangDaqi", "value": "2403" }, { "label": "DatangErwu", "value": "2030" }, { "label": "Datangpota", "value": "2906" }, { "label": "Datangsupe", "value": "2042" }, { "label": "daughterco", "value": "2121" }, { "label": "Daybyday", "value": "2604" }, { "label": "DC", "value": "840" }, { "label": "deadfatfas", "value": "2360" }, { "label": "DeadProtag", "value": "644" }, { "label": "Death", "value": "417" }, { "label": "DeathofLov", "value": "462" }, { "label": "Debts", "value": "710" }, { "label": "Decadeligh", "value": "2001" }, { "label": "Decisive", "value": "2976" }, { "label": "DecisiveMc", "value": "3093" }, { "label": "deepbluese", "value": "2016" }, { "label": "Deepl", "value": "941" }, { "label": "DeepLTrans", "value": "1421" }, { "label": "Delinquent", "value": "552" }, { "label": "Delusions", "value": "815" }, { "label": "Demi-Human", "value": "70" }, { "label": "Demon", "value": "1276" }, { "label": "Demondomai", "value": "2450" }, { "label": "DemonicCul", "value": "322" }, { "label": "DemonInvas", "value": "2260" }, { "label": "DemonKing", "value": "970" }, { "label": "DemonLord", "value": "40" }, { "label": "DemonPower", "value": "3025" }, { "label": "Demons", "value": "5" }, { "label": "DemonSlaye", "value": "1169" }, { "label": "DenseProta", "value": "398" }, { "label": "Depictions", "value": "391" }, { "label": "Depictions", "value": "1267" }, { "label": "Depression", "value": "308" }, { "label": "Desperatel", "value": "2392" }, { "label": "DestinedLo", "value": "1567" }, { "label": "Destiny", "value": "692" }, { "label": "Destroyerf", "value": "2350" }, { "label": "Detective", "value": "903" }, { "label": "DetectiveC", "value": "962" }, { "label": "Detectives", "value": "633" }, { "label": "Determined", "value": "174" }, { "label": "Determined", "value": "1189" }, { "label": "Devil", "value": "952" }, { "label": "Devils", "value": "92" }, { "label": "Devilveget", "value": "2336" }, { "label": "DevotedCou", "value": "1817" }, { "label": "Devotedlov", "value": "1778" }, { "label": "DevotedLov", "value": "175" }, { "label": "Diablo", "value": "3284" }, { "label": "Differenta", "value": "989" }, { "label": "DifferentS", "value": "374" }, { "label": "differentw", "value": "1417" }, { "label": "DifferentW", "value": "1041" }, { "label": "Diga", "value": "2617" }, { "label": "Digimon", "value": "1809" }, { "label": "digitalold", "value": "2062" }, { "label": "digthreefe", "value": "2662" }, { "label": "Dikabenka", "value": "2603" }, { "label": "dimensiona", "value": "2918" }, { "label": "Dining", "value": "3264" }, { "label": "Dinosaurs", "value": "1167" }, { "label": "Diplomacy", "value": "1148" }, { "label": "Diplomats", "value": "1528" }, { "label": "Director", "value": "1238" }, { "label": "dirtylittl", "value": "2802" }, { "label": "Disabiliti", "value": "323" }, { "label": "disability", "value": "3130" }, { "label": "DisabledPr", "value": "1736" }, { "label": "DiscipleLo", "value": "1427" }, { "label": "DiscipleTr", "value": "1370" }, { "label": "Discrimina", "value": "475" }, { "label": "Disfigurem", "value": "399" }, { "label": "DishonestP", "value": "505" }, { "label": "Disobedien", "value": "1668" }, { "label": "Disqualifi", "value": "1063" }, { "label": "Distrustfu", "value": "685" }, { "label": "Divination", "value": "538" }, { "label": "Divination", "value": "294" }, { "label": "DivineBook", "value": "2531" }, { "label": "DivineProt", "value": "375" }, { "label": "divinesign", "value": "1845" }, { "label": "Divorce", "value": "472" }, { "label": "Doctor", "value": "1282" }, { "label": "DoctorData", "value": "2720" }, { "label": "Doctors", "value": "142" }, { "label": "doctorstre", "value": "3260" }, { "label": "Dog", "value": "1791" }, { "label": "dogeggsold", "value": "2514" }, { "label": "DoingBusin", "value": "1759" }, { "label": "Dollsister", "value": "2292" }, { "label": "DollsPuppe", "value": "544" }, { "label": "DomesticAf", "value": "459" }, { "label": "Dominator", "value": "1539" }, { "label": "Domineerin", "value": "2952" }, { "label": "don&039", "value": "2010" }, { "label": "don&039", "value": "2105" }, { "label": "Don&039", "value": "2549" }, { "label": "Donotbecon", "value": "2622" }, { "label": "Donotforge", "value": "2635" }, { "label": "Doomdays", "value": "1568" }, { "label": "Doomsday", "value": "1129" }, { "label": "Doomsdaywa", "value": "2694" }, { "label": "Doraemon", "value": "2930" }, { "label": "dotingfami", "value": "1422" }, { "label": "dotinghusb", "value": "1445" }, { "label": "dotinglove", "value": "1423" }, { "label": "DotingLove", "value": "230" }, { "label": "DotingOlde", "value": "337" }, { "label": "DotingPare", "value": "338" }, { "label": "DotingPare", "value": "835" }, { "label": "DotingSibl", "value": "1704" }, { "label": "DoubleLife", "value": "1232" }, { "label": "DoubleRebi", "value": "1273" }, { "label": "Doujin", "value": "1345" }, { "label": "Doujinshi", "value": "3242" }, { "label": "Douluo", "value": "2957" }, { "label": "DouluoDalu", "value": "245" }, { "label": "Doupo", "value": "842" }, { "label": "DoupoBTTH", "value": "831" }, { "label": "DouTuKing", "value": "2099" }, { "label": "doyoueator", "value": "2334" }, { "label": "doyouwantc", "value": "2546" }, { "label": "Dragon", "value": "1399" }, { "label": "dragon-eat", "value": "2436" }, { "label": "DragonandL", "value": "2735" }, { "label": "DragonBall", "value": "1359" }, { "label": "DragonBall", "value": "2330" }, { "label": "DragonPala", "value": "2043" }, { "label": "DragonPowe", "value": "3026" }, { "label": "Dragons", "value": "24" }, { "label": "DragonSlay", "value": "624" }, { "label": "dragracing", "value": "1975" }, { "label": "Drama", "value": "855" }, { "label": "Dramatic", "value": "3183" }, { "label": "Dream", "value": "615" }, { "label": "dreamblizz", "value": "2875" }, { "label": "dreamcatch", "value": "2530" }, { "label": "dreamintot", "value": "2446" }, { "label": "dreamleave", "value": "1838" }, { "label": "Dreamofthe", "value": "2190" }, { "label": "Dreams", "value": "541" }, { "label": "DriftwoodD", "value": "2571" }, { "label": "Drugs", "value": "413" }, { "label": "Druids", "value": "636" }, { "label": "Drunklifed", "value": "2897" }, { "label": "DumbProtag", "value": "1117" }, { "label": "dungeon", "value": "1404" }, { "label": "DungeonMas", "value": "628" }, { "label": "Dungeons", "value": "32" }, { "label": "Dwarf", "value": "1595" }, { "label": "Dwarfs", "value": "449" }, { "label": "Dwarves", "value": "28" }, { "label": "Dynasty", "value": "3009" }, { "label": "Dystopia", "value": "681" }, { "label": "e-Sports", "value": "335" }, { "label": "EarlyRoman", "value": "104" }, { "label": "EarthInvas", "value": "304" }, { "label": "eartwarmin", "value": "3027" }, { "label": "easternfan", "value": "396" }, { "label": "EasternSet", "value": "1078" }, { "label": "EasyGoingL", "value": "300" }, { "label": "Easygoingp", "value": "1593" }, { "label": "EatingBroa", "value": "1669" }, { "label": "Eccentricp", "value": "1632" }, { "label": "Ecchi", "value": "3200" }, { "label": "Economics", "value": "316" }, { "label": "Editors", "value": "799" }, { "label": "Eggpie", "value": "2223" }, { "label": "Eggplantan", "value": "2852" }, { "label": "Egoist", "value": "3201" }, { "label": "EideticMem", "value": "423" }, { "label": "Eighteence", "value": "2964" }, { "label": "eincarnate", "value": "75" }, { "label": "electricia", "value": "1811" }, { "label": "electricmo", "value": "2687" }, { "label": "elemental", "value": "3111" }, { "label": "ElementalM", "value": "213" }, { "label": "Elf", "value": "1348" }, { "label": "Elfcold", "value": "1941" }, { "label": "Elite", "value": "1320" }, { "label": "Elixirs", "value": "3255" }, { "label": "Elves", "value": "6" }, { "label": "Emotional", "value": "3082" }, { "label": "Emotionall", "value": "188" }, { "label": "Emperialpo", "value": "1549" }, { "label": "Emperor", "value": "3037" }, { "label": "EmperorCha", "value": "2547" }, { "label": "EmperorYao", "value": "1978" }, { "label": "Empire", "value": "1246" }, { "label": "Empires", "value": "133" }, { "label": "Empress", "value": "966" }, { "label": "empressfem", "value": "3132" }, { "label": "emptymonol", "value": "2448" }, { "label": "EndoftheWo", "value": "2556" }, { "label": "EnemiesBec", "value": "309" }, { "label": "EnemiesBec", "value": "476" }, { "label": "enemiestol", "value": "1812" }, { "label": "EnemytoLov", "value": "1661" }, { "label": "EnemytoLov", "value": "1201" }, { "label": "Engage", "value": "3258" }, { "label": "engageinba", "value": "2731" }, { "label": "Engagement", "value": "447" }, { "label": "Engineer", "value": "306" }, { "label": "Enlightenm", "value": "342" }, { "label": "Entertaime", "value": "1211" }, { "label": "Entertaini", "value": "2496" }, { "label": "entertainm", "value": "1742" }, { "label": "entertainm", "value": "2651" }, { "label": "entertainm", "value": "2843" }, { "label": "Entertainm", "value": "146" }, { "label": "Entertainm", "value": "869" }, { "label": "Entertainm", "value": "894" }, { "label": "Episodic", "value": "608" }, { "label": "Erwazi", "value": "2841" }, { "label": "Eschatolog", "value": "3221" }, { "label": "ESNGrandPr", "value": "999" }, { "label": "Esper", "value": "3216" }, { "label": "eternityor", "value": "2502" }, { "label": "Eunuch", "value": "409" }, { "label": "EunuchJinr", "value": "1865" }, { "label": "Europe", "value": "3102" }, { "label": "EuropeanAm", "value": "621" }, { "label": "EuropeanAm", "value": "914" }, { "label": "Evergrande", "value": "2769" }, { "label": "Evergrande", "value": "2391" }, { "label": "everlastin", "value": "2736" }, { "label": "everydayfi", "value": "2563" }, { "label": "Everyoneli", "value": "1025" }, { "label": "Evil", "value": "165" }, { "label": "Evil-prota", "value": "1516" }, { "label": "EvilCharac", "value": "1296" }, { "label": "EvilGod", "value": "1102" }, { "label": "EvilGods", "value": "381" }, { "label": "EvilMistre", "value": "982" }, { "label": "EvilOrgani", "value": "356" }, { "label": "EvilOrgani", "value": "1435" }, { "label": "EvilProtag", "value": "471" }, { "label": "EvilReligi", "value": "392" }, { "label": "EvilSpirit", "value": "3162" }, { "label": "EvilSprits", "value": "1755" }, { "label": "evolution", "value": "1452" }, { "label": "Evolution", "value": "52" }, { "label": "evolutiona", "value": "3241" }, { "label": "Ex", "value": "3171" }, { "label": "Ex-girlfri", "value": "1570" }, { "label": "exes", "value": "1794" }, { "label": "Exhaustion", "value": "3061" }, { "label": "Exhibition", "value": "1312" }, { "label": "Exorcism", "value": "487" }, { "label": "Exorcist", "value": "1239" }, { "label": "Experience", "value": "1387" }, { "label": "Extraordin", "value": "1639" }, { "label": "Extremelyi", "value": "2283" }, { "label": "eyepower", "value": "1432" }, { "label": "EyePowers", "value": "324" }, { "label": "Faceslap", "value": "1657" }, { "label": "FaceSlappi", "value": "880" }, { "label": "FahaiInvin", "value": "2722" }, { "label": "Fahaiunder", "value": "2286" }, { "label": "Fairies", "value": "58" }, { "label": "Fairy", "value": "3016" }, { "label": "fairygirlf", "value": "2523" }, { "label": "FairySword", "value": "2005" }, { "label": "FairyTail", "value": "940" }, { "label": "Fairy丨Pin", "value": "1864" }, { "label": "fakegod", "value": "2616" }, { "label": "FaketoReal", "value": "922" }, { "label": "FallenAnge", "value": "809" }, { "label": "Fallenleav", "value": "2146" }, { "label": "FallenNobi", "value": "716" }, { "label": "FallenWing", "value": "2822" }, { "label": "FallingRai", "value": "1985" }, { "label": "fallintoth", "value": "2874" }, { "label": "Faloo", "value": "1040" }, { "label": "FamilialLo", "value": "214" }, { "label": "Familiars", "value": "1057" }, { "label": "FamillialL", "value": "1247" }, { "label": "Family", "value": "314" }, { "label": "FamilyBuil", "value": "1115" }, { "label": "FamilyBusi", "value": "401" }, { "label": "FamilyConf", "value": "176" }, { "label": "familylife", "value": "1627" }, { "label": "FamilyLove", "value": "1727" }, { "label": "famouscoup", "value": "1702" }, { "label": "Famousdete", "value": "1957" }, { "label": "FamousPare", "value": "464" }, { "label": "FamousProt", "value": "269" }, { "label": "Fan", "value": "3230" }, { "label": "Fan-fictio", "value": "100" }, { "label": "Fanaticism", "value": "772" }, { "label": "fanfic", "value": "1471" }, { "label": "Fanfic", "value": "1240" }, { "label": "Fanfiction", "value": "235" }, { "label": "FanFicton", "value": "1581" }, { "label": "FangQingya", "value": "2410" }, { "label": "FanJiu", "value": "2316" }, { "label": "fanofstar", "value": "2793" }, { "label": "fanqienove", "value": "3129" }, { "label": "FantaCola", "value": "2306" }, { "label": "Fantasy", "value": "397" }, { "label": "Fantasybos", "value": "2552" }, { "label": "FantasyCre", "value": "516" }, { "label": "FantasyCre", "value": "3101" }, { "label": "Fantasyfut", "value": "1795" }, { "label": "FantasyMag", "value": "382" }, { "label": "Fantasyrom", "value": "3184" }, { "label": "FantasyWor", "value": "189" }, { "label": "Farm", "value": "1694" }, { "label": "Farmer", "value": "3267" }, { "label": "Farming", "value": "96" }, { "label": "FarmingTex", "value": "1264" }, { "label": "FastCultiv", "value": "239" }, { "label": "FastGrowth", "value": "1315" }, { "label": "FastLearne", "value": "240" }, { "label": "Fastpace", "value": "3204" }, { "label": "Fastpaced", "value": "3182" }, { "label": "fasttravel", "value": "3109" }, { "label": "FastWearin", "value": "1503" }, { "label": "FatDiddy", "value": "2649" }, { "label": "Fatedlove", "value": "3157" }, { "label": "FatedLover", "value": "437" }, { "label": "fatedxd", "value": "1453" }, { "label": "FateSeries", "value": "1621" }, { "label": "Fatestayni", "value": "2995" }, { "label": "fatmanoffa", "value": "2098" }, { "label": "FatProtago", "value": "349" }, { "label": "FattoFit", "value": "480" }, { "label": "Faucet", "value": "2770" }, { "label": "Favoritebl", "value": "2149" }, { "label": "Favoriteco", "value": "2823" }, { "label": "FearlessPr", "value": "402" }, { "label": "FeiLuEdiso", "value": "1986" }, { "label": "Fellatio", "value": "204" }, { "label": "FemaleEmpe", "value": "3073" }, { "label": "FemaleFigh", "value": "1622" }, { "label": "FemaleLead", "value": "1305" }, { "label": "FemaleMast", "value": "395" }, { "label": "FemaleMast", "value": "595" }, { "label": "FemaleMC", "value": "1440" }, { "label": "FemalePart", "value": "3107" }, { "label": "FemalePres", "value": "1495" }, { "label": "Femaleprot", "value": "1272" }, { "label": "FemaleProt", "value": "55" }, { "label": "FemaleProt", "value": "1051" }, { "label": "FemaleProt", "value": "2953" }, { "label": "FemaleSpie", "value": "1529" }, { "label": "FemalesPro", "value": "1224" }, { "label": "FemaletoMa", "value": "696" }, { "label": "Fengqing", "value": "2463" }, { "label": "FengShui", "value": "532" }, { "label": "FengziXiao", "value": "2109" }, { "label": "FerrariEnz", "value": "1970" }, { "label": "Fiction", "value": "3213" }, { "label": "fierce", "value": "2165" }, { "label": "Fifi&03", "value": "2868" }, { "label": "FifthEmper", "value": "2493" }, { "label": "Fightforhe", "value": "3116" }, { "label": "Fighting", "value": "1003" }, { "label": "FightingCo", "value": "2490" }, { "label": "Filipino", "value": "1713" }, { "label": "FilipinoNo", "value": "1712" }, { "label": "Finance", "value": "2935" }, { "label": "Firearms", "value": "137" }, { "label": "Fireinthes", "value": "2079" }, { "label": "fireonfire", "value": "2657" }, { "label": "Firethief", "value": "1842" }, { "label": "FireWinged", "value": "2421" }, { "label": "First-time", "value": "850" }, { "label": "First-time", "value": "481" }, { "label": "firstgreen", "value": "2595" }, { "label": "FirstLove", "value": "454" }, { "label": "firstperso", "value": "2017" }, { "label": "fishandraf", "value": "2512" }, { "label": "fisheatpan", "value": "2630" }, { "label": "fishfishda", "value": "2119" }, { "label": "Fishheadis", "value": "2870" }, { "label": "fishinflam", "value": "2817" }, { "label": "Fishing", "value": "1176" }, { "label": "fishswimmi", "value": "2834" }, { "label": "flamingfla", "value": "1884" }, { "label": "Flashbacks", "value": "616" }, { "label": "FleetBattl", "value": "626" }, { "label": "Fllatio", "value": "744" }, { "label": "Floatingli", "value": "2614" }, { "label": "flowersoft", "value": "2872" }, { "label": "flyingcow", "value": "2598" }, { "label": "flyingfish", "value": "2183" }, { "label": "flyinglitt", "value": "2581" }, { "label": "FlyingLuTi", "value": "2340" }, { "label": "flyingshar", "value": "2777" }, { "label": "flyingsqui", "value": "2408" }, { "label": "Flyingwhit", "value": "2738" }, { "label": "flyinthelo", "value": "2675" }, { "label": "Focusonexp", "value": "3249" }, { "label": "Folklore", "value": "673" }, { "label": "Followthew", "value": "2133" }, { "label": "Food", "value": "824" }, { "label": "FoodWars!", "value": "1369" }, { "label": "Football", "value": "134" }, { "label": "Forbiddenl", "value": "3190" }, { "label": "Forcedinto", "value": "619" }, { "label": "ForcedLivi", "value": "683" }, { "label": "ForcedMarr", "value": "609" }, { "label": "Foreigncou", "value": "3277" }, { "label": "forest", "value": "2174" }, { "label": "ForgetfulP", "value": "420" }, { "label": "Forgiveyou", "value": "2249" }, { "label": "Formation", "value": "3076" }, { "label": "Formations", "value": "150" }, { "label": "FormerHero", "value": "711" }, { "label": "formworksk", "value": "2882" }, { "label": "Fourkeys", "value": "2494" }, { "label": "FourthDisa", "value": "1328" }, { "label": "FoxdemonXi", "value": "2415" }, { "label": "foxlisteni", "value": "1867" }, { "label": "FoxSpirits", "value": "325" }, { "label": "France", "value": "1533" }, { "label": "Friction", "value": "901" }, { "label": "Friday", "value": "1939" }, { "label": "FriendsBec", "value": "650" }, { "label": "Friendship", "value": "501" }, { "label": "Friendstol", "value": "3192" }, { "label": "Fujoshi", "value": "576" }, { "label": "Fullcolor", "value": "3053" }, { "label": "fullmeal", "value": "2212" }, { "label": "Funny", "value": "3089" }, { "label": "furioussna", "value": "2380" }, { "label": "Furutake", "value": "3275" }, { "label": "Fusión", "value": "1326" }, { "label": "FusionFant", "value": "1064" }, { "label": "Futanari", "value": "496" }, { "label": "Future", "value": "1741" }, { "label": "FutureCivi", "value": "542" }, { "label": "FutureCivi", "value": "1299" }, { "label": "futuredyst", "value": "3134" }, { "label": "futureworl", "value": "2949" }, { "label": "Futuristic", "value": "241" }, { "label": "Futuristic", "value": "1016" }, { "label": "gacha", "value": "3211" }, { "label": "Galacticos", "value": "1958" }, { "label": "Galaxyboy", "value": "2282" }, { "label": "GalaxyWars", "value": "1317" }, { "label": "Gambling", "value": "89" }, { "label": "Game", "value": "827" }, { "label": "gamealien", "value": "3233" }, { "label": "Gamedesign", "value": "937" }, { "label": "gameelemen", "value": "1665" }, { "label": "GameElemen", "value": "8" }, { "label": "GameElemen", "value": "858" }, { "label": "GameLit", "value": "3041" }, { "label": "GameofThro", "value": "2998" }, { "label": "GameOnline", "value": "1487" }, { "label": "GameRangki", "value": "1292" }, { "label": "GameRankin", "value": "443" }, { "label": "Gamers", "value": "190" }, { "label": "gameworld", "value": "1266" }, { "label": "Gaming", "value": "1178" }, { "label": "GamingE-Sp", "value": "336" }, { "label": "Gangs", "value": "143" }, { "label": "Gangster", "value": "3279" }, { "label": "Gangsters", "value": "90" }, { "label": "GaoYuanyao", "value": "2727" }, { "label": "GatetoAnot", "value": "326" }, { "label": "Geass", "value": "1626" }, { "label": "Genderbend", "value": "1054" }, { "label": "Genderless", "value": "697" }, { "label": "Genderless", "value": "1670" }, { "label": "GeneModifi", "value": "1367" }, { "label": "Generals", "value": "513" }, { "label": "GeneralXie", "value": "2837" }, { "label": "GeneticMod", "value": "285" }, { "label": "Genies", "value": "726" }, { "label": "genius", "value": "1467" }, { "label": "geniusflow", "value": "3244" }, { "label": "GeniusProt", "value": "252" }, { "label": "Genshin", "value": "1546" }, { "label": "GenshinImp", "value": "1372" }, { "label": "GentleLove", "value": "1792" }, { "label": "gentleman", "value": "2027" }, { "label": "GentleProt", "value": "1765" }, { "label": "GetRich", "value": "1760" }, { "label": "Gettingbac", "value": "3170" }, { "label": "Ghost", "value": "660" }, { "label": "Ghostexter", "value": "2740" }, { "label": "Ghosts", "value": "82" }, { "label": "Ghostsinre", "value": "2441" }, { "label": "giantpanda", "value": "2902" }, { "label": "Giants", "value": "164" }, { "label": "GingerLemo", "value": "2985" }, { "label": "Girl&03", "value": "1237" }, { "label": "giveyoutim", "value": "2094" }, { "label": "Glasses-we", "value": "506" }, { "label": "Glasses-we", "value": "690" }, { "label": "GLL", "value": "2372" }, { "label": "Go", "value": "1981" }, { "label": "goallist", "value": "2725" }, { "label": "Goblins", "value": "9" }, { "label": "God", "value": "1349" }, { "label": "God-humanR", "value": "618" }, { "label": "God&039", "value": "2210" }, { "label": "GodandDevi", "value": "1544" }, { "label": "Goddess", "value": "1611" }, { "label": "goddessbos", "value": "2411" }, { "label": "Goddesses", "value": "444" }, { "label": "Goddidnotg", "value": "2451" }, { "label": "GodLikeMC", "value": "1480" }, { "label": "GodlyPower", "value": "383" }, { "label": "GodlyPower", "value": "1618" }, { "label": "GodlyProta", "value": "1085" }, { "label": "godofduel", "value": "1948" }, { "label": "GodofForti", "value": "2037" }, { "label": "Godofwings", "value": "2366" }, { "label": "GodProtago", "value": "191" }, { "label": "Gods", "value": "242" }, { "label": "godsaltedf", "value": "2650" }, { "label": "Godzilla", "value": "1753" }, { "label": "Golden", "value": "2699" }, { "label": "GoldenFing", "value": "1083" }, { "label": "goldenfore", "value": "2810" }, { "label": "goldfinger", "value": "1980" }, { "label": "goldrush", "value": "3081" }, { "label": "Golems", "value": "156" }, { "label": "GoneStrawb", "value": "2116" }, { "label": "gongregret", "value": "3064" }, { "label": "good-natur", "value": "2712" }, { "label": "goodpotdre", "value": "1909" }, { "label": "Gooifyouca", "value": "2533" }, { "label": "Gore", "value": "10" }, { "label": "goslowbro", "value": "1900" }, { "label": "gossip", "value": "2088" }, { "label": "Gotaki", "value": "2129" }, { "label": "Gourmet", "value": "1587" }, { "label": "Government", "value": "1653" }, { "label": "GradeXNUMX", "value": "1837" }, { "label": "Grandpa", "value": "3290" }, { "label": "gravityfal", "value": "1477" }, { "label": "GreatCeles", "value": "2353" }, { "label": "GreatSage", "value": "2075" }, { "label": "GreedyProt", "value": "1263" }, { "label": "GreekMytho", "value": "1067" }, { "label": "greentea", "value": "1818" }, { "label": "Grimdark", "value": "60" }, { "label": "Grinding", "value": "625" }, { "label": "GroupChat", "value": "1323" }, { "label": "GroupPet", "value": "2954" }, { "label": "Growth", "value": "1024" }, { "label": "Growthsyst", "value": "1039" }, { "label": "grudges", "value": "3272" }, { "label": "Grupchat", "value": "1514" }, { "label": "GuardianRe", "value": "614" }, { "label": "Guilds", "value": "11" }, { "label": "GuiltyScis", "value": "2640" }, { "label": "Gundam", "value": "1784" }, { "label": "Gunfighter", "value": "518" }, { "label": "GuShaoxia", "value": "1887" }, { "label": "H11H", "value": "2798" }, { "label": "Hacker", "value": "1076" }, { "label": "Hackers", "value": "205" }, { "label": "Haikyuu", "value": "1810" }, { "label": "HakoniwaSe", "value": "2438" }, { "label": "Half-human", "value": "557" }, { "label": "halfanoran", "value": "2679" }, { "label": "halfstepge", "value": "2522" }, { "label": "Halo", "value": "821" }, { "label": "Haminstant", "value": "2753" }, { "label": "Handjob", "value": "782" }, { "label": "Handsomegu", "value": "2851" }, { "label": "HandsomeMa", "value": "177" }, { "label": "HandsomeMa", "value": "1696" }, { "label": "handsomeon", "value": "2669" }, { "label": "HandsomePr", "value": "1241" }, { "label": "handtearin", "value": "2399" }, { "label": "HaotianExt", "value": "2397" }, { "label": "HaoyuYingx", "value": "2986" }, { "label": "Happy", "value": "1202" }, { "label": "HappyBeanl", "value": "2213" }, { "label": "HappyEndin", "value": "838" }, { "label": "HappyFlow", "value": "2886" }, { "label": "Hard-Worki", "value": "178" }, { "label": "HardBoiled", "value": "1027" }, { "label": "HardSci-fi", "value": "3003" }, { "label": "Hardworkin", "value": "1218" }, { "label": "Harem", "value": "157" }, { "label": "Harem-seek", "value": "195" }, { "label": "Haremismta", "value": "2580" }, { "label": "HaremSeeki", "value": "1257" }, { "label": "harrypotte", "value": "1474" }, { "label": "HarryPotte", "value": "185" }, { "label": "HarshTrain", "value": "554" }, { "label": "Hashihime", "value": "2137" }, { "label": "HatedProta", "value": "477" }, { "label": "Hawkeye", "value": "2364" }, { "label": "Healers", "value": "719" }, { "label": "Healing", "value": "1511" }, { "label": "Healthewor", "value": "2358" }, { "label": "heartandey", "value": "2678" }, { "label": "HeartBreak", "value": "3083" }, { "label": "Heartful", "value": "985" }, { "label": "HeartHunte", "value": "2741" }, { "label": "Heartthrob", "value": "3172" }, { "label": "Heartwarmi", "value": "450" }, { "label": "Heaven", "value": "548" }, { "label": "heavenclea", "value": "2588" }, { "label": "HeavenlyTr", "value": "529" }, { "label": "heavensong", "value": "2594" }, { "label": "Hegemony", "value": "2944" }, { "label": "Hell", "value": "549" }, { "label": "HelpfulPro", "value": "376" }, { "label": "Hero", "value": "26" }, { "label": "HeroandDem", "value": "988" }, { "label": "Heroes", "value": "551" }, { "label": "Heroesofth", "value": "1999" }, { "label": "heroine", "value": "1819" }, { "label": "Heterochro", "value": "1701" }, { "label": "hey", "value": "2134" }, { "label": "hi", "value": "2034" }, { "label": "HiddenAbil", "value": "215" }, { "label": "HiddenBoss", "value": "1520" }, { "label": "HiddenIden", "value": "1614" }, { "label": "HiddenIden", "value": "1262" }, { "label": "Hiddenmarr", "value": "3187" }, { "label": "HiddenTrue", "value": "1154" }, { "label": "hiddenvest", "value": "1252" }, { "label": "HiddenYrue", "value": "1180" }, { "label": "HidingAbil", "value": "712" }, { "label": "HidingTrue", "value": "231" }, { "label": "HidingTrue", "value": "243" }, { "label": "HidingTrue", "value": "1134" }, { "label": "HidingTrue", "value": "1077" }, { "label": "HighFantas", "value": "1719" }, { "label": "highiq", "value": "1475" }, { "label": "HighSchool", "value": "1053" }, { "label": "HighSchool", "value": "1672" }, { "label": "Higu", "value": "2145" }, { "label": "Hikusei", "value": "3246" }, { "label": "HisMajesty", "value": "2472" }, { "label": "Historical", "value": "828" }, { "label": "history", "value": "1131" }, { "label": "hitten", "value": "2973" }, { "label": "HJGrandPri", "value": "994" }, { "label": "Hndjob", "value": "784" }, { "label": "Hogwarts", "value": "1644" }, { "label": "Hollywood", "value": "935" }, { "label": "holyangel", "value": "2051" }, { "label": "HolyKingRa", "value": "1862" }, { "label": "Homeaffair", "value": "968" }, { "label": "HomeAttrib", "value": "2407" }, { "label": "HomeDrama", "value": "976" }, { "label": "Homunculus", "value": "1029" }, { "label": "HonestandR", "value": "2688" }, { "label": "HonestProt", "value": "492" }, { "label": "HongfeiQin", "value": "2659" }, { "label": "HonghuangN", "value": "2574" }, { "label": "Honghuangs", "value": "2253" }, { "label": "HongmengSh", "value": "1823" }, { "label": "HongTang", "value": "1924" }, { "label": "HonkaiImpa", "value": "1425" }, { "label": "horror", "value": "825" }, { "label": "horrorgod", "value": "2430" }, { "label": "Hospital", "value": "572" }, { "label": "Hot-bloode", "value": "540" }, { "label": "HotBlood", "value": "2977" }, { "label": "Hotels", "value": "872" }, { "label": "hotpot", "value": "2783" }, { "label": "houseprope", "value": "2452" }, { "label": "howlingpig", "value": "2351" }, { "label": "howlingwin", "value": "2840" }, { "label": "HuanHuanHu", "value": "2107" }, { "label": "Huijingund", "value": "2277" }, { "label": "HuiMochou", "value": "2035" }, { "label": "Human-Nonh", "value": "327" }, { "label": "HumanExper", "value": "407" }, { "label": "HumanExper", "value": "1441" }, { "label": "HumanoidPr", "value": "629" }, { "label": "HumanWeapo", "value": "742" }, { "label": "humla", "value": "2258" }, { "label": "Hunter", "value": "3030" }, { "label": "Hunter×Hu", "value": "2961" }, { "label": "hunterkill", "value": "1927" }, { "label": "Hunters", "value": "80" }, { "label": "HunterxHun", "value": "1391" }, { "label": "HuTiandi", "value": "2426" }, { "label": "HxH", "value": "1105" }, { "label": "hyperknigh", "value": "1965" }, { "label": "Hypnotism", "value": "785" }, { "label": "I&039ma", "value": "2227" }, { "label": "I&039mo", "value": "2390" }, { "label": "Iamapirate", "value": "2362" }, { "label": "Iamarealdi", "value": "2346" }, { "label": "IamAsi", "value": "2806" }, { "label": "iamatravel", "value": "1966" }, { "label": "Iamfifth", "value": "2356" }, { "label": "IamGuanxi", "value": "2466" }, { "label": "Iamhell", "value": "2482" }, { "label": "IamHisMaje", "value": "2337" }, { "label": "Iamnotaloc", "value": "2054" }, { "label": "Iamolderth", "value": "2309" }, { "label": "Iamoldwolf", "value": "2757" }, { "label": "Iamthemurd", "value": "2835" }, { "label": "Iamtheseak", "value": "1943" }, { "label": "Iamtheseco", "value": "2707" }, { "label": "Iamtwenty-", "value": "2663" }, { "label": "Iateeightc", "value": "2969" }, { "label": "Ibuprofen", "value": "2639" }, { "label": "icalledthe", "value": "2076" }, { "label": "IcedDurian", "value": "2888" }, { "label": "icewalk", "value": "2009" }, { "label": "IdentityCr", "value": "724" }, { "label": "Idol", "value": "1353" }, { "label": "idon&03", "value": "2232" }, { "label": "idropbaby", "value": "1878" }, { "label": "ieatgrass", "value": "2670" }, { "label": "Ifyoucango", "value": "2158" }, { "label": "ihavethere", "value": "2829" }, { "label": "Ijustwantt", "value": "1944" }, { "label": "Iliveupsta", "value": "2053" }, { "label": "Illigitima", "value": "1757" }, { "label": "Ilo", "value": "1829" }, { "label": "ilovewoo", "value": "2764" }, { "label": "Immortal", "value": "1123" }, { "label": "ImmortalBi", "value": "2717" }, { "label": "ImmortalEm", "value": "3253" }, { "label": "ImmortalMa", "value": "2836" }, { "label": "Immortals", "value": "79" }, { "label": "imperialco", "value": "1510" }, { "label": "ImperialEx", "value": "3010" }, { "label": "ImperialFa", "value": "1135" }, { "label": "ImperialHa", "value": "193" }, { "label": "Imposter", "value": "3142" }, { "label": "Incest", "value": "341" }, { "label": "Indecisive", "value": "431" }, { "label": "Indonesia", "value": "1718" }, { "label": "IndonesiaN", "value": "1717" }, { "label": "industrial", "value": "3028" }, { "label": "Industrial", "value": "535" }, { "label": "Industry", "value": "1321" }, { "label": "industryel", "value": "3138" }, { "label": "Inferior", "value": "3084" }, { "label": "Inferiorit", "value": "611" }, { "label": "Infernalco", "value": "2112" }, { "label": "infinite", "value": "1418" }, { "label": "InfiniteBu", "value": "2228" }, { "label": "InfiniteFl", "value": "1344" }, { "label": "Infiniteme", "value": "2073" }, { "label": "infinitesu", "value": "2590" }, { "label": "InfinitySt", "value": "957" }, { "label": "infrastrac", "value": "1424" }, { "label": "Infrastruc", "value": "1433" }, { "label": "Inheritanc", "value": "553" }, { "label": "Ink", "value": "2861" }, { "label": "InnerVoice", "value": "1677" }, { "label": "Inscriptio", "value": "727" }, { "label": "Insects", "value": "257" }, { "label": "insitu", "value": "2880" }, { "label": "Intercept0", "value": "2029" }, { "label": "Intercept0", "value": "2865" }, { "label": "Interconne", "value": "1056" }, { "label": "Interdimen", "value": "357" }, { "label": "Interestel", "value": "897" }, { "label": "Interstell", "value": "870" }, { "label": "Intimate", "value": "1011" }, { "label": "Introverte", "value": "452" }, { "label": "Inuyasha", "value": "938" }, { "label": "Investigat", "value": "698" }, { "label": "Investigat", "value": "1214" }, { "label": "Invincible", "value": "3199" }, { "label": "Invincible", "value": "1849" }, { "label": "Invincible", "value": "1913" }, { "label": "Invincible", "value": "1922" }, { "label": "Invincible", "value": "1993" }, { "label": "Invincible", "value": "3266" }, { "label": "IronMaiden", "value": "2966" }, { "label": "ironpillar", "value": "2373" }, { "label": "IronThanos", "value": "2730" }, { "label": "Isekai", "value": "846" }, { "label": "IsekaiBatt", "value": "977" }, { "label": "isitnecess", "value": "2114" }, { "label": "IsItWrongt", "value": "1725" }, { "label": "Isuckbrown", "value": "2140" }, { "label": "IsumiLily", "value": "2529" }, { "label": "It&039s", "value": "2218" }, { "label": "Itsdaybrea", "value": "2151" }, { "label": "iwantmoney", "value": "2507" }, { "label": "Iwanttobea", "value": "2543" }, { "label": "Iwanttobeo", "value": "2579" }, { "label": "iwanttoeat", "value": "2876" }, { "label": "iwanttogot", "value": "2701" }, { "label": "Iwishyouat", "value": "2157" }, { "label": "JackieChan", "value": "2931" }, { "label": "JackofAllT", "value": "196" }, { "label": "jadeeveryy", "value": "2378" }, { "label": "JangSeok-g", "value": "1834" }, { "label": "Japan", "value": "1354" }, { "label": "Japanese", "value": "1710" }, { "label": "JapIdols", "value": "873" }, { "label": "Jazz", "value": "2746" }, { "label": "Jealousy", "value": "448" }, { "label": "jellyjelly", "value": "2542" }, { "label": "Jianghu", "value": "1306" }, { "label": "Jiangshi", "value": "604" }, { "label": "Jianjiamix", "value": "2422" }, { "label": "JinglongTa", "value": "2820" }, { "label": "Jiutianyu", "value": "2211" }, { "label": "JoblessCla", "value": "1052" }, { "label": "John117", "value": "2704" }, { "label": "JoJo", "value": "2921" }, { "label": "JoJo&03", "value": "2922" }, { "label": "JojoBizarr", "value": "1170" }, { "label": "JOJOWE", "value": "1998" }, { "label": "Josei", "value": "856" }, { "label": "Journeytot", "value": "1379" }, { "label": "joydrummer", "value": "2050" }, { "label": "JujutsuKai", "value": "1171" }, { "label": "Juliet", "value": "1846" }, { "label": "JunCaiXing", "value": "2854" }, { "label": "JuniorSist", "value": "2219" }, { "label": "justshout", "value": "2858" }, { "label": "juvenile", "value": "3228" }, { "label": "K-popIdols", "value": "1150" }, { "label": "Kafkajumpi", "value": "2074" }, { "label": "KamenRider", "value": "956" }, { "label": "kendo", "value": "3219" }, { "label": "keytocome", "value": "2492" }, { "label": "Kidnapping", "value": "310" }, { "label": "killdecisi", "value": "3235" }, { "label": "Killer", "value": "3143" }, { "label": "Killthewor", "value": "2233" }, { "label": "Kindergart", "value": "1796" }, { "label": "KindLoveIn", "value": "652" }, { "label": "KindomBuil", "value": "1499" }, { "label": "KindProtag", "value": "1501" }, { "label": "King", "value": "1935" }, { "label": "KingAsura", "value": "2431" }, { "label": "Kingdom", "value": "1667" }, { "label": "Kingdom-bu", "value": "1195" }, { "label": "KingdomBui", "value": "71" }, { "label": "KingdomBui", "value": "153" }, { "label": "Kingdoms", "value": "66" }, { "label": "KingdomsKn", "value": "451" }, { "label": "KingKonggo", "value": "2697" }, { "label": "kingofdeat", "value": "2654" }, { "label": "KingofDest", "value": "1863" }, { "label": "KingofMons", "value": "2475" }, { "label": "kingpirate", "value": "2225" }, { "label": "Kiritani", "value": "2576" }, { "label": "Kneelingan", "value": "2857" }, { "label": "Kneelingth", "value": "2344" }, { "label": "KnifePromi", "value": "2044" }, { "label": "Knight", "value": "865" }, { "label": "Knights", "value": "15" }, { "label": "KnightsLev", "value": "563" }, { "label": "Knowledgeo", "value": "924" }, { "label": "Knowtheric", "value": "2519" }, { "label": "Koi", "value": "1615" }, { "label": "Kojin", "value": "2255" }, { "label": "KonohaVoll", "value": "2591" }, { "label": "Korean", "value": "1038" }, { "label": "KoreanNove", "value": "1362" }, { "label": "KpopIdols", "value": "874" }, { "label": "KurokonoBa", "value": "926" }, { "label": "KurongTemp", "value": "2046" }, { "label": "Kuudere", "value": "478" }, { "label": "KwunTong", "value": "2081" }, { "label": "laborhonor", "value": "2586" }, { "label": "lackofboat", "value": "2302" }, { "label": "LackofComm", "value": "277" }, { "label": "LacquerNig", "value": "2139" }, { "label": "LaidBack", "value": "3044" }, { "label": "LameHaoisa", "value": "2345" }, { "label": "langyalist", "value": "2469" }, { "label": "LaoLaoXu", "value": "2110" }, { "label": "LateRomanc", "value": "83" }, { "label": "laurel", "value": "2241" }, { "label": "Lawyers", "value": "358" }, { "label": "lazy", "value": "3020" }, { "label": "lazydevil", "value": "2159" }, { "label": "LazyProtag", "value": "303" }, { "label": "Leadership", "value": "345" }, { "label": "LeagueofLe", "value": "845" }, { "label": "Leapeveryd", "value": "2381" }, { "label": "Legend", "value": "682" }, { "label": "Legends", "value": "792" }, { "label": "LeiJiedoes", "value": "1971" }, { "label": "Leisurelys", "value": "2471" }, { "label": "LeiXunqing", "value": "2980" }, { "label": "lemonandsi", "value": "2327" }, { "label": "lendmefive", "value": "2898" }, { "label": "lesstime", "value": "1883" }, { "label": "LevelSyste", "value": "33" }, { "label": "Levelup", "value": "3141" }, { "label": "lgbt", "value": "1476" }, { "label": "Liar", "value": "1209" }, { "label": "Library", "value": "568" }, { "label": "Life", "value": "3085" }, { "label": "LifeScript", "value": "1764" }, { "label": "Lightnings", "value": "2203" }, { "label": "lightnovel", "value": "1454" }, { "label": "LightNovel", "value": "1711" }, { "label": "LiJunhao", "value": "2816" }, { "label": "LikeaDrago", "value": "1942" }, { "label": "LikeaDrago", "value": "1945" }, { "label": "LikeMeiAox", "value": "2643" }, { "label": "Lillie", "value": "2709" }, { "label": "LimitedLif", "value": "578" }, { "label": "LimitlessF", "value": "124" }, { "label": "LiMumu", "value": "2322" }, { "label": "LinBei", "value": "2785" }, { "label": "Lindentree", "value": "2808" }, { "label": "Lingran", "value": "2127" }, { "label": "LingshanIs", "value": "2715" }, { "label": "LinXiufigh", "value": "2723" }, { "label": "LinZhengyi", "value": "2631" }, { "label": "ListAdvent", "value": "3054" }, { "label": "ListCreati", "value": "1388" }, { "label": "listentoth", "value": "2782" }, { "label": "literature", "value": "1463" }, { "label": "literature", "value": "126" }, { "label": "LitRPG", "value": "1080" }, { "label": "littleahxi", "value": "2236" }, { "label": "littlebrot", "value": "2331" }, { "label": "littlecray", "value": "2878" }, { "label": "littledemo", "value": "2171" }, { "label": "littledete", "value": "2866" }, { "label": "littledevi", "value": "2393" }, { "label": "littlefing", "value": "2429" }, { "label": "littlefox", "value": "2189" }, { "label": "littlehson", "value": "2040" }, { "label": "littlemoon", "value": "2080" }, { "label": "littlesuns", "value": "2359" }, { "label": "littlewate", "value": "2910" }, { "label": "LittleWhit", "value": "3029" }, { "label": "littlewind", "value": "2611" }, { "label": "littlezlov", "value": "2068" }, { "label": "LiuYujun", "value": "2458" }, { "label": "Livebroadc", "value": "886" }, { "label": "LiveBroadc", "value": "912" }, { "label": "LiverPigeo", "value": "2072" }, { "label": "LiveStream", "value": "851" }, { "label": "LiveStream", "value": "1640" }, { "label": "LivingAlon", "value": "602" }, { "label": "LiWudi", "value": "1915" }, { "label": "Loli", "value": "630" }, { "label": "Lolicon", "value": "29" }, { "label": "LoliProtag", "value": "1554" }, { "label": "LoneCloudP", "value": "2275" }, { "label": "lonelyboy", "value": "2541" }, { "label": "LonelyCity", "value": "2049" }, { "label": "Lonelynota", "value": "2023" }, { "label": "Loner", "value": "1068" }, { "label": "LonerProta", "value": "453" }, { "label": "Long-dista", "value": "783" }, { "label": "longlivedm", "value": "2916" }, { "label": "longlivemy", "value": "2491" }, { "label": "Longlivesa", "value": "2618" }, { "label": "Longliveth", "value": "2480" }, { "label": "Longliveth", "value": "2718" }, { "label": "LongMengme", "value": "2324" }, { "label": "Longpigeon", "value": "2427" }, { "label": "LongSepara", "value": "493" }, { "label": "LongStrip", "value": "3055" }, { "label": "Lord", "value": "3005" }, { "label": "LordAbilit", "value": "1767" }, { "label": "LordGodSpa", "value": "1624" }, { "label": "LordoftheM", "value": "1196" }, { "label": "LordoftheS", "value": "2019" }, { "label": "LordTiansh", "value": "2671" }, { "label": "LordZhangj", "value": "2371" }, { "label": "Loseafewpo", "value": "1963" }, { "label": "LostCivili", "value": "789" }, { "label": "Lottery", "value": "393" }, { "label": "Love", "value": "1535" }, { "label": "Loveafterm", "value": "3203" }, { "label": "LoveandMar", "value": "1434" }, { "label": "LoveatFirs", "value": "494" }, { "label": "LoveComedy", "value": "950" }, { "label": "LoveContra", "value": "1612" }, { "label": "LoveIntere", "value": "184" }, { "label": "LoveIntere", "value": "1662" }, { "label": "LoveIntere", "value": "1699" }, { "label": "LoveRivals", "value": "677" }, { "label": "LoversReun", "value": "438" }, { "label": "Lovesnacks", "value": "2222" }, { "label": "lovetease", "value": "2847" }, { "label": "Lovetriang", "value": "3168" }, { "label": "LoveTriang", "value": "646" }, { "label": "lovingfami", "value": "1446" }, { "label": "Low-keylux", "value": "2877" }, { "label": "Low-keyPro", "value": "244" }, { "label": "LowFantasy", "value": "1688" }, { "label": "LowKeyMc", "value": "1139" }, { "label": "LowkeyProt", "value": "1229" }, { "label": "LoyalProta", "value": "1341" }, { "label": "LoyalSubor", "value": "389" }, { "label": "LoyalSubor", "value": "3006" }, { "label": "LoyalSurbo", "value": "1635" }, { "label": "lu11034363", "value": "2799" }, { "label": "Luck", "value": "1616" }, { "label": "LuckPlunde", "value": "1763" }, { "label": "Lucky", "value": "3066" }, { "label": "LuckyProta", "value": "332" }, { "label": "LuDehua", "value": "2168" }, { "label": "LuoTianyi", "value": "1904" }, { "label": "LuoWei", "value": "2033" }, { "label": "LuoXIV", "value": "2593" }, { "label": "LuoYuqianq", "value": "2814" }, { "label": "Luxury", "value": "875" }, { "label": "LY", "value": "2504" }, { "label": "machine", "value": "3112" }, { "label": "Mafia", "value": "961" }, { "label": "Mag", "value": "3198" }, { "label": "Mage", "value": "1297" }, { "label": "Magic", "value": "1" }, { "label": "MagicalAbi", "value": "1490" }, { "label": "MagicalBat", "value": "1623" }, { "label": "magicalgir", "value": "1787" }, { "label": "MagicalSpa", "value": "219" }, { "label": "MagicalTec", "value": "318" }, { "label": "MagicBeast", "value": "317" }, { "label": "MagicForma", "value": "394" }, { "label": "Magician", "value": "1258" }, { "label": "MagicOne", "value": "2660" }, { "label": "MagicTides", "value": "2434" }, { "label": "MagicWorld", "value": "1158" }, { "label": "Maid", "value": "1596" }, { "label": "Maids", "value": "502" }, { "label": "Makeafortu", "value": "2695" }, { "label": "makeamirac", "value": "2290" }, { "label": "Malaysian", "value": "1716" }, { "label": "MalaysianN", "value": "1715" }, { "label": "Male-Lead", "value": "1400" }, { "label": "Male-Prota", "value": "1428" }, { "label": "MaleLead", "value": "655" }, { "label": "MaleMain-l", "value": "1253" }, { "label": "Malemainch", "value": "2917" }, { "label": "MaleMc", "value": "1140" }, { "label": "Maleprotag", "value": "1339" }, { "label": "MaleProtag", "value": "187" }, { "label": "MaleProtag", "value": "2940" }, { "label": "MaleProtag", "value": "1081" }, { "label": "MaleProtag", "value": "1309" }, { "label": "MaletoFema", "value": "631" }, { "label": "MaleYander", "value": "428" }, { "label": "mambafight", "value": "2780" }, { "label": "man", "value": "2231" }, { "label": "Management", "value": "400" }, { "label": "Mangaka", "value": "817" }, { "label": "MangaUP!Aw", "value": "978" }, { "label": "MangoKK", "value": "2479" }, { "label": "Manhua", "value": "3056" }, { "label": "maninnarut", "value": "2525" }, { "label": "Manipulati", "value": "346" }, { "label": "Manipulati", "value": "1517" }, { "label": "ManlyGayCo", "value": "733" }, { "label": "Mansour", "value": "1010" }, { "label": "mapleleafb", "value": "2537" }, { "label": "MarquisofB", "value": "1989" }, { "label": "Marriage", "value": "254" }, { "label": "MarriageCo", "value": "1579" }, { "label": "Marriageof", "value": "473" }, { "label": "Married", "value": "1281" }, { "label": "MarriedCou", "value": "1793" }, { "label": "Martialart", "value": "197" }, { "label": "Martialart", "value": "954" }, { "label": "MartialArt", "value": "1508" }, { "label": "MartialSpi", "value": "246" }, { "label": "MartialSpi", "value": "1414" }, { "label": "Marvel", "value": "385" }, { "label": "MarvelKing", "value": "2173" }, { "label": "MarvelPudd", "value": "2600" }, { "label": "MarvelUniv", "value": "386" }, { "label": "marvelworl", "value": "1820" }, { "label": "Marysue", "value": "3175" }, { "label": "MaskedAce", "value": "1903" }, { "label": "MaskedArmo", "value": "2733" }, { "label": "Masochisti", "value": "270" }, { "label": "Masquerade", "value": "2291" }, { "label": "Massacre", "value": "1673" }, { "label": "Massive", "value": "1120" }, { "label": "MassiveHar", "value": "862" }, { "label": "Master-App", "value": "1274" }, { "label": "Master-Dis", "value": "292" }, { "label": "Master-Ser", "value": "523" }, { "label": "Masterball", "value": "2320" }, { "label": "MasterofSi", "value": "2869" }, { "label": "Masturbati", "value": "645" }, { "label": "Matchmadei", "value": "1779" }, { "label": "math", "value": "1822" }, { "label": "Matriarchy", "value": "582" }, { "label": "Mature", "value": "3017" }, { "label": "MatureProt", "value": "564" }, { "label": "MCStrongFr", "value": "1545" }, { "label": "Mech", "value": "3271" }, { "label": "Mecha", "value": "162" }, { "label": "Medical", "value": "3074" }, { "label": "medicalfem", "value": "3135" }, { "label": "MedicalKno", "value": "275" }, { "label": "MedicalKno", "value": "1155" }, { "label": "Medicine", "value": "81" }, { "label": "medicineme", "value": "2752" }, { "label": "Medieval", "value": "537" }, { "label": "meetthebea", "value": "2195" }, { "label": "MemoryLoss", "value": "1555" }, { "label": "MemoryReve", "value": "1783" }, { "label": "MentalIlln", "value": "1854" }, { "label": "Meowingbig", "value": "2126" }, { "label": "meowmeow", "value": "2120" }, { "label": "Mercenarie", "value": "586" }, { "label": "Mercenary", "value": "140" }, { "label": "Merchant", "value": "2925" }, { "label": "Merchants", "value": "695" }, { "label": "mermaid", "value": "2915" }, { "label": "Middleage", "value": "1484" }, { "label": "MiddleAges", "value": "3205" }, { "label": "Military", "value": "139" }, { "label": "Milkgather", "value": "2893" }, { "label": "milkgrandm", "value": "2319" }, { "label": "Millionair", "value": "1496" }, { "label": "millionord", "value": "2412" }, { "label": "Miluo", "value": "2303" }, { "label": "Mimicry", "value": "1754" }, { "label": "MindBreak", "value": "802" }, { "label": "MindContro", "value": "206" }, { "label": "MindReader", "value": "1521" }, { "label": "mindreadin", "value": "2911" }, { "label": "MingDynast", "value": "3038" }, { "label": "Mingjiao", "value": "1984" }, { "label": "MingjiaoTi", "value": "2064" }, { "label": "Ministryof", "value": "1645" }, { "label": "Mismatched", "value": "1355" }, { "label": "Mistresspl", "value": "2197" }, { "label": "MistyFlyin", "value": "2234" }, { "label": "Misunderst", "value": "1482" }, { "label": "Misunderst", "value": "276" }, { "label": "Misunderst", "value": "1118" }, { "label": "Misunderst", "value": "1601" }, { "label": "mixedintwo", "value": "2664" }, { "label": "MMORPG", "value": "44" }, { "label": "Mob", "value": "1620" }, { "label": "MobProtago", "value": "484" }, { "label": "Models", "value": "439" }, { "label": "ModerDays", "value": "1420" }, { "label": "Modern", "value": "519" }, { "label": "ModernDay", "value": "179" }, { "label": "ModernDays", "value": "667" }, { "label": "ModernFant", "value": "1172" }, { "label": "ModernKnow", "value": "320" }, { "label": "ModernKnow", "value": "829" }, { "label": "ModernLife", "value": "2948" }, { "label": "modernlove", "value": "1821" }, { "label": "ModernRoma", "value": "1087" }, { "label": "ModernWorl", "value": "36" }, { "label": "Moedye", "value": "2853" }, { "label": "MoeShinkaw", "value": "2970" }, { "label": "Mofamily", "value": "2682" }, { "label": "MojiaAeros", "value": "2435" }, { "label": "MojiaHills", "value": "2398" }, { "label": "MoneyGrubb", "value": "330" }, { "label": "MoneyGrumb", "value": "1243" }, { "label": "Monogamy", "value": "1242" }, { "label": "Monster", "value": "1181" }, { "label": "MonsterGir", "value": "223" }, { "label": "Monsters", "value": "7" }, { "label": "MonsterSoc", "value": "1206" }, { "label": "MonsterTam", "value": "258" }, { "label": "MonsterTar", "value": "1732" }, { "label": "moonbug", "value": "1973" }, { "label": "MoonlightS", "value": "2721" }, { "label": "Moonlikeah", "value": "2508" }, { "label": "Moonsea", "value": "1964" }, { "label": "Moonwing", "value": "1828" }, { "label": "Morallessp", "value": "1781" }, { "label": "MorallyAmb", "value": "1530" }, { "label": "moreandmor", "value": "2264" }, { "label": "Morethanju", "value": "3247" }, { "label": "Motherland", "value": "2974" }, { "label": "Mountainsa", "value": "1892" }, { "label": "Mountainsa", "value": "2185" }, { "label": "movies", "value": "1460" }, { "label": "Movies", "value": "119" }, { "label": "movingbean", "value": "2166" }, { "label": "MoXueqing", "value": "2069" }, { "label": "Moyangison", "value": "2632" }, { "label": "Mpreg", "value": "255" }, { "label": "Mr.EasyPro", "value": "2022" }, { "label": "Mr.Huo", "value": "2605" }, { "label": "MrMo", "value": "1840" }, { "label": "MrSly", "value": "1646" }, { "label": "MsPerfect", "value": "1647" }, { "label": "Msturbatio", "value": "1617" }, { "label": "mudbodhisa", "value": "2257" }, { "label": "Mukbang", "value": "1671" }, { "label": "MultipleBo", "value": "1442" }, { "label": "MultipleCP", "value": "773" }, { "label": "MultipleHi", "value": "1234" }, { "label": "multipleid", "value": "1347" }, { "label": "Multipleid", "value": "1772" }, { "label": "MultipleId", "value": "328" }, { "label": "Multiplele", "value": "3186" }, { "label": "MultipleLe", "value": "1689" }, { "label": "MultipleLo", "value": "992" }, { "label": "MultipleMo", "value": "1212" }, { "label": "MultiplePe", "value": "256" }, { "label": "MultiplePo", "value": "1329" }, { "label": "MultiplePO", "value": "504" }, { "label": "MultiplePr", "value": "674" }, { "label": "multiplere", "value": "1697" }, { "label": "MultipleRe", "value": "85" }, { "label": "MultipleRe", "value": "180" }, { "label": "MultipleTi", "value": "672" }, { "label": "MultipleTr", "value": "455" }, { "label": "MultipleTr", "value": "1197" }, { "label": "MultipleVe", "value": "1507" }, { "label": "MultipleWo", "value": "151" }, { "label": "MultipleWo", "value": "1654" }, { "label": "Multiverse", "value": "1558" }, { "label": "Munchkin", "value": "3212" }, { "label": "Murder", "value": "565" }, { "label": "Murders", "value": "679" }, { "label": "music", "value": "127" }, { "label": "musicwilll", "value": "1956" }, { "label": "mustdo", "value": "2238" }, { "label": "Mutan", "value": "1610" }, { "label": "MutantPowe", "value": "1396" }, { "label": "MutatedCre", "value": "460" }, { "label": "Mutation", "value": "132" }, { "label": "Mutations", "value": "634" }, { "label": "MuteCharac", "value": "721" }, { "label": "Mutualcrus", "value": "1207" }, { "label": "myflightat", "value": "3281" }, { "label": "MyHeroAcad", "value": "1393" }, { "label": "mylittlesi", "value": "2267" }, { "label": "MyLubanThi", "value": "2685" }, { "label": "MynameisDa", "value": "2117" }, { "label": "mynameista", "value": "2307" }, { "label": "mysteries", "value": "3033" }, { "label": "Mysterious", "value": "510" }, { "label": "Mysterious", "value": "377" }, { "label": "Mysterious", "value": "301" }, { "label": "Mysterious", "value": "1144" }, { "label": "Mystery", "value": "904" }, { "label": "MysterySol", "value": "372" }, { "label": "Mystical", "value": "753" }, { "label": "MyTeenRoma", "value": "943" }, { "label": "Myth", "value": "3178" }, { "label": "Mythical", "value": "498" }, { "label": "MythicalBe", "value": "333" }, { "label": "mythicalfi", "value": "2634" }, { "label": "mythicalma", "value": "2477" }, { "label": "Mythology", "value": "499" }, { "label": "Mythos", "value": "1690" }, { "label": "mythunpara", "value": "2445" }, { "label": "mywife", "value": "2485" }, { "label": "mywifeisya", "value": "2818" }, { "label": "NA", "value": "107" }, { "label": "NaiveProta", "value": "266" }, { "label": "Nanshen", "value": "2347" }, { "label": "Napoleon", "value": "1534" }, { "label": "Narcissist", "value": "512" }, { "label": "Naruto", "value": "445" }, { "label": "narutoceda", "value": "2520" }, { "label": "NarutoClou", "value": "2516" }, { "label": "NarutoQuiz", "value": "2515" }, { "label": "NarutoxRea", "value": "2647" }, { "label": "Nationalis", "value": "198" }, { "label": "NationBuil", "value": "1159" }, { "label": "NaturalDis", "value": "1033" }, { "label": "Navy", "value": "1145" }, { "label": "NBA", "value": "591" }, { "label": "Near-Death", "value": "290" }, { "label": "Necromance", "value": "72" }, { "label": "Necromancy", "value": "3127" }, { "label": "Neet", "value": "797" }, { "label": "Netorare", "value": "293" }, { "label": "Netori", "value": "115" }, { "label": "neverfail", "value": "2627" }, { "label": "NiangkouSa", "value": "2382" }, { "label": "Nidouzi", "value": "2644" }, { "label": "nightdance", "value": "2784" }, { "label": "nightfire", "value": "1902" }, { "label": "Nightmare", "value": "149" }, { "label": "Nightmares", "value": "643" }, { "label": "nightsilen", "value": "1934" }, { "label": "Nine-color", "value": "2476" }, { "label": "Nine-Taile", "value": "2217" }, { "label": "NinefoldSe", "value": "1994" }, { "label": "NineWarsof", "value": "2122" }, { "label": "ninja", "value": "1798" }, { "label": "Ninjapirat", "value": "1906" }, { "label": "Ninjas", "value": "145" }, { "label": "NiuBao", "value": "2118" }, { "label": "No-Harem", "value": "3181" }, { "label": "Noble", "value": "1636" }, { "label": "Nobles", "value": "16" }, { "label": "NoblesPoli", "value": "3121" }, { "label": "NoCheats", "value": "3115" }, { "label": "NoCp", "value": "1641" }, { "label": "NoFL", "value": "936" }, { "label": "NoGoldFing", "value": "3104" }, { "label": "NoHarem", "value": "1342" }, { "label": "Noless", "value": "2759" }, { "label": "Non-Humanl", "value": "1720" }, { "label": "Non-HumanM", "value": "3125" }, { "label": "Non-humano", "value": "247" }, { "label": "Non-humanP", "value": "847" }, { "label": "Non-System", "value": "1363" }, { "label": "noncat", "value": "2637" }, { "label": "nonhuman", "value": "1450" }, { "label": "NonHuman", "value": "1156" }, { "label": "NonHumanPr", "value": "1127" }, { "label": "NoPairing", "value": "1330" }, { "label": "Noromance", "value": "1310" }, { "label": "Nosnacks", "value": "2113" }, { "label": "NoSystem", "value": "1573" }, { "label": "NotHarem", "value": "1030" }, { "label": "notlevelth", "value": "2623" }, { "label": "notscary", "value": "2521" }, { "label": "Nowadays", "value": "2665" }, { "label": "NPC", "value": "3001" }, { "label": "NTL", "value": "3124" }, { "label": "Nudity", "value": "946" }, { "label": "Nurses", "value": "805" }, { "label": "Obanbrothe", "value": "2191" }, { "label": "Obsession", "value": "3045" }, { "label": "ObsessiveL", "value": "520" }, { "label": "offical", "value": "2938" }, { "label": "OfficeRoma", "value": "686" }, { "label": "Official", "value": "3067" }, { "label": "ohmygod", "value": "2488" }, { "label": "oldage", "value": "1949" }, { "label": "olddemon", "value": "2167" }, { "label": "Olderlovei", "value": "3088" }, { "label": "OlderLoveI", "value": "207" }, { "label": "oldfaceunc", "value": "2762" }, { "label": "oldfisheat", "value": "2087" }, { "label": "Oldghostsm", "value": "2503" }, { "label": "OldMainCha", "value": "983" }, { "label": "OldQinpeop", "value": "2038" }, { "label": "oldtombrob", "value": "2526" }, { "label": "omega", "value": "3099" }, { "label": "Omegaverse", "value": "311" }, { "label": "On-HookSys", "value": "1651" }, { "label": "One-Piece", "value": "2913" }, { "label": "Oneflower", "value": "2786" }, { "label": "OneLeafRed", "value": "2559" }, { "label": "onemelonri", "value": "2788" }, { "label": "onemeterst", "value": "2856" }, { "label": "Onenightst", "value": "3176" }, { "label": "onepiece", "value": "1458" }, { "label": "OnePiece", "value": "105" }, { "label": "Onepunch", "value": "1106" }, { "label": "OnePunchMa", "value": "1380" }, { "label": "Onepunchmo", "value": "2555" }, { "label": "Onepunchto", "value": "2768" }, { "label": "Oneshot", "value": "1037" }, { "label": "OneSwordFl", "value": "2078" }, { "label": "Onethousan", "value": "2124" }, { "label": "onetree", "value": "2787" }, { "label": "Oneyearold", "value": "2774" }, { "label": "Online", "value": "1162" }, { "label": "Onlinegame", "value": "3269" }, { "label": "OnlineGame", "value": "776" }, { "label": "OnlineNove", "value": "1035" }, { "label": "OnlineRoma", "value": "637" }, { "label": "onlyloveyo", "value": "1990" }, { "label": "onlyyouth", "value": "2795" }, { "label": "onparadise", "value": "2326" }, { "label": "oooobe", "value": "2425" }, { "label": "openasmall", "value": "1847" }, { "label": "Openyourey", "value": "2370" }, { "label": "Operation", "value": "2936" }, { "label": "OpFemalePr", "value": "1235" }, { "label": "OPheroine", "value": "1506" }, { "label": "OPMC", "value": "859" }, { "label": "OPProtagon", "value": "1230" }, { "label": "orangeappl", "value": "2281" }, { "label": "Orc", "value": "1350" }, { "label": "Orcs", "value": "12" }, { "label": "Orcsworld", "value": "1089" }, { "label": "Ordinary", "value": "3217" }, { "label": "Organizati", "value": "1099" }, { "label": "OrganizedC", "value": "750" }, { "label": "Orientalde", "value": "3263" }, { "label": "Orientalfa", "value": "769" }, { "label": "OriginalON", "value": "1686" }, { "label": "OriginalUn", "value": "2367" }, { "label": "OriginalWa", "value": "997" }, { "label": "OriginalWa", "value": "1059" }, { "label": "OriginalYe", "value": "2766" }, { "label": "Origuchi", "value": "2804" }, { "label": "Orphan", "value": "1293" }, { "label": "OrphanMC", "value": "902" }, { "label": "Orphans", "value": "224" }, { "label": "Otaku", "value": "37" }, { "label": "Otezetta", "value": "2156" }, { "label": "otherworld", "value": "984" }, { "label": "OtomeGame", "value": "944" }, { "label": "OTTGroupCh", "value": "2511" }, { "label": "OutdoorInt", "value": "1031" }, { "label": "OuterSpace", "value": "371" }, { "label": "Over-Power", "value": "3090" }, { "label": "Overhead", "value": "3225" }, { "label": "OverheadHi", "value": "2945" }, { "label": "Overlord", "value": "1231" }, { "label": "overpowere", "value": "1443" }, { "label": "Overpowere", "value": "3140" }, { "label": "Overpowere", "value": "167" }, { "label": "Overpowere", "value": "1260" }, { "label": "Overpowere", "value": "1518" }, { "label": "Overprotec", "value": "436" }, { "label": "OVLGrandPr", "value": "1000" }, { "label": "PacifistPr", "value": "1233" }, { "label": "Painter", "value": "1313" }, { "label": "Painting", "value": "1275" }, { "label": "Paizuri", "value": "812" }, { "label": "palace", "value": "3133" }, { "label": "paleandwhi", "value": "2301" }, { "label": "PamperingR", "value": "814" }, { "label": "panic", "value": "2206" }, { "label": "Papaisvery", "value": "2703" }, { "label": "ParalelWor", "value": "830" }, { "label": "ParallelWo", "value": "109" }, { "label": "ParallelWo", "value": "826" }, { "label": "Paranoid", "value": "1112" }, { "label": "Parasite", "value": "1590" }, { "label": "Parasites", "value": "790" }, { "label": "ParentComp", "value": "421" }, { "label": "Parody", "value": "555" }, { "label": "Part-TimeJ", "value": "768" }, { "label": "part-timeo", "value": "2063" }, { "label": "Partnerofa", "value": "1416" }, { "label": "PastandPre", "value": "3287" }, { "label": "PastPlaysa", "value": "456" }, { "label": "PastPlaysa", "value": "780" }, { "label": "PastTrauma", "value": "648" }, { "label": "Patriarch", "value": "1116" }, { "label": "Peasant", "value": "2979" }, { "label": "Peerlessso", "value": "1835" }, { "label": "PeerlessSw", "value": "1832" }, { "label": "pendragon", "value": "2889" }, { "label": "pendreamst", "value": "2132" }, { "label": "Peoplenear", "value": "2691" }, { "label": "perfectmag", "value": "1843" }, { "label": "PerfectWor", "value": "1385" }, { "label": "Persistent", "value": "623" }, { "label": "Personalit", "value": "545" }, { "label": "PervertedP", "value": "515" }, { "label": "Pet", "value": "1249" }, { "label": "Pets", "value": "148" }, { "label": "petsurviva", "value": "2570" }, { "label": "PhantomThi", "value": "2982" }, { "label": "Pharmacist", "value": "593" }, { "label": "Philosophi", "value": "801" }, { "label": "Phoenixes", "value": "702" }, { "label": "Photograph", "value": "694" }, { "label": "Photograph", "value": "3021" }, { "label": "pigeonnext", "value": "2658" }, { "label": "PillBasedC", "value": "424" }, { "label": "PillConcoc", "value": "425" }, { "label": "PillConcot", "value": "91" }, { "label": "Pilots", "value": "1628" }, { "label": "Pipifish", "value": "2273" }, { "label": "Pirate", "value": "1213" }, { "label": "Pirateacto", "value": "2528" }, { "label": "PirateCour", "value": "2553" }, { "label": "PirateDaQi", "value": "1893" }, { "label": "PirateGrea", "value": "2194" }, { "label": "Piratehaha", "value": "1954" }, { "label": "Pirates", "value": "106" }, { "label": "PiratesofH", "value": "2811" }, { "label": "PirateWars", "value": "2554" }, { "label": "PiratexFai", "value": "2613" }, { "label": "Piscesinth", "value": "2747" }, { "label": "PlaneWars", "value": "3072" }, { "label": "Plants", "value": "1185" }, { "label": "PlayBlueMo", "value": "2104" }, { "label": "Playboy", "value": "1259" }, { "label": "Playboymal", "value": "1327" }, { "label": "Playboys", "value": "570" }, { "label": "Player", "value": "1598" }, { "label": "PlayerKill", "value": "1733" }, { "label": "Players", "value": "1291" }, { "label": "PlayfulPro", "value": "560" }, { "label": "PlayingGho", "value": "1519" }, { "label": "pleasantin", "value": "2093" }, { "label": "Pleaseforg", "value": "2967" }, { "label": "Pleasure", "value": "1073" }, { "label": "plumthirte", "value": "2188" }, { "label": "poems", "value": "128" }, { "label": "Poetry", "value": "113" }, { "label": "PoisonMout", "value": "1119" }, { "label": "Poisons", "value": "514" }, { "label": "Pokemon", "value": "562" }, { "label": "PokémonGo", "value": "2827" }, { "label": "PokémonTi", "value": "2550" }, { "label": "PokémonVo", "value": "2196" }, { "label": "Police", "value": "566" }, { "label": "PoliteProt", "value": "567" }, { "label": "PoliticalB", "value": "996" }, { "label": "PoliticalI", "value": "919" }, { "label": "PoliticalS", "value": "1331" }, { "label": "Politics", "value": "56" }, { "label": "Polyandry", "value": "530" }, { "label": "Polygamy", "value": "34" }, { "label": "Poor", "value": "3117" }, { "label": "Poorcrazy", "value": "1826" }, { "label": "PoorProtag", "value": "220" }, { "label": "PoorRoRich", "value": "1571" }, { "label": "PoortoRich", "value": "199" }, { "label": "PopeBibiDo", "value": "2551" }, { "label": "Popular", "value": "3164" }, { "label": "PopularLov", "value": "528" }, { "label": "Porn", "value": "949" }, { "label": "PortableSp", "value": "918" }, { "label": "PortalFant", "value": "2997" }, { "label": "Positive", "value": "3196" }, { "label": "Positiveel", "value": "2138" }, { "label": "PositiveLe", "value": "1492" }, { "label": "Possession", "value": "678" }, { "label": "Possessive", "value": "463" }, { "label": "Possessive", "value": "3155" }, { "label": "Possessive", "value": "1255" }, { "label": "Post-apoca", "value": "59" }, { "label": "potatogirl", "value": "2791" }, { "label": "PovertyAll", "value": "1332" }, { "label": "PowerCoupl", "value": "360" }, { "label": "Powerfulco", "value": "1405" }, { "label": "PowersTran", "value": "1109" }, { "label": "PowerStrug", "value": "531" }, { "label": "PragmaticP", "value": "546" }, { "label": "Pre-Stewar", "value": "3280" }, { "label": "Precogniti", "value": "534" }, { "label": "Pregnancy", "value": "297" }, { "label": "Prehistori", "value": "1402" }, { "label": "Prehistori", "value": "1412" }, { "label": "PresentDay", "value": "1775" }, { "label": "President", "value": "1758" }, { "label": "PretendLov", "value": "680" }, { "label": "Pretendtob", "value": "3223" }, { "label": "PrettyGirl", "value": "3165" }, { "label": "PreviousLi", "value": "457" }, { "label": "PreviousLi", "value": "526" }, { "label": "Priestesse", "value": "1022" }, { "label": "Priests", "value": "739" }, { "label": "Primitives", "value": "1186" }, { "label": "PrimitiveT", "value": "3094" }, { "label": "Primitivew", "value": "1090" }, { "label": "Prince", "value": "3123" }, { "label": "PrinceofHe", "value": "2908" }, { "label": "PrinceofTe", "value": "1360" }, { "label": "PrinceQing", "value": "2696" }, { "label": "Princess", "value": "1564" }, { "label": "Prison", "value": "758" }, { "label": "ProactiveP", "value": "718" }, { "label": "Production", "value": "1018" }, { "label": "Professor", "value": "895" }, { "label": "Programmer", "value": "561" }, { "label": "Programmin", "value": "3062" }, { "label": "Progressio", "value": "1691" }, { "label": "Prophecies", "value": "351" }, { "label": "Prostitute", "value": "740" }, { "label": "Protagonis", "value": "1679" }, { "label": "Protagonis", "value": "248" }, { "label": "Protagonis", "value": "482" }, { "label": "Protagonis", "value": "715" }, { "label": "Protagonis", "value": "1174" }, { "label": "Protagonis", "value": "1357" }, { "label": "Protagonis", "value": "1394" }, { "label": "Protagonis", "value": "1562" }, { "label": "Protagonis", "value": "2920" }, { "label": "PseudoHolo", "value": "1333" }, { "label": "PseudoReli", "value": "1334" }, { "label": "psionic", "value": "2950" }, { "label": "Psychic", "value": "1110" }, { "label": "PsychicPow", "value": "661" }, { "label": "Psychologi", "value": "1122" }, { "label": "Psychology", "value": "1580" }, { "label": "Psychopath", "value": "278" }, { "label": "Punch", "value": "2004" }, { "label": "pureimpuls", "value": "2597" }, { "label": "purekitten", "value": "2506" }, { "label": "PureLove", "value": "3052" }, { "label": "Puzzles", "value": "1566" }, { "label": "QianshanTw", "value": "2796" }, { "label": "Qidian", "value": "933" }, { "label": "QiLuck", "value": "1680" }, { "label": "qimao", "value": "3208" }, { "label": "QinBichu", "value": "1897" }, { "label": "Qingfeng1D", "value": "1898" }, { "label": "QingheTaoi", "value": "2066" }, { "label": "Qingliansw", "value": "2012" }, { "label": "qingyu", "value": "2400" }, { "label": "QinTianhu", "value": "3256" }, { "label": "QiXuan", "value": "2153" }, { "label": "QT", "value": "1800" }, { "label": "Quasi-GodS", "value": "1959" }, { "label": "QueenofBla", "value": "2484" }, { "label": "Question&a", "value": "1771" }, { "label": "QuickPass", "value": "1658" }, { "label": "QuickTrans", "value": "414" }, { "label": "QuickTrans", "value": "1698" }, { "label": "Quickwear", "value": "1583" }, { "label": "QuietChara", "value": "706" }, { "label": "quietflowe", "value": "1890" }, { "label": "QuirkyChar", "value": "701" }, { "label": "Quququ", "value": "2677" }, { "label": "R-15", "value": "63" }, { "label": "R-18", "value": "30" }, { "label": "R15", "value": "942" }, { "label": "R18", "value": "1547" }, { "label": "RabbitToot", "value": "2601" }, { "label": "RaceChange", "value": "580" }, { "label": "Races", "value": "3000" }, { "label": "Racism", "value": "208" }, { "label": "rainandsno", "value": "2293" }, { "label": "rainboweig", "value": "2745" }, { "label": "rainydaywi", "value": "2849" }, { "label": "Raiseaghos", "value": "2672" }, { "label": "raisedache", "value": "2655" }, { "label": "RankingLis", "value": "1786" }, { "label": "Rape", "value": "13" }, { "label": "Rapeseedra", "value": "2198" }, { "label": "RapeVictim", "value": "387" }, { "label": "RapeVictim", "value": "832" }, { "label": "Rarebloodl", "value": "3149" }, { "label": "Ras", "value": "1730" }, { "label": "reality", "value": "3276" }, { "label": "reallyking", "value": "2317" }, { "label": "Realmmonst", "value": "2873" }, { "label": "reasoning", "value": "3218" }, { "label": "Rebellion", "value": "756" }, { "label": "Rebirth", "value": "192" }, { "label": "RebirthedP", "value": "1287" }, { "label": "Reborn", "value": "836" }, { "label": "Rebornprot", "value": "1285" }, { "label": "recreation", "value": "2363" }, { "label": "redalert", "value": "927" }, { "label": "RedAlert2", "value": "822" }, { "label": "Redemption", "value": "3051" }, { "label": "Regression", "value": "3049" }, { "label": "Regressor", "value": "1599" }, { "label": "Regret", "value": "3046" }, { "label": "Reiki", "value": "3063" }, { "label": "ReikiRecov", "value": "1807" }, { "label": "Reikyrecov", "value": "1100" }, { "label": "reincarnat", "value": "1448" }, { "label": "reincarnat", "value": "1780" }, { "label": "Reincarnat", "value": "20" }, { "label": "Reincarnat", "value": "14" }, { "label": "Reincarnat", "value": "225" }, { "label": "Reincarnat", "value": "539" }, { "label": "Reincarnat", "value": "749" }, { "label": "Reincarnat", "value": "881" }, { "label": "Reincarnat", "value": "1481" }, { "label": "Reincarnat", "value": "3120" }, { "label": "Rejuvenati", "value": "1055" }, { "label": "relaxed", "value": "1803" }, { "label": "Relaxing", "value": "987" }, { "label": "Religions", "value": "622" }, { "label": "ReligiousO", "value": "1101" }, { "label": "ReligousOr", "value": "889" }, { "label": "ReluctantP", "value": "1060" }, { "label": "Reporters", "value": "775" }, { "label": "Researcher", "value": "1744" }, { "label": "Residencen", "value": "2439" }, { "label": "Residentev", "value": "2926" }, { "label": "restaurant", "value": "2328" }, { "label": "Restaurant", "value": "788" }, { "label": "Resurrecti", "value": "305" }, { "label": "Resurrecti", "value": "2758" }, { "label": "Return", "value": "3215" }, { "label": "Returningf", "value": "770" }, { "label": "returnofth", "value": "3286" }, { "label": "Returntoth", "value": "925" }, { "label": "Returntoth", "value": "1187" }, { "label": "Reunion", "value": "1523" }, { "label": "revenge", "value": "1447" }, { "label": "Revenge", "value": "42" }, { "label": "Reversal", "value": "3209" }, { "label": "Reversalof", "value": "1048" }, { "label": "Reverse", "value": "3122" }, { "label": "ReverseHar", "value": "581" }, { "label": "ReverseRap", "value": "573" }, { "label": "ReverseRpe", "value": "759" }, { "label": "reversesmo", "value": "2084" }, { "label": "Reversible", "value": "786" }, { "label": "Rich", "value": "1095" }, { "label": "RichCharac", "value": "876" }, { "label": "richeveryy", "value": "2568" }, { "label": "Richfamily", "value": "1438" }, { "label": "RichProtag", "value": "1205" }, { "label": "RichtoPoor", "value": "315" }, { "label": "Rideawhale", "value": "1858" }, { "label": "Righteous", "value": "3195" }, { "label": "RighteousP", "value": "271" }, { "label": "RimuruTemp", "value": "1629" }, { "label": "RinYueqing", "value": "1831" }, { "label": "RiseofGras", "value": "3011" }, { "label": "Rivalry", "value": "746" }, { "label": "riversande", "value": "2048" }, { "label": "Role-Playi", "value": "849" }, { "label": "Romance", "value": "774" }, { "label": "RomanceFan", "value": "3047" }, { "label": "RomanticPr", "value": "841" }, { "label": "RomanticSu", "value": "62" }, { "label": "RomanticSu", "value": "754" }, { "label": "RookieProt", "value": "1408" }, { "label": "Roommates", "value": "777" }, { "label": "Roon", "value": "2609" }, { "label": "Rotaryhotp", "value": "2692" }, { "label": "Royalfamil", "value": "3179" }, { "label": "RoyalSabur", "value": "1995" }, { "label": "Royalty", "value": "2" }, { "label": "Rpe", "value": "259" }, { "label": "RpeVictimB", "value": "717" }, { "label": "RPG", "value": "3080" }, { "label": "runawayant", "value": "1881" }, { "label": "runawaycit", "value": "1852" }, { "label": "runawayher", "value": "1005" }, { "label": "Rune", "value": "1290" }, { "label": "Ruoshuithr", "value": "2284" }, { "label": "Russian", "value": "1808" }, { "label": "Ruthless", "value": "117" }, { "label": "RuthlessMc", "value": "1141" }, { "label": "RuthlessPr", "value": "286" }, { "label": "RWBY", "value": "1722" }, { "label": "SacrificeX", "value": "2781" }, { "label": "SadisticCh", "value": "556" }, { "label": "Sadreminde", "value": "1972" }, { "label": "sadsadness", "value": "2125" }, { "label": "sadsword", "value": "1888" }, { "label": "SaikiK", "value": "1107" }, { "label": "SaikiK.", "value": "1431" }, { "label": "Sailing", "value": "1777" }, { "label": "Saint", "value": "1597" }, { "label": "Saints", "value": "741" }, { "label": "SaintSeiya", "value": "1132" }, { "label": "Sakurajima", "value": "2706" }, { "label": "SakuraMoon", "value": "2246" }, { "label": "Saltedfish", "value": "2443" }, { "label": "SaltedFish", "value": "1136" }, { "label": "SaltedFish", "value": "1891" }, { "label": "SaltedFish", "value": "2325" }, { "label": "SaltedFish", "value": "2744" }, { "label": "Salvation", "value": "3060" }, { "label": "SameSexMar", "value": "1215" }, { "label": "Samurai", "value": "1020" }, { "label": "sandrivere", "value": "2150" }, { "label": "SanmitheGr", "value": "2437" }, { "label": "SAT", "value": "1034" }, { "label": "Satire", "value": "2996" }, { "label": "SaveHarem", "value": "948" }, { "label": "Saves", "value": "1050" }, { "label": "SavingtheW", "value": "760" }, { "label": "Scalesofth", "value": "1866" }, { "label": "Scary", "value": "3188" }, { "label": "Scavengers", "value": "84" }, { "label": "schemeandc", "value": "1785" }, { "label": "Schemes", "value": "1497" }, { "label": "Schemesand", "value": "1091" }, { "label": "SchemesAnd", "value": "260" }, { "label": "SchemingPr", "value": "1335" }, { "label": "Schizophre", "value": "261" }, { "label": "School-lif", "value": "1319" }, { "label": "SchoolLife", "value": "654" }, { "label": "SchoolSett", "value": "1729" }, { "label": "Sci-fi", "value": "898" }, { "label": "science", "value": "129" }, { "label": "Science-fi", "value": "2912" }, { "label": "Sciencefic", "value": "1706" }, { "label": "Scientist", "value": "1560" }, { "label": "Scientists", "value": "427" }, { "label": "Scourge", "value": "2013" }, { "label": "SCP", "value": "1182" }, { "label": "scumteache", "value": "2349" }, { "label": "Sea", "value": "1606" }, { "label": "SeaExplora", "value": "1160" }, { "label": "SealedPowe", "value": "771" }, { "label": "secondchan", "value": "1457" }, { "label": "SecondChan", "value": "41" }, { "label": "SecondChan", "value": "1705" }, { "label": "SecondChan", "value": "123" }, { "label": "secondpira", "value": "2467" }, { "label": "secretary", "value": "1776" }, { "label": "SecretCrus", "value": "600" }, { "label": "SecretIden", "value": "118" }, { "label": "Secretive", "value": "3158" }, { "label": "SecretiveP", "value": "635" }, { "label": "Secretobse", "value": "2524" }, { "label": "SecretOrga", "value": "1183" }, { "label": "SecretOrga", "value": "755" }, { "label": "SecretRela", "value": "1659" }, { "label": "Secrets", "value": "675" }, { "label": "Sect", "value": "3018" }, { "label": "SectDevelo", "value": "507" }, { "label": "Sects", "value": "86" }, { "label": "Seduction", "value": "732" }, { "label": "Seductive", "value": "3194" }, { "label": "SeeingThin", "value": "662" }, { "label": "self-disci", "value": "2414" }, { "label": "Self-disci", "value": "3086" }, { "label": "SelfDiscip", "value": "3019" }, { "label": "SelfishPro", "value": "508" }, { "label": "SelflessPr", "value": "640" }, { "label": "SemeProtag", "value": "588" }, { "label": "Senbeiboy", "value": "2981" }, { "label": "Sencha", "value": "2724" }, { "label": "Senpai-Kou", "value": "960" }, { "label": "SentientOb", "value": "1061" }, { "label": "SentientSk", "value": "1365" }, { "label": "Sentimenta", "value": "735" }, { "label": "Sequel", "value": "1225" }, { "label": "SerialKill", "value": "218" }, { "label": "Serious", "value": "986" }, { "label": "ServantofZ", "value": "1856" }, { "label": "Servants", "value": "571" }, { "label": "SevenDeadl", "value": "808" }, { "label": "Sevengener", "value": "2248" }, { "label": "sevenpigeo", "value": "1921" }, { "label": "SevenVirtu", "value": "1044" }, { "label": "SexSlaves", "value": "574" }, { "label": "SexualAbus", "value": "569" }, { "label": "SexualCult", "value": "638" }, { "label": "shadowfall", "value": "2860" }, { "label": "shadowghos", "value": "2341" }, { "label": "Shadowless", "value": "2971" }, { "label": "Shallowsea", "value": "1848" }, { "label": "ShamelessP", "value": "87" }, { "label": "Shapeshift", "value": "688" }, { "label": "Shapeshift", "value": "1147" }, { "label": "SharingABo", "value": "981" }, { "label": "Sharp-tong", "value": "378" }, { "label": "Shelter", "value": "1542" }, { "label": "Shenhao", "value": "3285" }, { "label": "ShenhaoMec", "value": "2619" }, { "label": "ShenhuoxoR", "value": "2111" }, { "label": "ShenJin", "value": "2599" }, { "label": "ShenLuo", "value": "2032" }, { "label": "shokugekin", "value": "939" }, { "label": "ShortStory", "value": "641" }, { "label": "Shota", "value": "584" }, { "label": "Shotacon", "value": "796" }, { "label": "Shoujo-AiS", "value": "666" }, { "label": "ShoujoAi", "value": "1074" }, { "label": "Shouldhand", "value": "1889" }, { "label": "Shounen", "value": "1569" }, { "label": "Shounen-Ai", "value": "598" }, { "label": "shounenai", "value": "1762" }, { "label": "ShouProtag", "value": "1504" }, { "label": "Show-biz", "value": "2928" }, { "label": "Showbiz", "value": "103" }, { "label": "showstory", "value": "2090" }, { "label": "shrimpinth", "value": "1857" }, { "label": "Shuangwen", "value": "1251" }, { "label": "shudder", "value": "1868" }, { "label": "ShuYuChenX", "value": "2377" }, { "label": "ShyCharact", "value": "761" }, { "label": "Si-fi", "value": "1142" }, { "label": "Sibling&am", "value": "811" }, { "label": "SiblingRiv", "value": "804" }, { "label": "Siblings", "value": "442" }, { "label": "SiblingsNo", "value": "429" }, { "label": "SicklyChar", "value": "474" }, { "label": "Sign-in", "value": "900" }, { "label": "Sign-InChe", "value": "1288" }, { "label": "signin", "value": "1346" }, { "label": "SigninChec", "value": "1384" }, { "label": "signinsalt", "value": "2409" }, { "label": "SiheyuanDe", "value": "2313" }, { "label": "Siheyuanfl", "value": "2214" }, { "label": "SiheyuanGo", "value": "2285" }, { "label": "Silencehim", "value": "2383" }, { "label": "silentkill", "value": "2095" }, { "label": "sillycatse", "value": "1946" }, { "label": "SillyColum", "value": "2401" }, { "label": "silver", "value": "2871" }, { "label": "Simpleone", "value": "2417" }, { "label": "Simulation", "value": "1685" }, { "label": "Simulator", "value": "1219" }, { "label": "Singer", "value": "1065" }, { "label": "Singers", "value": "500" }, { "label": "Singlefema", "value": "3193" }, { "label": "SingleHero", "value": "1605" }, { "label": "SinglePare", "value": "415" }, { "label": "singlesalt", "value": "2628" }, { "label": "Sinology", "value": "3220" }, { "label": "Siscon", "value": "1769" }, { "label": "SisterComp", "value": "347" }, { "label": "sistercook", "value": "2606" }, { "label": "sisterisbe", "value": "2424" }, { "label": "six-twochi", "value": "1953" }, { "label": "SixPathsof", "value": "2489" }, { "label": "Sixty-six", "value": "2091" }, { "label": "Skill", "value": "979" }, { "label": "SkillAssim", "value": "352" }, { "label": "SkillBooks", "value": "766" }, { "label": "SkillCreat", "value": "767" }, { "label": "Skills", "value": "1006" }, { "label": "SkillSteal", "value": "1403" }, { "label": "SkinButler", "value": "2365" }, { "label": "skycity", "value": "3113" }, { "label": "SlapstickC", "value": "1602" }, { "label": "Slave", "value": "1500" }, { "label": "SlaveHarem", "value": "209" }, { "label": "SlaveProta", "value": "627" }, { "label": "Slaves", "value": "74" }, { "label": "SlaveSyste", "value": "833" }, { "label": "sleepingsa", "value": "2041" }, { "label": "sleeplesst", "value": "2518" }, { "label": "sleepslate", "value": "2011" }, { "label": "Slice-of-l", "value": "1307" }, { "label": "SliceofLif", "value": "906" }, { "label": "SlightlySu", "value": "1322" }, { "label": "SlowCultiv", "value": "1079" }, { "label": "SlowGrowth", "value": "295" }, { "label": "SlowLife", "value": "953" }, { "label": "SlowRomanc", "value": "361" }, { "label": "Slvery", "value": "3095" }, { "label": "Smallmushr", "value": "2607" }, { "label": "smallninel", "value": "1938" }, { "label": "Smart", "value": "3022" }, { "label": "SmartCoupl", "value": "263" }, { "label": "SmartMC", "value": "905" }, { "label": "smartprota", "value": "1261" }, { "label": "Smokebambo", "value": "2702" }, { "label": "SmokeCloud", "value": "1839" }, { "label": "smokeinthe", "value": "1830" }, { "label": "Smut", "value": "3145" }, { "label": "snorkeling", "value": "2077" }, { "label": "Soccer", "value": "155" }, { "label": "SocialOutc", "value": "736" }, { "label": "softorange", "value": "2812" }, { "label": "SoftSci-fi", "value": "3004" }, { "label": "Softyander", "value": "3057" }, { "label": "Soldiers", "value": "612" }, { "label": "Sometimesa", "value": "1019" }, { "label": "Son-in-law", "value": "1498" }, { "label": "SongoftheG", "value": "2560" }, { "label": "SonInLaw", "value": "2958" }, { "label": "SonOfAGodP", "value": "1177" }, { "label": "sopoor", "value": "2790" }, { "label": "soulanddre", "value": "2461" }, { "label": "SoulCelest", "value": "2447" }, { "label": "SoulChef", "value": "2287" }, { "label": "soulmemory", "value": "2573" }, { "label": "SoulPower", "value": "136" }, { "label": "Souls", "value": "642" }, { "label": "SouthKefei", "value": "2832" }, { "label": "Space", "value": "884" }, { "label": "SpaceOpera", "value": "101" }, { "label": "Spaceship", "value": "632" }, { "label": "SpatialMan", "value": "795" }, { "label": "SpearWield", "value": "764" }, { "label": "SpecialAbi", "value": "334" }, { "label": "SpecialAbi", "value": "668" }, { "label": "SpecialAbi", "value": "1594" }, { "label": "SpecialFor", "value": "1381" }, { "label": "SpecialLik", "value": "909" }, { "label": "SpecialLov", "value": "1208" }, { "label": "specialpow", "value": "3136" }, { "label": "specialwar", "value": "2394" }, { "label": "speechless", "value": "2750" }, { "label": "spendthewo", "value": "2085" }, { "label": "Spies", "value": "751" }, { "label": "SpiritAdvi", "value": "800" }, { "label": "SpiritAnal", "value": "1283" }, { "label": "Spirits", "value": "663" }, { "label": "SpiritualQ", "value": "1361" }, { "label": "SpiritualR", "value": "1265" }, { "label": "SpiritUser", "value": "798" }, { "label": "sport", "value": "1479" }, { "label": "Sports", "value": "1377" }, { "label": "Spy", "value": "932" }, { "label": "stablefort", "value": "2567" }, { "label": "stallion", "value": "3075" }, { "label": "Stand", "value": "2923" }, { "label": "star", "value": "934" }, { "label": "Starcraft", "value": "1165" }, { "label": "stardarkni", "value": "2418" }, { "label": "starfish", "value": "2729" }, { "label": "startofthe", "value": "2297" }, { "label": "startwriti", "value": "2161" }, { "label": "Starwars", "value": "3007" }, { "label": "Status", "value": "965" }, { "label": "steamponk", "value": "3024" }, { "label": "Stepmom", "value": "3173" }, { "label": "Stepmother", "value": "1664" }, { "label": "Sterile", "value": "1901" }, { "label": "stevec", "value": "2505" }, { "label": "StewedChic", "value": "2527" }, { "label": "StinkBeanS", "value": "2376" }, { "label": "StockholmS", "value": "620" }, { "label": "StoicChara", "value": "669" }, { "label": "Stomachhur", "value": "2548" }, { "label": "stonemored", "value": "2572" }, { "label": "stopatfirs", "value": "2862" }, { "label": "StoreOwner", "value": "331" }, { "label": "straightma", "value": "2933" }, { "label": "Straightme", "value": "2584" }, { "label": "StraightSe", "value": "699" }, { "label": "StraightUk", "value": "700" }, { "label": "StrategicB", "value": "687" }, { "label": "Strategist", "value": "731" }, { "label": "Strategy", "value": "3012" }, { "label": "Streamer", "value": "877" }, { "label": "streamerbl", "value": "2819" }, { "label": "Strength-b", "value": "527" }, { "label": "strong", "value": "959" }, { "label": "StrongBack", "value": "1376" }, { "label": "strongcomb", "value": "1014" }, { "label": "StrongCoup", "value": "1429" }, { "label": "StrongestP", "value": "1556" }, { "label": "Strongests", "value": "993" }, { "label": "strongfema", "value": "1789" }, { "label": "strongfema", "value": "3237" }, { "label": "StrongFema", "value": "893" }, { "label": "StrongFema", "value": "1244" }, { "label": "Strongfl", "value": "3154" }, { "label": "Strongfrom", "value": "362" }, { "label": "StrongLove", "value": "264" }, { "label": "StrongLove", "value": "1270" }, { "label": "StrongMC", "value": "854" }, { "label": "StrongOpFe", "value": "1108" }, { "label": "StrongPowe", "value": "882" }, { "label": "Strongprod", "value": "1013" }, { "label": "StrongProt", "value": "951" }, { "label": "StrongSubo", "value": "843" }, { "label": "StrongtoSt", "value": "558" }, { "label": "strongwoma", "value": "3110" }, { "label": "StubbornPr", "value": "216" }, { "label": "Student", "value": "3270" }, { "label": "Student-Te", "value": "714" }, { "label": "Studenttea", "value": "3185" }, { "label": "StudentUni", "value": "2395" }, { "label": "stupidfox", "value": "2061" }, { "label": "submissive", "value": "1802" }, { "label": "Succubus", "value": "806" }, { "label": "SuddenStre", "value": "416" }, { "label": "SuddenWeal", "value": "200" }, { "label": "Sugary", "value": "2991" }, { "label": "suicidalpr", "value": "1815" }, { "label": "Suicides", "value": "1007" }, { "label": "summernow", "value": "2641" }, { "label": "summertree", "value": "1928" }, { "label": "summertrip", "value": "1923" }, { "label": "summon", "value": "161" }, { "label": "SummonedHe", "value": "64" }, { "label": "Summoner", "value": "907" }, { "label": "Summoning", "value": "980" }, { "label": "SummoningM", "value": "579" }, { "label": "Summons", "value": "1512" }, { "label": "sundaysun", "value": "1907" }, { "label": "sunsetover", "value": "2815" }, { "label": "SuperAbili", "value": "3159" }, { "label": "Superfire", "value": "2545" }, { "label": "SuperGodGr", "value": "2058" }, { "label": "SuperGodNo", "value": "2534" }, { "label": "SuperHeroe", "value": "1175" }, { "label": "Superman", "value": "2975" }, { "label": "Supernatur", "value": "664" }, { "label": "Supernatur", "value": "1015" }, { "label": "Supernatur", "value": "2428" }, { "label": "supernovab", "value": "2797" }, { "label": "SuperPiran", "value": "2312" }, { "label": "Superpower", "value": "408" }, { "label": "Superpower", "value": "1316" }, { "label": "SuperSemin", "value": "844" }, { "label": "Superstar", "value": "1190" }, { "label": "SuperTechn", "value": "1289" }, { "label": "Supporting", "value": "3210" }, { "label": "Supportive", "value": "1561" }, { "label": "Survival", "value": "291" }, { "label": "SurvivalGa", "value": "693" }, { "label": "SuShaoqing", "value": "1925" }, { "label": "Suspense", "value": "1256" }, { "label": "SuWei", "value": "2423" }, { "label": "SuYechen", "value": "1918" }, { "label": "SuZiyouyou", "value": "2288" }, { "label": "SwallowedS", "value": "1392" }, { "label": "swearnotto", "value": "2732" }, { "label": "Sweet", "value": "1203" }, { "label": "Sweetandso", "value": "2299" }, { "label": "sweetjelly", "value": "1873" }, { "label": "Sweetlove", "value": "3156" }, { "label": "sweetpet", "value": "3257" }, { "label": "sweetroman", "value": "1524" }, { "label": "SweetText", "value": "896" }, { "label": "SweetYaoi", "value": "916" }, { "label": "Swimmingfi", "value": "2748" }, { "label": "SwingingDe", "value": "2794" }, { "label": "SwordAndMa", "value": "287" }, { "label": "SwordArtOn", "value": "1373" }, { "label": "Swordblood", "value": "1882" }, { "label": "Swordgod", "value": "2645" }, { "label": "SwordImmor", "value": "1929" }, { "label": "swordrepai", "value": "2680" }, { "label": "Swordsman", "value": "99" }, { "label": "SwordWield", "value": "272" }, { "label": "Sword丨Lea", "value": "2265" }, { "label": "SxFriends", "value": "945" }, { "label": "SxSlaves", "value": "1049" }, { "label": "SxualAbuse", "value": "791" }, { "label": "SxualCulti", "value": "947" }, { "label": "Sysetm", "value": "1537" }, { "label": "system", "value": "1456" }, { "label": "System", "value": "168" }, { "label": "SystemAdmi", "value": "169" }, { "label": "SystemFlow", "value": "1683" }, { "label": "systemmale", "value": "3035" }, { "label": "SystemNo.3", "value": "2315" }, { "label": "systemowne", "value": "1286" }, { "label": "SystemTran", "value": "1383" }, { "label": "SystemTran", "value": "1505" }, { "label": "TableTenni", "value": "670" }, { "label": "Tactics", "value": "1028" }, { "label": "Tailsman", "value": "1756" }, { "label": "Takeaplane", "value": "2499" }, { "label": "takeoffboy", "value": "2690" }, { "label": "takeoverth", "value": "2457" }, { "label": "takestock", "value": "2209" }, { "label": "Talent", "value": "659" }, { "label": "Talents", "value": "1366" }, { "label": "TalentShow", "value": "1557" }, { "label": "Talismans", "value": "1221" }, { "label": "Talkshow", "value": "3240" }, { "label": "TangJichen", "value": "1886" }, { "label": "TangShaoqi", "value": "2259" }, { "label": "TangThirty", "value": "2904" }, { "label": "Taoist", "value": "1509" }, { "label": "Taoistprie", "value": "3291" }, { "label": "Tasker", "value": "1666" }, { "label": "TaurenIron", "value": "1968" }, { "label": "teacher", "value": "130" }, { "label": "teacher-st", "value": "3032" }, { "label": "TeacherDis", "value": "1397" }, { "label": "teachermal", "value": "3137" }, { "label": "TeacherMC", "value": "1398" }, { "label": "Teachers", "value": "665" }, { "label": "team", "value": "1401" }, { "label": "TeamManage", "value": "1066" }, { "label": "Teamwork", "value": "181" }, { "label": "Technologi", "value": "302" }, { "label": "Technology", "value": "1086" }, { "label": "Technology", "value": "1166" }, { "label": "Technology", "value": "2002" }, { "label": "TeckTyrann", "value": "2144" }, { "label": "Teemotofly", "value": "2481" }, { "label": "Teen", "value": "3189" }, { "label": "TeenageXia", "value": "2846" }, { "label": "Television", "value": "1071" }, { "label": "Temple", "value": "1009" }, { "label": "TempleThir", "value": "1988" }, { "label": "TenCommand", "value": "2201" }, { "label": "Tennis", "value": "671" }, { "label": "Tensura", "value": "1630" }, { "label": "Tenthousan", "value": "1974" }, { "label": "TenThousan", "value": "2684" }, { "label": "TerminalIl", "value": "440" }, { "label": "TerritoryC", "value": "1382" }, { "label": "TerritoryM", "value": "1768" }, { "label": "Terrori", "value": "3160" }, { "label": "Terrorists", "value": "762" }, { "label": "ThaiNovel", "value": "1714" }, { "label": "Thankyoufo", "value": "2621" }, { "label": "Theancesto", "value": "2298" }, { "label": "Theashesar", "value": "2455" }, { "label": "TheAsteris", "value": "1726" }, { "label": "Thebigdevi", "value": "2065" }, { "label": "Thebiggest", "value": "2052" }, { "label": "Thecatisgo", "value": "2517" }, { "label": "TheDevil", "value": "3167" }, { "label": "theevernon", "value": "1473" }, { "label": "Thefishmar", "value": "2538" }, { "label": "Theflowero", "value": "1850" }, { "label": "TheGamer", "value": "1721" }, { "label": "Thegloryof", "value": "2728" }, { "label": "TheGodfath", "value": "2200" }, { "label": "thegodofde", "value": "2018" }, { "label": "TheGospelo", "value": "1899" }, { "label": "Theheroist", "value": "972" }, { "label": "Thelightof", "value": "1955" }, { "label": "Thelistdep", "value": "2807" }, { "label": "Thelistisi", "value": "2419" }, { "label": "TheMainCha", "value": "3166" }, { "label": "TheManInTh", "value": "1271" }, { "label": "Thenewbact", "value": "2100" }, { "label": "Theoceando", "value": "2154" }, { "label": "Theoldfive", "value": "2389" }, { "label": "Thepowerof", "value": "2592" }, { "label": "Thequeenis", "value": "2339" }, { "label": "Thereareal", "value": "3248" }, { "label": "therearefi", "value": "2182" }, { "label": "Thereisasu", "value": "3250" }, { "label": "Thestronga", "value": "3174" }, { "label": "Thestronge", "value": "2143" }, { "label": "Thesunsett", "value": "1851" }, { "label": "TheThreeKi", "value": "1910" }, { "label": "Thetopofth", "value": "2903" }, { "label": "Thetruegod", "value": "2342" }, { "label": "Thewayofth", "value": "2824" }, { "label": "thewindisb", "value": "2123" }, { "label": "Theworld&a", "value": "2242" }, { "label": "Thieves", "value": "705" }, { "label": "Thinkingof", "value": "2229" }, { "label": "Thirty-two", "value": "2357" }, { "label": "Thisissure", "value": "2833" }, { "label": "thisyear", "value": "2071" }, { "label": "Thousandso", "value": "2557" }, { "label": "ThousandTe", "value": "2442" }, { "label": "Three-flav", "value": "1951" }, { "label": "Threedaysa", "value": "1894" }, { "label": "ThreeDotIn", "value": "2775" }, { "label": "ThreeKingd", "value": "1406" }, { "label": "threelittl", "value": "2239" }, { "label": "ThreeLives", "value": "2103" }, { "label": "ThreeLives", "value": "2558" }, { "label": "Threesome", "value": "210" }, { "label": "threeteeth", "value": "2420" }, { "label": "ThreshingG", "value": "1991" }, { "label": "Thriller", "value": "138" }, { "label": "Thunderous", "value": "2021" }, { "label": "Tianbang78", "value": "1825" }, { "label": "TianbangDi", "value": "2983" }, { "label": "Tianbanggr", "value": "2803" }, { "label": "TianbangHu", "value": "2661" }, { "label": "Tianbangol", "value": "2262" }, { "label": "Tianbangth", "value": "2184" }, { "label": "TianbangYa", "value": "2352" }, { "label": "Tianshitak", "value": "2368" }, { "label": "TianYiding", "value": "2343" }, { "label": "Tigerteeth", "value": "2583" }, { "label": "Time-Trave", "value": "1979" }, { "label": "TimeandSpa", "value": "1536" }, { "label": "TimeKingJO", "value": "2615" }, { "label": "Timelimit", "value": "3048" }, { "label": "TimeLoop", "value": "47" }, { "label": "TimeManipu", "value": "543" }, { "label": "TimeParado", "value": "1184" }, { "label": "TimeSkip", "value": "27" }, { "label": "TimeTravel", "value": "48" }, { "label": "TingFengZh", "value": "1932" }, { "label": "Titans", "value": "160" }, { "label": "tobacco", "value": "2224" }, { "label": "Today&0", "value": "2763" }, { "label": "Toilet", "value": "2779" }, { "label": "Tokyo", "value": "1483" }, { "label": "TokyoGhoul", "value": "1782" }, { "label": "TomboyishF", "value": "348" }, { "label": "TombRaider", "value": "2252" }, { "label": "TombRaider", "value": "2386" }, { "label": "TombRaider", "value": "2465" }, { "label": "TombRaider", "value": "2483" }, { "label": "tomorrowwi", "value": "1936" }, { "label": "ToneMasaya", "value": "2047" }, { "label": "TopMC", "value": "1695" }, { "label": "TopoftheCl", "value": "2070" }, { "label": "TopoftheCl", "value": "2141" }, { "label": "TopoftheCl", "value": "2801" }, { "label": "TopoftheFo", "value": "2456" }, { "label": "Toriko", "value": "1390" }, { "label": "Torture", "value": "763" }, { "label": "towashthed", "value": "2719" }, { "label": "TowerDefen", "value": "1223" }, { "label": "Toys", "value": "1036" }, { "label": "Trade", "value": "2927" }, { "label": "Tragedy", "value": "857" }, { "label": "TragicPast", "value": "533" }, { "label": "Tramsmigra", "value": "1637" }, { "label": "Tranformer", "value": "848" }, { "label": "Transforma", "value": "606" }, { "label": "Transmigat", "value": "1652" }, { "label": "transmigra", "value": "1469" }, { "label": "Transmigra", "value": "57" }, { "label": "Transmigra", "value": "1146" }, { "label": "Transmigra", "value": "1548" }, { "label": "Transmigra", "value": "1088" }, { "label": "Transmigra", "value": "1092" }, { "label": "Transmigra", "value": "1161" }, { "label": "Transmigra", "value": "1164" }, { "label": "Transmigra", "value": "1254" }, { "label": "Transplant", "value": "226" }, { "label": "Transporte", "value": "21" }, { "label": "Transporte", "value": "88" }, { "label": "Transporte", "value": "279" }, { "label": "Transporte", "value": "491" }, { "label": "TransportI", "value": "1351" }, { "label": "Transportt", "value": "1277" }, { "label": "Transworld", "value": "967" }, { "label": "Trap", "value": "639" }, { "label": "travel", "value": "3114" }, { "label": "Traveling", "value": "1607" }, { "label": "TravelingT", "value": "1125" }, { "label": "traveller", "value": "1663" }, { "label": "Traverse", "value": "866" }, { "label": "TreasureHu", "value": "913" }, { "label": "TreasureHu", "value": "1084" }, { "label": "TreasureHu", "value": "1284" }, { "label": "treeofenli", "value": "2867" }, { "label": "TribalSoci", "value": "803" }, { "label": "Trickster", "value": "995" }, { "label": "Trnasmigra", "value": "1588" }, { "label": "TroubledWo", "value": "2589" }, { "label": "TrueorFake", "value": "2955" }, { "label": "TrumanLive", "value": "2495" }, { "label": "TS", "value": "3092" }, { "label": "TsukibaAki", "value": "2178" }, { "label": "Tsundere", "value": "38" }, { "label": "TsundereLo", "value": "1766" }, { "label": "Tsunderesc", "value": "2501" }, { "label": "Tsuru", "value": "158" }, { "label": "Turtle", "value": "3070" }, { "label": "tv", "value": "1478" }, { "label": "TwentyFame", "value": "2416" }, { "label": "twilight", "value": "2006" }, { "label": "twilightdr", "value": "2830" }, { "label": "Twilightis", "value": "1896" }, { "label": "Twinbabies", "value": "1222" }, { "label": "twingods", "value": "2828" }, { "label": "Twins", "value": "441" }, { "label": "Twistbroth", "value": "2698" }, { "label": "Twisted", "value": "3169" }, { "label": "TwistedPer", "value": "182" }, { "label": "Two-dimens", "value": "2413" }, { "label": "Two-dimens", "value": "2468" }, { "label": "Two-dimens", "value": "2673" }, { "label": "two-wayred", "value": "3036" }, { "label": "Twopeopleb", "value": "2778" }, { "label": "Twopoundso", "value": "2734" }, { "label": "TypeMoon", "value": "1631" }, { "label": "Tyrant", "value": "1804" }, { "label": "Ugly", "value": "3087" }, { "label": "UglyProtag", "value": "793" }, { "label": "UglytoBeau", "value": "298" }, { "label": "UltramanPo", "value": "1976" }, { "label": "unbearable", "value": "2086" }, { "label": "Unconditio", "value": "728" }, { "label": "unconsciou", "value": "1026" }, { "label": "Undead", "value": "3105" }, { "label": "undeadfish", "value": "2162" }, { "label": "Undead丨Kn", "value": "2256" }, { "label": "Undefeated", "value": "2539" }, { "label": "Underestim", "value": "267" }, { "label": "underlolic", "value": "2765" }, { "label": "undersilve", "value": "2473" }, { "label": "understate", "value": "2894" }, { "label": "Undocument", "value": "1841" }, { "label": "unexpected", "value": "1444" }, { "label": "Unintentio", "value": "2887" }, { "label": "Unique", "value": "3059" }, { "label": "UniqueCult", "value": "211" }, { "label": "UniqueWeap", "value": "354" }, { "label": "UniqueWeap", "value": "778" }, { "label": "unknown", "value": "2575" }, { "label": "UnknownTao", "value": "2459" }, { "label": "Unknowntea", "value": "1871" }, { "label": "Unlimitedc", "value": "2907" }, { "label": "Unlimitedf", "value": "955" }, { "label": "Unlucky", "value": "3068" }, { "label": "UnluckyPro", "value": "379" }, { "label": "Unprincipl", "value": "3177" }, { "label": "Unreliable", "value": "613" }, { "label": "Unrequited", "value": "430" }, { "label": "upgrade", "value": "3224" }, { "label": "upgradeflo", "value": "3251" }, { "label": "Upsetting", "value": "2221" }, { "label": "Urban", "value": "144" }, { "label": "Urbanbrain", "value": "3292" }, { "label": "UrbanDatan", "value": "1911" }, { "label": "urbanhero", "value": "3273" }, { "label": "UrbanLife", "value": "860" }, { "label": "urbanlove", "value": "3238" }, { "label": "UrbanMilit", "value": "2566" }, { "label": "urbanroman", "value": "3282" }, { "label": "urbanshark", "value": "2295" }, { "label": "urbanstar", "value": "2251" }, { "label": "Urbanyearn", "value": "2909" }, { "label": "Urbanyouth", "value": "1770" }, { "label": "vampire", "value": "1466" }, { "label": "Vampire", "value": "1693" }, { "label": "vampiredri", "value": "2564" }, { "label": "Vampires", "value": "125" }, { "label": "VarietySho", "value": "1684" }, { "label": "VersatileM", "value": "1268" }, { "label": "Vest", "value": "1540" }, { "label": "VictorianE", "value": "890" }, { "label": "Videogame", "value": "3180" }, { "label": "videogames", "value": "3097" }, { "label": "Viewofthec", "value": "2015" }, { "label": "VikaBaka", "value": "2984" }, { "label": "Villager", "value": "1008" }, { "label": "Villain", "value": "465" }, { "label": "Villainess", "value": "713" }, { "label": "Villainess", "value": "1655" }, { "label": "VillainEvi", "value": "1375" }, { "label": "VillainPro", "value": "1676" }, { "label": "Villains", "value": "1584" }, { "label": "VillIain", "value": "1538" }, { "label": "Violence", "value": "3096" }, { "label": "virtualrea", "value": "45" }, { "label": "Vlogging", "value": "878" }, { "label": "VoiceActor", "value": "597" }, { "label": "VoicePack", "value": "1371" }, { "label": "VRMMO", "value": "1004" }, { "label": "Walkinthec", "value": "2338" }, { "label": "Wanderer", "value": "2128" }, { "label": "wanderings", "value": "1997" }, { "label": "WangEr", "value": "2498" }, { "label": "WangJiu", "value": "1885" }, { "label": "WangXiaomi", "value": "2396" }, { "label": "wanttocome", "value": "2544" }, { "label": "wanttoeatg", "value": "2561" }, { "label": "war", "value": "1455" }, { "label": "War", "value": "1531" }, { "label": "Warcraft", "value": "3126" }, { "label": "Warhammer4", "value": "141" }, { "label": "Warlock", "value": "2994" }, { "label": "Warlocks", "value": "121" }, { "label": "warmtime", "value": "2667" }, { "label": "WarofCivil", "value": "2946" }, { "label": "WarRecords", "value": "1046" }, { "label": "Wars", "value": "262" }, { "label": "Warship", "value": "1608" }, { "label": "WarsWeakto", "value": "603" }, { "label": "wastefish", "value": "2487" }, { "label": "Wasteland", "value": "868" }, { "label": "WasteWoodA", "value": "2208" }, { "label": "watermelon", "value": "2207" }, { "label": "watertown", "value": "2652" }, { "label": "WeakProtag", "value": "329" }, { "label": "WeaktoClan", "value": "1378" }, { "label": "WeaktoStro", "value": "273" }, { "label": "Wealth", "value": "1572" }, { "label": "WealthChar", "value": "1638" }, { "label": "Wealthy", "value": "1113" }, { "label": "WealthyCha", "value": "183" }, { "label": "WealthyCha", "value": "1609" }, { "label": "wealthyfam", "value": "3131" }, { "label": "Wearabook", "value": "1648" }, { "label": "WearBook", "value": "1199" }, { "label": "wearingabo", "value": "1761" }, { "label": "WebNovel", "value": "1709" }, { "label": "weektoStro", "value": "1121" }, { "label": "WenGuang", "value": "2602" }, { "label": "WenXuanyu", "value": "2610" }, { "label": "Werebeasts", "value": "689" }, { "label": "Werewolf", "value": "3144" }, { "label": "Werewolves", "value": "1192" }, { "label": "Western", "value": "998" }, { "label": "WesternFan", "value": "1436" }, { "label": "Westernrai", "value": "2155" }, { "label": "What&03", "value": "2067" }, { "label": "WhiteBunSe", "value": "1308" }, { "label": "Whitehorse", "value": "2388" }, { "label": "whitekeybo", "value": "2289" }, { "label": "whiteshirt", "value": "2863" }, { "label": "Wholesome", "value": "3058" }, { "label": "Whoringmak", "value": "2771" }, { "label": "wife-chasi", "value": "3065" }, { "label": "WifeistheD", "value": "2648" }, { "label": "Wilderness", "value": "852" }, { "label": "willowcand", "value": "2486" }, { "label": "windandmap", "value": "2676" }, { "label": "WindSpirit", "value": "1969" }, { "label": "Winningthe", "value": "2332" }, { "label": "Wisdom", "value": "3206" }, { "label": "wishardtow", "value": "1860" }, { "label": "Wishes", "value": "435" }, { "label": "Witch", "value": "3040" }, { "label": "Witches", "value": "511" }, { "label": "witchfan", "value": "2192" }, { "label": "Withbrutal", "value": "974" }, { "label": "witheredpr", "value": "2460" }, { "label": "Wizard", "value": "867" }, { "label": "Wizards", "value": "122" }, { "label": "World-hopp", "value": "1226" }, { "label": "WorldEmpir", "value": "1389" }, { "label": "WorldHoppi", "value": "312" }, { "label": "WorldofWar", "value": "1746" }, { "label": "Worlds", "value": "3151" }, { "label": "WorldTrave", "value": "461" }, { "label": "WorldTree", "value": "296" }, { "label": "WorldWar2", "value": "1532" }, { "label": "WOW", "value": "2934" }, { "label": "writeonlyz", "value": "1875" }, { "label": "Writers", "value": "536" }, { "label": "Wuhutookof", "value": "2474" }, { "label": "Wuxia", "value": "730" }, { "label": "Wuxicheng", "value": "1880" }, { "label": "WW2", "value": "3031" }, { "label": "Xianxia", "value": "355" }, { "label": "XiaomiStar", "value": "2710" }, { "label": "Xiaonianbl", "value": "2582" }, { "label": "XiaonianXu", "value": "2681" }, { "label": "Xiaothreey", "value": "2535" }, { "label": "XiaoxiangP", "value": "2899" }, { "label": "Xiaoxin", "value": "1983" }, { "label": "XieDaoheng", "value": "2577" }, { "label": "Xiuxian", "value": "3243" }, { "label": "XiuXiuXiuX", "value": "1895" }, { "label": "Xuanhuan", "value": "743" }, { "label": "XuebaIII", "value": "2274" }, { "label": "Xuebaisinv", "value": "2314" }, { "label": "Xueqiunder", "value": "2108" }, { "label": "Xufamilyel", "value": "2279" }, { "label": "XuIintheTa", "value": "2509" }, { "label": "Yakult", "value": "2321" }, { "label": "Yamen", "value": "3069" }, { "label": "Yandere", "value": "77" }, { "label": "YangXiaoA", "value": "2106" }, { "label": "Yaoi", "value": "738" }, { "label": "Yaoyue", "value": "2536" }, { "label": "yearaftery", "value": "2885" }, { "label": "yearningfo", "value": "2269" }, { "label": "yearningfo", "value": "2612" }, { "label": "yearningfo", "value": "2805" }, { "label": "Yearningfo", "value": "2235" }, { "label": "Yearningfo", "value": "2402" }, { "label": "Yearningto", "value": "2963" }, { "label": "YeGongzi", "value": "2743" }, { "label": "YeGucheng", "value": "2711" }, { "label": "YellowSpri", "value": "1827" }, { "label": "YeluChengj", "value": "1869" }, { "label": "YeQianqiu", "value": "2825" }, { "label": "YeXiaobai", "value": "2329" }, { "label": "YeYe", "value": "2972" }, { "label": "Ying&03", "value": "2308" }, { "label": "YingXiaofe", "value": "2060" }, { "label": "YinLiisins", "value": "1961" }, { "label": "Yongchuang", "value": "2025" }, { "label": "youaretoow", "value": "1930" }, { "label": "Youkai", "value": "1058" }, { "label": "YoungerBro", "value": "816" }, { "label": "YoungerLov", "value": "787" }, { "label": "YoungerSis", "value": "359" }, { "label": "younglovei", "value": "3091" }, { "label": "YoungMaste", "value": "2739" }, { "label": "YoungMaste", "value": "2821" }, { "label": "Youth", "value": "863" }, { "label": "Yu-Gi-Oh", "value": "1133" }, { "label": "YuboTiandi", "value": "2318" }, { "label": "Yugioh", "value": "1314" }, { "label": "Yunmu", "value": "2271" }, { "label": "YunZhongju", "value": "2901" }, { "label": "Yuri", "value": "152" }, { "label": "YuTsingYi", "value": "2578" }, { "label": "YuXiaoqi", "value": "2176" }, { "label": "YuYuyu", "value": "2754" }, { "label": "z-man", "value": "159" }, { "label": "Zerg", "value": "1126" }, { "label": "Zergs", "value": "1151" }, { "label": "ZhangErgou", "value": "2714" }, { "label": "ZhangFeiin", "value": "2636" }, { "label": "ZhangJuli", "value": "2608" }, { "label": "ZhangTianb", "value": "2379" }, { "label": "zhishen", "value": "2760" }, { "label": "ZhuDabald", "value": "2540" }, { "label": "ZhugeDali&", "value": "2633" }, { "label": "ZhugeIrona", "value": "2204" }, { "label": "Zhugeiscra", "value": "2642" }, { "label": "ZhuZhiyue", "value": "2163" }, { "label": "Zippo", "value": "2773" }, { "label": "ZiXuanXuan", "value": "1940" }, { "label": "Zombie", "value": "885" }, { "label": "zombiefish", "value": "2296" }, { "label": "ZombieGod", "value": "2193" }, { "label": "ZombieQuee", "value": "1613" }, { "label": "Zombies", "value": "111" }, { "label": "ZombieSumo", "value": "2988" }, { "label": "Zoo", "value": "887" }, { "label": "Zuge", "value": "2187" }, { "label": "Zulongstil", "value": "2305" }, { "label": "ZuwuGonggo", "value": "2737" }, { "label": "仕辰", "value": "1914" }, { "label": "家族", "value": "3234" }, { "label": "小封", "value": "2240" }, { "label": "慕阳", "value": "2096" }, { "label": "日常", "value": "3289" }, { "label": "森罗", "value": "2404" }, { "label": "清裁", "value": "2900" }, { "label": "直播", "value": "3268" }, { "label": "社会", "value": "3229" }, { "label": "空间", "value": "3288" }, { "label": "萌图", "value": "2883" }, { "label": "谢邀", "value": "1937" }, { "label": "酣歌", "value": "2220" }, { "label": "铁帅", "value": "2130" }, { "label": "零充", "value": "2965" }, { "label": "饕牛", "value": "1872" }], "value": "", "type": filterInputs_1.FilterTypes.Picker } } }); -exports.default = plugin; diff --git a/.js/plugins/english/Wuxiap[readwn].js b/.js/plugins/english/Wuxiap[readwn].js deleted file mode 100644 index 5774969..0000000 --- a/.js/plugins/english/Wuxiap[readwn].js +++ /dev/null @@ -1,209 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var cheerio_1 = require("cheerio"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var ReadwnPlugin = /** @class */ (function () { - function ReadwnPlugin(metadata) { - this.fetchImage = fetch_1.fetchFile; - this.id = metadata.id; - this.name = metadata.sourceName + "[readwn]"; - var iconFileName = metadata.sourceName.replace(/\s+/g, "").toLowerCase(); - this.icon = "multisrc/readwn/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.filters = metadata.filters; - } - ReadwnPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var url, body, loadedCheerio, novels; - var _this = this; - return __generator(this, function (_f) { - switch (_f.label) { - case 0: - url = this.site + "/list/"; - url += (((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) || "all") + "/"; - url += (((_c = filters === null || filters === void 0 ? void 0 : filters.status) === null || _c === void 0 ? void 0 : _c.value) || "all") + "-"; - url += showLatestNovels ? "lastdotime" : ((_d = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _d === void 0 ? void 0 : _d.value) || "newstime"; - url += "-" + (pageNo - 1) + ".html"; - if ((_e = filters === null || filters === void 0 ? void 0 : filters.tags) === null || _e === void 0 ? void 0 : _e.value) { //only 1 page - url = this.site + "/tags/" + filters.tags.value + "-0.html"; - } - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _f.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = loadedCheerio("li.novel-item") - .map(function (index, element) { return ({ - name: loadedCheerio(element).find("h4").text(), - cover: _this.site + - loadedCheerio(element).find(".novel-cover > img").attr("data-src"), - url: _this.site + loadedCheerio(element).find("a").attr("href"), - }); }) - .get(); - return [2 /*return*/, novels]; - } - }); - }); - }; - ReadwnPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, novel, latestChapterNo, chapters, lastChapterNo, i; - var _this = this; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { - url: novelUrl, - }; - novel.name = loadedCheerio("h1.novel-title").text(); - novel.author = loadedCheerio("span[itemprop=author]").text(); - novel.cover = this.site + loadedCheerio("figure.cover > img").attr("data-src"); - novel.summary = loadedCheerio(".summary") - .text() - .replace("Summary", "") - .trim(); - novel.genres = loadedCheerio("div.categories > ul > li") - .map(function (index, element) { var _a; return (_a = loadedCheerio(element).text()) === null || _a === void 0 ? void 0 : _a.trim(); }) - .get() - .join(","); - loadedCheerio("div.header-stats > span").each(function () { - if (loadedCheerio(this).find("small").text() === "Status") { - novel.status = loadedCheerio(this).find("strong").text(); - } - }); - latestChapterNo = parseInt(loadedCheerio(".header-stats") - .find("span > strong") - .first() - .text() - .trim()); - chapters = loadedCheerio(".chapter-list li") - .map(function (index, element) { - var _a; - var name = loadedCheerio(element).find("a .chapter-title").text().trim(); - var url = (_a = loadedCheerio(element).find("a").attr("href")) === null || _a === void 0 ? void 0 : _a.trim(); - var releaseTime = loadedCheerio(element).find("a .chapter-update").text().trim(); - if (!name || !url) - return null; - return { - name: name, - releaseTime: (0, parseMadaraDate_1.parseMadaraDate)(releaseTime), - url: _this.site + url, - }; - }) - .get() - .filter(function (chapter) { return chapter; }); - if (latestChapterNo > chapters.length) { - lastChapterNo = parseInt(((_a = chapters[chapters.length - 1].url.match(/_(\d+)\.html/)) === null || _a === void 0 ? void 0 : _a[1]) || "", 10); - for (i = (lastChapterNo || chapters.length) + 1; i <= latestChapterNo; i++) { - chapters.push({ - name: "Chapter " + i, - releaseTime: null, - url: novelUrl.replace(".html", "_" + i + ".html"), - }); - } - } - novel.chapters = chapters; - return [2 /*return*/, novel]; - } - }); - }); - }; - ReadwnPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".chapter-content").html() || ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - ReadwnPlugin.prototype.searchNovels = function (keyboard) { - return __awaiter(this, void 0, void 0, function () { - var result, loadedCheerio, novels; - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "/e/search/index.php", { - headers: { - "Content-Type": "application/x-www-form-urlencoded", - Referer: this.site + "/search.html", - Origin: this.site, - "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36", - }, - method: "POST", - body: JSON.stringify({ - show: "title", - tempid: 1, - tbname: "news", - keyboard: keyboard, - }), - }).then(function (res) { return res.text(); })]; - case 1: - result = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(result); - novels = loadedCheerio("li.novel-item") - .map(function (index, element) { return ({ - name: loadedCheerio(element).find("h4").text(), - cover: _this.site + loadedCheerio(element).find("img").attr("data-src"), - url: _this.site + loadedCheerio(element).find("a").attr("href"), - }); }) - .get(); - return [2 /*return*/, novels]; - } - }); - }); - }; - return ReadwnPlugin; -}()); -var plugin = new ReadwnPlugin({ "id": "wuxiap", "sourceSite": "https://www.wuxiap.com", "sourceName": "Wuxiap", "filters": { "sort": { "label": "Sort By", "options": [{ "label": "New", "value": "newstime" }, { "label": "Popular", "value": "onclick" }, { "label": "Updates", "value": "lastdotime" }], "value": "newstime", "type": filterInputs_1.FilterTypes.Picker }, "status": { "label": "Status", "options": [{ "label": "All", "value": "all" }, { "label": "Completed", "value": "Completed" }, { "label": "Ongoing", "value": "Ongoing" }], "value": "all", "type": filterInputs_1.FilterTypes.Picker }, "genres": { "label": "Genre / Category", "options": [{ "label": "All", "value": "all" }, { "label": "Action", "value": "action" }, { "label": "Adventure", "value": "adventure" }, { "label": "Comedy", "value": "comedy" }, { "label": "Contemporary Romance", "value": "contemporary-romance" }, { "label": "Drama", "value": "drama" }, { "label": "Eastern Fantasy", "value": "eastern-fantasy" }, { "label": "Fantasy", "value": "fantasy" }, { "label": "Fantasy Romance", "value": "fantasy-romance" }, { "label": "Game", "value": "game" }, { "label": "Gender Bender", "value": "gender-bender" }, { "label": "Harem", "value": "harem" }, { "label": "Historical", "value": "historical" }, { "label": "Horror", "value": "horror" }, { "label": "Josei", "value": "josei" }, { "label": "Lolicon", "value": "lolicon" }, { "label": "Magical Realism", "value": "magical-realism" }, { "label": "Martial Arts", "value": "martial-arts" }, { "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": "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": "Video Games", "value": "video-games" }, { "label": "Wuxia", "value": "wuxia" }, { "label": "Xianxia", "value": "xianxia" }, { "label": "Xuanhuan", "value": "xuanhuan" }, { "label": "Yaoi", "value": "yaoi" }, { "label": "Chinese", "value": "chinese" }, { "label": "Erciyuan", "value": "erciyuan" }, { "label": "Faloo", "value": "faloo" }, { "label": "Fan-Fiction", "value": "fan-fiction" }, { "label": "Hentai", "value": "hentai" }, { "label": "Isekai", "value": "isekai" }, { "label": "Japanese", "value": "japanese" }, { "label": "Korean", "value": "korean" }, { "label": "Magic", "value": "magic" }, { "label": "Military", "value": "military" }, { "label": "Official Circles", "value": "official_circles" }, { "label": "Science Fiction", "value": "science_fiction" }, { "label": "Shoujo Ai", "value": "shoujo-ai" }, { "label": "Suspense Thriller", "value": "suspense_thriller" }, { "label": "Travel Through Time", "value": "travel_through_time" }, { "label": "Two-dimensional", "value": "two-dimensional" }, { "label": "Urban", "value": "urban" }, { "label": "Urban Life", "value": "urban-life" }, { "label": "Virtual Reality", "value": "virtual-reality" }, { "label": "Wuxia Xianxia", "value": "wuxia_xianxia" }, { "label": "Yuri", "value": "yuri" }], "value": "", "type": filterInputs_1.FilterTypes.Picker }, "tags": { "label": "Tags", "options": [{ "label": "Default", "value": "" }, { "label": "☆Crazy→M", "value": "5728" }, { "label": "A.I", "value": "4862" }, { "label": "a55421", "value": "6070" }, { "label": "Aaron&0", "value": "2064" }, { "label": "AbaloneHou", "value": "5017" }, { "label": "Abandoned", "value": "5452" }, { "label": "AbandonedC", "value": "145" }, { "label": "AbandonedC", "value": "1597" }, { "label": "abandonedw", "value": "3327" }, { "label": "Abilities", "value": "1691" }, { "label": "Ability", "value": "1203" }, { "label": "AbilitySte", "value": "289" }, { "label": "ABO", "value": "930" }, { "label": "Abortion", "value": "1696" }, { "label": "ABowlofCar", "value": "4168" }, { "label": "Abowlofduk", "value": "4398" }, { "label": "AbsentPare", "value": "240" }, { "label": "AbsoluteDu", "value": "1670" }, { "label": "absolutely", "value": "2255" }, { "label": "Absorbform", "value": "3681" }, { "label": "Abuse", "value": "856" }, { "label": "AbusiveCha", "value": "1" }, { "label": "AbusiveCha", "value": "815" }, { "label": "Abyss", "value": "3971" }, { "label": "Academy", "value": "50" }, { "label": "Acane", "value": "5993" }, { "label": "acanofcoke", "value": "4689" }, { "label": "AcasualPaw", "value": "806" }, { "label": "Accelerate", "value": "51" }, { "label": "AcceptingD", "value": "1507" }, { "label": "ACGN", "value": "1653" }, { "label": "acloudpier", "value": "4002" }, { "label": "Acorneroft", "value": "5910" }, { "label": "Acting", "value": "103" }, { "label": "Action", "value": "90" }, { "label": "Actors", "value": "1101" }, { "label": "Actress", "value": "1526" }, { "label": "Acupoffrag", "value": "4815" }, { "label": "acupofwarm", "value": "3745" }, { "label": "AdaptedtoA", "value": "87" }, { "label": "AdaptedtoD", "value": "146" }, { "label": "AdaptedtoD", "value": "495" }, { "label": "AdaptedtoG", "value": "334" }, { "label": "AdaptedtoM", "value": "88" }, { "label": "AdaptedtoM", "value": "239" }, { "label": "AdaptedtoM", "value": "677" }, { "label": "AdaptedtoM", "value": "147" }, { "label": "AdaptedtoV", "value": "973" }, { "label": "ADeadBody", "value": "5069" }, { "label": "Administra", "value": "5659" }, { "label": "Admiral-sa", "value": "4680" }, { "label": "Adopted", "value": "1300" }, { "label": "AdoptedChi", "value": "262" }, { "label": "AdoptedPro", "value": "270" }, { "label": "Adoption", "value": "1697" }, { "label": "adreamcome", "value": "4569" }, { "label": "Adrogynous", "value": "1105" }, { "label": "Adult", "value": "1448" }, { "label": "Adultery", "value": "433" }, { "label": "AdvancedKn", "value": "1564" }, { "label": "advancedte", "value": "1661" }, { "label": "adventerer", "value": "3416" }, { "label": "Adventure", "value": "943" }, { "label": "adventurep", "value": "3942" }, { "label": "Adventurer", "value": "276" }, { "label": "Adventurer", "value": "4342" }, { "label": "Affair", "value": "670" }, { "label": "afigure", "value": "5843" }, { "label": "afinegray", "value": "4804" }, { "label": "AfricanEmi", "value": "1894" }, { "label": "afterthera", "value": "4489" }, { "label": "Afterthesh", "value": "3231" }, { "label": "Aftertheso", "value": "1818" }, { "label": "Afunnyguy", "value": "3697" }, { "label": "Age-gap", "value": "1943" }, { "label": "AgeDiffere", "value": "939" }, { "label": "AgeGap", "value": "1642" }, { "label": "Agent", "value": "3605" }, { "label": "AgeofGods", "value": "1897" }, { "label": "AgeProgres", "value": "206" }, { "label": "AgeRegress", "value": "436" }, { "label": "AggresiveC", "value": "1284" }, { "label": "Aggressive", "value": "242" }, { "label": "Aggressive", "value": "1476" }, { "label": "aglassofhu", "value": "4049" }, { "label": "Agleamoffl", "value": "4483" }, { "label": "agluttonou", "value": "4884" }, { "label": "agrass", "value": "1893" }, { "label": "Ahbig", "value": "5530" }, { "label": "aheart", "value": "4219" }, { "label": "AhQing", "value": "3965" }, { "label": "ahundredth", "value": "3475" }, { "label": "ahveryfish", "value": "1876" }, { "label": "AI", "value": "788" }, { "label": "AI-chip", "value": "1181" }, { "label": "AiAiwhowor", "value": "5491" }, { "label": "ailii", "value": "4923" }, { "label": "Aimingatth", "value": "5897" }, { "label": "airflow", "value": "3266" }, { "label": "airflowgen", "value": "3051" }, { "label": "Aishara", "value": "4885" }, { "label": "AJiu", "value": "5892" }, { "label": "ajugofsake", "value": "5736" }, { "label": "AkamegaKil", "value": "1040" }, { "label": "AkiraHayak", "value": "4595" }, { "label": "akitten", "value": "4536" }, { "label": "AladleofCh", "value": "5873" }, { "label": "alazybones", "value": "5295" }, { "label": "alazyscale", "value": "4096" }, { "label": "Alchemist", "value": "1000" }, { "label": "Alchemy", "value": "52" }, { "label": "AliceSupre", "value": "4557" }, { "label": "Alicia", "value": "3758" }, { "label": "Alien", "value": "3111" }, { "label": "Aliens", "value": "243" }, { "label": "alittlebit", "value": "4546" }, { "label": "AlittleJun", "value": "4921" }, { "label": "alittlewol", "value": "4232" }, { "label": "Aliverday", "value": "2656" }, { "label": "All-GirlsS", "value": "1024" }, { "label": "Alldaylong", "value": "4316" }, { "label": "allenzhang", "value": "2015" }, { "label": "allergytoe", "value": "3665" }, { "label": "AllHeavens", "value": "2348" }, { "label": "Alloverthe", "value": "3897" }, { "label": "Almighty", "value": "3265" }, { "label": "AlmightyCo", "value": "2778" }, { "label": "Almightypl", "value": "2780" }, { "label": "Almostsir", "value": "4238" }, { "label": "Alone", "value": "2610" }, { "label": "Alpaca", "value": "5616" }, { "label": "alpha", "value": "4340" }, { "label": "alsothough", "value": "4775" }, { "label": "AltecNewco", "value": "5298" }, { "label": "AlterateHi", "value": "2902" }, { "label": "AlternateH", "value": "1256" }, { "label": "AlternateH", "value": "3026" }, { "label": "AlternateH", "value": "2995" }, { "label": "AlternateH", "value": "2948" }, { "label": "AlternateW", "value": "220" }, { "label": "Alternativ", "value": "3836" }, { "label": "AmadaR", "value": "5792" }, { "label": "Amagicpill", "value": "2434" }, { "label": "AmanChuanl", "value": "5841" }, { "label": "Amatchmade", "value": "6129" }, { "label": "amateurtra", "value": "6059" }, { "label": "amberstar", "value": "4087" }, { "label": "ambitionin", "value": "4853" }, { "label": "Amelonisno", "value": "5026" }, { "label": "America", "value": "3285" }, { "label": "Americaiss", "value": "3450" }, { "label": "AmericanCo", "value": "2899" }, { "label": "Americas", "value": "2903" }, { "label": "Amis", "value": "5279" }, { "label": "Amnesia", "value": "244" }, { "label": "Amnesty", "value": "5965" }, { "label": "Amon&03", "value": "3740" }, { "label": "amoonrabbi", "value": "4877" }, { "label": "AmoralityP", "value": "1044" }, { "label": "Amouthfulo", "value": "3980" }, { "label": "AmusementP", "value": "766" }, { "label": "An83", "value": "5020" }, { "label": "Anal", "value": "53" }, { "label": "anamewithd", "value": "5019" }, { "label": "Anarchism", "value": "3855" }, { "label": "Anas", "value": "3764" }, { "label": "Anautumnra", "value": "2577" }, { "label": "Ancestralf", "value": "3352" }, { "label": "ancestry", "value": "5826" }, { "label": "Ancient", "value": "1546" }, { "label": "AncientArm", "value": "5701" }, { "label": "AncientBus", "value": "1257" }, { "label": "AncientChi", "value": "34" }, { "label": "AncientChi", "value": "2892" }, { "label": "AncientChi", "value": "424" }, { "label": "ancientlov", "value": "5680" }, { "label": "Ancientmar", "value": "6150" }, { "label": "AncientRea", "value": "1478" }, { "label": "ancientset", "value": "1465" }, { "label": "AncientSpi", "value": "3235" }, { "label": "ancienttim", "value": "1049" }, { "label": "AncientTim", "value": "149" }, { "label": "AncientWea", "value": "1730" }, { "label": "ancientwei", "value": "3637" }, { "label": "ancientwil", "value": "3432" }, { "label": "andfall", "value": "4373" }, { "label": "Androgynou", "value": "318" }, { "label": "Androids", "value": "471" }, { "label": "anewworld", "value": "1425" }, { "label": "Angel", "value": "1589" }, { "label": "Angel&0", "value": "6127" }, { "label": "angeldoom", "value": "4089" }, { "label": "AngelofGai", "value": "4636" }, { "label": "AngelPeerl", "value": "4059" }, { "label": "Angels", "value": "369" }, { "label": "anglemetal", "value": "5414" }, { "label": "AngryChick", "value": "4426" }, { "label": "angryhouse", "value": "2331" }, { "label": "Angst", "value": "1007" }, { "label": "AnimalChar", "value": "120" }, { "label": "AnimalRear", "value": "453" }, { "label": "animals", "value": "1694" }, { "label": "Animator", "value": "1704" }, { "label": "Anime", "value": "759" }, { "label": "animenewco", "value": "2208" }, { "label": "Anl", "value": "189" }, { "label": "AnlanInvin", "value": "2842" }, { "label": "AnNuan84", "value": "6085" }, { "label": "anoldliqun", "value": "3792" }, { "label": "anoldman", "value": "2268" }, { "label": "Anon", "value": "4223" }, { "label": "Anonymous", "value": "5229" }, { "label": "Anonymouso", "value": "5420" }, { "label": "AnonymousX", "value": "4816" }, { "label": "anorangetr", "value": "4389" }, { "label": "anotherpac", "value": "4138" }, { "label": "AnotherWor", "value": "899" }, { "label": "AnotherWor", "value": "1550" }, { "label": "anovernigh", "value": "5407" }, { "label": "anthology", "value": "1440" }, { "label": "anti-entro", "value": "3820" }, { "label": "Anti-Hero", "value": "1174" }, { "label": "Anti-HeroL", "value": "782" }, { "label": "Anti-heroP", "value": "1171" }, { "label": "Anti-Japan", "value": "3269" }, { "label": "Anti-Magic", "value": "688" }, { "label": "Anti-MC", "value": "2916" }, { "label": "Anti-routi", "value": "3096" }, { "label": "Anti-routi", "value": "3073" }, { "label": "Anti-socia", "value": "454" }, { "label": "AntiHero", "value": "816" }, { "label": "AntiheroPr", "value": "36" }, { "label": "AntiqueSho", "value": "619" }, { "label": "AoChen", "value": "5731" }, { "label": "Aoyamafell", "value": "5662" }, { "label": "AozakiAoko", "value": "4811" }, { "label": "apapertige", "value": "4603" }, { "label": "ApartmentL", "value": "725" }, { "label": "apassingfi", "value": "4891" }, { "label": "Apassingfo", "value": "5913" }, { "label": "ApatheticP", "value": "295" }, { "label": "apieceofno", "value": "3498" }, { "label": "apigeon", "value": "5029" }, { "label": "Apocalypse", "value": "89" }, { "label": "Apocalypse", "value": "5466" }, { "label": "Apocalypse", "value": "1233" }, { "label": "Apocalypse", "value": "1081" }, { "label": "Apocalypti", "value": "1485" }, { "label": "ApostleCel", "value": "5858" }, { "label": "Apotofrefr", "value": "5865" }, { "label": "Appearance", "value": "54" }, { "label": "Appearance", "value": "104" }, { "label": "Apple", "value": "1962" }, { "label": "Appraisal", "value": "1180" }, { "label": "Apprentice", "value": "1376" }, { "label": "aquablue", "value": "3642" }, { "label": "Aquadoesn&", "value": "4050" }, { "label": "arayofsuns", "value": "2126" }, { "label": "Arbor11", "value": "3673" }, { "label": "archeology", "value": "3629" }, { "label": "Archer", "value": "2590" }, { "label": "Archery", "value": "411" }, { "label": "Aresstream", "value": "3214" }, { "label": "Aristocrac", "value": "221" }, { "label": "Aristocrat", "value": "1150" }, { "label": "Aristrocac", "value": "1598" }, { "label": "Arknights", "value": "1540" }, { "label": "armoredcit", "value": "3558" }, { "label": "ArmsDealer", "value": "357" }, { "label": "ArmsDealer", "value": "2907" }, { "label": "ArmsTrade", "value": "1389" }, { "label": "Army", "value": "329" }, { "label": "Army-build", "value": "870" }, { "label": "ArmyBuildi", "value": "163" }, { "label": "ArrangedMa", "value": "223" }, { "label": "ArrayMage", "value": "4344" }, { "label": "ArrogantCh", "value": "55" }, { "label": "ArthurJun", "value": "5940" }, { "label": "ArtifactCr", "value": "209" }, { "label": "Artifacts", "value": "210" }, { "label": "ArtifactsB", "value": "567" }, { "label": "ArtifactsC", "value": "56" }, { "label": "artificer", "value": "1755" }, { "label": "Artificial", "value": "2919" }, { "label": "Artificial", "value": "91" }, { "label": "artillery", "value": "5124" }, { "label": "Artis", "value": "869" }, { "label": "Artist", "value": "760" }, { "label": "Artists", "value": "302" }, { "label": "asaltedfis", "value": "5638" }, { "label": "Asasi", "value": "4951" }, { "label": "Ascension", "value": "5497" }, { "label": "Ashcanfly", "value": "4110" }, { "label": "Ashesthatd", "value": "3803" }, { "label": "ashtrayold", "value": "4499" }, { "label": "AskJianZho", "value": "4807" }, { "label": "askTaichi", "value": "2316" }, { "label": "asmallgras", "value": "3497" }, { "label": "Asmalloffi", "value": "5766" }, { "label": "ASOIAF", "value": "3423" }, { "label": "assasin", "value": "1763" }, { "label": "Assasins", "value": "3462" }, { "label": "Assassin", "value": "1055" }, { "label": "assassin95", "value": "5553" }, { "label": "Assassins", "value": "217" }, { "label": "Aston", "value": "5519" }, { "label": "astonelion", "value": "5477" }, { "label": "Astrologer", "value": "700" }, { "label": "Asukatired", "value": "4803" }, { "label": "asword", "value": "5103" }, { "label": "aswordbone", "value": "4617" }, { "label": "atabbycat", "value": "4395" }, { "label": "athlete", "value": "3275" }, { "label": "AThousandM", "value": "3484" }, { "label": "ATom", "value": "5763" }, { "label": "atravellin", "value": "1832" }, { "label": "Attractive", "value": "1648" }, { "label": "aturkey", "value": "4203" }, { "label": "Auspicious", "value": "2298" }, { "label": "AuthorJi", "value": "4443" }, { "label": "Authoroffa", "value": "2018" }, { "label": "Autism", "value": "241" }, { "label": "AutomaticU", "value": "1639" }, { "label": "AutomaticU", "value": "1312" }, { "label": "Automatons", "value": "675" }, { "label": "autumnautu", "value": "1838" }, { "label": "autumncold", "value": "4142" }, { "label": "autumnisno", "value": "5436" }, { "label": "autumnleav", "value": "3685" }, { "label": "AutumnLeav", "value": "4518" }, { "label": "Avatar", "value": "3698" }, { "label": "Avatar&", "value": "1635" }, { "label": "Average-lo", "value": "245" }, { "label": "AverageLoo", "value": "905" }, { "label": "avigorous", "value": "2466" }, { "label": "Awakeningf", "value": "5715" }, { "label": "Award-winn", "value": "985" }, { "label": "awhitebait", "value": "5517" }, { "label": "AwkwardPro", "value": "271" }, { "label": "Ayanokoji", "value": "2066" }, { "label": "Ayres", "value": "5241" }, { "label": "AZanpakut", "value": "2637" }, { "label": "Azeroth", "value": "1702" }, { "label": "azure", "value": "5954" }, { "label": "AzurLane", "value": "1068" }, { "label": "babbling1", "value": "3862" }, { "label": "Babies", "value": "1223" }, { "label": "baby", "value": "3594" }, { "label": "BabyFeng", "value": "4278" }, { "label": "backtoboat", "value": "4479" }, { "label": "Badassprot", "value": "1695" }, { "label": "badcheese", "value": "4584" }, { "label": "Bagpipeson", "value": "5977" }, { "label": "BaiBailan~", "value": "5427" }, { "label": "BaiMaoisno", "value": "5472" }, { "label": "BaiMingxia", "value": "4875" }, { "label": "BaiTuanJiu", "value": "4995" }, { "label": "BaiXiaowei", "value": "2820" }, { "label": "BaiYuenake", "value": "4432" }, { "label": "baldman", "value": "2395" }, { "label": "Baldmaster", "value": "5207" }, { "label": "baldnessat", "value": "2313" }, { "label": "BaldTraine", "value": "5628" }, { "label": "balduncle", "value": "2830" }, { "label": "BalmoreBea", "value": "5189" }, { "label": "bamboobamb", "value": "3654" }, { "label": "BambooFlow", "value": "4506" }, { "label": "bambooink", "value": "4918" }, { "label": "bambooshad", "value": "5643" }, { "label": "Bambooskin", "value": "5776" }, { "label": "Bandit", "value": "3302" }, { "label": "BarrenEmpe", "value": "2260" }, { "label": "Baseball", "value": "673" }, { "label": "BasedonaMo", "value": "579" }, { "label": "BasedonanA", "value": "1052" }, { "label": "BasedonaSo", "value": "1118" }, { "label": "BasedonaTV", "value": "671" }, { "label": "BasedonaVi", "value": "1014" }, { "label": "BasedonaVi", "value": "1083" }, { "label": "BashuiDuxi", "value": "5653" }, { "label": "Basket", "value": "1606" }, { "label": "basketball", "value": "3068" }, { "label": "Basketball", "value": "226" }, { "label": "BatDemonCh", "value": "4912" }, { "label": "BattleAcad", "value": "416" }, { "label": "BattleComp", "value": "211" }, { "label": "BattleThro", "value": "1333" }, { "label": "Baumudrich", "value": "5375" }, { "label": "BBQmadebyt", "value": "4765" }, { "label": "BDSM", "value": "190" }, { "label": "beaming", "value": "2508" }, { "label": "Beansandgr", "value": "2786" }, { "label": "Bearcat", "value": "2142" }, { "label": "BearChild", "value": "3461" }, { "label": "Bearchildl", "value": "2232" }, { "label": "bearcocoa", "value": "2652" }, { "label": "beardada", "value": "5798" }, { "label": "beardwhite", "value": "4253" }, { "label": "Beast", "value": "1253" }, { "label": "beastcompa", "value": "1128" }, { "label": "BeastCompa", "value": "57" }, { "label": "Beastkin", "value": "8" }, { "label": "beastman", "value": "1700" }, { "label": "Beastmen", "value": "1369" }, { "label": "beastprota", "value": "2315" }, { "label": "Beasts", "value": "58" }, { "label": "Beasttamer", "value": "1254" }, { "label": "Beasttamin", "value": "5057" }, { "label": "beastworld", "value": "3441" }, { "label": "Beat", "value": "5170" }, { "label": "Beatthefem", "value": "5065" }, { "label": "Beatthemal", "value": "5064" }, { "label": "beatyourse", "value": "2204" }, { "label": "beautifula", "value": "2691" }, { "label": "Beautifulb", "value": "5870" }, { "label": "BeautifulC", "value": "1018" }, { "label": "beautifulf", "value": "1746" }, { "label": "Beautifulf", "value": "1456" }, { "label": "BeautifulF", "value": "21" }, { "label": "BeautifulF", "value": "1748" }, { "label": "beautifulh", "value": "59" }, { "label": "Beautifull", "value": "1516" }, { "label": "BeautifulP", "value": "1160" }, { "label": "beauty", "value": "1418" }, { "label": "Beautyred", "value": "4560" }, { "label": "becausesoh", "value": "2649" }, { "label": "becomeagod", "value": "3215" }, { "label": "becomeagod", "value": "3022" }, { "label": "Becomefamo", "value": "1921" }, { "label": "BeefandShr", "value": "4790" }, { "label": "beggingfor", "value": "2710" }, { "label": "Beginner", "value": "5878" }, { "label": "Behappytod", "value": "4836" }, { "label": "BehindtheS", "value": "1643" }, { "label": "BehindtheS", "value": "1505" }, { "label": "BeichengNa", "value": "3945" }, { "label": "BeidouTian", "value": "6050" }, { "label": "BeiHaiPiao", "value": "5421" }, { "label": "BeishanRai", "value": "5112" }, { "label": "bellbell", "value": "6045" }, { "label": "bellsofjoy", "value": "4568" }, { "label": "Belltouche", "value": "2404" }, { "label": "Bellyblack", "value": "3117" }, { "label": "belovedbab", "value": "1992" }, { "label": "ben10", "value": "1412" }, { "label": "Benson", "value": "4668" }, { "label": "Bestiality", "value": "628" }, { "label": "Betrayal", "value": "40" }, { "label": "Betweenthe", "value": "5456" }, { "label": "Betweenthe", "value": "5172" }, { "label": "bewitching", "value": "2828" }, { "label": "BickeringC", "value": "79" }, { "label": "bickeringl", "value": "5054" }, { "label": "bigblue", "value": "5660" }, { "label": "bigbrain", "value": "3125" }, { "label": "BigBroHasD", "value": "802" }, { "label": "bigcatpres", "value": "5782" }, { "label": "bigcatslav", "value": "4793" }, { "label": "bigchinchi", "value": "5274" }, { "label": "bigcitysma", "value": "2367" }, { "label": "Bigcockcut", "value": "2586" }, { "label": "Bigdog", "value": "2042" }, { "label": "bigdreamsa", "value": "3752" }, { "label": "bigfacemor", "value": "5146" }, { "label": "bigfire", "value": "5651" }, { "label": "bighippo", "value": "2683" }, { "label": "bigisbeaut", "value": "4498" }, { "label": "bigorange", "value": "6046" }, { "label": "bigorangew", "value": "2319" }, { "label": "bigpeninth", "value": "4948" }, { "label": "bigpicture", "value": "1796" }, { "label": "Bigplayers", "value": "1880" }, { "label": "BigSesameR", "value": "3721" }, { "label": "BigSkeleto", "value": "2235" }, { "label": "bigtent", "value": "2605" }, { "label": "bigwhitewh", "value": "1911" }, { "label": "Billionair", "value": "1457" }, { "label": "billionpeo", "value": "2868" }, { "label": "billionpoi", "value": "4330" }, { "label": "BingtangHu", "value": "2140" }, { "label": "Biochip", "value": "473" }, { "label": "Biomass", "value": "1706" }, { "label": "Biscuits", "value": "1846" }, { "label": "BisexualPr", "value": "813" }, { "label": "Bishamonte", "value": "5992" }, { "label": "BishopMyri", "value": "5001" }, { "label": "bite", "value": "6125" }, { "label": "bitefire", "value": "2212" }, { "label": "BL", "value": "857" }, { "label": "Black-bell", "value": "1273" }, { "label": "Black-bell", "value": "925" }, { "label": "blackabyss", "value": "4081" }, { "label": "blackandim", "value": "2219" }, { "label": "blackandwh", "value": "2797" }, { "label": "blackandwh", "value": "1867" }, { "label": "Blackbelli", "value": "1556" }, { "label": "BlackBelly", "value": "38" }, { "label": "BlackBelly", "value": "1053" }, { "label": "Blackbirch", "value": "4572" }, { "label": "blackcatam", "value": "5509" }, { "label": "blackcatis", "value": "2711" }, { "label": "BlackDrago", "value": "2720" }, { "label": "Blackening", "value": "3219" }, { "label": "blackflash", "value": "4984" }, { "label": "blackgreen", "value": "5203" }, { "label": "blackice", "value": "3375" }, { "label": "blackInter", "value": "3506" }, { "label": "Blacklight", "value": "1707" }, { "label": "Blacklotus", "value": "3366" }, { "label": "Blackmail", "value": "171" }, { "label": "blackpupil", "value": "3973" }, { "label": "blackpupil", "value": "3944" }, { "label": "blackreinc", "value": "4709" }, { "label": "blacksilkj", "value": "4014" }, { "label": "Blacksmith", "value": "379" }, { "label": "blacksoil", "value": "2144" }, { "label": "blacksword", "value": "4593" }, { "label": "blacktea", "value": "4303" }, { "label": "blackteais", "value": "3866" }, { "label": "Blacktechn", "value": "5700" }, { "label": "BladeofFal", "value": "4756" }, { "label": "blast", "value": "3966" }, { "label": "BlazingAng", "value": "5739" }, { "label": "Bleach", "value": "1123" }, { "label": "Blind", "value": "1234" }, { "label": "Blinddate", "value": "3694" }, { "label": "BlindDates", "value": "676" }, { "label": "blindnomik", "value": "4532" }, { "label": "BlindProta", "value": "481" }, { "label": "blindzhang", "value": "4139" }, { "label": "Bloodborne", "value": "1541" }, { "label": "blooddemon", "value": "2095" }, { "label": "Bloodline", "value": "1205" }, { "label": "Bloodlines", "value": "9" }, { "label": "BloodManip", "value": "534" }, { "label": "BloodMoonG", "value": "2237" }, { "label": "BloodofAni", "value": "1822" }, { "label": "Bloodpumpi", "value": "5062" }, { "label": "bloodytuna", "value": "5037" }, { "label": "bloomingon", "value": "1951" }, { "label": "blowdreamt", "value": "4598" }, { "label": "bluelight", "value": "4455" }, { "label": "bluemoonco", "value": "5966" }, { "label": "bluenight", "value": "6036" }, { "label": "bluepigeon", "value": "4837" }, { "label": "blueshirts", "value": "2192" }, { "label": "bluesilk", "value": "2832" }, { "label": "bluesilksu", "value": "2675" }, { "label": "BlueSkyDem", "value": "4495" }, { "label": "blueskyspa", "value": "5565" }, { "label": "bluestone", "value": "2206" }, { "label": "bluewaterg", "value": "4269" }, { "label": "bluewhale", "value": "4333" }, { "label": "BoboXiaolu", "value": "5479" }, { "label": "Bodhi", "value": "3661" }, { "label": "Bodhicitta", "value": "2507" }, { "label": "Body-doubl", "value": "980" }, { "label": "bodyguard", "value": "3701" }, { "label": "Bodyguards", "value": "439" }, { "label": "BodySwap", "value": "269" }, { "label": "BodyTemper", "value": "246" }, { "label": "Boiled", "value": "2793" }, { "label": "Bombardmen", "value": "5830" }, { "label": "book", "value": "1415" }, { "label": "BookDustSp", "value": "2416" }, { "label": "Books", "value": "337" }, { "label": "bookslikeu", "value": "2922" }, { "label": "Booksonthe", "value": "3907" }, { "label": "BookstoreS", "value": "2133" }, { "label": "BookTransm", "value": "947" }, { "label": "BookWearer", "value": "1153" }, { "label": "Bookworm", "value": "659" }, { "label": "Boss", "value": "2911" }, { "label": "Boss-Subor", "value": "80" }, { "label": "BOSSflow", "value": "3324" }, { "label": "BossSim", "value": "5366" }, { "label": "Botharetwo", "value": "4486" }, { "label": "bottommc", "value": "1030" }, { "label": "bouncingei", "value": "3582" }, { "label": "Boundlessf", "value": "1982" }, { "label": "BoundlessL", "value": "5622" }, { "label": "Bowandjack", "value": "5041" }, { "label": "Bowandshoo", "value": "3902" }, { "label": "BoXiaowen", "value": "2389" }, { "label": "Boxing", "value": "667" }, { "label": "boxser", "value": "4631" }, { "label": "boycold", "value": "2626" }, { "label": "Brainisuna", "value": "4509" }, { "label": "BrainJam", "value": "5588" }, { "label": "Brainwashi", "value": "396" }, { "label": "braisedfis", "value": "4839" }, { "label": "BraisedPai", "value": "2132" }, { "label": "BraisedPis", "value": "3541" }, { "label": "breakingli", "value": "1441" }, { "label": "Breakingth", "value": "2565" }, { "label": "breaktheke", "value": "2263" }, { "label": "Breakup", "value": "1344" }, { "label": "BreastFeti", "value": "974" }, { "label": "Breeze", "value": "2101" }, { "label": "Breeze&", "value": "5290" }, { "label": "breezesilv", "value": "2045" }, { "label": "Brewingflo", "value": "5909" }, { "label": "BrigadeSec", "value": "5872" }, { "label": "Brightmoon", "value": "2073" }, { "label": "Bringaknif", "value": "2643" }, { "label": "BritishEmp", "value": "1489" }, { "label": "broalwaysg", "value": "2870" }, { "label": "broken", "value": "5004" }, { "label": "brokenambi", "value": "4153" }, { "label": "BrokenDanf", "value": "5840" }, { "label": "brokendrea", "value": "5543" }, { "label": "brokendrea", "value": "4611" }, { "label": "BrokenEnga", "value": "231" }, { "label": "brokenfrui", "value": "5823" }, { "label": "brokengodo", "value": "4634" }, { "label": "brokenhear", "value": "4397" }, { "label": "brokenlitt", "value": "4580" }, { "label": "brokenmoon", "value": "4317" }, { "label": "brokenred", "value": "4677" }, { "label": "BrokenYuri", "value": "5525" }, { "label": "BronzeEndo", "value": "4135" }, { "label": "Brother", "value": "3609" }, { "label": "BrotherChe", "value": "2181" }, { "label": "BrotherCom", "value": "521" }, { "label": "Brotherhoo", "value": "570" }, { "label": "BrotherInL", "value": "4346" }, { "label": "BrotherQin", "value": "5395" }, { "label": "BrotherZhu", "value": "2227" }, { "label": "Browlin", "value": "5022" }, { "label": "Brownsugar", "value": "1866" }, { "label": "BrutalBeas", "value": "3884" }, { "label": "BTTH", "value": "1288" }, { "label": "Bubble012", "value": "5590" }, { "label": "bubblebath", "value": "4802" }, { "label": "BucketofIn", "value": "6016" }, { "label": "BuddhaofNi", "value": "3376" }, { "label": "Buddhism", "value": "442" }, { "label": "Buddhistco", "value": "4220" }, { "label": "building", "value": "5347" }, { "label": "buildingki", "value": "1764" }, { "label": "BuildKingd", "value": "1539" }, { "label": "Buildthewo", "value": "2571" }, { "label": "bulgingbel", "value": "4965" }, { "label": "Bulldozer", "value": "1614" }, { "label": "Bully", "value": "786" }, { "label": "Bullying", "value": "134" }, { "label": "BuLofan", "value": "2068" }, { "label": "BungouStra", "value": "1773" }, { "label": "BunguoStra", "value": "1381" }, { "label": "Bunnyeatse", "value": "3974" }, { "label": "Bunsaresol", "value": "4936" }, { "label": "BurningEye", "value": "4773" }, { "label": "BurningEye", "value": "4711" }, { "label": "Burningmou", "value": "2703" }, { "label": "burnout", "value": "2694" }, { "label": "Business", "value": "663" }, { "label": "BusinessDe", "value": "962" }, { "label": "BusinessEm", "value": "761" }, { "label": "businessfl", "value": "5679" }, { "label": "BusinessMa", "value": "60" }, { "label": "BusinessMa", "value": "1069" }, { "label": "Businessme", "value": "227" }, { "label": "businessor", "value": "954" }, { "label": "BusinessRi", "value": "1814" }, { "label": "Bussinesma", "value": "1514" }, { "label": "Bussiness", "value": "1450" }, { "label": "Butlers", "value": "763" }, { "label": "ButterflyD", "value": "1980" }, { "label": "Butterrice", "value": "5038" }, { "label": "BZ", "value": "4982" }, { "label": "C14H18N2O5", "value": "4693" }, { "label": "cabbagebut", "value": "5829" }, { "label": "Caicolorsh", "value": "2640" }, { "label": "callmeknig", "value": "3755" }, { "label": "callmethep", "value": "4993" }, { "label": "callthebea", "value": "2417" }, { "label": "calm", "value": "3164" }, { "label": "CalmMalePr", "value": "834" }, { "label": "CalmProtag", "value": "22" }, { "label": "camera", "value": "2004" }, { "label": "Campus", "value": "1677" }, { "label": "CampusLife", "value": "1274" }, { "label": "CampusLove", "value": "589" }, { "label": "CampusRoma", "value": "2880" }, { "label": "can&039", "value": "3927" }, { "label": "can&039", "value": "5827" }, { "label": "can&039", "value": "4944" }, { "label": "Can&039", "value": "3535" }, { "label": "Can&039", "value": "2623" }, { "label": "Can&039", "value": "2409" }, { "label": "Canbeheart", "value": "4424" }, { "label": "Cancat", "value": "2292" }, { "label": "CandiedLem", "value": "5969" }, { "label": "candlecher", "value": "4160" }, { "label": "Candleligh", "value": "4996" }, { "label": "Canepepper", "value": "3464" }, { "label": "canfly", "value": "2019" }, { "label": "CangsongTa", "value": "4681" }, { "label": "CangxueFei", "value": "2932" }, { "label": "Cannibalis", "value": "407" }, { "label": "cannonfodd", "value": "3350" }, { "label": "Canolaflow", "value": "1985" }, { "label": "Cantaloupe", "value": "2782" }, { "label": "Canteendry", "value": "2228" }, { "label": "Canyoustop", "value": "5032" }, { "label": "Caothiefne", "value": "5666" }, { "label": "Capitalism", "value": "1490" }, { "label": "captain", "value": "3290" }, { "label": "captaindra", "value": "4587" }, { "label": "Captainoft", "value": "6031" }, { "label": "carafe", "value": "6101" }, { "label": "CarambolaJ", "value": "2700" }, { "label": "Card", "value": "1379" }, { "label": "CardGames", "value": "512" }, { "label": "CardinalSa", "value": "4861" }, { "label": "cardleague", "value": "4692" }, { "label": "Cards", "value": "564" }, { "label": "CareerOrie", "value": "1061" }, { "label": "CarefreePr", "value": "121" }, { "label": "CaringMale", "value": "1553" }, { "label": "CaringProt", "value": "122" }, { "label": "Carola", "value": "4641" }, { "label": "carpenter", "value": "5453" }, { "label": "CarrotCake", "value": "5724" }, { "label": "carrotsdon", "value": "5804" }, { "label": "cartoonwil", "value": "2168" }, { "label": "CastlePeak", "value": "5559" }, { "label": "CastlePeak", "value": "5282" }, { "label": "Casual", "value": "4125" }, { "label": "Cat", "value": "5364" }, { "label": "CatCarMK2", "value": "4730" }, { "label": "catcatfrui", "value": "4881" }, { "label": "CatchaGhos", "value": "5071" }, { "label": "catchfast", "value": "3359" }, { "label": "Catchtheca", "value": "2141" }, { "label": "catchthecl", "value": "4030" }, { "label": "catdaylist", "value": "1895" }, { "label": "cateatingp", "value": "4535" }, { "label": "cateatingp", "value": "2787" }, { "label": "caterpilla", "value": "4579" }, { "label": "catgod", "value": "2470" }, { "label": "catheadsan", "value": "5741" }, { "label": "catisland", "value": "4900" }, { "label": "Catisnotat", "value": "5760" }, { "label": "catisrisin", "value": "2568" }, { "label": "catloveson", "value": "2536" }, { "label": "catontheba", "value": "4122" }, { "label": "catorange", "value": "3648" }, { "label": "catpowerfi", "value": "2624" }, { "label": "Catsandcat", "value": "5753" }, { "label": "Catswithfi", "value": "2271" }, { "label": "catthatwan", "value": "2022" }, { "label": "catthousan", "value": "2333" }, { "label": "catwatchin", "value": "5795" }, { "label": "catwithbla", "value": "5138" }, { "label": "catworship", "value": "4849" }, { "label": "cautious", "value": "3193" }, { "label": "CautiousMc", "value": "1095" }, { "label": "CautiousPr", "value": "222" }, { "label": "caviar", "value": "2131" }, { "label": "ccc", "value": "4511" }, { "label": "Celebritie", "value": "23" }, { "label": "Celebrity", "value": "880" }, { "label": "celeryeats", "value": "5563" }, { "label": "celestial", "value": "1439" }, { "label": "CelestialC", "value": "2608" }, { "label": "Celestials", "value": "799" }, { "label": "CEO", "value": "1008" }, { "label": "Ceobeisthe", "value": "3653" }, { "label": "ChainsawMa", "value": "2889" }, { "label": "championge", "value": "2368" }, { "label": "chanceenco", "value": "3631" }, { "label": "Chang&0", "value": "5949" }, { "label": "changedhea", "value": "5511" }, { "label": "Changeever", "value": "2223" }, { "label": "ChangGuxue", "value": "4118" }, { "label": "Chanyi", "value": "4305" }, { "label": "ChaoGezi", "value": "4100" }, { "label": "ChaoPrimeM", "value": "5750" }, { "label": "Chaos", "value": "1360" }, { "label": "Chaotang", "value": "3123" }, { "label": "ChaotangJi", "value": "3282" }, { "label": "chaotichea", "value": "5788" }, { "label": "chaoticwor", "value": "1882" }, { "label": "CharacterD", "value": "341" }, { "label": "CharacterG", "value": "61" }, { "label": "chargingca", "value": "3774" }, { "label": "Charismati", "value": "39" }, { "label": "Charlotte(", "value": "1041" }, { "label": "CharmingPr", "value": "520" }, { "label": "chase", "value": "3597" }, { "label": "chasingthe", "value": "2777" }, { "label": "chasingwif", "value": "3330" }, { "label": "chat", "value": "1757" }, { "label": "chat-room", "value": "1285" }, { "label": "ChatGroup", "value": "890" }, { "label": "ChatRooms", "value": "142" }, { "label": "chatter", "value": "3668" }, { "label": "Cheat", "value": "888" }, { "label": "cheating", "value": "6149" }, { "label": "Cheats", "value": "62" }, { "label": "Cheesemous", "value": "5534" }, { "label": "Cheesesnow", "value": "5478" }, { "label": "Chef", "value": "829" }, { "label": "chef&03", "value": "2097" }, { "label": "ChefEmiya", "value": "3818" }, { "label": "Chefs", "value": "260" }, { "label": "ChefSurviv", "value": "2174" }, { "label": "ChenChangf", "value": "2342" }, { "label": "ChenChen", "value": "5734" }, { "label": "ChenDashun", "value": "4608" }, { "label": "Chengnanex", "value": "4718" }, { "label": "ChengWangH", "value": "5443" }, { "label": "ChenHegao", "value": "1708" }, { "label": "ChenShiAi", "value": "3736" }, { "label": "ChenTing", "value": "6053" }, { "label": "ChenTwelve", "value": "2122" }, { "label": "ChenYibing", "value": "4566" }, { "label": "ChenZijin", "value": "5363" }, { "label": "CherryBlos", "value": "1965" }, { "label": "Chestnutca", "value": "4675" }, { "label": "chestnutch", "value": "5105" }, { "label": "ChevaRoy", "value": "6017" }, { "label": "chiccatles", "value": "4154" }, { "label": "ChicSu", "value": "4754" }, { "label": "ChiDongdon", "value": "1966" }, { "label": "chief", "value": "3699" }, { "label": "ChiefScien", "value": "3663" }, { "label": "Chika", "value": "4332" }, { "label": "child", "value": "4193" }, { "label": "ChildAbuse", "value": "393" }, { "label": "Childbirth", "value": "1074" }, { "label": "Childcare", "value": "81" }, { "label": "ChildhoodE", "value": "1622" }, { "label": "Childhoodf", "value": "3378" }, { "label": "ChildhoodF", "value": "197" }, { "label": "ChildhoodL", "value": "176" }, { "label": "ChildhoodP", "value": "588" }, { "label": "ChildhoodS", "value": "590" }, { "label": "ChildhoodS", "value": "1155" }, { "label": "ChildishPr", "value": "123" }, { "label": "ChildProta", "value": "491" }, { "label": "ChinaEnter", "value": "3549" }, { "label": "ChinaNamba", "value": "1705" }, { "label": "ChinaRefor", "value": "1357" }, { "label": "Chinese", "value": "1675" }, { "label": "ChineseAnc", "value": "1692" }, { "label": "Chinesemed", "value": "3166" }, { "label": "ChineseNov", "value": "1679" }, { "label": "ChinesePre", "value": "1303" }, { "label": "Chirika", "value": "1843" }, { "label": "Chirpingan", "value": "4872" }, { "label": "Chivalryof", "value": "1669" }, { "label": "Chiyudoesn", "value": "3874" }, { "label": "ChocolateI", "value": "1922" }, { "label": "ChoiceSele", "value": "1308" }, { "label": "Chosen12", "value": "2533" }, { "label": "chromatics", "value": "5155" }, { "label": "Chronology", "value": "1451" }, { "label": "chugong", "value": "5605" }, { "label": "Chunghwape", "value": "5200" }, { "label": "ChuningMC", "value": "1390" }, { "label": "Church", "value": "1359" }, { "label": "Chuunibyou", "value": "713" }, { "label": "ChuXiaNo.X", "value": "5573" }, { "label": "Cicadasand", "value": "2340" }, { "label": "CinderHand", "value": "5755" }, { "label": "CiShuhua", "value": "5021" }, { "label": "CitrusRoas", "value": "4533" }, { "label": "city", "value": "6130" }, { "label": "CityGod", "value": "2288" }, { "label": "CitySky1", "value": "4819" }, { "label": "city​​ya", "value": "2738" }, { "label": "civetcatat", "value": "2562" }, { "label": "civilizati", "value": "3221" }, { "label": "Civilizati", "value": "3329" }, { "label": "Civilizati", "value": "1613" }, { "label": "Civilizati", "value": "1775" }, { "label": "CivilServa", "value": "1491" }, { "label": "ClanBuildi", "value": "327" }, { "label": "ClanSectDe", "value": "1316" }, { "label": "ClassicXia", "value": "3112" }, { "label": "ClassicXia", "value": "3086" }, { "label": "ClassicXia", "value": "2946" }, { "label": "Cleaningfi", "value": "4476" }, { "label": "clear", "value": "3338" }, { "label": "clearthink", "value": "3237" }, { "label": "CleverMc", "value": "1142" }, { "label": "CleverProt", "value": "92" }, { "label": "CleverProt", "value": "373" }, { "label": "ClingyLove", "value": "297" }, { "label": "Clivia", "value": "4292" }, { "label": "Clones", "value": "644" }, { "label": "cloud-like", "value": "4976" }, { "label": "cloudmadeo", "value": "2771" }, { "label": "cloudpierc", "value": "5106" }, { "label": "Cloudseest", "value": "2047" }, { "label": "CloudSummi", "value": "2000" }, { "label": "Cloudtopfi", "value": "2092" }, { "label": "Cloudtop丨", "value": "2202" }, { "label": "CloudTop丨", "value": "2137" }, { "label": "CloudTop丨", "value": "1948" }, { "label": "cloudymoon", "value": "4674" }, { "label": "cloudysky", "value": "1926" }, { "label": "Club", "value": "1583" }, { "label": "Clubs", "value": "611" }, { "label": "Cluelessly", "value": "1322" }, { "label": "CluelessPr", "value": "1365" }, { "label": "ClumsyLove", "value": "204" }, { "label": "cluthullu", "value": "1663" }, { "label": "ClydeVirgi", "value": "6078" }, { "label": "Cnnilingus", "value": "1031" }, { "label": "Co-Workers", "value": "662" }, { "label": "coach", "value": "3553" }, { "label": "cobrasnake", "value": "4228" }, { "label": "cockroache", "value": "2726" }, { "label": "Cocoawithf", "value": "5983" }, { "label": "codegeass", "value": "1772" }, { "label": "Codeuntilt", "value": "2746" }, { "label": "CodewordG", "value": "4179" }, { "label": "codewordge", "value": "2693" }, { "label": "codewordgi", "value": "4201" }, { "label": "codewordna", "value": "4919" }, { "label": "coffeefatc", "value": "2046" }, { "label": "coffeeinst", "value": "2525" }, { "label": "coffeevi", "value": "4230" }, { "label": "coffeewith", "value": "1802" }, { "label": "Cohabitati", "value": "152" }, { "label": "CokeII", "value": "2461" }, { "label": "coldcolddo", "value": "2473" }, { "label": "coldinearl", "value": "4128" }, { "label": "ColdLoveIn", "value": "84" }, { "label": "ColdLoveIn", "value": "1106" }, { "label": "ColdMaleLe", "value": "904" }, { "label": "ColdMalePr", "value": "1033" }, { "label": "ColdNightL", "value": "2819" }, { "label": "coldnoodle", "value": "5219" }, { "label": "ColdProtag", "value": "10" }, { "label": "coldrivers", "value": "2106" }, { "label": "coldsalted", "value": "4200" }, { "label": "ColdStar&a", "value": "1871" }, { "label": "collapse", "value": "3297" }, { "label": "Collection", "value": "749" }, { "label": "College", "value": "1454" }, { "label": "CollegeorU", "value": "976" }, { "label": "CollegeStr", "value": "3095" }, { "label": "CollegeStr", "value": "2940" }, { "label": "CollegeUni", "value": "169" }, { "label": "Colonializ", "value": "1201" }, { "label": "Colonizati", "value": "858" }, { "label": "colorfasti", "value": "5006" }, { "label": "colorfulcl", "value": "4182" }, { "label": "colorless", "value": "5425" }, { "label": "Coma", "value": "105" }, { "label": "ComedicUnd", "value": "154" }, { "label": "ComedicUnd", "value": "926" }, { "label": "comedy", "value": "878" }, { "label": "Comeon", "value": "2112" }, { "label": "Comic", "value": "1567" }, { "label": "ComicMonst", "value": "6002" }, { "label": "comics", "value": "1402" }, { "label": "comics", "value": "1423" }, { "label": "ComingofAg", "value": "722" }, { "label": "Commandand", "value": "810" }, { "label": "commander", "value": "3200" }, { "label": "Commanderd", "value": "4163" }, { "label": "commemorat", "value": "5384" }, { "label": "CommonerLi", "value": "950" }, { "label": "Companies", "value": "1286" }, { "label": "Competingf", "value": "3928" }, { "label": "Competitio", "value": "1607" }, { "label": "competitiv", "value": "1422" }, { "label": "Complaint", "value": "1134" }, { "label": "Completebo", "value": "5278" }, { "label": "ComplexFam", "value": "956" }, { "label": "ComplexFam", "value": "253" }, { "label": "Complicate", "value": "1291" }, { "label": "comprehens", "value": "3190" }, { "label": "comprehens", "value": "5341" }, { "label": "comprehens", "value": "3047" }, { "label": "comprehens", "value": "3021" }, { "label": "comprehens", "value": "3003" }, { "label": "comprehens", "value": "2974" }, { "label": "Comprehens", "value": "3119" }, { "label": "Comprehens", "value": "3071" }, { "label": "Comprehens", "value": "3041" }, { "label": "Comprehens", "value": "2969" }, { "label": "Comprehens", "value": "2952" }, { "label": "Comprehens", "value": "2243" }, { "label": "Conan", "value": "5972" }, { "label": "Conan&0", "value": "4187" }, { "label": "Conanadrea", "value": "5604" }, { "label": "Conanisnot", "value": "5946" }, { "label": "ConantheTh", "value": "6113" }, { "label": "ConanXiang", "value": "3802" }, { "label": "ConchBay", "value": "5367" }, { "label": "concubine", "value": "3255" }, { "label": "Conditiona", "value": "445" }, { "label": "ConfidentP", "value": "232" }, { "label": "Confinemen", "value": "172" }, { "label": "Conflictin", "value": "541" }, { "label": "Confuciani", "value": "3384" }, { "label": "confusedfi", "value": "5637" }, { "label": "conquer", "value": "1414" }, { "label": "Conquer", "value": "5059" }, { "label": "Conservati", "value": "4001" }, { "label": "Conspiracy", "value": "3435" }, { "label": "Conspirati", "value": "1515" }, { "label": "Constructi", "value": "1113" }, { "label": "Contagonis", "value": "1709" }, { "label": "contempora", "value": "1400" }, { "label": "Contendfor", "value": "3093" }, { "label": "Contest", "value": "5699" }, { "label": "Contract", "value": "1163" }, { "label": "contractlo", "value": "3600" }, { "label": "ContractLo", "value": "952" }, { "label": "contractma", "value": "3134" }, { "label": "contractma", "value": "2959" }, { "label": "Contracts", "value": "294" }, { "label": "Contrastcu", "value": "3455" }, { "label": "cook", "value": "3317" }, { "label": "Cooking", "value": "161" }, { "label": "coolandhan", "value": "3735" }, { "label": "Coolchubby", "value": "5918" }, { "label": "coolinocto", "value": "4383" }, { "label": "CoolMc", "value": "1050" }, { "label": "coolmeowma", "value": "5101" }, { "label": "CoolText", "value": "1190" }, { "label": "corgishort", "value": "3502" }, { "label": "cornisripe", "value": "4109" }, { "label": "cornjuice", "value": "2815" }, { "label": "CorpseFrag", "value": "2663" }, { "label": "Corruption", "value": "408" }, { "label": "CosmicChar", "value": "4990" }, { "label": "CosmicHorr", "value": "1248" }, { "label": "CosmicWars", "value": "338" }, { "label": "Cosplay", "value": "726" }, { "label": "cosplaystr", "value": "3551" }, { "label": "Counteratt", "value": "1619" }, { "label": "Couple", "value": "3309" }, { "label": "CoupleGrow", "value": "153" }, { "label": "CourtOffic", "value": "594" }, { "label": "Cousins", "value": "683" }, { "label": "coverthesu", "value": "1834" }, { "label": "CowardlyPr", "value": "290" }, { "label": "coyote", "value": "1984" }, { "label": "CP", "value": "3331" }, { "label": "crackedegg", "value": "4085" }, { "label": "Crafting", "value": "374" }, { "label": "crashreinc", "value": "6110" }, { "label": "Crayfishan", "value": "4958" }, { "label": "Crazy&0", "value": "5406" }, { "label": "crazydream", "value": "3829" }, { "label": "Crazyforam", "value": "2224" }, { "label": "Crazylittl", "value": "6064" }, { "label": "CrazyProta", "value": "1249" }, { "label": "CrazySanMe", "value": "4578" }, { "label": "crazysquid", "value": "3652" }, { "label": "Crazystory", "value": "2403" }, { "label": "createpreh", "value": "4052" }, { "label": "Creation", "value": "1251" }, { "label": "Creator", "value": "1549" }, { "label": "Creatures", "value": "526" }, { "label": "Crime", "value": "440" }, { "label": "crimesolvi", "value": "3733" }, { "label": "Criminalin", "value": "3185" }, { "label": "Criminals", "value": "173" }, { "label": "Criminolog", "value": "832" }, { "label": "CrimsonFir", "value": "4866" }, { "label": "CrimsonMoo", "value": "4746" }, { "label": "crimsonsku", "value": "4076" }, { "label": "crookeddoo", "value": "2772" }, { "label": "CrookedPay", "value": "3798" }, { "label": "Cross", "value": "3090" }, { "label": "Cross-dres", "value": "155" }, { "label": "Cross1V1HE", "value": "2996" }, { "label": "Cross1V1st", "value": "3072" }, { "label": "CrossChatg", "value": "3066" }, { "label": "CrossCount", "value": "2947" }, { "label": "Crossdress", "value": "1087" }, { "label": "Crossevery", "value": "2944" }, { "label": "Crossfarmi", "value": "5323" }, { "label": "Crossfarmi", "value": "3007" }, { "label": "Crossfarmi", "value": "2973" }, { "label": "Crossgeniu", "value": "2963" }, { "label": "CrossGiant", "value": "5307" }, { "label": "CrossGoldf", "value": "2971" }, { "label": "Crossing", "value": "2901" }, { "label": "CrossInvin", "value": "3064" }, { "label": "CrossInvin", "value": "2953" }, { "label": "CrossInvin", "value": "2939" }, { "label": "Crossmanyf", "value": "3038" }, { "label": "Crossmarti", "value": "2980" }, { "label": "Crossmarti", "value": "2955" }, { "label": "CrossMengB", "value": "3005" }, { "label": "Crossopeni", "value": "2965" }, { "label": "Crossover", "value": "492" }, { "label": "CrossOverh", "value": "5319" }, { "label": "CrossRebir", "value": "5344" }, { "label": "CrossRebir", "value": "3070" }, { "label": "CrossRebir", "value": "3001" }, { "label": "CrossRebir", "value": "2951" }, { "label": "CrossRelax", "value": "3004" }, { "label": "Crossshort", "value": "2991" }, { "label": "CrossSlapC", "value": "2956" }, { "label": "Crosssweet", "value": "3027" }, { "label": "Crosssyste", "value": "3088" }, { "label": "Crosssyste", "value": "3058" }, { "label": "Crosssyste", "value": "3000" }, { "label": "Crosstalka", "value": "3122" }, { "label": "Crosswar", "value": "3044" }, { "label": "Cross空间O", "value": "3084" }, { "label": "Cross空间u", "value": "2968" }, { "label": "crowastron", "value": "5283" }, { "label": "crowmouth", "value": "3552" }, { "label": "Cruel", "value": "2920" }, { "label": "CruelChara", "value": "42" }, { "label": "Crush", "value": "5674" }, { "label": "Cryostasis", "value": "741" }, { "label": "Cthulhu", "value": "1542" }, { "label": "CubRaising", "value": "916" }, { "label": "cuckoobunn", "value": "4005" }, { "label": "CuckooChen", "value": "5302" }, { "label": "cucumber", "value": "4741" }, { "label": "CucumberHa", "value": "1916" }, { "label": "cultivatio", "value": "1417" }, { "label": "Cultivatio", "value": "63" }, { "label": "Cultivatio", "value": "3790" }, { "label": "Cultivatio", "value": "3417" }, { "label": "Cultivator", "value": "1361" }, { "label": "cunning", "value": "2897" }, { "label": "cunningfem", "value": "1232" }, { "label": "cunningmc", "value": "1759" }, { "label": "CunningPro", "value": "164" }, { "label": "CunningPro", "value": "1568" }, { "label": "Cupola", "value": "2802" }, { "label": "cure", "value": "3251" }, { "label": "curechildr", "value": "3789" }, { "label": "CuredChick", "value": "5860" }, { "label": "CuriousPro", "value": "261" }, { "label": "Curse", "value": "785" }, { "label": "Curses", "value": "528" }, { "label": "Cute", "value": "1658" }, { "label": "CuteChild", "value": "1452" }, { "label": "CuteChildr", "value": "224" }, { "label": "cuteflower", "value": "6047" }, { "label": "cutegrapef", "value": "2149" }, { "label": "cutelittle", "value": "5793" }, { "label": "Cutelittle", "value": "6019" }, { "label": "cutelovein", "value": "2875" }, { "label": "CuteMaleLe", "value": "1522" }, { "label": "Cutemeow-c", "value": "6121" }, { "label": "CutePet", "value": "1731" }, { "label": "cutepomelo", "value": "2760" }, { "label": "CuteProtag", "value": "124" }, { "label": "CuteProtag", "value": "1517" }, { "label": "cuteshadow", "value": "1972" }, { "label": "CuteStory", "value": "125" }, { "label": "cutewhite", "value": "4978" }, { "label": "Cutthelone", "value": "3647" }, { "label": "cutthrough", "value": "4196" }, { "label": "Cyberpunk", "value": "3294" }, { "label": "cyclingwin", "value": "6074" }, { "label": "Cyclospori", "value": "5429" }, { "label": "cynicism", "value": "3456" }, { "label": "D", "value": "4194" }, { "label": "DaDaping", "value": "5235" }, { "label": "Daddywants", "value": "2432" }, { "label": "dagougou", "value": "2513" }, { "label": "Dahuaisjea", "value": "4682" }, { "label": "Dahunjun", "value": "2345" }, { "label": "Dailyupdat", "value": "5579" }, { "label": "Dailyupdat", "value": "4133" }, { "label": "DaluoGod&a", "value": "5353" }, { "label": "DamingComi", "value": "4068" }, { "label": "DamingYong", "value": "2162" }, { "label": "Dancers", "value": "380" }, { "label": "dancetofig", "value": "1955" }, { "label": "dandy", "value": "3159" }, { "label": "DangeYihe", "value": "5143" }, { "label": "DanMachi", "value": "1636" }, { "label": "Danmei", "value": "758" }, { "label": "DanMing", "value": "5783" }, { "label": "DaoCompani", "value": "417" }, { "label": "DaoCompreh", "value": "583" }, { "label": "DaoguangEt", "value": "6022" }, { "label": "Daoism", "value": "444" }, { "label": "DaoyanShen", "value": "2188" }, { "label": "DaqingXiao", "value": "2238" }, { "label": "DaqinTombR", "value": "5541" }, { "label": "Dark", "value": "319" }, { "label": "DarkDeatho", "value": "574" }, { "label": "DarkFantas", "value": "922" }, { "label": "DarkFaust", "value": "5902" }, { "label": "darkfriedg", "value": "4729" }, { "label": "darknight", "value": "1879" }, { "label": "darkpirate", "value": "1816" }, { "label": "DarkPower", "value": "1363" }, { "label": "Dashuaihen", "value": "2423" }, { "label": "DatangDaqi", "value": "2366" }, { "label": "DatangDaqi", "value": "1938" }, { "label": "DatangErwu", "value": "1991" }, { "label": "Datanggodo", "value": "3620" }, { "label": "Datangpota", "value": "2845" }, { "label": "Datangstyl", "value": "4143" }, { "label": "Datangsupe", "value": "2003" }, { "label": "Daughter", "value": "1145" }, { "label": "daughterco", "value": "2084" }, { "label": "Daughterof", "value": "3893" }, { "label": "Dawn&03", "value": "5665" }, { "label": "Daybyday", "value": "2545" }, { "label": "Dayefire", "value": "5726" }, { "label": "Dayfestiva", "value": "3480" }, { "label": "DayKunpeng", "value": "3517" }, { "label": "DC", "value": "835" }, { "label": "dcc98", "value": "5619" }, { "label": "dd", "value": "5822" }, { "label": "deadfatfas", "value": "2318" }, { "label": "deadfishda", "value": "5359" }, { "label": "DeadProtag", "value": "723" }, { "label": "Deadwoodwa", "value": "6109" }, { "label": "Death", "value": "194" }, { "label": "DeathofDae", "value": "4172" }, { "label": "DeathofLov", "value": "64" }, { "label": "Debts", "value": "515" }, { "label": "Decadeligh", "value": "1958" }, { "label": "decayingro", "value": "5501" }, { "label": "Decisive", "value": "3012" }, { "label": "DecisiveMc", "value": "4335" }, { "label": "deepbluese", "value": "1975" }, { "label": "deepdream", "value": "5257" }, { "label": "DeepLTrans", "value": "1371" }, { "label": "deepsea", "value": "5551" }, { "label": "deepseadiv", "value": "3545" }, { "label": "Dejarimi", "value": "4683" }, { "label": "Delinquent", "value": "247" }, { "label": "Delusions", "value": "640" }, { "label": "Demi-Human", "value": "430" }, { "label": "Demon", "value": "1230" }, { "label": "Demondomai", "value": "2406" }, { "label": "DemonHunte", "value": "5175" }, { "label": "DemonicCul", "value": "395" }, { "label": "DemonInvas", "value": "2218" }, { "label": "DemonKing", "value": "2690" }, { "label": "DemonKingL", "value": "5847" }, { "label": "DemonLord", "value": "218" }, { "label": "DemonPower", "value": "3560" }, { "label": "Demons", "value": "219" }, { "label": "DemonsFami", "value": "1108" }, { "label": "DemonSlaye", "value": "1124" }, { "label": "DenseProta", "value": "65" }, { "label": "Depictions", "value": "156" }, { "label": "Depictions", "value": "1221" }, { "label": "Depression", "value": "303" }, { "label": "derivative", "value": "3388" }, { "label": "desertsalt", "value": "3724" }, { "label": "desertspri", "value": "5596" }, { "label": "Designer", "value": "3385" }, { "label": "Desperate", "value": "3503" }, { "label": "desperatec", "value": "5350" }, { "label": "Desperatel", "value": "2354" }, { "label": "DestinedLo", "value": "1531" }, { "label": "Destiny", "value": "342" }, { "label": "DestinyDra", "value": "6029" }, { "label": "Destituteh", "value": "4053" }, { "label": "Destroyerf", "value": "2309" }, { "label": "Detective", "value": "935" }, { "label": "DetectiveC", "value": "1347" }, { "label": "Detectiver", "value": "3223" }, { "label": "Detectives", "value": "180" }, { "label": "Determined", "value": "1143" }, { "label": "Determined", "value": "165" }, { "label": "Develop", "value": "3246" }, { "label": "Deviationo", "value": "5280" }, { "label": "Devil", "value": "5081" }, { "label": "devilcrayf", "value": "4956" }, { "label": "Devils", "value": "800" }, { "label": "Devilveget", "value": "2293" }, { "label": "DevilWarri", "value": "4953" }, { "label": "DevotedCou", "value": "1776" }, { "label": "Devotedlov", "value": "1735" }, { "label": "DevotedLov", "value": "24" }, { "label": "Diabloisno", "value": "5912" }, { "label": "Dianhuo", "value": "4439" }, { "label": "DianZhongD", "value": "5437" }, { "label": "Didicat", "value": "3742" }, { "label": "DidiDidi", "value": "5607" }, { "label": "DifferentS", "value": "136" }, { "label": "differentw", "value": "1367" }, { "label": "difficulty", "value": "4799" }, { "label": "Diga", "value": "2554" }, { "label": "DiggingtoS", "value": "866" }, { "label": "Digigod", "value": "5582" }, { "label": "Digimon", "value": "1767" }, { "label": "digitalold", "value": "2021" }, { "label": "DigJueJi", "value": "5370" }, { "label": "digthreefe", "value": "2598" }, { "label": "Dikabenka", "value": "2549" }, { "label": "dimensiona", "value": "2879" }, { "label": "Dining", "value": "3181" }, { "label": "Dinosaurs", "value": "1122" }, { "label": "Diplomacy", "value": "1103" }, { "label": "Diplomats", "value": "1492" }, { "label": "directdaug", "value": "3162" }, { "label": "Director", "value": "1192" }, { "label": "Dirge", "value": "4943" }, { "label": "dirtyadmir", "value": "4174" }, { "label": "dirtylittl", "value": "2739" }, { "label": "Disabiliti", "value": "263" }, { "label": "disability", "value": "5045" }, { "label": "DisabledPr", "value": "1693" }, { "label": "DiscipleLo", "value": "1377" }, { "label": "DiscipleTr", "value": "1318" }, { "label": "discordbir", "value": "3860" }, { "label": "Discrimina", "value": "504" }, { "label": "Disfigurem", "value": "634" }, { "label": "Disguiseas", "value": "3245" }, { "label": "DishonestP", "value": "516" }, { "label": "disillusio", "value": "5536" }, { "label": "Disobedien", "value": "1630" }, { "label": "distantsky", "value": "4225" }, { "label": "Distrustfu", "value": "542" }, { "label": "Divination", "value": "535" }, { "label": "Divination", "value": "678" }, { "label": "DivineBook", "value": "2863" }, { "label": "DivineProt", "value": "984" }, { "label": "divineradi", "value": "5848" }, { "label": "divinesign", "value": "1804" }, { "label": "Divorce", "value": "44" }, { "label": "DND", "value": "3199" }, { "label": "Doctor", "value": "1236" }, { "label": "DoctorData", "value": "2657" }, { "label": "Doctors", "value": "25" }, { "label": "doctorstre", "value": "3165" }, { "label": "Dodosaurus", "value": "6082" }, { "label": "DoDumbbell", "value": "5738" }, { "label": "Dog", "value": "1749" }, { "label": "Dogcarp", "value": "3644" }, { "label": "dogeggsold", "value": "2468" }, { "label": "DoingBusin", "value": "1716" }, { "label": "Dollsister", "value": "2250" }, { "label": "DollsPuppe", "value": "212" }, { "label": "DomesticAf", "value": "414" }, { "label": "Dominator", "value": "1503" }, { "label": "Domineerin", "value": "4555" }, { "label": "Domineerin", "value": "2912" }, { "label": "Don’taske", "value": "6049" }, { "label": "don’tgowi", "value": "5916" }, { "label": "don&039", "value": "6056" }, { "label": "don&039", "value": "5671" }, { "label": "don&039", "value": "5490" }, { "label": "don&039", "value": "5206" }, { "label": "don&039", "value": "4901" }, { "label": "don&039", "value": "4878" }, { "label": "don&039", "value": "3880" }, { "label": "don&039", "value": "3624" }, { "label": "don&039", "value": "3496" }, { "label": "don&039", "value": "2055" }, { "label": "don&039", "value": "1968" }, { "label": "Don&039", "value": "4457" }, { "label": "Don&039", "value": "2861" }, { "label": "DongfangYu", "value": "5483" }, { "label": "Dongfengbu", "value": "4363" }, { "label": "DongmenSno", "value": "3941" }, { "label": "Donotbecon", "value": "2566" }, { "label": "Donotforge", "value": "2573" }, { "label": "Donothinga", "value": "3934" }, { "label": "Doodle", "value": "4130" }, { "label": "Doomdays", "value": "1532" }, { "label": "Doomsday", "value": "1080" }, { "label": "Doomsdaywa", "value": "2635" }, { "label": "door", "value": "3451" }, { "label": "doppelgang", "value": "1010" }, { "label": "Doraemon", "value": "2890" }, { "label": "dotingfami", "value": "1372" }, { "label": "dotinghusb", "value": "1396" }, { "label": "dotinglove", "value": "1373" }, { "label": "DotingLove", "value": "26" }, { "label": "DotingOlde", "value": "177" }, { "label": "DotingPare", "value": "178" }, { "label": "DotingPare", "value": "830" }, { "label": "DotingSibl", "value": "1664" }, { "label": "Dotingwife", "value": "3267" }, { "label": "doublebirt", "value": "3341" }, { "label": "doublebirt", "value": "5320" }, { "label": "Doublebusi", "value": "3313" }, { "label": "DoubleLife", "value": "1185" }, { "label": "doublepupp", "value": "5950" }, { "label": "DoubleRebi", "value": "1227" }, { "label": "Doujin", "value": "1293" }, { "label": "Doujinghos", "value": "4562" }, { "label": "Doujinshi", "value": "5675" }, { "label": "Doujipin", "value": "6147" }, { "label": "DoulouDalu", "value": "1038" }, { "label": "Douluo", "value": "2917" }, { "label": "DouluoDalu", "value": "326" }, { "label": "DouluoDolu", "value": "836" }, { "label": "Doupo", "value": "837" }, { "label": "DoupoBTTH", "value": "826" }, { "label": "DouroConti", "value": "3182" }, { "label": "DouroConti", "value": "2992" }, { "label": "DouTuKing", "value": "2051" }, { "label": "doyoueator", "value": "2295" }, { "label": "doyouseemy", "value": "5216" }, { "label": "Doyouunder", "value": "5595" }, { "label": "Doyouwanta", "value": "4007" }, { "label": "doyouwantc", "value": "2856" }, { "label": "Dr.lifeadj", "value": "5790" }, { "label": "Dragon", "value": "1005" }, { "label": "dragon-eat", "value": "2397" }, { "label": "dragon&", "value": "5392" }, { "label": "DragonandL", "value": "2672" }, { "label": "dragonball", "value": "5649" }, { "label": "dragonball", "value": "5256" }, { "label": "DragonBall", "value": "1309" }, { "label": "DragonBall", "value": "5183" }, { "label": "DragonBall", "value": "2289" }, { "label": "DragonButt", "value": "3919" }, { "label": "dragongodd", "value": "5377" }, { "label": "DragonKing", "value": "4459" }, { "label": "DragonLord", "value": "5160" }, { "label": "DragonPala", "value": "2005" }, { "label": "DragonPowe", "value": "3561" }, { "label": "DragonRide", "value": "308" }, { "label": "Dragons", "value": "310" }, { "label": "DragonSlay", "value": "309" }, { "label": "DragonWarr", "value": "3992" }, { "label": "dragracing", "value": "1934" }, { "label": "Drama", "value": "885" }, { "label": "drawing123", "value": "4494" }, { "label": "drawTangpe", "value": "4552" }, { "label": "Dream", "value": "606" }, { "label": "Dream101", "value": "3575" }, { "label": "dreamblizz", "value": "2812" }, { "label": "dreambysta", "value": "4597" }, { "label": "dreamcatch", "value": "2857" }, { "label": "dreamglaze", "value": "3864" }, { "label": "dreamintot", "value": "2410" }, { "label": "dreamleave", "value": "1797" }, { "label": "dreamnine", "value": "4453" }, { "label": "dreamofmak", "value": "4120" }, { "label": "Dreamofthe", "value": "2153" }, { "label": "Dreams", "value": "494" }, { "label": "dreamstarr", "value": "5187" }, { "label": "Dreamstrin", "value": "5938" }, { "label": "dreamtogot", "value": "3981" }, { "label": "DriedRadis", "value": "5265" }, { "label": "driftingra", "value": "5134" }, { "label": "DriftwoodD", "value": "2514" }, { "label": "Drinkingam", "value": "4698" }, { "label": "drinkmorew", "value": "5139" }, { "label": "drinkupLan", "value": "3479" }, { "label": "DrivingAdv", "value": "3651" }, { "label": "DrivingHok", "value": "4591" }, { "label": "Drugs", "value": "543" }, { "label": "Druids", "value": "506" }, { "label": "Drunkencat", "value": "4416" }, { "label": "Drunklifed", "value": "2835" }, { "label": "Drunkmeet", "value": "4635" }, { "label": "DrunkMoonS", "value": "5113" }, { "label": "Drunktime", "value": "5165" }, { "label": "dryday", "value": "4093" }, { "label": "DualCultiv", "value": "5095" }, { "label": "Duaninksto", "value": "5850" }, { "label": "DuckMantou", "value": "5494" }, { "label": "DumbProtag", "value": "1071" }, { "label": "dungeon", "value": "1354" }, { "label": "DungeonMas", "value": "742" }, { "label": "Dungeons", "value": "632" }, { "label": "DurianGras", "value": "3994" }, { "label": "dustpatter", "value": "4487" }, { "label": "DustRainMa", "value": "5267" }, { "label": "Dwarf", "value": "1559" }, { "label": "Dwarfs", "value": "311" }, { "label": "Dwarves", "value": "783" }, { "label": "dwatermelo", "value": "3899" }, { "label": "DXNTotoro", "value": "5040" }, { "label": "DyeingBais", "value": "5191" }, { "label": "Dynasty", "value": "3436" }, { "label": "Dystopia", "value": "618" }, { "label": "e-Sports", "value": "275" }, { "label": "EagleRoadC", "value": "5771" }, { "label": "EarlyRoman", "value": "2" }, { "label": "EarthInvas", "value": "712" }, { "label": "eartwarmin", "value": "3564" }, { "label": "easternfan", "value": "693" }, { "label": "EasternSet", "value": "998" }, { "label": "EasyGoingL", "value": "434" }, { "label": "Easygoingp", "value": "1557" }, { "label": "Eat", "value": "3311" }, { "label": "Eatasteril", "value": "3850" }, { "label": "Eatchicken", "value": "3704" }, { "label": "eatfeet", "value": "4964" }, { "label": "eatfishdon", "value": "3658" }, { "label": "EatingBroa", "value": "1631" }, { "label": "eatingmeat", "value": "4421" }, { "label": "eatmoremea", "value": "5614" }, { "label": "Eatsmallto", "value": "5292" }, { "label": "Eccentricp", "value": "1596" }, { "label": "Ecchi", "value": "5085" }, { "label": "Economics", "value": "505" }, { "label": "EconomicsE", "value": "738" }, { "label": "Ecstasy", "value": "4771" }, { "label": "edgecoatin", "value": "4277" }, { "label": "Editors", "value": "575" }, { "label": "Effort", "value": "3356" }, { "label": "Eggpie", "value": "2180" }, { "label": "Eggplantan", "value": "2792" }, { "label": "Egoist", "value": "5451" }, { "label": "EideticMem", "value": "397" }, { "label": "Eight-star", "value": "3858" }, { "label": "Eighteence", "value": "2925" }, { "label": "EighteenRa", "value": "4751" }, { "label": "eighteight", "value": "4541" }, { "label": "eighthundr", "value": "4609" }, { "label": "Eightswast", "value": "4185" }, { "label": "eincarnate", "value": "789" }, { "label": "ElderlyPro", "value": "776" }, { "label": "electricia", "value": "1769" }, { "label": "electricmo", "value": "2628" }, { "label": "elegantlit", "value": "4184" }, { "label": "elemental", "value": "4350" }, { "label": "Elementali", "value": "1006" }, { "label": "ElementalM", "value": "398" }, { "label": "Elf", "value": "1296" }, { "label": "Elfcold", "value": "1905" }, { "label": "Elite", "value": "1268" }, { "label": "Elves", "value": "354" }, { "label": "elvesandgh", "value": "5689" }, { "label": "Elvish", "value": "3247" }, { "label": "EmbraceofL", "value": "6095" }, { "label": "Emotionall", "value": "381" }, { "label": "Emotionles", "value": "3910" }, { "label": "Emperialpo", "value": "1513" }, { "label": "emperor", "value": "3411" }, { "label": "EmperorCha", "value": "2867" }, { "label": "emperorstr", "value": "3143" }, { "label": "EmperorYao", "value": "1937" }, { "label": "Empire", "value": "1202" }, { "label": "EmpireBuil", "value": "859" }, { "label": "Empires", "value": "437" }, { "label": "Empress", "value": "3257" }, { "label": "empressfem", "value": "5047" }, { "label": "emptydream", "value": "5275" }, { "label": "emptyempty", "value": "5900" }, { "label": "emptyhate", "value": "4132" }, { "label": "emptymind", "value": "4440" }, { "label": "emptymonol", "value": "2407" }, { "label": "emptystard", "value": "4101" }, { "label": "EndlessSha", "value": "4883" }, { "label": "Endlesswin", "value": "6061" }, { "label": "EndoftheWo", "value": "5177" }, { "label": "EndoftheWo", "value": "2500" }, { "label": "EnemiesBec", "value": "195" }, { "label": "EnemiesBec", "value": "213" }, { "label": "enemiestol", "value": "1771" }, { "label": "enemy", "value": "3296" }, { "label": "EnemytoLov", "value": "1623" }, { "label": "EnemytoLov", "value": "1156" }, { "label": "Engage", "value": "3283" }, { "label": "engageinba", "value": "2674" }, { "label": "Engagement", "value": "655" }, { "label": "Engineer", "value": "697" }, { "label": "Enlightenm", "value": "577" }, { "label": "Entertaime", "value": "1164" }, { "label": "Entertaini", "value": "2460" }, { "label": "entertainm", "value": "4637" }, { "label": "entertainm", "value": "2783" }, { "label": "entertainm", "value": "2593" }, { "label": "entertainm", "value": "1699" }, { "label": "Entertainm", "value": "228" }, { "label": "Entertainm", "value": "874" }, { "label": "Entertainm", "value": "6122" }, { "label": "Entertainm", "value": "5327" }, { "label": "Entertainm", "value": "5284" }, { "label": "Entertainm", "value": "3083" }, { "label": "Entertainm", "value": "3060" }, { "label": "Entertainm", "value": "3037" }, { "label": "Entertainm", "value": "3030" }, { "label": "Entertainm", "value": "2961" }, { "label": "Entertainm", "value": "879" }, { "label": "epicfantas", "value": "5712" }, { "label": "Episodic", "value": "157" }, { "label": "Ergouzi&am", "value": "5185" }, { "label": "Erhuowon’", "value": "5919" }, { "label": "ErieShaggy", "value": "3948" }, { "label": "Eroticmeow", "value": "4404" }, { "label": "Erwazi", "value": "2776" }, { "label": "escapemarr", "value": "3613" }, { "label": "Eschatolog", "value": "3183" }, { "label": "Eschatolog", "value": "5340" }, { "label": "Eschatolog", "value": "5315" }, { "label": "Eschatolog", "value": "3074" }, { "label": "Eschatolog", "value": "3002" }, { "label": "Esper", "value": "5889" }, { "label": "ESports", "value": "5676" }, { "label": "Essencedre", "value": "3477" }, { "label": "EternalLif", "value": "5159" }, { "label": "eternallor", "value": "3767" }, { "label": "eternalsta", "value": "4320" }, { "label": "eternityor", "value": "2457" }, { "label": "Eunuch", "value": "343" }, { "label": "EunuchJinr", "value": "1830" }, { "label": "Europe", "value": "3334" }, { "label": "EuropeanAm", "value": "457" }, { "label": "EuropeanAm", "value": "946" }, { "label": "Europeanem", "value": "4188" }, { "label": "Europeansd", "value": "4738" }, { "label": "evengod", "value": "5768" }, { "label": "eveningdog", "value": "3979" }, { "label": "Eveningwin", "value": "4594" }, { "label": "evensuture", "value": "3523" }, { "label": "Evergrande", "value": "2708" }, { "label": "Evergrande", "value": "2352" }, { "label": "everlastin", "value": "2678" }, { "label": "EvernightB", "value": "4589" }, { "label": "everydayfi", "value": "2502" }, { "label": "everydayla", "value": "3097" }, { "label": "everydayla", "value": "3079" }, { "label": "Everyonewh", "value": "4199" }, { "label": "Everyyear", "value": "3761" }, { "label": "Evil", "value": "808" }, { "label": "Evil-prota", "value": "1479" }, { "label": "EvilCharac", "value": "1250" }, { "label": "evildoer", "value": "3310" }, { "label": "EvilGod", "value": "1058" }, { "label": "EvilGods", "value": "333" }, { "label": "evilking", "value": "5114" }, { "label": "EvilOrgani", "value": "66" }, { "label": "EvilOrgani", "value": "1386" }, { "label": "EvilProtag", "value": "382" }, { "label": "EvilReligi", "value": "529" }, { "label": "EvilSpirit", "value": "5070" }, { "label": "EvilSprits", "value": "1712" }, { "label": "evolution", "value": "1403" }, { "label": "Evolution", "value": "339" }, { "label": "evolutiona", "value": "5703" }, { "label": "Ex-girlfri", "value": "1534" }, { "label": "excellentp", "value": "3851" }, { "label": "ExcerptKin", "value": "4425" }, { "label": "exes", "value": "1752" }, { "label": "Exhaustion", "value": "3847" }, { "label": "Exhibition", "value": "1036" }, { "label": "Exorcism", "value": "468" }, { "label": "Exorcist", "value": "1193" }, { "label": "Experience", "value": "1334" }, { "label": "Explodethe", "value": "4945" }, { "label": "Exposurefl", "value": "3137" }, { "label": "Extraordin", "value": "1603" }, { "label": "ExtremeAng", "value": "4809" }, { "label": "Extremelyi", "value": "2240" }, { "label": "eyepower", "value": "1383" }, { "label": "EyePowers", "value": "351" }, { "label": "Faceslap", "value": "1620" }, { "label": "FaceSlappi", "value": "914" }, { "label": "FahaiInvin", "value": "2660" }, { "label": "Fahaiunder", "value": "2251" }, { "label": "faintpenan", "value": "3501" }, { "label": "Fairies", "value": "584" }, { "label": "Fairy", "value": "3546" }, { "label": "fairygirlf", "value": "2480" }, { "label": "Fairyrefer", "value": "3619" }, { "label": "FairySword", "value": "1974" }, { "label": "FairyTail", "value": "1023" }, { "label": "fairytailb", "value": "5583" }, { "label": "FairyTailR", "value": "4137" }, { "label": "Fairy丨Pin", "value": "1824" }, { "label": "Fairy丨San", "value": "3946" }, { "label": "Fairy丨Xiy", "value": "5656" }, { "label": "fakegod", "value": "2555" }, { "label": "FaketoReal", "value": "953" }, { "label": "FallenAnge", "value": "596" }, { "label": "Fallenleav", "value": "2108" }, { "label": "FallenNobi", "value": "524" }, { "label": "FallenWing", "value": "2767" }, { "label": "FallingRai", "value": "1946" }, { "label": "fallinlove", "value": "4145" }, { "label": "fallintoth", "value": "2813" }, { "label": "Faloo", "value": "1304" }, { "label": "FamilialLo", "value": "291" }, { "label": "Familiars", "value": "780" }, { "label": "FamillialL", "value": "1204" }, { "label": "Family", "value": "148" }, { "label": "FamilyBuil", "value": "854" }, { "label": "FamilyBusi", "value": "459" }, { "label": "FamilyConf", "value": "248" }, { "label": "familylife", "value": "1591" }, { "label": "FamilyLove", "value": "1676" }, { "label": "famous", "value": "3427" }, { "label": "famouscoup", "value": "1662" }, { "label": "Famousdete", "value": "1918" }, { "label": "FamousPare", "value": "627" }, { "label": "FamousProt", "value": "383" }, { "label": "Fan-fictio", "value": "183" }, { "label": "Fanaticism", "value": "710" }, { "label": "fancywords", "value": "5935" }, { "label": "Fanderivat", "value": "6145" }, { "label": "fanfic", "value": "1424" }, { "label": "Fanfic", "value": "1194" }, { "label": "Fanfiction", "value": "184" }, { "label": "FanFicton", "value": "1545" }, { "label": "FangQingya", "value": "2374" }, { "label": "FanJiu", "value": "2272" }, { "label": "fanofstar", "value": "2728" }, { "label": "fanqienove", "value": "5009" }, { "label": "Fanqin", "value": "4950" }, { "label": "FantaCola", "value": "2265" }, { "label": "fantasticf", "value": "5708" }, { "label": "Fantastico", "value": "5570" }, { "label": "Fantasy", "value": "391" }, { "label": "Fantasybos", "value": "2496" }, { "label": "FantasyCre", "value": "362" }, { "label": "FantasyCre", "value": "4343" }, { "label": "Fantasyfut", "value": "1753" }, { "label": "fantasyhis", "value": "3439" }, { "label": "FantasyJi", "value": "5997" }, { "label": "FantasyMag", "value": "532" }, { "label": "fantasyspa", "value": "6136" }, { "label": "FantasyWor", "value": "277" }, { "label": "Fantian36L", "value": "6118" }, { "label": "faraway", "value": "4607" }, { "label": "Farm", "value": "1654" }, { "label": "Farmer", "value": "3196" }, { "label": "farmgate", "value": "3160" }, { "label": "Farming", "value": "229" }, { "label": "farmingsys", "value": "3067" }, { "label": "FarmingTex", "value": "1218" }, { "label": "Farmingthr", "value": "5485" }, { "label": "FastCultiv", "value": "67" }, { "label": "FastGrowth", "value": "1264" }, { "label": "FastLearne", "value": "68" }, { "label": "fastpaced", "value": "3144" }, { "label": "fasttravel", "value": "4348" }, { "label": "fastwear", "value": "3146" }, { "label": "fastwear1V", "value": "5330" }, { "label": "fastwear1V", "value": "3063" }, { "label": "fastwearCo", "value": "3028" }, { "label": "fastwearIn", "value": "5305" }, { "label": "FastWearin", "value": "1466" }, { "label": "fastwearNo", "value": "5310" }, { "label": "fastwearPr", "value": "3081" }, { "label": "fastwearRe", "value": "2960" }, { "label": "fastwearst", "value": "3061" }, { "label": "fastwearsw", "value": "5346" }, { "label": "fatcatunde", "value": "4099" }, { "label": "Fatcatwhow", "value": "5441" }, { "label": "FatDiddy", "value": "2594" }, { "label": "FatDragonJ", "value": "5767" }, { "label": "fate", "value": "4488" }, { "label": "Fate90degr", "value": "5287" }, { "label": "FatedLover", "value": "272" }, { "label": "fatedxd", "value": "1404" }, { "label": "FateSeries", "value": "1585" }, { "label": "Fatestayni", "value": "3419" }, { "label": "Father", "value": "1146" }, { "label": "FatHouseDu", "value": "4328" }, { "label": "Fathouselo", "value": "5647" }, { "label": "fatmanoffa", "value": "2060" }, { "label": "Fatmeowdoe", "value": "4556" }, { "label": "fatorange", "value": "4370" }, { "label": "FatProtago", "value": "358" }, { "label": "FattoFit", "value": "359" }, { "label": "Faucet", "value": "2707" }, { "label": "Favoritebl", "value": "2110" }, { "label": "Favoriteco", "value": "6100" }, { "label": "Favoriteco", "value": "2759" }, { "label": "favoritegr", "value": "3814" }, { "label": "favoritepo", "value": "3915" }, { "label": "Favoriteup", "value": "3867" }, { "label": "FearlessPr", "value": "639" }, { "label": "featherand", "value": "3513" }, { "label": "federalhea", "value": "4236" }, { "label": "FeiLuEdiso", "value": "1947" }, { "label": "FeitianOld", "value": "3686" }, { "label": "Fellatio", "value": "629" }, { "label": "FemaleEmpe", "value": "4012" }, { "label": "FemaleFigh", "value": "1586" }, { "label": "femalehono", "value": "3248" }, { "label": "FemaleLead", "value": "986" }, { "label": "FemaleMast", "value": "557" }, { "label": "femalematc", "value": "3121" }, { "label": "FemaleMC", "value": "1391" }, { "label": "FemalePart", "value": "4347" }, { "label": "FemalePres", "value": "1458" }, { "label": "femaleprim", "value": "5745" }, { "label": "Femaleprot", "value": "1226" }, { "label": "FemaleProt", "value": "18" }, { "label": "FemaleProt", "value": "2913" }, { "label": "FemaleSpie", "value": "1493" }, { "label": "FemalesPro", "value": "1178" }, { "label": "FemaletoMa", "value": "734" }, { "label": "FengLingzo", "value": "3585" }, { "label": "FenglinYey", "value": "5199" }, { "label": "Fengqing", "value": "2425" }, { "label": "FengShui", "value": "581" }, { "label": "FengTingyu", "value": "5273" }, { "label": "FengyueXun", "value": "4543" }, { "label": "Fengzilike", "value": "5205" }, { "label": "FengziXiao", "value": "2077" }, { "label": "Fenwhoeats", "value": "5810" }, { "label": "FerrariEnz", "value": "1928" }, { "label": "Fetish", "value": "5094" }, { "label": "Fiction", "value": "5450" }, { "label": "fieldowner", "value": "4046" }, { "label": "fierce", "value": "2128" }, { "label": "Fierceadve", "value": "5212" }, { "label": "fiercewife", "value": "3273" }, { "label": "Fifi&03", "value": "2808" }, { "label": "FifthEmper", "value": "2454" }, { "label": "FifthQingl", "value": "5931" }, { "label": "Fightagain", "value": "3281" }, { "label": "FightingCo", "value": "2450" }, { "label": "Fightingpi", "value": "5687" }, { "label": "Filipino", "value": "1682" }, { "label": "FilipinoNo", "value": "1681" }, { "label": "Filmempero", "value": "3368" }, { "label": "Finance", "value": "2895" }, { "label": "Fineartisl", "value": "5424" }, { "label": "finepoint", "value": "3638" }, { "label": "fingertips", "value": "3877" }, { "label": "Firearms", "value": "166" }, { "label": "fireborn", "value": "1407" }, { "label": "firefire", "value": "4650" }, { "label": "Fireinthes", "value": "2040" }, { "label": "fireonfire", "value": "2602" }, { "label": "Firethief", "value": "1810" }, { "label": "FireWinged", "value": "2384" }, { "label": "FireXinxin", "value": "4902" }, { "label": "First-time", "value": "882" }, { "label": "First-time", "value": "192" }, { "label": "firstaid", "value": "3298" }, { "label": "firstfragr", "value": "4662" }, { "label": "firstgreen", "value": "2535" }, { "label": "FirstLove", "value": "207" }, { "label": "firstperso", "value": "1989" }, { "label": "fishandraf", "value": "2481" }, { "label": "fishdragon", "value": "3530" }, { "label": "fisheatpan", "value": "2869" }, { "label": "fishfishda", "value": "2070" }, { "label": "Fishheadis", "value": "2814" }, { "label": "fishinflam", "value": "2753" }, { "label": "Fishing", "value": "1131" }, { "label": "fishinginf", "value": "4972" }, { "label": "Fishingmak", "value": "4117" }, { "label": "fishswimmi", "value": "2779" }, { "label": "five-color", "value": "5722" }, { "label": "FiveDynast", "value": "5702" }, { "label": "flamboyant", "value": "3491" }, { "label": "flamingfla", "value": "1835" }, { "label": "Flashbacks", "value": "135" }, { "label": "FlashBonda", "value": "4441" }, { "label": "flashhusky", "value": "5405" }, { "label": "FleetBattl", "value": "745" }, { "label": "flirtatiou", "value": "3616" }, { "label": "flirtyclou", "value": "5036" }, { "label": "Fllatio", "value": "191" }, { "label": "Floatingcl", "value": "3987" }, { "label": "floatingdu", "value": "4916" }, { "label": "Floatingli", "value": "2550" }, { "label": "floatingse", "value": "4800" }, { "label": "flood", "value": "3220" }, { "label": "floodRelax", "value": "3045" }, { "label": "Flourishin", "value": "3369" }, { "label": "Flower&", "value": "3967" }, { "label": "FlowerBlos", "value": "4180" }, { "label": "flowercare", "value": "3177" }, { "label": "flowercare", "value": "3077" }, { "label": "flowercare", "value": "2997" }, { "label": "flowerdust", "value": "4400" }, { "label": "Flowersblo", "value": "5952" }, { "label": "flowersoft", "value": "2805" }, { "label": "Flowingclo", "value": "5258" }, { "label": "Flowingclo", "value": "4933" }, { "label": "flyburning", "value": "5784" }, { "label": "flyingcow", "value": "2547" }, { "label": "FlyingDrag", "value": "4458" }, { "label": "flyingfish", "value": "2146" }, { "label": "Flyinggras", "value": "4019" }, { "label": "flyinglitt", "value": "2522" }, { "label": "FlyingLuTi", "value": "2301" }, { "label": "Flyingmeat", "value": "4710" }, { "label": "flyingnood", "value": "3914" }, { "label": "flyingshar", "value": "2719" }, { "label": "Flyingsnow", "value": "5304" }, { "label": "flyingsqui", "value": "2364" }, { "label": "Flyingwhit", "value": "2862" }, { "label": "flyinthelo", "value": "2615" }, { "label": "flytothemo", "value": "4124" }, { "label": "FocusSpeci", "value": "3795" }, { "label": "Foggy", "value": "4204" }, { "label": "FogLan", "value": "4732" }, { "label": "foldedkite", "value": "4628" }, { "label": "Foldoffthi", "value": "5668" }, { "label": "Folklore", "value": "623" }, { "label": "folksuspen", "value": "3364" }, { "label": "Followthew", "value": "2091" }, { "label": "Fomalhaut7", "value": "5877" }, { "label": "Food", "value": "814" }, { "label": "foodie", "value": "3414" }, { "label": "FoodShopke", "value": "987" }, { "label": "FoodWars!", "value": "1317" }, { "label": "fool", "value": "4871" }, { "label": "Football", "value": "352" }, { "label": "Forcedinto", "value": "110" }, { "label": "ForcedLivi", "value": "317" }, { "label": "ForcedMarr", "value": "111" }, { "label": "Forcedtomo", "value": "5503" }, { "label": "foreignwei", "value": "3261" }, { "label": "Forensic", "value": "3716" }, { "label": "forest", "value": "2134" }, { "label": "forestinth", "value": "4291" }, { "label": "ForgetfulP", "value": "384" }, { "label": "Forgiveyou", "value": "2211" }, { "label": "forgottoun", "value": "5476" }, { "label": "Formation", "value": "4192" }, { "label": "Formations", "value": "1346" }, { "label": "FormerHero", "value": "478" }, { "label": "formworksk", "value": "2817" }, { "label": "fornoreaso", "value": "5362" }, { "label": "Fortyacres", "value": "6065" }, { "label": "Fourkeys", "value": "2451" }, { "label": "Foursome", "value": "5088" }, { "label": "FourthDisa", "value": "1276" }, { "label": "fox", "value": "3433" }, { "label": "foxcontrol", "value": "5554" }, { "label": "foxdemonpr", "value": "5533" }, { "label": "FoxdemonXi", "value": "2377" }, { "label": "Foxhimself", "value": "3809" }, { "label": "foxlisteni", "value": "1827" }, { "label": "FoxSpirits", "value": "256" }, { "label": "Fragmentof", "value": "4696" }, { "label": "fragmentso", "value": "4070" }, { "label": "France", "value": "1496" }, { "label": "frenchcoun", "value": "5933" }, { "label": "frenzyflow", "value": "4417" }, { "label": "Freshparad", "value": "5864" }, { "label": "Friction", "value": "932" }, { "label": "Friday", "value": "1885" }, { "label": "fried", "value": "3739" }, { "label": "FriedJunhu", "value": "4781" }, { "label": "Friedsquid", "value": "4514" }, { "label": "FriendsBec", "value": "737" }, { "label": "Friendship", "value": "421" }, { "label": "Fromnowon", "value": "5837" }, { "label": "Fromthepup", "value": "4063" }, { "label": "Frostandsn", "value": "5489" }, { "label": "FrostZhong", "value": "5867" }, { "label": "Frozencorn", "value": "4215" }, { "label": "FuHejun", "value": "3676" }, { "label": "Fujoshi", "value": "69" }, { "label": "Fukujin", "value": "3339" }, { "label": "Fullcolor", "value": "3841" }, { "label": "fullflow", "value": "3404" }, { "label": "fullmeal", "value": "2173" }, { "label": "Fullyarmed", "value": "3853" }, { "label": "FungMingHe", "value": "4897" }, { "label": "Funny", "value": "3138" }, { "label": "furioussna", "value": "2336" }, { "label": "Furutake", "value": "3607" }, { "label": "fusion", "value": "5365" }, { "label": "FusoFantas", "value": "4319" }, { "label": "Futanari", "value": "193" }, { "label": "Future", "value": "1698" }, { "label": "FutureCivi", "value": "355" }, { "label": "FutureCivi", "value": "1252" }, { "label": "futuredyst", "value": "5049" }, { "label": "Futureover", "value": "6139" }, { "label": "futureworl", "value": "2909" }, { "label": "futureworl", "value": "3056" }, { "label": "futureworl", "value": "2989" }, { "label": "Futuristic", "value": "126" }, { "label": "Futuristic", "value": "1500" }, { "label": "Fuyuan", "value": "4859" }, { "label": "gacha", "value": "5445" }, { "label": "Galacticos", "value": "1917" }, { "label": "Galaxyboy", "value": "2245" }, { "label": "GalaxyWars", "value": "1266" }, { "label": "Galge", "value": "1109" }, { "label": "GambitPara", "value": "4284" }, { "label": "Gambling", "value": "661" }, { "label": "gamblingst", "value": "3729" }, { "label": "Game", "value": "822" }, { "label": "gamealien", "value": "3153" }, { "label": "gamealienO", "value": "2978" }, { "label": "gamealienp", "value": "3006" }, { "label": "gamealienV", "value": "2966" }, { "label": "gameelemen", "value": "1627" }, { "label": "GameElemen", "value": "70" }, { "label": "GameElemen", "value": "868" }, { "label": "GameLit", "value": "3763" }, { "label": "GameofThro", "value": "3422" }, { "label": "GameOnline", "value": "1449" }, { "label": "gameplayer", "value": "3430" }, { "label": "Gameproduc", "value": "3154" }, { "label": "GameRangki", "value": "1246" }, { "label": "GameRankin", "value": "392" }, { "label": "Gamers", "value": "170" }, { "label": "gameworld", "value": "1220" }, { "label": "Gaming", "value": "1133" }, { "label": "GamingE-Sp", "value": "385" }, { "label": "Gangs", "value": "321" }, { "label": "Gangster", "value": "3226" }, { "label": "Gangsters", "value": "798" }, { "label": "GanYu&0", "value": "4148" }, { "label": "GaoWu", "value": "5673" }, { "label": "GaoYuanyao", "value": "2666" }, { "label": "GatetoAnot", "value": "214" }, { "label": "Gatevalve", "value": "3110" }, { "label": "Geass", "value": "1590" }, { "label": "Geeky", "value": "3408" }, { "label": "GenderBend", "value": "1012" }, { "label": "Genderless", "value": "1632" }, { "label": "Genderless", "value": "609" }, { "label": "gene", "value": "3315" }, { "label": "GeneModifi", "value": "1315" }, { "label": "General", "value": "3349" }, { "label": "Generals", "value": "233" }, { "label": "GeneralXie", "value": "2773" }, { "label": "GeneticMod", "value": "312" }, { "label": "geneticwar", "value": "3340" }, { "label": "Genies", "value": "215" }, { "label": "genius", "value": "1421" }, { "label": "geniusflow", "value": "3129" }, { "label": "geniusflow", "value": "3016" }, { "label": "GeniusProt", "value": "216" }, { "label": "Genshin", "value": "1510" }, { "label": "GenshinImp", "value": "1321" }, { "label": "GentleLove", "value": "1750" }, { "label": "gentleman", "value": "1986" }, { "label": "GentlemanI", "value": "5236" }, { "label": "GentlemanM", "value": "4646" }, { "label": "GentleProt", "value": "1722" }, { "label": "Gentlygath", "value": "4909" }, { "label": "Georgia", "value": "4034" }, { "label": "germanicsn", "value": "3896" }, { "label": "getonit!", "value": "4749" }, { "label": "GetRich", "value": "1717" }, { "label": "Getrichbys", "value": "6072" }, { "label": "Getupearly", "value": "6126" }, { "label": "Ghost", "value": "1099" }, { "label": "Ghostexter", "value": "2677" }, { "label": "Ghosts", "value": "158" }, { "label": "Ghostsinre", "value": "2402" }, { "label": "Giant", "value": "3151" }, { "label": "giantpanda", "value": "2840" }, { "label": "Gilf", "value": "5090" }, { "label": "GingerLemo", "value": "3380" }, { "label": "Girl&03", "value": "1198" }, { "label": "Girl&03", "value": "1191" }, { "label": "girlfallsi", "value": "4697" }, { "label": "girlfriend", "value": "1149" }, { "label": "Girlsareet", "value": "5951" }, { "label": "giveyoutim", "value": "2058" }, { "label": "Gladiators", "value": "981" }, { "label": "Glasses-we", "value": "703" }, { "label": "Glasses-we", "value": "624" }, { "label": "glasseswei", "value": "4419" }, { "label": "glasssauce", "value": "4281" }, { "label": "glassysky", "value": "6102" }, { "label": "GLL", "value": "2329" }, { "label": "GlobalTop1", "value": "4545" }, { "label": "gluttoneat", "value": "4888" }, { "label": "Go", "value": "1942" }, { "label": "goallist", "value": "2659" }, { "label": "Goblins", "value": "616" }, { "label": "God", "value": "1297" }, { "label": "God-humanR", "value": "668" }, { "label": "God-levelf", "value": "3304" }, { "label": "God&039", "value": "4573" }, { "label": "God&039", "value": "2171" }, { "label": "GodandDevi", "value": "1508" }, { "label": "Godcat", "value": "4241" }, { "label": "Goddess", "value": "1575" }, { "label": "goddessbos", "value": "2378" }, { "label": "Goddesses", "value": "278" }, { "label": "Goddidnotg", "value": "2414" }, { "label": "GodLikeMC", "value": "1443" }, { "label": "GodlyPower", "value": "356" }, { "label": "GodlyPower", "value": "1582" }, { "label": "GodlyProta", "value": "960" }, { "label": "Godofcreat", "value": "3626" }, { "label": "godofduel", "value": "1908" }, { "label": "GodofForti", "value": "1996" }, { "label": "godofrainy", "value": "4519" }, { "label": "Godofwings", "value": "2324" }, { "label": "GodProtago", "value": "298" }, { "label": "Gods", "value": "234" }, { "label": "godsaltedf", "value": "2589" }, { "label": "Godzilla", "value": "1710" }, { "label": "Golden", "value": "2634" }, { "label": "GoldenFing", "value": "963" }, { "label": "goldenfore", "value": "2751" }, { "label": "GoldenMang", "value": "4678" }, { "label": "goldenswor", "value": "5617" }, { "label": "goldenthom", "value": "5815" }, { "label": "goldfinger", "value": "1941" }, { "label": "Goldfinger", "value": "3031" }, { "label": "Goldfinger", "value": "2938" }, { "label": "goldrush", "value": "4274" }, { "label": "Golems", "value": "778" }, { "label": "GoneDouble", "value": "5775" }, { "label": "GoneStrawb", "value": "2078" }, { "label": "Gongdou", "value": "3254" }, { "label": "Gongdou1V1", "value": "5334" }, { "label": "Gongdouswe", "value": "3078" }, { "label": "GongdouZha", "value": "5690" }, { "label": "gongregret", "value": "3894" }, { "label": "Goo!Justki", "value": "5465" }, { "label": "good-natur", "value": "2651" }, { "label": "goodbyeex", "value": "4212" }, { "label": "goodpotdre", "value": "1870" }, { "label": "Goodsir", "value": "4410" }, { "label": "goodstar", "value": "5470" }, { "label": "googoogoog", "value": "4003" }, { "label": "Gooifyouca", "value": "2853" }, { "label": "goose", "value": "5296" }, { "label": "Gore", "value": "94" }, { "label": "goslowbro", "value": "1861" }, { "label": "gossip", "value": "2053" }, { "label": "Gotaki", "value": "2090" }, { "label": "Gotoschool", "value": "3550" }, { "label": "gotta", "value": "5247" }, { "label": "Gouor", "value": "4222" }, { "label": "Gourmet", "value": "1551" }, { "label": "GouTaoist", "value": "4571" }, { "label": "Government", "value": "1616" }, { "label": "GovernorWh", "value": "4134" }, { "label": "Graceunder", "value": "6007" }, { "label": "GradeXNUMX", "value": "1799" }, { "label": "gradually", "value": "4994" }, { "label": "Grandpa", "value": "3180" }, { "label": "Granvillec", "value": "4659" }, { "label": "GrassCrick", "value": "5202" }, { "label": "Grassroots", "value": "3128" }, { "label": "GraveKeepe", "value": "1016" }, { "label": "gravityfal", "value": "1430" }, { "label": "Grayborn", "value": "4827" }, { "label": "greatbriti", "value": "5899" }, { "label": "GreatCeles", "value": "2317" }, { "label": "GreatCod", "value": "5401" }, { "label": "GreatDesol", "value": "4147" }, { "label": "GreatDrago", "value": "4256" }, { "label": "Greatgod", "value": "3554" }, { "label": "GreatQinIm", "value": "4263" }, { "label": "GreatQinvi", "value": "4000" }, { "label": "GreatSage", "value": "2037" }, { "label": "greedydrin", "value": "4186" }, { "label": "GreedyProt", "value": "1217" }, { "label": "GreenCong", "value": "3577" }, { "label": "greenfruit", "value": "4810" }, { "label": "greengrass", "value": "4288" }, { "label": "Greenplum", "value": "3337" }, { "label": "greentea", "value": "1777" }, { "label": "greenteaL", "value": "5505" }, { "label": "GrilledPac", "value": "5147" }, { "label": "GrilledPir", "value": "3957" }, { "label": "Grimdark", "value": "787" }, { "label": "grimReaper", "value": "3459" }, { "label": "GrimReaper", "value": "4893" }, { "label": "Grinding", "value": "544" }, { "label": "Group", "value": "3188" }, { "label": "GroupChat", "value": "1272" }, { "label": "Groupfavor", "value": "6151" }, { "label": "GroupPet", "value": "2914" }, { "label": "groupwear", "value": "3591" }, { "label": "growingup", "value": "6137" }, { "label": "Growth", "value": "1486" }, { "label": "Grumpyoldm", "value": "3947" }, { "label": "grumpyoran", "value": "5942" }, { "label": "Grupchat", "value": "1477" }, { "label": "GuaguaSoar", "value": "4406" }, { "label": "GuardianRe", "value": "264" }, { "label": "GudaoZhous", "value": "4250" }, { "label": "Gugu", "value": "4840" }, { "label": "gugugugu", "value": "4913" }, { "label": "Guilds", "value": "631" }, { "label": "GuiltyScis", "value": "2581" }, { "label": "Guluton", "value": "5418" }, { "label": "Gundam", "value": "1741" }, { "label": "Gunfighter", "value": "95" }, { "label": "GuodianAna", "value": "5294" }, { "label": "Guoshu", "value": "3272" }, { "label": "Guoshuflow", "value": "5711" }, { "label": "GuShaoxia", "value": "1858" }, { "label": "H11H", "value": "2737" }, { "label": "Hachime", "value": "3688" }, { "label": "Hacker", "value": "957" }, { "label": "Hackers", "value": "367" }, { "label": "Hahariding", "value": "4610" }, { "label": "Haikyuu", "value": "1768" }, { "label": "Hailuojun", "value": "5988" }, { "label": "HakoniwaSe", "value": "2398" }, { "label": "Half-human", "value": "265" }, { "label": "halfafrog", "value": "3539" }, { "label": "halfanoran", "value": "2618" }, { "label": "HalfCityDe", "value": "5394" }, { "label": "HalfJiangS", "value": "3643" }, { "label": "halfmoonem", "value": "4525" }, { "label": "halfnights", "value": "4961" }, { "label": "halfsmoke", "value": "5238" }, { "label": "halfstepge", "value": "2476" }, { "label": "halfstring", "value": "5555" }, { "label": "Halo", "value": "811" }, { "label": "HamabeMiwa", "value": "4854" }, { "label": "Haminstant", "value": "2689" }, { "label": "Handjob", "value": "699" }, { "label": "HandjobBet", "value": "3656" }, { "label": "handsome", "value": "3566" }, { "label": "handsomeat", "value": "4329" }, { "label": "handsomebl", "value": "6023" }, { "label": "Handsomegu", "value": "2789" }, { "label": "HandsomeMa", "value": "11" }, { "label": "HandsomeMa", "value": "1656" }, { "label": "HandsomeMC", "value": "5096" }, { "label": "handsomeon", "value": "2607" }, { "label": "HandsomePr", "value": "1195" }, { "label": "handtearin", "value": "2362" }, { "label": "HanlinBrok", "value": "5388" }, { "label": "HansChrist", "value": "5173" }, { "label": "HanXiaoshe", "value": "4318" }, { "label": "HaotianExt", "value": "2356" }, { "label": "HaoyuYingx", "value": "3379" }, { "label": "Happy", "value": "1157" }, { "label": "HappyBeanl", "value": "2177" }, { "label": "happydrago", "value": "4886" }, { "label": "HappyEndin", "value": "833" }, { "label": "happyenemy", "value": "3094" }, { "label": "Happyfirst", "value": "4522" }, { "label": "HappyFlow", "value": "2825" }, { "label": "happylittl", "value": "3664" }, { "label": "happylutho", "value": "3687" }, { "label": "Hard-Worki", "value": "127" }, { "label": "HardSci-fi", "value": "3424" }, { "label": "hardtofind", "value": "4428" }, { "label": "Hardworkin", "value": "4857" }, { "label": "Hardworkin", "value": "1173" }, { "label": "Harem", "value": "37" }, { "label": "Harem-seek", "value": "324" }, { "label": "Haremismta", "value": "2521" }, { "label": "HaremSeeki", "value": "1084" }, { "label": "Harpertime", "value": "5635" }, { "label": "harpyfrog", "value": "5435" }, { "label": "harrypotte", "value": "1427" }, { "label": "HarryPotte", "value": "237" }, { "label": "HarshTrain", "value": "625" }, { "label": "HarukoHaru", "value": "5941" }, { "label": "Hashihime", "value": "2100" }, { "label": "HatedProta", "value": "112" }, { "label": "haveagoody", "value": "4270" }, { "label": "havealongm", "value": "4967" }, { "label": "Haveasofts", "value": "6128" }, { "label": "haveryconf", "value": "4095" }, { "label": "Hawkeye", "value": "2330" }, { "label": "hazelneck", "value": "3961" }, { "label": "HE", "value": "3152" }, { "label": "Head", "value": "3707" }, { "label": "headedsalt", "value": "5911" }, { "label": "Headmaster", "value": "4831" }, { "label": "HeadofShil", "value": "4642" }, { "label": "Healers", "value": "566" }, { "label": "Healing", "value": "1474" }, { "label": "Healthewor", "value": "2326" }, { "label": "heart", "value": "4283" }, { "label": "heartandey", "value": "2619" }, { "label": "HeartHunte", "value": "2684" }, { "label": "Heartwarmi", "value": "106" }, { "label": "Heaven", "value": "582" }, { "label": "heavenclea", "value": "2526" }, { "label": "HeavenlyKi", "value": "3481" }, { "label": "HeavenlyTr", "value": "128" }, { "label": "heavensong", "value": "2544" }, { "label": "HefanAnzi", "value": "5805" }, { "label": "Hegemony", "value": "2904" }, { "label": "Hehehehehe", "value": "6011" }, { "label": "HeHuaninth", "value": "5276" }, { "label": "HeiTongWuG", "value": "4268" }, { "label": "Hell", "value": "651" }, { "label": "HelpfulPro", "value": "612" }, { "label": "helpmeup", "value": "4622" }, { "label": "HengdianXi", "value": "4146" }, { "label": "Hentai", "value": "978" }, { "label": "Herbalist", "value": "779" }, { "label": "hereIcome", "value": "3623" }, { "label": "HERelaxeds", "value": "5342" }, { "label": "Hero", "value": "784" }, { "label": "Heroes", "value": "536" }, { "label": "Heroesofth", "value": "1961" }, { "label": "heroine", "value": "1778" }, { "label": "heroinecut", "value": "3161" }, { "label": "Hesitatean", "value": "4126" }, { "label": "Heterochro", "value": "969" }, { "label": "HEwearbook", "value": "3009" }, { "label": "hewon&0", "value": "5855" }, { "label": "Hexue", "value": "4460" }, { "label": "HeXueguan", "value": "5413" }, { "label": "hey", "value": "2094" }, { "label": "HeYeTonggu", "value": "5523" }, { "label": "HeyMajesty", "value": "4920" }, { "label": "hi", "value": "1995" }, { "label": "hibernatin", "value": "4596" }, { "label": "HidakaDanc", "value": "4868" }, { "label": "HiddenAbil", "value": "259" }, { "label": "hiddenbook", "value": "5411" }, { "label": "HiddenBoss", "value": "1483" }, { "label": "HiddenGem", "value": "982" }, { "label": "HiddenIden", "value": "921" }, { "label": "HiddenIden", "value": "1216" }, { "label": "hiddenmarr", "value": "3258" }, { "label": "hiddenmarr", "value": "5338" }, { "label": "HiddenTrue", "value": "1107" }, { "label": "hiddenvest", "value": "1210" }, { "label": "HiddenYrue", "value": "1135" }, { "label": "Hidethepen", "value": "4928" }, { "label": "HidingAbil", "value": "479" }, { "label": "HidingTrue", "value": "200" }, { "label": "HidingTrue", "value": "117" }, { "label": "HidingTrue", "value": "1086" }, { "label": "HidingTrue", "value": "958" }, { "label": "Highcold", "value": "3429" }, { "label": "HighFantas", "value": "1666" }, { "label": "highiq", "value": "1428" }, { "label": "HighSchool", "value": "1039" }, { "label": "HighSchool", "value": "1159" }, { "label": "Higu", "value": "2104" }, { "label": "Hikari", "value": "4158" }, { "label": "HiKeli", "value": "5716" }, { "label": "Hikusei", "value": "3239" }, { "label": "Hiroyuki", "value": "4057" }, { "label": "hishy", "value": "4925" }, { "label": "HisMajesty", "value": "2430" }, { "label": "HisnameisJ", "value": "4374" }, { "label": "HisRoyalHi", "value": "4265" }, { "label": "Historical", "value": "824" }, { "label": "Historical", "value": "5709" }, { "label": "History", "value": "860" }, { "label": "Historyoft", "value": "5885" }, { "label": "hitten", "value": "2927" }, { "label": "hitthestre", "value": "4385" }, { "label": "Hndjob", "value": "376" }, { "label": "Hogwarts", "value": "1608" }, { "label": "Hokage", "value": "845" }, { "label": "HoldingaMe", "value": "5758" }, { "label": "Holdthemom", "value": "5756" }, { "label": "Hollywood", "value": "1196" }, { "label": "holyangel", "value": "2017" }, { "label": "HolyFather", "value": "5184" }, { "label": "HolyFireDT", "value": "3964" }, { "label": "HolyKingRa", "value": "1826" }, { "label": "holymonk", "value": "3891" }, { "label": "HolyWaterP", "value": "6062" }, { "label": "HomeAttrib", "value": "2369" }, { "label": "homelessma", "value": "3913" }, { "label": "HonestandR", "value": "2622" }, { "label": "honestdogg", "value": "4144" }, { "label": "honestking", "value": "3470" }, { "label": "HonestProt", "value": "648" }, { "label": "HongchenJi", "value": "4387" }, { "label": "HongfeiQin", "value": "2597" }, { "label": "HongHuangB", "value": "5779" }, { "label": "HonghuangN", "value": "2516" }, { "label": "Honghuangs", "value": "2217" }, { "label": "HonghuangS", "value": "4496" }, { "label": "HongHuangz", "value": "5286" }, { "label": "HongKongFi", "value": "4018" }, { "label": "HongmengSh", "value": "1783" }, { "label": "HongTang", "value": "1886" }, { "label": "Hongxuetyp", "value": "5936" }, { "label": "Honkai1999", "value": "4171" }, { "label": "HonkaiImpa", "value": "1375" }, { "label": "HonkaiMess", "value": "3586" }, { "label": "hopeful", "value": "5482" }, { "label": "hornreverb", "value": "4691" }, { "label": "horror", "value": "818" }, { "label": "horrorgod", "value": "2394" }, { "label": "horsehorse", "value": "4873" }, { "label": "HoshinoSor", "value": "5828" }, { "label": "Hospital", "value": "636" }, { "label": "Hot-bloode", "value": "300" }, { "label": "HotBlood", "value": "3013" }, { "label": "Hotels", "value": "906" }, { "label": "Hotpepper", "value": "4821" }, { "label": "hotpot", "value": "2721" }, { "label": "housefight", "value": "3170" }, { "label": "housefight", "value": "5336" }, { "label": "housefight", "value": "5326" }, { "label": "housefight", "value": "3049" }, { "label": "housegirl", "value": "5132" }, { "label": "housekeepe", "value": "5545" }, { "label": "houseprope", "value": "2412" }, { "label": "howcomfort", "value": "5389" }, { "label": "howlingpig", "value": "2312" }, { "label": "howlingwin", "value": "2770" }, { "label": "Huahuababy", "value": "5444" }, { "label": "HuaihaiChi", "value": "4988" }, { "label": "HuanHuanHu", "value": "2061" }, { "label": "HuaNiaoFen", "value": "6006" }, { "label": "HuaXiaowas", "value": "4042" }, { "label": "hugTA&0", "value": "4704" }, { "label": "Huijingund", "value": "2236" }, { "label": "HuiMochou", "value": "1997" }, { "label": "HuiXiaCong", "value": "4382" }, { "label": "human", "value": "4653" }, { "label": "Human-Nonh", "value": "159" }, { "label": "HumanExper", "value": "413" }, { "label": "HumanExper", "value": "1392" }, { "label": "humannatur", "value": "5803" }, { "label": "HumanoidPr", "value": "129" }, { "label": "HumanWeapo", "value": "490" }, { "label": "Humbleboy", "value": "3277" }, { "label": "Humiliatio", "value": "5093" }, { "label": "humla", "value": "2221" }, { "label": "hundredhou", "value": "4064" }, { "label": "hunter", "value": "3562" }, { "label": "Hunter×Hu", "value": "2921" }, { "label": "hunterkill", "value": "1881" }, { "label": "hunterleav", "value": "4245" }, { "label": "Hunters", "value": "531" }, { "label": "HunterxHun", "value": "1338" }, { "label": "HunyuanDal", "value": "5148" }, { "label": "Huoshulour", "value": "3791" }, { "label": "HuoxiangZh", "value": "3771" }, { "label": "Hurry", "value": "5914" }, { "label": "HuTiandi", "value": "2386" }, { "label": "HuYuan&", "value": "5602" }, { "label": "HxH", "value": "1062" }, { "label": "HyogoNorth", "value": "5747" }, { "label": "hyperknigh", "value": "1927" }, { "label": "Hypnotism", "value": "377" }, { "label": "I&039ll", "value": "4249" }, { "label": "i&039ma", "value": "3657" }, { "label": "I&039ma", "value": "4949" }, { "label": "I&039ma", "value": "2191" }, { "label": "I&039mj", "value": "3674" }, { "label": "I&039mn", "value": "5186" }, { "label": "I&039mn", "value": "4484" }, { "label": "I&039mo", "value": "2351" }, { "label": "I&039mr", "value": "4500" }, { "label": "I&039ms", "value": "4026" }, { "label": "I&039ms", "value": "3655" }, { "label": "I&039mX", "value": "4529" }, { "label": "ialmostbel", "value": "3519" }, { "label": "iamabigsal", "value": "3963" }, { "label": "Iamamelanc", "value": "4639" }, { "label": "Iamapirate", "value": "2321" }, { "label": "Iamareader", "value": "4630" }, { "label": "Iamarealdi", "value": "2304" }, { "label": "IamAsi", "value": "2744" }, { "label": "iamatravel", "value": "1930" }, { "label": "Iamfifth", "value": "2314" }, { "label": "IamGuanxi", "value": "2438" }, { "label": "Iamhell", "value": "2443" }, { "label": "IamHisMaje", "value": "2296" }, { "label": "Iamnotaloc", "value": "2009" }, { "label": "Iamnottheo", "value": "5774" }, { "label": "Iamolderth", "value": "2269" }, { "label": "Iamoldwolf", "value": "2695" }, { "label": "Iamthemurd", "value": "2765" }, { "label": "Iamtheseak", "value": "1890" }, { "label": "Iamtheseco", "value": "2650" }, { "label": "Iamtwenty-", "value": "2596" }, { "label": "Iateeightc", "value": "2931" }, { "label": "IbukiGourd", "value": "3813" }, { "label": "Ibuprofen", "value": "2580" }, { "label": "icalledthe", "value": "2036" }, { "label": "Ican&03", "value": "4456" }, { "label": "Icanreally", "value": "4088" }, { "label": "IceCreamAs", "value": "4412" }, { "label": "iceddaught", "value": "4197" }, { "label": "IcedDurian", "value": "2826" }, { "label": "icesweet", "value": "4575" }, { "label": "icewalk", "value": "1979" }, { "label": "Icomefromt", "value": "3578" }, { "label": "IdentityCr", "value": "344" }, { "label": "ideologica", "value": "3278" }, { "label": "Idiotdeado", "value": "5777" }, { "label": "idlerscome", "value": "4788" }, { "label": "Idol", "value": "1301" }, { "label": "Idon’tkno", "value": "6034" }, { "label": "idon&03", "value": "2195" }, { "label": "Idon&03", "value": "4661" }, { "label": "Idon&03", "value": "4031" }, { "label": "idropbaby", "value": "1839" }, { "label": "ieatgrass", "value": "2609" }, { "label": "ieatguava", "value": "4624" }, { "label": "IfIdon&", "value": "4248" }, { "label": "ifthewindi", "value": "6068" }, { "label": "Ifyoucango", "value": "2118" }, { "label": "Igotit!", "value": "5201" }, { "label": "Ihaveeight", "value": "4140" }, { "label": "ihaveseven", "value": "4407" }, { "label": "ihavethere", "value": "2774" }, { "label": "Ijustwantt", "value": "1906" }, { "label": "Ilikedried", "value": "3495" }, { "label": "Iliveupsta", "value": "2010" }, { "label": "Illigitima", "value": "1714" }, { "label": "Ilo", "value": "1786" }, { "label": "Iloveboile", "value": "3508" }, { "label": "ilovegrape", "value": "6041" }, { "label": "ilovewatch", "value": "4774" }, { "label": "ilovewoo", "value": "2704" }, { "label": "immeasurab", "value": "4770" }, { "label": "Immortal", "value": "1077" }, { "label": "ImmortalBi", "value": "2658" }, { "label": "ImmortalEm", "value": "3428" }, { "label": "ImmortalMa", "value": "2781" }, { "label": "Immortals", "value": "235" }, { "label": "ImperialCa", "value": "5035" }, { "label": "imperialco", "value": "1473" }, { "label": "Imperialco", "value": "5706" }, { "label": "ImperialCu", "value": "6117" }, { "label": "Imperialex", "value": "3276" }, { "label": "ImperialFa", "value": "1088" }, { "label": "ImperialHa", "value": "238" }, { "label": "Imposter", "value": "5056" }, { "label": "inactionin", "value": "5393" }, { "label": "Incarnatio", "value": "5548" }, { "label": "Incest", "value": "179" }, { "label": "inchshadow", "value": "5115" }, { "label": "Inclassroo", "value": "4169" }, { "label": "Inclined", "value": "3970" }, { "label": "Incubus", "value": "1019" }, { "label": "Indecisive", "value": "568" }, { "label": "Indestruct", "value": "4271" }, { "label": "Indonesia", "value": "1687" }, { "label": "IndonesiaN", "value": "1686" }, { "label": "indulgemyd", "value": "4033" }, { "label": "industrial", "value": "3565" }, { "label": "Industrial", "value": "641" }, { "label": "Industry", "value": "1269" }, { "label": "industryel", "value": "5053" }, { "label": "Industryel", "value": "6131" }, { "label": "industryHo", "value": "2949" }, { "label": "Inexplicab", "value": "4206" }, { "label": "infatuatio", "value": "3158" }, { "label": "Inferiorit", "value": "431" }, { "label": "Infernalco", "value": "2067" }, { "label": "infinite", "value": "1368" }, { "label": "InfiniteBu", "value": "2190" }, { "label": "InfiniteFl", "value": "1292" }, { "label": "infinitega", "value": "5825" }, { "label": "Infiniteme", "value": "2027" }, { "label": "infinitesu", "value": "2531" }, { "label": "infrastrac", "value": "1374" }, { "label": "Infrastruc", "value": "1384" }, { "label": "Infrastruc", "value": "3431" }, { "label": "Ingeniousg", "value": "4687" }, { "label": "Inherenten", "value": "4699" }, { "label": "Inheritanc", "value": "426" }, { "label": "Ink", "value": "2804" }, { "label": "Ink-dyedIm", "value": "4586" }, { "label": "inkdirty", "value": "4583" }, { "label": "inlove", "value": "3206" }, { "label": "Inlovewith", "value": "3666" }, { "label": "InnerVoice", "value": "1638" }, { "label": "innocentmo", "value": "3949" }, { "label": "Inscriptio", "value": "744" }, { "label": "Insects", "value": "313" }, { "label": "Insectword", "value": "4856" }, { "label": "insitu", "value": "2816" }, { "label": "insomniaun", "value": "3869" }, { "label": "Inspiratio", "value": "3253" }, { "label": "instantnoo", "value": "5917" }, { "label": "Instantnoo", "value": "5996" }, { "label": "instantsta", "value": "4705" }, { "label": "Instructor", "value": "5447" }, { "label": "intenseflu", "value": "1029" }, { "label": "Intercept0", "value": "2801" }, { "label": "Intercept0", "value": "1988" }, { "label": "Interconne", "value": "1745" }, { "label": "Interdimen", "value": "27" }, { "label": "Interestel", "value": "927" }, { "label": "interpenet", "value": "5713" }, { "label": "interracia", "value": "6152" }, { "label": "Interracia", "value": "5684" }, { "label": "interstell", "value": "2967" }, { "label": "Interstell", "value": "903" }, { "label": "inthecloud", "value": "4286" }, { "label": "inthenameo", "value": "4969" }, { "label": "Introverte", "value": "680" }, { "label": "InukaiOmor", "value": "4937" }, { "label": "Inuyasha", "value": "1125" }, { "label": "Investigat", "value": "496" }, { "label": "Investigat", "value": "1169" }, { "label": "Invincible", "value": "3106" }, { "label": "Invincible", "value": "5449" }, { "label": "Invincible", "value": "5244" }, { "label": "Invincible", "value": "3680" }, { "label": "Invincible", "value": "3029" }, { "label": "Invincible", "value": "2964" }, { "label": "Invincible", "value": "2942" }, { "label": "Invincible", "value": "1956" }, { "label": "Invincible", "value": "1887" }, { "label": "Invincible", "value": "1875" }, { "label": "Invincible", "value": "1812" }, { "label": "InvolveNo.", "value": "5740" }, { "label": "IQOnline", "value": "3098" }, { "label": "Ireallydon", "value": "6037" }, { "label": "Ireallywan", "value": "5646" }, { "label": "Ireallywan", "value": "4761" }, { "label": "ironfistri", "value": "3719" }, { "label": "IronMaiden", "value": "2923" }, { "label": "ironpillar", "value": "2339" }, { "label": "IronThanos", "value": "2665" }, { "label": "iscoding", "value": "4211" }, { "label": "Isekai", "value": "850" }, { "label": "Isellflowe", "value": "4599" }, { "label": "IsitatLoli", "value": "5481" }, { "label": "isitnecess", "value": "2063" }, { "label": "IsItWrongt", "value": "1671" }, { "label": "Isuckbrown", "value": "2102" }, { "label": "IsumiLily", "value": "2490" }, { "label": "It’sAmoyo", "value": "5994" }, { "label": "It’syouwh", "value": "5903" }, { "label": "it&039s", "value": "5195" }, { "label": "It&039s", "value": "5894" }, { "label": "It&039s", "value": "4252" }, { "label": "It&039s", "value": "3932" }, { "label": "It&039s", "value": "2179" }, { "label": "Itbecameaf", "value": "5672" }, { "label": "Itissaidth", "value": "6042" }, { "label": "Itissaidth", "value": "5397" }, { "label": "Itsdaybrea", "value": "2113" }, { "label": "Itwillbead", "value": "4932" }, { "label": "Iunotbad", "value": "4834" }, { "label": "iwantmoney", "value": "2463" }, { "label": "IwantSiste", "value": "3950" }, { "label": "Iwanttobea", "value": "2866" }, { "label": "Iwanttobeo", "value": "2523" }, { "label": "iwanttoeat", "value": "2811" }, { "label": "iwanttogot", "value": "2636" }, { "label": "Iwanttogot", "value": "6076" }, { "label": "Iwanttohit", "value": "6055" }, { "label": "Iwanttolie", "value": "3474" }, { "label": "iwanttosee", "value": "5513" }, { "label": "Iwanttosee", "value": "4667" }, { "label": "Iwanttotak", "value": "4364" }, { "label": "Iwillbecom", "value": "5813" }, { "label": "Iwishyouat", "value": "2114" }, { "label": "Izanagi233", "value": "4152" }, { "label": "Jackdaw", "value": "5382" }, { "label": "JackieChan", "value": "2891" }, { "label": "JackofAllT", "value": "71" }, { "label": "jadeeveryy", "value": "2334" }, { "label": "Jaderabbit", "value": "3463" }, { "label": "JaneShu", "value": "3806" }, { "label": "JangSeok-g", "value": "1793" }, { "label": "januarygod", "value": "3953" }, { "label": "Japan", "value": "1342" }, { "label": "Japanese", "value": "843" }, { "label": "JapIdols", "value": "907" }, { "label": "JasperKnif", "value": "5564" }, { "label": "Jazz", "value": "2679" }, { "label": "Jealousy", "value": "258" }, { "label": "jediescape", "value": "5862" }, { "label": "jellyjelly", "value": "2872" }, { "label": "JianBao", "value": "3209" }, { "label": "JiangCheng", "value": "4785" }, { "label": "Jianghu", "value": "1258" }, { "label": "Jianghugri", "value": "5697" }, { "label": "Jiangshi", "value": "603" }, { "label": "JiangWu", "value": "4841" }, { "label": "JiangYu", "value": "5034" }, { "label": "Jianjiamix", "value": "2387" }, { "label": "Jiaqi", "value": "4173" }, { "label": "JinglongTa", "value": "2763" }, { "label": "JingShenTi", "value": "5879" }, { "label": "JinguNoFun", "value": "4570" }, { "label": "Jinwan1", "value": "3499" }, { "label": "JinYiwei", "value": "3400" }, { "label": "Jiulu丶", "value": "5846" }, { "label": "Jiutianyu", "value": "2170" }, { "label": "Jiuxiao", "value": "4166" }, { "label": "JiuYuan", "value": "3737" }, { "label": "JixingGaoz", "value": "4989" }, { "label": "JiYipao", "value": "6004" }, { "label": "JKing", "value": "4205" }, { "label": "JOAmbulanc", "value": "4065" }, { "label": "JoanHuang", "value": "5516" }, { "label": "John117", "value": "2641" }, { "label": "JoJo", "value": "2882" }, { "label": "JoJo&03", "value": "2883" }, { "label": "JojoBizarr", "value": "1126" }, { "label": "JOJOWE", "value": "1954" }, { "label": "Josei", "value": "886" }, { "label": "Journeytot", "value": "1326" }, { "label": "joydrummer", "value": "2013" }, { "label": "JujutsuKai", "value": "1127" }, { "label": "Juliet", "value": "1811" }, { "label": "July&03", "value": "5831" }, { "label": "JulyBrewma", "value": "4313" }, { "label": "JunCaiXing", "value": "2791" }, { "label": "Jundrunkdr", "value": "5770" }, { "label": "Jung", "value": "5608" }, { "label": "JuniorSist", "value": "2176" }, { "label": "JunRuoxu", "value": "4605" }, { "label": "JunRuyu", "value": "4422" }, { "label": "justapiece", "value": "3988" }, { "label": "justdrunk", "value": "5245" }, { "label": "justplay", "value": "4879" }, { "label": "justsaydon", "value": "4685" }, { "label": "justshout", "value": "2795" }, { "label": "jzkyushu", "value": "5808" }, { "label": "K-popIdols", "value": "1102" }, { "label": "Kafkajumpi", "value": "2035" }, { "label": "Kahn", "value": "5387" }, { "label": "Kailandros", "value": "3886" }, { "label": "KakamieCro", "value": "4666" }, { "label": "Kakashi", "value": "846" }, { "label": "KakashiTen", "value": "4023" }, { "label": "KanohiroSa", "value": "4261" }, { "label": "Karma", "value": "999" }, { "label": "Karmadance", "value": "4604" }, { "label": "Katena", "value": "5012" }, { "label": "Kaying", "value": "4258" }, { "label": "Kazamahyac", "value": "3538" }, { "label": "keel", "value": "4195" }, { "label": "keepitsimp", "value": "4254" }, { "label": "Kendo", "value": "1001" }, { "label": "KennelSaku", "value": "5558" }, { "label": "KensenShin", "value": "4795" }, { "label": "keyboardki", "value": "3785" }, { "label": "keykey", "value": "3958" }, { "label": "keytocome", "value": "2458" }, { "label": "Kidnapping", "value": "509" }, { "label": "KiharaKaqu", "value": "5587" }, { "label": "killdecisi", "value": "3126" }, { "label": "Killer", "value": "3608" }, { "label": "killerwhal", "value": "6086" }, { "label": "killpigeon", "value": "5761" }, { "label": "Killthewor", "value": "2196" }, { "label": "Kim&039", "value": "3879" }, { "label": "KimuraShit", "value": "6067" }, { "label": "Kindergart", "value": "1754" }, { "label": "Kindergart", "value": "3726" }, { "label": "KindLoveIn", "value": "131" }, { "label": "Kindness", "value": "3405" }, { "label": "KindomBuil", "value": "1462" }, { "label": "KindProtag", "value": "1464" }, { "label": "King", "value": "1901" }, { "label": "KingAsura", "value": "2391" }, { "label": "Kingdom", "value": "1629" }, { "label": "Kingdom-bu", "value": "871" }, { "label": "KingdomBui", "value": "340" }, { "label": "Kingdoms", "value": "181" }, { "label": "KingdomsKn", "value": "533" }, { "label": "KingKonggo", "value": "2629" }, { "label": "KingLingyu", "value": "3528" }, { "label": "kingofdeat", "value": "2592" }, { "label": "KingofDest", "value": "1823" }, { "label": "kingoffoot", "value": "5111" }, { "label": "KingofMons", "value": "2437" }, { "label": "KingofSold", "value": "3268" }, { "label": "kingpirate", "value": "2185" }, { "label": "Kiritani", "value": "2518" }, { "label": "kittenrun", "value": "5223" }, { "label": "Kneelingan", "value": "2796" }, { "label": "Kneelingth", "value": "2305" }, { "label": "KnifePromi", "value": "2001" }, { "label": "Knight", "value": "900" }, { "label": "knightcomm", "value": "4231" }, { "label": "knightflow", "value": "5707" }, { "label": "knightinar", "value": "5580" }, { "label": "knightmeow", "value": "4497" }, { "label": "Knights", "value": "208" }, { "label": "KnightsLev", "value": "613" }, { "label": "knightupgr", "value": "3621" }, { "label": "Knockingca", "value": "5566" }, { "label": "knowfate", "value": "4461" }, { "label": "KnowKingAl", "value": "3815" }, { "label": "Knowtheric", "value": "2478" }, { "label": "Koi", "value": "1578" }, { "label": "KoiKing", "value": "3757" }, { "label": "Kojin", "value": "2216" }, { "label": "Konohasalt", "value": "4058" }, { "label": "KonohaVoll", "value": "2532" }, { "label": "Korean", "value": "1674" }, { "label": "KoreanNove", "value": "1310" }, { "label": "KotomineSa", "value": "5531" }, { "label": "KpopIdols", "value": "908" }, { "label": "Kuchikiwha", "value": "5538" }, { "label": "KunHao", "value": "5149" }, { "label": "KurongTemp", "value": "2008" }, { "label": "Kutiaoren", "value": "4170" }, { "label": "Kuudere", "value": "708" }, { "label": "KwunTong", "value": "2043" }, { "label": "KyokoKurot", "value": "3807" }, { "label": "Kyokowassi", "value": "5812" }, { "label": "laborhonor", "value": "2527" }, { "label": "lackofboat", "value": "2262" }, { "label": "LackofComm", "value": "160" }, { "label": "LacquerNig", "value": "2099" }, { "label": "lady", "value": "3403" }, { "label": "LaidBack", "value": "3821" }, { "label": "LaiXiaomin", "value": "3482" }, { "label": "LambSoupwi", "value": "5839" }, { "label": "LameHaoisa", "value": "2310" }, { "label": "LanguageBa", "value": "133" }, { "label": "langyalist", "value": "2441" }, { "label": "LangyaPavi", "value": "4992" }, { "label": "LaoLaoXu", "value": "2076" }, { "label": "LaoWang", "value": "3976" }, { "label": "Lappy", "value": "4715" }, { "label": "LargeBoard", "value": "4717" }, { "label": "lasercatbo", "value": "5137" }, { "label": "lastnight", "value": "4072" }, { "label": "lastwear", "value": "3595" }, { "label": "latenightf", "value": "5664" }, { "label": "LateRomanc", "value": "249" }, { "label": "laughandcr", "value": "5780" }, { "label": "laughingor", "value": "3954" }, { "label": "laurel", "value": "2201" }, { "label": "LawofNineG", "value": "5403" }, { "label": "lawyer", "value": "3458" }, { "label": "Lawyers", "value": "548" }, { "label": "layoutflow", "value": "3192" }, { "label": "layoutflow", "value": "2982" }, { "label": "lazy", "value": "3555" }, { "label": "lazyandcru", "value": "4399" }, { "label": "lazyangel", "value": "4469" }, { "label": "lazycaramb", "value": "4062" }, { "label": "lazycatsch", "value": "4720" }, { "label": "LazycatZ", "value": "5958" }, { "label": "lazydevil", "value": "2120" }, { "label": "Lazyintoab", "value": "3525" }, { "label": "LazyProtag", "value": "441" }, { "label": "LazyYang", "value": "4016" }, { "label": "Leadership", "value": "375" }, { "label": "leadthemai", "value": "3357" }, { "label": "leadwall", "value": "3801" }, { "label": "LeafofTian", "value": "4590" }, { "label": "LeagueofLe", "value": "849" }, { "label": "leaningont", "value": "3542" }, { "label": "Leaningont", "value": "5507" }, { "label": "Leaningont", "value": "4312" }, { "label": "Leapeveryd", "value": "2347" }, { "label": "Leaves", "value": "5409" }, { "label": "leavesfall", "value": "5467" }, { "label": "Leavingaga", "value": "5725" }, { "label": "Leavingthe", "value": "4282" }, { "label": "leftandrig", "value": "3746" }, { "label": "Leftgirl", "value": "3612" }, { "label": "leftpigeon", "value": "5457" }, { "label": "Legend", "value": "701" }, { "label": "Legends", "value": "607" }, { "label": "leggod", "value": "4190" }, { "label": "LeiHuofeng", "value": "3670" }, { "label": "LeiJiedoes", "value": "1933" }, { "label": "Leisurelys", "value": "2426" }, { "label": "LeiXunqing", "value": "3372" }, { "label": "LeJiangli", "value": "4331" }, { "label": "Lemonade", "value": "5881" }, { "label": "lemonandsi", "value": "2285" }, { "label": "lemoneatar", "value": "4178" }, { "label": "Lemonfruit", "value": "3870" }, { "label": "lemonlemon", "value": "3875" }, { "label": "lendmefive", "value": "2837" }, { "label": "LengquanAt", "value": "4549" }, { "label": "leonine", "value": "1035" }, { "label": "lessmeatmo", "value": "3918" }, { "label": "lesstime", "value": "1842" }, { "label": "Let&039", "value": "5845" }, { "label": "Let&039", "value": "4898" }, { "label": "Letmetelly", "value": "3692" }, { "label": "Levatin", "value": "4243" }, { "label": "LevelSyste", "value": "201" }, { "label": "levelthree", "value": "4156" }, { "label": "Levelup", "value": "5055" }, { "label": "LeYang", "value": "3883" }, { "label": "lgbt", "value": "1429" }, { "label": "LGBTQA", "value": "994" }, { "label": "LiangFeifa", "value": "3888" }, { "label": "Lianhai&am", "value": "4794" }, { "label": "LianHongyu", "value": "4767" }, { "label": "LianshanGu", "value": "4323" }, { "label": "LiaoZhai", "value": "3445" }, { "label": "Liar", "value": "1165" }, { "label": "LiBaiisnot", "value": "4779" }, { "label": "Library", "value": "773" }, { "label": "Liedown", "value": "5547" }, { "label": "lifealive2", "value": "5301" }, { "label": "lifeanddea", "value": "3568" }, { "label": "lifeextrac", "value": "5023" }, { "label": "Lifeisthre", "value": "4975" }, { "label": "Lifelongfa", "value": "6094" }, { "label": "LifeScript", "value": "1721" }, { "label": "lifestillh", "value": "3509" }, { "label": "Lifestyle", "value": "5678" }, { "label": "lightandsh", "value": "3526" }, { "label": "lightfluff", "value": "4503" }, { "label": "Lightnings", "value": "2163" }, { "label": "lightnovel", "value": "1405" }, { "label": "LightNovel", "value": "1680" }, { "label": "lightofday", "value": "3492" }, { "label": "lightsaber", "value": "3682" }, { "label": "lightsail", "value": "4299" }, { "label": "LiJunhao", "value": "2756" }, { "label": "LikeaDrago", "value": "1907" }, { "label": "LikeaDrago", "value": "1902" }, { "label": "LikeMeiAox", "value": "2582" }, { "label": "lilac", "value": "4307" }, { "label": "Lillie", "value": "2642" }, { "label": "Lily&03", "value": "5440" }, { "label": "LilyNo.XNU", "value": "5150" }, { "label": "LiMengxi", "value": "6106" }, { "label": "LimitedLif", "value": "470" }, { "label": "LimitlessF", "value": "794" }, { "label": "LiMumu", "value": "2280" }, { "label": "LinBei", "value": "2730" }, { "label": "lindenone", "value": "5528" }, { "label": "Lindentree", "value": "2745" }, { "label": "LingbiWhit", "value": "3518" }, { "label": "Lingen", "value": "3332" }, { "label": "LingHanyi", "value": "4384" }, { "label": "LingLingSa", "value": "5291" }, { "label": "LingLuoBai", "value": "4663" }, { "label": "LingofGemi", "value": "5785" }, { "label": "Lingran", "value": "2089" }, { "label": "LingshanIs", "value": "2654" }, { "label": "LingwuLuqi", "value": "5042" }, { "label": "Lingxiwhow", "value": "4021" }, { "label": "LingyueRed", "value": "3882" }, { "label": "LinQinghua", "value": "4189" }, { "label": "LinSake", "value": "5460" }, { "label": "LinSanjiu", "value": "3900" }, { "label": "LinShendu", "value": "6103" }, { "label": "LinXiufigh", "value": "2668" }, { "label": "LinYiliu", "value": "5970" }, { "label": "LinYouyu", "value": "5757" }, { "label": "LinZhengyi", "value": "2572" }, { "label": "lionazaaza", "value": "5968" }, { "label": "LiShaoming", "value": "4309" }, { "label": "ListAdvent", "value": "3842" }, { "label": "ListCreati", "value": "1335" }, { "label": "listentoth", "value": "5836" }, { "label": "listentoth", "value": "4141" }, { "label": "listentoth", "value": "3524" }, { "label": "listentoth", "value": "2717" }, { "label": "Listentoth", "value": "5956" }, { "label": "Listentoth", "value": "4032" }, { "label": "Literaryes", "value": "5692" }, { "label": "literature", "value": "1416" }, { "label": "Literature", "value": "3695" }, { "label": "LitRPG", "value": "983" }, { "label": "littleahxi", "value": "2197" }, { "label": "littleassa", "value": "5746" }, { "label": "Littleblue", "value": "5390" }, { "label": "littlebow", "value": "4542" }, { "label": "littlebrot", "value": "2291" }, { "label": "littleches", "value": "4474" }, { "label": "littleclou", "value": "3920" }, { "label": "littlecray", "value": "2823" }, { "label": "littledemo", "value": "2130" }, { "label": "Littledemo", "value": "4797" }, { "label": "littledete", "value": "2803" }, { "label": "littledevi", "value": "2357" }, { "label": "littledoct", "value": "3984" }, { "label": "LittleDoud", "value": "5644" }, { "label": "LittleFeng", "value": "5237" }, { "label": "littlefing", "value": "2388" }, { "label": "littleflow", "value": "5461" }, { "label": "littlefox", "value": "2152" }, { "label": "littlefoxi", "value": "4645" }, { "label": "Littlefurb", "value": "5670" }, { "label": "littlehson", "value": "2002" }, { "label": "LittleJack", "value": "4083" }, { "label": "littlelitt", "value": "6080" }, { "label": "littlemiss", "value": "4588" }, { "label": "LittleMo", "value": "5109" }, { "label": "littlemoon", "value": "2041" }, { "label": "Littlepros", "value": "4044" }, { "label": "LittleRedR", "value": "5024" }, { "label": "LittleRoma", "value": "990" }, { "label": "Littlesold", "value": "3263" }, { "label": "LittleSpri", "value": "4175" }, { "label": "littlesuns", "value": "2320" }, { "label": "LittleTeem", "value": "5242" }, { "label": "LittleThro", "value": "4239" }, { "label": "littlewate", "value": "2848" }, { "label": "littlewhit", "value": "4638" }, { "label": "littlewhit", "value": "4531" }, { "label": "LittleWhit", "value": "3596" }, { "label": "littlewind", "value": "2558" }, { "label": "Littlewood", "value": "6096" }, { "label": "littleworl", "value": "4069" }, { "label": "LittleZhug", "value": "3939" }, { "label": "littlezlov", "value": "2031" }, { "label": "Liuhuaacri", "value": "5496" }, { "label": "LiuXiaozu", "value": "5613" }, { "label": "LiuYujun", "value": "2418" }, { "label": "LiuYuxuemo", "value": "5749" }, { "label": "LiuZiqing", "value": "3936" }, { "label": "Livebroadc", "value": "919" }, { "label": "LiveBroadc", "value": "941" }, { "label": "LiveGemini", "value": "4191" }, { "label": "LiverPigeo", "value": "2033" }, { "label": "LiveStream", "value": "1604" }, { "label": "LiveStream", "value": "883" }, { "label": "Livetext", "value": "3136" }, { "label": "LivingAlon", "value": "474" }, { "label": "LiWudi", "value": "1877" }, { "label": "LiXiaojian", "value": "5431" }, { "label": "LiYouqiong", "value": "5100" }, { "label": "LiyuePlann", "value": "4998" }, { "label": "LiYuer", "value": "5786" }, { "label": "LiZhitaoJu", "value": "4111" }, { "label": "LoadingApp", "value": "4056" }, { "label": "Lol", "value": "3139" }, { "label": "Loli", "value": "576" }, { "label": "Lolicon", "value": "425" }, { "label": "LoliProtag", "value": "1518" }, { "label": "LoneCloudP", "value": "2242" }, { "label": "Lonely", "value": "5856" }, { "label": "lonelyboy", "value": "2855" }, { "label": "LonelyChen", "value": "3532" }, { "label": "LonelyCity", "value": "2007" }, { "label": "Lonelynota", "value": "1990" }, { "label": "lonelyreco", "value": "4505" }, { "label": "lonelyseas", "value": "5849" }, { "label": "lonelyshoo", "value": "4798" }, { "label": "LonerProta", "value": "585" }, { "label": "lonewolfl", "value": "5471" }, { "label": "Long", "value": "3632" }, { "label": "Long-dista", "value": "273" }, { "label": "Longanloli", "value": "4708" }, { "label": "Longcenter", "value": "4475" }, { "label": "Longevity", "value": "3299" }, { "label": "longlivedm", "value": "2877" }, { "label": "longlivemy", "value": "2456" }, { "label": "Longlivesa", "value": "2556" }, { "label": "longliveth", "value": "5733" }, { "label": "Longliveth", "value": "2655" }, { "label": "Longliveth", "value": "2439" }, { "label": "LongMengme", "value": "2287" }, { "label": "Longmensin", "value": "4423" }, { "label": "longnightl", "value": "4380" }, { "label": "Longpigeon", "value": "4688" }, { "label": "Longpigeon", "value": "2390" }, { "label": "LongquanNo", "value": "3863" }, { "label": "LongSepara", "value": "412" }, { "label": "LongShao12", "value": "5655" }, { "label": "longsongan", "value": "4275" }, { "label": "LongStrip", "value": "3843" }, { "label": "Longtimeco", "value": "5399" }, { "label": "LongYu", "value": "5000" }, { "label": "Lookatthep", "value": "4464" }, { "label": "Lookingbac", "value": "6020" }, { "label": "lookingout", "value": "4615" }, { "label": "Lookthroug", "value": "4649" }, { "label": "lootflow", "value": "3333" }, { "label": "LordAbilit", "value": "1724" }, { "label": "LordCrimso", "value": "5641" }, { "label": "Lorddevelo", "value": "3819" }, { "label": "Lordfarmin", "value": "3410" }, { "label": "LordGod", "value": "3705" }, { "label": "LordGodSpa", "value": "1588" }, { "label": "LordGrim", "value": "3722" }, { "label": "LordofDark", "value": "3868" }, { "label": "LordoftheM", "value": "895" }, { "label": "LordoftheS", "value": "4618" }, { "label": "LordoftheS", "value": "1976" }, { "label": "LordofWar1", "value": "4207" }, { "label": "LordTiansh", "value": "2614" }, { "label": "LordZhangj", "value": "2332" }, { "label": "LosAngeles", "value": "4576" }, { "label": "Loseafewpo", "value": "1925" }, { "label": "losemoney", "value": "5166" }, { "label": "loser", "value": "5691" }, { "label": "Lostbeliev", "value": "4858" }, { "label": "lostblack", "value": "5260" }, { "label": "LostCivili", "value": "330" }, { "label": "Lostfarewe", "value": "5208" }, { "label": "Lottery", "value": "573" }, { "label": "LotterySys", "value": "817" }, { "label": "Love", "value": "1498" }, { "label": "LoveandMar", "value": "1385" }, { "label": "loveapplep", "value": "4665" }, { "label": "loveatfirs", "value": "3087" }, { "label": "LoveatFirs", "value": "168" }, { "label": "lovebefore", "value": "3217" }, { "label": "lovebefore", "value": "5332" }, { "label": "lovebefore", "value": "3024" }, { "label": "Lovecomedy", "value": "4510" }, { "label": "LoveContra", "value": "1576" }, { "label": "Loveeachot", "value": "3127" }, { "label": "LoveIntere", "value": "1660" }, { "label": "LoveIntere", "value": "1624" }, { "label": "LoveIntere", "value": "19" }, { "label": "LoveintheR", "value": "6140" }, { "label": "loveletter", "value": "4462" }, { "label": "lovemints", "value": "4413" }, { "label": "LoveRivals", "value": "610" }, { "label": "LoversReun", "value": "502" }, { "label": "Lovesnacks", "value": "2183" }, { "label": "lovespicyf", "value": "4643" }, { "label": "lovetease", "value": "2785" }, { "label": "lovetoeatr", "value": "4870" }, { "label": "Lovetosuck", "value": "5991" }, { "label": "LoveTriang", "value": "485" }, { "label": "LoveVegeta", "value": "5600" }, { "label": "lovingfami", "value": "1397" }, { "label": "Low-keylux", "value": "2818" }, { "label": "Low-keyPro", "value": "328" }, { "label": "LowFantasy", "value": "1649" }, { "label": "lowintelli", "value": "3703" }, { "label": "LowKeyMc", "value": "1090" }, { "label": "LowkeyProt", "value": "1182" }, { "label": "loyaldog", "value": "3305" }, { "label": "LoyalProta", "value": "1289" }, { "label": "LoyalSubor", "value": "507" }, { "label": "LoyalSurbo", "value": "1599" }, { "label": "lspstoryte", "value": "5180" }, { "label": "lsuyangl", "value": "5285" }, { "label": "lu11034363", "value": "2734" }, { "label": "Luck", "value": "1579" }, { "label": "LuckPlunde", "value": "1720" }, { "label": "luckybag", "value": "3240" }, { "label": "LuckyE&", "value": "4071" }, { "label": "LuckyProta", "value": "368" }, { "label": "Luckytolau", "value": "3650" }, { "label": "LuDehua", "value": "2125" }, { "label": "LujingVill", "value": "4209" }, { "label": "lumpofjade", "value": "3468" }, { "label": "Lungdefici", "value": "4713" }, { "label": "LuoAichen", "value": "4633" }, { "label": "LuoFeige", "value": "5473" }, { "label": "LuoJiangsh", "value": "4791" }, { "label": "LuoLiisnot", "value": "6052" }, { "label": "LuoMuziyi", "value": "4302" }, { "label": "Luoran123", "value": "5990" }, { "label": "LuoShichao", "value": "5493" }, { "label": "LuoShu", "value": "3887" }, { "label": "LuoTianyi", "value": "1865" }, { "label": "LuoTianyic", "value": "3788" }, { "label": "LuoWei", "value": "1994" }, { "label": "LuoXiaoqia", "value": "5232" }, { "label": "LuoXIV", "value": "2530" }, { "label": "LuoYuqianq", "value": "2752" }, { "label": "LutherHark", "value": "4322" }, { "label": "Luxury", "value": "909" }, { "label": "luxurypenm", "value": "4378" }, { "label": "LY", "value": "2474" }, { "label": "machine", "value": "4351" }, { "label": "MadBoyTang", "value": "6088" }, { "label": "madman", "value": "4390" }, { "label": "madmanandf", "value": "4114" }, { "label": "Mag", "value": "5084" }, { "label": "Mage", "value": "1013" }, { "label": "Maggie", "value": "4955" }, { "label": "Magic", "value": "182" }, { "label": "MagicAcade", "value": "988" }, { "label": "MagicalAbi", "value": "1453" }, { "label": "MagicalBat", "value": "1587" }, { "label": "magicalcre", "value": "3444" }, { "label": "magicalgir", "value": "1744" }, { "label": "MagicalSpa", "value": "73" }, { "label": "MagicalTec", "value": "608" }, { "label": "MagicBeast", "value": "314" }, { "label": "MagicDrago", "value": "5817" }, { "label": "MagicForma", "value": "72" }, { "label": "magician", "value": "3700" }, { "label": "MagicOne", "value": "2595" }, { "label": "magicpet", "value": "5626" }, { "label": "MagicTides", "value": "2393" }, { "label": "magicwhip", "value": "4930" }, { "label": "MagicWorld", "value": "1114" }, { "label": "Maid", "value": "1560" }, { "label": "Maids", "value": "649" }, { "label": "MaifengXia", "value": "5962" }, { "label": "Makeafortu", "value": "2638" }, { "label": "makeamirac", "value": "2248" }, { "label": "Makecompla", "value": "3242" }, { "label": "makefine", "value": "3179" }, { "label": "makemehapp", "value": "4431" }, { "label": "Makemoney", "value": "3099" }, { "label": "MakemoneyC", "value": "2945" }, { "label": "MakemoneyI", "value": "3082" }, { "label": "MakemoneyM", "value": "2998" }, { "label": "MakemoneyM", "value": "2937" }, { "label": "MakemoneyR", "value": "3053" }, { "label": "MakemoneyR", "value": "2977" }, { "label": "MakemoneyR", "value": "2950" }, { "label": "Makemoneys", "value": "3018" }, { "label": "makepigeon", "value": "4612" }, { "label": "Makeupforf", "value": "4812" }, { "label": "Malaysian", "value": "1685" }, { "label": "MalaysianN", "value": "1684" }, { "label": "Male-Lead", "value": "1350" }, { "label": "Male-Prota", "value": "1378" }, { "label": "Malegod", "value": "3118" }, { "label": "MaleLead", "value": "716" }, { "label": "MaleMain-l", "value": "1208" }, { "label": "Malemainch", "value": "2878" }, { "label": "malematch", "value": "3628" }, { "label": "MaleMc", "value": "1091" }, { "label": "Maleprotag", "value": "1287" }, { "label": "MaleProtag", "value": "12" }, { "label": "MaleProtag", "value": "2900" }, { "label": "MaleProtag", "value": "965" }, { "label": "MaleProtag", "value": "1261" }, { "label": "MaleProtag", "value": "1079" }, { "label": "MaletoFema", "value": "480" }, { "label": "MaleYander", "value": "28" }, { "label": "maliciousw", "value": "5915" }, { "label": "mambafight", "value": "2718" }, { "label": "man", "value": "2194" }, { "label": "man-eating", "value": "4442" }, { "label": "Manage", "value": "3091" }, { "label": "Management", "value": "642" }, { "label": "Manchengma", "value": "4620" }, { "label": "mandaloria", "value": "1434" }, { "label": "Mangaka", "value": "809" }, { "label": "MangoKK", "value": "2435" }, { "label": "manhasbeco", "value": "5759" }, { "label": "Manhua", "value": "3844" }, { "label": "maninknigh", "value": "4954" }, { "label": "maninnarut", "value": "2486" }, { "label": "maninorang", "value": "5410" }, { "label": "Manipulati", "value": "1480" }, { "label": "Manipulati", "value": "597" }, { "label": "ManlyGayCo", "value": "96" }, { "label": "Manvs.Wild", "value": "3194" }, { "label": "manwithkid", "value": "4947" }, { "label": "manyfemale", "value": "2957" }, { "label": "MaodongChe", "value": "5542" }, { "label": "MaoLinwhol", "value": "5194" }, { "label": "Maonanbei!", "value": "5233" }, { "label": "maple", "value": "5818" }, { "label": "maplebirch", "value": "4315" }, { "label": "maplefores", "value": "3799" }, { "label": "mapleleafb", "value": "2854" }, { "label": "marchisado", "value": "5227" }, { "label": "Marioeatsc", "value": "3478" }, { "label": "Marlene&am", "value": "4731" }, { "label": "MarquisofB", "value": "1953" }, { "label": "Marriage", "value": "85" }, { "label": "MarriageCo", "value": "1543" }, { "label": "Marriageof", "value": "489" }, { "label": "Married", "value": "1235" }, { "label": "MarriedCou", "value": "1751" }, { "label": "marry", "value": "3386" }, { "label": "marrybycha", "value": "3218" }, { "label": "martialart", "value": "3055" }, { "label": "Martialart", "value": "130" }, { "label": "Martialart", "value": "5710" }, { "label": "MartialArt", "value": "1471" }, { "label": "MartialSpi", "value": "394" }, { "label": "MartialSpi", "value": "1364" }, { "label": "Marvel", "value": "537" }, { "label": "MarvelKing", "value": "2135" }, { "label": "MarvelPudd", "value": "2540" }, { "label": "MarvelUniv", "value": "553" }, { "label": "MarvelWang", "value": "5875" }, { "label": "marvelworl", "value": "1779" }, { "label": "Marysue", "value": "5077" }, { "label": "Masashi", "value": "3627" }, { "label": "MaskedAce", "value": "1864" }, { "label": "MaskedArmo", "value": "2860" }, { "label": "MaskedPich", "value": "4538" }, { "label": "Masochisti", "value": "45" }, { "label": "Masquerade", "value": "2253" }, { "label": "Mass-produ", "value": "3516" }, { "label": "Massacre", "value": "1634" }, { "label": "Massive", "value": "1073" }, { "label": "MassiveHar", "value": "891" }, { "label": "Master-App", "value": "1228" }, { "label": "Master-Dis", "value": "304" }, { "label": "Master-Ser", "value": "361" }, { "label": "Masterball", "value": "2277" }, { "label": "Masterflow", "value": "3307" }, { "label": "MasterGree", "value": "5213" }, { "label": "Masterishe", "value": "3512" }, { "label": "Masterofea", "value": "4103" }, { "label": "MasterofSa", "value": "5261" }, { "label": "MasterofSi", "value": "2806" }, { "label": "MasterPeng", "value": "4835" }, { "label": "MasterTian", "value": "6124" }, { "label": "MasterZhiq", "value": "6018" }, { "label": "Masturbati", "value": "733" }, { "label": "Matchmadei", "value": "1736" }, { "label": "math", "value": "1781" }, { "label": "Matriarchy", "value": "686" }, { "label": "MatthewisG", "value": "5188" }, { "label": "Mature", "value": "977" }, { "label": "MatureProt", "value": "97" }, { "label": "MCStrongFr", "value": "1509" }, { "label": "meatsauce", "value": "6015" }, { "label": "Mech", "value": "3289" }, { "label": "Mecha", "value": "804" }, { "label": "Mechanical", "value": "4214" }, { "label": "MechGod", "value": "3738" }, { "label": "Medical", "value": "4013" }, { "label": "medicalfem", "value": "5050" }, { "label": "MedicalKno", "value": "299" }, { "label": "MedicalKno", "value": "1110" }, { "label": "Medicine", "value": "795" }, { "label": "medicineme", "value": "2688" }, { "label": "medicinest", "value": "5484" }, { "label": "Medieval", "value": "429" }, { "label": "meetingdee", "value": "4060" }, { "label": "meetthebea", "value": "2151" }, { "label": "Melancholy", "value": "5620" }, { "label": "MemoryLoss", "value": "1519" }, { "label": "MemoryReve", "value": "1740" }, { "label": "MengBao", "value": "3176" }, { "label": "MengBaowea", "value": "2999" }, { "label": "MengLiangq", "value": "3917" }, { "label": "MengmeiBin", "value": "4463" }, { "label": "MengXiaohu", "value": "4010" }, { "label": "Mengxinsma", "value": "5248" }, { "label": "MengYuxin", "value": "5506" }, { "label": "Mensao", "value": "3322" }, { "label": "MentalIlln", "value": "1815" }, { "label": "Mentor", "value": "3191" }, { "label": "Meowalook", "value": "4259" }, { "label": "meowhokage", "value": "6097" }, { "label": "meowhum", "value": "4670" }, { "label": "Meowingbig", "value": "2087" }, { "label": "meowmeow", "value": "2080" }, { "label": "meowmeowsl", "value": "4647" }, { "label": "Mercenarie", "value": "167" }, { "label": "Mercenary", "value": "797" }, { "label": "Merchant", "value": "2886" }, { "label": "Merchants", "value": "527" }, { "label": "mermaid", "value": "2876" }, { "label": "metaphysic", "value": "3234" }, { "label": "metaphysic", "value": "3065" }, { "label": "Metauniver", "value": "3639" }, { "label": "Meteorstre", "value": "4009" }, { "label": "metropolis", "value": "5121" }, { "label": "Middleage", "value": "1447" }, { "label": "middleaged", "value": "5128" }, { "label": "MiddleAges", "value": "5098" }, { "label": "midnight", "value": "4377" }, { "label": "midnightbl", "value": "5030" }, { "label": "midnightli", "value": "4740" }, { "label": "midnightma", "value": "4280" }, { "label": "midnightsu", "value": "4848" }, { "label": "MidoriSaku", "value": "5254" }, { "label": "Miha", "value": "6114" }, { "label": "MikaMio", "value": "6098" }, { "label": "Milf", "value": "5089" }, { "label": "Military", "value": "86" }, { "label": "militaryfa", "value": "3402" }, { "label": "Militaryin", "value": "3401" }, { "label": "Milkgather", "value": "2831" }, { "label": "milkgrandm", "value": "2278" }, { "label": "Milkteapot", "value": "5932" }, { "label": "Millennium", "value": "5667" }, { "label": "Millennium", "value": "3581" }, { "label": "Millionair", "value": "1459" }, { "label": "milliondig", "value": "5228" }, { "label": "millionord", "value": "2370" }, { "label": "Miluo", "value": "2267" }, { "label": "Mimicry", "value": "1711" }, { "label": "MindBreak", "value": "621" }, { "label": "MindContro", "value": "389" }, { "label": "MindReader", "value": "1484" }, { "label": "mindreadin", "value": "2873" }, { "label": "MingDynast", "value": "3089" }, { "label": "MingDynast", "value": "3076" }, { "label": "MingDynast", "value": "2962" }, { "label": "MingDynast", "value": "2934" }, { "label": "Mingjiao", "value": "1945" }, { "label": "MingjiaoTi", "value": "2026" }, { "label": "MingXi", "value": "4822" }, { "label": "Ministryof", "value": "1609" }, { "label": "Misaki", "value": "4865" }, { "label": "miser", "value": "3140" }, { "label": "Miska10010", "value": "4694" }, { "label": "Mismatched", "value": "1343" }, { "label": "Mista", "value": "5025" }, { "label": "Mistresspl", "value": "2157" }, { "label": "MistyFlyin", "value": "2189" }, { "label": "Misunderst", "value": "1445" }, { "label": "Misunderst", "value": "113" }, { "label": "Misunderst", "value": "1565" }, { "label": "Misunderst", "value": "1072" }, { "label": "mixedintwo", "value": "2601" }, { "label": "MizukiSpir", "value": "4823" }, { "label": "MMORPG", "value": "202" }, { "label": "Mob", "value": "1584" }, { "label": "MobileGame", "value": "3717" }, { "label": "MobProtago", "value": "443" }, { "label": "Models", "value": "657" }, { "label": "ModerDays", "value": "1370" }, { "label": "Modern", "value": "601" }, { "label": "moderncomp", "value": "3319" }, { "label": "ModernDay", "value": "3" }, { "label": "ModernDays", "value": "754" }, { "label": "ModernFant", "value": "1027" }, { "label": "ModernKnow", "value": "307" }, { "label": "ModernKnow", "value": "825" }, { "label": "ModernLife", "value": "2908" }, { "label": "modernlove", "value": "1780" }, { "label": "modernmagi", "value": "5118" }, { "label": "modernmyst", "value": "3413" }, { "label": "ModernRoma", "value": "959" }, { "label": "ModernWorl", "value": "386" }, { "label": "Moedye", "value": "2790" }, { "label": "MoeHan", "value": "5597" }, { "label": "MoeShinkaw", "value": "2930" }, { "label": "Mofamily", "value": "2625" }, { "label": "MoFenghou", "value": "6014" }, { "label": "Moisturizi", "value": "5176" }, { "label": "MojiaAeros", "value": "2396" }, { "label": "MojiaHills", "value": "2355" }, { "label": "moltingsna", "value": "4736" }, { "label": "Momiji", "value": "3849" }, { "label": "MoneyGrubb", "value": "82" }, { "label": "MoneyGrumb", "value": "1199" }, { "label": "Monk", "value": "3633" }, { "label": "MonkeyKing", "value": "3759" }, { "label": "Monogamy", "value": "1197" }, { "label": "Monster", "value": "1136" }, { "label": "MonsterGir", "value": "569" }, { "label": "monsteridl", "value": "5727" }, { "label": "Monsters", "value": "230" }, { "label": "MonsterSoc", "value": "1151" }, { "label": "MonsterTam", "value": "74" }, { "label": "MonsterTar", "value": "1689" }, { "label": "monthand", "value": "5240" }, { "label": "moonandsta", "value": "4581" }, { "label": "moonbug", "value": "1931" }, { "label": "mooncrow", "value": "4763" }, { "label": "MoonlightS", "value": "2661" }, { "label": "moonlightw", "value": "5598" }, { "label": "Moonlikeah", "value": "2467" }, { "label": "moonnight", "value": "5508" }, { "label": "Moonsea", "value": "1923" }, { "label": "moonsetsea", "value": "4321" }, { "label": "moonshadow", "value": "4980" }, { "label": "moonshadow", "value": "4619" }, { "label": "moonshower", "value": "5408" }, { "label": "Moonstay", "value": "6030" }, { "label": "moontea", "value": "3793" }, { "label": "Moonwing", "value": "1789" }, { "label": "MoQingyi", "value": "4449" }, { "label": "Morallessp", "value": "1738" }, { "label": "MorallyAmb", "value": "1494" }, { "label": "moreandmor", "value": "2226" }, { "label": "moreastron", "value": "3804" }, { "label": "Morningclo", "value": "6001" }, { "label": "morninglig", "value": "5135" }, { "label": "morningred", "value": "4946" }, { "label": "mortalflow", "value": "3150" }, { "label": "MoshangHua", "value": "4655" }, { "label": "Mother-in-", "value": "3169" }, { "label": "Mother-in-", "value": "2990" }, { "label": "Motherland", "value": "3010" }, { "label": "Mountainan", "value": "4780" }, { "label": "mountainsa", "value": "5136" }, { "label": "Mountainsa", "value": "2154" }, { "label": "Mountainsa", "value": "1857" }, { "label": "MountainSe", "value": "4077" }, { "label": "mouthgun", "value": "3167" }, { "label": "movies", "value": "1413" }, { "label": "Movies", "value": "292" }, { "label": "movingbean", "value": "2127" }, { "label": "MoXianyu", "value": "3660" }, { "label": "MoXueqing", "value": "2030" }, { "label": "Moyangison", "value": "2570" }, { "label": "Mozun", "value": "3351" }, { "label": "Mpreg", "value": "257" }, { "label": "Mr.Despair", "value": "6112" }, { "label": "Mr.EasyPro", "value": "1987" }, { "label": "Mr.flag", "value": "5171" }, { "label": "Mr.Huo", "value": "2542" }, { "label": "Mr.Quin", "value": "3800" }, { "label": "Mr.ShuiYun", "value": "5844" }, { "label": "Mr.Xiaisfr", "value": "4240" }, { "label": "Mr.Zhaowho", "value": "5921" }, { "label": "MrBearBear", "value": "5391" }, { "label": "mrcoud", "value": "4260" }, { "label": "MrEarl", "value": "4671" }, { "label": "MrMo", "value": "1800" }, { "label": "MrSly", "value": "1610" }, { "label": "MrStardust", "value": "4838" }, { "label": "MsPerfect", "value": "1611" }, { "label": "Msturbatio", "value": "1022" }, { "label": "MuChenchen", "value": "4369" }, { "label": "mudbodhisa", "value": "2215" }, { "label": "MUGEN", "value": "4528" }, { "label": "Mukbang", "value": "1633" }, { "label": "MultipleBo", "value": "1393" }, { "label": "MultipleCP", "value": "756" }, { "label": "MultipleHi", "value": "1188" }, { "label": "multipleid", "value": "1295" }, { "label": "Multipleid", "value": "1729" }, { "label": "MultipleId", "value": "387" }, { "label": "MultipleLe", "value": "1650" }, { "label": "MultipleMo", "value": "1167" }, { "label": "MultiplePe", "value": "20" }, { "label": "MultiplePo", "value": "1277" }, { "label": "MultiplePO", "value": "279" }, { "label": "MultiplePr", "value": "501" }, { "label": "multiplere", "value": "1657" }, { "label": "MultipleRe", "value": "29" }, { "label": "MultipleRe", "value": "435" }, { "label": "MultipleTi", "value": "615" }, { "label": "MultipleTr", "value": "1152" }, { "label": "MultipleTr", "value": "293" }, { "label": "MultipleVe", "value": "1470" }, { "label": "MultipleWo", "value": "1092" }, { "label": "MultipleWo", "value": "1617" }, { "label": "Multiverse", "value": "1026" }, { "label": "MuMushuhua", "value": "5182" }, { "label": "MuNanzhi", "value": "5842" }, { "label": "Munchkin", "value": "5446" }, { "label": "mungbeanga", "value": "4159" }, { "label": "Murder", "value": "345" }, { "label": "Murders", "value": "366" }, { "label": "Mushroomma", "value": "6091" }, { "label": "Music", "value": "186" }, { "label": "musicwilll", "value": "1915" }, { "label": "mustdo", "value": "2199" }, { "label": "mustfire", "value": "3889" }, { "label": "Mutan", "value": "1574" }, { "label": "MutantPowe", "value": "1345" }, { "label": "MutatedCre", "value": "320" }, { "label": "Mutation", "value": "844" }, { "label": "Mutations", "value": "418" }, { "label": "MuteCharac", "value": "736" }, { "label": "Mutualcrus", "value": "1161" }, { "label": "MuxiMuxi", "value": "4078" }, { "label": "MuZixi", "value": "4924" }, { "label": "mygrandma", "value": "5512" }, { "label": "MyGreatQin", "value": "3487" }, { "label": "MyHeroAcad", "value": "1340" }, { "label": "mylittlesi", "value": "2225" }, { "label": "MyLubanThi", "value": "2630" }, { "label": "mymeatisde", "value": "3782" }, { "label": "MynameisDa", "value": "2079" }, { "label": "mynameista", "value": "2270" }, { "label": "MynameisZh", "value": "3511" }, { "label": "mysteries", "value": "3732" }, { "label": "mysterious", "value": "5127" }, { "label": "Mysterious", "value": "388" }, { "label": "Mysterious", "value": "3634" }, { "label": "Mysterious", "value": "656" }, { "label": "Mysterious", "value": "4890" }, { "label": "Mysterious", "value": "4769" }, { "label": "Mysterious", "value": "1096" }, { "label": "Mysterious", "value": "363" }, { "label": "Mystery", "value": "936" }, { "label": "MysterySol", "value": "185" }, { "label": "Mystical", "value": "764" }, { "label": "MysticBlue", "value": "4929" }, { "label": "Myswordisc", "value": "4393" }, { "label": "Myth", "value": "5079" }, { "label": "Mythical", "value": "666" }, { "label": "MythicalBe", "value": "427" }, { "label": "mythicalfi", "value": "2575" }, { "label": "mythicalma", "value": "2440" }, { "label": "Mythology", "value": "484" }, { "label": "Mythos", "value": "1651" }, { "label": "mythunpara", "value": "2408" }, { "label": "mywife", "value": "2448" }, { "label": "mywifeisab", "value": "3784" }, { "label": "mywifeisya", "value": "2754" }, { "label": "NA", "value": "791" }, { "label": "Nagasakiha", "value": "6099" }, { "label": "NagatoYuki", "value": "4963" }, { "label": "NagiNagibe", "value": "4559" }, { "label": "NaiNaiHeTi", "value": "5500" }, { "label": "NaiTsujiCi", "value": "5351" }, { "label": "NaiveProta", "value": "75" }, { "label": "Nakaji", "value": "3614" }, { "label": "namelessna", "value": "5971" }, { "label": "NamoAmitab", "value": "4805" }, { "label": "NanaSauceL", "value": "5621" }, { "label": "Nanshen", "value": "2307" }, { "label": "Napoleon", "value": "1497" }, { "label": "Narcissist", "value": "469" }, { "label": "Nari", "value": "4481" }, { "label": "Naruto", "value": "335" }, { "label": "narutoceda", "value": "2484" }, { "label": "NarutoClou", "value": "2479" }, { "label": "narutodrag", "value": "3617" }, { "label": "NarutoNovi", "value": "5640" }, { "label": "NarutoQuiz", "value": "2485" }, { "label": "Narutosix", "value": "5984" }, { "label": "narutovill", "value": "4306" }, { "label": "NarutoxRea", "value": "2588" }, { "label": "Nasida", "value": "4907" }, { "label": "NationalDi", "value": "3590" }, { "label": "Nationalis", "value": "305" }, { "label": "nationalmy", "value": "3641" }, { "label": "NationBuil", "value": "1115" }, { "label": "Nativebamb", "value": "3727" }, { "label": "natureover", "value": "3649" }, { "label": "Navy", "value": "1097" }, { "label": "nb9527", "value": "4129" }, { "label": "NBA", "value": "617" }, { "label": "Near-Death", "value": "76" }, { "label": "Necromance", "value": "422" }, { "label": "Necromancy", "value": "4444" }, { "label": "Need", "value": "3751" }, { "label": "Needsquirr", "value": "4376" }, { "label": "Neepeatsme", "value": "4942" }, { "label": "Neet", "value": "645" }, { "label": "NegaNebulu", "value": "5502" }, { "label": "neromywife", "value": "3940" }, { "label": "NetherNine", "value": "4127" }, { "label": "Netorare", "value": "77" }, { "label": "Netori", "value": "78" }, { "label": "Netred", "value": "3712" }, { "label": "networkdis", "value": "4644" }, { "label": "neverdream", "value": "4539" }, { "label": "neverfail", "value": "2567" }, { "label": "nevertooba", "value": "4415" }, { "label": "Neveruseso", "value": "5964" }, { "label": "newbie", "value": "6071" }, { "label": "newnine", "value": "5462" }, { "label": "newspapera", "value": "4471" }, { "label": "nextyear", "value": "6141" }, { "label": "NiangkouSa", "value": "2337" }, { "label": "nicheoccup", "value": "5125" }, { "label": "Nidoriya", "value": "4934" }, { "label": "Nidouzi", "value": "2587" }, { "label": "NightAllur", "value": "6000" }, { "label": "nightdance", "value": "2725" }, { "label": "NightDance", "value": "5998" }, { "label": "nightfire", "value": "1863" }, { "label": "nightlangu", "value": "5571" }, { "label": "Nightmare", "value": "346" }, { "label": "Nightmares", "value": "461" }, { "label": "nightrain", "value": "4651" }, { "label": "NightSheng", "value": "5999" }, { "label": "nightsilen", "value": "1891" }, { "label": "nightsleep", "value": "4237" }, { "label": "nightwhite", "value": "4758" }, { "label": "nihilism", "value": "1437" }, { "label": "NikaBaka", "value": "6013" }, { "label": "Nim", "value": "3579" }, { "label": "Nine", "value": "4298" }, { "label": "Nine-color", "value": "2436" }, { "label": "Nine-Taile", "value": "2178" }, { "label": "Ninedays", "value": "3931" }, { "label": "NinefoldSe", "value": "1959" }, { "label": "NineHeaven", "value": "5253" }, { "label": "nineonemor", "value": "4038" }, { "label": "ninepositi", "value": "3618" }, { "label": "NineShaoSh", "value": "5821" }, { "label": "nineshipju", "value": "4051" }, { "label": "NineStarMa", "value": "4523" }, { "label": "NineWarsof", "value": "2082" }, { "label": "NingYi", "value": "3956" }, { "label": "ninja", "value": "1756" }, { "label": "Ninjapirat", "value": "1868" }, { "label": "Ninjas", "value": "460" }, { "label": "ninthinthe", "value": "3977" }, { "label": "ninthsweet", "value": "6066" }, { "label": "NiShiliu", "value": "5043" }, { "label": "NiuBao", "value": "2085" }, { "label": "no", "value": "3808" }, { "label": "No-Harem", "value": "5082" }, { "label": "No.XNUMXon", "value": "3622" }, { "label": "No.XNUMXXi", "value": "5762" }, { "label": "Noble", "value": "1600" }, { "label": "Noblenessi", "value": "4832" }, { "label": "Nobles", "value": "280" }, { "label": "NoblesPoli", "value": "4357" }, { "label": "Nocar", "value": "5742" }, { "label": "nocarton", "value": "5961" }, { "label": "NoCheats", "value": "4354" }, { "label": "NoCp", "value": "1605" }, { "label": "NoCPRelaxe", "value": "5317" }, { "label": "NoCPreveng", "value": "5316" }, { "label": "Nodiscipli", "value": "3249" }, { "label": "nodream", "value": "3906" }, { "label": "Nogoldenfi", "value": "3145" }, { "label": "NoHarem", "value": "1290" }, { "label": "noheroine", "value": "3262" }, { "label": "nohouse", "value": "5743" }, { "label": "noisyfish", "value": "5495" }, { "label": "nokillingm", "value": "1017" }, { "label": "Noless", "value": "2696" }, { "label": "nolove", "value": "4768" }, { "label": "nomooninma", "value": "4733" }, { "label": "Non-Humanl", "value": "1667" }, { "label": "Non-HumanM", "value": "4359" }, { "label": "Non-humano", "value": "143" }, { "label": "Non-humanP", "value": "851" }, { "label": "Non-legacy", "value": "5448" }, { "label": "Non-System", "value": "1311" }, { "label": "noncat", "value": "2578" }, { "label": "nonhuman", "value": "1401" }, { "label": "NonHuman", "value": "1111" }, { "label": "NonHumanPr", "value": "1078" }, { "label": "nonpondfis", "value": "5799" }, { "label": "noon", "value": "5374" }, { "label": "NoPairing", "value": "1278" }, { "label": "noregrets", "value": "4855" }, { "label": "normalluck", "value": "4079" }, { "label": "NoRomance", "value": "1015" }, { "label": "NorthDepar", "value": "5426" }, { "label": "Northeastb", "value": "5592" }, { "label": "Northeastb", "value": "3659" }, { "label": "NorthMu", "value": "3768" }, { "label": "NorthSeaMo", "value": "5487" }, { "label": "Northstar", "value": "4719" }, { "label": "noshadow", "value": "4408" }, { "label": "Nosnacks", "value": "2081" }, { "label": "nostring", "value": "4825" }, { "label": "NoSystem", "value": "1537" }, { "label": "notbad", "value": "4526" }, { "label": "notcold", "value": "4986" }, { "label": "notfalling", "value": "4029" }, { "label": "notgreedy", "value": "4224" }, { "label": "notguilty", "value": "3725" }, { "label": "NotHarem", "value": "996" }, { "label": "NotIke", "value": "4524" }, { "label": "notlevelth", "value": "2564" }, { "label": "notnew", "value": "5468" }, { "label": "Notraceofm", "value": "3762" }, { "label": "notscary", "value": "2488" }, { "label": "nottowersa", "value": "4478" }, { "label": "notwo", "value": "3466" }, { "label": "NotYaoi", "value": "1032" }, { "label": "Nowadays", "value": "2604" }, { "label": "nowife", "value": "5744" }, { "label": "NPC", "value": "3141" }, { "label": "NSFW", "value": "5087" }, { "label": "NTL", "value": "4358" }, { "label": "NuclearBea", "value": "3830" }, { "label": "Nudity", "value": "972" }, { "label": "Numberofwo", "value": "5133" }, { "label": "Nunknightw", "value": "3908" }, { "label": "Nurses", "value": "637" }, { "label": "NuShengsoo", "value": "3510" }, { "label": "Obanbrothe", "value": "2158" }, { "label": "Observer23", "value": "5960" }, { "label": "observerwx", "value": "4735" }, { "label": "Obsession", "value": "3831" }, { "label": "ObsessiveL", "value": "205" }, { "label": "offical", "value": "2898" }, { "label": "Office", "value": "3606" }, { "label": "OfficeRoma", "value": "517" }, { "label": "OhLL", "value": "4842" }, { "label": "ohmygod", "value": "2446" }, { "label": "oldage", "value": "1910" }, { "label": "OldAlfred", "value": "5099" }, { "label": "oldchicken", "value": "3997" }, { "label": "oldclawmac", "value": "5016" }, { "label": "olddemon", "value": "2129" }, { "label": "Olderlovei", "value": "4324" }, { "label": "OlderLoveI", "value": "364" }, { "label": "oldfacesli", "value": "5379" }, { "label": "oldfaceunc", "value": "2698" }, { "label": "oldfashion", "value": "5288" }, { "label": "oldfisheat", "value": "2044" }, { "label": "Oldghostsm", "value": "2469" }, { "label": "Oldies", "value": "4606" }, { "label": "oldlady", "value": "4553" }, { "label": "oldmaneati", "value": "3770" }, { "label": "oldmonth", "value": "4480" }, { "label": "OldQinpeop", "value": "1999" }, { "label": "OldTeaTree", "value": "4997" }, { "label": "oldtombrob", "value": "2487" }, { "label": "oldwalnut", "value": "5297" }, { "label": "OldWuupsta", "value": "5650" }, { "label": "OldYdoesno", "value": "5434" }, { "label": "omega", "value": "4341" }, { "label": "Omegaverse", "value": "301" }, { "label": "On-HookSys", "value": "1615" }, { "label": "One", "value": "3677" }, { "label": "One-Piece", "value": "2874" }, { "label": "Onebyone", "value": "5661" }, { "label": "Oneflower", "value": "2722" }, { "label": "OneLeafRed", "value": "2499" }, { "label": "OneLeafSea", "value": "4739" }, { "label": "onemelonri", "value": "2724" }, { "label": "onemeterst", "value": "2794" }, { "label": "oneminustw", "value": "5898" }, { "label": "onemouthfu", "value": "4047" }, { "label": "OnenightHo", "value": "5880" }, { "label": "Oneofthebe", "value": "5014" }, { "label": "onepiece", "value": "1411" }, { "label": "OnePiece", "value": "336" }, { "label": "Onepunch", "value": "1063" }, { "label": "OnePunchMa", "value": "1328" }, { "label": "Onepunchmo", "value": "2495" }, { "label": "Onepunchto", "value": "2709" }, { "label": "OneSwordEm", "value": "4409" }, { "label": "OneSwordFl", "value": "2039" }, { "label": "OneSwordLi", "value": "5560" }, { "label": "Onethousan", "value": "2083" }, { "label": "onetree", "value": "2723" }, { "label": "Oneyearold", "value": "2715" }, { "label": "Online", "value": "1117" }, { "label": "onlinegame", "value": "3394" }, { "label": "Onlinegame", "value": "3168" }, { "label": "OnlineGame", "value": "762" }, { "label": "OnlineRoma", "value": "638" }, { "label": "onlyloveyo", "value": "1952" }, { "label": "onlyyouth", "value": "2736" }, { "label": "Onocat", "value": "3406" }, { "label": "onparadise", "value": "2283" }, { "label": "oooobe", "value": "2392" }, { "label": "Open", "value": "3259" }, { "label": "openasmall", "value": "1806" }, { "label": "openflow", "value": "3361" }, { "label": "openingflo", "value": "3149" }, { "label": "openingflo", "value": "3020" }, { "label": "Openupwast", "value": "3264" }, { "label": "Openyourey", "value": "2327" }, { "label": "Operation", "value": "2896" }, { "label": "Operationr", "value": "3925" }, { "label": "OpFemalePr", "value": "1189" }, { "label": "OPheroine", "value": "1469" }, { "label": "OPMC", "value": "892" }, { "label": "OPProtagon", "value": "1183" }, { "label": "orangeappl", "value": "2239" }, { "label": "orangeglor", "value": "3765" }, { "label": "OrangeOche", "value": "5510" }, { "label": "Orangespar", "value": "3490" }, { "label": "Orc", "value": "1298" }, { "label": "Orcs", "value": "720" }, { "label": "Orcsworld", "value": "966" }, { "label": "Ordinary", "value": "5887" }, { "label": "Organizati", "value": "1056" }, { "label": "OrganizedC", "value": "174" }, { "label": "Orientalde", "value": "5705" }, { "label": "orientalfa", "value": "4273" }, { "label": "Orientalfa", "value": "694" }, { "label": "Orientalle", "value": "6035" }, { "label": "Orientalre", "value": "4927" }, { "label": "orientalsa", "value": "3747" }, { "label": "origamista", "value": "5863" }, { "label": "originalco", "value": "3238" }, { "label": "originalco", "value": "3046" }, { "label": "Originalfi", "value": "3702" }, { "label": "OriginalON", "value": "1647" }, { "label": "OriginalUn", "value": "2325" }, { "label": "OriginalYe", "value": "2705" }, { "label": "Origuchi", "value": "2742" }, { "label": "Orphan", "value": "1247" }, { "label": "OrphanMC", "value": "933" }, { "label": "Orphans", "value": "428" }, { "label": "Otaku", "value": "472" }, { "label": "Otakuisnot", "value": "4585" }, { "label": "Otezetta", "value": "2117" }, { "label": "otherworld", "value": "5685" }, { "label": "Otoichi", "value": "3929" }, { "label": "OtomeGame", "value": "1580" }, { "label": "OTTGroupCh", "value": "2472" }, { "label": "Ottointhek", "value": "5802" }, { "label": "ourraccoon", "value": "4561" }, { "label": "Outcasts", "value": "991" }, { "label": "Outdoors", "value": "5092" }, { "label": "OuterSpace", "value": "409" }, { "label": "outingbook", "value": "4429" }, { "label": "Outlawluna", "value": "3684" }, { "label": "Outstandin", "value": "5179" }, { "label": "OuyangRuox", "value": "5458" }, { "label": "Over-Power", "value": "4325" }, { "label": "overbearin", "value": "3443" }, { "label": "Overhead", "value": "3225" }, { "label": "OverheadHi", "value": "2905" }, { "label": "OverheadSu", "value": "5321" }, { "label": "Overlord", "value": "1184" }, { "label": "Overpowerd", "value": "821" }, { "label": "overpowere", "value": "1394" }, { "label": "Overpowere", "value": "876" }, { "label": "Overpowere", "value": "864" }, { "label": "Overpowere", "value": "1214" }, { "label": "Overpowere", "value": "41" }, { "label": "Overprotec", "value": "717" }, { "label": "Overseasca", "value": "3778" }, { "label": "owe", "value": "5252" }, { "label": "Owner", "value": "3636" }, { "label": "ownerofwhi", "value": "4025" }, { "label": "PacifistPr", "value": "1186" }, { "label": "Painter", "value": "1262" }, { "label": "Painting", "value": "1229" }, { "label": "Paizuri", "value": "752" }, { "label": "palace", "value": "5048" }, { "label": "palacemaid", "value": "3452" }, { "label": "paleandwhi", "value": "2264" }, { "label": "palebluefl", "value": "3817" }, { "label": "PamperingR", "value": "591" }, { "label": "Panda&0", "value": "3865" }, { "label": "pangolin", "value": "6105" }, { "label": "panic", "value": "2166" }, { "label": "Papaisvery", "value": "2647" }, { "label": "papergrayo", "value": "5164" }, { "label": "ParalelWor", "value": "823" }, { "label": "ParallelWo", "value": "458" }, { "label": "ParallelWo", "value": "819" }, { "label": "Paranoid", "value": "1168" }, { "label": "Parasite", "value": "1554" }, { "label": "Parasites", "value": "331" }, { "label": "ParentComp", "value": "650" }, { "label": "Parenting", "value": "5454" }, { "label": "Parody", "value": "620" }, { "label": "Part-TimeJ", "value": "268" }, { "label": "part-timeo", "value": "2025" }, { "label": "Partnerofa", "value": "1366" }, { "label": "Passer-by", "value": "4940" }, { "label": "passerbylo", "value": "5557" }, { "label": "passingmap", "value": "5527" }, { "label": "PastandPre", "value": "3171" }, { "label": "PastandPre", "value": "2994" }, { "label": "PastPlaysa", "value": "98" }, { "label": "PastPlaysa", "value": "497" }, { "label": "PastTrauma", "value": "114" }, { "label": "patientswi", "value": "3812" }, { "label": "Patriarch", "value": "855" }, { "label": "Peacefulan", "value": "5269" }, { "label": "Peachgift", "value": "3671" }, { "label": "peachmelon", "value": "6069" }, { "label": "Peasant", "value": "3303" }, { "label": "PeasPigeon", "value": "4544" }, { "label": "Peerlessso", "value": "1795" }, { "label": "PeerlessSw", "value": "1791" }, { "label": "penandinkw", "value": "3675" }, { "label": "pencildraw", "value": "5474" }, { "label": "pendragon", "value": "2827" }, { "label": "pendreamst", "value": "2096" }, { "label": "penhero", "value": "5231" }, { "label": "Pennamenot", "value": "4626" }, { "label": "pentaclekn", "value": "4905" }, { "label": "Peoplearef", "value": "5144" }, { "label": "peopleflyi", "value": "3522" }, { "label": "Peoplenear", "value": "2632" }, { "label": "Peoplepass", "value": "5824" }, { "label": "peoplewhoe", "value": "5723" }, { "label": "Pepsi", "value": "4960" }, { "label": "perfectmag", "value": "1803" }, { "label": "perfecttom", "value": "5581" }, { "label": "PerfectWor", "value": "1332" }, { "label": "Persistenc", "value": "3872" }, { "label": "Persistent", "value": "274" }, { "label": "Personalit", "value": "137" }, { "label": "personusin", "value": "5772" }, { "label": "pervertedi", "value": "4786" }, { "label": "PervertedP", "value": "281" }, { "label": "Pet", "value": "1206" }, { "label": "Pets", "value": "107" }, { "label": "petsurviva", "value": "2511" }, { "label": "PhantomThi", "value": "3370" }, { "label": "Pharmacist", "value": "689" }, { "label": "Philosophi", "value": "774" }, { "label": "Phoenixes", "value": "236" }, { "label": "Phosphorus", "value": "4264" }, { "label": "Photograph", "value": "3556" }, { "label": "Photograph", "value": "705" }, { "label": "Physician", "value": "3710" }, { "label": "Pickingupp", "value": "4436" }, { "label": "PickingupY", "value": "5526" }, { "label": "pigc", "value": "4262" }, { "label": "pigeonbeek", "value": "5896" }, { "label": "pigeonnext", "value": "2599" }, { "label": "Pigeonsare", "value": "4673" }, { "label": "pigeonsnev", "value": "4113" }, { "label": "PillBasedC", "value": "399" }, { "label": "PillConcoc", "value": "400" }, { "label": "PillConcot", "value": "674" }, { "label": "Pilots", "value": "1592" }, { "label": "Pipifish", "value": "2234" }, { "label": "PipiGray", "value": "4272" }, { "label": "Pipisanqin", "value": "6079" }, { "label": "Pirate", "value": "1166" }, { "label": "Pirateacto", "value": "2489" }, { "label": "PirateCour", "value": "2497" }, { "label": "PirateDaQi", "value": "1844" }, { "label": "PirateGrea", "value": "2147" }, { "label": "Piratehaha", "value": "1914" }, { "label": "Pirates", "value": "546" }, { "label": "PiratesofH", "value": "2748" }, { "label": "PirateSumm", "value": "4418" }, { "label": "PirateWars", "value": "2491" }, { "label": "PiratexFai", "value": "2559" }, { "label": "Piscesinth", "value": "2681" }, { "label": "Piscesscum", "value": "4695" }, { "label": "pittree", "value": "3728" }, { "label": "pity", "value": "3772" }, { "label": "Plane", "value": "3120" }, { "label": "planeapple", "value": "6024" }, { "label": "Planets", "value": "1004" }, { "label": "PlaneWars", "value": "3972" }, { "label": "Plants", "value": "1137" }, { "label": "Playaswate", "value": "5973" }, { "label": "PlayBlueMo", "value": "2069" }, { "label": "Playboymal", "value": "1275" }, { "label": "Playboys", "value": "653" }, { "label": "Player", "value": "1562" }, { "label": "PlayerKill", "value": "1690" }, { "label": "Players", "value": "1245" }, { "label": "PlayfulPro", "value": "714" }, { "label": "Playingcat", "value": "4922" }, { "label": "PlayingGho", "value": "1482" }, { "label": "playYaoer", "value": "5358" }, { "label": "pleasantin", "value": "2054" }, { "label": "pleasecall", "value": "5018" }, { "label": "Pleaseforg", "value": "2933" }, { "label": "pleasehave", "value": "6084" }, { "label": "pleasehitm", "value": "4097" }, { "label": "Pleasesixt", "value": "4396" }, { "label": "plumthirte", "value": "2156" }, { "label": "Pochita", "value": "5428" }, { "label": "poems", "value": "1438" }, { "label": "Poetry", "value": "731" }, { "label": "Poison1", "value": "4686" }, { "label": "PoisonConc", "value": "3892" }, { "label": "poisondoct", "value": "3409" }, { "label": "PoisonMout", "value": "1070" }, { "label": "Poisonoust", "value": "3426" }, { "label": "Poisons", "value": "370" }, { "label": "Pokemon", "value": "587" }, { "label": "pokemonelf", "value": "5957" }, { "label": "PokémonGo", "value": "2761" }, { "label": "PokémonTi", "value": "2492" }, { "label": "PokémonUn", "value": "4221" }, { "label": "PokémonVo", "value": "2155" }, { "label": "polarflow", "value": "3407" }, { "label": "PoleStarWh", "value": "4983" }, { "label": "Police", "value": "419" }, { "label": "Policemen", "value": "3587" }, { "label": "policyflow", "value": "3198" }, { "label": "PoliteProt", "value": "684" }, { "label": "PoliticalI", "value": "949" }, { "label": "PoliticalS", "value": "1279" }, { "label": "Politics", "value": "43" }, { "label": "Polyandry", "value": "669" }, { "label": "Polygamy", "value": "282" }, { "label": "pomeloslee", "value": "4987" }, { "label": "Pony", "value": "3603" }, { "label": "Poor", "value": "4355" }, { "label": "Poorcrazy", "value": "1787" }, { "label": "PoorProtag", "value": "522" }, { "label": "PoorRoRich", "value": "1535" }, { "label": "PoortoRich", "value": "132" }, { "label": "PopeBibiDo", "value": "2494" }, { "label": "Popi", "value": "4244" }, { "label": "Popular", "value": "5072" }, { "label": "PopularLov", "value": "592" }, { "label": "Popularsci", "value": "3335" }, { "label": "Poriacocos", "value": "4712" }, { "label": "porkbuns", "value": "5204" }, { "label": "porridge", "value": "4008" }, { "label": "PortableSp", "value": "951" }, { "label": "PortalFant", "value": "3421" }, { "label": "Positive", "value": "5888" }, { "label": "Positiveel", "value": "2098" }, { "label": "positiveen", "value": "3202" }, { "label": "PositiveLe", "value": "1455" }, { "label": "Possession", "value": "605" }, { "label": "Possessive", "value": "4" }, { "label": "Possessive", "value": "1211" }, { "label": "Possessive", "value": "5886" }, { "label": "Post-apoca", "value": "401" }, { "label": "Potatoesar", "value": "3993" }, { "label": "potatogirl", "value": "2729" }, { "label": "PotatoRawS", "value": "5796" }, { "label": "poundedric", "value": "4365" }, { "label": "pouringice", "value": "5218" }, { "label": "PovertyAll", "value": "1280" }, { "label": "PowerCoupl", "value": "47" }, { "label": "Powerfulco", "value": "1355" }, { "label": "Powerfulmi", "value": "3104" }, { "label": "PowerGener", "value": "4375" }, { "label": "Powerhouse", "value": "3270" }, { "label": "PowersTran", "value": "1066" }, { "label": "PowerStrug", "value": "690" }, { "label": "pps", "value": "3760" }, { "label": "practice", "value": "3346" }, { "label": "practicefl", "value": "3611" }, { "label": "PragmaticP", "value": "593" }, { "label": "PraiseforD", "value": "4806" }, { "label": "Precogniti", "value": "724" }, { "label": "Preferthew", "value": "4869" }, { "label": "Pregnancy", "value": "83" }, { "label": "prehistori", "value": "4482" }, { "label": "Prehistori", "value": "1362" }, { "label": "Prehistori", "value": "1352" }, { "label": "PresentDay", "value": "1732" }, { "label": "President", "value": "1715" }, { "label": "PretendLov", "value": "250" }, { "label": "Pretendtob", "value": "2976" }, { "label": "PrettyGirl", "value": "5073" }, { "label": "PreviousLi", "value": "138" }, { "label": "PreviousLi", "value": "685" }, { "label": "Priest", "value": "3708" }, { "label": "Priestesse", "value": "1059" }, { "label": "Priests", "value": "707" }, { "label": "PrimeMinis", "value": "3775" }, { "label": "Primitives", "value": "1138" }, { "label": "PrimitiveT", "value": "4336" }, { "label": "Primitivew", "value": "967" }, { "label": "prince", "value": "3163" }, { "label": "PrinceofHe", "value": "2847" }, { "label": "PrinceofTe", "value": "1306" }, { "label": "PrinceQing", "value": "2631" }, { "label": "Princess", "value": "1527" }, { "label": "Prison", "value": "560" }, { "label": "ProactiveP", "value": "423" }, { "label": "probabilit", "value": "4844" }, { "label": "prodigal", "value": "5714" }, { "label": "Prodigalso", "value": "5857" }, { "label": "Profession", "value": "3201" }, { "label": "Profession", "value": "4202" }, { "label": "Professor", "value": "928" }, { "label": "program", "value": "5416" }, { "label": "Programmer", "value": "704" }, { "label": "Programmin", "value": "3848" }, { "label": "Progressio", "value": "1652" }, { "label": "propertyst", "value": "3569" }, { "label": "Prophecies", "value": "718" }, { "label": "Pros", "value": "3300" }, { "label": "Prosperity", "value": "4131" }, { "label": "Prosperous", "value": "4784" }, { "label": "Prostitute", "value": "447" }, { "label": "Protagonis", "value": "1640" }, { "label": "Protagonis", "value": "1037" }, { "label": "Protagonis", "value": "2881" }, { "label": "Protagonis", "value": "1525" }, { "label": "Protagonis", "value": "1341" }, { "label": "Protagonis", "value": "1305" }, { "label": "Protagonis", "value": "1129" }, { "label": "Protagonis", "value": "462" }, { "label": "Protagonis", "value": "283" }, { "label": "Protagonis", "value": "49" }, { "label": "protectsho", "value": "3227" }, { "label": "Protectthe", "value": "4512" }, { "label": "Proud", "value": "3316" }, { "label": "PseudoHolo", "value": "1281" }, { "label": "PseudoReli", "value": "1282" }, { "label": "psionic", "value": "2910" }, { "label": "Psychic", "value": "1067" }, { "label": "PsychicPow", "value": "715" }, { "label": "Psychokill", "value": "5979" }, { "label": "Psychologi", "value": "1045" }, { "label": "Psychology", "value": "1544" }, { "label": "Psychopath", "value": "498" }, { "label": "Punch", "value": "1960" }, { "label": "Puppet", "value": "4301" }, { "label": "puppy", "value": "3599" }, { "label": "PurebloodS", "value": "5657" }, { "label": "pureimpuls", "value": "2538" }, { "label": "purekitten", "value": "2465" }, { "label": "PureLove", "value": "3838" }, { "label": "purelovefa", "value": "5719" }, { "label": "purepigeon", "value": "4015" }, { "label": "puresenior", "value": "5524" }, { "label": "purewhiteo", "value": "4213" }, { "label": "Purple", "value": "4493" }, { "label": "Purple-hai", "value": "5853" }, { "label": "purplebrok", "value": "5168" }, { "label": "PurpleDuri", "value": "5789" }, { "label": "PurpleEmpe", "value": "4155" }, { "label": "PurpleNaya", "value": "4808" }, { "label": "purpleslim", "value": "3540" }, { "label": "Putdownthe", "value": "5924" }, { "label": "Puzzles", "value": "1529" }, { "label": "qhfishinga", "value": "5981" }, { "label": "QianandQia", "value": "5868" }, { "label": "Qiandengwi", "value": "5721" }, { "label": "Qianlong", "value": "3645" }, { "label": "Qianqianra", "value": "4582" }, { "label": "QianshanTw", "value": "2735" }, { "label": "QianXixi", "value": "3718" }, { "label": "QianXunxia", "value": "3683" }, { "label": "qidian", "value": "5044" }, { "label": "Qilixiang", "value": "4045" }, { "label": "QiLuck", "value": "1641" }, { "label": "qimao", "value": "5120" }, { "label": "QinBichu", "value": "1859" }, { "label": "QinBuxiang", "value": "4289" }, { "label": "QingDynast", "value": "3174" }, { "label": "QingDynast", "value": "2993" }, { "label": "Qingfeng1D", "value": "1853" }, { "label": "QingfengYu", "value": "4864" }, { "label": "QingheTaoi", "value": "2032" }, { "label": "QinghuiYen", "value": "5303" }, { "label": "Qingliansw", "value": "1970" }, { "label": "Qingluan", "value": "3693" }, { "label": "Qingsanren", "value": "5820" }, { "label": "QingWeixin", "value": "5368" }, { "label": "Qingxinyuu", "value": "4852" }, { "label": "qingyu", "value": "2360" }, { "label": "QinHan", "value": "3230" }, { "label": "QinHanCros", "value": "3039" }, { "label": "QinHanTang", "value": "4447" }, { "label": "QinShiSwor", "value": "5569" }, { "label": "QinTangFei", "value": "5610" }, { "label": "QiuZiXiaXu", "value": "3995" }, { "label": "QiXuan", "value": "2111" }, { "label": "Qiyao&0", "value": "5603" }, { "label": "QiyueLiuhu", "value": "5730" }, { "label": "QiyueShiqi", "value": "4752" }, { "label": "QiYuwholov", "value": "4817" }, { "label": "QT", "value": "1758" }, { "label": "Quackhamst", "value": "5601" }, { "label": "quantumgoo", "value": "5396" }, { "label": "QuartetSev", "value": "5486" }, { "label": "Quasar", "value": "5568" }, { "label": "Quasi-GodS", "value": "1919" }, { "label": "Queen", "value": "3574" }, { "label": "QueenofBla", "value": "2445" }, { "label": "Question&a", "value": "1728" }, { "label": "QuickPass", "value": "1621" }, { "label": "QuickTrans", "value": "599" }, { "label": "QuickTrans", "value": "944" }, { "label": "QuickTrans", "value": "1659" }, { "label": "Quickwear", "value": "1547" }, { "label": "QuietChara", "value": "719" }, { "label": "quietflowe", "value": "1847" }, { "label": "QuirkyChar", "value": "198" }, { "label": "Quququ", "value": "2613" }, { "label": "R-13", "value": "727" }, { "label": "R-15", "value": "646" }, { "label": "R-18", "value": "5455" }, { "label": "R18", "value": "5058" }, { "label": "RabbitToot", "value": "2539" }, { "label": "raccoonrac", "value": "5028" }, { "label": "raccoonsho", "value": "3797" }, { "label": "RaceChange", "value": "604" }, { "label": "Racism", "value": "13" }, { "label": "Raiders", "value": "3250" }, { "label": "Raids", "value": "971" }, { "label": "Railgun", "value": "4490" }, { "label": "rainandsno", "value": "2254" }, { "label": "Rainandsun", "value": "4537" }, { "label": "rainbeans", "value": "3769" }, { "label": "rainboweig", "value": "2682" }, { "label": "rainclearn", "value": "5634" }, { "label": "Rainfallsf", "value": "4104" }, { "label": "Rainhitsba", "value": "4164" }, { "label": "Rainink", "value": "5154" }, { "label": "rainiscomi", "value": "4368" }, { "label": "rainyday", "value": "5480" }, { "label": "rainydaywi", "value": "2788" }, { "label": "rainystars", "value": "4892" }, { "label": "Raiseaghos", "value": "2611" }, { "label": "raisedache", "value": "2600" }, { "label": "rakepig", "value": "5398" }, { "label": "randomstre", "value": "5631" }, { "label": "randomwhy", "value": "5373" }, { "label": "RankingLis", "value": "1743" }, { "label": "RankSystem", "value": "997" }, { "label": "Ranwho", "value": "3969" }, { "label": "Rape", "value": "402" }, { "label": "Rapeseedra", "value": "2159" }, { "label": "RapeVictim", "value": "827" }, { "label": "RapeVictim", "value": "6" }, { "label": "Rarebloodl", "value": "5060" }, { "label": "Rarely", "value": "4362" }, { "label": "Ras", "value": "1688" }, { "label": "Raven", "value": "4468" }, { "label": "RavenCrow", "value": "3959" }, { "label": "rawstream", "value": "3449" }, { "label": "Raynes", "value": "4157" }, { "label": "readstream", "value": "3205" }, { "label": "Realestate", "value": "5122" }, { "label": "reallyking", "value": "2284" }, { "label": "reallynotg", "value": "5624" }, { "label": "Realmmonst", "value": "2810" }, { "label": "realnamest", "value": "5433" }, { "label": "realoldgen", "value": "5552" }, { "label": "reasoning", "value": "5891" }, { "label": "Rebellion", "value": "757" }, { "label": "Rebellious", "value": "5906" }, { "label": "Rebirth", "value": "139" }, { "label": "RebirthChr", "value": "2984" }, { "label": "Rebirthdoc", "value": "2987" }, { "label": "RebirthedP", "value": "1241" }, { "label": "Rebirtheve", "value": "3014" }, { "label": "Rebirthevo", "value": "3017" }, { "label": "Rebirthfar", "value": "3034" }, { "label": "RebirthGam", "value": "3025" }, { "label": "RebirthGra", "value": "3008" }, { "label": "Rebirthhap", "value": "2936" }, { "label": "Rebirthint", "value": "3019" }, { "label": "Rebirthman", "value": "2988" }, { "label": "RebirthMen", "value": "5311" }, { "label": "RebirthofK", "value": "6033" }, { "label": "RebirthRel", "value": "3048" }, { "label": "Rebirthsho", "value": "5306" }, { "label": "Rebirthstr", "value": "5318" }, { "label": "Rebirthstr", "value": "3032" }, { "label": "Rebirthstr", "value": "2975" }, { "label": "Rebirthswe", "value": "5328" }, { "label": "Reborn", "value": "831" }, { "label": "Rebornprot", "value": "1239" }, { "label": "Recallingt", "value": "5217" }, { "label": "recessiono", "value": "3796" }, { "label": "recreation", "value": "2328" }, { "label": "RED⑨", "value": "5729" }, { "label": "Redactor", "value": "4908" }, { "label": "RedAlert2", "value": "812" }, { "label": "Redcandyso", "value": "3689" }, { "label": "redcutefoo", "value": "4727" }, { "label": "Redemption", "value": "3837" }, { "label": "RedHouse", "value": "3187" }, { "label": "RedIronRoa", "value": "4755" }, { "label": "redlotus", "value": "3576" }, { "label": "RedLotusWi", "value": "5008" }, { "label": "redpacketf", "value": "3711" }, { "label": "redstone", "value": "5572" }, { "label": "Referstomu", "value": "4601" }, { "label": "Refiner", "value": "3155" }, { "label": "RefiningPi", "value": "853" }, { "label": "ReformandO", "value": "5129" }, { "label": "RegalinBla", "value": "5549" }, { "label": "Regardless", "value": "5922" }, { "label": "Regent", "value": "3233" }, { "label": "Regression", "value": "3835" }, { "label": "Regressor", "value": "1563" }, { "label": "Regret", "value": "3832" }, { "label": "Rehabilita", "value": "5412" }, { "label": "Reiki", "value": "3859" }, { "label": "ReikiRecov", "value": "1765" }, { "label": "Reikyrecov", "value": "1054" }, { "label": "Reimuer", "value": "4017" }, { "label": "reincarnat", "value": "3438" }, { "label": "reincarnat", "value": "1399" }, { "label": "reincarnat", "value": "1737" }, { "label": "Reincarnat", "value": "162" }, { "label": "Reincarnat", "value": "4356" }, { "label": "Reincarnat", "value": "1444" }, { "label": "Reincarnat", "value": "1028" }, { "label": "Reincarnat", "value": "913" }, { "label": "Reincarnat", "value": "770" }, { "label": "Reincarnat", "value": "523" }, { "label": "Reincarnat", "value": "467" }, { "label": "Reincarnat", "value": "415" }, { "label": "rejoice", "value": "3228" }, { "label": "Rejoiceint", "value": "4446" }, { "label": "relaxed", "value": "1761" }, { "label": "Religions", "value": "706" }, { "label": "ReligiousO", "value": "1057" }, { "label": "ReligousOr", "value": "923" }, { "label": "Remarriage", "value": "3572" }, { "label": "rememberto", "value": "4640" }, { "label": "Rememberto", "value": "5928" }, { "label": "Rengucuisi", "value": "4235" }, { "label": "Repeat", "value": "4876" }, { "label": "RepeatJiAi", "value": "5027" }, { "label": "Reporters", "value": "545" }, { "label": "Researcher", "value": "1701" }, { "label": "Residencen", "value": "2400" }, { "label": "Residentev", "value": "2887" }, { "label": "ResolutePr", "value": "1034" }, { "label": "respectfor", "value": "4657" }, { "label": "restaurant", "value": "2290" }, { "label": "Restaurant", "value": "635" }, { "label": "Resurrecti", "value": "390" }, { "label": "Resurrecti", "value": "2701" }, { "label": "Return", "value": "5630" }, { "label": "Returningf", "value": "695" }, { "label": "Returnofth", "value": "3236" }, { "label": "Returnofth", "value": "5378" }, { "label": "Returnofth", "value": "3042" }, { "label": "Returntent", "value": "5778" }, { "label": "Returntoth", "value": "1139" }, { "label": "Reunion", "value": "1487" }, { "label": "revenge", "value": "1398" }, { "label": "Revenge", "value": "225" }, { "label": "revengeLov", "value": "5345" }, { "label": "Reversal", "value": "5131" }, { "label": "Reverse", "value": "3390" }, { "label": "ReverseHar", "value": "378" }, { "label": "ReverseRap", "value": "571" }, { "label": "ReverseRpe", "value": "614" }, { "label": "reversesmo", "value": "2050" }, { "label": "reversewea", "value": "3256" }, { "label": "reversewea", "value": "5325" }, { "label": "reversewea", "value": "3080" }, { "label": "Reversible", "value": "740" }, { "label": "Rhapsodyof", "value": "5748" }, { "label": "Rhein-Life", "value": "5250" }, { "label": "ricebath", "value": "4850" }, { "label": "ricestar", "value": "5102" }, { "label": "Rich", "value": "1051" }, { "label": "richandbea", "value": "3454" }, { "label": "RichCharac", "value": "910" }, { "label": "Richestman", "value": "3715" }, { "label": "richeveryy", "value": "2510" }, { "label": "Richfamily", "value": "1388" }, { "label": "RichMC", "value": "1144" }, { "label": "richpeople", "value": "3395" }, { "label": "RichProtag", "value": "875" }, { "label": "RichtoPoor", "value": "743" }, { "label": "rideapiggy", "value": "5975" }, { "label": "Rideawhale", "value": "1821" }, { "label": "Rideawhale", "value": "6063" }, { "label": "ridethewin", "value": "3493" }, { "label": "Ridethewin", "value": "5537" }, { "label": "ridicule", "value": "4860" }, { "label": "ridiculous", "value": "3744" }, { "label": "RighteousP", "value": "630" }, { "label": "RimuruTemp", "value": "1593" }, { "label": "RinYueqing", "value": "1792" }, { "label": "riot", "value": "3604" }, { "label": "RipplesofD", "value": "5220" }, { "label": "RiseofGras", "value": "3437" }, { "label": "Rivalry", "value": "687" }, { "label": "rivercruis", "value": "5161" }, { "label": "riversande", "value": "2011" }, { "label": "RoadtoAwak", "value": "4970" }, { "label": "rockblosso", "value": "5156" }, { "label": "rockfox", "value": "3720" }, { "label": "Rococo", "value": "3924" }, { "label": "rodeaway", "value": "5623" }, { "label": "Roger18", "value": "4504" }, { "label": "Rollover", "value": "3457" }, { "label": "Romance", "value": "768" }, { "label": "RomanceFan", "value": "3833" }, { "label": "RomanHolid", "value": "3489" }, { "label": "RomanticPr", "value": "842" }, { "label": "RomanticSu", "value": "14" }, { "label": "RomanticSu", "value": "711" }, { "label": "RomeoTanak", "value": "4766" }, { "label": "RongRong", "value": "4787" }, { "label": "RookieProt", "value": "1358" }, { "label": "Roommates", "value": "772" }, { "label": "Roon", "value": "2557" }, { "label": "Rossini", "value": "5167" }, { "label": "Rotaryhotp", "value": "2627" }, { "label": "rottenoran", "value": "3781" }, { "label": "roughman", "value": "3397" }, { "label": "Royal", "value": "3354" }, { "label": "RoyalBeast", "value": "3131" }, { "label": "RoyalSabur", "value": "1957" }, { "label": "Royalty", "value": "35" }, { "label": "Rpe", "value": "5" }, { "label": "RpeVictimB", "value": "115" }, { "label": "runaftercl", "value": "5104" }, { "label": "runawayant", "value": "1841" }, { "label": "runawaycit", "value": "1809" }, { "label": "runawaydum", "value": "4979" }, { "label": "runawaymid", "value": "4217" }, { "label": "runawayrab", "value": "4792" }, { "label": "Rune", "value": "1244" }, { "label": "RuneMaster", "value": "3365" }, { "label": "runningfis", "value": "3690" }, { "label": "Ruoshuithr", "value": "2241" }, { "label": "ruotuosave", "value": "5415" }, { "label": "rural", "value": "3696" }, { "label": "Rushduck", "value": "3922" }, { "label": "Russian", "value": "1766" }, { "label": "ruthelessm", "value": "1435" }, { "label": "RuthlessMc", "value": "1093" }, { "label": "RuthlessPr", "value": "15" }, { "label": "rwby", "value": "1406" }, { "label": "SacrificeX", "value": "2727" }, { "label": "Sadakoiscu", "value": "3672" }, { "label": "SadisticCh", "value": "622" }, { "label": "Sadomasoch", "value": "5677" }, { "label": "Sadreminde", "value": "1936" }, { "label": "sadsadness", "value": "2086" }, { "label": "sadsword", "value": "1840" }, { "label": "SaikiK", "value": "1064" }, { "label": "SaikiK.", "value": "1382" }, { "label": "Sailing", "value": "1734" }, { "label": "Saint", "value": "1561" }, { "label": "SaintPauli", "value": "4367" }, { "label": "Saints", "value": "598" }, { "label": "SaintSeiya", "value": "1082" }, { "label": "Saint丨Men", "value": "5593" }, { "label": "SakeAsahi", "value": "5518" }, { "label": "Sako", "value": "5754" }, { "label": "Sakuracat", "value": "4066" }, { "label": "Sakurajima", "value": "2639" }, { "label": "SakuraMoon", "value": "2207" }, { "label": "saltedfish", "value": "4074" }, { "label": "saltedfish", "value": "5794" }, { "label": "saltedfish", "value": "4723" }, { "label": "saltedfish", "value": "3857" }, { "label": "Saltedfish", "value": "3292" }, { "label": "Saltedfish", "value": "4874" }, { "label": "Saltedfish", "value": "4233" }, { "label": "Saltedfish", "value": "2405" }, { "label": "Saltedfish", "value": "5959" }, { "label": "Saltedfish", "value": "5893" }, { "label": "Saltedfish", "value": "5852" }, { "label": "Saltedfish", "value": "4818" }, { "label": "SaltedFish", "value": "5811" }, { "label": "SaltedFish", "value": "2685" }, { "label": "SaltedFish", "value": "2299" }, { "label": "SaltedFish", "value": "1851" }, { "label": "SaltedFish", "value": "1089" }, { "label": "Saltyandsw", "value": "3314" }, { "label": "saltyfox", "value": "3986" }, { "label": "Salvation", "value": "3846" }, { "label": "sama", "value": "4167" }, { "label": "SameSexMar", "value": "1170" }, { "label": "Samurai", "value": "1025" }, { "label": "SancheonHo", "value": "4938" }, { "label": "sanctifica", "value": "5209" }, { "label": "sandrivere", "value": "2116" }, { "label": "Sandsculpt", "value": "6142" }, { "label": "Sanguanzhe", "value": "3197" }, { "label": "SanmitheGr", "value": "2401" }, { "label": "SanyueFeng", "value": "5215" }, { "label": "SaraDouble", "value": "3810" }, { "label": "Satire", "value": "3420" }, { "label": "saturdaymo", "value": "5645" }, { "label": "Sauce", "value": "5348" }, { "label": "Sauerkraut", "value": "4450" }, { "label": "Saves", "value": "781" }, { "label": "SavingtheW", "value": "682" }, { "label": "Saygoodbye", "value": "3822" }, { "label": "SCaja", "value": "4889" }, { "label": "Scalesofth", "value": "1825" }, { "label": "scarletmon", "value": "5814" }, { "label": "ScarletMoo", "value": "4660" }, { "label": "Scary", "value": "5083" }, { "label": "schemeandc", "value": "1742" }, { "label": "Schemes", "value": "1460" }, { "label": "Schemesand", "value": "1047" }, { "label": "SchemesAnd", "value": "405" }, { "label": "SchemingPr", "value": "1283" }, { "label": "scholar", "value": "5119" }, { "label": "School-lif", "value": "1267" }, { "label": "schoolgras", "value": "3615" }, { "label": "SchoolLife", "value": "746" }, { "label": "SchoolSett", "value": "1678" }, { "label": "Sci-Fantas", "value": "1003" }, { "label": "Sci-fi", "value": "931" }, { "label": "Science", "value": "1782" }, { "label": "sciencefic", "value": "1046" }, { "label": "Scientist", "value": "1523" }, { "label": "Scientists", "value": "486" }, { "label": "Scorpio", "value": "4914" }, { "label": "Scorpionho", "value": "5193" }, { "label": "Scourge", "value": "1971" }, { "label": "SCP", "value": "1140" }, { "label": "scrupulous", "value": "5432" }, { "label": "scumbag", "value": "3114" }, { "label": "scumbagReb", "value": "2981" }, { "label": "scumfish", "value": "5262" }, { "label": "scumteache", "value": "2308" }, { "label": "Sea", "value": "1570" }, { "label": "SeaExplora", "value": "1116" }, { "label": "SealedPowe", "value": "284" }, { "label": "SealGod", "value": "3399" }, { "label": "sea​​rou", "value": "5930" }, { "label": "secludedci", "value": "5221" }, { "label": "second-han", "value": "4577" }, { "label": "Secondbatt", "value": "3816" }, { "label": "secondchan", "value": "1410" }, { "label": "SecondChan", "value": "99" }, { "label": "SecondChan", "value": "1665" }, { "label": "Secondgive", "value": "4366" }, { "label": "secondpira", "value": "2428" }, { "label": "secretary", "value": "1733" }, { "label": "SecretCrus", "value": "266" }, { "label": "SecretFrag", "value": "4105" }, { "label": "SecretIden", "value": "285" }, { "label": "Secretive", "value": "5066" }, { "label": "secretivec", "value": "3085" }, { "label": "SecretiveP", "value": "552" }, { "label": "Secretobse", "value": "2483" }, { "label": "secretolds", "value": "4974" }, { "label": "SecretOrga", "value": "1141" }, { "label": "SecretOrga", "value": "652" }, { "label": "SecretRela", "value": "1021" }, { "label": "Secrets", "value": "286" }, { "label": "Sect", "value": "3547" }, { "label": "SectDevelo", "value": "692" }, { "label": "SectMaster", "value": "841" }, { "label": "Sects", "value": "881" }, { "label": "Securitygu", "value": "3320" }, { "label": "Seduction", "value": "732" }, { "label": "SeeingThin", "value": "633" }, { "label": "Seelemywif", "value": "4216" }, { "label": "seeyouagai", "value": "3116" }, { "label": "Seeyouatth", "value": "4208" }, { "label": "self-disci", "value": "2372" }, { "label": "Self-disci", "value": "3207" }, { "label": "self-impro", "value": "3306" }, { "label": "SelfDiscip", "value": "3548" }, { "label": "SelfishPro", "value": "254" }, { "label": "SelflessPr", "value": "558" }, { "label": "sellbloodf", "value": "5357" }, { "label": "sellumbrel", "value": "4035" }, { "label": "sellwine", "value": "5606" }, { "label": "SemeProtag", "value": "500" }, { "label": "Senbeiboy", "value": "3373" }, { "label": "Sencha", "value": "2664" }, { "label": "sendapacka", "value": "5585" }, { "label": "Senior", "value": "3318" }, { "label": "SentientOb", "value": "970" }, { "label": "SentientSk", "value": "1313" }, { "label": "Sentimenta", "value": "771" }, { "label": "Sequel", "value": "1179" }, { "label": "SerialKill", "value": "550" }, { "label": "SerpentKin", "value": "3389" }, { "label": "ServantofZ", "value": "1817" }, { "label": "Servants", "value": "665" }, { "label": "SevenDeadl", "value": "691" }, { "label": "Sevengener", "value": "2209" }, { "label": "sevenpigeo", "value": "1883" }, { "label": "SevenProfo", "value": "5929" }, { "label": "severekaro", "value": "4314" }, { "label": "SexSlaves", "value": "475" }, { "label": "SexualAbus", "value": "175" }, { "label": "SexualCult", "value": "748" }, { "label": "shadowfall", "value": "2800" }, { "label": "shadowfire", "value": "4022" }, { "label": "shadowghos", "value": "2302" }, { "label": "Shadowless", "value": "2929" }, { "label": "Shallowsea", "value": "1805" }, { "label": "Shame", "value": "4565" }, { "label": "ShamelessA", "value": "6108" }, { "label": "ShamelessP", "value": "203" }, { "label": "ShangshanX", "value": "4813" }, { "label": "ShanHaiJin", "value": "3396" }, { "label": "ShanhaiSpe", "value": "4473" }, { "label": "Shaohuaisf", "value": "5639" }, { "label": "Shapeshift", "value": "267" }, { "label": "Shapeshift", "value": "1100" }, { "label": "ShareHaiTs", "value": "3996" }, { "label": "Sharp-tong", "value": "296" }, { "label": "Shelter", "value": "1506" }, { "label": "ShenhaoMec", "value": "2561" }, { "label": "ShenhuoxoR", "value": "2074" }, { "label": "ShenJin", "value": "2543" }, { "label": "ShenLuo", "value": "1993" }, { "label": "ShenShen", "value": "4386" }, { "label": "Sherlock", "value": "4300" }, { "label": "shesaiditw", "value": "4465" }, { "label": "Shiewillno", "value": "4764" }, { "label": "Shijia", "value": "3244" }, { "label": "Shiko", "value": "3367" }, { "label": "ShiTianfen", "value": "4427" }, { "label": "ShoesMenlu", "value": "4086" }, { "label": "shortforpa", "value": "3175" }, { "label": "ShortStory", "value": "559" }, { "label": "Shota", "value": "493" }, { "label": "Shotacon", "value": "556" }, { "label": "Shoujo-AiS", "value": "595" }, { "label": "ShoujoAi", "value": "955" }, { "label": "Shouldhand", "value": "1860" }, { "label": "Shounen", "value": "1533" }, { "label": "Shounen-Ai", "value": "530" }, { "label": "shounenai", "value": "1719" }, { "label": "ShouProtag", "value": "1467" }, { "label": "Show-biz", "value": "2888" }, { "label": "Showbiz", "value": "108" }, { "label": "showdownfl", "value": "3598" }, { "label": "ShowdownSa", "value": "4613" }, { "label": "showstory", "value": "2056" }, { "label": "ShreddedOn", "value": "3529" }, { "label": "ShrimpBall", "value": "4652" }, { "label": "shrimpinth", "value": "1820" }, { "label": "Shuangjie", "value": "3148" }, { "label": "ShuangjieD", "value": "5312" }, { "label": "Shuangwen", "value": "1207" }, { "label": "shudder", "value": "1828" }, { "label": "Shura", "value": "4287" }, { "label": "Shurachang", "value": "3291" }, { "label": "Shushan", "value": "3284" }, { "label": "Shuttlebus", "value": "5577" }, { "label": "ShuyinFloa", "value": "4564" }, { "label": "ShuYuChenX", "value": "2346" }, { "label": "ShyCharact", "value": "482" }, { "label": "Si-fi", "value": "1094" }, { "label": "Sibling&am", "value": "750" }, { "label": "SiblingRiv", "value": "46" }, { "label": "Siblings", "value": "48" }, { "label": "SiblingsNo", "value": "448" }, { "label": "sick", "value": "3323" }, { "label": "sickleredr", "value": "3861" }, { "label": "SicklyChar", "value": "600" }, { "label": "sifeizhai", "value": "3531" }, { "label": "Sign-in", "value": "934" }, { "label": "Sign-InChe", "value": "1242" }, { "label": "Signboardm", "value": "4438" }, { "label": "signin", "value": "1294" }, { "label": "SigninChec", "value": "1331" }, { "label": "signinsalt", "value": "2371" }, { "label": "SiheyuanDa", "value": "5663" }, { "label": "SiheyuanDe", "value": "2276" }, { "label": "Siheyuanfl", "value": "2175" }, { "label": "SiheyuanGo", "value": "2246" }, { "label": "Siheyuanpi", "value": "4448" }, { "label": "Sijiu", "value": "4162" }, { "label": "Silencehim", "value": "2341" }, { "label": "silentauth", "value": "5423" }, { "label": "Silentcare", "value": "3787" }, { "label": "silentkill", "value": "2059" }, { "label": "sillycatse", "value": "1909" }, { "label": "SillyColum", "value": "2363" }, { "label": "SillyTeres", "value": "5145" }, { "label": "sillywhite", "value": "3776" }, { "label": "silver", "value": "2807" }, { "label": "silverbigs", "value": "5178" }, { "label": "silvercold", "value": "3483" }, { "label": "Silverhair", "value": "4540" }, { "label": "Simmel", "value": "3667" }, { "label": "Simon", "value": "4743" }, { "label": "Simpleone", "value": "2382" }, { "label": "simpletwo", "value": "5648" }, { "label": "SimpleXiaZ", "value": "4706" }, { "label": "Simulation", "value": "1646" }, { "label": "Simulator", "value": "1172" }, { "label": "singer", "value": "1770" }, { "label": "Singers", "value": "187" }, { "label": "SingleHero", "value": "1569" }, { "label": "singlemons", "value": "5469" }, { "label": "SinglePare", "value": "503" }, { "label": "singlepush", "value": "4753" }, { "label": "singlesalt", "value": "2865" }, { "label": "sink", "value": "4414" }, { "label": "SirBirefel", "value": "6090" }, { "label": "Siriuslook", "value": "5003" }, { "label": "Siscon", "value": "1726" }, { "label": "Sisterandb", "value": "3358" }, { "label": "SisterComp", "value": "709" }, { "label": "sistercook", "value": "2553" }, { "label": "sisterisbe", "value": "2379" }, { "label": "SisterLuo", "value": "4724" }, { "label": "SisterYu", "value": "3184" }, { "label": "SituQingfe", "value": "4090" }, { "label": "six-twochi", "value": "1913" }, { "label": "Sixcauseso", "value": "6026" }, { "label": "sixchiefs", "value": "5586" }, { "label": "Sixi", "value": "4055" }, { "label": "SixImmorta", "value": "4796" }, { "label": "sixlittlef", "value": "5609" }, { "label": "SixPathsof", "value": "2449" }, { "label": "sixteenmir", "value": "3783" }, { "label": "sixteennig", "value": "4516" }, { "label": "sixthousan", "value": "3871" }, { "label": "Sixty-six", "value": "2052" }, { "label": "SkeletonSo", "value": "3440" }, { "label": "SkillAssim", "value": "403" }, { "label": "SkillBooks", "value": "508" }, { "label": "SkillCreat", "value": "572" }, { "label": "SkillSteal", "value": "1353" }, { "label": "SkinButler", "value": "2322" }, { "label": "skybird", "value": "4112" }, { "label": "skycity", "value": "4352" }, { "label": "SkyFeather", "value": "4226" }, { "label": "SkyKilling", "value": "4962" }, { "label": "SkyMender", "value": "4036" }, { "label": "Skyrim", "value": "979" }, { "label": "Skyshadowm", "value": "4527" }, { "label": "SkyStealin", "value": "3805" }, { "label": "slackerstu", "value": "3713" }, { "label": "slagfly", "value": "5589" }, { "label": "Slagwritin", "value": "4903" }, { "label": "Slap", "value": "3135" }, { "label": "SlapstickC", "value": "1566" }, { "label": "Slapstrong", "value": "5313" }, { "label": "Slave", "value": "1463" }, { "label": "SlaveHarem", "value": "730" }, { "label": "SlaveProta", "value": "540" }, { "label": "Slaves", "value": "287" }, { "label": "SlaveSyste", "value": "828" }, { "label": "sleepingbi", "value": "4847" }, { "label": "sleepingra", "value": "5521" }, { "label": "sleepingsa", "value": "2006" }, { "label": "sleeplesst", "value": "2471" }, { "label": "sleepslate", "value": "1969" }, { "label": "sleepyanim", "value": "4664" }, { "label": "Slice-of-l", "value": "1259" }, { "label": "SliceofLif", "value": "877" }, { "label": "slightlyco", "value": "3890" }, { "label": "SlightlySu", "value": "1270" }, { "label": "Slimeatsun", "value": "5576" }, { "label": "slow-movin", "value": "3825" }, { "label": "slow-roman", "value": "1011" }, { "label": "SlowCultiv", "value": "1009" }, { "label": "SlowGrowth", "value": "487" }, { "label": "SlowLife", "value": "1481" }, { "label": "slowlytwis", "value": "4910" }, { "label": "SlowRomanc", "value": "144" }, { "label": "Slvery", "value": "4337" }, { "label": "smallblade", "value": "4734" }, { "label": "Smallcardd", "value": "5982" }, { "label": "Smalldogs", "value": "3592" }, { "label": "smallhalft", "value": "5162" }, { "label": "Smallmushr", "value": "2552" }, { "label": "smallninel", "value": "1900" }, { "label": "SmallRibs", "value": "5978" }, { "label": "smallself", "value": "5107" }, { "label": "smalltempl", "value": "3990" }, { "label": "smallten", "value": "4814" }, { "label": "Smart", "value": "3557" }, { "label": "SmartCoupl", "value": "513" }, { "label": "SmartMC", "value": "937" }, { "label": "smartprota", "value": "1215" }, { "label": "SmelltheFo", "value": "3646" }, { "label": "smellylitt", "value": "4931" }, { "label": "smilecool", "value": "4106" }, { "label": "Smokeandra", "value": "6038" }, { "label": "Smokebambo", "value": "2644" }, { "label": "SmokeCloud", "value": "1798" }, { "label": "smokeinthe", "value": "1790" }, { "label": "SMPZ", "value": "5268" }, { "label": "Smut", "value": "975" }, { "label": "snorkeling", "value": "2038" }, { "label": "Snow", "value": "3471" }, { "label": "Snowballfi", "value": "5442" }, { "label": "snowcherry", "value": "4394" }, { "label": "snowfall", "value": "5937" }, { "label": "snowinthec", "value": "4295" }, { "label": "snowmanbef", "value": "4833" }, { "label": "snowmoonco", "value": "5618" }, { "label": "SnowRoy", "value": "4466" }, { "label": "so-and-soa", "value": "4037" }, { "label": "soarupbyda", "value": "4075" }, { "label": "Soccer", "value": "511" }, { "label": "SocialOutc", "value": "755" }, { "label": "softorange", "value": "2750" }, { "label": "softricefl", "value": "3308" }, { "label": "SoftSci-fi", "value": "3425" }, { "label": "Softyander", "value": "3840" }, { "label": "SoIsay", "value": "4043" }, { "label": "soisthewin", "value": "5797" }, { "label": "Soldiers", "value": "455" }, { "label": "Solitary", "value": "4198" }, { "label": "Solitarype", "value": "3243" }, { "label": "Son-in-law", "value": "1461" }, { "label": "Song", "value": "5695" }, { "label": "SongHuangl", "value": "4165" }, { "label": "SongofNort", "value": "5861" }, { "label": "SongoftheG", "value": "2509" }, { "label": "SonInLaw", "value": "2918" }, { "label": "sonnet", "value": "4452" }, { "label": "SonOfAGodP", "value": "1132" }, { "label": "SonofMyria", "value": "3952" }, { "label": "sonoftheqi", "value": "3968" }, { "label": "SonofYuyin", "value": "5883" }, { "label": "sopoor", "value": "2732" }, { "label": "Sora", "value": "4420" }, { "label": "soslack", "value": "4411" }, { "label": "soulanddre", "value": "2424" }, { "label": "SoulCelest", "value": "2415" }, { "label": "SoulChef", "value": "2244" }, { "label": "soulconver", "value": "3589" }, { "label": "soulmemory", "value": "2515" }, { "label": "SoulPower", "value": "404" }, { "label": "Souls", "value": "449" }, { "label": "SoulWorldR", "value": "5654" }, { "label": "SoundMagic", "value": "989" }, { "label": "SourceTaie", "value": "5556" }, { "label": "southfire", "value": "3854" }, { "label": "SouthKefei", "value": "2769" }, { "label": "southmirro", "value": "5013" }, { "label": "Southofthe", "value": "5211" }, { "label": "Southwindo", "value": "5515" }, { "label": "southwindt", "value": "4959" }, { "label": "Space", "value": "917" }, { "label": "space-time", "value": "5694" }, { "label": "Space-time", "value": "3178" }, { "label": "Space-time", "value": "3036" }, { "label": "Space-time", "value": "2986" }, { "label": "SpaceOpera", "value": "807" }, { "label": "Spaceship", "value": "547" }, { "label": "spacetimes", "value": "4508" }, { "label": "SparklingP", "value": "4757" }, { "label": "SpatialMan", "value": "721" }, { "label": "SpearWield", "value": "578" }, { "label": "SpecialAbi", "value": "353" }, { "label": "SpecialAbi", "value": "347" }, { "label": "SpecialAbi", "value": "1558" }, { "label": "SpecialFor", "value": "1327" }, { "label": "SpecialLik", "value": "940" }, { "label": "SpecialLov", "value": "1162" }, { "label": "specialpow", "value": "5051" }, { "label": "specialwar", "value": "2359" }, { "label": "speechless", "value": "2692" }, { "label": "Speechless", "value": "5174" }, { "label": "spendthewo", "value": "2049" }, { "label": "Spies", "value": "251" }, { "label": "Spike", "value": "4304" }, { "label": "SpiritAdvi", "value": "654" }, { "label": "SpiritAnal", "value": "1237" }, { "label": "Spirits", "value": "555" }, { "label": "Spiritstri", "value": "4935" }, { "label": "SpiritualQ", "value": "1307" }, { "label": "SpiritualR", "value": "1219" }, { "label": "SpiritUser", "value": "450" }, { "label": "spoiler", "value": "3588" }, { "label": "spoilevery", "value": "4177" }, { "label": "spookygame", "value": "3570" }, { "label": "sport", "value": "1432" }, { "label": "Sports", "value": "992" }, { "label": "SportsBask", "value": "993" }, { "label": "Sportscomp", "value": "3706" }, { "label": "sportsgeni", "value": "4024" }, { "label": "spring", "value": "4371" }, { "label": "Spywar", "value": "3186" }, { "label": "squirrelth", "value": "5809" }, { "label": "ssangrydra", "value": "4625" }, { "label": "St.LingYi", "value": "4725" }, { "label": "stablefort", "value": "2506" }, { "label": "stallion", "value": "4149" }, { "label": "Stand", "value": "2884" }, { "label": "Stand-alon", "value": "5130" }, { "label": "Star", "value": "1302" }, { "label": "Starcraft", "value": "1120" }, { "label": "stardarkni", "value": "2376" }, { "label": "stareather", "value": "5371" }, { "label": "starfish", "value": "2667" }, { "label": "starlessni", "value": "3533" }, { "label": "starnightf", "value": "4895" }, { "label": "Startabusi", "value": "3325" }, { "label": "startingze", "value": "5859" }, { "label": "startofthe", "value": "2258" }, { "label": "startwriti", "value": "2121" }, { "label": "starwars", "value": "1433" }, { "label": "Stayupalln", "value": "1813" }, { "label": "stayupnigh", "value": "3903" }, { "label": "stealingme", "value": "4867" }, { "label": "Stealtheop", "value": "5116" }, { "label": "steamponk", "value": "3559" }, { "label": "Steampunk", "value": "896" }, { "label": "Stepmother", "value": "1626" }, { "label": "Sterile", "value": "1862" }, { "label": "sterlingsi", "value": "5986" }, { "label": "stevec", "value": "2462" }, { "label": "StewedChic", "value": "2482" }, { "label": "StewedRice", "value": "5272" }, { "label": "stickfilia", "value": "4308" }, { "label": "StinkBeanS", "value": "2343" }, { "label": "Stir-fried", "value": "3911" }, { "label": "Stir-Fried", "value": "5033" }, { "label": "StockholmS", "value": "188" }, { "label": "StoicChara", "value": "729" }, { "label": "Stomachhur", "value": "2493" }, { "label": "stonemored", "value": "2512" }, { "label": "stopatfirs", "value": "2799" }, { "label": "stopfighti", "value": "4507" }, { "label": "stopsleepi", "value": "5765" }, { "label": "StoreOwner", "value": "322" }, { "label": "StormyMoon", "value": "5806" }, { "label": "stormyolds", "value": "4434" }, { "label": "storytelle", "value": "5117" }, { "label": "StraightAs", "value": "3286" }, { "label": "Straightfo", "value": "4470" }, { "label": "straightma", "value": "3203" }, { "label": "straightma", "value": "2893" }, { "label": "Straightme", "value": "2528" }, { "label": "StraightSe", "value": "643" }, { "label": "StraightUk", "value": "438" }, { "label": "stranger", "value": "3211" }, { "label": "Strangerss", "value": "5904" }, { "label": "StrategicB", "value": "150" }, { "label": "Strategist", "value": "451" }, { "label": "Strategy", "value": "3109" }, { "label": "strawshoes", "value": "4381" }, { "label": "Streamer", "value": "911" }, { "label": "streamerbl", "value": "2762" }, { "label": "streamofhe", "value": "3130" }, { "label": "Streamwith", "value": "3241" }, { "label": "Strength-b", "value": "371" }, { "label": "StrideinCh", "value": "4266" }, { "label": "string", "value": "5277" }, { "label": "Strong", "value": "1271" }, { "label": "StrongBack", "value": "1324" }, { "label": "strongbun", "value": "3766" }, { "label": "StrongCoup", "value": "1380" }, { "label": "strongesta", "value": "4255" }, { "label": "StrongestP", "value": "1520" }, { "label": "strongfema", "value": "3102" }, { "label": "strongfema", "value": "5339" }, { "label": "strongfema", "value": "5331" }, { "label": "strongfema", "value": "3062" }, { "label": "strongfema", "value": "3059" }, { "label": "strongfema", "value": "3057" }, { "label": "strongfema", "value": "3043" }, { "label": "strongfema", "value": "3033" }, { "label": "strongfema", "value": "2985" }, { "label": "strongfema", "value": "2958" }, { "label": "strongfema", "value": "2954" }, { "label": "strongfema", "value": "1747" }, { "label": "StrongFema", "value": "861" }, { "label": "StrongFema", "value": "1200" }, { "label": "Strongfrom", "value": "306" }, { "label": "Strongfrom", "value": "873" }, { "label": "StrongLove", "value": "30" }, { "label": "StrongLove", "value": "1224" }, { "label": "StrongMC", "value": "889" }, { "label": "StrongOpFe", "value": "1065" }, { "label": "StrongPowe", "value": "915" }, { "label": "StrongProt", "value": "1212" }, { "label": "strongstre", "value": "3347" }, { "label": "Strongsubo", "value": "862" }, { "label": "StrongSubo", "value": "838" }, { "label": "StrongtoSt", "value": "118" }, { "label": "strongwoma", "value": "4349" }, { "label": "struggle", "value": "3326" }, { "label": "Stubbornan", "value": "5108" }, { "label": "StubbornPr", "value": "565" }, { "label": "Student", "value": "3208" }, { "label": "Student-Te", "value": "365" }, { "label": "StudentUni", "value": "2358" }, { "label": "stupidfox", "value": "2020" }, { "label": "subjugatio", "value": "4402" }, { "label": "submissive", "value": "1760" }, { "label": "substitute", "value": "3567" }, { "label": "successoro", "value": "4454" }, { "label": "Succubus", "value": "681" }, { "label": "suddenlyit", "value": "4517" }, { "label": "SuddenStre", "value": "551" }, { "label": "SuddenWeal", "value": "660" }, { "label": "SuFengqian", "value": "4999" }, { "label": "Sufferingp", "value": "5376" }, { "label": "sugarpoem", "value": "3876" }, { "label": "Sugary", "value": "3374" }, { "label": "SuiandTang", "value": "3392" }, { "label": "suicidalpr", "value": "1774" }, { "label": "Suicides", "value": "775" }, { "label": "summer", "value": "4372" }, { "label": "summerjoke", "value": "4629" }, { "label": "summernow", "value": "2574" }, { "label": "summerrain", "value": "5355" }, { "label": "summerseaf", "value": "4828" }, { "label": "summertree", "value": "1889" }, { "label": "summertrip", "value": "1888" }, { "label": "summon", "value": "803" }, { "label": "SummonedHe", "value": "602" }, { "label": "Summoner", "value": "938" }, { "label": "Summoningf", "value": "3156" }, { "label": "SummoningM", "value": "315" }, { "label": "Summons", "value": "1475" }, { "label": "SuMuQiuxue", "value": "4702" }, { "label": "sundaysun", "value": "1869" }, { "label": "SunflowerF", "value": "4534" }, { "label": "SunnyPiggy", "value": "4782" }, { "label": "sunset", "value": "6048" }, { "label": "sunsetmoon", "value": "3476" }, { "label": "sunsetnear", "value": "3901" }, { "label": "sunsetover", "value": "2755" }, { "label": "SuperA", "value": "3252" }, { "label": "SuperAbili", "value": "5067" }, { "label": "superdarkd", "value": "4006" }, { "label": "Superfire", "value": "2852" }, { "label": "supergodfi", "value": "3753" }, { "label": "SuperGodGr", "value": "2014" }, { "label": "SuperGodNo", "value": "2849" }, { "label": "SuperHeroe", "value": "1130" }, { "label": "Superman", "value": "3011" }, { "label": "Superman7", "value": "6028" }, { "label": "Supernatur", "value": "820" }, { "label": "Supernatur", "value": "2385" }, { "label": "supernice1", "value": "5584" }, { "label": "supernovab", "value": "2731" }, { "label": "SuperPiran", "value": "2273" }, { "label": "Superpower", "value": "360" }, { "label": "Superpower", "value": "1265" }, { "label": "superround", "value": "5281" }, { "label": "SuperSemin", "value": "839" }, { "label": "Superstar", "value": "1147" }, { "label": "SuperTechn", "value": "1243" }, { "label": "supplier", "value": "3602" }, { "label": "Supporting", "value": "5682" }, { "label": "Supporting", "value": "5400" }, { "label": "Supportive", "value": "1524" }, { "label": "supportthe", "value": "4554" }, { "label": "supremekin", "value": "5698" }, { "label": "SupremeStr", "value": "3640" }, { "label": "sure", "value": "5243" }, { "label": "SurfProsec", "value": "5251" }, { "label": "Survival", "value": "100" }, { "label": "Survivalch", "value": "3344" }, { "label": "SurvivalGa", "value": "514" }, { "label": "SuShaoqing", "value": "1892" }, { "label": "SushiKingB", "value": "4745" }, { "label": "Suspense", "value": "1213" }, { "label": "Suspensefl", "value": "3363" }, { "label": "Suspensefu", "value": "3345" }, { "label": "SuWei", "value": "2383" }, { "label": "SuYechen", "value": "1878" }, { "label": "SuYuyu", "value": "4229" }, { "label": "SuZiyouyou", "value": "2252" }, { "label": "SuzuharaYu", "value": "5383" }, { "label": "SwallowedS", "value": "1339" }, { "label": "swearnotto", "value": "2670" }, { "label": "Sweet", "value": "1158" }, { "label": "sweetandco", "value": "5681" }, { "label": "Sweetandso", "value": "2261" }, { "label": "sweetheart", "value": "5688" }, { "label": "sweetjelly", "value": "1836" }, { "label": "Sweetlove", "value": "5086" }, { "label": "sweetpet", "value": "3105" }, { "label": "sweetroman", "value": "1488" }, { "label": "SweetSoyMi", "value": "5591" }, { "label": "SweetText", "value": "929" }, { "label": "sweetwife", "value": "3563" }, { "label": "SweetYaoi", "value": "948" }, { "label": "Swimmingfi", "value": "2686" }, { "label": "SwingingDe", "value": "2733" }, { "label": "SwordAndMa", "value": "288" }, { "label": "SwordArtOn", "value": "1320" }, { "label": "Swordblood", "value": "1852" }, { "label": "Swordgod", "value": "2579" }, { "label": "SwordImmor", "value": "1898" }, { "label": "swordrepai", "value": "3280" }, { "label": "swordrepai", "value": "2617" }, { "label": "Swordsheep", "value": "5464" }, { "label": "Swordsman", "value": "793" }, { "label": "SwordWield", "value": "325" }, { "label": "Sword丨Lea", "value": "2229" }, { "label": "SxFriends", "value": "1581" }, { "label": "SxualAbuse", "value": "116" }, { "label": "Sysetm", "value": "1501" }, { "label": "system", "value": "1409" }, { "label": "System", "value": "119" }, { "label": "SystemAdmi", "value": "31" }, { "label": "SystemAdmi", "value": "865" }, { "label": "systemflow", "value": "3040" }, { "label": "systemflow", "value": "3023" }, { "label": "systemflow", "value": "3015" }, { "label": "systemflow", "value": "2983" }, { "label": "systemflow", "value": "2979" }, { "label": "SystemFlow", "value": "1644" }, { "label": "systemmale", "value": "3734" }, { "label": "SystemNo.3", "value": "2281" }, { "label": "systemowne", "value": "1240" }, { "label": "SystemTran", "value": "1468" }, { "label": "SystemTran", "value": "1330" }, { "label": "TableTenni", "value": "518" }, { "label": "TachibanaM", "value": "5934" }, { "label": "TaibaiJun1", "value": "5417" }, { "label": "TaihoZwei", "value": "4676" }, { "label": "Tailsman", "value": "1713" }, { "label": "Takeaplane", "value": "2455" }, { "label": "takehome", "value": "3434" }, { "label": "takeoffboy", "value": "2633" }, { "label": "takeoverth", "value": "2421" }, { "label": "takestock", "value": "2172" }, { "label": "Talent", "value": "586" }, { "label": "Talentedgi", "value": "3398" }, { "label": "Talents", "value": "1314" }, { "label": "TalentShow", "value": "1521" }, { "label": "Talismans", "value": "1175" }, { "label": "talkingtig", "value": "5562" }, { "label": "tallpoorha", "value": "4789" }, { "label": "TangDynast", "value": "3107" }, { "label": "TangDynast", "value": "2941" }, { "label": "TangerineT", "value": "4391" }, { "label": "TangJichen", "value": "1855" }, { "label": "TangShaoqi", "value": "2220" }, { "label": "TangThirty", "value": "2843" }, { "label": "Taoist", "value": "1472" }, { "label": "Taoistprie", "value": "3113" }, { "label": "Tasker", "value": "1628" }, { "label": "TataTam", "value": "4896" }, { "label": "TaurenIron", "value": "1929" }, { "label": "TaurenWarr", "value": "5985" }, { "label": "Taurus", "value": "3905" }, { "label": "TCOCChrysa", "value": "5807" }, { "label": "Teacher", "value": "664" }, { "label": "teacher-st", "value": "3731" }, { "label": "TeacherDap", "value": "5905" }, { "label": "TeacherDis", "value": "1348" }, { "label": "TeacherHua", "value": "5866" }, { "label": "teachermal", "value": "5052" }, { "label": "TeacherMC", "value": "1349" }, { "label": "Teachers", "value": "252" }, { "label": "tealcan&am", "value": "5372" }, { "label": "team", "value": "1351" }, { "label": "Teamwork", "value": "101" }, { "label": "Technologi", "value": "488" }, { "label": "technology", "value": "3288" }, { "label": "Technology", "value": "1121" }, { "label": "Technology", "value": "961" }, { "label": "Technology", "value": "3348" }, { "label": "Technology", "value": "1967" }, { "label": "Technology", "value": "847" }, { "label": "TeckTyrann", "value": "2107" }, { "label": "Teemotofly", "value": "2442" }, { "label": "TeenageXia", "value": "2784" }, { "label": "TempleThir", "value": "1949" }, { "label": "ten-cutmad", "value": "4108" }, { "label": "TenCommand", "value": "2164" }, { "label": "Tenconsecu", "value": "3943" }, { "label": "Tennis", "value": "519" }, { "label": "tenrabbits", "value": "3878" }, { "label": "Tensura", "value": "1594" }, { "label": "tentaclemu", "value": "5249" }, { "label": "Tentacles", "value": "1020" }, { "label": "Tenthousan", "value": "1939" }, { "label": "TenThousan", "value": "2620" }, { "label": "TenYearsof", "value": "3921" }, { "label": "TerminalIl", "value": "658" }, { "label": "Terracenea", "value": "3342" }, { "label": "TerritoryC", "value": "1329" }, { "label": "TerritoryM", "value": "1725" }, { "label": "Terrori", "value": "5068" }, { "label": "Terrorists", "value": "767" }, { "label": "ThaiNovel", "value": "1683" }, { "label": "Thanksgivi", "value": "5011" }, { "label": "Thankyou", "value": "4115" }, { "label": "Thankyoufo", "value": "2563" }, { "label": "ThatMing", "value": "5944" }, { "label": "TheAdventu", "value": "4433" }, { "label": "Theancesto", "value": "2259" }, { "label": "Theashesar", "value": "2419" }, { "label": "TheAsteris", "value": "1672" }, { "label": "TheBeginni", "value": "5574" }, { "label": "Thebestbra", "value": "3514" }, { "label": "Thebigdevi", "value": "2024" }, { "label": "Thebiggest", "value": "2016" }, { "label": "Thebloodco", "value": "5492" }, { "label": "Thebluesta", "value": "4592" }, { "label": "Thebrillia", "value": "4403" }, { "label": "Thecatisgo", "value": "2475" }, { "label": "Thecatwhos", "value": "6093" }, { "label": "TheChaosOr", "value": "5636" }, { "label": "TheDailyLi", "value": "4530" }, { "label": "thedayisco", "value": "3580" }, { "label": "TheDevil", "value": "5075" }, { "label": "theendofth", "value": "5430" }, { "label": "TheEndofWo", "value": "3975" }, { "label": "theevening", "value": "3469" }, { "label": "theevernon", "value": "1426" }, { "label": "Thefirstli", "value": "3898" }, { "label": "thefishint", "value": "4445" }, { "label": "Thefishkin", "value": "5920" }, { "label": "Thefishmar", "value": "2871" }, { "label": "Thefiveele", "value": "5226" }, { "label": "Theflowero", "value": "1808" }, { "label": "TheFourthC", "value": "3210" }, { "label": "TheGamer", "value": "1668" }, { "label": "Theghostre", "value": "5539" }, { "label": "Thegloryof", "value": "3467" }, { "label": "Thegloryof", "value": "2671" }, { "label": "TheGodfath", "value": "2161" }, { "label": "thegodofde", "value": "1977" }, { "label": "Thegodoffa", "value": "3625" }, { "label": "TheGospelo", "value": "1854" }, { "label": "TheGreatDe", "value": "3828" }, { "label": "theInterne", "value": "3287" }, { "label": "Theirstory", "value": "4882" }, { "label": "Thejourney", "value": "6104" }, { "label": "thejudge", "value": "4102" }, { "label": "Thekingask", "value": "5488" }, { "label": "Thelastday", "value": "3741" }, { "label": "Thelightof", "value": "1920" }, { "label": "Thelistdep", "value": "2747" }, { "label": "Thelistisi", "value": "2375" }, { "label": "TheLonelyM", "value": "4285" }, { "label": "Thelong-te", "value": "4181" }, { "label": "TheMainCha", "value": "5074" }, { "label": "TheManInTh", "value": "1225" }, { "label": "Themorning", "value": "4829" }, { "label": "Themysteri", "value": "3584" }, { "label": "Thenewbact", "value": "2062" }, { "label": "Theoceando", "value": "2115" }, { "label": "Theoldboyw", "value": "5735" }, { "label": "Theoldfive", "value": "2350" }, { "label": "Theoldmani", "value": "3856" }, { "label": "theothersh", "value": "4082" }, { "label": "Theplayofg", "value": "5832" }, { "label": "Thepowerof", "value": "2537" }, { "label": "Theprideof", "value": "6132" }, { "label": "Theprovinc", "value": "6092" }, { "label": "Thequeenis", "value": "2300" }, { "label": "Therainisf", "value": "6077" }, { "label": "TherealMr.", "value": "3998" }, { "label": "therearefi", "value": "2143" }, { "label": "Therearewh", "value": "5575" }, { "label": "Thereisabu", "value": "6003" }, { "label": "Thereisana", "value": "5196" }, { "label": "Thereisfir", "value": "3500" }, { "label": "ThereisnoN", "value": "3543" }, { "label": "Thereisnos", "value": "5246" }, { "label": "Therunaway", "value": "4971" }, { "label": "thescienti", "value": "3213" }, { "label": "Theseahasn", "value": "3486" }, { "label": "theseventh", "value": "3473" }, { "label": "Thestronga", "value": "5076" }, { "label": "Thestronge", "value": "2105" }, { "label": "Thesunsett", "value": "1807" }, { "label": "Theswordsw", "value": "5869" }, { "label": "Thetasteof", "value": "4917" }, { "label": "TheThreeKi", "value": "1872" }, { "label": "Thetopofth", "value": "2841" }, { "label": "Thetruegod", "value": "2303" }, { "label": "Thetwothor", "value": "4851" }, { "label": "Thevoiceof", "value": "4824" }, { "label": "Thewayofth", "value": "2758" }, { "label": "thewholewo", "value": "6021" }, { "label": "Thewindblo", "value": "6039" }, { "label": "thewindisb", "value": "2075" }, { "label": "TheWizardS", "value": "5752" }, { "label": "Theworld&a", "value": "2205" }, { "label": "Theworldis", "value": "4548" }, { "label": "Theworldis", "value": "3520" }, { "label": "Theworldof", "value": "4602" }, { "label": "theworldwi", "value": "5838" }, { "label": "Thief", "value": "3630" }, { "label": "Thieves", "value": "420" }, { "label": "thinkcaref", "value": "4136" }, { "label": "Thinkingof", "value": "2186" }, { "label": "thirteen", "value": "4405" }, { "label": "thirteenth", "value": "5871" }, { "label": "Thirty-two", "value": "2323" }, { "label": "Thirtycatt", "value": "5142" }, { "label": "Thisconten", "value": "3982" }, { "label": "thisisatru", "value": "4845" }, { "label": "Thisissure", "value": "2768" }, { "label": "Thismanisn", "value": "4759" }, { "label": "Thiswaterm", "value": "5955" }, { "label": "thisyear", "value": "2034" }, { "label": "Thosewhowa", "value": "5210" }, { "label": "ThousandMo", "value": "4899" }, { "label": "ThousandSh", "value": "4621" }, { "label": "thousandso", "value": "5163" }, { "label": "Thousandso", "value": "2498" }, { "label": "ThousandTe", "value": "2399" }, { "label": "thousandti", "value": "4700" }, { "label": "Three-flav", "value": "1912" }, { "label": "threeandfo", "value": "3679" }, { "label": "threeclear", "value": "4567" }, { "label": "Threedaysa", "value": "1856" }, { "label": "threedaysf", "value": "3786" }, { "label": "threedayst", "value": "4776" }, { "label": "ThreeDotIn", "value": "2712" }, { "label": "Threehundr", "value": "5717" }, { "label": "ThreeKingd", "value": "1356" }, { "label": "ThreeKingd", "value": "5693" }, { "label": "ThreeKingd", "value": "2935" }, { "label": "threelittl", "value": "2198" }, { "label": "ThreeLives", "value": "2503" }, { "label": "ThreeLives", "value": "2072" }, { "label": "Threepiece", "value": "5995" }, { "label": "Threerelig", "value": "3360" }, { "label": "Threesome", "value": "1042" }, { "label": "threestick", "value": "4092" }, { "label": "threeteeth", "value": "2381" }, { "label": "threethous", "value": "5151" }, { "label": "ThreeThous", "value": "5419" }, { "label": "threethree", "value": "3885" }, { "label": "ThreeTower", "value": "5239" }, { "label": "Threeways", "value": "4107" }, { "label": "Threeyolks", "value": "6044" }, { "label": "ThreshingG", "value": "1950" }, { "label": "Thriller", "value": "476" }, { "label": "Throughthe", "value": "4080" }, { "label": "ThugLuFeng", "value": "3691" }, { "label": "thunderand", "value": "5289" }, { "label": "Thunderous", "value": "1981" }, { "label": "Tianbang78", "value": "1785" }, { "label": "Tianbangbi", "value": "5197" }, { "label": "TianbangCh", "value": "6087" }, { "label": "TianbangDi", "value": "3371" }, { "label": "TianbangFa", "value": "4041" }, { "label": "Tianbanggr", "value": "2741" }, { "label": "TianbangHu", "value": "2603" }, { "label": "Tianbangol", "value": "2222" }, { "label": "TianbangOt", "value": "6051" }, { "label": "Tianbangth", "value": "2148" }, { "label": "TianbangTo", "value": "4004" }, { "label": "TianbangYa", "value": "2311" }, { "label": "TianjiCour", "value": "4067" }, { "label": "TianNaixin", "value": "5504" }, { "label": "TianrenCit", "value": "4040" }, { "label": "Tianshi", "value": "3709" }, { "label": "Tianshitak", "value": "2338" }, { "label": "TianTingwe", "value": "3383" }, { "label": "Tiantong", "value": "4054" }, { "label": "TianyanShe", "value": "3507" }, { "label": "TianYiding", "value": "2306" }, { "label": "TianYixian", "value": "5010" }, { "label": "tigerqueen", "value": "5769" }, { "label": "tigerroar", "value": "5225" }, { "label": "TigerSkinM", "value": "3991" }, { "label": "Tigerteeth", "value": "2520" }, { "label": "tigertiger", "value": "4451" }, { "label": "Tiggerlove", "value": "4991" }, { "label": "Time-Trave", "value": "1940" }, { "label": "TimeandSpa", "value": "1499" }, { "label": "TimeandSpa", "value": "897" }, { "label": "timegate", "value": "3336" }, { "label": "Timeissile", "value": "5987" }, { "label": "TimeKingJO", "value": "2560" }, { "label": "Timelimit", "value": "3834" }, { "label": "TimeLoop", "value": "702" }, { "label": "TimeManipu", "value": "672" }, { "label": "TimeParado", "value": "777" }, { "label": "TimeSkip", "value": "410" }, { "label": "TimeTravel", "value": "199" }, { "label": "TimidProta", "value": "463" }, { "label": "TingFengZh", "value": "1884" }, { "label": "Titans", "value": "753" }, { "label": "toast", "value": "4801" }, { "label": "tobacco", "value": "2187" }, { "label": "Today&0", "value": "2699" }, { "label": "Toilet", "value": "2716" }, { "label": "toiletlepr", "value": "3794" }, { "label": "Tokyo", "value": "1446" }, { "label": "TokyoGhoul", "value": "1739" }, { "label": "tomatofish", "value": "4388" }, { "label": "TomatoUme", "value": "5499" }, { "label": "TomboyishF", "value": "466" }, { "label": "TombRaider", "value": "3978" }, { "label": "TombRaider", "value": "2444" }, { "label": "TombRaider", "value": "2433" }, { "label": "TombRaider", "value": "2344" }, { "label": "TombRaider", "value": "2213" }, { "label": "tomorrowwh", "value": "4492" }, { "label": "tomorrowwi", "value": "1896" }, { "label": "ToneMasaya", "value": "2012" }, { "label": "Tongsheng", "value": "4926" }, { "label": "Tongzi", "value": "4491" }, { "label": "tonightrai", "value": "5567" }, { "label": "Tooold", "value": "6060" }, { "label": "toothinpig", "value": "4485" }, { "label": "TopMC", "value": "1655" }, { "label": "TopoftheCl", "value": "2740" }, { "label": "TopoftheCl", "value": "2103" }, { "label": "TopoftheCl", "value": "2023" }, { "label": "TopoftheFo", "value": "2420" }, { "label": "Topstream", "value": "3260" }, { "label": "Toriko", "value": "1336" }, { "label": "Tornadodes", "value": "6057" }, { "label": "Torture", "value": "728" }, { "label": "touchyou", "value": "4048" }, { "label": "Toughgirl", "value": "3142" }, { "label": "towashthed", "value": "2662" }, { "label": "TowerDefen", "value": "1177" }, { "label": "trackandfi", "value": "3610" }, { "label": "Trade", "value": "863" }, { "label": "TradeWar", "value": "3100" }, { "label": "Tragedy", "value": "887" }, { "label": "TragicPast", "value": "140" }, { "label": "Tramsmigra", "value": "1601" }, { "label": "Tranformer", "value": "852" }, { "label": "Transforma", "value": "5686" }, { "label": "Transforma", "value": "109" }, { "label": "Transforme", "value": "4123" }, { "label": "transmigat", "value": "1436" }, { "label": "transmigra", "value": "1420" }, { "label": "Transmigra", "value": "32" }, { "label": "Transmigra", "value": "1512" }, { "label": "Transmigra", "value": "1098" }, { "label": "Transmigra", "value": "1209" }, { "label": "Transmigra", "value": "1119" }, { "label": "Transmigra", "value": "1112" }, { "label": "Transmigra", "value": "1048" }, { "label": "Transmigra", "value": "968" }, { "label": "Transplant", "value": "525" }, { "label": "Transporte", "value": "790" }, { "label": "Transporte", "value": "554" }, { "label": "Transporte", "value": "464" }, { "label": "Transporte", "value": "372" }, { "label": "TransportI", "value": "1299" }, { "label": "Transportt", "value": "1231" }, { "label": "Trap", "value": "348" }, { "label": "travel", "value": "4353" }, { "label": "Traveling", "value": "1571" }, { "label": "Travelinga", "value": "6115" }, { "label": "TravelingT", "value": "1075" }, { "label": "traveller", "value": "1625" }, { "label": "Travelthro", "value": "6134" }, { "label": "Traverse", "value": "901" }, { "label": "TreasureCh", "value": "3635" }, { "label": "TreasureHu", "value": "1238" }, { "label": "TreasureHu", "value": "964" }, { "label": "TreasureHu", "value": "942" }, { "label": "treefool", "value": "3823" }, { "label": "treeofenli", "value": "2809" }, { "label": "TribalSoci", "value": "465" }, { "label": "trickery", "value": "3157" }, { "label": "trickery1V", "value": "3075" }, { "label": "trickeryin", "value": "2970" }, { "label": "trickerySl", "value": "5335" }, { "label": "Trickster", "value": "452" }, { "label": "Trnasmigra", "value": "1552" }, { "label": "Troubledti", "value": "3092" }, { "label": "Troubledti", "value": "3054" }, { "label": "Troubledti", "value": "3052" }, { "label": "TroubledTi", "value": "5349" }, { "label": "TroubledWo", "value": "2534" }, { "label": "Trueandfal", "value": "3189" }, { "label": "TrueorFake", "value": "2915" }, { "label": "TrumanLive", "value": "2452" }, { "label": "TS", "value": "4334" }, { "label": "TsingYiLao", "value": "5264" }, { "label": "TsukibaAki", "value": "2138" }, { "label": "Tsundere", "value": "349" }, { "label": "TsundereLo", "value": "1723" }, { "label": "Tsunderesc", "value": "2464" }, { "label": "Tsuru", "value": "801" }, { "label": "tumbler", "value": "3534" }, { "label": "Turnonairc", "value": "5943" }, { "label": "Turnthecir", "value": "5561" }, { "label": "Turtle", "value": "3937" }, { "label": "turtlelike", "value": "4750" }, { "label": "Tutuwantst", "value": "4392" }, { "label": "tv", "value": "1431" }, { "label": "twelvemove", "value": "3852" }, { "label": "TwentyFame", "value": "2380" }, { "label": "twilight", "value": "1964" }, { "label": "twilightdr", "value": "2775" }, { "label": "Twilightis", "value": "1850" }, { "label": "twilightmy", "value": "4011" }, { "label": "Twinbabies", "value": "1176" }, { "label": "twingods", "value": "2764" }, { "label": "Twins", "value": "196" }, { "label": "Twistbroth", "value": "2645" }, { "label": "TwistedChe", "value": "5385" }, { "label": "TwistedPer", "value": "499" }, { "label": "two", "value": "3678" }, { "label": "Two-dimens", "value": "6138" }, { "label": "Two-dimens", "value": "4116" }, { "label": "Two-dimens", "value": "2612" }, { "label": "Two-dimens", "value": "2427" }, { "label": "Two-dimens", "value": "2373" }, { "label": "two-waycru", "value": "3115" }, { "label": "two-wayred", "value": "3321" }, { "label": "TwoChildre", "value": "3488" }, { "label": "Twodimensi", "value": "6144" }, { "label": "Twohorsesa", "value": "6010" }, { "label": "TwoJinSuia", "value": "5704" }, { "label": "Twopeopleb", "value": "2714" }, { "label": "Twopoundso", "value": "2673" }, { "label": "Twotwothre", "value": "3536" }, { "label": "twotwoyell", "value": "4648" }, { "label": "TypeMoon", "value": "1595" }, { "label": "Tyrant", "value": "1762" }, { "label": "Uchihaswor", "value": "5578" }, { "label": "Ugly", "value": "3448" }, { "label": "Uglyface", "value": "6040" }, { "label": "UglyProtag", "value": "739" }, { "label": "UglytoBeau", "value": "483" }, { "label": "Ultimatein", "value": "4760" }, { "label": "UltramanJu", "value": "5658" }, { "label": "UltramanPo", "value": "1935" }, { "label": "unbearable", "value": "2048" }, { "label": "Uncertainw", "value": "5669" }, { "label": "Uncle", "value": "3593" }, { "label": "UncleArche", "value": "5386" }, { "label": "UncleLiter", "value": "4435" }, { "label": "UncleLiuHu", "value": "5544" }, { "label": "UncleMario", "value": "4296" }, { "label": "unclemerea", "value": "5404" }, { "label": "Unconditio", "value": "141" }, { "label": "Undead", "value": "4345" }, { "label": "undeadfish", "value": "2124" }, { "label": "Undead丨Kn", "value": "2214" }, { "label": "Undefeated", "value": "2850" }, { "label": "Undercover", "value": "3328" }, { "label": "Underestim", "value": "580" }, { "label": "underlolic", "value": "2702" }, { "label": "undersilve", "value": "2431" }, { "label": "understate", "value": "2833" }, { "label": "understood", "value": "4843" }, { "label": "underthera", "value": "3537" }, { "label": "underthesn", "value": "4616" }, { "label": "underthest", "value": "3743" }, { "label": "UnderYeYuc", "value": "5360" }, { "label": "Undocument", "value": "1801" }, { "label": "unexpected", "value": "1395" }, { "label": "Unexpected", "value": "4574" }, { "label": "unfinished", "value": "5381" }, { "label": "Unintentio", "value": "2824" }, { "label": "Unique", "value": "3845" }, { "label": "UniqueCult", "value": "323" }, { "label": "UniqueWeap", "value": "735" }, { "label": "UniqueWeap", "value": "751" }, { "label": "Universale", "value": "4293" }, { "label": "unknown", "value": "2517" }, { "label": "UnknownTao", "value": "2422" }, { "label": "Unknowntea", "value": "1833" }, { "label": "Unlimitedc", "value": "2844" }, { "label": "UnlimitedF", "value": "1530" }, { "label": "Unlimiteds", "value": "3955" }, { "label": "unlucky", "value": "4119" }, { "label": "UnluckyPro", "value": "432" }, { "label": "Unprincipl", "value": "5078" }, { "label": "Unreliable", "value": "456" }, { "label": "Unremarkab", "value": "5948" }, { "label": "Unrequited", "value": "561" }, { "label": "UnrulyConf", "value": "3472" }, { "label": "unyielding", "value": "4098" }, { "label": "Updatewith", "value": "3951" }, { "label": "upgrade", "value": "3132" }, { "label": "upgradeflo", "value": "3204" }, { "label": "Upsetting", "value": "2184" }, { "label": "Urban", "value": "350" }, { "label": "UrbanDatan", "value": "1874" }, { "label": "urbanimmor", "value": "3601" }, { "label": "UrbanLife", "value": "893" }, { "label": "UrbanMilit", "value": "2505" }, { "label": "urbanshark", "value": "2256" }, { "label": "urbanstar", "value": "2210" }, { "label": "Urbanyearn", "value": "2846" }, { "label": "urbanyoung", "value": "5907" }, { "label": "Urbanyouth", "value": "1727" }, { "label": "vampire", "value": "1419" }, { "label": "Vampire", "value": "995" }, { "label": "vampiredri", "value": "2504" }, { "label": "Vampires", "value": "16" }, { "label": "Vanves", "value": "3232" }, { "label": "Variety", "value": "3274" }, { "label": "VarietySho", "value": "1645" }, { "label": "VenerableP", "value": "4210" }, { "label": "VenusSoul", "value": "4039" }, { "label": "VersatileM", "value": "1222" }, { "label": "veryhappy", "value": "3989" }, { "label": "veryobsess", "value": "5402" }, { "label": "verypurean", "value": "4957" }, { "label": "verysleepy", "value": "3933" }, { "label": "Vest", "value": "1504" }, { "label": "Vicissitud", "value": "5230" }, { "label": "Victoria", "value": "5819" }, { "label": "VictorianE", "value": "924" }, { "label": "Videogame", "value": "5080" }, { "label": "videogames", "value": "4339" }, { "label": "videostrea", "value": "3362" }, { "label": "Vientiane", "value": "4183" }, { "label": "Viewofthec", "value": "1973" }, { "label": "VikaBaka", "value": "3381" }, { "label": "villageisv", "value": "3935" }, { "label": "VillagerB", "value": "5031" }, { "label": "Villain", "value": "538" }, { "label": "Villainess", "value": "698" }, { "label": "Villainess", "value": "1618" }, { "label": "VillainEvi", "value": "1323" }, { "label": "VillainPro", "value": "1637" }, { "label": "Villains", "value": "1548" }, { "label": "VillIain", "value": "1502" }, { "label": "VinegarKin", "value": "3195" }, { "label": "Violence", "value": "4338" }, { "label": "violentthu", "value": "5980" }, { "label": "VirtualRea", "value": "93" }, { "label": "Vlogging", "value": "912" }, { "label": "Vodkaandmi", "value": "4826" }, { "label": "Voice", "value": "3224" }, { "label": "VoiceActor", "value": "549" }, { "label": "VoicePack", "value": "1319" }, { "label": "VoidLinnos", "value": "5463" }, { "label": "VoidStupid", "value": "4623" }, { "label": "Wakeup", "value": "5764" }, { "label": "Walkinthec", "value": "2297" }, { "label": "walkonthee", "value": "4658" }, { "label": "Wanderer", "value": "2088" }, { "label": "wanderings", "value": "1963" }, { "label": "WangDachen", "value": "4513" }, { "label": "WangEr", "value": "2459" }, { "label": "WangHuoyub", "value": "5908" }, { "label": "WangJiu", "value": "1845" }, { "label": "WangLin", "value": "3504" }, { "label": "WangXiaomi", "value": "2353" }, { "label": "WanliWanhu", "value": "3779" }, { "label": "Wannianfen", "value": "5475" }, { "label": "WanTsang", "value": "5270" }, { "label": "wanttocome", "value": "2859" }, { "label": "wanttoeatg", "value": "2501" }, { "label": "Wanttoeatt", "value": "4952" }, { "label": "wanttohold", "value": "5540" }, { "label": "wanttolive", "value": "4520" }, { "label": "war", "value": "1408" }, { "label": "War", "value": "848" }, { "label": "warboss", "value": "3904" }, { "label": "Warcraft", "value": "4360" }, { "label": "Warhammer4", "value": "796" }, { "label": "Warlock", "value": "3418" }, { "label": "Warlocks", "value": "792" }, { "label": "Warm", "value": "3216" }, { "label": "warmalittl", "value": "4722" }, { "label": "warmaster", "value": "4251" }, { "label": "Warmman", "value": "3447" }, { "label": "warmmilkte", "value": "4472" }, { "label": "warmtime", "value": "2606" }, { "label": "WarofCivil", "value": "2906" }, { "label": "WarRecords", "value": "1187" }, { "label": "warrior", "value": "3293" }, { "label": "Wars", "value": "151" }, { "label": "Warship", "value": "1572" }, { "label": "WarsWeakto", "value": "696" }, { "label": "wastebaske", "value": "4247" }, { "label": "wastedream", "value": "4020" }, { "label": "wastefish", "value": "2453" }, { "label": "Wasteland", "value": "898" }, { "label": "WasteWoodA", "value": "2167" }, { "label": "Wastewoodf", "value": "3442" }, { "label": "Wastewoodn", "value": "5594" }, { "label": "watchtoget", "value": "3926" }, { "label": "waterdropr", "value": "4502" }, { "label": "WaterMargi", "value": "3355" }, { "label": "watermelon", "value": "5007" }, { "label": "watermelon", "value": "4721" }, { "label": "watermelon", "value": "2169" }, { "label": "watermolec", "value": "3515" }, { "label": "watertenta", "value": "5967" }, { "label": "watertown", "value": "2585" }, { "label": "waxypen", "value": "3485" }, { "label": "weaklyacid", "value": "4614" }, { "label": "WeakProtag", "value": "477" }, { "label": "WeaktoClan", "value": "1325" }, { "label": "WeaktoStro", "value": "17" }, { "label": "WeaktoStro", "value": "5097" }, { "label": "Wealth", "value": "1536" }, { "label": "WealthChar", "value": "1602" }, { "label": "wealthy", "value": "4467" }, { "label": "WealthyCha", "value": "7" }, { "label": "WealthyCha", "value": "1573" }, { "label": "wealthyfam", "value": "5046" }, { "label": "Wearabook", "value": "1612" }, { "label": "wearback", "value": "3147" }, { "label": "WearBook", "value": "1154" }, { "label": "wearbooksy", "value": "5333" }, { "label": "wearingabo", "value": "1718" }, { "label": "weatapeach", "value": "5369" }, { "label": "WebNovel", "value": "1673" }, { "label": "WebnovelSp", "value": "1043" }, { "label": "WeektoStro", "value": "1002" }, { "label": "Weirdstori", "value": "6135" }, { "label": "WeiyangXun", "value": "3826" }, { "label": "WenGuang", "value": "2541" }, { "label": "WenrenJing", "value": "4880" }, { "label": "WenXuanyu", "value": "2546" }, { "label": "WenYue", "value": "4242" }, { "label": "Werebeasts", "value": "765" }, { "label": "Werewolf", "value": "5061" }, { "label": "Werewolves", "value": "1148" }, { "label": "WesternFan", "value": "1387" }, { "label": "Westernrai", "value": "2119" }, { "label": "WestwardJo", "value": "3382" }, { "label": "what&03", "value": "5181" }, { "label": "What&03", "value": "4430" }, { "label": "What&03", "value": "2028" }, { "label": "Whatareyou", "value": "5926" }, { "label": "whatisyour", "value": "5773" }, { "label": "Whattodoif", "value": "5835" }, { "label": "Whattodowi", "value": "5157" }, { "label": "Whenthedev", "value": "4294" }, { "label": "WhentheJun", "value": "4707" }, { "label": "WhenyourNP", "value": "4748" }, { "label": "White", "value": "3453" }, { "label": "WhiteBunSe", "value": "1260" }, { "label": "Whitecolla", "value": "3748" }, { "label": "whiteconfe", "value": "4501" }, { "label": "WhiteDevil", "value": "5266" }, { "label": "whitefiref", "value": "4701" }, { "label": "whitefox", "value": "5300" }, { "label": "whitefoxfr", "value": "3662" }, { "label": "whitegown", "value": "4778" }, { "label": "Whitehorse", "value": "2349" }, { "label": "whitekeybo", "value": "2249" }, { "label": "whitelate", "value": "5002" }, { "label": "whitelotus", "value": "3749" }, { "label": "Whitemoonl", "value": "3343" }, { "label": "whiterice", "value": "4904" }, { "label": "whiteshirt", "value": "2798" }, { "label": "Whitesnake", "value": "3573" }, { "label": "Whitesparr", "value": "5925" }, { "label": "Wholesome", "value": "3839" }, { "label": "Whoringmak", "value": "2713" }, { "label": "wife-chasi", "value": "3895" }, { "label": "WifeistheD", "value": "2583" }, { "label": "wildcatsus", "value": "5140" }, { "label": "wildcrumbs", "value": "5263" }, { "label": "Wilde", "value": "4777" }, { "label": "wilderness", "value": "6089" }, { "label": "Wilderness", "value": "884" }, { "label": "wildlove", "value": "5884" }, { "label": "wildradish", "value": "5953" }, { "label": "Will-o&", "value": "5550" }, { "label": "willowcand", "value": "2447" }, { "label": "Willowleav", "value": "3465" }, { "label": "windandclo", "value": "3723" }, { "label": "windandfor", "value": "5459" }, { "label": "windandmap", "value": "2616" }, { "label": "WindandSno", "value": "4728" }, { "label": "Windandwea", "value": "4632" }, { "label": "windandwhe", "value": "3930" }, { "label": "windchime~", "value": "4176" }, { "label": "winddance", "value": "4783" }, { "label": "WindMeteor", "value": "4830" }, { "label": "WindSpirit", "value": "1932" }, { "label": "windstopsn", "value": "5801" }, { "label": "windtobebu", "value": "3824" }, { "label": "windup", "value": "5110" }, { "label": "WindWhispe", "value": "5642" }, { "label": "windy", "value": "5751" }, { "label": "windyblack", "value": "6012" }, { "label": "wingedgras", "value": "5293" }, { "label": "Winningthe", "value": "2294" }, { "label": "winter", "value": "4150" }, { "label": "WinterandS", "value": "4744" }, { "label": "winterbird", "value": "5876" }, { "label": "Winterfall", "value": "4547" }, { "label": "wipeandpic", "value": "4911" }, { "label": "Wisdom", "value": "3108" }, { "label": "wishardtow", "value": "1819" }, { "label": "Wishes", "value": "562" }, { "label": "Witch", "value": "3750" }, { "label": "Witches", "value": "647" }, { "label": "witchfan", "value": "2139" }, { "label": "witheredpr", "value": "2413" }, { "label": "witheredsh", "value": "5169" }, { "label": "WithShehbu", "value": "3521" }, { "label": "wittylittl", "value": "4939" }, { "label": "Wizard", "value": "902" }, { "label": "Wizards", "value": "316" }, { "label": "wizardstre", "value": "3301" }, { "label": "WolfTotem", "value": "6058" }, { "label": "women&0", "value": "6148" }, { "label": "WongTingLi", "value": "3983" }, { "label": "woodbig", "value": "4091" }, { "label": "Woodbrothe", "value": "3916" }, { "label": "woodenswor", "value": "5599" }, { "label": "Working", "value": "5126" }, { "label": "Workplace", "value": "3271" }, { "label": "workplaceb", "value": "3571" }, { "label": "world", "value": "5974" }, { "label": "World-hopp", "value": "867" }, { "label": "WorldEmpir", "value": "1337" }, { "label": "WorldHopin", "value": "945" }, { "label": "WorldHoppi", "value": "33" }, { "label": "worldofphi", "value": "4737" }, { "label": "WorldofWar", "value": "1703" }, { "label": "Worlds", "value": "5063" }, { "label": "WorldTrave", "value": "332" }, { "label": "WorldTree", "value": "679" }, { "label": "WorldWar2", "value": "1495" }, { "label": "WOW", "value": "2894" }, { "label": "Writeabook", "value": "5141" }, { "label": "writebighe", "value": "4977" }, { "label": "writebookq", "value": "5718" }, { "label": "WriteBooks", "value": "4820" }, { "label": "writeonlyz", "value": "1837" }, { "label": "Writer", "value": "872" }, { "label": "Writers", "value": "406" }, { "label": "WriterUHae", "value": "5833" }, { "label": "Writingfoo", "value": "5615" }, { "label": "Wuhutookof", "value": "2429" }, { "label": "WuhuWuhu", "value": "4073" }, { "label": "Wuxia", "value": "626" }, { "label": "Wuxiabuysf", "value": "5947" }, { "label": "Wuxicheng", "value": "1849" }, { "label": "WW2", "value": "3730" }, { "label": "wxya", "value": "4310" }, { "label": "XiaJiBanxi", "value": "4981" }, { "label": "XiaJiEight", "value": "4027" }, { "label": "XiangziYan", "value": "4379" }, { "label": "Xianjun", "value": "3173" }, { "label": "XianmengXi", "value": "4227" }, { "label": "Xianxia", "value": "255" }, { "label": "XianxiaCul", "value": "6133" }, { "label": "XianYushan", "value": "5874" }, { "label": "Xianzun", "value": "3446" }, { "label": "Xiaobaicry", "value": "4973" }, { "label": "Xiaobuisno", "value": "5439" }, { "label": "Xiaofei", "value": "4747" }, { "label": "Xiaohubuys", "value": "4627" }, { "label": "XiaoJieJie", "value": "5737" }, { "label": "XiaoLinWei", "value": "6119" }, { "label": "Xiaomiisah", "value": "6054" }, { "label": "XiaomiStar", "value": "2648" }, { "label": "XiaoMo&", "value": "4742" }, { "label": "Xiaonianbl", "value": "2529" }, { "label": "XiaonianXu", "value": "2621" }, { "label": "Xiaoqianhu", "value": "6081" }, { "label": "Xiaoran", "value": "5535" }, { "label": "XiaoshanQi", "value": "4669" }, { "label": "XiaoTangon", "value": "4679" }, { "label": "Xiaothreey", "value": "2858" }, { "label": "XiaoxiangP", "value": "2836" }, { "label": "XiaoXiao", "value": "5529" }, { "label": "Xiaoxin", "value": "1944" }, { "label": "Xiaoyuhast", "value": "5224" }, { "label": "Xiaozhi", "value": "4558" }, { "label": "XiaTing", "value": "4887" }, { "label": "Xiawholove", "value": "3912" }, { "label": "XiaXiaolan", "value": "4894" }, { "label": "XiaXiaXia", "value": "4684" }, { "label": "XieDaoheng", "value": "2519" }, { "label": "Xier", "value": "4257" }, { "label": "Xijing", "value": "3387" }, { "label": "Xinjia", "value": "5380" }, { "label": "Xiuwaihuih", "value": "3353" }, { "label": "Xiuxian", "value": "3133" }, { "label": "Xiuxian&am", "value": "5198" }, { "label": "XiuXiuXiuX", "value": "1848" }, { "label": "Xizhilangc", "value": "5781" }, { "label": "XL-423", "value": "5546" }, { "label": "XNUMXDupda", "value": "3985" }, { "label": "Xuanhuan", "value": "539" }, { "label": "Xuansheng", "value": "3962" }, { "label": "XuanyueQin", "value": "4551" }, { "label": "XuanYuisea", "value": "4279" }, { "label": "XuebaIII", "value": "2231" }, { "label": "Xuebaisinv", "value": "2275" }, { "label": "Xueqiunder", "value": "2065" }, { "label": "XueshenSan", "value": "4521" }, { "label": "Xufamilyel", "value": "2247" }, { "label": "XuIintheTa", "value": "2477" }, { "label": "XuShizi", "value": "4515" }, { "label": "XuShiziqia", "value": "5633" }, { "label": "XuYuanle", "value": "4437" }, { "label": "YaeSakurai", "value": "4161" }, { "label": "Yahyfvs", "value": "6043" }, { "label": "Yakult", "value": "2279" }, { "label": "Yakumo", "value": "3909" }, { "label": "Yakumobloo", "value": "3923" }, { "label": "Yakumofami", "value": "4121" }, { "label": "Yakumowhit", "value": "5882" }, { "label": "Yamasquirr", "value": "5625" }, { "label": "Yancontrol", "value": "3229" }, { "label": "yandcrooke", "value": "5627" }, { "label": "Yandere", "value": "510" }, { "label": "YangXiaoA", "value": "2071" }, { "label": "YangXiaoli", "value": "4311" }, { "label": "YanQiuyu", "value": "5352" }, { "label": "YanyunYing", "value": "5259" }, { "label": "Yaoi", "value": "446" }, { "label": "Yaoyue", "value": "2864" }, { "label": "Yapi", "value": "5683" }, { "label": "yary", "value": "4726" }, { "label": "YawuZiyun", "value": "5255" }, { "label": "yearaftery", "value": "2822" }, { "label": "yearningfo", "value": "2743" }, { "label": "yearningfo", "value": "2551" }, { "label": "yearningfo", "value": "2230" }, { "label": "Yearningfo", "value": "2365" }, { "label": "Yearningfo", "value": "2193" }, { "label": "Yearningto", "value": "2926" }, { "label": "YeChengzho", "value": "4218" }, { "label": "YeFeiyu", "value": "4762" }, { "label": "YeGongzi", "value": "2680" }, { "label": "YeGucheng", "value": "2646" }, { "label": "YeGuxue", "value": "4151" }, { "label": "yellowleav", "value": "5158" }, { "label": "YellowSpri", "value": "1788" }, { "label": "YeluChengj", "value": "1829" }, { "label": "YeQianqiu", "value": "2766" }, { "label": "YeTingfeng", "value": "6025" }, { "label": "YeTong", "value": "4846" }, { "label": "YeXiaobai", "value": "2286" }, { "label": "YeYe", "value": "2928" }, { "label": "Yibai", "value": "4716" }, { "label": "Yibuchuckl", "value": "5976" }, { "label": "YichenSwor", "value": "5422" }, { "label": "yinandyang", "value": "6143" }, { "label": "Ying&03", "value": "2274" }, { "label": "Yinglili&a", "value": "4600" }, { "label": "YinGongziY", "value": "5629" }, { "label": "YingTianMo", "value": "4906" }, { "label": "YingXiaofe", "value": "2029" }, { "label": "YinLiisins", "value": "1924" }, { "label": "Yongchuang", "value": "1983" }, { "label": "yonorth", "value": "3881" }, { "label": "Yoooooooom", "value": "4690" }, { "label": "Youalsowan", "value": "3505" }, { "label": "youareatra", "value": "5356" }, { "label": "Youarelike", "value": "5612" }, { "label": "youaretoow", "value": "1899" }, { "label": "Youkaishan", "value": "4672" }, { "label": "Young", "value": "5091" }, { "label": "YoungerBro", "value": "747" }, { "label": "YoungerLov", "value": "769" }, { "label": "YoungerSis", "value": "563" }, { "label": "Younghero", "value": "6083" }, { "label": "younglovei", "value": "4326" }, { "label": "YoungMaste", "value": "5234" }, { "label": "YoungMaste", "value": "2757" }, { "label": "YoungMaste", "value": "2669" }, { "label": "Youofthesk", "value": "5732" }, { "label": "Yourpupils", "value": "4361" }, { "label": "Youth", "value": "894" }, { "label": "YouthLittl", "value": "5152" }, { "label": "youwholove", "value": "5153" }, { "label": "YouZhu", "value": "5854" }, { "label": "youzi", "value": "5039" }, { "label": "yoyo", "value": "5299" }, { "label": "Yu-Gi-Oh", "value": "1085" }, { "label": "YuanandMin", "value": "5696" }, { "label": "YuanXiwu", "value": "5652" }, { "label": "Yuanyiunde", "value": "3938" }, { "label": "Yuanyuzhou", "value": "6075" }, { "label": "YuboTiandi", "value": "2282" }, { "label": "YuDaoan", "value": "4084" }, { "label": "Yueguhua", "value": "4094" }, { "label": "YuFengqian", "value": "4550" }, { "label": "Yugioh", "value": "1263" }, { "label": "Yujielonga", "value": "3773" }, { "label": "YuMingYins", "value": "3780" }, { "label": "Yunding丨P", "value": "3583" }, { "label": "YunJiangdo", "value": "4915" }, { "label": "Yunmu", "value": "2233" }, { "label": "Yunshan", "value": "6008" }, { "label": "YunXiaoluo", "value": "6073" }, { "label": "YunZhongju", "value": "2839" }, { "label": "YunZimo", "value": "3544" }, { "label": "Yuri", "value": "840" }, { "label": "YuShiyu", "value": "4714" }, { "label": "YushuangYS", "value": "4656" }, { "label": "YuSu", "value": "5015" }, { "label": "Yutang", "value": "5354" }, { "label": "YuTsingYi", "value": "2524" }, { "label": "YuXiaoqi", "value": "2136" }, { "label": "YuYuyu", "value": "2687" }, { "label": "z-man", "value": "805" }, { "label": "Zanfran", "value": "4246" }, { "label": "ZanpakutoK", "value": "4968" }, { "label": "Zcraft", "value": "5787" }, { "label": "Zerg", "value": "1076" }, { "label": "Zergs", "value": "1104" }, { "label": "Zerocharge", "value": "3754" }, { "label": "zeroclothe", "value": "3827" }, { "label": "zerooverfl", "value": "6005" }, { "label": "zfighters", "value": "1442" }, { "label": "ZhangErgou", "value": "2653" }, { "label": "ZhangFeiin", "value": "2569" }, { "label": "ZhangGaoqi", "value": "3756" }, { "label": "Zhanginfro", "value": "4276" }, { "label": "ZhangJuli", "value": "2548" }, { "label": "ZhangLuo", "value": "4703" }, { "label": "ZhangShuan", "value": "3669" }, { "label": "ZhangTianb", "value": "2335" }, { "label": "ZhaNiu", "value": "5190" }, { "label": "ZhaoSisi", "value": "4327" }, { "label": "ZhaoWenwub", "value": "5498" }, { "label": "Zhengde", "value": "3295" }, { "label": "Zhenguan", "value": "3391" }, { "label": "ZhiLingInk", "value": "4985" }, { "label": "zhishen", "value": "2697" }, { "label": "Zhiyuan", "value": "4477" }, { "label": "ZhouJijiu", "value": "5611" }, { "label": "ZhuangShis", "value": "4234" }, { "label": "ZhuDabald", "value": "2851" }, { "label": "Zhuge", "value": "4563" }, { "label": "ZhugeDali&", "value": "2576" }, { "label": "ZhugeIrona", "value": "2165" }, { "label": "Zhugeiscra", "value": "2584" }, { "label": "ZhuqiuSanj", "value": "5361" }, { "label": "Zhutianliu", "value": "6146" }, { "label": "ZhuZhiyue", "value": "2123" }, { "label": "ZiandIaren", "value": "3811" }, { "label": "Zippo", "value": "2706" }, { "label": "ZiXuanXuan", "value": "1903" }, { "label": "Ziyingisno", "value": "5927" }, { "label": "Zofi", "value": "5005" }, { "label": "Zombie", "value": "918" }, { "label": "zombiefish", "value": "2257" }, { "label": "ZombieGod", "value": "2145" }, { "label": "ZombieQuee", "value": "1577" }, { "label": "Zombies", "value": "102" }, { "label": "ZombieSumo", "value": "3377" }, { "label": "Zongmen", "value": "3412" }, { "label": "Zoo", "value": "920" }, { "label": "Zuge", "value": "2150" }, { "label": "Zulongstil", "value": "2266" }, { "label": "ZuoJinghon", "value": "5791" }, { "label": "ZuwuGonggo", "value": "2676" }, { "label": "一条小段段", "value": "5851" }, { "label": "丑颜", "value": "5890" }, { "label": "东晨", "value": "5945" }, { "label": "丫大", "value": "5214" }, { "label": "云怅", "value": "5834" }, { "label": "仕辰", "value": "1873" }, { "label": "你的答案", "value": "4028" }, { "label": "北八", "value": "5520" }, { "label": "半弦", "value": "3873" }, { "label": "夜独", "value": "6009" }, { "label": "天律", "value": "6032" }, { "label": "女神", "value": "3212" }, { "label": "妖精", "value": "3172" }, { "label": "婚姻", "value": "5123" }, { "label": "宋朝", "value": "3124" }, { "label": "家族", "value": "3460" }, { "label": "小封", "value": "2203" }, { "label": "开凡", "value": "6111" }, { "label": "影", "value": "5901" }, { "label": "往月", "value": "5720" }, { "label": "慕阳", "value": "2057" }, { "label": "教授", "value": "3777" }, { "label": "晓墨", "value": "5939" }, { "label": "木其", "value": "5522" }, { "label": "森罗", "value": "2361" }, { "label": "氪金", "value": "3312" }, { "label": "汪叽", "value": "5800" }, { "label": "沙酱", "value": "6027" }, { "label": "清裁", "value": "2838" }, { "label": "温桑", "value": "5192" }, { "label": "焕焕", "value": "6116" }, { "label": "王晏", "value": "5816" }, { "label": "王者荣耀", "value": "3393" }, { "label": "直播", "value": "3279" }, { "label": "神话", "value": "3222" }, { "label": "空间", "value": "3103" }, { "label": "肆灵", "value": "6123" }, { "label": "萌图", "value": "2821" }, { "label": "蝉眠", "value": "5514" }, { "label": "谢邀", "value": "1904" }, { "label": "财女", "value": "5989" }, { "label": "越泽", "value": "5963" }, { "label": "酣歌", "value": "2182" }, { "label": "醉咏", "value": "5895" }, { "label": "醉猫", "value": "5923" }, { "label": "金融", "value": "3101" }, { "label": "铁帅", "value": "2093" }, { "label": "零充", "value": "2924" }, { "label": "非洲", "value": "3714" }, { "label": "风水", "value": "4863" }, { "label": "饕牛", "value": "1831" }], "value": "", "type": filterInputs_1.FilterTypes.Picker } } }); -exports.default = plugin; diff --git a/.js/plugins/english/ZetroTranslation[madara].js b/.js/plugins/english/ZetroTranslation[madara].js deleted file mode 100644 index 3f9358c..0000000 --- a/.js/plugins/english/ZetroTranslation[madara].js +++ /dev/null @@ -1,296 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var dayjs_1 = __importDefault(require("dayjs")); -var MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; -var MadaraPlugin = /** @class */ (function () { - function MadaraPlugin(metadata) { - this.id = metadata.id; - this.name = metadata.sourceName + "[madara]"; - var iconFileName = metadata.sourceName - .replace(/\s+/g, "") - .toLowerCase(); - this.icon = "multisrc/madara/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - this.filters = metadata.filters; - } - MadaraPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - novels = []; - url = this.site; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) { - url += (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.path) === null || _d === void 0 ? void 0 : _d.genres) || MadaraDefaultPath.genres) + - "/" + - filters.genres.value; - } - else { - url += ((_f = (_e = this.options) === null || _e === void 0 ? void 0 : _e.path) === null || _f === void 0 ? void 0 : _f.novels) || MadaraDefaultPath.novels; - } - url += - "/page/" + - pageNo + - "/" + - "?m_orderby=" + - (showLatestNovels ? "latest" : ((_g = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _g === void 0 ? void 0 : _g.value) || "rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges").remove(); - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novel, body, loadedCheerio, html, novelId, formData, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges, #manga-title span").remove(); - novel.name = - loadedCheerio(".post-title h1").text().trim() || - loadedCheerio("#manga-title h1").text(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("data-lazy-src") || - loadedCheerio(".summary_image > a > img").attr("data-src") || - loadedCheerio(".summary_image > a > img").attr("src") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item, .post-content").each(function () { - var detailName = loadedCheerio(this).find("h5").text().trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - case "التصنيفات": - novel.genres = detail.replace(/[\\t\\n]/g, ","); - break; - case "Author(s)": - case "المؤلف": - case "المؤلف (ين)": - novel.author = detail; - break; - case "Status": - case "الحالة": - novel.status = - detail.includes("OnGoing") || detail.includes("مستمرة") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - loadedCheerio("div.summary__content .code-block,script").remove(); - novel.summary = - loadedCheerio("div.summary__content").text().trim() || - loadedCheerio("#tab-manga-about").text().trim() || - loadedCheerio('.post-content_item h5:contains("Summary")') - .next() - .text() - .trim(); - if (!(((_a = this.options) === null || _a === void 0 ? void 0 : _a.useNewChapterEndpoint) !== true)) return [3 /*break*/, 3]; - novelId = loadedCheerio(".rating-post-id").attr("value") || - loadedCheerio("#manga-chapters-holder").attr("data-id") || - ""; - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - }).then(function (res) { return res.text(); })]; - case 2: - html = _b.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl + "ajax/chapters/", { - method: "POST", - }).then(function (res) { return res.text(); })]; - case 4: - html = _b.sent(); - _b.label = 5; - case 5: - if (html !== "0") { - loadedCheerio = (0, cheerio_1.load)(html); - } - chapters = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - releaseDate = loadedCheerio(this) - .find("span.chapter-release-date") - .text() - .trim(); - if (releaseDate) { - releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(releaseDate); - } - else { - /** - * Insert current date - */ - releaseDate = (0, dayjs_1.default)().format("LL"); - } - var chapterUrl = loadedCheerio(this).find("a").attr("href") || ""; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MadaraPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || - loadedCheerio(".text-right").html() || - loadedCheerio(".entry-content").html() || - ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MadaraPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url, {})]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return MadaraPlugin; -}()); -var plugin = new MadaraPlugin({ "id": "zetroTL", "sourceSite": "https://zetrotranslation.com/", "sourceName": "Zetro Translation", "filters": { "sort": { "label": "Order by", "value": "", "options": [{ "label": "Default", "value": "" }, { "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": filterInputs_1.FilterTypes.Picker }, "genres": { "label": "GENRES", "value": "", "options": [{ "label": "NONE", "value": "" }, { "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": filterInputs_1.FilterTypes.Picker } }, "options": { "path": { "genres": "genre" }, "lang": "English" } }); -exports.default = plugin; diff --git a/.js/plugins/english/ZinnNovel[madara].js b/.js/plugins/english/ZinnNovel[madara].js deleted file mode 100644 index c6a178e..0000000 --- a/.js/plugins/english/ZinnNovel[madara].js +++ /dev/null @@ -1,296 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var dayjs_1 = __importDefault(require("dayjs")); -var MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; -var MadaraPlugin = /** @class */ (function () { - function MadaraPlugin(metadata) { - this.id = metadata.id; - this.name = metadata.sourceName + "[madara]"; - var iconFileName = metadata.sourceName - .replace(/\s+/g, "") - .toLowerCase(); - this.icon = "multisrc/madara/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - this.filters = metadata.filters; - } - MadaraPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - novels = []; - url = this.site; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) { - url += (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.path) === null || _d === void 0 ? void 0 : _d.genres) || MadaraDefaultPath.genres) + - "/" + - filters.genres.value; - } - else { - url += ((_f = (_e = this.options) === null || _e === void 0 ? void 0 : _e.path) === null || _f === void 0 ? void 0 : _f.novels) || MadaraDefaultPath.novels; - } - url += - "/page/" + - pageNo + - "/" + - "?m_orderby=" + - (showLatestNovels ? "latest" : ((_g = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _g === void 0 ? void 0 : _g.value) || "rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges").remove(); - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novel, body, loadedCheerio, html, novelId, formData, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges, #manga-title span").remove(); - novel.name = - loadedCheerio(".post-title h1").text().trim() || - loadedCheerio("#manga-title h1").text(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("data-lazy-src") || - loadedCheerio(".summary_image > a > img").attr("data-src") || - loadedCheerio(".summary_image > a > img").attr("src") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item, .post-content").each(function () { - var detailName = loadedCheerio(this).find("h5").text().trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - case "التصنيفات": - novel.genres = detail.replace(/[\\t\\n]/g, ","); - break; - case "Author(s)": - case "المؤلف": - case "المؤلف (ين)": - novel.author = detail; - break; - case "Status": - case "الحالة": - novel.status = - detail.includes("OnGoing") || detail.includes("مستمرة") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - loadedCheerio("div.summary__content .code-block,script").remove(); - novel.summary = - loadedCheerio("div.summary__content").text().trim() || - loadedCheerio("#tab-manga-about").text().trim() || - loadedCheerio('.post-content_item h5:contains("Summary")') - .next() - .text() - .trim(); - if (!(((_a = this.options) === null || _a === void 0 ? void 0 : _a.useNewChapterEndpoint) !== true)) return [3 /*break*/, 3]; - novelId = loadedCheerio(".rating-post-id").attr("value") || - loadedCheerio("#manga-chapters-holder").attr("data-id") || - ""; - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - }).then(function (res) { return res.text(); })]; - case 2: - html = _b.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl + "ajax/chapters/", { - method: "POST", - }).then(function (res) { return res.text(); })]; - case 4: - html = _b.sent(); - _b.label = 5; - case 5: - if (html !== "0") { - loadedCheerio = (0, cheerio_1.load)(html); - } - chapters = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - releaseDate = loadedCheerio(this) - .find("span.chapter-release-date") - .text() - .trim(); - if (releaseDate) { - releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(releaseDate); - } - else { - /** - * Insert current date - */ - releaseDate = (0, dayjs_1.default)().format("LL"); - } - var chapterUrl = loadedCheerio(this).find("a").attr("href") || ""; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MadaraPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || - loadedCheerio(".text-right").html() || - loadedCheerio(".entry-content").html() || - ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MadaraPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url, {})]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return MadaraPlugin; -}()); -var plugin = new MadaraPlugin({ "id": "zinnovel", "sourceSite": "https://zinnovel.com/", "sourceName": "ZinnNovel", "filters": { "sort": { "label": "Order by", "options": [{ "label": "Default", "value": "" }, { "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" }], "value": "", "type": filterInputs_1.FilterTypes.Picker }, "genres": { "label": "GENRES", "options": [{ "label": "NONE", "value": "" }, { "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": "Game", "value": "game" }, { "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": "Live action", "value": "live-action" }, { "label": "Lolicon", "value": "lolicon" }, { "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" }], "value": "", "type": filterInputs_1.FilterTypes.Picker } }, "options": { "path": { "novels": "manga", "novel": "manga", "chapter": "manga", "genres": "manga-genre" }, "lang": "English" } }); -exports.default = plugin; diff --git a/.js/plugins/english/allnovelfull.js b/.js/plugins/english/allnovelfull.js deleted file mode 100644 index e714542..0000000 --- a/.js/plugins/english/allnovelfull.js +++ /dev/null @@ -1,301 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var cheerio_1 = require("cheerio"); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var isAbsoluteUrl_1 = require("@libs/isAbsoluteUrl"); -var AllNovelFullPlugin = /** @class */ (function () { - function AllNovelFullPlugin() { - this.id = "anf.net"; - this.name = "AllNovelFull"; - this.icon = "src/en/allnovelfull/icon.png"; - this.site = "https://allnovelfull.net"; - this.version = "1.0.0"; - this.filters = { - order: { - value: "/most-popular", - label: "Order by", - options: [ - { label: "Latest Release", value: "/latest-release-novel" }, - { label: "Hot Novel", value: "/hot-novel" }, - { label: "Completed Novel", value: "/completed-novel" }, - { label: "Most Popular", value: "/most-popular" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - genres: { - value: "", - label: "Genre", - options: [ - { label: "None", value: "" }, - { label: "Shounen", value: "/genre/Shounen" }, - { label: "Harem", value: "/genre/Harem" }, - { label: "Comedy", value: "/genre/Comedy" }, - { label: "Martial Arts", value: "/genre/Martial+Arts" }, - { label: "School Life", value: "/genre/School+Life" }, - { label: "Mystery", value: "/genre/Mystery" }, - { label: "Shoujo", value: "/genre/Shoujo" }, - { label: "Romance", value: "/genre/Romance" }, - { label: "Sci-fi", value: "/genre/Sci-fi" }, - { label: "Gender Bender", value: "/genre/Gender+Bender" }, - { label: "Mature", value: "/genre/Mature" }, - { label: "Fantasy", value: "/genre/Fantasy" }, - { label: "Horror", value: "/genre/Horror" }, - { label: "Drama", value: "/genre/Drama" }, - { label: "Tragedy", value: "/genre/Tragedy" }, - { label: "Supernatural", value: "/genre/Supernatural" }, - { label: "Ecchi", value: "/genre/Ecchi" }, - { label: "Xuanhuan", value: "/genre/Xuanhuan" }, - { label: "Adventure", value: "/genre/Adventure" }, - { label: "Action", value: "/genre/Action" }, - { label: "Psychological", value: "/genre/Psychological" }, - { label: "Xianxia", value: "/genre/Xianxia" }, - { label: "Wuxia", value: "/genre/Wuxia" }, - { label: "Historical", value: "/genre/Historical" }, - { label: "Slice of Life", value: "/genre/Slice+of+Life" }, - { label: "Seinen", value: "/genre/Seinen" }, - { label: "Lolicon", value: "/genre/Lolicon" }, - { label: "Adult", value: "/genre/Adult" }, - { label: "Josei", value: "/genre/Josei" }, - { label: "Sports", value: "/genre/Sports" }, - { label: "Smut", value: "/genre/Smut" }, - { label: "Mecha", value: "/genre/Mecha" }, - { label: "Yaoi", value: "/genre/Yaoi" }, - { label: "Shounen Ai", value: "/genre/Shounen+Ai" }, - { label: "Magical Realism", value: "/genre/Magical+Realism" }, - { label: "Video Games", value: "/genre/Video+Games" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - }; - } - AllNovelFullPlugin.prototype.parseNovels = function (loadedCheerio) { - var _this = this; - var novels = []; - loadedCheerio(".col-truyen-main .list-truyen .row").each(function (i, el) { - var novelName = loadedCheerio(el) - .find("h3.truyen-title > a") - .text(); - var novelCover = loadedCheerio(el).find("img.cover").attr("src"); - var novelUrl = loadedCheerio(el).find("h3.truyen-title > a").attr("href"); - if (!novelUrl) - return; - if (novelUrl && !(0, isAbsoluteUrl_1.isUrlAbsolute)(novelUrl)) { - novelUrl = _this.site + novelUrl; - } - if (novelCover && !(0, isAbsoluteUrl_1.isUrlAbsolute)(novelCover)) { - novelCover = _this.site + novelCover; - } - var novel = { - url: novelUrl, - name: novelName, - cover: novelCover, - }; - novels.push(novel); - }); - return novels; - }; - ; - AllNovelFullPlugin.prototype.popularNovels = function (pageNo, _a) { - var filters = _a.filters; - return __awaiter(this, void 0, void 0, function () { - var link, headers, body, loadedCheerio; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - link = this.site; - if (filters.genres.value.length) - link += filters.genres.value; - else - link += filters.order.value; - link += "?page=".concat(pageNo); - headers = new Headers(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(link, { headers: headers }).then(function (result) { - return result.text(); - })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - return [2 /*return*/, this.parseNovels(loadedCheerio)]; - } - }); - }); - }; - AllNovelFullPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - return __awaiter(this, void 0, void 0, function () { - var url, headers, result, body, loadedCheerio, novel, novelId, getChapters, _a; - var _this = this; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - url = novelUrl; - headers = new Headers(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url, { headers: headers })]; - case 1: - result = _b.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { - url: url, - chapters: [], - }; - novel.name = loadedCheerio(".book > img").attr("alt"); - novel.cover = this.site + loadedCheerio(".book > img").attr("src"); - novel.summary = loadedCheerio(".desc-text").text().trim(); - loadedCheerio(".info > div").each(function (i, el) { - var detailName = loadedCheerio(el).find("h3").text(); - var detail = loadedCheerio(el) - .find('a') - .map(function (a, ex) { return loadedCheerio(ex).text(); }) - .toArray() - .join(', '); - switch (detailName) { - case 'Author:': - novel.author = detail; - break; - case 'Status:': - novel.status = detail; - break; - case 'Genre:': - novel.genres = detail; - break; - } - }); - novelId = loadedCheerio("#rating").attr("data-novel-id"); - getChapters = function (id) { return __awaiter(_this, void 0, void 0, function () { - var chaptersUrl, data, chapters, chapter; - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - chaptersUrl = this.site + "/ajax/chapter-option?novelId=" + id; - return [4 /*yield*/, (0, fetch_1.fetchApi)(chaptersUrl, { headers: headers })]; - case 1: - data = _a.sent(); - return [4 /*yield*/, data.text()]; - case 2: - chapters = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(chapters); - chapter = []; - loadedCheerio("select > option").each(function (i, el) { - var chapterName = loadedCheerio(el).text(); - var releaseDate = null; - var cUrl = loadedCheerio(el).attr("value"); - var chapterUrl = _this.site + cUrl; - if (!cUrl) - return; - chapter.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - return [2 /*return*/, chapter]; - } - }); - }); }; - if (!novelId) return [3 /*break*/, 4]; - _a = novel; - return [4 /*yield*/, getChapters(novelId)]; - case 3: - _a.chapters = _b.sent(); - _b.label = 4; - case 4: return [2 /*return*/, novel]; - } - }); - }); - }; - ; - AllNovelFullPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var headers, result, body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - headers = new Headers(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl, { headers: headers })]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio("#chapter-content").html() || ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - ; - AllNovelFullPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var url, headers, result, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = "".concat(this.site, "/search?keyword=").concat(searchTerm, "&page=").concat(pageNo); - headers = new Headers(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url, { headers: headers })]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - return [2 /*return*/, this.parseNovels(loadedCheerio)]; - } - }); - }); - }; - ; - AllNovelFullPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url)]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return AllNovelFullPlugin; -}()); -exports.default = new AllNovelFullPlugin(); diff --git a/.js/plugins/english/bestlightnovel.js b/.js/plugins/english/bestlightnovel.js deleted file mode 100644 index e3b40d2..0000000 --- a/.js/plugins/english/bestlightnovel.js +++ /dev/null @@ -1,231 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var fetch_1 = require("@libs/fetch"); -var novelStatus_1 = require("@libs/novelStatus"); -var BLN = /** @class */ (function () { - function BLN() { - this.id = "BLN.com"; - this.name = "BestLightNovel"; - this.icon = "src/en/bestlightnovel/icon.png"; - this.site = "https://bestlightnovel.com/"; - this.version = "1.0.0"; - } - BLN.prototype.popularNovels = function (pageNo, options) { - return __awaiter(this, void 0, void 0, function () { - var url, result, _a, _b, body, loadedCheerio, novels; - return __generator(this, function (_c) { - switch (_c.label) { - case 0: - url = this.site + - "novel_list?type=topview&category=all&state=all&page=1" + - pageNo; - return [4 /*yield*/, fetch(url)]; - case 1: - result = _c.sent(); - if (!!result.ok) return [3 /*break*/, 3]; - _b = (_a = console).error; - return [4 /*yield*/, result.text()]; - case 2: - _b.apply(_a, [_c.sent()]); - // TODO: Cloudflare protection or other error - return [2 /*return*/, []]; - case 3: return [4 /*yield*/, result.text()]; - case 4: - body = _c.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio(".update_item.list_category").each(function () { - var novelName = loadedCheerio(this).find("h3 > a").text(); - var novelCover = loadedCheerio(this).find("img").attr("src"); - var novelUrl = loadedCheerio(this).find("h3 > a").attr("href"); - if (!novelUrl) { - // TODO: Handle error - console.error("No novel url!"); - return; - } - var novel = { - name: novelName, - url: novelUrl, - cover: novelCover, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - BLN.prototype.parseNovelAndChapters = function (novelUrl) { - var _a, _b, _c; - return __awaiter(this, void 0, void 0, function () { - var url, result, _d, _e, body, loadedCheerio, novel, status, novelChapters; - return __generator(this, function (_f) { - switch (_f.label) { - case 0: - url = novelUrl; - return [4 /*yield*/, fetch(url)]; - case 1: - result = _f.sent(); - if (!!result.ok) return [3 /*break*/, 3]; - _e = (_d = console).error; - return [4 /*yield*/, result.text()]; - case 2: - _e.apply(_d, [_f.sent()]); - // TODO: Cloudflare protection - return [2 /*return*/, { url: url, chapters: [] }]; - case 3: return [4 /*yield*/, result.text()]; - case 4: - body = _f.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { - url: url, - name: "", - cover: "", - author: "", - status: novelStatus_1.NovelStatus.Unknown, - genres: "", - summary: "", - chapters: [], - }; - novel.name = loadedCheerio(".truyen_info_right h1").text().trim(); - novel.cover = - loadedCheerio(".info_image img").attr("src") || defaultCover_1.defaultCover; - novel.summary = (_a = loadedCheerio("#noidungm").text()) === null || _a === void 0 ? void 0 : _a.trim(); - novel.author = (_b = loadedCheerio("#main_body > div.cotgiua > div.truyen_info_wrapper > div.truyen_info > div.entry-header > div.truyen_if_wrap > ul > li:nth-child(2) > a") - .text()) === null || _b === void 0 ? void 0 : _b.trim(); - status = (_c = loadedCheerio("#main_body > div.cotgiua > div.truyen_info_wrapper > div.truyen_info > div.entry-header > div.truyen_if_wrap > ul > li:nth-child(4) > a") - .text()) === null || _c === void 0 ? void 0 : _c.trim(); - novel.status = - status === "ONGOING" - ? novelStatus_1.NovelStatus.Ongoing - : status === "COMPLETED" - ? novelStatus_1.NovelStatus.Completed - : novelStatus_1.NovelStatus.Unknown; - novelChapters = []; - loadedCheerio(".chapter-list div.row").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = loadedCheerio(this) - .find("span:nth-child(2)") - .text() - .trim(); - var chapterUrl = loadedCheerio(this).find("a").attr("href"); - if (!chapterUrl) { - // TODO: Handle error - console.error("No chapter url!"); - return; - } - novelChapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = novelChapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - BLN.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = chapterUrl; - return [4 /*yield*/, fetch(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio("#vung_doc").html() || ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - BLN.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = "".concat(this.site, "search_novels/").concat(searchTerm); - return [4 /*yield*/, fetch(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio(".update_item.list_category").each(function () { - var novelName = loadedCheerio(this).find("h3 > a").text(); - var novelCover = loadedCheerio(this).find("img").attr("src"); - var novelUrl = loadedCheerio(this).find("h3 > a").attr("href"); - if (!novelUrl) { - // TODO: Handle error - console.error("No novel url!"); - return; - } - var novel = { name: novelName, cover: novelCover, url: novelUrl }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - BLN.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url)]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return BLN; -}()); -exports.default = new BLN(); diff --git a/.js/plugins/english/comrademao.js b/.js/plugins/english/comrademao.js deleted file mode 100644 index 6d78d6c..0000000 --- a/.js/plugins/english/comrademao.js +++ /dev/null @@ -1,224 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var cheerio_1 = require("cheerio"); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var ComradeMaoPlugin = /** @class */ (function () { - function ComradeMaoPlugin() { - this.id = "comrademao"; - this.name = "Comrade Mao"; - this.site = "https://comrademao.com/"; - this.version = "1.0.0"; - this.icon = "src/en/comrademao/icon.png"; - this.filters = { - category: { - value: "", - label: "Type", - options: [ - { label: "None", value: "" }, - { label: "Chinese", value: "/mtype/chinese/" }, - { label: "Japanese", value: "/mtype/japanese/" }, - { label: "Korean", value: "/mtype/korean/" }, - { label: "Manhua", value: "/mtype/manhua/" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - }; - } - ComradeMaoPlugin.prototype.parseNovels = function (loadedCheerio) { - var novels = []; - loadedCheerio(".listupd") - .find("div.bs") - .each(function () { - var novelName = loadedCheerio(this).find(".tt").text().trim(); - var novelCover = loadedCheerio(this).find("img").attr("src"); - var novelUrl = loadedCheerio(this).find("a").attr("href"); - if (!novelUrl) - return; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return novels; - }; - ComradeMaoPlugin.prototype.popularNovels = function (pageNo, _a) { - var filters = _a.filters; - return __awaiter(this, void 0, void 0, function () { - var link, headers, body, loadedCheerio; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - link = this.site; - link += filters.category.value; - link += "page/" + pageNo + "/?post_type=novel"; - headers = new Headers(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(link, { headers: headers }).then(function (result) { - return result.text(); - })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - return [2 /*return*/, this.parseNovels(loadedCheerio)]; - } - }); - }); - }; - ComradeMaoPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - return __awaiter(this, void 0, void 0, function () { - var url, headers, result, body, loadedCheerio, novel, chapter; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = novelUrl; - headers = new Headers(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url, { headers: headers })]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { - url: url, - chapters: [], - }; - novel.name = loadedCheerio(".entry-title").text().trim(); - novel.cover = loadedCheerio("div.thumbook > div > img").attr("src"); - loadedCheerio(".infox .wd-full").each(function (i, el) { - var detailName = loadedCheerio(el).find("b").text(); - var detail = loadedCheerio(el).find('span').text(); - switch (detailName) { - case 'Publisher: ': - novel.author = detail.trim(); - break; - case 'Status: ': - novel.status = detail.trim(); - break; - case 'Genres:': - novel.genres = detail.trim().replace(/ , /g, ','); - break; - case 'Description: ': - novel.summary = detail.trim(); - break; - } - }); - chapter = []; - loadedCheerio("#chapterlist") - .find("li") - .each(function () { - var releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(loadedCheerio(this).find(".chapterdate").text()); - var chapterName = loadedCheerio(this) - .find(".chapternum") - .text(); - var chapterUrl = loadedCheerio(this).find("a").attr("href"); - if (!chapterUrl) - return; - chapter.push({ - name: chapterName, - url: chapterUrl, - releaseTime: releaseDate, - }); - }); - novel.chapters = chapter.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - ; - ComradeMaoPlugin.prototype.parseChapter = function (chapterUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var headers, result, body, loadedCheerio, chapterText; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - headers = new Headers(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl, { headers: headers })]; - case 1: - result = _b.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = ((_a = loadedCheerio("#chaptercontent").html()) === null || _a === void 0 ? void 0 : _a.trim()) || ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - ; - ComradeMaoPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var url, headers, result, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = "".concat(this.site, "page/").concat(pageNo, "/?s=").concat(searchTerm, "&post_type=novel"); - headers = new Headers(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url, { headers: headers })]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - return [2 /*return*/, this.parseNovels(loadedCheerio)]; - } - }); - }); - }; - ; - ComradeMaoPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url)]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return ComradeMaoPlugin; -}()); -exports.default = new ComradeMaoPlugin(); diff --git a/.js/plugins/english/divinedaolibrary.js b/.js/plugins/english/divinedaolibrary.js deleted file mode 100644 index 58b7e68..0000000 --- a/.js/plugins/english/divinedaolibrary.js +++ /dev/null @@ -1,206 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var cheerio_1 = require("cheerio"); -var fetch_1 = require("@libs/fetch"); -var defaultCover_1 = require("@libs/defaultCover"); -var DDLPlugin = /** @class */ (function () { - function DDLPlugin() { - this.id = "DDL.com"; - this.name = "Divine Dao Library"; - this.site = "https://www.divinedaolibrary.com/"; - this.version = "1.0.0"; - this.icon = "src/en/divinedaolibrary/icon.png"; - } - DDLPlugin.prototype.parseNovels = function (loadedCheerio, searchTerm) { - var novels = []; - loadedCheerio("#main") - .find("li") - .each(function () { - var novelName = loadedCheerio(this).find("a").text(); - var novelCover = defaultCover_1.defaultCover; - var novelUrl = loadedCheerio(this).find(" a").attr("href"); - if (!novelUrl) - return; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - if (searchTerm) { - novels = novels.filter(function (novel) { - return novel.name.toLowerCase().includes(searchTerm.toLowerCase()); - }); - } - return novels; - }; - ; - DDLPlugin.prototype.popularNovels = function (pageNo, _a) { - var filters = _a.filters; - return __awaiter(this, void 0, void 0, function () { - var link, headers, body, loadedCheerio; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - link = this.site + "novels"; - headers = new Headers(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(link, { headers: headers }).then(function (result) { - return result.text(); - })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - return [2 /*return*/, this.parseNovels(loadedCheerio)]; - } - }); - }); - }; - DDLPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - return __awaiter(this, void 0, void 0, function () { - var url, headers, result, body, loadedCheerio, novel, chapter; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = novelUrl; - headers = new Headers(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url, { headers: headers })]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { - url: url, - chapters: [], - }; - novel.name = loadedCheerio("h1.entry-title").text().trim(); - novel.cover = - loadedCheerio(".entry-content").find("img").attr("data-ezsrc") || - defaultCover_1.defaultCover; - novel.summary = loadedCheerio("#main > article > div > p:nth-child(6)") - .text() - .trim(); - novel.author = loadedCheerio("#main > article > div > h3:nth-child(2)") - .text() - .replace(/Author:/g, "") - .trim(); - chapter = []; - loadedCheerio("#main") - .find("li > span > a") - .each(function () { - var chapterName = loadedCheerio(this).text().trim(); - var releaseDate = null; - var chapterUrl = loadedCheerio(this).attr("href"); - if (!chapterUrl) - return; - chapter.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapter; - return [2 /*return*/, novel]; - } - }); - }); - }; - ; - DDLPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var headers, result, body, loadedCheerio, chapterName, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - headers = new Headers(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl, { headers: headers })]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterName = loadedCheerio(".entry-title").text().trim(); - chapterText = loadedCheerio(".entry-content").html(); - if (!chapterText) { - chapterText = loadedCheerio(".page-header").html(); - } - chapterText = "

".concat(chapterName, "

") + chapterText; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - ; - DDLPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var url, headers, result, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = this.site + "novels"; - headers = new Headers(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url, { headers: headers })]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - return [2 /*return*/, this.parseNovels(loadedCheerio, searchTerm)]; - } - }); - }); - }; - ; - DDLPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url)]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return DDLPlugin; -}()); -exports.default = new DDLPlugin(); diff --git a/.js/plugins/english/earlynovel.js b/.js/plugins/english/earlynovel.js deleted file mode 100644 index eaafa26..0000000 --- a/.js/plugins/english/earlynovel.js +++ /dev/null @@ -1,315 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var cheerio_1 = require("cheerio"); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var EarlyNovelPlugin = /** @class */ (function () { - function EarlyNovelPlugin() { - this.id = "earlynovel"; - this.name = "Early Novel"; - this.version = "1.0.0"; - this.icon = "multisrc/madara/icons/latestnovel.png"; - this.site = "https://earlynovel.net/"; - this.filters = { - order: { - value: "/most-popular", - label: "Order by", - options: [ - { label: "Latest Release", value: "/latest-release-novel" }, - { label: "Hot Novel", value: "/hot-novel" }, - { label: "Completed Novel", value: "/completed-novel" }, - { label: "Most Popular", value: "/most-popular" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - genres: { - value: "", - label: "Genre", - options: [ - { label: "None", value: "" }, - { label: "Action", value: "/genre/action-1" }, - { label: "Adult", value: "/genre/adult-2" }, - { label: "Adventure", value: "/genre/adventure-3" }, - { label: "Comedy", value: "/genre/comedy-4" }, - { label: "Drama", value: "/genre/drama-5" }, - { label: "Ecchi", value: "/genre/ecchi-6" }, - { label: "Fantasy", value: "/genre/fantasy-7" }, - { label: "Gender Bender", value: "/genre/gender-bender-8" }, - { label: "Harem", value: "/genre/harem-9" }, - { label: "Historical", value: "/genre/historical-10" }, - { label: "Horror", value: "/genre/horror-11" }, - { label: "Josei", value: "/genre/josei-12" }, - { label: "Martial Arts", value: "/genre/martial-arts-13" }, - { label: "Mature", value: "/genre/mature-14" }, - { label: "Mecha", value: "/genre/mecha-15" }, - { label: "Mystery", value: "/genre/mystery-16" }, - { label: "Psychological", value: "/genre/psychological-17" }, - { label: "Romance", value: "/genre/romance-18" }, - { label: "School Life", value: "/genre/school-life-19" }, - { label: "Sci-fi", value: "/genre/sci-fi-20" }, - { label: "Seinen", value: "/genre/seinen-21" }, - { label: "Shoujo", value: "/genre/shoujo-22" }, - { label: "Shoujo Ai", value: "/genre/shoujo-ai-23" }, - { label: "Shounen", value: "/genre/shounen-24" }, - { label: "Shounen Ai", value: "/genre/shounen-ai-25" }, - { label: "Slice of Life", value: "/genre/slice-of-life-26" }, - { label: "Smut", value: "/genre/smut-27" }, - { label: "Sports", value: "/genre/sports-28" }, - { label: "Supernatural", value: "/genre/supernatural-29" }, - { label: "Tragedy", value: "/genre/tragedy-30" }, - { label: "Wuxia", value: "/genre/wuxia-31" }, - { label: "Xianxia", value: "/genre/xianxia-32" }, - { label: "Xuanhuan", value: "/genre/xuanhuan-33" }, - { label: "Yaoi", value: "/genre/yaoi-34" }, - { label: "Yuri", value: "/genre/yuri-35" }, - { label: "Video Games", value: "/genre/video-games-36" }, - { label: "Magical Realism", value: "/genre/magical-realism-37" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - }; - } - EarlyNovelPlugin.prototype.parseNovels = function (loadedCheerio) { - var _this = this; - var novels = []; - loadedCheerio(".col-truyen-main > .list-truyen > .row").each(function (i, el) { - var nUrl = loadedCheerio(el).find("h3.truyen-title > a").attr("href"); - var novelUrl = _this.site + nUrl; - var novelName = loadedCheerio(el) - .find("h3.truyen-title > a") - .text(); - var novelCover = loadedCheerio(el).find("img.cover").attr("src"); - console.log(novelCover); - if (!nUrl) - return; - novels.push({ - url: novelUrl, - name: novelName, - cover: novelCover, - }); - }); - return novels; - }; - ; - EarlyNovelPlugin.prototype.popularNovels = function (pageNo, _a) { - var filters = _a.filters; - return __awaiter(this, void 0, void 0, function () { - var link, headers, body, loadedCheerio; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - link = this.site; - if (filters.genres.value.length) - link += filters.genres.value; - else - link += filters.order.value; - link += "?page=".concat(pageNo); - headers = new Headers(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(link, { headers: headers }).then(function (result) { - return result.text(); - })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - return [2 /*return*/, this.parseNovels(loadedCheerio)]; - } - }); - }); - }; - EarlyNovelPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var url, headers, result, body, loadedCheerio, novel, delay, lastPageStr, lastPage, getChapters, _b; - var _this = this; - return __generator(this, function (_c) { - switch (_c.label) { - case 0: - url = novelUrl; - headers = new Headers(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url, { headers: headers })]; - case 1: - result = _c.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _c.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { - url: url, - chapters: [], - }; - novel.name = loadedCheerio(".book > img").attr("alt"); - novel.cover = loadedCheerio(".book > img").attr("src"); - novel.summary = loadedCheerio(".desc-text").text().trim(); - loadedCheerio(".info > div > h3").each(function () { - var detailName = loadedCheerio(this).text(); - var detail = loadedCheerio(this) - .siblings() - .map(function (i, el) { return loadedCheerio(el).text(); }) - .toArray() - .join(","); - switch (detailName) { - case "Author:": - novel.author = detail; - break; - case "Status:": - novel.status = detail; - break; - case "Genre:": - novel.genres = detail; - break; - } - }); - delay = function (ms) { return new Promise(function (res) { return setTimeout(res, ms); }); }; - lastPageStr = (_a = loadedCheerio('a:contains("Last ")') - .attr("title")) === null || _a === void 0 ? void 0 : _a.match(/(\d+)/g); - lastPage = Number((lastPageStr === null || lastPageStr === void 0 ? void 0 : lastPageStr[1]) || "0"); - getChapters = function () { return __awaiter(_this, void 0, void 0, function () { - var chapter, i, chaptersUrl, data, chapters; - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - chapter = []; - i = 1; - _a.label = 1; - case 1: - if (!(i <= lastPage)) return [3 /*break*/, 6]; - chaptersUrl = "".concat(novelUrl, "?page=").concat(i); - return [4 /*yield*/, (0, fetch_1.fetchApi)(chaptersUrl, { headers: headers })]; - case 2: - data = _a.sent(); - return [4 /*yield*/, data.text()]; - case 3: - chapters = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(chapters); - loadedCheerio("ul.list-chapter > li").each(function (i, el) { - var _a; - var chapterName = loadedCheerio(el) - .find(".chapter-text") - .text() - .trim(); - var releaseDate = null; - var cUrl = (_a = loadedCheerio(el) - .find("a") - .attr("href")) === null || _a === void 0 ? void 0 : _a.slice(1); - if (!cUrl) - return; - var chapterUrl = _this.site + cUrl; - chapter.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - return [4 /*yield*/, delay(1000)]; - case 4: - _a.sent(); - _a.label = 5; - case 5: - i++; - return [3 /*break*/, 1]; - case 6: return [2 /*return*/, chapter]; - } - }); - }); }; - _b = novel; - return [4 /*yield*/, getChapters()]; - case 3: - _b.chapters = _c.sent(); - return [2 /*return*/, novel]; - } - }); - }); - }; - ; - EarlyNovelPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var headers, result, body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - headers = new Headers(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl, { headers: headers })]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio("#chapter-c").html() || ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - ; - EarlyNovelPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var url, headers, result, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = "".concat(this.site, "search?keyword=").concat(searchTerm); - headers = new Headers(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url, { headers: headers })]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - return [2 /*return*/, this.parseNovels(loadedCheerio)]; - } - }); - }); - }; - ; - EarlyNovelPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url)]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return EarlyNovelPlugin; -}()); -exports.default = new EarlyNovelPlugin(); diff --git a/.js/plugins/english/foxaholic.js b/.js/plugins/english/foxaholic.js deleted file mode 100644 index 0a3318a..0000000 --- a/.js/plugins/english/foxaholic.js +++ /dev/null @@ -1,218 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var cheerio_1 = require("cheerio"); -var fetch_1 = require("@libs/fetch"); -var Foxaholic = /** @class */ (function () { - function Foxaholic() { - this.id = "foxaholic"; - this.name = "Foxaholic"; - this.icon = "src/en/foxaholic/icon.png"; - this.site = "https://www.foxaholic.com/"; - this.version = "1.0.0"; - this.baseUrl = this.site; - } - Foxaholic.prototype.popularNovels = function (pageNo, options) { - return __awaiter(this, void 0, void 0, function () { - var link, result, body, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - link = "".concat(this.baseUrl, "novel/page/").concat(pageNo, "/?m_orderby=rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(link)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this).find(".h5 > a").text(); - var novelCover = loadedCheerio(this).find("img").attr("data-src"); - var novelUrl = loadedCheerio(this).find(".h5 > a").attr("href"); - if (!novelUrl) - return; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - Foxaholic.prototype.parseNovelAndChapters = function (novelUrl) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novel, chapter; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = novelUrl; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { - url: url, - chapters: [], - }; - novel.name = loadedCheerio(".post-title > h1").text().trim(); - novel.cover = loadedCheerio(".summary_image > a > img").attr("data-src"); - loadedCheerio(".post-content_item").each(function () { - var detailName = loadedCheerio(this) - .find(".summary-heading > h5") - .text() - .trim(); - var detail = loadedCheerio(this).find(".summary-content").html(); - if (!detail) - return; - switch (detailName) { - case "Genre": - novel.genres = loadedCheerio(detail) - .children("a") - .map(function (i, el) { return loadedCheerio(el).text(); }) - .toArray() - .join(","); - break; - case "Author": - novel.author = loadedCheerio(detail) - .children("a") - .map(function (i, el) { return loadedCheerio(el).text(); }) - .toArray() - .join(", "); - break; - case "Novel": - novel.status = detail === null || detail === void 0 ? void 0 : detail.trim().replace(/G/g, "g"); - break; - } - }); - loadedCheerio(".description-summary > div.summary__content > div").remove(); - novel.summary = loadedCheerio(".description-summary > div.summary__content") - .text() - .trim(); - chapter = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this) - .find("a") - .text() - .replace(/[\t\n]/g, "") - .trim(); - var releaseDate = loadedCheerio(this).find("span").text().trim(); - var chapterUrl = loadedCheerio(this).find("a").attr("href"); - if (!chapterUrl) - return; - chapter.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapter.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - Foxaholic.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var result, body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio("img").removeAttr("srcset"); - chapterText = loadedCheerio(".reading-content").html() || ''; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - Foxaholic.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = "".concat(this.baseUrl, "?s=").concat(searchTerm, "&post_type=wp-manga"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this).find(".h4 > a").text(); - var novelCover = loadedCheerio(this).find("img").attr("data-src"); - var novelUrl = loadedCheerio(this).find(".h4 > a").attr("href"); - if (!novelUrl) - return; - novels.push({ - name: novelName, - url: novelUrl, - cover: novelCover, - }); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - Foxaholic.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2 /*return*/, (0, fetch_1.fetchFile)(url)]; - }); - }); - }; - return Foxaholic; -}()); -exports.default = new Foxaholic(); diff --git a/.js/plugins/english/freewebnovel.js b/.js/plugins/english/freewebnovel.js deleted file mode 100644 index 6723709..0000000 --- a/.js/plugins/english/freewebnovel.js +++ /dev/null @@ -1,158 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var cheerio_1 = require("cheerio"); -var FreeWebNovel = /** @class */ (function () { - function FreeWebNovel() { - this.id = "FWN.com"; - this.name = "Web NOVEL"; - this.site = "https://freewebnovel.com"; - this.version = "1.0.0"; - this.icon = "src/en/freewebnovel/icon.png"; - this.fetchImage = fetch_1.fetchFile; - } - FreeWebNovel.prototype.popularNovels = function (page, _a) { - var showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var sort, body, loadedCheerio, novels; - var _this = this; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - sort = showLatestNovels - ? "/latest-release-novels/" - : "/completed-novels/"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + sort + page).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = loadedCheerio(".li-row") - .map(function (index, element) { return ({ - name: loadedCheerio(element).find(".tit").text(), - cover: loadedCheerio(element).find("img").attr("src"), - url: _this.site + loadedCheerio(element).find("h3 > a").attr("href"), - }); }) - .get(); - return [2 /*return*/, novels]; - } - }); - }); - }; - FreeWebNovel.prototype.parseNovelAndChapters = function (url) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, novel, chapters; - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { url: url }; - novel.name = loadedCheerio("h1.tit").text(); - novel.cover = loadedCheerio(".pic > img").attr("src"); - novel.genres = loadedCheerio("[title=Genre]") - .next() - .text() - .replace(/[\t\n]/g, ""); - novel.author = loadedCheerio("[title=Author]") - .next() - .text() - .replace(/[\t\n]/g, ""); - novel.status = loadedCheerio("[title=Status]") - .next() - .text() - .replace(/[\t\n]/g, ""); - novel.summary = loadedCheerio(".inner").text().trim(); - chapters = loadedCheerio("#idData > li > a") - .map(function (index, element) { return ({ - name: loadedCheerio(element).attr("title") || "Chapter " + index, - releaseTime: null, - url: _this.site + loadedCheerio(element).attr("href"), - }); }) - .get(); - novel.chapters = chapters; - return [2 /*return*/, novel]; - } - }); - }); - }; - FreeWebNovel.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio("div.txt").html() || ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - FreeWebNovel.prototype.searchNovels = function (searchkey) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, novels; - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "/search/", { - method: "POST", - body: JSON.stringify({ searchkey: searchkey }), - }).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = loadedCheerio(".li-row > .li > .con") - .map(function (index, element) { return ({ - name: loadedCheerio(element).find(".tit").text(), - cover: loadedCheerio(element).find(".pic > a > img").attr("data-cfsrc"), - url: _this.site + loadedCheerio(element).find("h3 > a").attr("href"), - }); }) - .get(); - return [2 /*return*/, novels]; - } - }); - }); - }; - return FreeWebNovel; -}()); -exports.default = new FreeWebNovel(); diff --git a/.js/plugins/english/lightnovelpub.js b/.js/plugins/english/lightnovelpub.js deleted file mode 100644 index 8831c9b..0000000 --- a/.js/plugins/english/lightnovelpub.js +++ /dev/null @@ -1,219 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var cheerio_1 = require("cheerio"); -var fetch_1 = require("@libs/fetch"); -var LightNovelPub = /** @class */ (function () { - function LightNovelPub() { - this.id = "lightnovelpub"; - this.name = "LightNovelPub"; - this.version = "1.0.0"; - this.icon = "src/en/lightnovelpub/icon.png"; - this.site = "https://www.lightnovelpub.com/"; - this.baseUrl = this.site; - this.headers = { - Accept: "application/json", - "Content-Type": "application/json", - }; - } - LightNovelPub.prototype.popularNovels = function (pageNo, options) { - return __awaiter(this, void 0, void 0, function () { - var url, body, loadedCheerio, novels; - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = "".concat(this.baseUrl, "browse/all/popular/all/").concat(pageNo); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (r) { return r.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio(".novel-item.ads").remove(); - loadedCheerio(".novel-item").each(function (idx, ele) { - var _a; - var novelName = loadedCheerio(ele) - .find(".novel-title") - .text() - .trim(); - var novelCover = loadedCheerio(ele).find("img").attr("data-src"); - var novelUrl = _this.baseUrl + - ((_a = loadedCheerio(ele) - .find(".novel-title > a") - .attr("href")) === null || _a === void 0 ? void 0 : _a.substring(1)); - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - LightNovelPub.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var url, body, loadedCheerio, novel, delay, chapterListUrl, chapterListBody, loadedChapterList, lastNumber, lastChapterUrl, chapterUrlPrefix, chapters, i; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - url = novelUrl; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (r) { return r.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { - url: url, - chapters: [], - }; - novel.name = loadedCheerio("h1.novel-title").text().trim(); - novel.cover = loadedCheerio("figure.cover > img").attr("data-src"); - novel.genres = ""; - loadedCheerio(".categories > ul > li > a").each(function () { - novel.genres += loadedCheerio(this).text() + ","; - }); - novel.genres = novel.genres.slice(0, -1); - loadedCheerio("div.header-stats > span").each(function () { - if (loadedCheerio(this).find("small").text() === "Status") { - novel.status = loadedCheerio(this).find("strong").text(); - } - }); - novel.author = loadedCheerio(".author > a > span").text(); - novel.summary = loadedCheerio(".summary > .content").text().trim(); - delay = function (ms) { return new Promise(function (res) { return setTimeout(res, ms); }); }; - return [4 /*yield*/, delay(1000)]; - case 2: - _b.sent(); - chapterListUrl = novelUrl + '/chapters?chorder=desc'; - return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterListUrl).then(function (r) { return r.text(); })]; - case 3: - chapterListBody = _b.sent(); - loadedChapterList = (0, cheerio_1.load)(chapterListBody); - lastNumber = parseInt((_a = loadedChapterList('ul.chapter-list > li:nth-child(1)').attr('data-chapterno')) !== null && _a !== void 0 ? _a : '0'); - lastChapterUrl = loadedChapterList('ul.chapter-list > li:nth-child(1) > a').attr('href'); - if (lastChapterUrl) { - chapterUrlPrefix = this.baseUrl + lastChapterUrl.split('/').slice(1, -1).join('/'); - chapters = []; - for (i = 1; i <= lastNumber; i++) { - chapters.push({ - chapterNumber: i, - name: 'Chapter ' + i, - url: chapterUrlPrefix + '/chapter-' + i, - }); - } - novel.chapters = chapters; - } - return [2 /*return*/, novel]; - } - }); - }); - }; - LightNovelPub.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (r) { return r.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio("#chapter-container").html() || ''; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - LightNovelPub.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var url, link, response, token, verifytoken, formData, body, loadedCheerio, novels, results; - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = "".concat(this.baseUrl, "lnsearchlive"); - link = "".concat(this.baseUrl, "search"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(link).then(function (r) { return r.text(); })]; - case 1: - response = _a.sent(); - token = (0, cheerio_1.load)(response); - verifytoken = token("#novelSearchForm > input").attr("value"); - formData = new FormData(); - formData.append("inputContent", searchTerm); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url, { - method: "POST", - headers: { LNRequestVerifyToken: verifytoken }, - body: formData, - }).then(function (r) { return r.text(); })]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - results = JSON.parse(loadedCheerio("body").text()); - loadedCheerio = (0, cheerio_1.load)(results.resultview); - loadedCheerio(".novel-item").each(function (idx, ele) { - var _a; - var novelName = loadedCheerio(ele) - .find("h4.novel-title") - .text() - .trim(); - var novelCover = loadedCheerio(ele).find("img").attr("src"); - var novelUrl = _this.baseUrl + ((_a = loadedCheerio(ele).find("a").attr("href")) === null || _a === void 0 ? void 0 : _a.substring(1)); - novels.push({ - name: novelName, - url: novelUrl, - cover: novelCover, - }); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - LightNovelPub.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2 /*return*/, (0, fetch_1.fetchFile)(url, { headers: this.headers })]; - }); - }); - }; - return LightNovelPub; -}()); -exports.default = new LightNovelPub(); diff --git a/.js/plugins/english/lightnovelupdates.js b/.js/plugins/english/lightnovelupdates.js deleted file mode 100644 index 4d17f1c..0000000 --- a/.js/plugins/english/lightnovelupdates.js +++ /dev/null @@ -1,200 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var cheerio_1 = require("cheerio"); -var fetch_1 = require("@libs/fetch"); -var LightNovelUpdates = /** @class */ (function () { - function LightNovelUpdates() { - this.id = "LightNovelUpdates"; - this.name = "Light Novel Updates"; - this.version = "1.0.0"; - this.icon = "src/en/lightnovelupdates/icon.png"; - this.site = "https://www.lightnovelupdates.com/"; - this.baseUrl = this.site; - } - LightNovelUpdates.prototype.popularNovels = function (pageNo, options) { - return __awaiter(this, void 0, void 0, function () { - var url, body, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = "".concat(this.baseUrl, "novel/page/").concat(pageNo, "/?m_orderby=rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (r) { return r.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this).find(".h5 > a").text(); - var novelCover = loadedCheerio(this).find("img").attr("src"); - var novelUrl = loadedCheerio(this).find(".h5 > a").attr("href"); - if (!novelUrl) - return; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - LightNovelUpdates.prototype.parseNovelAndChapters = function (novelUrl) { - return __awaiter(this, void 0, void 0, function () { - var url, body, loadedCheerio, novel, chapter, novelId, formData, data, text; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = novelUrl; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (r) { return r.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { - url: url, - chapters: [], - }; - novel.name = loadedCheerio(".post-title > h1").text().trim(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("src") || undefined; - loadedCheerio(".post-content_item").each(function () { - var detailName = loadedCheerio(this) - .find(".summary-heading > h5") - .text() - .trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - novel.genres = detail.trim().replace(/[\t\n]/g, ","); - break; - case "Author(s)": - novel.author = detail.trim(); - break; - case "Status": - novel.status = detail.replace(/G/g, "g"); - break; - } - }); - novel.summary = loadedCheerio("div.summary__content").text(); - chapter = []; - novelId = loadedCheerio(".rating-post-id").attr("value"); - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)("https://www.lightnovelupdates.com/wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - })]; - case 2: - data = _a.sent(); - return [4 /*yield*/, data.text()]; - case 3: - text = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(text); - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = loadedCheerio(this).find("span").text().trim(); - var chapterUrl = loadedCheerio(this).find("a").attr("href"); - if (!chapterUrl) - return; - chapter.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapter.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - LightNovelUpdates.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var chapterText; - return __generator(this, function (_a) { - chapterText = 'unable to load'; - return [2 /*return*/, chapterText]; - }); - }); - }; - LightNovelUpdates.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var url, body, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = "".concat(this.baseUrl, "?s=").concat(searchTerm, "&post_type=wp-manga&m_orderby=rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (r) { return r.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this).find(".h4 > a").text(); - var novelCover = loadedCheerio(this).find("img").attr("src"); - var novelUrl = loadedCheerio(this).find(".h4 > a").attr("href"); - if (!novelUrl) - return; - novels.push({ - url: novelUrl, - name: novelName, - cover: novelCover, - }); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - LightNovelUpdates.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2 /*return*/, (0, fetch_1.fetchFile)(url)]; - }); - }); - }; - return LightNovelUpdates; -}()); -exports.default = new LightNovelUpdates(); diff --git a/.js/plugins/english/lightnovelworld.js b/.js/plugins/english/lightnovelworld.js deleted file mode 100644 index 9b405f7..0000000 --- a/.js/plugins/english/lightnovelworld.js +++ /dev/null @@ -1,219 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var cheerio_1 = require("cheerio"); -var fetch_1 = require("@libs/fetch"); -var LightNovelWorld = /** @class */ (function () { - function LightNovelWorld() { - this.id = "lightnovelworld"; - this.name = "LightNovelWorld"; - this.site = "https://www.webnovelworld.org/"; - this.version = "1.0.0"; - this.icon = "src/en/lightnovelworld/icon.png"; - this.baseUrl = this.site; - this.headers = { - Accept: "application/json", - "Content-Type": "application/json", - }; - } - LightNovelWorld.prototype.popularNovels = function (pageNo, options) { - return __awaiter(this, void 0, void 0, function () { - var url, body, loadedCheerio, novels; - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = "".concat(this.baseUrl, "browse/all/popular/all/").concat(pageNo); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (r) { return r.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio(".novel-item.ads").remove(); - loadedCheerio(".novel-item").each(function (idx, ele) { - var _a; - var novelName = loadedCheerio(ele) - .find(".novel-title") - .text() - .trim(); - var novelCover = loadedCheerio(ele).find("img").attr("data-src"); - var novelUrl = _this.baseUrl + - ((_a = loadedCheerio(ele) - .find(".novel-title > a") - .attr("href")) === null || _a === void 0 ? void 0 : _a.substring(1)); - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - LightNovelWorld.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var url, body, loadedCheerio, novel, delay, chapterListUrl, chapterListBody, loadedChapterList, lastNumber, lastChapterUrl, chapterUrlPrefix, chapters, i; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - url = novelUrl; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (r) { return r.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { - url: url, - chapters: [], - }; - novel.name = loadedCheerio("h1.novel-title").text().trim(); - novel.cover = loadedCheerio("figure.cover > img").attr("data-src"); - novel.genres = ""; - loadedCheerio(".categories > ul > li > a").each(function () { - novel.genres += loadedCheerio(this).text() + ","; - }); - novel.genres = novel.genres.slice(0, -1); - loadedCheerio("div.header-stats > span").each(function () { - if (loadedCheerio(this).find("small").text() === "Status") { - novel.status = loadedCheerio(this).find("strong").text(); - } - }); - novel.author = loadedCheerio(".author > a > span").text(); - novel.summary = loadedCheerio(".summary > .content").text().trim(); - delay = function (ms) { return new Promise(function (res) { return setTimeout(res, ms); }); }; - return [4 /*yield*/, delay(1000)]; - case 2: - _b.sent(); - chapterListUrl = novelUrl + '/chapters?chorder=desc'; - return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterListUrl).then(function (r) { return r.text(); })]; - case 3: - chapterListBody = _b.sent(); - loadedChapterList = (0, cheerio_1.load)(chapterListBody); - lastNumber = parseInt((_a = loadedChapterList('ul.chapter-list > li:nth-child(1)').attr('data-chapterno')) !== null && _a !== void 0 ? _a : '0'); - lastChapterUrl = loadedChapterList('ul.chapter-list > li:nth-child(1) > a').attr('href'); - if (lastChapterUrl) { - chapterUrlPrefix = this.baseUrl + lastChapterUrl.split('/').slice(1, -1).join('/'); - chapters = []; - for (i = 1; i <= lastNumber; i++) { - chapters.push({ - chapterNumber: i, - name: 'Chapter ' + i, - url: chapterUrlPrefix + '/chapter-' + i, - }); - } - novel.chapters = chapters; - } - return [2 /*return*/, novel]; - } - }); - }); - }; - LightNovelWorld.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (r) { return r.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio("#chapter-container").html() || ''; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - LightNovelWorld.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var url, link, response, token, verifytoken, formData, body, loadedCheerio, novels, results; - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = "".concat(this.baseUrl, "lnsearchlive"); - link = "".concat(this.baseUrl, "search"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(link).then(function (r) { return r.text(); })]; - case 1: - response = _a.sent(); - token = (0, cheerio_1.load)(response); - verifytoken = token("#novelSearchForm > input").attr("value"); - formData = new FormData(); - formData.append("inputContent", searchTerm); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url, { - method: "POST", - headers: { LNRequestVerifyToken: verifytoken }, - body: formData, - }).then(function (r) { return r.text(); })]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - results = JSON.parse(loadedCheerio("body").text()); - loadedCheerio = (0, cheerio_1.load)(results.resultview); - loadedCheerio(".novel-item").each(function (idx, ele) { - var _a; - var novelName = loadedCheerio(ele) - .find("h4.novel-title") - .text() - .trim(); - var novelCover = loadedCheerio(ele).find("img").attr("src"); - var novelUrl = _this.baseUrl + ((_a = loadedCheerio(ele).find("a").attr("href")) === null || _a === void 0 ? void 0 : _a.substring(1)); - novels.push({ - name: novelName, - url: novelUrl, - cover: novelCover, - }); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - LightNovelWorld.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2 /*return*/, (0, fetch_1.fetchFile)(url, { headers: this.headers })]; - }); - }); - }; - return LightNovelWorld; -}()); -exports.default = new LightNovelWorld(); diff --git a/.js/plugins/english/mtlnovel.js b/.js/plugins/english/mtlnovel.js deleted file mode 100644 index 61cc344..0000000 --- a/.js/plugins/english/mtlnovel.js +++ /dev/null @@ -1,208 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var cheerio_1 = require("cheerio"); -var fetch_1 = require("@libs/fetch"); -var MTLNovel = /** @class */ (function () { - function MTLNovel() { - this.id = "mtlnovel"; - this.name = "MTL Novel"; - this.version = "1.0.0"; - this.icon = "src/en/mtlnovel/icon.png"; - this.site = "https://www.mtlnovel.com/"; - this.baseUrl = this.site; - } - MTLNovel.prototype.popularNovels = function (pageNo, options) { - return __awaiter(this, void 0, void 0, function () { - var url, body, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = "".concat(this.baseUrl, "alltime-rank/page/").concat(pageNo); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (result) { return result.text(); })]; - case 1: - body = _a.sent(); - console.log(body); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio("div.box.wide").each(function () { - var novelName = loadedCheerio(this) - .find("a.list-title") - .text() - .slice(4); - var novelCover = loadedCheerio(this).find("amp-img").attr("src"); - var novelUrl = loadedCheerio(this).find("a.list-title").attr("href"); - if (!novelUrl) - return; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MTLNovel.prototype.parseNovelAndChapters = function (novelUrl) { - return __awaiter(this, void 0, void 0, function () { - function getChapters() { - return __awaiter(this, void 0, void 0, function () { - var listResult, listBody, chapter; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, fetch(chapterListUrl)]; - case 1: - listResult = _a.sent(); - return [4 /*yield*/, listResult.text()]; - case 2: - listBody = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(listBody); - chapter = []; - loadedCheerio("div.ch-list") - .find("a.ch-link") - .each(function () { - var chapterName = loadedCheerio(this) - .text() - .replace("~ ", ""); - var releaseDate = null; - var chapterUrl = loadedCheerio(this).attr("href"); - if (chapterUrl) { - chapter.push({ - url: chapterUrl, - name: chapterName, - releaseTime: releaseDate, - }); - } - }); - return [2 /*return*/, chapter.reverse()]; - } - }); - }); - } - var url, headers, body, loadedCheerio, novel, chapterListUrl, _a; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - url = novelUrl; - headers = { - Referer: "".concat(this.baseUrl, "alltime-rank/"), - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url, { - method: "GET", - headers: headers, - }).then(function (result) { return result.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { - url: url, - chapters: [], - }; - novel.name = loadedCheerio("h1.entry-title").text(); - novel.cover = loadedCheerio(".nov-head > amp-img").attr("src"); - novel.summary = loadedCheerio("div.desc > h2").next().text().trim(); - novel.author = loadedCheerio("#author").text(); - novel.status = loadedCheerio("#status").text(); - novel.genres = loadedCheerio("#genre").text().replace(/\s+/g, ""); - chapterListUrl = url + "chapter-list/"; - _a = novel; - return [4 /*yield*/, getChapters()]; - case 2: - _a.chapters = _b.sent(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MTLNovel.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (r) { return r.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio("div.par").html() || ''; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MTLNovel.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var searchUrl, res, result, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - searchUrl = this.baseUrl + - "wp-admin/admin-ajax.php?action=autosuggest&q=" + - searchTerm + - "&__amp_source_origin=https%3A%2F%2Fwww.mtlnovel.com"; - return [4 /*yield*/, fetch(searchUrl)]; - case 1: - res = _a.sent(); - return [4 /*yield*/, res.json()]; - case 2: - result = _a.sent(); - novels = []; - result.items[0].results.map(function (item) { - var novelName = item.title.replace(/<\/?strong>/g, ""); - var novelCover = item.thumbnail; - var novelUrl = item.permalink.replace("https://www.mtlnovel.com/", ""); - var novel = { name: novelName, cover: novelCover, url: novelUrl }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MTLNovel.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2 /*return*/, (0, fetch_1.fetchFile)(url)]; - }); - }); - }; - return MTLNovel; -}()); -exports.default = new MTLNovel(); diff --git a/.js/plugins/english/mtlreader.js b/.js/plugins/english/mtlreader.js deleted file mode 100644 index 69e656f..0000000 --- a/.js/plugins/english/mtlreader.js +++ /dev/null @@ -1,177 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var cheerio_1 = require("cheerio"); -var fetch_1 = require("@libs/fetch"); -var MTLReader = /** @class */ (function () { - function MTLReader() { - this.id = "mtlreader"; - this.name = "MTL Reader"; - this.version = "1.0.0"; - this.icon = "src/en/mtlreader/icon.png"; - this.site = "https://mtlreader.com/"; - this.baseUrl = this.site; - } - MTLReader.prototype.popularNovels = function (pageNo, options) { - return __awaiter(this, void 0, void 0, function () { - var url, body, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = "".concat(this.baseUrl, "novels?page=").concat(pageNo); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (r) { return r.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio(".col-md-4.col-sm-4").each(function () { - var novelName = loadedCheerio(this).find("h5").text(); - var novelCover = loadedCheerio(this).find("img").attr("src"); - var novelUrl = loadedCheerio(this).find("h5 > a").attr("href"); - if (!novelUrl) - return; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MTLReader.prototype.parseNovelAndChapters = function (novelUrl) { - return __awaiter(this, void 0, void 0, function () { - var url, body, loadedCheerio, novel, chapter; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = novelUrl; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (r) { return r.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { - url: url, - chapters: [], - }; - novel.name = loadedCheerio(".agent-title").text().trim(); - novel.cover = loadedCheerio(".agent-p-img > img").attr("src"); - novel.summary = loadedCheerio("#editdescription").text().trim(); - novel.author = loadedCheerio("i.fa-user") - .parent() - .text() - .replace("Author: ", "") - .trim(); - chapter = []; - loadedCheerio("tr.spaceUnder").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - var chapterUrl = loadedCheerio(this).find("a").attr("href"); - if (!chapterUrl) - return; - chapter.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapter; - return [2 /*return*/, novel]; - } - }); - }); - }; - MTLReader.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (r) { return r.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".container ins,script,p.mtlreader").remove(); - chapterText = loadedCheerio(".container").html() || ''; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MTLReader.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var url, body, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = "".concat(this.baseUrl, "search?input=").concat(searchTerm); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (r) { return r.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio(".col-md-4.col-sm-4").each(function () { - var novelName = loadedCheerio(this).find("h5").text(); - var novelCover = loadedCheerio(this).find("img").attr("src"); - var novelUrl = loadedCheerio(this).find("h5 > a").attr("href"); - if (!novelUrl) - return; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MTLReader.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2 /*return*/, (0, fetch_1.fetchFile)(url)]; - }); - }); - }; - return MTLReader; -}()); -exports.default = new MTLReader(); diff --git a/.js/plugins/english/nitromanga.js b/.js/plugins/english/nitromanga.js deleted file mode 100644 index 476996a..0000000 --- a/.js/plugins/english/nitromanga.js +++ /dev/null @@ -1,206 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var cheerio_1 = require("cheerio"); -var fetch_1 = require("@libs/fetch"); -var NitroManga = /** @class */ (function () { - function NitroManga() { - this.id = "nitromanga"; - this.name = "Nitro Manga"; - this.version = "1.0.0"; - this.icon = "src/en/nitromanga/icon.png"; - this.site = "https://nitromanga.com/"; - this.baseUrl = this.site; - } - NitroManga.prototype.popularNovels = function (pageNo, options) { - return __awaiter(this, void 0, void 0, function () { - var url, body, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = this.baseUrl + "mangas-genre/novel/?m_orderby=trending"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (r) { return r.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this).find("h3 > a").text(); - var novelCover = loadedCheerio(this).find("img").attr("data-src"); - var novelUrl = loadedCheerio(this).find("h3 > a").attr("href"); - if (!novelUrl) - return; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - NitroManga.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var url, body, loadedCheerio, novel, chapter, chapterlisturl, data, text; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - url = novelUrl; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (r) { return r.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { - url: url, - chapters: [], - }; - loadedCheerio(".manga-title-badges.custom.novel").remove(); - novel.name = loadedCheerio(".post-title > h1").text().trim(); - novel.cover = loadedCheerio(".summary_image") - .find("img") - .attr("data-src"); - novel.summary = (_a = loadedCheerio(".summary__content").text()) === null || _a === void 0 ? void 0 : _a.trim(); - novel.genres = loadedCheerio(".genres-content") - .children("a") - .map(function (i, el) { return loadedCheerio(el).text(); }) - .toArray() - .join(","); - loadedCheerio(".post-content_item").each(function () { - var detailName = loadedCheerio(this) - .find(".summary-heading") - .text() - .trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Author(s)": - novel.author = detail; - break; - case "Status": - novel.status = detail.replace(/G/g, "g"); - break; - } - }); - chapter = []; - chapterlisturl = novelUrl + "ajax/chapters/"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterlisturl, { method: "POST" })]; - case 2: - data = _b.sent(); - return [4 /*yield*/, data.text()]; - case 3: - text = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(text); - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = loadedCheerio(this).find("span").text().trim(); - var chapterUrl = loadedCheerio(this).find("a").attr("href"); - if (!chapterUrl) - return; - chapter.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapter.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - NitroManga.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (r) { return r.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || ''; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - NitroManga.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var url, body, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = this.baseUrl + '?s=' + searchTerm + '&post_type=wp-manga&genre%5B%5D=novel'; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (r) { return r.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this).find("h3 > a").text(); - var novelCover = loadedCheerio(this).find("img").attr("data-src"); - var novelUrl = loadedCheerio(this).find("h3 > a").attr("href"); - if (!novelUrl) - return; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - NitroManga.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2 /*return*/, (0, fetch_1.fetchFile)(url)]; - }); - }); - }; - return NitroManga; -}()); -exports.default = new NitroManga(); diff --git a/.js/plugins/english/nobleMTL.js b/.js/plugins/english/nobleMTL.js deleted file mode 100644 index 26daf1b..0000000 --- a/.js/plugins/english/nobleMTL.js +++ /dev/null @@ -1,354 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var cheerio_1 = require("cheerio"); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var NobleMTL = /** @class */ (function () { - function NobleMTL() { - this.id = "noblemtl"; - this.name = "NobleMTL"; - this.icon = "src/en/noblemtl/icon.png"; - this.site = "https://noblemtl.com/"; - this.version = "1.0.0"; - this.filters = { - order: { - label: "Sort By", - 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" }, - ], - type: filterInputs_1.FilterTypes.Picker, - value: "", - }, - status: { - label: "Status", - options: [ - { label: "All", value: "" }, - { label: "Ongoing", value: "ongoing" }, - { label: "Hiatus", value: "hiatus" }, - { label: "Completed", value: "completed" }, - ], - type: filterInputs_1.FilterTypes.Picker, - value: "", - }, - type: { - label: "Type", - options: [ - { label: "Chinese novel", value: "chinese-novel" }, - { label: "habyeol", value: "habyeol" }, - { label: "korean novel", value: "korean-novel" }, - { label: "Web Novel", value: "web-novel" }, - { label: "삼심", value: "%ec%82%bc%ec%8b%ac" }, - { label: "호곡", value: "%ed%98%b8%ea%b3%a1" }, - ], - type: filterInputs_1.FilterTypes.CheckboxGroup, - value: [], - }, - genres: { - label: "Genres", - options: [ - { label: "A.I", value: "a.i" }, - { label: "Academy", value: "academy" }, - { label: "Action", value: "action" }, - { label: "Adult", value: "adult" }, - { label: "Adventure", value: "adventure" }, - { label: "Alternative History", value: "alternative-history" }, - { label: "Another World", value: "another-world" }, - { label: "Apocalypse", value: "apocalypse" }, - { label: "Bromance", value: "bromance" }, - { label: "Comedy", value: "comedy" }, - { label: "Dark fantasy", value: "dark-fantasy" }, - { label: "Demons", value: "demons" }, - { label: "Drama", value: "drama" }, - { label: "Dystopia", value: "dystopia" }, - { label: "Ecchi", value: "ecchi" }, - { label: "Entertainment", value: "entertainment" }, - { label: "Exhaustion", value: "exhaustion" }, - { label: "Fanfiction", value: "fanfiction" }, - { label: "fantasy", value: "fantasy" }, - { label: "finance", value: "finance" }, - { label: "Full color", value: "full-color" }, - { label: "Game", value: "game" }, - { label: "Gender Bender", value: "gender-bender" }, - { label: "Genius", value: "genius" }, - { label: "Harem", value: "harem" }, - { label: "Hero", value: "hero" }, - { label: "Historical", value: "historical" }, - { label: "Hunter", value: "hunter" }, - { label: "korean novel", value: "korean-novel" }, - { label: "Light Novel", value: "light-novel" }, - { - label: "List Adventure Manga Genres", - value: "list-adventure-manga-genres", - }, - { label: "Long Strip", value: "long-strip" }, - { label: "Love comedy", value: "love-comedy" }, - { label: "magic", value: "magic" }, - { label: "Manhua", value: "manhua" }, - { label: "Martial Arts", value: "martial-arts" }, - { label: "Mature", value: "mature" }, - { label: "Medieval", value: "medieval" }, - { label: "Misunderstanding", value: "misunderstanding" }, - { label: "Modern", value: "modern" }, - { label: "modern fantasy", value: "modern-fantasy" }, - { label: "music", value: "music" }, - { label: "Mystery", value: "mystery" }, - { label: "Necromancy", value: "necromancy" }, - { label: "No Romance", value: "no-romance" }, - { label: "NTL", value: "ntl" }, - { label: "o", value: "o" }, - { label: "Obsession", value: "obsession" }, - { label: "Politics", value: "politics" }, - { label: "Possession", value: "possession" }, - { label: "Programming", value: "programming" }, - { label: "Psychological", value: "psychological" }, - { label: "Pure Love", value: "pure-love" }, - { label: "Redemption", value: "redemption" }, - { label: "Regression", value: "regression" }, - { label: "Regret", value: "regret" }, - { label: "Reincarnation", value: "reincarnation" }, - { label: "Revenge", value: "revenge" }, - { label: "Romance", value: "romance" }, - { label: "Romance Fanrasy", value: "romance-fanrasy" }, - { label: "Salvation", value: "salvation" }, - { label: "School Life", value: "school-life" }, - { label: "Sci-fi", value: "sci-fi" }, - { label: "Science fiction", value: "science-fiction" }, - { label: "Seinen", value: "seinen" }, - { label: "Shounen", value: "shounen" }, - { label: "Slice of Life", value: "slice-of-life" }, - { label: "Soft yandere", value: "soft-yandere" }, - { label: "Sports", value: "sports" }, - { label: "Supernatural", value: "supernatural" }, - { label: "Survival", value: "survival" }, - { label: "system", value: "system" }, - { label: "Time limit", value: "time-limit" }, - { label: "Tragedy", value: "tragedy" }, - { label: "Transmigration", value: "transmigration" }, - { label: "TS", value: "ts" }, - { label: "Tsundere", value: "tsundere" }, - { label: "Unique", value: "unique" }, - { label: "Wholesome", value: "wholesome" }, - { label: "Wuxia", value: "wuxia" }, - { label: "Xuanhuan", value: "xuanhuan" }, - { label: "Yandere", value: "yandere" }, - { label: "Yuri", value: "yuri" }, - ], - type: filterInputs_1.FilterTypes.CheckboxGroup, - value: [], - }, - }; - } - NobleMTL.prototype.parseNovels = function (loadedCheerio) { - var novels = []; - loadedCheerio("article.bs").each(function () { - var novelName = loadedCheerio(this).find(".ntitle").text().trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this).find("a").attr("href"); - if (!novelUrl) - return; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return novels; - }; - NobleMTL.prototype.popularNovels = function (pageNo, _a) { - var filters = _a.filters; - return __awaiter(this, void 0, void 0, function () { - var link, headers, body, loadedCheerio; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - link = "".concat(this.site, "series/?page=").concat(pageNo); - if (filters.genres.value.length) - link += filters.genres.value.map(function (i) { return "&genre[]=".concat(i); }).join(""); - if (filters.type.value.length) - link += filters.type.value.map(function (i) { return "&lang[]=".concat(i); }).join(""); - link += "&status=" + filters.status.value; - link += "&order=" + filters.order.value; - headers = new Headers(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(link, { headers: headers }).then(function (result) { - return result.text(); - })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - return [2 /*return*/, this.parseNovels(loadedCheerio)]; - } - }); - }); - }; - NobleMTL.prototype.parseNovelAndChapters = function (novelUrl) { - return __awaiter(this, void 0, void 0, function () { - var url, headers, result, body, loadedCheerio, novel, chapter; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = novelUrl; - headers = new Headers(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url, { headers: headers })]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { - url: url, - chapters: [], - }; - novel.name = loadedCheerio(".entry-title").text(); - novel.cover = - loadedCheerio("img.wp-post-image").attr("data-src") || - loadedCheerio("img.wp-post-image").attr("src"); - loadedCheerio("div.spe > span").each(function () { - var detailName = loadedCheerio(this).find("b").text().trim(); - var detail = loadedCheerio(this) - .find("b") - .remove() - .end() - .text() - .trim(); - switch (detailName) { - case "Author:": - novel.author = detail; - break; - case "Status:": - novel.status = detail; - break; - } - }); - novel.genres = loadedCheerio(".genxed") - .text() - .trim() - .replace(/\s/g, ","); - loadedCheerio('div[itemprop="description"] h3,p.a,strong').remove(); - novel.summary = loadedCheerio('div[itemprop="description"]') - .find("br") - .replaceWith("\n") - .end() - .text(); - chapter = []; - loadedCheerio(".eplister") - .find("li") - .each(function () { - var chapterName = loadedCheerio(this).find(".epl-num").text() + - " - " + - loadedCheerio(this).find(".epl-title").text(); - var releaseDate = loadedCheerio(this) - .find(".epl-date") - .text() - .trim(); - var chapterUrl = loadedCheerio(this).find("a").attr("href"); - if (!chapterUrl) - return; - chapter.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapter.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - NobleMTL.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var headers, result, body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - headers = new Headers(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl, { headers: headers })]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".epcontent").html() || ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - NobleMTL.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var url, headers, result, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = "".concat(this.site, "page/").concat(pageNo, "/?s=").concat(searchTerm); - headers = new Headers(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url, { headers: headers })]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - return [2 /*return*/, this.parseNovels(loadedCheerio)]; - } - }); - }); - }; - NobleMTL.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url)]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return NobleMTL; -}()); -exports.default = new NobleMTL(); diff --git a/.js/plugins/english/novelbin.js b/.js/plugins/english/novelbin.js deleted file mode 100644 index 5a86c24..0000000 --- a/.js/plugins/english/novelbin.js +++ /dev/null @@ -1,220 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var cheerio_1 = require("cheerio"); -var fetch_1 = require("@libs/fetch"); -var NovelBin = /** @class */ (function () { - function NovelBin() { - this.id = "novelbin"; - this.name = "Novel Bin"; - this.icon = "src/en/novelbin/icon.png"; - this.site = "https://novelmax.net/"; - this.version = "1.0.0"; - this.baseUrl = this.site; - } - NovelBin.prototype.popularNovels = function (pageNo, options) { - return __awaiter(this, void 0, void 0, function () { - var url, body, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = "".concat(this.baseUrl, "sort/p/?page=").concat(pageNo); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (r) { return r.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio(".col-novel-main .list-novel .row").each(function () { - var novelName = loadedCheerio(this).find("h3.novel-title > a").text(); - var novelCover = loadedCheerio(this).find("img.cover").attr("src"); - var novelUrl = loadedCheerio(this) - .find("h3.novel-title > a") - .attr("href"); - if (!novelUrl) - return; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - NovelBin.prototype.parseNovelAndChapters = function (novelUrl) { - return __awaiter(this, void 0, void 0, function () { - var url, body, loadedCheerio, novel, novelId, getChapters, _a; - var _this = this; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - url = novelUrl; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (r) { return r.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { - url: url, - chapters: [], - }; - novel.name = loadedCheerio("div.book > img").attr("alt"); - novel.cover = loadedCheerio("div.book > img").attr("src"); - novel.summary = loadedCheerio("div.desc-text").text().trim(); - loadedCheerio("ul.info > li > h3").each(function () { - var detailName = loadedCheerio(this).text(); - var detail = loadedCheerio(this) - .siblings() - .map(function (i, el) { return loadedCheerio(el).text(); }) - .toArray() - .join(","); - switch (detailName) { - case "Author:": - novel.author = detail; - break; - case "Status:": - novel.status = detail; - break; - case "Genre:": - novel.genres = detail; - break; - } - }); - novelId = loadedCheerio("#rating").attr("data-novel-id"); - getChapters = function (id) { return __awaiter(_this, void 0, void 0, function () { - var chapterListUrl, data, chapterdata, chapter; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - chapterListUrl = this.baseUrl + "ajax/chapter-archive?novelId=" + id; - return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterListUrl)]; - case 1: - data = _a.sent(); - return [4 /*yield*/, data.text()]; - case 2: - chapterdata = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(chapterdata); - chapter = []; - loadedCheerio("ul.list-chapter > li").each(function () { - var chapterName = loadedCheerio(this).find("a").attr("title"); - var releaseDate = null; - var chapterUrl = loadedCheerio(this).find("a").attr("href"); - if (!chapterName || !chapterUrl) - return; - chapter.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - return [2 /*return*/, chapter]; - } - }); - }); }; - if (!novelId) return [3 /*break*/, 3]; - _a = novel; - return [4 /*yield*/, getChapters(novelId)]; - case 2: - _a.chapters = _b.sent(); - _b.label = 3; - case 3: return [2 /*return*/, novel]; - } - }); - }); - }; - NovelBin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (r) { return r.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio('#chr-content > div,h6,p[style="display: none;"]').remove(); - chapterText = loadedCheerio("#chr-content").html() || ''; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - NovelBin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var url, body, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = "".concat(this.baseUrl, "search/?keyword=").concat(searchTerm); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (r) { return r.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio("div.col-novel-main > div.list-novel > .row").each(function () { - var novelUrl = loadedCheerio(this) - .find("h3.novel-title > a") - .attr("href"); - var novelName = loadedCheerio(this) - .find("h3.novel-title > a") - .text(); - var novelCover = loadedCheerio(this).find("img").attr("src"); - if (novelUrl) { - novels.push({ - url: novelUrl, - name: novelName, - cover: novelCover, - }); - } - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - NovelBin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2 /*return*/, (0, fetch_1.fetchFile)(url)]; - }); - }); - }; - return NovelBin; -}()); -exports.default = new NovelBin(); diff --git a/.js/plugins/english/novelfull.js b/.js/plugins/english/novelfull.js deleted file mode 100644 index 8efc789..0000000 --- a/.js/plugins/english/novelfull.js +++ /dev/null @@ -1,227 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var cheerio_1 = require("cheerio"); -var fetch_1 = require("@libs/fetch"); -var NovelFull = /** @class */ (function () { - function NovelFull() { - this.id = "novelfull"; - this.name = "NovelFull"; - this.version = "1.0.0"; - this.icon = "src/en/novelfull/icon.png"; - this.site = "https://novelfull.com/"; - this.baseUrl = this.site; - } - NovelFull.prototype.popularNovels = function (pageNo, options) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novels; - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = "".concat(this.baseUrl, "most-popular?page=").concat(pageNo); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio(".col-truyen-main .list-truyen .row").each(function (idx, ele) { - var _a, _b; - var novelName = loadedCheerio(ele) - .find("h3.truyen-title > a") - .text(); - var novelCover = _this.baseUrl + ((_a = loadedCheerio(ele).find("img").attr("src")) === null || _a === void 0 ? void 0 : _a.slice(1)); - var novelUrl = _this.baseUrl + - ((_b = loadedCheerio(ele) - .find("h3.truyen-title > a") - .attr("href")) === null || _b === void 0 ? void 0 : _b.slice(1)); - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - NovelFull.prototype.parseNovelAndChapters = function (novelUrl) { - return __awaiter(this, void 0, void 0, function () { - function getChapters(id, baseUrl) { - return __awaiter(this, void 0, void 0, function () { - var chapterListUrl, data, chapterlist, chapter; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - chapterListUrl = baseUrl + "ajax/chapter-option?novelId=" + id; - return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterListUrl)]; - case 1: - data = _a.sent(); - return [4 /*yield*/, data.text()]; - case 2: - chapterlist = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(chapterlist); - chapter = []; - loadedCheerio("select > option").each(function () { - var _a; - var chapterName = loadedCheerio(this).text(); - var releaseDate = null; - var chapterUrl = baseUrl + ((_a = loadedCheerio(this).attr("value")) === null || _a === void 0 ? void 0 : _a.slice(1)); - chapter.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - return [2 /*return*/, chapter]; - } - }); - }); - } - var url, result, body, loadedCheerio, novel, novelId, _a; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - url = novelUrl; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _b.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { - url: url, - chapters: [], - }; - novel.name = loadedCheerio("div.book > img").attr("alt"); - novel.cover = this.baseUrl + loadedCheerio("div.book > img").attr("src"); - novel.summary = loadedCheerio("div.desc-text").text().trim(); - novel.author = loadedCheerio('h3:contains("Author")') - .parent() - .contents() - .text() - .replace("Author:", ""); - novel.genres = loadedCheerio('h3:contains("Genre")') - .siblings() - .map(function (i, el) { return loadedCheerio(el).text(); }) - .toArray() - .join(","); - novel.status = loadedCheerio('h3:contains("Status")').next().text(); - novelId = loadedCheerio("#rating").attr("data-novel-id"); - _a = novel; - return [4 /*yield*/, getChapters(novelId, this.baseUrl)]; - case 3: - _a.chapters = _b.sent(); - return [2 /*return*/, novel]; - } - }); - }); - }; - NovelFull.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var result, body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio("#chapter-content div.ads").remove(); - chapterText = loadedCheerio("#chapter-content").html() || ''; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - NovelFull.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var searchUrl, result, body, loadedCheerio, novels; - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - searchUrl = "".concat(this.baseUrl, "search?keyword=").concat(searchTerm); - return [4 /*yield*/, (0, fetch_1.fetchApi)(searchUrl)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio(".col-truyen-main .list-truyen .row").each(function (idx, ele) { - var _a, _b; - var novelName = loadedCheerio(ele) - .find("h3.truyen-title > a") - .text(); - var novelCover = _this.baseUrl + ((_a = loadedCheerio(ele).find("img").attr("src")) === null || _a === void 0 ? void 0 : _a.slice(1)); - var novelUrl = _this.baseUrl + - ((_b = loadedCheerio(ele) - .find("h3.truyen-title > a") - .attr("href")) === null || _b === void 0 ? void 0 : _b.slice(1)); - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - NovelFull.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2 /*return*/, (0, fetch_1.fetchFile)(url)]; - }); - }); - }; - return NovelFull; -}()); -exports.default = new NovelFull(); diff --git a/.js/plugins/english/novelhall.js b/.js/plugins/english/novelhall.js deleted file mode 100644 index 29ecffb..0000000 --- a/.js/plugins/english/novelhall.js +++ /dev/null @@ -1,183 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var cheerio_1 = require("cheerio"); -var fetch_1 = require("@libs/fetch"); -var NovelHall = /** @class */ (function () { - function NovelHall() { - this.id = "novelhall"; - this.name = "Novel Hall"; - this.version = "1.0.0"; - this.icon = "src/en/novelhall/icon.png"; - this.site = "https://novelhall.com/"; - this.baseUrl = this.site; - } - NovelHall.prototype.popularNovels = function (pageNo, options) { - return __awaiter(this, void 0, void 0, function () { - var url, body, loadedCheerio, novels; - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = "".concat(this.baseUrl, "all2022-").concat(pageNo, ".html"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (r) { return r.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio("li.btm").each(function (idx, ele) { - var novelName = loadedCheerio(ele).text().trim(); - var novelUrl = _this.baseUrl + loadedCheerio(ele).find("a").attr("href"); - var novel = { - name: novelName, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - NovelHall.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var url, body, loadedCheerio, novel, chapter; - var _this = this; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - url = novelUrl; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (r) { return r.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { - url: url, - chapters: [], - }; - novel.name = loadedCheerio(".booknav2 > h1").text(); - novel.cover = loadedCheerio('meta[property="og:image"]').attr("content"); - novel.summary = loadedCheerio(".navtxt").text().trim(); - novel.author = loadedCheerio('p:contains("Author")') - .text() - .replace("Author:", "") - .trim(); - novel.status = loadedCheerio('p:contains("Status")') - .text() - .replace("Status:", "") - .replace("Active", "Ongoing") - .trim(); - novel.genres = (_a = loadedCheerio('p:contains("Genre")') - .text()) === null || _a === void 0 ? void 0 : _a.replace("Genre:", "").trim(); - chapter = []; - loadedCheerio("#morelist ul > li").each(function (idx, ele) { - var chapterName = loadedCheerio(ele).find("a").text().trim(); - var releaseDate = null; - var chapterUrl = _this.baseUrl + loadedCheerio(ele).find("a").attr("href"); - chapter.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapter; - return [2 /*return*/, novel]; - } - }); - }); - }; - NovelHall.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (r) { return r.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".content").html() || ''; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - NovelHall.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var url, body, loadedCheerio, novels; - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = "".concat(this.baseUrl, "index.php?s=so&module=book&keyword=").concat(searchTerm); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (r) { return r.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio("#article_list_content > li").each(function (idx, ele) { - var _a; - var novelName = loadedCheerio(ele) - .find("h3") - .text() - .replace(/\t+/g, "") - .replace(/\n/g, " "); - var novelCover = loadedCheerio(ele).find("img").attr("data-src"); - var novelUrl = _this.baseUrl + ((_a = loadedCheerio(ele).find("a").attr("href")) === null || _a === void 0 ? void 0 : _a.slice(1)); - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - NovelHall.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2 /*return*/, (0, fetch_1.fetchFile)(url)]; - }); - }); - }; - return NovelHall; -}()); -exports.default = new NovelHall(); diff --git a/.js/plugins/english/novelupdates.js b/.js/plugins/english/novelupdates.js deleted file mode 100644 index 5efebfe..0000000 --- a/.js/plugins/english/novelupdates.js +++ /dev/null @@ -1,453 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var cheerio_1 = require("cheerio"); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var NovelUpdates = /** @class */ (function () { - function NovelUpdates() { - this.id = "novelupdates"; - this.name = "Novel Updates"; - this.version = "0.5.0"; - this.icon = "src/en/novelupdates/icon.png"; - this.site = "https://www.novelupdates.com/"; - this.filters = { - sort: { - label: "Sort Results By", - value: "sdate", - options: [ - { label: "Last Updated", value: "sdate" }, - { label: "Rating", value: "srate" }, - { label: "Rank", value: "srank" }, - { label: "Reviews", value: "sreview" }, - { label: "Chapters", value: "srel" }, - { label: "Title", value: "abc" }, - { label: "Readers", value: "sread" }, - { label: "Frequency", value: "sfrel" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - order: { - label: "Order", - value: "desc", - options: [ - { label: "Descending", value: "desc" }, - { label: "Ascending", value: "asc" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - storyStatus: { - label: "Story Status (Translation)", - value: "", - options: [ - { label: "All", value: "" }, - { label: "Completed", value: "2" }, - { label: "Ongoing", value: "3" }, - { label: "Hiatus", value: "4" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - language: { - label: "Language", - value: [], - options: [ - { label: "None", value: "" }, - { label: "Chinese", value: "495" }, - { label: "Filipino", value: "9181" }, - { label: "Indonesian", value: "9179" }, - { label: "Japanese", value: "496" }, - { label: "Khmer", value: "18657" }, - { label: "Korean", value: "497" }, - { label: "Malaysian", value: "9183" }, - { label: "Thai", value: "9954" }, - { label: "Vietnamese", value: "9177" }, - ], - type: filterInputs_1.FilterTypes.CheckboxGroup, - }, - novelType: { - label: "Novel Type", - value: [], - options: [ - { label: "Light Novel", value: "2443" }, - { label: "Published Novel", value: "26874" }, - { label: "Web Novel", value: "2444" }, - ], - type: filterInputs_1.FilterTypes.CheckboxGroup, - }, - genres: { - label: "Genres", - type: filterInputs_1.FilterTypes.ExcludableCheckboxGroup, - value: { - include: [], - exclude: [], - }, - options: [ - { label: "Action", value: "8" }, - { label: "Adult", value: "280" }, - { label: "Adventure", value: "13" }, - { label: "Comedy", value: "17" }, - { label: "Drama", value: "9" }, - { label: "Ecchi", value: "292" }, - { label: "Fantasy", value: "5" }, - { label: "Gender Bender", value: "168" }, - { label: "Harem", value: "3" }, - { label: "Historical", value: "330" }, - { label: "Horror", value: "343" }, - { label: "Josei", value: "324" }, - { label: "Martial Arts", value: "14" }, - { label: "Mature", value: "4" }, - { label: "Mecha", value: "10" }, - { label: "Mystery", value: "245" }, - { label: "Psychoical", value: "486" }, - { label: "Romance", value: "15" }, - { label: "School Life", value: "6" }, - { label: "Sci-fi", value: "11" }, - { label: "Seinen", value: "18" }, - { label: "Shoujo", value: "157" }, - { label: "Shoujo Ai", value: "851" }, - { label: "Shounen", value: "12" }, - { label: "Shounen Ai", value: "1692" }, - { label: "Slice of Life", value: "7" }, - { label: "Smut", value: "281" }, - { label: "Sports", value: "1357" }, - { label: "Supernatural", value: "16" }, - { label: "Tragedy", value: "132" }, - { label: "Wuxia", value: "479" }, - { label: "Xianxia", value: "480" }, - { label: "Xuanhuan", value: "3954" }, - { label: "Yaoi", value: "560" }, - { label: "Yuri", value: "922" }, - ], - }, - genre_operator: { - label: "Genre (AND/OR)", - value: "and", - options: [ - { label: "AND", value: "and" }, - { label: "OR", value: "or" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - }; - } - NovelUpdates.prototype.parseNovels = function (loadedCheerio) { - var novels = []; - loadedCheerio("div.search_main_box_nu").each(function (idx, ele) { - var novelCover = loadedCheerio(ele).find("img").attr("src"); - var novelName = loadedCheerio(ele).find(".search_title > a").text(); - var novelUrl = loadedCheerio(ele) - .find(".search_title > a") - .attr("href"); - if (!novelUrl) - return; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return novels; - }; - NovelUpdates.prototype.popularNovels = function (page, _a) { - var _b, _c, _d, _e, _f, _g; - var showLatestNovels = _a.showLatestNovels, filters = _a.filters; - return __awaiter(this, void 0, void 0, function () { - var link, headers, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - link = "".concat(this.site); - if (filters.language.value.length || - filters.novelType.value.length || - ((_b = filters.genres.value.include) === null || _b === void 0 ? void 0 : _b.length) || - ((_c = filters.genres.value.exclude) === null || _c === void 0 ? void 0 : _c.length) || - filters.storyStatus.value.length) { - link += "series-finder/?sf=1"; - } - else if (showLatestNovels) { - link += "latest-series/?st=1"; - } - else { - link += "series-ranking/?rank=week"; - } - ; - if (filters.language.value.length) - link += '&org=' + filters.language.value.join(','); - if (filters.novelType.value.length) - link += '&nt=' + filters.novelType.value.join(','); - if ((_d = filters.genres.value.include) === null || _d === void 0 ? void 0 : _d.length) - link += '&gi=' + filters.genres.value.include.join(','); - if ((_e = filters.genres.value.exclude) === null || _e === void 0 ? void 0 : _e.length) - link += '&ge=' + filters.genres.value.exclude.join(','); - if (((_f = filters.genres.value.include) === null || _f === void 0 ? void 0 : _f.length) || ((_g = filters.genres.value.exclude) === null || _g === void 0 ? void 0 : _g.length)) - link += '&mgi=' + filters.genre_operator.value; - if (filters.storyStatus.value.length) - link += '&ss=' + filters.storyStatus.value; - link += '&sort=' + filters.sort.value; - link += '&order=' + filters.order.value; - link += '&pg=' + page; - headers = new Headers(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(link, { headers: headers }).then(function (result) { - return result.text(); - })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - return [2 /*return*/, this.parseNovels(loadedCheerio)]; - } - }); - }); - }; - NovelUpdates.prototype.parseNovelAndChapters = function (novelUrl) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novel, type, summary, chapter, novelId, formData, link, text; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = novelUrl; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { - url: url, - chapters: [], - }; - novel.name = loadedCheerio(".seriestitlenu").text(); - novel.cover = loadedCheerio(".seriesimg > img").attr("src"); - novel.author = loadedCheerio("#showauthors").text().trim(); - novel.genres = loadedCheerio("#seriesgenre") - .children("a") - .map(function (i, el) { return loadedCheerio(el).text(); }) - .toArray() - .join(","); - novel.status = loadedCheerio("#editstatus").text().includes("Ongoing") - ? "Ongoing" - : "Completed"; - type = loadedCheerio("#showtype").text().trim(); - summary = loadedCheerio("#editdescription").text().trim(); - novel.summary = summary + "\n\nType: ".concat(type); - chapter = []; - novelId = loadedCheerio("input#mypostid").attr("value"); - formData = new FormData(); - formData.append("action", "nd_getchapters"); - formData.append("mygrr", "0"); - formData.append("mypostid", novelId); - link = "".concat(this.site, "wp-admin/admin-ajax.php"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(link, { - method: "POST", - body: formData, - }).then(function (data) { return data.text(); })]; - case 3: - text = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(text); - loadedCheerio("li.sp_li_chp").each(function () { - var chapterName = loadedCheerio(this).text().trim(); - var releaseDate = null; - var chapterUrl = "https:" + - loadedCheerio(this).find("a").first().next().attr("href"); - chapter.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapter.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - NovelUpdates.prototype.getLocation = function (href) { - var match = href.match(/^(https?:)\/\/(([^:/?#]*)(?::([0-9]+))?)([/]{0,1}[^?#]*)(\?[^#]*|)(#.*|)$/); - return match && "".concat(match[1], "//").concat(match[3]); - }; - NovelUpdates.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var chapterText, result, body, loadedCheerio, isWuxiaWorld, isBlogspot, isTumblr, isWattpad, isLightNovelsTls, isiNovelTranslation, isTravisTranslation, isWordPressStr, isWordPress, isRainOfSnow, isWebNovel, isHostedNovel, isScribbleHub, bloatClasses, tags; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - chapterText = ""; - return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - isWuxiaWorld = chapterUrl.toLowerCase().includes("wuxiaworld"); - isBlogspot = chapterUrl.toLowerCase().includes("blogspot"); - isTumblr = chapterUrl.toLowerCase().includes("tumblr"); - isWattpad = chapterUrl.toLowerCase().includes("wattpad"); - isLightNovelsTls = chapterUrl - .toLowerCase() - .includes("lightnovelstranslations"); - isiNovelTranslation = chapterUrl - .toLowerCase() - .includes("inoveltranslation"); - isTravisTranslation = chapterUrl - .toLowerCase() - .includes("travistranslations"); - isWordPressStr = loadedCheerio('meta[name="generator"]').attr("content") || - loadedCheerio("footer").text(); - isWordPress = false; - if (isWordPressStr) { - isWordPress = - isWordPressStr.toLowerCase().includes("wordpress") || - isWordPressStr.includes("Site Kit by Google") || - loadedCheerio(".powered-by") - .text() - .toLowerCase() - .includes("wordpress"); - } - isRainOfSnow = chapterUrl.toLowerCase().includes("rainofsnow"); - isWebNovel = chapterUrl.toLowerCase().includes("webnovel"); - isHostedNovel = chapterUrl.toLowerCase().includes("hostednovel"); - isScribbleHub = chapterUrl.toLowerCase().includes("scribblehub"); - if (isWuxiaWorld) { - chapterText = loadedCheerio("#chapter-content").html(); - } - else if (isRainOfSnow) { - chapterText = loadedCheerio("div.content").html(); - } - else if (isTumblr) { - chapterText = loadedCheerio(".post").html(); - } - else if (isBlogspot) { - loadedCheerio(".post-share-buttons").remove(); - chapterText = loadedCheerio(".entry-content").html(); - } - else if (isHostedNovel) { - chapterText = loadedCheerio(".chapter").html(); - } - else if (isScribbleHub) { - chapterText = loadedCheerio("div.chp_raw").html(); - } - else if (isWattpad) { - chapterText = loadedCheerio(".container pre").html(); - } - else if (isTravisTranslation) { - chapterText = loadedCheerio(".reader-content").html(); - } - else if (isLightNovelsTls) { - chapterText = loadedCheerio(".text_story").html(); - } - else if (isiNovelTranslation) { - chapterText = loadedCheerio(".chakra-skeleton").html(); - } - else if (isWordPress) { - bloatClasses = [ - ".c-ads", - "#madara-comments", - "#comments", - ".content-comments", - ".sharedaddy", - ".wp-dark-mode-switcher", - ".wp-next-post-navi", - ".wp-block-buttons", - ".wp-block-columns", - ".post-cats", - ".sidebar", - ".author-avatar", - ".ezoic-ad", - ]; - bloatClasses.map(function (tag) { return loadedCheerio(tag).remove(); }); - chapterText = - loadedCheerio(".entry-content").html() || - loadedCheerio(".single_post").html() || - loadedCheerio(".post-entry").html() || - loadedCheerio(".main-content").html() || - loadedCheerio("article.post").html() || - loadedCheerio(".content").html() || - loadedCheerio("#content").html() || - loadedCheerio(".page-body").html() || - loadedCheerio(".td-page-content").html(); - } - else if (isWebNovel) { - chapterText = loadedCheerio(".cha-words").html(); - if (!chapterText) { - chapterText = loadedCheerio("._content").html(); - } - } - else { - tags = ["nav", "header", "footer", ".hidden"]; - tags.map(function (tag) { return loadedCheerio(tag).remove(); }); - chapterText = loadedCheerio("body").html(); - } - if (chapterText) { - /** - * Convert relative urls to absolute - */ - chapterText = chapterText.replace(/href="\//g, "href=\"".concat(this.getLocation(chapterUrl), "/")); - } - return [2 /*return*/, chapterText]; - } - }); - }); - }; - NovelUpdates.prototype.searchNovels = function (searchTerm, page) { - return __awaiter(this, void 0, void 0, function () { - var url, headers, result, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = "".concat(this.site, "page/").concat(page, "/?s=").concat(searchTerm, "&post_type=seriesplans"); - headers = new Headers(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url, { headers: headers })]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - return [2 /*return*/, this.parseNovels(loadedCheerio)]; - } - }); - }); - }; - NovelUpdates.prototype.fetchImage = function (url) { - return (0, fetch_1.fetchFile)(url); - }; - return NovelUpdates; -}()); -exports.default = new NovelUpdates(); diff --git a/.js/plugins/english/pandaMTL.js b/.js/plugins/english/pandaMTL.js deleted file mode 100644 index 1bd48df..0000000 --- a/.js/plugins/english/pandaMTL.js +++ /dev/null @@ -1,288 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var cheerio_1 = require("cheerio"); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var PandaMTL = /** @class */ (function () { - function PandaMTL() { - this.id = "pandamtl"; - this.name = "PandaMTL"; - this.icon = "src/en/wordpress/icon.png"; - this.site = "https://pandamtl.com/"; - this.version = "1.0.0"; - this.filters = { - order: { - label: "Sort 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" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - status: { - label: "Status", - value: "", - options: [ - { label: "All", value: "" }, - { label: "Ongoing", value: "ongoing" }, - { label: "Hiatus", value: "hiatus" }, - { label: "Completed", value: "completed" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - type: { - value: [], - label: "Type", - options: [ - { label: "Light Novel (KR)", value: "light-novel-kr" }, - { label: "Web Novel", value: "web-novel" }, - ], - type: filterInputs_1.FilterTypes.CheckboxGroup, - }, - genres: { - label: "Genres", - value: [], - options: [ - { label: "Action", value: "action" }, - { label: "Adult", value: "adult" }, - { label: "Adventure", value: "adventure" }, - { label: "Comedy", value: "comedy" }, - { label: "Ecchi", value: "ecchi" }, - { label: "Fantasy", value: "fantasy" }, - { label: "Harem", value: "harem" }, - { label: "Josei", value: "josei" }, - { label: "Martial Arts", value: "martial-arts" }, - { label: "Mature", value: "mature" }, - { label: "Romance", value: "romance" }, - { label: "School Life", value: "school-life" }, - { label: "Sci-fi", value: "sci-fi" }, - { label: "Seinen", value: "seinen" }, - { label: "Slice of Life", value: "slice-of-life" }, - { label: "Smut", value: "smut" }, - { label: "Sports", value: "sports" }, - { label: "Supernatural", value: "supernatural" }, - { label: "Tragedy", value: "tragedy" }, - ], - type: filterInputs_1.FilterTypes.CheckboxGroup, - }, - }; - } - PandaMTL.prototype.popularNovels = function (pageNo, _a) { - var filters = _a.filters; - return __awaiter(this, void 0, void 0, function () { - var link, headers, body, loadedCheerio, novels; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - link = "".concat(this.site, "series/?page=").concat(pageNo); - if (filters.genres.value.length) { - link += filters.genres.value.map(function (i) { return "&genre[]=".concat(i); }).join(""); - } - if (filters.type.value.length) - link += filters.type.value.map(function (i) { return "&lang[]=".concat(i); }).join(""); - link += "&status=" + ((filters === null || filters === void 0 ? void 0 : filters.status) ? filters.status : ""); - link += "&order=" + ((filters === null || filters === void 0 ? void 0 : filters.order) ? filters.order : "popular"); - headers = new Headers(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(link, { headers: headers }).then(function (result) { - return result.text(); - })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio("article.maindet").each(function () { - var novelName = loadedCheerio(this).find("h2").text(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this).find("h2 a").attr("href"); - if (!novelUrl) - return; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - PandaMTL.prototype.parseNovelAndChapters = function (novelUrl) { - return __awaiter(this, void 0, void 0, function () { - var url, headers, result, body, loadedCheerio, novel, chapter; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = novelUrl; - headers = new Headers(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url, { headers: headers })]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { - url: url, - chapters: [], - }; - novel.name = loadedCheerio("h1.entry-title").text(); - novel.cover = - loadedCheerio("img.wp-post-image").attr("data-src") || - loadedCheerio("img.wp-post-image").attr("src"); - loadedCheerio(".serl:nth-child(3) > span").each(function () { - var detailName = loadedCheerio(this).text().trim(); - var detail = loadedCheerio(this).next().text().trim(); - switch (detailName) { - case "Author": - novel.author = detail; - break; - } - }); - novel.status = loadedCheerio(".sertostat > span").attr("class"); - novel.genres = loadedCheerio(".sertogenre") - .children("a") - .map(function (i, el) { return loadedCheerio(el).text(); }) - .toArray() - .join(","); - novel.summary = loadedCheerio(".sersys") - .find("br") - .replaceWith("\n") - .end() - .text(); - chapter = []; - loadedCheerio(".eplister") - .find("li") - .each(function () { - var chapterName = loadedCheerio(this).find(".epl-num").text() + - " - " + - loadedCheerio(this).find(".epl-title").text(); - var releaseDate = loadedCheerio(this) - .find(".epl-date") - .text() - .trim(); - var chapterUrl = loadedCheerio(this).find("a").attr("href"); - if (!chapterUrl) - return; - chapter.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapter.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - PandaMTL.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var headers, result, body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - headers = new Headers(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl, { headers: headers })]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".epcontent").html() || ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - PandaMTL.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var url, headers, result, body, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = "".concat(this.site, "?s=").concat(searchTerm); - headers = new Headers(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url, { headers: headers })]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio("article.maindet").each(function () { - var novelName = loadedCheerio(this).find("h2").text(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this).find("h2 a").attr("href"); - if (!novelUrl) - return; - novels.push({ - name: novelName, - url: novelUrl, - cover: novelCover, - }); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - PandaMTL.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url)]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return PandaMTL; -}()); -exports.default = new PandaMTL(); diff --git a/.js/plugins/english/wuxiaworld.js b/.js/plugins/english/wuxiaworld.js deleted file mode 100644 index cc99c5f..0000000 --- a/.js/plugins/english/wuxiaworld.js +++ /dev/null @@ -1,192 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var cheerio_1 = require("cheerio"); -var fetch_1 = require("@libs/fetch"); -var WuxiaWorld = /** @class */ (function () { - function WuxiaWorld() { - this.id = "wuxiaworld"; - this.name = "Wuxia World"; - this.icon = "src/en/wuxiaworld/icon.png"; - this.site = "https://www.wuxiaworld.com/"; - this.version = "0.5.0"; - this.baseUrl = this.site; - } - WuxiaWorld.prototype.popularNovels = function (pageNo, options) { - return __awaiter(this, void 0, void 0, function () { - var link, result, data, novels; - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - link = "".concat(this.baseUrl, "api/novels"); - return [4 /*yield*/, fetch(link)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.json()]; - case 2: - data = _a.sent(); - novels = []; - data.items.map(function (novel) { - var name = novel.name; - var cover = novel.coverUrl; - var url = _this.baseUrl + "novel/" + novel.slug + "/"; - novels.push({ - name: name, - cover: cover, - url: url, - }); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - WuxiaWorld.prototype.parseNovelAndChapters = function (novelUrl) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novel, genres, chapter; - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = novelUrl; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { - url: url, - chapters: [], - }; - novel.name = loadedCheerio("h1.line-clamp-2").text(); - novel.cover = loadedCheerio("img.absolute").attr("src"); - novel.summary = loadedCheerio("div.flex-col:nth-child(4) > div > div > span > span") - .text() - .trim(); - novel.author = loadedCheerio("div.MuiGrid-container > div > div > div") - .filter(function () { - return loadedCheerio(this).text().trim() === "Author:"; - }) - .next() - .text(); - genres = []; - loadedCheerio("a.MuiLink-underlineNone").each(function () { - genres.push(loadedCheerio(this).find("div > div").text()); - }); - novel.genres = genres.join(","); - novel.status = loadedCheerio("div.font-set-b10") - .text(); - chapter = []; - loadedCheerio("div.border-b.border-gray-line-base").each(function (idx, ele) { - var _a; - var name = loadedCheerio(ele) - .find("a > div > div > div > span") - .text(); - var releaseTime = loadedCheerio(ele) - .find("a > div > div > div > div > span") - .text(); - var url = (_a = loadedCheerio(ele).find("a").attr("href")) === null || _a === void 0 ? void 0 : _a.slice(1); - url = "".concat(_this.baseUrl).concat(url); - chapter.push({ name: name, releaseTime: releaseTime, url: url }); - }); - novel.chapters = chapter; - return [2 /*return*/, novel]; - } - }); - }); - }; - WuxiaWorld.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var result, body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".chapter-nav").remove(); - loadedCheerio("#chapter-content > script").remove(); - chapterText = loadedCheerio("#chapter-content").html() || ''; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - WuxiaWorld.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var searchUrl, url, result, data, novels; - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - searchUrl = "https://www.wuxiaworld.com/api/novels/search?query="; - url = "".concat(searchUrl).concat(searchTerm); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.json()]; - case 2: - data = _a.sent(); - novels = []; - data.items.map(function (novel) { - var name = novel.name; - var cover = novel.coverUrl; - var url = _this.baseUrl + "novel/" + novel.slug + "/"; - novels.push({ - name: name, - url: url, - cover: cover, - }); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - WuxiaWorld.prototype.fetchImage = function (url) { - return (0, fetch_1.fetchFile)(url); - }; - return WuxiaWorld; -}()); -exports.default = new WuxiaWorld(); diff --git a/.js/plugins/french/LighNovelFR[wpmangastream].js b/.js/plugins/french/LighNovelFR[wpmangastream].js deleted file mode 100644 index f8f863b..0000000 --- a/.js/plugins/french/LighNovelFR[wpmangastream].js +++ /dev/null @@ -1,183 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var cheerio_1 = require("cheerio"); -var fetch_1 = require("@libs/fetch"); -var WPmangaStreamPlugin = /** @class */ (function () { - function WPmangaStreamPlugin(metadata) { - this.fetchImage = fetch_1.fetchFile; - this.id = metadata.id; - this.name = metadata.sourceName + "[wpmangastream]"; - this.icon = "multisrc/wpmangastream/icons/".concat(metadata.id, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - } - WPmangaStreamPlugin.prototype.popularNovels = function (page) { - return __awaiter(this, void 0, void 0, function () { - var url, body, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = this.site + "series/?page=" + page + "&status=&order=popular"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio("article.maindet").each(function () { - var name = loadedCheerio(this).find("h2").text(); - var image = loadedCheerio(this).find("img"); - var url = loadedCheerio(this).find("h2 a").attr("href"); - if (!url) - return; - novels.push({ - name: name, - cover: image.attr("data-src") || image.attr("src"), - url: url, - }); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - WPmangaStreamPlugin.prototype.parseNovelAndChapters = function (url) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, novel, summary, i, p, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { url: url }; - // novel.url = url; - novel.name = loadedCheerio("h1.entry-title").text(); - novel.cover = - loadedCheerio("img.wp-post-image").attr("data-src") || - loadedCheerio("img.wp-post-image").attr("src"); - novel.status = loadedCheerio("div.sertostat > span").attr("class"); - loadedCheerio("div.serl > span").each(function () { - var detailName = loadedCheerio(this).text().trim(); - var detail = loadedCheerio(this).next().text().trim(); - switch (detailName) { - case "الكاتب": - case "Author": - case "Auteur": - novel.author = detail; - break; - } - }); - novel.genres = loadedCheerio(".sertogenre") - .children("a") - .map(function (i, el) { return loadedCheerio(el).text(); }) - .toArray() - .join(","); - summary = loadedCheerio(".sersys > p").siblings().remove("div").end(); - novel.summary = ""; - for (i = 0; i < summary.length; i++) { - p = summary[i]; - novel.summary += loadedCheerio(p).text().trim() + "\\n\\n"; - } - chapters = loadedCheerio(".eplister li") - .map(function (index, element) { return ({ - name: loadedCheerio(element).find(".epl-num").text() + - loadedCheerio(element).find(".epl-title").text(), - releaseTime: loadedCheerio(element).find(".epl-date").text().trim(), - url: loadedCheerio(element).find("a").attr("href") || "", - }); }) - .get() - .filter(function (chapter) { return chapter.name && chapter.url; }); - if (((_a = this.options) === null || _a === void 0 ? void 0 : _a.reverseChapters) && chapters.length) - chapters.reverse(); - novel.chapters = chapters; - return [2 /*return*/, novel]; - } - }); - }); - }; - WPmangaStreamPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".epcontent").html() || ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - WPmangaStreamPlugin.prototype.searchNovels = function (searchTerm) { - return __awaiter(this, void 0, void 0, function () { - var url, body, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = this.site + "?s=" + searchTerm; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio("article.maindet").each(function () { - var name = loadedCheerio(this).find("h2").text(); - var image = loadedCheerio(this).find("img"); - var url = loadedCheerio(this).find("h2 a").attr("href"); - if (!url) - return; - novels.push({ - name: name, - cover: image.attr("data-src") || image.attr("src"), - url: url, - }); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - return WPmangaStreamPlugin; -}()); -var plugin = new WPmangaStreamPlugin({ "id": "lightnovelfr", "sourceSite": "https://lightnovelfr.com/", "sourceName": "Ligh Novel FR", "options": { "lang": "French", "reverseChapters": true } }); -exports.default = plugin; diff --git a/.js/plugins/french/chireads.js b/.js/plugins/french/chireads.js deleted file mode 100644 index dd11294..0000000 --- a/.js/plugins/french/chireads.js +++ /dev/null @@ -1,186 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var cheerio_1 = require("cheerio"); -var fetch_1 = require("@libs/fetch"); -var ChireadsPlugin = /** @class */ (function () { - function ChireadsPlugin() { - this.id = "chireads.com"; - this.name = "Chireads"; - this.icon = "src/fr/chireads/icon.png"; - this.site = "https://chireads.com"; - this.version = "1.0.0"; - } - ChireadsPlugin.prototype.parseNovels = function (loadedCheerio) { - return []; - }; - ChireadsPlugin.prototype.popularNovels = function (page, options) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = "".concat(this.site, "/category/translatedtales/page/").concat(page, "/"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio("#content li").each(function () { - var novelName = loadedCheerio(this).find(".news-list-tit h5").text(); - var novelCover = loadedCheerio(this).find("img").attr("src"); - var novelUrl = loadedCheerio(this) - .find(".news-list-tit h5 a") - .attr("href"); - if (!novelUrl) - return; - var novel = { name: novelName, cover: novelCover, url: novelUrl }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - ; - ChireadsPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - return __awaiter(this, void 0, void 0, function () { - var url, novel, result, body, loadedCheerio, chapters; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = novelUrl; - novel = { url: url }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel.name = loadedCheerio(".inform-title").text().trim(); - novel.cover = loadedCheerio(".inform-product img").attr("src"); - novel.summary = loadedCheerio(".inform-inform-txt").text().trim(); - chapters = []; - loadedCheerio(".chapitre-table a").each(function () { - var chapterName = loadedCheerio(this).text().trim(); - var releaseDate = null; - var chapterUrl = loadedCheerio(this).attr("href"); - if (!chapterUrl) - return; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters; - return [2 /*return*/, novel]; - } - }); - }); - }; - ; - ChireadsPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var result, body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio("#content").html() || ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - ; - ChireadsPlugin.prototype.searchNovels = function (searchTerm) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = "".concat(this.site, "/search?x=0&y=0&name=").concat(searchTerm); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio("#content li").each(function () { - var novelName = loadedCheerio(this).find(".news-list-tit h5").text(); - var novelCover = loadedCheerio(this).find("img").attr("src"); - var novelUrl = loadedCheerio(this) - .find(".news-list-tit h5 a") - .attr("href"); - if (!novelUrl) - return; - var novel = { name: novelName, cover: novelCover, url: novelUrl }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - ; - ChireadsPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url)]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return ChireadsPlugin; -}()); -; -exports.default = new ChireadsPlugin(); diff --git a/.js/plugins/french/noveldeglace.js b/.js/plugins/french/noveldeglace.js deleted file mode 100644 index a07029c..0000000 --- a/.js/plugins/french/noveldeglace.js +++ /dev/null @@ -1,230 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var cheerio_1 = require("cheerio"); -var fetch_1 = require("@libs/fetch"); -var novelStatus_1 = require("@libs/novelStatus"); -var NovelDeGlacePlugin = /** @class */ (function () { - function NovelDeGlacePlugin() { - this.id = "NDG.com"; - this.name = "NovelDeGlace"; - this.icon = "src/fr/noveldeglace/icon.png"; - this.site = "https://noveldeglace.com/"; - this.version = "1.0.0"; - } - NovelDeGlacePlugin.prototype.popularNovels = function (page) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = this.site + "roman"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url, { headers: { 'Accept-Encoding': 'deflate' }, })]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio("article").each(function () { - var novelName = loadedCheerio(this).find("h2").text().trim(); - var novelCover = loadedCheerio(this).find("img").attr("src"); - var novelUrl = loadedCheerio(this).find("h2 > a").attr("href"); - if (!novelUrl) - return; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - ; - NovelDeGlacePlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a, _b; - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novel, categorie, genres, status, novelChapters; - return __generator(this, function (_c) { - switch (_c.label) { - case 0: - url = novelUrl; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url, { headers: { 'Accept-Encoding': 'deflate' } })]; - case 1: - result = _c.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _c.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { url: url }; - novel.name = ((_b = (_a = loadedCheerio("div.entry-content > div > strong")[0].nextSibling) === null || _a === void 0 ? void 0 : _a.nodeValue) === null || _b === void 0 ? void 0 : _b.trim()) || ''; - novel.cover = loadedCheerio(".su-row > div > div > img").attr("src"); - novel.summary = loadedCheerio("div[data-title=Synopsis]").text(); - novel.author = loadedCheerio("strong:contains('Auteur :')").parent().text().replace("Auteur : ", "").trim(); - categorie = loadedCheerio(".categorie") - .text() - .replace("Catégorie :", "") - .trim(); - genres = loadedCheerio(".genre") - .text() - .replace("Genre :", "") - .replace(/, /g, ",") - .trim(); - if (categorie && categorie != "Autre") - novel.genres = categorie; - if (genres) - novel.genres = novel.genres ? novel.genres + "," + genres : genres; - status = loadedCheerio("strong:contains('Statut :')").parent().attr("class"); - switch (status) { - case "type etat0": - novel.status = novelStatus_1.NovelStatus.Ongoing; - break; - case "type etat1": - novel.status = novelStatus_1.NovelStatus.Ongoing; - break; - case "type etat4": - novel.status = novelStatus_1.NovelStatus.OnHiatus; - break; - case "type etat5": - novel.status = novelStatus_1.NovelStatus.Completed; - break; - case "type etat6": - novel.status = novelStatus_1.NovelStatus.Cancelled; - break; - default: - novel.status = novelStatus_1.NovelStatus.Unknown; - break; - } - novelChapters = []; - loadedCheerio(".chpt").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - var chapterUrl = loadedCheerio(this).find("a").attr("href"); - if (!chapterUrl) - return; - var chapter = { - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }; - novelChapters.push(chapter); - }); - novel.chapters = novelChapters; - return [2 /*return*/, novel]; - } - }); - }); - }; - ; - NovelDeGlacePlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = chapterUrl; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url, { headers: { 'Accept-Encoding': 'deflate' } })]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".mistape_caption").remove(); - chapterText = loadedCheerio(".chapter-content").html() || "Chapitre introuvable"; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - ; - NovelDeGlacePlugin.prototype.searchNovels = function (searchTerm) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = this.site + "roman"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url, { headers: { 'Accept-Encoding': 'deflate' } })]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio("article").each(function () { - var novelName = loadedCheerio(this).find("h2").text().trim(); - var novelCover = loadedCheerio(this).find("img").attr("src"); - var novelUrl = loadedCheerio(this).find("h2 > a").attr("href"); - if (!novelUrl) - return; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - novels = novels.filter(function (novel) { - return novel.name.toLowerCase().includes(searchTerm.toLowerCase()); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - ; - NovelDeGlacePlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url)]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return NovelDeGlacePlugin; -}()); -exports.default = new NovelDeGlacePlugin(); diff --git a/.js/plugins/indonesian/MeioNovel[madara].js b/.js/plugins/indonesian/MeioNovel[madara].js deleted file mode 100644 index 8bef7fc..0000000 --- a/.js/plugins/indonesian/MeioNovel[madara].js +++ /dev/null @@ -1,296 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var dayjs_1 = __importDefault(require("dayjs")); -var MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; -var MadaraPlugin = /** @class */ (function () { - function MadaraPlugin(metadata) { - this.id = metadata.id; - this.name = metadata.sourceName + "[madara]"; - var iconFileName = metadata.sourceName - .replace(/\s+/g, "") - .toLowerCase(); - this.icon = "multisrc/madara/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - this.filters = metadata.filters; - } - MadaraPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - novels = []; - url = this.site; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) { - url += (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.path) === null || _d === void 0 ? void 0 : _d.genres) || MadaraDefaultPath.genres) + - "/" + - filters.genres.value; - } - else { - url += ((_f = (_e = this.options) === null || _e === void 0 ? void 0 : _e.path) === null || _f === void 0 ? void 0 : _f.novels) || MadaraDefaultPath.novels; - } - url += - "/page/" + - pageNo + - "/" + - "?m_orderby=" + - (showLatestNovels ? "latest" : ((_g = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _g === void 0 ? void 0 : _g.value) || "rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges").remove(); - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novel, body, loadedCheerio, html, novelId, formData, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges, #manga-title span").remove(); - novel.name = - loadedCheerio(".post-title h1").text().trim() || - loadedCheerio("#manga-title h1").text(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("data-lazy-src") || - loadedCheerio(".summary_image > a > img").attr("data-src") || - loadedCheerio(".summary_image > a > img").attr("src") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item, .post-content").each(function () { - var detailName = loadedCheerio(this).find("h5").text().trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - case "التصنيفات": - novel.genres = detail.replace(/[\\t\\n]/g, ","); - break; - case "Author(s)": - case "المؤلف": - case "المؤلف (ين)": - novel.author = detail; - break; - case "Status": - case "الحالة": - novel.status = - detail.includes("OnGoing") || detail.includes("مستمرة") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - loadedCheerio("div.summary__content .code-block,script").remove(); - novel.summary = - loadedCheerio("div.summary__content").text().trim() || - loadedCheerio("#tab-manga-about").text().trim() || - loadedCheerio('.post-content_item h5:contains("Summary")') - .next() - .text() - .trim(); - if (!(((_a = this.options) === null || _a === void 0 ? void 0 : _a.useNewChapterEndpoint) !== true)) return [3 /*break*/, 3]; - novelId = loadedCheerio(".rating-post-id").attr("value") || - loadedCheerio("#manga-chapters-holder").attr("data-id") || - ""; - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - }).then(function (res) { return res.text(); })]; - case 2: - html = _b.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl + "ajax/chapters/", { - method: "POST", - }).then(function (res) { return res.text(); })]; - case 4: - html = _b.sent(); - _b.label = 5; - case 5: - if (html !== "0") { - loadedCheerio = (0, cheerio_1.load)(html); - } - chapters = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - releaseDate = loadedCheerio(this) - .find("span.chapter-release-date") - .text() - .trim(); - if (releaseDate) { - releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(releaseDate); - } - else { - /** - * Insert current date - */ - releaseDate = (0, dayjs_1.default)().format("LL"); - } - var chapterUrl = loadedCheerio(this).find("a").attr("href") || ""; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MadaraPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || - loadedCheerio(".text-right").html() || - loadedCheerio(".entry-content").html() || - ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MadaraPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url, {})]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return MadaraPlugin; -}()); -var plugin = new MadaraPlugin({ "id": "meionovel", "sourceSite": "https://meionovel.id/", "sourceName": "MeioNovel", "filters": { "sort": { "label": "Order by", "value": "", "options": [{ "label": "Default", "value": "" }, { "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": filterInputs_1.FilterTypes.Picker }, "genres": { "label": "GENRES", "value": "", "options": [{ "label": "NONE", "value": "" }, { "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": filterInputs_1.FilterTypes.Picker } }, "options": { "useNewChapterEndpoint": true, "lang": "Indonesian" } }); -exports.default = plugin; diff --git a/.js/plugins/indonesian/MoreNovel[madara].js b/.js/plugins/indonesian/MoreNovel[madara].js deleted file mode 100644 index f9dad34..0000000 --- a/.js/plugins/indonesian/MoreNovel[madara].js +++ /dev/null @@ -1,296 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var dayjs_1 = __importDefault(require("dayjs")); -var MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; -var MadaraPlugin = /** @class */ (function () { - function MadaraPlugin(metadata) { - this.id = metadata.id; - this.name = metadata.sourceName + "[madara]"; - var iconFileName = metadata.sourceName - .replace(/\s+/g, "") - .toLowerCase(); - this.icon = "multisrc/madara/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - this.filters = metadata.filters; - } - MadaraPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - novels = []; - url = this.site; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) { - url += (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.path) === null || _d === void 0 ? void 0 : _d.genres) || MadaraDefaultPath.genres) + - "/" + - filters.genres.value; - } - else { - url += ((_f = (_e = this.options) === null || _e === void 0 ? void 0 : _e.path) === null || _f === void 0 ? void 0 : _f.novels) || MadaraDefaultPath.novels; - } - url += - "/page/" + - pageNo + - "/" + - "?m_orderby=" + - (showLatestNovels ? "latest" : ((_g = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _g === void 0 ? void 0 : _g.value) || "rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges").remove(); - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novel, body, loadedCheerio, html, novelId, formData, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges, #manga-title span").remove(); - novel.name = - loadedCheerio(".post-title h1").text().trim() || - loadedCheerio("#manga-title h1").text(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("data-lazy-src") || - loadedCheerio(".summary_image > a > img").attr("data-src") || - loadedCheerio(".summary_image > a > img").attr("src") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item, .post-content").each(function () { - var detailName = loadedCheerio(this).find("h5").text().trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - case "التصنيفات": - novel.genres = detail.replace(/[\\t\\n]/g, ","); - break; - case "Author(s)": - case "المؤلف": - case "المؤلف (ين)": - novel.author = detail; - break; - case "Status": - case "الحالة": - novel.status = - detail.includes("OnGoing") || detail.includes("مستمرة") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - loadedCheerio("div.summary__content .code-block,script").remove(); - novel.summary = - loadedCheerio("div.summary__content").text().trim() || - loadedCheerio("#tab-manga-about").text().trim() || - loadedCheerio('.post-content_item h5:contains("Summary")') - .next() - .text() - .trim(); - if (!(((_a = this.options) === null || _a === void 0 ? void 0 : _a.useNewChapterEndpoint) !== true)) return [3 /*break*/, 3]; - novelId = loadedCheerio(".rating-post-id").attr("value") || - loadedCheerio("#manga-chapters-holder").attr("data-id") || - ""; - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - }).then(function (res) { return res.text(); })]; - case 2: - html = _b.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl + "ajax/chapters/", { - method: "POST", - }).then(function (res) { return res.text(); })]; - case 4: - html = _b.sent(); - _b.label = 5; - case 5: - if (html !== "0") { - loadedCheerio = (0, cheerio_1.load)(html); - } - chapters = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - releaseDate = loadedCheerio(this) - .find("span.chapter-release-date") - .text() - .trim(); - if (releaseDate) { - releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(releaseDate); - } - else { - /** - * Insert current date - */ - releaseDate = (0, dayjs_1.default)().format("LL"); - } - var chapterUrl = loadedCheerio(this).find("a").attr("href") || ""; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MadaraPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || - loadedCheerio(".text-right").html() || - loadedCheerio(".entry-content").html() || - ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MadaraPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url, {})]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return MadaraPlugin; -}()); -var plugin = new MadaraPlugin({ "id": "morenovel", "sourceSite": "https://morenovel.net/", "sourceName": "MoreNovel", "filters": { "sort": { "label": "Order by", "value": "", "options": [{ "label": "Default", "value": "" }, { "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": filterInputs_1.FilterTypes.Picker }, "genres": { "label": "GENRES", "value": "", "options": [{ "label": "NONE", "value": "" }, { "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": filterInputs_1.FilterTypes.Picker } }, "options": { "useNewChapterEndpoint": true, "lang": "Indonesian" } }); -exports.default = plugin; diff --git a/.js/plugins/indonesian/WBNovel[madara].js b/.js/plugins/indonesian/WBNovel[madara].js deleted file mode 100644 index 2016323..0000000 --- a/.js/plugins/indonesian/WBNovel[madara].js +++ /dev/null @@ -1,296 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var dayjs_1 = __importDefault(require("dayjs")); -var MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; -var MadaraPlugin = /** @class */ (function () { - function MadaraPlugin(metadata) { - this.id = metadata.id; - this.name = metadata.sourceName + "[madara]"; - var iconFileName = metadata.sourceName - .replace(/\s+/g, "") - .toLowerCase(); - this.icon = "multisrc/madara/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - this.filters = metadata.filters; - } - MadaraPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - novels = []; - url = this.site; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) { - url += (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.path) === null || _d === void 0 ? void 0 : _d.genres) || MadaraDefaultPath.genres) + - "/" + - filters.genres.value; - } - else { - url += ((_f = (_e = this.options) === null || _e === void 0 ? void 0 : _e.path) === null || _f === void 0 ? void 0 : _f.novels) || MadaraDefaultPath.novels; - } - url += - "/page/" + - pageNo + - "/" + - "?m_orderby=" + - (showLatestNovels ? "latest" : ((_g = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _g === void 0 ? void 0 : _g.value) || "rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges").remove(); - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novel, body, loadedCheerio, html, novelId, formData, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges, #manga-title span").remove(); - novel.name = - loadedCheerio(".post-title h1").text().trim() || - loadedCheerio("#manga-title h1").text(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("data-lazy-src") || - loadedCheerio(".summary_image > a > img").attr("data-src") || - loadedCheerio(".summary_image > a > img").attr("src") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item, .post-content").each(function () { - var detailName = loadedCheerio(this).find("h5").text().trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - case "التصنيفات": - novel.genres = detail.replace(/[\\t\\n]/g, ","); - break; - case "Author(s)": - case "المؤلف": - case "المؤلف (ين)": - novel.author = detail; - break; - case "Status": - case "الحالة": - novel.status = - detail.includes("OnGoing") || detail.includes("مستمرة") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - loadedCheerio("div.summary__content .code-block,script").remove(); - novel.summary = - loadedCheerio("div.summary__content").text().trim() || - loadedCheerio("#tab-manga-about").text().trim() || - loadedCheerio('.post-content_item h5:contains("Summary")') - .next() - .text() - .trim(); - if (!(((_a = this.options) === null || _a === void 0 ? void 0 : _a.useNewChapterEndpoint) !== true)) return [3 /*break*/, 3]; - novelId = loadedCheerio(".rating-post-id").attr("value") || - loadedCheerio("#manga-chapters-holder").attr("data-id") || - ""; - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - }).then(function (res) { return res.text(); })]; - case 2: - html = _b.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl + "ajax/chapters/", { - method: "POST", - }).then(function (res) { return res.text(); })]; - case 4: - html = _b.sent(); - _b.label = 5; - case 5: - if (html !== "0") { - loadedCheerio = (0, cheerio_1.load)(html); - } - chapters = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - releaseDate = loadedCheerio(this) - .find("span.chapter-release-date") - .text() - .trim(); - if (releaseDate) { - releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(releaseDate); - } - else { - /** - * Insert current date - */ - releaseDate = (0, dayjs_1.default)().format("LL"); - } - var chapterUrl = loadedCheerio(this).find("a").attr("href") || ""; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MadaraPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || - loadedCheerio(".text-right").html() || - loadedCheerio(".entry-content").html() || - ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MadaraPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url, {})]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return MadaraPlugin; -}()); -var plugin = new MadaraPlugin({ "id": "wbnovel", "sourceSite": "https://wbnovel.com/", "sourceName": "WBNovel", "filters": { "sort": { "label": "Order by", "value": "", "options": [{ "label": "Default", "value": "" }, { "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": filterInputs_1.FilterTypes.Picker }, "genres": { "label": "GENRES", "value": "", "options": [{ "label": "NONE", "value": "" }, { "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": filterInputs_1.FilterTypes.Picker } }, "options": { "lang": "Indonesian" } }); -exports.default = plugin; diff --git a/.js/plugins/indonesian/indowebnovel.js b/.js/plugins/indonesian/indowebnovel.js deleted file mode 100644 index 49c70c5..0000000 --- a/.js/plugins/indonesian/indowebnovel.js +++ /dev/null @@ -1,200 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var cheerio_1 = require("cheerio"); -var fetch_1 = require("@libs/fetch"); -var defaultCover_1 = require("@libs/defaultCover"); -var IndoWebNovel = /** @class */ (function () { - function IndoWebNovel() { - this.id = "IDWN.id"; - this.name = "IndoWebNovel"; - this.icon = "src/id/indowebnovel/icon.png"; - this.site = "https://indowebnovel.id/id/"; - this.version = "1.0.0"; - this.baseUrl = this.site; - } - IndoWebNovel.prototype.popularNovels = function (pageNo, options) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = "".concat(this.baseUrl, "daftar-novel/"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio(".novellist-blc li").each(function () { - var novelName = loadedCheerio(this).find("a").text(); - var novelCover = defaultCover_1.defaultCover; - var novelUrl = loadedCheerio(this).find("a").attr("href"); - if (!novelUrl || !novelName) - return; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - IndoWebNovel.prototype.parseNovelAndChapters = function (novelUrl) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novel, genres, chapters; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = novelUrl; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { - url: url, - name: "", - cover: "", - author: "", - status: "", - genres: "", - summary: "", - chapters: [], - }; - novel.name = loadedCheerio(".series-title").text().trim(); - novel.cover = loadedCheerio(".series-thumb > img").attr("src"); - novel.summary = loadedCheerio(".series-synops").text().trim(); - novel.status = loadedCheerio(".status").text().trim(); - genres = []; - loadedCheerio(".series-genres").each(function () { - genres.push(loadedCheerio(this).find("a").text().trim()); - }); - novel.genres = genres.join(","); - chapters = []; - loadedCheerio(".series-chapterlist li").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - var chapterUrl = loadedCheerio(this).find("a").attr("href"); - if (!chapterUrl) - return; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - IndoWebNovel.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = chapterUrl; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".readerss").html() || ''; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - IndoWebNovel.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = "".concat(this.baseUrl, "daftar-novel/"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio(".novellist-blc li").each(function () { - var novelName = loadedCheerio(this).find("a").text(); - var novelCover = defaultCover_1.defaultCover; - var novelUrl = loadedCheerio(this).find("a").attr("href"); - if (!novelUrl) - return; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - if (novelName.toLowerCase().includes(searchTerm.toLowerCase())) { - novels.push(novel); - } - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - IndoWebNovel.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2 /*return*/, (0, fetch_1.fetchFile)(url)]; - }); - }); - }; - return IndoWebNovel; -}()); -exports.default = new IndoWebNovel(); diff --git a/.js/plugins/indonesian/novelringan.js b/.js/plugins/indonesian/novelringan.js deleted file mode 100644 index 8cc5ea7..0000000 --- a/.js/plugins/indonesian/novelringan.js +++ /dev/null @@ -1,211 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var cheerio_1 = require("cheerio"); -var fetch_1 = require("@libs/fetch"); -var novelStatus_1 = require("@libs/novelStatus"); -var NovelRingan = /** @class */ (function () { - function NovelRingan() { - this.id = "novelringan.com"; - this.name = "NovelRingan"; - this.icon = "src/id/novelringan/icon.png"; - this.site = "https://novelringan.com/"; - this.version = "1.0.0"; - this.baseUrl = this.site; - this.coverUriPrefix = "https://i0.wp.com/novelringan.com/wp-content/uploads/"; - } - NovelRingan.prototype.popularNovels = function (pageNo, options) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novels; - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = "".concat(this.baseUrl, "/top-novel/page/").concat(pageNo); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio("article.post").each(function (idx, ele) { - var _a; - var novelName = (_a = loadedCheerio(ele) - .find(".entry-title") - .text()) === null || _a === void 0 ? void 0 : _a.trim(); - var novelCover = _this.coverUriPrefix + loadedCheerio(ele).find("img").attr("data-sxrx"); - var novelUrl = loadedCheerio(ele).find("h2 > a").attr("href"); - if (!novelUrl) - return; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - NovelRingan.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novel, genreSelector, statusSelector, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - url = novelUrl; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _b.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { - url: url, - name: "", - cover: "", - genres: "", - author: "", - status: novelStatus_1.NovelStatus.Unknown, - summary: "", - chapters: [], - }; - novel.name = (_a = loadedCheerio(".entry-title").text()) === null || _a === void 0 ? void 0 : _a.trim(); - novel.cover = - this.coverUriPrefix + - loadedCheerio("img.ts-post-image").attr("data-sxrx"); - novel.summary = loadedCheerio("body > div.site-container > div > main > article > div > div.maininfo > span > p").text(); - genreSelector = loadedCheerio("body > div.site-container > div > main > article > div > div.maininfo > span > ul > li:nth-child(4)").text(); - novel.genres = genreSelector.includes("Genre") - ? genreSelector.replace("Genre:", "").trim() - : ""; - statusSelector = loadedCheerio("body > div.site-container > div > main > article > div > div.maininfo > span > ul > li:nth-child(3)").text(); - novel.status = statusSelector.includes("Status") - ? statusSelector.replace("Status:", "").trim() - : novelStatus_1.NovelStatus.Unknown; - chapters = []; - loadedCheerio(".bxcl > ul > li").each(function () { - var chapterName = loadedCheerio(this).find("a").text(); - var releaseDate = null; - var chapterUrl = loadedCheerio(this).find("a").attr("href"); - if (!chapterUrl) - return; - var chapter = { - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }; - chapters.push(chapter); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - NovelRingan.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = chapterUrl; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio('.entry-content div[style="display:none"]').remove(); - chapterText = loadedCheerio(".entry-content").html() || ''; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - NovelRingan.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novels; - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = this.baseUrl + "?s=" + searchTerm; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio("article.post").each(function (idx, ele) { - var novelName = loadedCheerio(ele).find(".entry-title").text(); - var novelCover = _this.coverUriPrefix + loadedCheerio(ele).find("img").attr("data-sxrx"); - var novelUrl = loadedCheerio(ele).find("h2 > a").attr("href"); - if (!novelUrl) - return; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - NovelRingan.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2 /*return*/, (0, fetch_1.fetchFile)(url)]; - }); - }); - }; - return NovelRingan; -}()); -exports.default = new NovelRingan(); diff --git a/.js/plugins/indonesian/sakuranovel.js b/.js/plugins/indonesian/sakuranovel.js deleted file mode 100644 index 853ee62..0000000 --- a/.js/plugins/indonesian/sakuranovel.js +++ /dev/null @@ -1,209 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var cheerio_1 = require("cheerio"); -var fetch_1 = require("@libs/fetch"); -var SakuraNovel = /** @class */ (function () { - function SakuraNovel() { - this.id = "sakura.id"; - this.name = "SakuraNovel"; - this.icon = "src/id/sakuranovel/icon.png"; - this.site = "https://sakuranovel.id/"; - this.version = "1.0.0"; - this.baseUrl = this.site; - } - SakuraNovel.prototype.popularNovels = function (pageNo, options) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = "".concat(this.baseUrl, "advanced-search/page/").concat(pageNo, "/?title&author&yearx&status&type&order=rating&country%5B0%5D=china&country%5B1%5D=jepang&country%5B2%5D=unknown"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio(".flexbox2-item").each(function () { - var novelName = loadedCheerio(this) - .find(".flexbox2-title span") - .first() - .text(); - var novelCover = loadedCheerio(this).find("img").attr("src"); - var novelUrl = loadedCheerio(this) - .find(".flexbox2-content > a") - .attr("href"); - if (!novelUrl) - return; - var novel = { name: novelName, cover: novelCover, url: novelUrl }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - SakuraNovel.prototype.parseNovelAndChapters = function (novelUrl) { - return __awaiter(this, void 0, void 0, function () { - var result, body, loadedCheerio, novel, chapters; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { - url: novelUrl, - }; - novel.name = loadedCheerio(".series-title h2").text().trim(); - novel.cover = loadedCheerio(".series-thumb img").attr("src"); - loadedCheerio(".series-infolist > li").each(function () { - var detailName = loadedCheerio(this).find("b").text().trim(); - var detail = loadedCheerio(this).find("b").next().text().trim(); - switch (detailName) { - case "Author": - novel.author = detail; - break; - } - }); - novel.status = loadedCheerio(".status").text().trim(); - novel.genres = loadedCheerio(".series-genres") - .children("a") - .map(function (i, el) { return loadedCheerio(el).text(); }) - .toArray() - .join(","); - loadedCheerio(".series-synops div").remove(); - novel.summary = loadedCheerio(".series-synops").text().trim(); - chapters = []; - loadedCheerio(".series-chapterlist li").each(function () { - var chapterName = loadedCheerio(this) - .find("a span") - .first() - .text() - .replace(/.*?(Chapter.|[0-9])/g, "$1") - .replace(/Bahasa Indonesia/g, "") - .replace(/\s+/g, " ") - .trim(); - var releaseDate = loadedCheerio(this) - .find("a span") - .first() - .next() - .text(); - var chapterUrl = loadedCheerio(this).find("a").attr("href"); - if (!chapterUrl) - return; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - SakuraNovel.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var result, body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".readerss").html() || ''; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - SakuraNovel.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = "".concat(this.baseUrl, "?s=").concat(searchTerm); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio(".flexbox2-item").each(function () { - var novelName = loadedCheerio(this) - .find(".flexbox2-title span") - .first() - .text(); - var novelCover = loadedCheerio(this).find("img").attr("src"); - var novelUrl = loadedCheerio(this) - .find(".flexbox2-content > a") - .attr("href"); - if (!novelUrl) - return; - var novel = { name: novelName, cover: novelCover, url: novelUrl }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - SakuraNovel.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2 /*return*/, (0, fetch_1.fetchFile)(url)]; - }); - }); - }; - return SakuraNovel; -}()); -exports.default = new SakuraNovel(); diff --git a/.js/plugins/japanese/Syosetu.js b/.js/plugins/japanese/Syosetu.js deleted file mode 100644 index f127eee..0000000 --- a/.js/plugins/japanese/Syosetu.js +++ /dev/null @@ -1,280 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.site = exports.version = exports.icon = exports.name = exports.id = void 0; -var cheerio_1 = require("cheerio"); -var fetch_1 = require("@libs/fetch"); -var defaultCover_1 = require("@libs/defaultCover"); -// const novelStatus = require('@libs/novelStatus'); -// const isUrlAbsolute = require('@libs/isAbsoluteUrl'); -// const parseDate = require('@libs/parseDate'); -var pluginId = "yomou.syosetu"; -exports.id = pluginId; -exports.name = "Syosetu"; -exports.icon = "src/jp/syosetu/icon.png"; -exports.version = "1.0.0"; -exports.site = "https://yomou.syosetu.com/"; -var Syosetu = /** @class */ (function () { - function Syosetu() { - this.id = "yomou.syosetu"; - this.name = "Syosetu"; - this.icon = "src/jp/syosetu/icon.png"; - this.site = "https://yomou.syosetu.com/"; - this.version = "1.0.0"; - this.headers = { - "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" - }; - this.searchUrl = function (pagenum, order) { - return "https://yomou.syosetu.com/search.php?order=".concat(order || "hyoka").concat(pagenum !== undefined - ? "&p=".concat(pagenum <= 1 || pagenum > 100 ? "1" : pagenum) // check if pagenum is between 1 and 100 - : "" // if isn't don't set ?p - ); - }; - } - Syosetu.prototype.popularNovels = function (pageNo, options) { - return __awaiter(this, void 0, void 0, function () { - var getNovelsFromPage, novels; - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - getNovelsFromPage = function (pagenumber) { return __awaiter(_this, void 0, void 0, function () { - var result, body, cheerioQuery, pageNovels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, fetch(this.searchUrl(pagenumber), { headers: this.headers })]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - cheerioQuery = (0, cheerio_1.load)(body, { decodeEntities: false }); - pageNovels = []; - // find class=searchkekka_box - cheerioQuery(".searchkekka_box").each(function (i, e) { - // get div with link and name - var novelDIV = cheerioQuery(this).find(".novel_h"); - // get link element - var novelA = novelDIV.children()[0]; - // add new novel to array - pageNovels.push({ - name: novelDIV.text(), - url: novelA.attribs.href, - cover: defaultCover_1.defaultCover, - }); - }); - // return all novels from this page - return [2 /*return*/, pageNovels]; - } - }); - }); }; - return [4 /*yield*/, getNovelsFromPage(pageNo)]; - case 1: - novels = _a.sent(); - return [2 /*return*/, novels]; - } - }); - }); - }; - Syosetu.prototype.parseNovelAndChapters = function (novelUrl) { - return __awaiter(this, void 0, void 0, function () { - var chapters, result, body, loadedCheerio, novel, cqGetChapters, nameResult, nameBody, summaryQuery, foundText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - chapters = []; - return [4 /*yield*/, fetch(novelUrl, { headers: this.headers })]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body, { decodeEntities: false }); - novel = { - url: novelUrl, - name: loadedCheerio(".novel_title").text(), - author: loadedCheerio(".novel_writername") - .text() - .replace("作者:", ""), - cover: defaultCover_1.defaultCover, - }; - cqGetChapters = loadedCheerio(".novel_sublist2"); - if (!(cqGetChapters.length !== 0)) return [3 /*break*/, 3]; - // has more than 1 chapter - novel.summary = loadedCheerio("#novel_ex") - .text() - .replace(/<\s*br.*?>/g, "\n"); - cqGetChapters.each(function (i, e) { - var chapterA = loadedCheerio(this).find("a"); - var _a = [ - // set the variables - chapterA.text(), - loadedCheerio(this) - .find("dt") // get title - .text() // get text - .replace(/(.)/g, "") // remove "(edited)" mark - .trim(), - "https://ncode.syosetu.com" + chapterA.attr("href"), - ], chapterName = _a[0], releaseDate = _a[1], chapterUrl = _a[2]; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - return [3 /*break*/, 6]; - case 3: return [4 /*yield*/, fetch(this.searchUrl() + "&word=".concat(novel.name), { headers: this.headers })]; - case 4: - nameResult = _a.sent(); - return [4 /*yield*/, nameResult.text()]; - case 5: - nameBody = _a.sent(); - summaryQuery = (0, cheerio_1.load)(nameBody, { - decodeEntities: false, - }); - foundText = summaryQuery(".searchkekka_box") - .first() - .find(".ex") - .text() - .replace(/\s{2,}/g, "\n"); - novel.summary = foundText; - // add single chapter - chapters.push({ - name: "Oneshot", - releaseTime: loadedCheerio("head") - .find("meta[name='WWWC']") - .attr("content"), - url: novelUrl, // set chapterUrl to oneshot so that chapterScraper knows it's a one-shot, - }); - _a.label = 6; - case 6: - novel.chapters = chapters; - return [2 /*return*/, novel]; - } - }); - }); - }; - Syosetu.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var result, body, cheerioQuery, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, fetch(chapterUrl, { headers: this.headers })]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - cheerioQuery = (0, cheerio_1.load)(body, { - decodeEntities: false, - }); - chapterText = cheerioQuery("#novel_honbun") // get chapter text - .html() || ''; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - Syosetu.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, getNovelsFromPage; - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - getNovelsFromPage = function (pagenumber) { return __awaiter(_this, void 0, void 0, function () { - var result, body, cheerioQuery, pageNovels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, fetch(this.searchUrl(pagenumber) + "&word=".concat(searchTerm), { headers: this.headers })]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - cheerioQuery = (0, cheerio_1.load)(body, { decodeEntities: false }); - pageNovels = []; - // find class=searchkekka_box - cheerioQuery(".searchkekka_box").each(function (i, e) { - // get div with link and name - var novelDIV = cheerioQuery(this).find(".novel_h"); - // get link element - var novelA = novelDIV.children()[0]; - // add new novel to array - pageNovels.push({ - name: novelDIV.text(), - url: novelA.attribs.href, - cover: defaultCover_1.defaultCover, - }); - }); - // return all novels from this page - return [2 /*return*/, pageNovels]; - } - }); - }); }; - return [4 /*yield*/, getNovelsFromPage(1)]; - case 1: - // counter of loaded pages - // let pagesLoaded = 0; - // do { - // // always load first one - // novels.push(...(await getNovelsFromPage(pagesLoaded + 1))); - // pagesLoaded++; - // } while (pagesLoaded < maxPageLoad && isNext); // check if we should load more - novels = _a.sent(); - /** Use - * novels.push(...(await getNovelsFromPage(pageNumber))) - * if you want to load more - */ - // respond with novels! - return [2 /*return*/, novels]; - } - }); - }); - }; - Syosetu.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2 /*return*/, (0, fetch_1.fetchFile)(url)]; - }); - }); - }; - return Syosetu; -}()); -exports.default = new Syosetu(); diff --git a/.js/plugins/korean/Agitoon.js b/.js/plugins/korean/Agitoon.js deleted file mode 100644 index 2c90cab..0000000 --- a/.js/plugins/korean/Agitoon.js +++ /dev/null @@ -1,216 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.icon = exports.version = exports.site = exports.name = exports.id = void 0; -var cheerio_1 = require("cheerio"); -var fetch_1 = require("@libs/fetch"); -exports.id = "agit.xyz"; -exports.name = "Agitoon"; -exports.site = "https://agit501.xyz/"; -exports.version = "1.0.0"; -exports.icon = "src/kr/agitoon/agit.png"; -var baseUrl = exports.site; -var Agitoon = /** @class */ (function () { - function Agitoon() { - this.id = "agit.xyz"; - this.name = "Agitoon"; - this.icon = "src/kr/agitoon/agit.png"; - this.site = "https://agit501.xyz/"; - this.version = "1.0.0"; - } - Agitoon.prototype.popularNovels = function (pageNo, options) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var list_limit, day, res, resJson, novels; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - list_limit = 20 * (pageNo - 1); - day = new Date().getDay(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(baseUrl + "novel/index.update.php", { - headers: { - "content-type": "application/x-www-form-urlencoded; charset=UTF-8", - }, - body: "mode=get_data_novel_list_p&novel_menu=3&np_day=".concat(day, "&np_rank=1&np_distributor=0&np_genre=00&np_order=1&np_genre_ex_1=00&np_genre_ex_2=00&list_limit=").concat(list_limit, "&is_query_first=true"), - method: "POST", - })]; - case 1: - res = _b.sent(); - return [4 /*yield*/, res.json()]; - case 2: - resJson = _b.sent(); - novels = []; - (_a = resJson === null || resJson === void 0 ? void 0 : resJson.list) === null || _a === void 0 ? void 0 : _a.forEach(function (novel) { - novels.push({ - url: baseUrl + "novel/list/" + novel.wr_id, - name: novel.wr_subject, - cover: baseUrl + novel.np_dir + "/thumbnail/" + novel.np_thumbnail, - }); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - Agitoon.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novelId, result, body, loadedCheerio, name, summary, author, cover, genresTag, genres, chapters, res, resJson, novel; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novelId = novelUrl.split("/").reverse()[0]; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl)]; - case 1: - result = _b.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body, { decodeEntities: false }); - name = loadedCheerio("h5.pt-2").text(); - summary = loadedCheerio(".pt-1.mt-1.pb-1.mb-1").text(); - author = loadedCheerio(".post-item-list-cate-v") - .first() - .text() - .split(" : ") - .reverse()[0]; - cover = baseUrl.slice(0, baseUrl.length - 1) + - loadedCheerio("div.col-5.pr-0.pl-0 img").attr("src"); - genresTag = loadedCheerio(".col-7 > .post-item-list-cate > span"); - genres = ""; - genresTag.each(function (_, element) { - genres += loadedCheerio(element).text(); - genres += ", "; - }); - genres = genres.slice(0, genres.length - 2); - chapters = []; - return [4 /*yield*/, (0, fetch_1.fetchApi)(baseUrl + "novel/list.update.php", { - headers: { - "content-type": "application/x-www-form-urlencoded; charset=UTF-8", - }, - body: "mode=get_data_novel_list_c&wr_id_p=".concat(novelId, "&page_no=1&cnt_list=10000&order_type=Asc"), - method: "POST", - })]; - case 3: - res = _b.sent(); - return [4 /*yield*/, res.json()]; - case 4: - resJson = _b.sent(); - (_a = resJson === null || resJson === void 0 ? void 0 : resJson.list) === null || _a === void 0 ? void 0 : _a.forEach(function (chapter) { - chapters.push({ - name: chapter.wr_subject, - url: baseUrl + "novel/view/".concat(chapter.wr_id, "/2"), - releaseTime: chapter.wr_datetime, - }); - }); - novel = { - url: novelUrl, - name: name, - cover: cover, - summary: summary, - author: author, - status: "", - genres: genres, - chapters: chapters, - }; - return [2 /*return*/, novel]; - } - }); - }); - }; - Agitoon.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var result, body, loadedCheerio, content; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - content = loadedCheerio("#id_wr_content").html() || ''; - // gets rid of the popup thingy - content = content.replace("팝업메뉴는 빈공간을 더치하거나 스크룰시 사라집니다", ""); - return [2 /*return*/, content]; - } - }); - }); - }; - Agitoon.prototype.searchNovels = function (searchTerm, pageNo) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var rawResults, resJson, novels; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)("https://agit501.xyz/novel/search.php", { - headers: { - "content-type": "application/x-www-form-urlencoded; charset=UTF-8", - }, - body: "mode=get_data_novel_list_p_sch&search_novel=".concat(searchTerm, "&list_limit=0"), - method: "POST", - })]; - case 1: - rawResults = _b.sent(); - return [4 /*yield*/, rawResults.json()]; - case 2: - resJson = _b.sent(); - novels = []; - (_a = resJson === null || resJson === void 0 ? void 0 : resJson.list) === null || _a === void 0 ? void 0 : _a.forEach(function (novel) { - novels.push({ - url: baseUrl + "novel/list/" + novel.wr_id, - name: novel.wr_subject, - cover: baseUrl + novel.np_dir + "/thumbnail/" + novel.np_thumbnail, - }); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - Agitoon.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2 /*return*/, (0, fetch_1.fetchFile)(url)]; - }); - }); - }; - return Agitoon; -}()); -exports.default = new Agitoon(); diff --git a/.js/plugins/portuguese/lightnovelbrasil.js b/.js/plugins/portuguese/lightnovelbrasil.js deleted file mode 100644 index a4e57ad..0000000 --- a/.js/plugins/portuguese/lightnovelbrasil.js +++ /dev/null @@ -1,365 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var cheerio_1 = require("cheerio"); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var LightNovelBrasil = /** @class */ (function () { - function LightNovelBrasil() { - this.id = "lightnovelbrasil"; - this.name = "Light Novel Brasil"; - this.icon = "multisrc/wpmangastream/icons/lightnovelbrasil.png"; - this.site = "https://lightnovelbrasil.com/"; - this.version = "1.0.0"; - this.filters = { - order: { - label: "Sort 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" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - status: { - label: "Status", - value: "", - options: [ - { label: "All", value: "" }, - { label: "Ongoing", value: "ongoing" }, - { label: "Hiatus", value: "hiatus" }, - { label: "Completed", value: "completed" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - type: { - label: "Type", - value: [], - options: [ - { label: "Chinese novel", value: "chinese-novel" }, - { label: "habyeol", value: "habyeol" }, - { label: "korean novel", value: "korean-novel" }, - { label: "Web Novel", value: "web-novel" }, - { label: "삼심", value: "%ec%82%bc%ec%8b%ac" }, - { label: "호곡", value: "%ed%98%b8%ea%b3%a1" }, - ], - type: filterInputs_1.FilterTypes.CheckboxGroup, - }, - genres: { - value: [], - label: "Genres", - options: [ - { label: "A.I", value: "a.i" }, - { label: "Academy", value: "academy" }, - { label: "Action", value: "action" }, - { label: "Adult", value: "adult" }, - { label: "Adventure", value: "adventure" }, - { label: "Alternative History", value: "alternative-history" }, - { label: "Another World", value: "another-world" }, - { label: "Apocalypse", value: "apocalypse" }, - { label: "Bromance", value: "bromance" }, - { label: "Comedy", value: "comedy" }, - { label: "Dark fantasy", value: "dark-fantasy" }, - { label: "Demons", value: "demons" }, - { label: "Drama", value: "drama" }, - { label: "Dystopia", value: "dystopia" }, - { label: "Ecchi", value: "ecchi" }, - { label: "Entertainment", value: "entertainment" }, - { label: "Exhaustion", value: "exhaustion" }, - { label: "Fanfiction", value: "fanfiction" }, - { label: "fantasy", value: "fantasy" }, - { label: "finance", value: "finance" }, - { label: "Full color", value: "full-color" }, - { label: "Game", value: "game" }, - { label: "Gender Bender", value: "gender-bender" }, - { label: "Genius", value: "genius" }, - { label: "Harem", value: "harem" }, - { label: "Hero", value: "hero" }, - { label: "Historical", value: "historical" }, - { label: "Hunter", value: "hunter" }, - { label: "korean novel", value: "korean-novel" }, - { label: "Light Novel", value: "light-novel" }, - { - label: "List Adventure Manga Genres", - value: "list-adventure-manga-genres", - }, - { label: "Long Strip", value: "long-strip" }, - { label: "Love comedy", value: "love-comedy" }, - { label: "magic", value: "magic" }, - { label: "Manhua", value: "manhua" }, - { label: "Martial Arts", value: "martial-arts" }, - { label: "Mature", value: "mature" }, - { label: "Medieval", value: "medieval" }, - { label: "Misunderstanding", value: "misunderstanding" }, - { label: "Modern", value: "modern" }, - { label: "modern fantasy", value: "modern-fantasy" }, - { label: "music", value: "music" }, - { label: "Mystery", value: "mystery" }, - { label: "Necromancy", value: "necromancy" }, - { label: "No Romance", value: "no-romance" }, - { label: "NTL", value: "ntl" }, - { label: "o", value: "o" }, - { label: "Obsession", value: "obsession" }, - { label: "Politics", value: "politics" }, - { label: "Possession", value: "possession" }, - { label: "Programming", value: "programming" }, - { label: "Psychological", value: "psychological" }, - { label: "Pure Love", value: "pure-love" }, - { label: "Redemption", value: "redemption" }, - { label: "Regression", value: "regression" }, - { label: "Regret", value: "regret" }, - { label: "Reincarnation", value: "reincarnation" }, - { label: "Revenge", value: "revenge" }, - { label: "Romance", value: "romance" }, - { label: "Romance Fanrasy", value: "romance-fanrasy" }, - { label: "Salvation", value: "salvation" }, - { label: "School Life", value: "school-life" }, - { label: "Sci-fi", value: "sci-fi" }, - { label: "Science fiction", value: "science-fiction" }, - { label: "Seinen", value: "seinen" }, - { label: "Shounen", value: "shounen" }, - { label: "Slice of Life", value: "slice-of-life" }, - { label: "Soft yandere", value: "soft-yandere" }, - { label: "Sports", value: "sports" }, - { label: "Supernatural", value: "supernatural" }, - { label: "Survival", value: "survival" }, - { label: "system", value: "system" }, - { label: "Time limit", value: "time-limit" }, - { label: "Tragedy", value: "tragedy" }, - { label: "Transmigration", value: "transmigration" }, - { label: "TS", value: "ts" }, - { label: "Tsundere", value: "tsundere" }, - { label: "Unique", value: "unique" }, - { label: "Wholesome", value: "wholesome" }, - { label: "Wuxia", value: "wuxia" }, - { label: "Xuanhuan", value: "xuanhuan" }, - { label: "Yandere", value: "yandere" }, - { label: "Yuri", value: "yuri" }, - ], - type: filterInputs_1.FilterTypes.CheckboxGroup, - }, - }; - } - LightNovelBrasil.prototype.popularNovels = function (pageNo, _a) { - var filters = _a.filters; - return __awaiter(this, void 0, void 0, function () { - var link, headers, body, loadedCheerio, novels; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - link = "".concat(this.site, "series/?page=").concat(pageNo); - if (filters.genres.value.length) - link += filters.genres.value.map(function (i) { return "&genre[]=".concat(i); }).join(""); - if (filters.type.value.length) - link += filters.type.value.map(function (i) { return "&lang[]=".concat(i); }).join(""); - link += "&status=" + ((filters === null || filters === void 0 ? void 0 : filters.status) ? filters.status : ""); - link += "&order=" + ((filters === null || filters === void 0 ? void 0 : filters.order) ? filters.order : "popular"); - headers = new Headers(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(link, { headers: headers }).then(function (result) { - return result.text(); - })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio("article.bs").each(function () { - var novelName = loadedCheerio(this).find(".ntitle").text().trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this).find("a").attr("href"); - if (!novelUrl) - return; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - LightNovelBrasil.prototype.parseNovelAndChapters = function (novelUrl) { - return __awaiter(this, void 0, void 0, function () { - var url, headers, result, body, loadedCheerio, novel, chapter; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = novelUrl; - headers = new Headers(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url, { headers: headers })]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { - url: url, - chapters: [], - }; - novel.name = loadedCheerio(".entry-title").text(); - novel.cover = - loadedCheerio("img.wp-post-image").attr("data-src") || - loadedCheerio("img.wp-post-image").attr("src"); - loadedCheerio("div.spe > span").each(function () { - var detailName = loadedCheerio(this).find("b").text().trim(); - var detail = loadedCheerio(this) - .find("b") - .remove() - .end() - .text() - .trim(); - switch (detailName) { - case "Autor:": - case "Author:": - novel.author = detail; - break; - case "Status:": - novel.status = detail; - break; - } - }); - novel.genres = loadedCheerio(".genxed") - .text() - .trim() - .replace(/\s/g, ","); - loadedCheerio('div[itemprop="description"] h3,p.a,strong').remove(); - novel.summary = loadedCheerio('div[itemprop="description"]') - .find("br") - .replaceWith("\n") - .end() - .text(); - chapter = []; - loadedCheerio(".eplister") - .find("li") - .each(function () { - var chapterName = loadedCheerio(this).find(".epl-num").text() + - " - " + - loadedCheerio(this).find(".epl-title").text(); - var releaseDate = loadedCheerio(this) - .find(".epl-date") - .text() - .trim(); - var chapterUrl = loadedCheerio(this).find("a").attr("href"); - if (!chapterUrl) - return; - chapter.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapter.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - LightNovelBrasil.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var headers, result, body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - headers = new Headers(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl, { headers: headers })]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".epcontent").html() || ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - LightNovelBrasil.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var url, headers, result, body, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = "".concat(this.site, "?s=").concat(searchTerm); - headers = new Headers(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url, { headers: headers })]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio("article.bs").each(function () { - var novelName = loadedCheerio(this).find(".ntitle").text().trim(); - var novelCover = loadedCheerio(this).find("img").attr("src"); - var novelUrl = loadedCheerio(this).find("a").attr("href"); - if (!novelUrl) - return; - novels.push({ - name: novelName, - url: novelUrl, - cover: novelCover, - }); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - LightNovelBrasil.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url)]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return LightNovelBrasil; -}()); -exports.default = new LightNovelBrasil(); diff --git a/.js/plugins/russian/Bookhamster[ifreedom].js b/.js/plugins/russian/Bookhamster[ifreedom].js deleted file mode 100644 index 4309f6d..0000000 --- a/.js/plugins/russian/Bookhamster[ifreedom].js +++ /dev/null @@ -1,198 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var novelStatus_1 = require("@libs/novelStatus"); -var cheerio_1 = require("cheerio"); -var IfreedomPlugin = /** @class */ (function () { - function IfreedomPlugin(metadata) { - this.fetchImage = fetch_1.fetchFile; - this.id = metadata.id; - this.name = metadata.sourceName + "[ifreedom]"; - this.icon = "multisrc/ifreedom/icons/".concat(metadata.id, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.filters = metadata.filters; - } - IfreedomPlugin.prototype.popularNovels = function (page, _a) { - var _b, _c, _d, _e; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var url, body, loadedCheerio, novels; - return __generator(this, function (_f) { - switch (_f.label) { - case 0: - url = this.site + "/vse-knigi/?sort=" + - (showLatestNovels ? "По дате обновления" : ((_b = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _b === void 0 ? void 0 : _b.value) || "По рейтингу"); - if (((_c = filters === null || filters === void 0 ? void 0 : filters.status) === null || _c === void 0 ? void 0 : _c.value) instanceof Array) { - url += filters.status.value.map(function (i) { return "&status[]=" + i; }).join(""); - } - if (((_d = filters === null || filters === void 0 ? void 0 : filters.lang) === null || _d === void 0 ? void 0 : _d.value) instanceof Array) { - url += filters.lang.value.map(function (i) { return "&lang[]=" + i; }).join(""); - } - if (((_e = filters === null || filters === void 0 ? void 0 : filters.genre) === null || _e === void 0 ? void 0 : _e.value) instanceof Array) { - url += filters.genre.value.map(function (i) { return "&genre[]=" + i; }).join(""); - } - url += "&bpage=" + page; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _f.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = loadedCheerio("div.one-book-home > div.img-home a") - .map(function (index, element) { return ({ - name: loadedCheerio(element).attr("title") || "", - cover: loadedCheerio(element).find("img").attr("src"), - url: loadedCheerio(element).attr("href") || "", - }); }) - .get() - .filter(function (novel) { return novel.name && novel.url; }); - return [2 /*return*/, novels]; - } - }); - }); - }; - IfreedomPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, novel, chapters; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { - url: novelUrl, - name: loadedCheerio(".entry-title").text(), - cover: loadedCheerio(".img-ranobe > img").attr("src"), - summary: loadedCheerio('meta[name="description"]').attr("content"), - }; - loadedCheerio("div.data-ranobe").each(function () { - switch (loadedCheerio(this).find("b").text()) { - case "Автор": - novel.author = loadedCheerio(this) - .find("div.data-value") - .text() - .trim(); - break; - case "Жанры": - novel.genres = loadedCheerio("div.data-value > a") - .map(function (index, element) { var _a; return (_a = loadedCheerio(element).text()) === null || _a === void 0 ? void 0 : _a.trim(); }) - .get() - .join(","); - break; - case "Статус книги": - novel.status = loadedCheerio("div.data-value") - .text() - .includes("активен") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - if (novel.author == "Не указан") - delete novel.author; - chapters = []; - loadedCheerio("div.li-ranobe").each(function () { - var name = loadedCheerio(this).find("a").text(); - var url = loadedCheerio(this).find("a").attr("href"); - if (!loadedCheerio(this).find("label.buy-ranobe").length && name && url) { - var releaseTime = loadedCheerio(this) - .find("div.li-col2-ranobe").text().trim(); - chapters.push({ name: name, releaseTime: releaseTime, url: url }); - } - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - IfreedomPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".entry-content img").each(function () { - var _a, _b; - var srcset = (_b = (_a = loadedCheerio(this).attr("srcset")) === null || _a === void 0 ? void 0 : _a.split) === null || _b === void 0 ? void 0 : _b.call(_a, " "); - if (srcset === null || srcset === void 0 ? void 0 : srcset.length) { - var bestlink = srcset.filter(function (url) { return url.startsWith("http"); }).unshift(); - if (typeof bestlink == 'string') - loadedCheerio(this).attr("src", bestlink); - } - }); - chapterText = loadedCheerio(".entry-content").html() || ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - IfreedomPlugin.prototype.searchNovels = function (searchTerm, page) { - if (page === void 0) { page = 1; } - return __awaiter(this, void 0, void 0, function () { - var url, result, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = this.site + "/vse-knigi/?searchname=" + searchTerm + "&bpage=" + page; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - result = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(result); - novels = loadedCheerio("div.one-book-home > div.img-home a") - .map(function (index, element) { return ({ - name: loadedCheerio(element).attr("title") || "", - cover: loadedCheerio(element).find("img").attr("src"), - url: loadedCheerio(element).attr("href") || "", - }); }) - .get() - .filter(function (novel) { return novel.name && novel.url; }); - return [2 /*return*/, novels]; - } - }); - }); - }; - return IfreedomPlugin; -}()); -var plugin = new IfreedomPlugin({ "id": "bookhamster", "sourceSite": "https://bookhamster.ru", "sourceName": "Bookhamster", "filters": { "sort": { "type": filterInputs_1.FilterTypes.Picker, "label": "Сортировка:", "options": [{ "label": "По дате добавления", "value": "По дате добавления" }, { "label": "По дате обновления", "value": "По дате обновления" }, { "label": "По количеству глав", "value": "По количеству глав" }, { "label": "По названию", "value": "По названию" }, { "label": "По просмотрам", "value": "По просмотрам" }, { "label": "По рейтингу", "value": "По рейтингу" }], "value": "По рейтингу" }, "status": { "type": filterInputs_1.FilterTypes.CheckboxGroup, "label": "Статус:", "options": [{ "label": "Перевод активен", "value": "Перевод активен" }, { "label": "Перевод приостановлен", "value": "Перевод приостановлен" }, { "label": "Произведение завершено", "value": "Произведение завершено" }], "value": [] }, "lang": { "type": filterInputs_1.FilterTypes.CheckboxGroup, "label": "Язык:", "options": [{ "label": "Английский", "value": "Английский" }, { "label": "Китайский", "value": "Китайский" }, { "label": "Корейский", "value": "Корейский" }, { "label": "Японский", "value": "Японский" }], "value": [] }, "genre": { "type": filterInputs_1.FilterTypes.CheckboxGroup, "label": "Жанры:", "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": "Сёнэн-ай" }, { "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": "Adult", "value": "Adult" }, { "label": "Mature", "value": "Mature" }, { "label": "Xianxia", "value": "Xianxia" }, { "label": "Xuanhuan", "value": "Xuanhuan" }], "value": [] } } }); -exports.default = plugin; diff --git a/.js/plugins/russian/Erolate[rulate].js b/.js/plugins/russian/Erolate[rulate].js deleted file mode 100644 index 89732f4..0000000 --- a/.js/plugins/russian/Erolate[rulate].js +++ /dev/null @@ -1,292 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var novelStatus_1 = require("@libs/novelStatus"); -var cheerio_1 = require("cheerio"); -var RulatePlugin = /** @class */ (function () { - function RulatePlugin(metadata) { - this.fetchImage = fetch_1.fetchFile; - this.id = metadata.id; - this.name = metadata.sourceName + "[rulate]"; - var iconFileName = metadata.sourceName.replace(/\s+/g, "").toLowerCase(); - this.icon = "multisrc/rulate/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.filters = metadata.filters; - } - RulatePlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, baseUrl, url, body, loadedCheerio; - return __generator(this, function (_o) { - switch (_o.label) { - case 0: - novels = []; - baseUrl = this.site; - url = baseUrl + "/search?t="; - url += "&cat=" + (((_b = filters === null || filters === void 0 ? void 0 : filters.cat) === null || _b === void 0 ? void 0 : _b.value) || "0"); - url += "&s_lang=" + (((_c = filters === null || filters === void 0 ? void 0 : filters.s_lang) === null || _c === void 0 ? void 0 : _c.value) || "0"); - url += "&t_lang=" + (((_d = filters === null || filters === void 0 ? void 0 : filters.t_lang) === null || _d === void 0 ? void 0 : _d.value) || "0"); - url += "&type=" + (((_e = filters === null || filters === void 0 ? void 0 : filters.type) === null || _e === void 0 ? void 0 : _e.value) || "0"); - url += "&sort=" + (showLatestNovels ? "4" : ((_f = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _f === void 0 ? void 0 : _f.value) || "6"); - url += "&atmosphere=" + (((_g = filters === null || filters === void 0 ? void 0 : filters.atmosphere) === null || _g === void 0 ? void 0 : _g.value) || "0"); - url += "&adult=" + (((_h = filters === null || filters === void 0 ? void 0 : filters.adult) === null || _h === void 0 ? void 0 : _h.value) || "0"); - if (((_j = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _j === void 0 ? void 0 : _j.value) instanceof Array) { - url += filters.genres.value.map(function (i) { return "&genres[]=" + i; }).join(""); - } - //if (filters?.genres?.value?.exclude instanceof Array) { - // url += filters.genres.value.exclude - // ?.map((i) => "&genres_ex[]=" + i) - // .join(""); - //} - if (((_k = filters === null || filters === void 0 ? void 0 : filters.tags) === null || _k === void 0 ? void 0 : _k.value) instanceof Array) { - url += filters.tags.value.map(function (i) { return "&tags[]=" + i; }).join(""); - } - //if (filters?.tags?.value?.exclude instanceof Array) { - // url += filters.tags.value.exclude - // ?.map((i) => "&tags_ex[]=" + i) - // .join(""); - //} - if (((_l = filters === null || filters === void 0 ? void 0 : filters.fandoms) === null || _l === void 0 ? void 0 : _l.value) instanceof Array) { - url += filters.fandoms.value.map(function (i) { return "&fandoms[]=" + i; }).join(""); - } - // if (filters?.fandoms?.value?.exclude instanceof Array) { - // url += filters.fandoms.value.exclude - // .map((i) => "&fandoms_ex[]=" + i) - // .join(""); - // } - if (((_m = filters === null || filters === void 0 ? void 0 : filters.trash) === null || _m === void 0 ? void 0 : _m.value) instanceof Array) { - url += filters.trash.value.map(function (i) { return "&" + i + "=1"; }).join(""); - } - url += "&Book_page=" + pageNo; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _o.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio('ul[class="search-results"] > li:not([class="ad_type_catalog"])').each(function () { - loadedCheerio(this).find("p > a").text(); - var name = loadedCheerio(this).find("p > a").text(); - var cover = loadedCheerio(this).find("img").attr("src"); - var url = loadedCheerio(this).find("p > a").attr("href"); - if (!name || !url) - return; - novels.push({ name: name, cover: baseUrl + cover, url: baseUrl + url }); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - RulatePlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a, _b; - return __awaiter(this, void 0, void 0, function () { - var baseUrl, novel, result, formData, body, loadedCheerio, genres, chapters; - return __generator(this, function (_c) { - switch (_c.label) { - case 0: - baseUrl = this.site; - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl)]; - case 1: - result = _c.sent(); - if (!result.url.includes("mature?path=")) return [3 /*break*/, 4]; - formData = new FormData(); - formData.append("path", novelUrl); - formData.append("ok", "Да"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(result.url, { - method: "POST", - body: formData, - })]; - case 2: - _c.sent(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl)]; - case 3: - result = _c.sent(); - _c.label = 4; - case 4: return [4 /*yield*/, result.text()]; - case 5: - body = _c.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel.name = loadedCheerio('div[class="container"] > div > div > h1, div.span8:nth-child(1) > h1:nth-child(2)') - .text() - .trim(); - if ((_b = (_a = novel.name) === null || _a === void 0 ? void 0 : _a.includes) === null || _b === void 0 ? void 0 : _b.call(_a, "[")) { - novel.name = novel.name.split("[")[0].trim(); - } - novel.cover = - baseUrl + loadedCheerio('div[class="images"] > div img').attr("src"); - novel.summary = - loadedCheerio("#Info > div:nth-child(3), .book-description").text().trim(); - novel.author = loadedCheerio(".book-stats-icons_author > span:nth-child(2) > a:nth-child(1)").text(); - genres = []; - loadedCheerio("div.span5 > p, .span5 > div:nth-child(2) > p").each(function () { - switch (loadedCheerio(this).find("strong").text()) { - case "Автор:": - novel.author = loadedCheerio(this).find("em > a").text().trim(); - break; - case "Выпуск:": - novel.status = - loadedCheerio(this).find("em").text().trim() === "продолжается" - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - case "Тэги:": - loadedCheerio(this) - .find("em > a") - .each(function () { - genres.push(loadedCheerio(this).text()); - }); - break; - case "Жанры:": - loadedCheerio(this) - .find("em > a") - .each(function () { - genres.push(loadedCheerio(this).text()); - }); - break; - } - }); - if (genres.length) { - novel.genres = genres.reverse().join(","); - } - chapters = []; - loadedCheerio("table > tbody > tr.chapter_row").each(function () { - var _a; - var chapterName = loadedCheerio(this) - .find('td[class="t"] > a') - .text() - .trim(); - var releaseDate = (_a = loadedCheerio(this) - .find("td > span") - .attr("title")) === null || _a === void 0 ? void 0 : _a.trim(); - var chapterUrl = loadedCheerio(this) - .find('td[class="t"] > a') - .attr("href"); - if (!loadedCheerio(this).find('td > span[class="disabled"]').length && - releaseDate) { - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: baseUrl + chapterUrl, - }); - } - }); - novel.chapters = chapters; - return [2 /*return*/, novel]; - } - }); - }); - }; - RulatePlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var baseUrl, result, formData, body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - baseUrl = this.site; - return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl)]; - case 1: - result = _a.sent(); - if (!result.url.includes("mature?path=")) return [3 /*break*/, 4]; - formData = new FormData(); - formData.append("ok", "Да"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(result.url, { - method: "POST", - body: formData, - })]; - case 2: - _a.sent(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl)]; - case 3: - result = _a.sent(); - _a.label = 4; - case 4: return [4 /*yield*/, result.text()]; - case 5: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".content-text img").each(function () { - var _a; - if (!((_a = loadedCheerio(this).attr("src")) === null || _a === void 0 ? void 0 : _a.startsWith("http"))) { - var src = loadedCheerio(this).attr("src"); - loadedCheerio(this).attr("src", baseUrl + src); - } - }); - chapterText = loadedCheerio(".content-text").html(); - return [2 /*return*/, chapterText || ""]; - } - }); - }); - }; - RulatePlugin.prototype.searchNovels = function (searchTerm) { - return __awaiter(this, void 0, void 0, function () { - var novels, result, json; - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "/search/autocomplete?query=" + searchTerm)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.json()]; - case 2: - json = (_a.sent()); - json.forEach(function (novel) { - var name = novel.title_one + " / " + novel.title_two; - if (!novel.url) - return; - novels.push({ - name: name, - cover: _this.site + novel.img, - url: _this.site + novel.url, - }); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - return RulatePlugin; -}()); -var plugin = new RulatePlugin({ "id": "erolate", "sourceSite": "https://erolate.com", "sourceName": "Erolate", "filters": { "sort": { "label": "Сортировка:", "value": "6", "options": [{ "label": "По рейтингу", "value": "6" }, { "label": "По дате последней активности", "value": "4" }, { "label": "По дате создания", "value": "3" }, { "label": "По кол-ву бесплатных глав", "value": "11" }, { "label": "По кол-ву в закладках", "value": "13" }, { "label": "По кол-ву в избранном", "value": "14" }, { "label": "По кол-ву лайков", "value": "8" }, { "label": "По кол-ву переведённых глав", "value": "7" }, { "label": "По кол-ву рецензий", "value": "12" }, { "label": "По кол-ву страниц", "value": "10" }, { "label": "По названию на языке оригинала", "value": "1" }, { "label": "По названию на языке перевода", "value": "2" }, { "label": "По просмотрам", "value": "5" }, { "label": "По степени готовности", "value": "0" }, { "label": "Случайно", "value": "9" }], "type": filterInputs_1.FilterTypes.Picker }, "cat": { "label": "Из раздела каталога:", "value": "", "options": [{ "label": "Неважно", "value": "0" }, { "label": "Авторские", "value": "35" }, { "label": "Английские", "value": "34" }, { "label": "Китайские", "value": "31" }, { "label": "Комиксы", "value": "29" }, { "label": "Корейские", "value": "33" }, { "label": "Авторские", "value": "18" }, { "label": "Авторские фанфики", "value": "51" }, { "label": "Английские", "value": "28" }, { "label": "Английские", "value": "48" }, { "label": "Аниме", "value": "20" }, { "label": "Аудиокниги", "value": "25" }, { "label": "Блич", "value": "42" }, { "label": "Большие игры", "value": "22" }, { "label": "Ван-Пис", "value": "41" }, { "label": "Визуальные новеллы", "value": "8" }, { "label": "Вьетнамские", "value": "39" }, { "label": "Вьетнамские", "value": "49" }, { "label": "Игры", "value": "3" }, { "label": "Китайские", "value": "5" }, { "label": "Китайские", "value": "45" }, { "label": "Книги", "value": "2" }, { "label": "Книги", "value": "14" }, { "label": "Корейские", "value": "7" }, { "label": "Корейские", "value": "47" }, { "label": "Маленькие игры", "value": "23" }, { "label": "Манга", "value": "16" }, { "label": "Манга", "value": "30" }, { "label": "Марвел", "value": "43" }, { "label": "Машинный перевод", "value": "44" }, { "label": "Наруто", "value": "40" }, { "label": "Новеллы и ранобэ", "value": "12" }, { "label": "Переводы фанфиков", "value": "19" }, { "label": "Психология", "value": "37" }, { "label": "Путешествия", "value": "36" }, { "label": "Статьи", "value": "13" }, { "label": "Субтитры", "value": "15" }, { "label": "Фильмы", "value": "21" }, { "label": "Японские", "value": "6" }, { "label": "Японские", "value": "32" }, { "label": "Японские", "value": "46" }, { "label": "Авторские", "value": "12" }, { "label": "Игры 18+", "value": "3" }, { "label": "Манга для взрослых", "value": "30" }, { "label": "Машинный перевод", "value": "38" }, { "label": "Переводы", "value": "15" }, { "label": "Фанфики", "value": "16" }, { "label": "Эротические рассказы", "value": "2" }], "type": filterInputs_1.FilterTypes.Picker }, "s_lang": { "label": "Язык оригинала:", "value": "0", "options": [{ "label": "Неважно", "value": "0" }, { "label": "Абхазский", "value": "20" }, { "label": "Аварский", "value": "21" }, { "label": "Азербайджанский", "value": "22" }, { "label": "Аймара", "value": "23" }, { "label": "Акан", "value": "24" }, { "label": "Албанский", "value": "25" }, { "label": "Амхарский", "value": "26" }, { "label": "Английский", "value": "2" }, { "label": "Арабский", "value": "27" }, { "label": "Арагонский", "value": "28" }, { "label": "Арберешский", "value": "29" }, { "label": "Армянский", "value": "30" }, { "label": "Ассамский", "value": "31" }, { "label": "Астурийский", "value": "32" }, { "label": "Афарский", "value": "33" }, { "label": "Африкаанс", "value": "34" }, { "label": "Ацтекский", "value": "35" }, { "label": "Баварский", "value": "36" }, { "label": "Бамбарийский", "value": "37" }, { "label": "Баскский", "value": "39" }, { "label": "Башкирский", "value": "40" }, { "label": "Белорусский", "value": "10" }, { "label": "Бенгальский", "value": "41" }, { "label": "Бирманский", "value": "42" }, { "label": "Бислама", "value": "43" }, { "label": "Бихари", "value": "44" }, { "label": "Болгарский", "value": "45" }, { "label": "Боснийский", "value": "234" }, { "label": "Бретонский", "value": "47" }, { "label": "Валенсийский", "value": "48" }, { "label": "Валлийский", "value": "49" }, { "label": "Валлонский", "value": "50" }, { "label": "Венгерский", "value": "51" }, { "label": "Венда", "value": "52" }, { "label": "Венетский", "value": "53" }, { "label": "Верхнелужицкий", "value": "54" }, { "label": "Волоф", "value": "55" }, { "label": "Вьетнамский", "value": "57" }, { "label": "Гавайский", "value": "58" }, { "label": "Гаитянский", "value": "59" }, { "label": "Галисийский", "value": "60" }, { "label": "Гереро", "value": "61" }, { "label": "Голландский", "value": "62" }, { "label": "Греческий", "value": "63" }, { "label": "Грузинский", "value": "64" }, { "label": "Гуарани", "value": "65" }, { "label": "Гуджарати", "value": "66" }, { "label": "Датский", "value": "19" }, { "label": "Дзонг-кэ", "value": "68" }, { "label": "Древнегреческий", "value": "69" }, { "label": "Западно-фламандский", "value": "70" }, { "label": "Зулу", "value": "71" }, { "label": "Иврит", "value": "15" }, { "label": "Игбо", "value": "72" }, { "label": "Идиш", "value": "73" }, { "label": "Илоко", "value": "74" }, { "label": "Индонезийский", "value": "75" }, { "label": "Интерлингва", "value": "76" }, { "label": "Инуктитут", "value": "77" }, { "label": "Инупиак", "value": "78" }, { "label": "Ирландский", "value": "79" }, { "label": "Исландский", "value": "80" }, { "label": "Испанский", "value": "6" }, { "label": "Итальянский", "value": "5" }, { "label": "Йоруба", "value": "81" }, { "label": "Кабильский", "value": "82" }, { "label": "Казахский", "value": "83" }, { "label": "Калмыцкий", "value": "235" }, { "label": "Каннада", "value": "84" }, { "label": "Кантонский юэ", "value": "85" }, { "label": "Канури", "value": "86" }, { "label": "Каталанский", "value": "87" }, { "label": "Кашмири", "value": "88" }, { "label": "Кечуа", "value": "90" }, { "label": "Кикуйю", "value": "91" }, { "label": "Киньяруанда", "value": "92" }, { "label": "Киргизский", "value": "93" }, { "label": "Китайский", "value": "7" }, { "label": "Клингонский", "value": "94" }, { "label": "Коми", "value": "95" }, { "label": "Конго", "value": "96" }, { "label": "Конкани", "value": "97" }, { "label": "Корейский", "value": "98" }, { "label": "Корсиканский", "value": "100" }, { "label": "Котава", "value": "101" }, { "label": "Кри", "value": "102" }, { "label": "Курдский", "value": "105" }, { "label": "Кхмерский", "value": "107" }, { "label": "Лакский", "value": "233" }, { "label": "Лаосский", "value": "109" }, { "label": "Латынь", "value": "110" }, { "label": "Латышский", "value": "111" }, { "label": "Лезгинский", "value": "112" }, { "label": "Лимбургский", "value": "113" }, { "label": "Лингала", "value": "114" }, { "label": "Литовский", "value": "115" }, { "label": "Луба", "value": "118" }, { "label": "Луганда", "value": "119" }, { "label": "Люксембургский", "value": "120" }, { "label": "Македонский", "value": "121" }, { "label": "Малагасийский", "value": "122" }, { "label": "Малайский", "value": "123" }, { "label": "Мальдивский", "value": "125" }, { "label": "Мальтийский", "value": "126" }, { "label": "Маори", "value": "127" }, { "label": "Марийский", "value": "232" }, { "label": "Маршалльский", "value": "130" }, { "label": "Молдавский", "value": "11" }, { "label": "Монгольский", "value": "133" }, { "label": "Мяо (хмонг)", "value": "209" }, { "label": "Навахо", "value": "135" }, { "label": "Неаполитанский", "value": "139" }, { "label": "Немецкий", "value": "3" }, { "label": "Непальский", "value": "140" }, { "label": "Норвежский", "value": "18" }, { "label": "Осетинский", "value": "147" }, { "label": "Пакистанский", "value": "230" }, { "label": "Пенджабский", "value": "149" }, { "label": "Персидский", "value": "151" }, { "label": "Польский", "value": "152" }, { "label": "Португальский", "value": "153" }, { "label": "Румынский", "value": "158" }, { "label": "Русский", "value": "1" }, { "label": "Санскрит", "value": "163" }, { "label": "Сардинский", "value": "164" }, { "label": "Сербохорватский", "value": "166" }, { "label": "Словацкий", "value": "170" }, { "label": "Словенский", "value": "171" }, { "label": "Сомали", "value": "172" }, { "label": "Старотурецкий", "value": "174" }, { "label": "Суахили", "value": "175" }, { "label": "Сунданский", "value": "176" }, { "label": "Тагальский", "value": "177" }, { "label": "Таджикский", "value": "178" }, { "label": "Таитянский", "value": "179" }, { "label": "Тайваньский", "value": "180" }, { "label": "Тайский", "value": "181" }, { "label": "Тамильский", "value": "182" }, { "label": "Татарский", "value": "12" }, { "label": "Телугу", "value": "184" }, { "label": "Тибетский", "value": "185" }, { "label": "Тигринья", "value": "186" }, { "label": "Ток-писин", "value": "187" }, { "label": "Токи пона", "value": "188" }, { "label": "Тонганский", "value": "189" }, { "label": "Тсвана", "value": "191" }, { "label": "Тсонга", "value": "192" }, { "label": "Турецкий", "value": "193" }, { "label": "Туркменский", "value": "194" }, { "label": "Удмуртский", "value": "196" }, { "label": "Узбекский", "value": "197" }, { "label": "Уйгурский", "value": "198" }, { "label": "Украинский", "value": "9" }, { "label": "Фиджийский", "value": "201" }, { "label": "Филиппинский", "value": "229" }, { "label": "Финский", "value": "17" }, { "label": "Французский", "value": "4" }, { "label": "Фризский", "value": "203" }, { "label": "Фулах", "value": "204" }, { "label": "Хауса", "value": "206" }, { "label": "Хинди", "value": "207" }, { "label": "Хири-моту", "value": "208" }, { "label": "Чеченский", "value": "213" }, { "label": "Чешский", "value": "13" }, { "label": "Чувашский", "value": "217" }, { "label": "Шведский", "value": "16" }, { "label": "Швейцарский немецкий", "value": "218" }, { "label": "Шона", "value": "219" }, { "label": "Шотландский", "value": "67" }, { "label": "Эве", "value": "221" }, { "label": "Эскимосский", "value": "223" }, { "label": "Эсперанто", "value": "14" }, { "label": "Эстонский", "value": "224" }, { "label": "Южно-корейский", "value": "231" }, { "label": "Юкатекский", "value": "225" }, { "label": "Яванский", "value": "227" }, { "label": "Японский", "value": "8" }], "type": filterInputs_1.FilterTypes.Picker }, "t_lang": { "label": "Язык перевода:", "value": "0", "options": [{ "label": "Неважно", "value": "0" }, { "label": "Абхазский", "value": "20" }, { "label": "Аварский", "value": "21" }, { "label": "Азербайджанский", "value": "22" }, { "label": "Аймара", "value": "23" }, { "label": "Акан", "value": "24" }, { "label": "Албанский", "value": "25" }, { "label": "Амхарский", "value": "26" }, { "label": "Английский", "value": "2" }, { "label": "Арабский", "value": "27" }, { "label": "Арагонский", "value": "28" }, { "label": "Арберешский", "value": "29" }, { "label": "Армянский", "value": "30" }, { "label": "Ассамский", "value": "31" }, { "label": "Астурийский", "value": "32" }, { "label": "Афарский", "value": "33" }, { "label": "Африкаанс", "value": "34" }, { "label": "Ацтекский", "value": "35" }, { "label": "Баварский", "value": "36" }, { "label": "Бамбарийский", "value": "37" }, { "label": "Баскский", "value": "39" }, { "label": "Башкирский", "value": "40" }, { "label": "Белорусский", "value": "10" }, { "label": "Бенгальский", "value": "41" }, { "label": "Бирманский", "value": "42" }, { "label": "Бислама", "value": "43" }, { "label": "Бихари", "value": "44" }, { "label": "Болгарский", "value": "45" }, { "label": "Боснийский", "value": "234" }, { "label": "Бретонский", "value": "47" }, { "label": "Валенсийский", "value": "48" }, { "label": "Валлийский", "value": "49" }, { "label": "Валлонский", "value": "50" }, { "label": "Венгерский", "value": "51" }, { "label": "Венда", "value": "52" }, { "label": "Венетский", "value": "53" }, { "label": "Верхнелужицкий", "value": "54" }, { "label": "Волоф", "value": "55" }, { "label": "Вьетнамский", "value": "57" }, { "label": "Гавайский", "value": "58" }, { "label": "Гаитянский", "value": "59" }, { "label": "Галисийский", "value": "60" }, { "label": "Гереро", "value": "61" }, { "label": "Голландский", "value": "62" }, { "label": "Греческий", "value": "63" }, { "label": "Грузинский", "value": "64" }, { "label": "Гуарани", "value": "65" }, { "label": "Гуджарати", "value": "66" }, { "label": "Датский", "value": "19" }, { "label": "Дзонг-кэ", "value": "68" }, { "label": "Древнегреческий", "value": "69" }, { "label": "Западно-фламандский", "value": "70" }, { "label": "Зулу", "value": "71" }, { "label": "Иврит", "value": "15" }, { "label": "Игбо", "value": "72" }, { "label": "Идиш", "value": "73" }, { "label": "Илоко", "value": "74" }, { "label": "Индонезийский", "value": "75" }, { "label": "Интерлингва", "value": "76" }, { "label": "Инуктитут", "value": "77" }, { "label": "Инупиак", "value": "78" }, { "label": "Ирландский", "value": "79" }, { "label": "Исландский", "value": "80" }, { "label": "Испанский", "value": "6" }, { "label": "Итальянский", "value": "5" }, { "label": "Йоруба", "value": "81" }, { "label": "Кабильский", "value": "82" }, { "label": "Казахский", "value": "83" }, { "label": "Калмыцкий", "value": "235" }, { "label": "Каннада", "value": "84" }, { "label": "Кантонский юэ", "value": "85" }, { "label": "Канури", "value": "86" }, { "label": "Каталанский", "value": "87" }, { "label": "Кашмири", "value": "88" }, { "label": "Кечуа", "value": "90" }, { "label": "Кикуйю", "value": "91" }, { "label": "Киньяруанда", "value": "92" }, { "label": "Киргизский", "value": "93" }, { "label": "Китайский", "value": "7" }, { "label": "Клингонский", "value": "94" }, { "label": "Коми", "value": "95" }, { "label": "Конго", "value": "96" }, { "label": "Конкани", "value": "97" }, { "label": "Корейский", "value": "98" }, { "label": "Корсиканский", "value": "100" }, { "label": "Котава", "value": "101" }, { "label": "Кри", "value": "102" }, { "label": "Курдский", "value": "105" }, { "label": "Кхмерский", "value": "107" }, { "label": "Лакский", "value": "233" }, { "label": "Лаосский", "value": "109" }, { "label": "Латынь", "value": "110" }, { "label": "Латышский", "value": "111" }, { "label": "Лезгинский", "value": "112" }, { "label": "Лимбургский", "value": "113" }, { "label": "Лингала", "value": "114" }, { "label": "Литовский", "value": "115" }, { "label": "Луба", "value": "118" }, { "label": "Луганда", "value": "119" }, { "label": "Люксембургский", "value": "120" }, { "label": "Македонский", "value": "121" }, { "label": "Малагасийский", "value": "122" }, { "label": "Малайский", "value": "123" }, { "label": "Мальдивский", "value": "125" }, { "label": "Мальтийский", "value": "126" }, { "label": "Маори", "value": "127" }, { "label": "Марийский", "value": "232" }, { "label": "Маршалльский", "value": "130" }, { "label": "Молдавский", "value": "11" }, { "label": "Монгольский", "value": "133" }, { "label": "Мяо (хмонг)", "value": "209" }, { "label": "Навахо", "value": "135" }, { "label": "Неаполитанский", "value": "139" }, { "label": "Немецкий", "value": "3" }, { "label": "Непальский", "value": "140" }, { "label": "Норвежский", "value": "18" }, { "label": "Осетинский", "value": "147" }, { "label": "Пакистанский", "value": "230" }, { "label": "Пенджабский", "value": "149" }, { "label": "Персидский", "value": "151" }, { "label": "Польский", "value": "152" }, { "label": "Португальский", "value": "153" }, { "label": "Румынский", "value": "158" }, { "label": "Русский", "value": "1" }, { "label": "Санскрит", "value": "163" }, { "label": "Сардинский", "value": "164" }, { "label": "Сербохорватский", "value": "166" }, { "label": "Словацкий", "value": "170" }, { "label": "Словенский", "value": "171" }, { "label": "Сомали", "value": "172" }, { "label": "Старотурецкий", "value": "174" }, { "label": "Суахили", "value": "175" }, { "label": "Сунданский", "value": "176" }, { "label": "Тагальский", "value": "177" }, { "label": "Таджикский", "value": "178" }, { "label": "Таитянский", "value": "179" }, { "label": "Тайваньский", "value": "180" }, { "label": "Тайский", "value": "181" }, { "label": "Тамильский", "value": "182" }, { "label": "Татарский", "value": "12" }, { "label": "Телугу", "value": "184" }, { "label": "Тибетский", "value": "185" }, { "label": "Тигринья", "value": "186" }, { "label": "Ток-писин", "value": "187" }, { "label": "Токи пона", "value": "188" }, { "label": "Тонганский", "value": "189" }, { "label": "Тсвана", "value": "191" }, { "label": "Тсонга", "value": "192" }, { "label": "Турецкий", "value": "193" }, { "label": "Туркменский", "value": "194" }, { "label": "Удмуртский", "value": "196" }, { "label": "Узбекский", "value": "197" }, { "label": "Уйгурский", "value": "198" }, { "label": "Украинский", "value": "9" }, { "label": "Фиджийский", "value": "201" }, { "label": "Филиппинский", "value": "229" }, { "label": "Финский", "value": "17" }, { "label": "Французский", "value": "4" }, { "label": "Фризский", "value": "203" }, { "label": "Фулах", "value": "204" }, { "label": "Хауса", "value": "206" }, { "label": "Хинди", "value": "207" }, { "label": "Хири-моту", "value": "208" }, { "label": "Чеченский", "value": "213" }, { "label": "Чешский", "value": "13" }, { "label": "Чувашский", "value": "217" }, { "label": "Шведский", "value": "16" }, { "label": "Швейцарский немецкий", "value": "218" }, { "label": "Шона", "value": "219" }, { "label": "Шотландский", "value": "67" }, { "label": "Эве", "value": "221" }, { "label": "Эскимосский", "value": "223" }, { "label": "Эсперанто", "value": "14" }, { "label": "Эстонский", "value": "224" }, { "label": "Южно-корейский", "value": "231" }, { "label": "Юкатекский", "value": "225" }, { "label": "Яванский", "value": "227" }, { "label": "Японский", "value": "8" }], "type": filterInputs_1.FilterTypes.Picker }, "type": { "label": "Тип:", "value": "0", "options": [{ "label": "Неважно", "value": "0" }, { "label": "Только авторские", "value": "2" }, { "label": "Только переводы", "value": "1" }], "type": filterInputs_1.FilterTypes.Picker }, "trash": { "label": "Другое:", "value": [], "options": [{ "label": "Без фэндомов", "value": "fandoms_ex_all" }, { "label": "Готовые на 100%", "value": "ready" }, { "label": "Доступные для перевода", "value": "tr" }, { "label": "Доступные для скачивания", "value": "gen" }, { "label": "Завершённые проекты", "value": "wealth" }, { "label": "Распродажа", "value": "discount" }, { "label": "Только онгоинги", "value": "ongoings" }, { "label": "Убрать машинный", "value": "remove_machinelate" }], "type": filterInputs_1.FilterTypes.CheckboxGroup }, "atmosphere": { "label": "Атмосфера:", "value": "0", "options": [{ "label": "Неважно", "value": "0" }, { "label": "Позитивная", "value": "1" }, { "label": "Dark", "value": "2" }], "type": filterInputs_1.FilterTypes.Picker }, "adult": { "label": "Возрастные ограничения:", "value": "0", "options": [{ "label": "Все", "value": "0" }, { "label": "Только 18+", "value": "2" }, { "label": "Убрать 18+", "value": "1" }], "type": filterInputs_1.FilterTypes.Picker }, "genres": { "label": "Жанры: все жанры любой жанр", "value": [], "options": [{ "label": "Анал", "value": "2" }, { "label": "Бдсм", "value": "3" }, { "label": "Большая грудь", "value": "5" }, { "label": "Большая попка", "value": "6" }, { "label": "Большой член", "value": "7" }, { "label": "Бондаж", "value": "8" }, { "label": "В первый раз", "value": "9" }, { "label": "В цвете", "value": "10" }, { "label": "Гарем", "value": "11" }, { "label": "Гендарная интрига", "value": "12" }, { "label": "Групповой секс", "value": "13" }, { "label": "Детектив", "value": "39" }, { "label": "Драма", "value": "14" }, { "label": "Зрелые женщины (milf)", "value": "15" }, { "label": "Измена", "value": "16" }, { "label": "Изнасилование", "value": "17" }, { "label": "Инцест", "value": "18" }, { "label": "Исторический", "value": "19" }, { "label": "Комедия", "value": "20" }, { "label": "Контроль над разумом", "value": "35" }, { "label": "Маленькая грудь", "value": "21" }, { "label": "Мистика", "value": "40" }, { "label": "Научная фантастика", "value": "22" }, { "label": "Нетораре", "value": "23" }, { "label": "Оральный секс", "value": "24" }, { "label": "Повседневность", "value": "41" }, { "label": "Приключения", "value": "38" }, { "label": "Публичный секс", "value": "33" }, { "label": "Романтика", "value": "25" }, { "label": "С изображениями", "value": "36" }, { "label": "Сверхъестественное", "value": "34" }, { "label": "Смат", "value": "37" }, { "label": "Тентакли", "value": "26" }, { "label": "Трагедия", "value": "27" }, { "label": "Ужасы", "value": "28" }, { "label": "Фантастика", "value": "32" }, { "label": "Фэнтези", "value": "29" }, { "label": "Чикан", "value": "30" }, { "label": "Этти", "value": "31" }, { "label": "Ahegao", "value": "1" }], "type": filterInputs_1.FilterTypes.CheckboxGroup }, "tags": { "label": "Тэги: все тэги любой тэг", "value": [], "options": [{ "label": "+18", "value": "141" }, { "label": "18+", "value": "200" }, { "label": "21+", "value": "334" }, { "label": "Адекватные главные герои", "value": "253" }, { "label": "Азартные игры", "value": "210" }, { "label": "Айдолы", "value": "364" }, { "label": "Акула", "value": "53" }, { "label": "Альтернативное развитие событий", "value": "338" }, { "label": "Альфа самец", "value": "453" }, { "label": "Аморальный главный герой", "value": "219" }, { "label": "Анал", "value": "7" }, { "label": "Анальный секс", "value": "67" }, { "label": "Ангелы", "value": "114" }, { "label": "Антигерой", "value": "226" }, { "label": "Аристократия", "value": "260" }, { "label": "Армия", "value": "415" }, { "label": "Артефакт", "value": "379" }, { "label": "Афродизиак", "value": "276" }, { "label": "Ахегао", "value": "240" }, { "label": "Бабушка беременна от внука", "value": "393" }, { "label": "Бабушка и внук", "value": "380" }, { "label": "Бандиты", "value": "441" }, { "label": "Бдс", "value": "420" }, { "label": "Бдсм", "value": "131" }, { "label": "Беременность", "value": "148" }, { "label": "Бесплатно", "value": "79" }, { "label": "Бесстрашные персонажи", "value": "339" }, { "label": "Бесстыдный главный герой", "value": "433" }, { "label": "Библиотека", "value": "265" }, { "label": "Бистиалити", "value": "391" }, { "label": "Битва за трон", "value": "404" }, { "label": "Близнецы", "value": "198" }, { "label": "Блондинка", "value": "91" }, { "label": "Богатые персонажи", "value": "248" }, { "label": "Боги", "value": "115" }, { "label": "Боевик", "value": "252" }, { "label": "Боевые искусства", "value": "430" }, { "label": "Большая грудь", "value": "33" }, { "label": "Большая попка", "value": "328" }, { "label": "Большой член", "value": "76" }, { "label": "Большой член сына", "value": "396" }, { "label": "Босс и подчиненный", "value": "330" }, { "label": "Брак", "value": "182" }, { "label": "Брак по расчёту", "value": "346" }, { "label": "Брат", "value": "29" }, { "label": "Брат и сестра", "value": "30" }, { "label": "Братский комплекс", "value": "466" }, { "label": "Брюнетка", "value": "28" }, { "label": "Будущее", "value": "457" }, { "label": "Бэтмен", "value": "369" }, { "label": "Бэтмен", "value": "170" }, { "label": "В первый раз", "value": "179" }, { "label": "Вагинальный секс", "value": "57" }, { "label": "Вагинальный секс", "value": "171" }, { "label": "Вайурист", "value": "9" }, { "label": "Вампиры", "value": "133" }, { "label": "Ван-пис", "value": "335" }, { "label": "Веб камера", "value": "289" }, { "label": "Ведьмы", "value": "232" }, { "label": "Викинги", "value": "307" }, { "label": "Виртуальная реальность", "value": "382" }, { "label": "Вирус", "value": "203" }, { "label": "Внучка", "value": "189" }, { "label": "Возвращение домой", "value": "448" }, { "label": "Война", "value": "387" }, { "label": "Волшебство", "value": "438" }, { "label": "Воспоминания из прошлого", "value": "405" }, { "label": "Враги становятся любовниками", "value": "410" }, { "label": "Время", "value": "81" }, { "label": "Второй шанс", "value": "244" }, { "label": "Вуайеризм", "value": "62" }, { "label": "Выживание", "value": "135" }, { "label": "Гарем", "value": "107" }, { "label": "Гарри поттер", "value": "97" }, { "label": "Гвен", "value": "402" }, { "label": "Гг имба", "value": "87" }, { "label": "Генетические модификации", "value": "314" }, { "label": "Гениальный главный герой", "value": "471" }, { "label": "Гипноз", "value": "143" }, { "label": "Гл", "value": "427" }, { "label": "Главная героиня девушка", "value": "147" }, { "label": "Главный герой женщина", "value": "213" }, { "label": "Главный герой извращенец", "value": "116" }, { "label": "Главный герой мужчина", "value": "117" }, { "label": "Глубокое горло", "value": "94" }, { "label": "Гоблины", "value": "230" }, { "label": "Город", "value": "139" }, { "label": "Городское фэнтези", "value": "297" }, { "label": "Грудное молоко", "value": "225" }, { "label": "Групповой секс", "value": "72" }, { "label": "Гэнг-бэнг", "value": "235" }, { "label": "Гяру", "value": "222" }, { "label": "Двойное проникновение", "value": "42" }, { "label": "Двойной анал", "value": "47" }, { "label": "Дворяне", "value": "246" }, { "label": "Деамоны старший школы", "value": "291" }, { "label": "Девственница", "value": "119" }, { "label": "Девушки-монстры", "value": "223" }, { "label": "Демоны", "value": "98" }, { "label": "Детектив", "value": "249" }, { "label": "Дзёсэй", "value": "259" }, { "label": "Доктор", "value": "326" }, { "label": "Дом", "value": "138" }, { "label": "Доминирование", "value": "18" }, { "label": "Дочь", "value": "153" }, { "label": "Дочь беременна от отца", "value": "348" }, { "label": "Древние времена", "value": "383" }, { "label": "Древний китай", "value": "261" }, { "label": "Другой мир", "value": "365" }, { "label": "Дружба", "value": "325" }, { "label": "Друзья детства", "value": "183" }, { "label": "Дядя", "value": "160" }, { "label": "Жена", "value": "70" }, { "label": "Жена и муж", "value": "99" }, { "label": "Жена шлюха", "value": "236" }, { "label": "Женское доминирование", "value": "100" }, { "label": "Жесткий секс", "value": "283" }, { "label": "Жёсткий секс", "value": "101" }, { "label": "Жестокие персонажи", "value": "254" }, { "label": "Жестокий мир", "value": "336" }, { "label": "Жестокость", "value": "123" }, { "label": "Заботливый главный герой", "value": "340" }, { "label": "Зависимость", "value": "370" }, { "label": "Заключение", "value": "196" }, { "label": "Заключённые", "value": "384" }, { "label": "Замок", "value": "140" }, { "label": "Запретная любовь", "value": "273" }, { "label": "Заражение", "value": "206" }, { "label": "Зачарованные", "value": "467" }, { "label": "Звёздные войны", "value": "120" }, { "label": "Зверодевочки", "value": "158" }, { "label": "Зло", "value": "343" }, { "label": "Золовка", "value": "77" }, { "label": "Золотой дождь", "value": "146" }, { "label": "Зомби апокалипсис", "value": "241" }, { "label": "Зоофилия", "value": "144" }, { "label": "Зрелы", "value": "419" }, { "label": "Зрелые женщины", "value": "398" }, { "label": "Игровые элементы", "value": "385" }, { "label": "Извращения", "value": "192" }, { "label": "Измена", "value": "71" }, { "label": "Изменения внешности", "value": "315" }, { "label": "Изменения личности", "value": "316" }, { "label": "Изнасилование", "value": "275" }, { "label": "Изуку мидория", "value": "337" }, { "label": "Инвалидность", "value": "458" }, { "label": "Ино", "value": "127" }, { "label": "Инопланетяне", "value": "304" }, { "label": "Интересный сюжет", "value": "349" }, { "label": "Интимные сцены", "value": "322" }, { "label": "Интрига", "value": "435" }, { "label": "Интриги и заговоры", "value": "262" }, { "label": "Интроверт", "value": "38" }, { "label": "Инфекция", "value": "207" }, { "label": "Инцест", "value": "35" }, { "label": "Исторический роман", "value": "406" }, { "label": "Камера", "value": "92" }, { "label": "Киберспорт", "value": "426" }, { "label": "Китай", "value": "445" }, { "label": "Колледж", "value": "82" }, { "label": "Кольца", "value": "455" }, { "label": "Комикс", "value": "286" }, { "label": "Контроль", "value": "19" }, { "label": "Контроль над разумом", "value": "181" }, { "label": "Контроль разума", "value": "65" }, { "label": "Кончил внутрь", "value": "221" }, { "label": "Корея", "value": "446" }, { "label": "Кормление грудью", "value": "440" }, { "label": "Королевская семья", "value": "358" }, { "label": "Королевство", "value": "465" }, { "label": "Коррупция", "value": "49" }, { "label": "Космос", "value": "204" }, { "label": "Красивая главная героиня", "value": "255" }, { "label": "Красивы", "value": "462" }, { "label": "Красивые женщины", "value": "321" }, { "label": "Красивый главный герой", "value": "266" }, { "label": "Ксенофилия", "value": "386" }, { "label": "Кулинария", "value": "362" }, { "label": "Культвация", "value": "86" }, { "label": "Кунилингус", "value": "152" }, { "label": "Кушина", "value": "399" }, { "label": "Лактация", "value": "11" }, { "label": "Лесби", "value": "408" }, { "label": "Лишение девственности", "value": "212" }, { "label": "Лоли", "value": "218" }, { "label": "Лунатизм", "value": "279" }, { "label": "Любовный треугольник", "value": "473" }, { "label": "Любовь", "value": "89" }, { "label": "Любовь с первого взгляда", "value": "436" }, { "label": "Магические предметы", "value": "454" }, { "label": "Магический мир", "value": "357" }, { "label": "Магия", "value": "80" }, { "label": "Магия природы", "value": "437" }, { "label": "Мама", "value": "3" }, { "label": "Мама беременна от сына", "value": "274" }, { "label": "Мама и дочь", "value": "163" }, { "label": "Мама и сын", "value": "1" }, { "label": "Мама супермена", "value": "39" }, { "label": "Манипуляция временем", "value": "292" }, { "label": "Марвел", "value": "290" }, { "label": "Марвел", "value": "173" }, { "label": "Марти стью", "value": "102" }, { "label": "Массаж", "value": "224" }, { "label": "Мастурбация", "value": "63" }, { "label": "Мать", "value": "239" }, { "label": "Мать и дочь", "value": "381" }, { "label": "Мать и сын", "value": "237" }, { "label": "Мафия", "value": "256" }, { "label": "Мачеха", "value": "197" }, { "label": "Мачеха беременна от сына", "value": "395" }, { "label": "Мачеха и сын", "value": "394" }, { "label": "Медленная романтика", "value": "431" }, { "label": "Медсестра", "value": "341" }, { "label": "Межрассовый", "value": "54" }, { "label": "Месть", "value": "306" }, { "label": "Меха", "value": "268" }, { "label": "Ми", "value": "243" }, { "label": "Милф", "value": "34" }, { "label": "Милф", "value": "180" }, { "label": "Минет", "value": "52" }, { "label": "Мистика", "value": "250" }, { "label": "Младшая сестра", "value": "154" }, { "label": "Много спермы", "value": "409" }, { "label": "Модель", "value": "324" }, { "label": "Монахиня", "value": "470" }, { "label": "Монстры", "value": "333" }, { "label": "Мошеничество", "value": "44" }, { "label": "Муж куколд", "value": "452" }, { "label": "Мужская беременность", "value": "363" }, { "label": "Мужчина протагонист", "value": "108" }, { "label": "Музыка", "value": "331" }, { "label": "Мэри съюха", "value": "309" }, { "label": "Наруко", "value": "400" }, { "label": "Наруто", "value": "46" }, { "label": "Насилие", "value": "128" }, { "label": "Насилие и жестокость", "value": "193" }, { "label": "Научный эксперимент", "value": "313" }, { "label": "Невеста", "value": "421" }, { "label": "Нежить", "value": "373" }, { "label": "Некромантия", "value": "298" }, { "label": "Ненормативная лексика", "value": "124" }, { "label": "Нетораре", "value": "69" }, { "label": "Нетори", "value": "284" }, { "label": "Нижнее бельё", "value": "392" }, { "label": "Ниндзя", "value": "296" }, { "label": "Новый год", "value": "459" }, { "label": "Ношеные трусики", "value": "166" }, { "label": "Нудизм", "value": "156" }, { "label": "Няня", "value": "88" }, { "label": "Обмен женами", "value": "78" }, { "label": "Оборотни", "value": "136" }, { "label": "Обратный гарем", "value": "214" }, { "label": "Одержимость", "value": "345" }, { "label": "Омегаверс", "value": "368" }, { "label": "Оплодотворение", "value": "157" }, { "label": "Оральный секс", "value": "10" }, { "label": "Оргия", "value": "356" }, { "label": "Орки", "value": "388" }, { "label": "От бедности к богатству", "value": "444" }, { "label": "От слабого к сильному", "value": "351" }, { "label": "Отец", "value": "2" }, { "label": "Отец делится с сыном", "value": "6" }, { "label": "Отец и дочь", "value": "205" }, { "label": "Отец куколд", "value": "272" }, { "label": "Отчим", "value": "417" }, { "label": "Офис", "value": "234" }, { "label": "Падчерица", "value": "271" }, { "label": "Пайзури", "value": "195" }, { "label": "Папа и дочь", "value": "360" }, { "label": "Паразиты", "value": "208" }, { "label": "Параллельный мир", "value": "320" }, { "label": "Пародия", "value": "371" }, { "label": "Первая любовь", "value": "434" }, { "label": "Первый раз", "value": "159" }, { "label": "Перемещение в другой мир", "value": "347" }, { "label": "Перемещение во времени", "value": "245" }, { "label": "Перерождение", "value": "109" }, { "label": "Перерождение в злодея", "value": "202" }, { "label": "Пирсинг", "value": "145" }, { "label": "Писатель", "value": "267" }, { "label": "Планомерное развитие событий", "value": "350" }, { "label": "Повседневность", "value": "247" }, { "label": "Подглядывание", "value": "280" }, { "label": "Подчинение", "value": "106" }, { "label": "Подчинение и унижение", "value": "211" }, { "label": "Поедание киски", "value": "26" }, { "label": "Покемоны", "value": "132" }, { "label": "Покорная", "value": "8" }, { "label": "Полигамия", "value": "352" }, { "label": "Половое воспитание", "value": "37" }, { "label": "Полулюди", "value": "231" }, { "label": "Попаданец", "value": "103" }, { "label": "Попадание в книгу", "value": "361" }, { "label": "Порка", "value": "20" }, { "label": "Порно", "value": "278" }, { "label": "Постапокалипсис", "value": "332" }, { "label": "Потеря девственности", "value": "142" }, { "label": "Похищение", "value": "161" }, { "label": "Преданные любовный интерес", "value": "407" }, { "label": "Призраки", "value": "412" }, { "label": "Приключения", "value": "134" }, { "label": "Принуждение", "value": "66" }, { "label": "Проклятие", "value": "456" }, { "label": "Психические расстройства", "value": "463" }, { "label": "Психология", "value": "238" }, { "label": "Публично", "value": "85" }, { "label": "Публичный секс", "value": "233" }, { "label": "Раб", "value": "353" }, { "label": "Рабы", "value": "308" }, { "label": "Разват", "value": "58" }, { "label": "Разврат", "value": "64" }, { "label": "Райзен", "value": "95" }, { "label": "Раса инопланетных космических лесбиянок", "value": "294" }, { "label": "Ревность", "value": "414" }, { "label": "Реинкарнация", "value": "428" }, { "label": "Религия", "value": "403" }, { "label": "Рестленг", "value": "84" }, { "label": "Риас гремори", "value": "389" }, { "label": "Рождество", "value": "460" }, { "label": "Романтика", "value": "178" }, { "label": "Рыжий", "value": "90" }, { "label": "С", "value": "413" }, { "label": "Сакура", "value": "126" }, { "label": "Самолет", "value": "93" }, { "label": "Санса старк", "value": "277" }, { "label": "Санта", "value": "372" }, { "label": "Свадьба", "value": "73" }, { "label": "Сверхсила", "value": "228" }, { "label": "Сверхъестественное", "value": "319" }, { "label": "Свингеры", "value": "201" }, { "label": "Свободные отношения", "value": "186" }, { "label": "Связывание", "value": "137" }, { "label": "Сёдзе", "value": "264" }, { "label": "Секс", "value": "21" }, { "label": "Секс без проникновения", "value": "68" }, { "label": "Секс втроем", "value": "43" }, { "label": "Секс игрушки", "value": "59" }, { "label": "Секс рабыня", "value": "55" }, { "label": "Секс с монстрами", "value": "56" }, { "label": "Секс с учителем", "value": "184" }, { "label": "Секса будет много", "value": "151" }, { "label": "Сексуальное желание", "value": "209" }, { "label": "Селфцест", "value": "397" }, { "label": "Семейные традиции", "value": "449" }, { "label": "Семья", "value": "5" }, { "label": "Сестра", "value": "31" }, { "label": "Сестра беременна от брата", "value": "355" }, { "label": "Сильный с самого начала", "value": "112" }, { "label": "Симбиоз", "value": "50" }, { "label": "Сирена", "value": "51" }, { "label": "Система", "value": "104" }, { "label": "Сиськи", "value": "285" }, { "label": "Сквирт", "value": "164" }, { "label": "Скрытый секс", "value": "287" }, { "label": "Служанка", "value": "215" }, { "label": "Соб", "value": "281" }, { "label": "Соблазнение", "value": "162" }, { "label": "Современность", "value": "217" }, { "label": "Соколиный Глаз", "value": "176" }, { "label": "Соперничество", "value": "216" }, { "label": "Соседи", "value": "61" }, { "label": "Соседка", "value": "312" }, { "label": "Сперма", "value": "229" }, { "label": "Сперма на лицо", "value": "199" }, { "label": "Спорт", "value": "450" }, { "label": "Спящие", "value": "187" }, { "label": "Средневековье", "value": "443" }, { "label": "Сталкер", "value": "418" }, { "label": "Старшая сестра", "value": "311" }, { "label": "Стеб", "value": "111" }, { "label": "Студенты", "value": "177" }, { "label": "Суккуб", "value": "390" }, { "label": "Супергерои", "value": "305" }, { "label": "Суперспособности", "value": "300" }, { "label": "Счастливый конец", "value": "461" }, { "label": "Сын", "value": "4" }, { "label": "Сын солдат", "value": "416" }, { "label": "Сюаньхуа", "value": "425" }, { "label": "Сянься", "value": "424" }, { "label": "Таблетки для развития", "value": "429" }, { "label": "Тайная любовь", "value": "432" }, { "label": "Тайные отношения", "value": "451" }, { "label": "Твинцест", "value": "188" }, { "label": "Темное фэнтези", "value": "293" }, { "label": "Тентакли", "value": "303" }, { "label": "Тетя", "value": "113" }, { "label": "Тетя беременна от племянника", "value": "376" }, { "label": "Тетя и племянник", "value": "377" }, { "label": "Техника", "value": "302" }, { "label": "Технологии", "value": "301" }, { "label": "Тёща", "value": "270" }, { "label": "Тиран", "value": "310" }, { "label": "Трагическое прошлое", "value": "251" }, { "label": "Трансмиграция", "value": "269" }, { "label": "Трансформация", "value": "317" }, { "label": "Триллер", "value": "344" }, { "label": "Трусики", "value": "165" }, { "label": "Убийства", "value": "258" }, { "label": "Удача", "value": "299" }, { "label": "Ужасы", "value": "375" }, { "label": "Улучшение тела", "value": "288" }, { "label": "Умная главная героиня", "value": "242" }, { "label": "Умные персонажи", "value": "257" }, { "label": "Умный главный герой", "value": "354" }, { "label": "Университет", "value": "323" }, { "label": "Уся", "value": "423" }, { "label": "Учеба в университете", "value": "472" }, { "label": "Ученик", "value": "83" }, { "label": "Ф", "value": "149" }, { "label": "Фанатичная любовь", "value": "366" }, { "label": "Фанаты", "value": "367" }, { "label": "Фантастика", "value": "295" }, { "label": "Фанфик", "value": "40" }, { "label": "Фелляция", "value": "22" }, { "label": "Ферма", "value": "191" }, { "label": "Фетиш", "value": "60" }, { "label": "Флэш", "value": "121" }, { "label": "Футанария", "value": "150" }, { "label": "Фэн", "value": "422" }, { "label": "Фэнтези", "value": "359" }, { "label": "Фэнтезийный мир", "value": "464" }, { "label": "Хентай", "value": "75" }, { "label": "Хината", "value": "110" }, { "label": "Холодная главная героиня", "value": "263" }, { "label": "Христианство", "value": "468" }, { "label": "Хулиганы", "value": "442" }, { "label": "Церковь", "value": "469" }, { "label": "Черная вдова", "value": "220" }, { "label": "Черная Вдова", "value": "175" }, { "label": "Черный юмор", "value": "374" }, { "label": "Читерство", "value": "45" }, { "label": "Чтение мыслей", "value": "227" }, { "label": "Чудовища", "value": "378" }, { "label": "Чулки", "value": "439" }, { "label": "Шантаж", "value": "129" }, { "label": "Школа", "value": "118" }, { "label": "Школьная жизнь", "value": "318" }, { "label": "Шлюха", "value": "32" }, { "label": "Шоу-бизнес", "value": "329" }, { "label": "Шоу-бизнес", "value": "172" }, { "label": "Эксгибиционизм", "value": "74" }, { "label": "Элементы бдсм", "value": "185" }, { "label": "Эмма уотсон", "value": "342" }, { "label": "Эмма Уотсон", "value": "169" }, { "label": "Эротика", "value": "36" }, { "label": "Этти", "value": "327" }, { "label": "Юмор", "value": "105" }, { "label": "Яндере", "value": "155" }, { "label": "Япония", "value": "447" }, { "label": "Bl", "value": "125" }, { "label": "Dc", "value": "411" }, { "label": "Gl", "value": "96" }, { "label": "Harry potter", "value": "190" }, { "label": "Harry potter", "value": "168" }, { "label": "Hentai", "value": "282" }, { "label": "Marvel", "value": "194" }, { "label": "Marvel", "value": "174" }, { "label": "Milf", "value": "167" }, { "label": "Mj", "value": "401" }], "type": filterInputs_1.FilterTypes.CheckboxGroup }, "fandoms": { "label": "Фэндом: все фэндомы любой фэндом", "value": [], "options": [{ "label": "Аватар: Легенда о Корре / Avatar legend of Korra", "value": "46" }, { "label": "Аватар: Легенда об Аанге / Avatar: The Legend of Aang / Avatar: The Last Airbender", "value": "45" }, { "label": "Аладдин / Aladdin", "value": "86" }, { "label": "Алиса в Стране чудес / Alice in Wonderland", "value": "90" }, { "label": "Американский папаша / American Dad", "value": "85" }, { "label": "Атака титанов / Атака на титанов / Attack on Titan", "value": "41" }, { "label": "Блич / Bleach", "value": "58" }, { "label": "Боевой континент", "value": "101" }, { "label": "Большой куш / One Piece", "value": "18" }, { "label": "Боруто: Новое поколение Наруто / Boruto: Naruto Next Generations", "value": "9" }, { "label": "Бэтмен / The Batman", "value": "36" }, { "label": "Ведьмак / The Witcher", "value": "53" }, { "label": "Военная хроника маленькой девочки", "value": "100" }, { "label": "Волейбол / Haikyu!!", "value": "37" }, { "label": "Вселенная Марвел / Marvel Universe", "value": "7" }, { "label": "Вселенная Марвел / Marvel Universe / Marvel Comics", "value": "52" }, { "label": "Вселенная Стивена", "value": "61" }, { "label": "Вселенная DC / DC Universe / DC Comics", "value": "48" }, { "label": "Гарри Поттер / Harry Potter", "value": "4" }, { "label": "Гоэтия / Гоетия / Yοητεία / Ars Goetia", "value": "77" }, { "label": "Демоны старшей школы / High School DxD", "value": "10" }, { "label": "День сурка / Groundhog Day", "value": "3" }, { "label": "Джессика Джонс / Marvel's Jessica Jones", "value": "42" }, { "label": "Дисней / The Walt Disney Company", "value": "74" }, { "label": "Древние свитки: Скайрим / TES: Skyrim", "value": "15" }, { "label": "Дэдпул / Deadpool", "value": "22" }, { "label": "Дэнни-призрак / Danny Phantom", "value": "51" }, { "label": "Железный человек / Iron Man", "value": "19" }, { "label": "Звёздная принцесса и силы зла / Стар против сил зла / Star vs. The Forces of Evil", "value": "50" }, { "label": "Звездные Войны / Star Wars", "value": "43" }, { "label": "Звёздные Войны / Star Wars", "value": "16" }, { "label": "Игра престолов", "value": "78" }, { "label": "Касльвания / Castlevania", "value": "29" }, { "label": "Киберпанк 2077 / Cyberpunk 2077", "value": "6" }, { "label": "Код Гиас / Code Geass", "value": "84" }, { "label": "Кольцо Элдена", "value": "60" }, { "label": "Королевства Сердец / Kingdom Hearts", "value": "93" }, { "label": "Красавица и чудовище / Beauty and the Beast", "value": "91" }, { "label": "Красный, Белый, Черный, Желтый / RWBY", "value": "32" }, { "label": "Кунг фу панда", "value": "81" }, { "label": "Лига Легенд / League of Legends", "value": "5" }, { "label": "Люди Икс / X-Men", "value": "25" }, { "label": "Ма", "value": "104" }, { "label": "Маг на полную ставку / Quanzhi Fashi", "value": "30" }, { "label": "Мастера меча онлайн / Sword Art Online / SAO", "value": "47" }, { "label": "Мир Тьмы / World of Darkness", "value": "28" }, { "label": "Мой маленький пони / My Little Pony", "value": "72" }, { "label": "Мой маленький пони: Дружба — это чудо / My Little Pony: Friendship is Magic", "value": "71" }, { "label": "Моя геройская академия / Boku no Hero Academia", "value": "8" }, { "label": "Мстители / The Avengers", "value": "20" }, { "label": "Мстители. Эра Альтрона / The Avengers. Age of Ultron", "value": "24" }, { "label": "Мулан / Mulan", "value": "94" }, { "label": "Наруто / Naruto", "value": "2" }, { "label": "Овервотч", "value": "79" }, { "label": "Поднятие уровня в одиночку", "value": "87" }, { "label": "Порновселенная / Porn Universe", "value": "31" }, { "label": "Прототип / Prototype", "value": "44" }, { "label": "Рапунцель: Запутанная история / Tangled", "value": "96" }, { "label": "Розовая пора моей школьной жизни сплошной обман / Yahari Ore no Seishun Love Come wa Machigatteiru", "value": "14" }, { "label": "Русалочка / The Little Mermaid", "value": "97" }, { "label": "Сага о Винланде", "value": "66" }, { "label": "Светлячок / Firefly", "value": "76" }, { "label": "Сильнейший в истории ученик Кэнити / Shijou Saikyou no Deshi Kenichi", "value": "13" }, { "label": "Симпсоны / The Simpsons", "value": "73" }, { "label": "Судьба: Великий Приказ / Fate: Grand Order", "value": "54" }, { "label": "Супергёрл(телесериал, 2015) / Supergirl", "value": "95" }, { "label": "Супермен / Superman", "value": "1" }, { "label": "Теория большого взрыва / The Big Bang Theory", "value": "75" }, { "label": "Тор / Thor", "value": "27" }, { "label": "У Коми-сан проблемы с общением / 古見さんは、コミュ症です / Komi Can't Communicate", "value": "11" }, { "label": "Убийца Акаме / Akame ga Kill", "value": "40" }, { "label": "Уэнздей / Wednesday", "value": "26" }, { "label": "Фантастическая четвёрка / Fantastic Four", "value": "21" }, { "label": "Флэш / The Flash", "value": "17" }, { "label": "Хвост Феи / Fairy Tail", "value": "59" }, { "label": "Холодное сердце / Frozen", "value": "92" }, { "label": "Человек одного удара / Ванпанчмен / One Punch-Man", "value": "39" }, { "label": "Человек-паук / Spider-Man", "value": "23" }, { "label": "Чёрный зверь / Чёрный Пёс / Kuroinu", "value": "35" }, { "label": "Чёрный зверь: Развращение Благородных Воительниц / Black Beast: Corruption of the Noble Warriors", "value": "34" }, { "label": "Школа мертвецов", "value": "67" }, { "label": "Школа строгого режима / Prison School", "value": "12" }, { "label": "Эффект Массы / Mass Effect", "value": "57" }, { "label": "Юные Титаны / Teen Titans", "value": "49" }, { "label": "Ars Goetia | Gods and Demons", "value": "69" }, { "label": "Biohazard", "value": "99" }, { "label": "CD", "value": "103" }, { "label": "CL", "value": "70" }, { "label": "Daraku Reijou Hakoiri Ojou-sama Netorare Choukyou Kiroku", "value": "55" }, { "label": "Doom", "value": "64" }, { "label": "Granblue fantasy", "value": "88" }, { "label": "Halo", "value": "80" }, { "label": "Highschool of the Dead/Школа мертвецов", "value": "68" }, { "label": "JK Bitch ni Shiboraretai", "value": "56" }, { "label": "Monogatari Series", "value": "65" }, { "label": "Monster girl quest", "value": "62" }, { "label": "Over", "value": "102" }, { "label": "Rapunzel/Рапунцель", "value": "83" }, { "label": "Resident Evil", "value": "98" }, { "label": "Solo leveling", "value": "63" }, { "label": "Tentacle Locker", "value": "89" }, { "label": "X-COM", "value": "82" }], "type": filterInputs_1.FilterTypes.CheckboxGroup } } }); -exports.default = plugin; diff --git a/.js/plugins/russian/LitSpace.js b/.js/plugins/russian/LitSpace.js deleted file mode 100644 index 3812cec..0000000 --- a/.js/plugins/russian/LitSpace.js +++ /dev/null @@ -1,298 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var filterInputs_1 = require("@libs/filterInputs"); -var fetch_1 = require("@libs/fetch"); -var cheerio_1 = require("cheerio"); -var freedlit = /** @class */ (function () { - function freedlit() { - this.id = "freedlit.space"; - this.name = "LitSpace"; - this.site = "https://freedlit.space"; - this.version = "1.0.0"; - this.icon = "src/ru/freedlit/icon.png"; - this.fetchImage = fetch_1.fetchFile; - this.filters = { - sort: { - label: "Сортировка:", - value: "", - options: [ - { label: "По популярности", value: "popular" }, - { label: "По количеству комментариев", value: "comments" }, - { label: "По количеству лайков", value: "likes" }, - { label: "По новизне", value: "recent" }, - { label: "По просмотрам", value: "views" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - genre: { - label: "Жанры:", - value: { include: [], exclude: [] }, - options: [ - { label: "Любой жанр", value: "all" }, - { label: "Альтернативная история", value: "alternative-history" }, - { label: "Антиутопия", value: "dystopia" }, - { label: "Бизнес-литература", value: "business-literature" }, - { label: "Боевая фантастика", value: "combat-fiction" }, - { label: "Боевик", value: "action" }, - { label: "Боевое фэнтези", value: "combat-fantasy" }, - { label: "Бояръ-Аниме", value: "boyar-anime" }, - { label: "Героическая фантастика", value: "heroic-fiction" }, - { label: "Героическое фэнтези", value: "heroic-fantasy" }, - { label: "Городское фэнтези", value: "urban-fantasy" }, - { label: "Гримдарк", value: "grimdark" }, - { label: "Детектив", value: "mystery" }, - { label: "Детская литература", value: "kids-literature" }, - { label: "Документальная проза", value: "biography" }, - { label: "Историческая проза", value: "historical-fiction" }, - { label: "Исторический детектив", value: "historical-mystery" }, - { label: "Исторический любовный роман", value: "historical-romantic-novel" }, - { label: "Историческое фэнтези", value: "historical-fantasy" }, - { label: "Киберпанк", value: "cyberpunk" }, - { label: "Космическая фантастика", value: "cosmic-fiction" }, - { label: "ЛитРПГ", value: "litrpg" }, - { label: "Лоу / Низкое фэнтези", value: "low-fantasy" }, - { label: "Любовное фэнтези", value: "romantic-fantasy" }, - { label: "Любовный роман", value: "romantic-novel" }, - { label: "Мистика", value: "mystic" }, - { label: "Мистический детектив", value: "mystic-detective" }, - { label: "Научная фантастика", value: "science-fiction" }, - { label: "Подростковая проза", value: "young-adult" }, - { label: "Политический роман", value: "political-romance" }, - { label: "Попаданцы", value: "accidental-travel" }, - { label: "Попаданцы в магические миры", value: "magic-worlds-travel" }, - { label: "Попаданцы во времени", value: "time-travel" }, - { label: "Порнотика", value: "pornotica" }, - { label: "Постапокалипсис", value: "post-apocalypse" }, - { label: "Поэзия", value: "poetry" }, - { label: "Приключения", value: "adventure" }, - { label: "Публицистика", value: "journalism" }, - { label: "Пьеса", value: "play" }, - { label: "Развитие личности", value: "how-to-book" }, - { label: "Разное", value: "other" }, - { label: "Реализм", value: "Realism" }, - { label: "РеалРПГ", value: "realrpg" }, - { label: "Репликация", value: "replication" }, - { label: "Романтическая эротика", value: "romantic-erotic-fiction" }, - { label: "Сказка", value: "fairy-tale" }, - { label: "Слэш", value: "slash" }, - { label: "Современная проза", value: "modern-prose" }, - { label: "Современный любовный роман", value: "modern-romantic-novel" }, - { label: "Социальная фантастика", value: "social-fiction" }, - { label: "Стимпанк", value: "steampunk" }, - { label: "Сценарий", value: "scenario" }, - { label: "Сюаньхуань", value: "xuanhuan" }, - { label: "Сянься", value: "xianxia" }, - { label: "Тёмное фэнтези", value: "dark-fantasy" }, - { label: "Триллер", value: "thriller" }, - { label: "Уся", value: "wuxia" }, - { label: "Фантастика", value: "fiction" }, - { label: "Фантастический детектив", value: "mystery-fiction" }, - { label: "Фанфик", value: "fan-fiction" }, - { label: "Фемслэш", value: "femslash" }, - { label: "Фэнтези", value: "fantasy" }, - { label: "Хоррор", value: "horror" }, - { label: "Шпионский детектив", value: "spy-crime" }, - { label: "Эпическое фэнтези", value: "epic-fantasy" }, - { label: "Эротика", value: "erotic-fiction" }, - { label: "Эротическая фантастика", value: "erotic-fiction" }, - { label: "Эротический фанфик", value: "erotic-fan-fiction" }, - { label: "Эротическое фэнтези", value: "erotic-fantasy" }, - { label: "Этническое фэнтези", value: "ethnic-fantasy" }, - { label: "Юмор", value: "humor" }, - { label: "Юмористическая фантастика", value: "humor-fiction" }, - { label: "Юмористическое фэнтези", value: "humor-fantasy" }, - { label: "RPS", value: "rps" }, - ], - type: filterInputs_1.FilterTypes.ExcludableCheckboxGroup, - }, - status: { - label: "Статус:", - value: "", - options: [ - { label: "Любой статус", value: "all" }, - { label: "В процессе", value: "in-process" }, - { label: "Завершено", value: "finished" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - access: { - label: "Доступ:", - value: "", - options: [ - { label: "Любой доступ", value: "all" }, - { label: "Бесплатные", value: "free" }, - { label: "Платные", value: "paid" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - adult: { - label: "Возрастные ограничения:", - value: "", - options: [ - { label: "Скрыть 18+", value: "hide" }, - { label: "Показать +18", value: "show" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - }; - } - freedlit.prototype.popularNovels = function (page, _a) { - var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l; - var showLatestNovels = _a.showLatestNovels, filters = _a.filters; - return __awaiter(this, void 0, void 0, function () { - var url, body, loadedCheerio, novels; - return __generator(this, function (_m) { - switch (_m.label) { - case 0: - url = this.site + "/get-books/all/list/" + page + "?sort="; - url += showLatestNovels ? "recent" : ((_b = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _b === void 0 ? void 0 : _b.value) || "popular"; - url += "&status=" + (((_c = filters === null || filters === void 0 ? void 0 : filters.status) === null || _c === void 0 ? void 0 : _c.value) || "all"); - url += "&access=" + (((_d = filters === null || filters === void 0 ? void 0 : filters.access) === null || _d === void 0 ? void 0 : _d.value) || "all"); - url += "&adult=" + (((_e = filters === null || filters === void 0 ? void 0 : filters.adult) === null || _e === void 0 ? void 0 : _e.value) || "hide"); - if ((_h = (_g = (_f = filters === null || filters === void 0 ? void 0 : filters.genre) === null || _f === void 0 ? void 0 : _f.value) === null || _g === void 0 ? void 0 : _g.include) === null || _h === void 0 ? void 0 : _h.length) { - url += filters.genre.value.include - .map(function (id) { return '&genres_included[]=' + id; }).join(""); - } - if ((_l = (_k = (_j = filters === null || filters === void 0 ? void 0 : filters.genre) === null || _j === void 0 ? void 0 : _j.value) === null || _k === void 0 ? void 0 : _k.exclude) === null || _l === void 0 ? void 0 : _l.length) { - url += filters.genre.value.exclude - .map(function (id) { return '&genres_excluded[]=' + id; }).join(""); - } - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _m.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio("#bookListBlock > div > div").each(function () { - var _a, _b, _c; - var name = (_a = loadedCheerio(this).find("div > h4 > a").text()) === null || _a === void 0 ? void 0 : _a.trim(); - var cover = (_b = loadedCheerio(this) - .find("div > a > img") - .attr("src")) === null || _b === void 0 ? void 0 : _b.trim(); - var url = (_c = loadedCheerio(this).find("div > h4 > a").attr("href")) === null || _c === void 0 ? void 0 : _c.trim(); - if (!name || !url) - return; - novels.push({ name: name, cover: cover, url: url }); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - freedlit.prototype.parseNovelAndChapters = function (novelUrl) { - var _a, _b; - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, novel, chapters; - return __generator(this, function (_c) { - switch (_c.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _c.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { - url: novelUrl, - name: loadedCheerio(".book-info h4").text(), - cover: (_a = loadedCheerio(".book-cover > div > img").attr("src")) === null || _a === void 0 ? void 0 : _a.trim(), - summary: (_b = loadedCheerio("#nav-home").text()) === null || _b === void 0 ? void 0 : _b.trim(), - author: loadedCheerio(".book-info h5 > a").text(), - genres: loadedCheerio(".genre-list > a") - .map(function (index, element) { return loadedCheerio(element).text(); }) - .get() - .join(","), - }; - chapters = []; - loadedCheerio("a.chapter-line").each(function () { - var name = loadedCheerio(this).find("h6").text(); - var releaseTime = loadedCheerio(this).find('span[class="date"]').text(); - var url = loadedCheerio(this).attr("href"); - if (!name || !url) - return; - chapters.push({ name: name, releaseTime: releaseTime, url: url }); - }); - novel.chapters = chapters; - return [2 /*return*/, novel]; - } - }); - }); - }; - freedlit.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio("div.mobile-block").remove(); - loadedCheerio("div.standart-block").remove(); - chapterText = loadedCheerio('div[class="chapter"]').html() || ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - freedlit.prototype.searchNovels = function (searchTerm) { - return __awaiter(this, void 0, void 0, function () { - var url, body, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = "".concat(this.site, "/search?query=").concat(searchTerm, "&type=all"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio("#bookListBlock > div").each(function () { - var _a, _b, _c; - var name = (_a = loadedCheerio(this).find("h4 > a").text()) === null || _a === void 0 ? void 0 : _a.trim(); - var cover = (_b = loadedCheerio(this).find("a > img").attr("src")) === null || _b === void 0 ? void 0 : _b.trim(); - var url = (_c = loadedCheerio(this).find("h4 > a").attr("href")) === null || _c === void 0 ? void 0 : _c.trim(); - if (!name || !url) - return; - novels.push({ name: name, cover: cover, url: url }); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - return freedlit; -}()); -exports.default = new freedlit(); diff --git a/.js/plugins/russian/Rulate[rulate].js b/.js/plugins/russian/Rulate[rulate].js deleted file mode 100644 index 8b68c8b..0000000 --- a/.js/plugins/russian/Rulate[rulate].js +++ /dev/null @@ -1,292 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var novelStatus_1 = require("@libs/novelStatus"); -var cheerio_1 = require("cheerio"); -var RulatePlugin = /** @class */ (function () { - function RulatePlugin(metadata) { - this.fetchImage = fetch_1.fetchFile; - this.id = metadata.id; - this.name = metadata.sourceName + "[rulate]"; - var iconFileName = metadata.sourceName.replace(/\s+/g, "").toLowerCase(); - this.icon = "multisrc/rulate/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.filters = metadata.filters; - } - RulatePlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, baseUrl, url, body, loadedCheerio; - return __generator(this, function (_o) { - switch (_o.label) { - case 0: - novels = []; - baseUrl = this.site; - url = baseUrl + "/search?t="; - url += "&cat=" + (((_b = filters === null || filters === void 0 ? void 0 : filters.cat) === null || _b === void 0 ? void 0 : _b.value) || "0"); - url += "&s_lang=" + (((_c = filters === null || filters === void 0 ? void 0 : filters.s_lang) === null || _c === void 0 ? void 0 : _c.value) || "0"); - url += "&t_lang=" + (((_d = filters === null || filters === void 0 ? void 0 : filters.t_lang) === null || _d === void 0 ? void 0 : _d.value) || "0"); - url += "&type=" + (((_e = filters === null || filters === void 0 ? void 0 : filters.type) === null || _e === void 0 ? void 0 : _e.value) || "0"); - url += "&sort=" + (showLatestNovels ? "4" : ((_f = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _f === void 0 ? void 0 : _f.value) || "6"); - url += "&atmosphere=" + (((_g = filters === null || filters === void 0 ? void 0 : filters.atmosphere) === null || _g === void 0 ? void 0 : _g.value) || "0"); - url += "&adult=" + (((_h = filters === null || filters === void 0 ? void 0 : filters.adult) === null || _h === void 0 ? void 0 : _h.value) || "0"); - if (((_j = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _j === void 0 ? void 0 : _j.value) instanceof Array) { - url += filters.genres.value.map(function (i) { return "&genres[]=" + i; }).join(""); - } - //if (filters?.genres?.value?.exclude instanceof Array) { - // url += filters.genres.value.exclude - // ?.map((i) => "&genres_ex[]=" + i) - // .join(""); - //} - if (((_k = filters === null || filters === void 0 ? void 0 : filters.tags) === null || _k === void 0 ? void 0 : _k.value) instanceof Array) { - url += filters.tags.value.map(function (i) { return "&tags[]=" + i; }).join(""); - } - //if (filters?.tags?.value?.exclude instanceof Array) { - // url += filters.tags.value.exclude - // ?.map((i) => "&tags_ex[]=" + i) - // .join(""); - //} - if (((_l = filters === null || filters === void 0 ? void 0 : filters.fandoms) === null || _l === void 0 ? void 0 : _l.value) instanceof Array) { - url += filters.fandoms.value.map(function (i) { return "&fandoms[]=" + i; }).join(""); - } - // if (filters?.fandoms?.value?.exclude instanceof Array) { - // url += filters.fandoms.value.exclude - // .map((i) => "&fandoms_ex[]=" + i) - // .join(""); - // } - if (((_m = filters === null || filters === void 0 ? void 0 : filters.trash) === null || _m === void 0 ? void 0 : _m.value) instanceof Array) { - url += filters.trash.value.map(function (i) { return "&" + i + "=1"; }).join(""); - } - url += "&Book_page=" + pageNo; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _o.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio('ul[class="search-results"] > li:not([class="ad_type_catalog"])').each(function () { - loadedCheerio(this).find("p > a").text(); - var name = loadedCheerio(this).find("p > a").text(); - var cover = loadedCheerio(this).find("img").attr("src"); - var url = loadedCheerio(this).find("p > a").attr("href"); - if (!name || !url) - return; - novels.push({ name: name, cover: baseUrl + cover, url: baseUrl + url }); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - RulatePlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a, _b; - return __awaiter(this, void 0, void 0, function () { - var baseUrl, novel, result, formData, body, loadedCheerio, genres, chapters; - return __generator(this, function (_c) { - switch (_c.label) { - case 0: - baseUrl = this.site; - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl)]; - case 1: - result = _c.sent(); - if (!result.url.includes("mature?path=")) return [3 /*break*/, 4]; - formData = new FormData(); - formData.append("path", novelUrl); - formData.append("ok", "Да"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(result.url, { - method: "POST", - body: formData, - })]; - case 2: - _c.sent(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl)]; - case 3: - result = _c.sent(); - _c.label = 4; - case 4: return [4 /*yield*/, result.text()]; - case 5: - body = _c.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel.name = loadedCheerio('div[class="container"] > div > div > h1, div.span8:nth-child(1) > h1:nth-child(2)') - .text() - .trim(); - if ((_b = (_a = novel.name) === null || _a === void 0 ? void 0 : _a.includes) === null || _b === void 0 ? void 0 : _b.call(_a, "[")) { - novel.name = novel.name.split("[")[0].trim(); - } - novel.cover = - baseUrl + loadedCheerio('div[class="images"] > div img').attr("src"); - novel.summary = - loadedCheerio("#Info > div:nth-child(3), .book-description").text().trim(); - novel.author = loadedCheerio(".book-stats-icons_author > span:nth-child(2) > a:nth-child(1)").text(); - genres = []; - loadedCheerio("div.span5 > p, .span5 > div:nth-child(2) > p").each(function () { - switch (loadedCheerio(this).find("strong").text()) { - case "Автор:": - novel.author = loadedCheerio(this).find("em > a").text().trim(); - break; - case "Выпуск:": - novel.status = - loadedCheerio(this).find("em").text().trim() === "продолжается" - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - case "Тэги:": - loadedCheerio(this) - .find("em > a") - .each(function () { - genres.push(loadedCheerio(this).text()); - }); - break; - case "Жанры:": - loadedCheerio(this) - .find("em > a") - .each(function () { - genres.push(loadedCheerio(this).text()); - }); - break; - } - }); - if (genres.length) { - novel.genres = genres.reverse().join(","); - } - chapters = []; - loadedCheerio("table > tbody > tr.chapter_row").each(function () { - var _a; - var chapterName = loadedCheerio(this) - .find('td[class="t"] > a') - .text() - .trim(); - var releaseDate = (_a = loadedCheerio(this) - .find("td > span") - .attr("title")) === null || _a === void 0 ? void 0 : _a.trim(); - var chapterUrl = loadedCheerio(this) - .find('td[class="t"] > a') - .attr("href"); - if (!loadedCheerio(this).find('td > span[class="disabled"]').length && - releaseDate) { - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: baseUrl + chapterUrl, - }); - } - }); - novel.chapters = chapters; - return [2 /*return*/, novel]; - } - }); - }); - }; - RulatePlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var baseUrl, result, formData, body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - baseUrl = this.site; - return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl)]; - case 1: - result = _a.sent(); - if (!result.url.includes("mature?path=")) return [3 /*break*/, 4]; - formData = new FormData(); - formData.append("ok", "Да"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(result.url, { - method: "POST", - body: formData, - })]; - case 2: - _a.sent(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl)]; - case 3: - result = _a.sent(); - _a.label = 4; - case 4: return [4 /*yield*/, result.text()]; - case 5: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".content-text img").each(function () { - var _a; - if (!((_a = loadedCheerio(this).attr("src")) === null || _a === void 0 ? void 0 : _a.startsWith("http"))) { - var src = loadedCheerio(this).attr("src"); - loadedCheerio(this).attr("src", baseUrl + src); - } - }); - chapterText = loadedCheerio(".content-text").html(); - return [2 /*return*/, chapterText || ""]; - } - }); - }); - }; - RulatePlugin.prototype.searchNovels = function (searchTerm) { - return __awaiter(this, void 0, void 0, function () { - var novels, result, json; - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "/search/autocomplete?query=" + searchTerm)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.json()]; - case 2: - json = (_a.sent()); - json.forEach(function (novel) { - var name = novel.title_one + " / " + novel.title_two; - if (!novel.url) - return; - novels.push({ - name: name, - cover: _this.site + novel.img, - url: _this.site + novel.url, - }); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - return RulatePlugin; -}()); -var plugin = new RulatePlugin({ "id": "tl.rulate", "sourceSite": "https://tl.rulate.ru", "sourceName": "Rulate", "filters": { "sort": { "label": "Сортировка:", "value": "6", "options": [{ "label": "По рейтингу", "value": "6" }, { "label": "По дате последней активности", "value": "4" }, { "label": "По дате создания", "value": "3" }, { "label": "По кол-ву бесплатных глав", "value": "11" }, { "label": "По кол-ву в закладках", "value": "13" }, { "label": "По кол-ву в избранном", "value": "14" }, { "label": "По кол-ву лайков", "value": "8" }, { "label": "По кол-ву переведённых глав", "value": "7" }, { "label": "По кол-ву рецензий", "value": "12" }, { "label": "По кол-ву страниц", "value": "10" }, { "label": "По названию на языке оригинала", "value": "1" }, { "label": "По названию на языке перевода", "value": "2" }, { "label": "По просмотрам", "value": "5" }, { "label": "По степени готовности", "value": "0" }, { "label": "Случайно", "value": "9" }], "type": filterInputs_1.FilterTypes.Picker }, "cat": { "label": "Из раздела каталога:", "value": "", "options": [{ "label": "Неважно", "value": "0" }, { "label": "Авторские", "value": "35" }, { "label": "Английские", "value": "34" }, { "label": "Китайские", "value": "31" }, { "label": "Комиксы", "value": "29" }, { "label": "Корейские", "value": "33" }, { "label": "Авторские", "value": "18" }, { "label": "Авторские фанфики", "value": "51" }, { "label": "Английские", "value": "28" }, { "label": "Английские", "value": "48" }, { "label": "Аниме", "value": "20" }, { "label": "Аудиокниги", "value": "25" }, { "label": "Блич", "value": "42" }, { "label": "Большие игры", "value": "22" }, { "label": "Ван-Пис", "value": "41" }, { "label": "Визуальные новеллы", "value": "8" }, { "label": "Вьетнамские", "value": "39" }, { "label": "Вьетнамские", "value": "49" }, { "label": "Игры", "value": "3" }, { "label": "Китайские", "value": "5" }, { "label": "Китайские", "value": "45" }, { "label": "Книги", "value": "2" }, { "label": "Книги", "value": "14" }, { "label": "Корейские", "value": "7" }, { "label": "Корейские", "value": "47" }, { "label": "Маленькие игры", "value": "23" }, { "label": "Манга", "value": "16" }, { "label": "Манга", "value": "30" }, { "label": "Марвел", "value": "43" }, { "label": "Машинный перевод", "value": "44" }, { "label": "Наруто", "value": "40" }, { "label": "Новеллы и ранобэ", "value": "12" }, { "label": "Переводы фанфиков", "value": "19" }, { "label": "Психология", "value": "37" }, { "label": "Путешествия", "value": "36" }, { "label": "Статьи", "value": "13" }, { "label": "Субтитры", "value": "15" }, { "label": "Фильмы", "value": "21" }, { "label": "Японские", "value": "6" }, { "label": "Японские", "value": "32" }, { "label": "Японские", "value": "46" }], "type": filterInputs_1.FilterTypes.Picker }, "s_lang": { "label": "Язык оригинала:", "value": "0", "options": [{ "label": "Неважно", "value": "0" }, { "label": "Абхазский", "value": "20" }, { "label": "Аварский", "value": "21" }, { "label": "Азербайджанский", "value": "22" }, { "label": "Аймара", "value": "23" }, { "label": "Акан", "value": "24" }, { "label": "Албанский", "value": "25" }, { "label": "Амхарский", "value": "26" }, { "label": "Английский", "value": "2" }, { "label": "Арабский", "value": "27" }, { "label": "Арагонский", "value": "28" }, { "label": "Арберешский", "value": "29" }, { "label": "Армянский", "value": "30" }, { "label": "Ассамский", "value": "31" }, { "label": "Астурийский", "value": "32" }, { "label": "Афарский", "value": "33" }, { "label": "Африкаанс", "value": "34" }, { "label": "Ацтекский", "value": "35" }, { "label": "Баварский", "value": "36" }, { "label": "Бамбарийский", "value": "37" }, { "label": "Баскский", "value": "39" }, { "label": "Башкирский", "value": "40" }, { "label": "Белорусский", "value": "10" }, { "label": "Бенгальский", "value": "41" }, { "label": "Бирманский", "value": "42" }, { "label": "Бислама", "value": "43" }, { "label": "Бихари", "value": "44" }, { "label": "Болгарский", "value": "45" }, { "label": "Боснийский", "value": "234" }, { "label": "Бретонский", "value": "47" }, { "label": "Валенсийский", "value": "48" }, { "label": "Валлийский", "value": "49" }, { "label": "Валлонский", "value": "50" }, { "label": "Венгерский", "value": "51" }, { "label": "Венда", "value": "52" }, { "label": "Венетский", "value": "53" }, { "label": "Верхнелужицкий", "value": "54" }, { "label": "Волоф", "value": "55" }, { "label": "Вьетнамский", "value": "57" }, { "label": "Гавайский", "value": "58" }, { "label": "Гаитянский", "value": "59" }, { "label": "Галисийский", "value": "60" }, { "label": "Гереро", "value": "61" }, { "label": "Голландский", "value": "62" }, { "label": "Греческий", "value": "63" }, { "label": "Грузинский", "value": "64" }, { "label": "Гуарани", "value": "65" }, { "label": "Гуджарати", "value": "66" }, { "label": "Датский", "value": "19" }, { "label": "Дзонг-кэ", "value": "68" }, { "label": "Древнегреческий", "value": "69" }, { "label": "Западно-фламандский", "value": "70" }, { "label": "Зулу", "value": "71" }, { "label": "Иврит", "value": "15" }, { "label": "Игбо", "value": "72" }, { "label": "Идиш", "value": "73" }, { "label": "Илоко", "value": "74" }, { "label": "Индонезийский", "value": "75" }, { "label": "Интерлингва", "value": "76" }, { "label": "Инуктитут", "value": "77" }, { "label": "Инупиак", "value": "78" }, { "label": "Ирландский", "value": "79" }, { "label": "Исландский", "value": "80" }, { "label": "Испанский", "value": "6" }, { "label": "Итальянский", "value": "5" }, { "label": "Йоруба", "value": "81" }, { "label": "Кабильский", "value": "82" }, { "label": "Казахский", "value": "83" }, { "label": "Калмыцкий", "value": "235" }, { "label": "Каннада", "value": "84" }, { "label": "Кантонский юэ", "value": "85" }, { "label": "Канури", "value": "86" }, { "label": "Каталанский", "value": "87" }, { "label": "Кашмири", "value": "88" }, { "label": "Кечуа", "value": "90" }, { "label": "Кикуйю", "value": "91" }, { "label": "Киньяруанда", "value": "92" }, { "label": "Киргизский", "value": "93" }, { "label": "Китайский", "value": "7" }, { "label": "Клингонский", "value": "94" }, { "label": "Коми", "value": "95" }, { "label": "Конго", "value": "96" }, { "label": "Конкани", "value": "97" }, { "label": "Корейский", "value": "98" }, { "label": "Корсиканский", "value": "100" }, { "label": "Котава", "value": "101" }, { "label": "Кри", "value": "102" }, { "label": "Курдский", "value": "105" }, { "label": "Кхмерский", "value": "107" }, { "label": "Лакский", "value": "233" }, { "label": "Лаосский", "value": "109" }, { "label": "Латынь", "value": "110" }, { "label": "Латышский", "value": "111" }, { "label": "Лезгинский", "value": "112" }, { "label": "Лимбургский", "value": "113" }, { "label": "Лингала", "value": "114" }, { "label": "Литовский", "value": "115" }, { "label": "Луба", "value": "118" }, { "label": "Луганда", "value": "119" }, { "label": "Люксембургский", "value": "120" }, { "label": "Македонский", "value": "121" }, { "label": "Малагасийский", "value": "122" }, { "label": "Малайский", "value": "123" }, { "label": "Мальдивский", "value": "125" }, { "label": "Мальтийский", "value": "126" }, { "label": "Маори", "value": "127" }, { "label": "Марийский", "value": "232" }, { "label": "Маршалльский", "value": "130" }, { "label": "Молдавский", "value": "11" }, { "label": "Монгольский", "value": "133" }, { "label": "Мяо (хмонг)", "value": "209" }, { "label": "Навахо", "value": "135" }, { "label": "Неаполитанский", "value": "139" }, { "label": "Немецкий", "value": "3" }, { "label": "Непальский", "value": "140" }, { "label": "Норвежский", "value": "18" }, { "label": "Осетинский", "value": "147" }, { "label": "Пакистанский", "value": "230" }, { "label": "Пенджабский", "value": "149" }, { "label": "Персидский", "value": "151" }, { "label": "Польский", "value": "152" }, { "label": "Португальский", "value": "153" }, { "label": "Румынский", "value": "158" }, { "label": "Русский", "value": "1" }, { "label": "Санскрит", "value": "163" }, { "label": "Сардинский", "value": "164" }, { "label": "Сербохорватский", "value": "166" }, { "label": "Словацкий", "value": "170" }, { "label": "Словенский", "value": "171" }, { "label": "Сомали", "value": "172" }, { "label": "Старотурецкий", "value": "174" }, { "label": "Суахили", "value": "175" }, { "label": "Сунданский", "value": "176" }, { "label": "Тагальский", "value": "177" }, { "label": "Таджикский", "value": "178" }, { "label": "Таитянский", "value": "179" }, { "label": "Тайваньский", "value": "180" }, { "label": "Тайский", "value": "181" }, { "label": "Тамильский", "value": "182" }, { "label": "Татарский", "value": "12" }, { "label": "Телугу", "value": "184" }, { "label": "Тибетский", "value": "185" }, { "label": "Тигринья", "value": "186" }, { "label": "Ток-писин", "value": "187" }, { "label": "Токи пона", "value": "188" }, { "label": "Тонганский", "value": "189" }, { "label": "Тсвана", "value": "191" }, { "label": "Тсонга", "value": "192" }, { "label": "Турецкий", "value": "193" }, { "label": "Туркменский", "value": "194" }, { "label": "Удмуртский", "value": "196" }, { "label": "Узбекский", "value": "197" }, { "label": "Уйгурский", "value": "198" }, { "label": "Украинский", "value": "9" }, { "label": "Фиджийский", "value": "201" }, { "label": "Филиппинский", "value": "229" }, { "label": "Финский", "value": "17" }, { "label": "Французский", "value": "4" }, { "label": "Фризский", "value": "203" }, { "label": "Фулах", "value": "204" }, { "label": "Хауса", "value": "206" }, { "label": "Хинди", "value": "207" }, { "label": "Хири-моту", "value": "208" }, { "label": "Чеченский", "value": "213" }, { "label": "Чешский", "value": "13" }, { "label": "Чувашский", "value": "217" }, { "label": "Шведский", "value": "16" }, { "label": "Швейцарский немецкий", "value": "218" }, { "label": "Шона", "value": "219" }, { "label": "Шотландский", "value": "67" }, { "label": "Эве", "value": "221" }, { "label": "Эскимосский", "value": "223" }, { "label": "Эсперанто", "value": "14" }, { "label": "Эстонский", "value": "224" }, { "label": "Южно-корейский", "value": "231" }, { "label": "Юкатекский", "value": "225" }, { "label": "Яванский", "value": "227" }, { "label": "Японский", "value": "8" }], "type": filterInputs_1.FilterTypes.Picker }, "t_lang": { "label": "Язык перевода:", "value": "0", "options": [{ "label": "Неважно", "value": "0" }, { "label": "Абхазский", "value": "20" }, { "label": "Аварский", "value": "21" }, { "label": "Азербайджанский", "value": "22" }, { "label": "Аймара", "value": "23" }, { "label": "Акан", "value": "24" }, { "label": "Албанский", "value": "25" }, { "label": "Амхарский", "value": "26" }, { "label": "Английский", "value": "2" }, { "label": "Арабский", "value": "27" }, { "label": "Арагонский", "value": "28" }, { "label": "Арберешский", "value": "29" }, { "label": "Армянский", "value": "30" }, { "label": "Ассамский", "value": "31" }, { "label": "Астурийский", "value": "32" }, { "label": "Афарский", "value": "33" }, { "label": "Африкаанс", "value": "34" }, { "label": "Ацтекский", "value": "35" }, { "label": "Баварский", "value": "36" }, { "label": "Бамбарийский", "value": "37" }, { "label": "Баскский", "value": "39" }, { "label": "Башкирский", "value": "40" }, { "label": "Белорусский", "value": "10" }, { "label": "Бенгальский", "value": "41" }, { "label": "Бирманский", "value": "42" }, { "label": "Бислама", "value": "43" }, { "label": "Бихари", "value": "44" }, { "label": "Болгарский", "value": "45" }, { "label": "Боснийский", "value": "234" }, { "label": "Бретонский", "value": "47" }, { "label": "Валенсийский", "value": "48" }, { "label": "Валлийский", "value": "49" }, { "label": "Валлонский", "value": "50" }, { "label": "Венгерский", "value": "51" }, { "label": "Венда", "value": "52" }, { "label": "Венетский", "value": "53" }, { "label": "Верхнелужицкий", "value": "54" }, { "label": "Волоф", "value": "55" }, { "label": "Вьетнамский", "value": "57" }, { "label": "Гавайский", "value": "58" }, { "label": "Гаитянский", "value": "59" }, { "label": "Галисийский", "value": "60" }, { "label": "Гереро", "value": "61" }, { "label": "Голландский", "value": "62" }, { "label": "Греческий", "value": "63" }, { "label": "Грузинский", "value": "64" }, { "label": "Гуарани", "value": "65" }, { "label": "Гуджарати", "value": "66" }, { "label": "Датский", "value": "19" }, { "label": "Дзонг-кэ", "value": "68" }, { "label": "Древнегреческий", "value": "69" }, { "label": "Западно-фламандский", "value": "70" }, { "label": "Зулу", "value": "71" }, { "label": "Иврит", "value": "15" }, { "label": "Игбо", "value": "72" }, { "label": "Идиш", "value": "73" }, { "label": "Илоко", "value": "74" }, { "label": "Индонезийский", "value": "75" }, { "label": "Интерлингва", "value": "76" }, { "label": "Инуктитут", "value": "77" }, { "label": "Инупиак", "value": "78" }, { "label": "Ирландский", "value": "79" }, { "label": "Исландский", "value": "80" }, { "label": "Испанский", "value": "6" }, { "label": "Итальянский", "value": "5" }, { "label": "Йоруба", "value": "81" }, { "label": "Кабильский", "value": "82" }, { "label": "Казахский", "value": "83" }, { "label": "Калмыцкий", "value": "235" }, { "label": "Каннада", "value": "84" }, { "label": "Кантонский юэ", "value": "85" }, { "label": "Канури", "value": "86" }, { "label": "Каталанский", "value": "87" }, { "label": "Кашмири", "value": "88" }, { "label": "Кечуа", "value": "90" }, { "label": "Кикуйю", "value": "91" }, { "label": "Киньяруанда", "value": "92" }, { "label": "Киргизский", "value": "93" }, { "label": "Китайский", "value": "7" }, { "label": "Клингонский", "value": "94" }, { "label": "Коми", "value": "95" }, { "label": "Конго", "value": "96" }, { "label": "Конкани", "value": "97" }, { "label": "Корейский", "value": "98" }, { "label": "Корсиканский", "value": "100" }, { "label": "Котава", "value": "101" }, { "label": "Кри", "value": "102" }, { "label": "Курдский", "value": "105" }, { "label": "Кхмерский", "value": "107" }, { "label": "Лакский", "value": "233" }, { "label": "Лаосский", "value": "109" }, { "label": "Латынь", "value": "110" }, { "label": "Латышский", "value": "111" }, { "label": "Лезгинский", "value": "112" }, { "label": "Лимбургский", "value": "113" }, { "label": "Лингала", "value": "114" }, { "label": "Литовский", "value": "115" }, { "label": "Луба", "value": "118" }, { "label": "Луганда", "value": "119" }, { "label": "Люксембургский", "value": "120" }, { "label": "Македонский", "value": "121" }, { "label": "Малагасийский", "value": "122" }, { "label": "Малайский", "value": "123" }, { "label": "Мальдивский", "value": "125" }, { "label": "Мальтийский", "value": "126" }, { "label": "Маори", "value": "127" }, { "label": "Марийский", "value": "232" }, { "label": "Маршалльский", "value": "130" }, { "label": "Молдавский", "value": "11" }, { "label": "Монгольский", "value": "133" }, { "label": "Мяо (хмонг)", "value": "209" }, { "label": "Навахо", "value": "135" }, { "label": "Неаполитанский", "value": "139" }, { "label": "Немецкий", "value": "3" }, { "label": "Непальский", "value": "140" }, { "label": "Норвежский", "value": "18" }, { "label": "Осетинский", "value": "147" }, { "label": "Пакистанский", "value": "230" }, { "label": "Пенджабский", "value": "149" }, { "label": "Персидский", "value": "151" }, { "label": "Польский", "value": "152" }, { "label": "Португальский", "value": "153" }, { "label": "Румынский", "value": "158" }, { "label": "Русский", "value": "1" }, { "label": "Санскрит", "value": "163" }, { "label": "Сардинский", "value": "164" }, { "label": "Сербохорватский", "value": "166" }, { "label": "Словацкий", "value": "170" }, { "label": "Словенский", "value": "171" }, { "label": "Сомали", "value": "172" }, { "label": "Старотурецкий", "value": "174" }, { "label": "Суахили", "value": "175" }, { "label": "Сунданский", "value": "176" }, { "label": "Тагальский", "value": "177" }, { "label": "Таджикский", "value": "178" }, { "label": "Таитянский", "value": "179" }, { "label": "Тайваньский", "value": "180" }, { "label": "Тайский", "value": "181" }, { "label": "Тамильский", "value": "182" }, { "label": "Татарский", "value": "12" }, { "label": "Телугу", "value": "184" }, { "label": "Тибетский", "value": "185" }, { "label": "Тигринья", "value": "186" }, { "label": "Ток-писин", "value": "187" }, { "label": "Токи пона", "value": "188" }, { "label": "Тонганский", "value": "189" }, { "label": "Тсвана", "value": "191" }, { "label": "Тсонга", "value": "192" }, { "label": "Турецкий", "value": "193" }, { "label": "Туркменский", "value": "194" }, { "label": "Удмуртский", "value": "196" }, { "label": "Узбекский", "value": "197" }, { "label": "Уйгурский", "value": "198" }, { "label": "Украинский", "value": "9" }, { "label": "Фиджийский", "value": "201" }, { "label": "Филиппинский", "value": "229" }, { "label": "Финский", "value": "17" }, { "label": "Французский", "value": "4" }, { "label": "Фризский", "value": "203" }, { "label": "Фулах", "value": "204" }, { "label": "Хауса", "value": "206" }, { "label": "Хинди", "value": "207" }, { "label": "Хири-моту", "value": "208" }, { "label": "Чеченский", "value": "213" }, { "label": "Чешский", "value": "13" }, { "label": "Чувашский", "value": "217" }, { "label": "Шведский", "value": "16" }, { "label": "Швейцарский немецкий", "value": "218" }, { "label": "Шона", "value": "219" }, { "label": "Шотландский", "value": "67" }, { "label": "Эве", "value": "221" }, { "label": "Эскимосский", "value": "223" }, { "label": "Эсперанто", "value": "14" }, { "label": "Эстонский", "value": "224" }, { "label": "Южно-корейский", "value": "231" }, { "label": "Юкатекский", "value": "225" }, { "label": "Яванский", "value": "227" }, { "label": "Японский", "value": "8" }], "type": filterInputs_1.FilterTypes.Picker }, "type": { "label": "Тип:", "value": "0", "options": [{ "label": "Неважно", "value": "0" }, { "label": "Только авторские", "value": "2" }, { "label": "Только переводы", "value": "1" }], "type": filterInputs_1.FilterTypes.Picker }, "trash": { "label": "Другое:", "value": [], "options": [{ "label": "Без фэндомов", "value": "fandoms_ex_all" }, { "label": "Готовые на 100%", "value": "ready" }, { "label": "Доступные для перевода", "value": "tr" }, { "label": "Доступные для скачивания", "value": "gen" }, { "label": "Завершённые проекты", "value": "wealth" }, { "label": "Распродажа", "value": "discount" }, { "label": "Только онгоинги", "value": "ongoings" }, { "label": "Убрать машинный", "value": "remove_machinelate" }], "type": filterInputs_1.FilterTypes.CheckboxGroup }, "atmosphere": { "label": "Атмосфера:", "value": "0", "options": [{ "label": "Неважно", "value": "0" }, { "label": "Позитивная", "value": "1" }, { "label": "Dark", "value": "2" }], "type": filterInputs_1.FilterTypes.Picker }, "adult": { "label": "Возрастные ограничения:", "value": "0", "options": [{ "label": "Все", "value": "0" }, { "label": "Только 18+", "value": "2" }, { "label": "Убрать 18+", "value": "1" }], "type": filterInputs_1.FilterTypes.Picker }, "genres": { "label": "Жанры: все жанры любой жанр", "value": [], "options": [{ "label": "18+", "value": "52" }, { "label": "Арт", "value": "1" }, { "label": "Боевик", "value": "2" }, { "label": "Боевые искусства", "value": "3" }, { "label": "Гаремник", "value": "5" }, { "label": "Героическое фэнтези", "value": "7" }, { "label": "Детектив", "value": "8" }, { "label": "Дзёсэй", "value": "9" }, { "label": "Додзинси", "value": "10" }, { "label": "Драма", "value": "11" }, { "label": "История", "value": "13" }, { "label": "Киберпанк", "value": "46" }, { "label": "Кодомо", "value": "14" }, { "label": "Комедия", "value": "15" }, { "label": "Литрпг", "value": "48" }, { "label": "Махо-сёдзё", "value": "16" }, { "label": "Мелодрама", "value": "49" }, { "label": "Меха", "value": "17" }, { "label": "Мистика", "value": "18" }, { "label": "Научная фантастика", "value": "19" }, { "label": "Повседневность", "value": "20" }, { "label": "Постапокалиптика", "value": "21" }, { "label": "Приключения", "value": "22" }, { "label": "Психология", "value": "23" }, { "label": "Романтика", "value": "24" }, { "label": "Самурайский боевик", "value": "25" }, { "label": "Сверхъестественное", "value": "26" }, { "label": "Сёдзё", "value": "27" }, { "label": "Сёнэн", "value": "29" }, { "label": "Смат", "value": "45" }, { "label": "Спорт", "value": "31" }, { "label": "Сэйнэн", "value": "32" }, { "label": "Сюаньхуа", "value": "44" }, { "label": "Сюаньхуань", "value": "47" }, { "label": "Сянься (XianXia)", "value": "42" }, { "label": "Трагедия", "value": "33" }, { "label": "Триллер", "value": "34" }, { "label": "Ужасы", "value": "35" }, { "label": "Уся (wuxia)", "value": "41" }, { "label": "Фантастика", "value": "36" }, { "label": "Фанфик", "value": "50" }, { "label": "Фэнтези", "value": "37" }, { "label": "Школа", "value": "38" }, { "label": "Этти", "value": "39" }], "type": filterInputs_1.FilterTypes.CheckboxGroup }, "tags": { "label": "Тэги: все тэги любой тэг", "value": [], "options": [{ "label": "12+", "value": "3316" }, { "label": "16+", "value": "83" }, { "label": "Абсурд", "value": "7973" }, { "label": "Авантюристы", "value": "222" }, { "label": "Автомат", "value": "5272" }, { "label": "Авторский мир", "value": "1062" }, { "label": "Агрессивные персонажи", "value": "3249" }, { "label": "Ад", "value": "2623" }, { "label": "Ад и рай", "value": "817" }, { "label": "Адам дженсен", "value": "1649" }, { "label": "Адаптация произведения", "value": "192" }, { "label": "Адвокат", "value": "6340" }, { "label": "Адекватные главные герои", "value": "1953" }, { "label": "Азартные игры", "value": "5301" }, { "label": "Азгард", "value": "3494" }, { "label": "Азула", "value": "5550" }, { "label": "Аид", "value": "7641" }, { "label": "Айдолы", "value": "4081" }, { "label": "Академия", "value": "316" }, { "label": "Акамэ", "value": "5059" }, { "label": "Аквакинез", "value": "5952" }, { "label": "Акира", "value": "2639" }, { "label": "Акнология", "value": "4634" }, { "label": "Актерское мастерство", "value": "4798" }, { "label": "Актёры", "value": "7506" }, { "label": "Активные герои", "value": "6376" }, { "label": "Акутагава рюноске", "value": "4113" }, { "label": "Аладдин", "value": "6489" }, { "label": "Алая ведьма", "value": "4767" }, { "label": "Алиса", "value": "4761" }, { "label": "Алкоголь", "value": "5508" }, { "label": "Аллегория", "value": "271" }, { "label": "Алукард", "value": "4914" }, { "label": "Алхимики", "value": "1164" }, { "label": "Алхимия", "value": "1473" }, { "label": "Алчность", "value": "6897" }, { "label": "Альбус дамблдор", "value": "5784" }, { "label": "Альтернативное развитие событий", "value": "5330" }, { "label": "Альянсы", "value": "328" }, { "label": "Амбициозный главный герой", "value": "3751" }, { "label": "Америка", "value": "4082" }, { "label": "Амнезия", "value": "2207" }, { "label": "Аморальный герой", "value": "18" }, { "label": "Анбу", "value": "8129" }, { "label": "Ангелы", "value": "857" }, { "label": "Ангелы и демоны", "value": "1327" }, { "label": "Ангст", "value": "4638" }, { "label": "Андроиды", "value": "1993" }, { "label": "Анимализм", "value": "5249" }, { "label": "Аниме", "value": "1294" }, { "label": "Анко митараши", "value": "5768" }, { "label": "Антагонист", "value": "2144" }, { "label": "Антигерой", "value": "7725" }, { "label": "Антиквариат", "value": "3552" }, { "label": "Антимаг", "value": "1348" }, { "label": "Антиутопия", "value": "662" }, { "label": "Апокалипсис", "value": "1498" }, { "label": "Аристократия", "value": "371" }, { "label": "Аристократы", "value": "7338" }, { "label": "Армия", "value": "1723" }, { "label": "Артас", "value": "6700" }, { "label": "Артефакты", "value": "2296" }, { "label": "Археология", "value": "6523" }, { "label": "Асгард", "value": "3635" }, { "label": "Ассасин", "value": "1415" }, { "label": "Асуна", "value": "5044" }, { "label": "Аугментации", "value": "7751" }, { "label": "Ацуши накаджима", "value": "4109" }, { "label": "Аянокоджи киетака", "value": "6862" }, { "label": "Бандиты", "value": "2188" }, { "label": "Басейн", "value": "6847" }, { "label": "Баскетбол", "value": "7933" }, { "label": "Бастарды", "value": "76" }, { "label": "Бедность", "value": "1207" }, { "label": "Без культивации", "value": "668" }, { "label": "Без любовной линий", "value": "2225" }, { "label": "Без перерождений", "value": "262" }, { "label": "Без попаданца", "value": "8065" }, { "label": "Без системы", "value": "747" }, { "label": "Без юмора", "value": "763" }, { "label": "Бездна", "value": "1026" }, { "label": "Безжалостное домашнее животное", "value": "1245" }, { "label": "Безжалостные персонажи", "value": "2986" }, { "label": "Беззаботные персонажи", "value": "3123" }, { "label": "Безответная любовь", "value": "7815" }, { "label": "Безработный", "value": "2202" }, { "label": "Безумие", "value": "37" }, { "label": "Безумные персонажи", "value": "2049" }, { "label": "Бейсбол", "value": "7623" }, { "label": "Беременность", "value": "2122" }, { "label": "Бесконечный поток", "value": "7556" }, { "label": "Беспечные персонажи", "value": "742" }, { "label": "Бесплатно", "value": "8403" }, { "label": "Бессмертные персонажи", "value": "566" }, { "label": "Бесстрашные персонажи", "value": "6921" }, { "label": "Бесстыдные персонажи", "value": "1257" }, { "label": "Бесстыдный главный герой", "value": "8190" }, { "label": "Библиотека", "value": "4210" }, { "label": "Библия", "value": "488" }, { "label": "Бизнес", "value": "704" }, { "label": "Биология", "value": "2220" }, { "label": "Биомехи", "value": "1968" }, { "label": "Биседзе", "value": "777" }, { "label": "Битва за веру", "value": "721" }, { "label": "Битва за трон", "value": "7211" }, { "label": "Битва королевств", "value": "1151" }, { "label": "Битва рас", "value": "6989" }, { "label": "Битвы", "value": "1740" }, { "label": "Благородные персонажи", "value": "2201" }, { "label": "Близнецы", "value": "2931" }, { "label": "Богатство", "value": "6522" }, { "label": "Богатые персонажи", "value": "520" }, { "label": "Боги", "value": "173" }, { "label": "Богини", "value": "30" }, { "label": "Богиня", "value": "8324" }, { "label": "Богоубийца", "value": "1253" }, { "label": "Богохульство", "value": "95" }, { "label": "Боевая академия", "value": "2108" }, { "label": "Большая грудь", "value": "4717" }, { "label": "Борос", "value": "6533" }, { "label": "Борьба", "value": "1925" }, { "label": "Борьба за власть", "value": "8072" }, { "label": "Босс и подчиненный", "value": "7157" }, { "label": "Бояръ", "value": "2307" }, { "label": "Брак", "value": "1558" }, { "label": "Брак по расчету", "value": "1389" }, { "label": "Брат и сестра", "value": "615" }, { "label": "Братский комплекс", "value": "2321" }, { "label": "Броманс", "value": "1103" }, { "label": "Брошенные дети", "value": "2846" }, { "label": "Буддизм", "value": "1871" }, { "label": "Будущее", "value": "1820" }, { "label": "Бывший муж", "value": "8080" }, { "label": "Быстрое развитие", "value": "1443" }, { "label": "Бэтгерл", "value": "2584" }, { "label": "Бэтмен", "value": "4668" }, { "label": "В первый раз", "value": "6212" }, { "label": "В этот же мир", "value": "49" }, { "label": "Ваканда", "value": "8331" }, { "label": "Валькирии", "value": "4047" }, { "label": "Вампиры", "value": "2206" }, { "label": "Веб камера", "value": "5664" }, { "label": "Веб новелла", "value": "2349" }, { "label": "Ведьмак", "value": "843" }, { "label": "Ведьмы", "value": "643" }, { "label": "Везучие персонажи", "value": "1879" }, { "label": "Веном", "value": "3994" }, { "label": "Вестерн", "value": "2131" }, { "label": "Вестерос", "value": "8171" }, { "label": "Взросление", "value": "624" }, { "label": "Взрослый главный герой", "value": "2416" }, { "label": "Видео игры", "value": "2630" }, { "label": "Викинги", "value": "267" }, { "label": "Вино", "value": "6972" }, { "label": "Вирт", "value": "6213" }, { "label": "Виртуальная реальность", "value": "325" }, { "label": "Вирусы", "value": "3327" }, { "label": "Владыка демонов", "value": "555" }, { "label": "Власть", "value": "756" }, { "label": "Влюбленность", "value": "6132" }, { "label": "Внешний вид отличается от личности", "value": "1938" }, { "label": "Внучка", "value": "8399" }, { "label": "Военные", "value": "1096" }, { "label": "Возрождение", "value": "1160" }, { "label": "Воины", "value": "287" }, { "label": "Война", "value": "443" }, { "label": "Войны", "value": "2431" }, { "label": "Воландеморт", "value": "4278" }, { "label": "Волейбол", "value": "6415" }, { "label": "Волки", "value": "1166" }, { "label": "Волшебники", "value": "122" }, { "label": "Волшебные существа", "value": "1689" }, { "label": "Волшебство", "value": "719" }, { "label": "Вор", "value": "1399" }, { "label": "Воровка", "value": "6948" }, { "label": "Ворон", "value": "848" }, { "label": "Воскрешение", "value": "6915" }, { "label": "Воспоминания из другого мира", "value": "1366" }, { "label": "Воспоминания из прошлого", "value": "1372" }, { "label": "Воссоединие семьи", "value": "8130" }, { "label": "Восхождение", "value": "380" }, { "label": "Враги становятся любовниками", "value": "978" }, { "label": "Врата", "value": "40" }, { "label": "Врата в другой мир", "value": "1957" }, { "label": "Врач", "value": "1243" }, { "label": "Временная петля", "value": "2852" }, { "label": "Врмморпг", "value": "2043" }, { "label": "Все дозволено", "value": "96" }, { "label": "Всемогущий главный герой", "value": "1414" }, { "label": "Второй шанс", "value": "2372" }, { "label": "Вуайеризм", "value": "2498" }, { "label": "Выживание", "value": "501" }, { "label": "Вымышленные существа", "value": "3466" }, { "label": "Вынужденный брак", "value": "7705" }, { "label": "Высокие технологии", "value": "653" }, { "label": "Высокомерные персонажи", "value": "3250" }, { "label": "Галустян", "value": "5199" }, { "label": "Гангстеры", "value": "7704" }, { "label": "Гарем", "value": "440" }, { "label": "Гарри поттер", "value": "226" }, { "label": "Геймеры", "value": "2130" }, { "label": "Генетические модификации", "value": "1750" }, { "label": "Гениальный главный герой", "value": "1500" }, { "label": "Гений", "value": "1650" }, { "label": "Гермиона грейнджер", "value": "4280" }, { "label": "Герои", "value": "185" }, { "label": "Гигаполис", "value": "8393" }, { "label": "Гильгамеш", "value": "6031" }, { "label": "Гильдии", "value": "900" }, { "label": "Гильдия авантюристов", "value": "1858" }, { "label": "Гинтама", "value": "4544" }, { "label": "Гипноз", "value": "358" }, { "label": "Главная героиня влюбляется первой", "value": "973" }, { "label": "Главный герой бог", "value": "164" }, { "label": "Главный герой влюбляется первым", "value": "3629" }, { "label": "Главный герой выживальщик", "value": "120" }, { "label": "Главный герой гонг", "value": "7877" }, { "label": "Главный герой девушка", "value": "257" }, { "label": "Главный герой демон", "value": "136" }, { "label": "Главный герой женщина", "value": "7329" }, { "label": "Главный герой жестокий", "value": "1553" }, { "label": "Главный герой извращенец", "value": "94" }, { "label": "Главный герой имба", "value": "2421" }, { "label": "Главный герой киборг", "value": "7780" }, { "label": "Главный герой монстр", "value": "869" }, { "label": "Главный герой мужчина", "value": "1997" }, { "label": "Главный герой на стороне сил зла", "value": "1514" }, { "label": "Главный герой не адекватный", "value": "5" }, { "label": "Главный герой не психопат", "value": "7804" }, { "label": "Главный герой не человек", "value": "2172" }, { "label": "Главный герой не эмоционален", "value": "1150" }, { "label": "Главный герой подросток", "value": "2215" }, { "label": "Главный герой позитивный", "value": "7787" }, { "label": "Главный герой психопат", "value": "7803" }, { "label": "Главный герой ребенок", "value": "2347" }, { "label": "Главный герой русский", "value": "2417" }, { "label": "Главный герой сильный с самого начала", "value": "88" }, { "label": "Главный герой скрывает свою силу", "value": "1059" }, { "label": "Главный герой эгоист", "value": "8326" }, { "label": "Гномы", "value": "1870" }, { "label": "Гоблины", "value": "2029" }, { "label": "Годзилла", "value": "6990" }, { "label": "Големы", "value": "1690" }, { "label": "Голливуд", "value": "7754" }, { "label": "Головоломка", "value": "1697" }, { "label": "Горничные", "value": "8091" }, { "label": "Гробница", "value": "388" }, { "label": "Дазай осаму", "value": "4112" }, { "label": "Даосизм", "value": "258" }, { "label": "Дарк соулс", "value": "6057" }, { "label": "Дарт вейдер", "value": "6826" }, { "label": "Дафна гринграсс", "value": "5192" }, { "label": "Дворяне", "value": "7204" }, { "label": "Девушки", "value": "7668" }, { "label": "Девушки монстры", "value": "2231" }, { "label": "Дедушка и внучка", "value": "8400" }, { "label": "Дейви джонс", "value": "8061" }, { "label": "Действие", "value": "1425" }, { "label": "Демон лорд", "value": "153" }, { "label": "Демонология", "value": "2024" }, { "label": "Демоны", "value": "1406" }, { "label": "Дети", "value": "580" }, { "label": "Джарвис", "value": "933" }, { "label": "Джедай", "value": "4442" }, { "label": "Джин", "value": "4024" }, { "label": "Джокер", "value": "3351" }, { "label": "Джон сноу", "value": "7412" }, { "label": "Джоффри баратеон", "value": "3936" }, { "label": "Дзесэй", "value": "678" }, { "label": "Дин винчестер", "value": "6953" }, { "label": "Династии", "value": "2982" }, { "label": "Динозавры", "value": "3666" }, { "label": "Директор", "value": "1417" }, { "label": "Для девушек", "value": "1441" }, { "label": "Дневник", "value": "298" }, { "label": "Добби", "value": "6762" }, { "label": "Добрый мир", "value": "1685" }, { "label": "Договоры с богами", "value": "2152" }, { "label": "Договоры с демонами", "value": "1922" }, { "label": "Доктор", "value": "1991" }, { "label": "Доктор стрэндж", "value": "7634" }, { "label": "Доминирование", "value": "2054" }, { "label": "Дота", "value": "6965" }, { "label": "Доудзюцу", "value": "7133" }, { "label": "Дочь", "value": "3291" }, { "label": "Драко малфой", "value": "46" }, { "label": "Драконы", "value": "282" }, { "label": "Драконы оборотни", "value": "8082" }, { "label": "Древние времена", "value": "7781" }, { "label": "Древний египет", "value": "7614" }, { "label": "Древний китай", "value": "473" }, { "label": "Древний мир", "value": "4" }, { "label": "Другая вселенная", "value": "39" }, { "label": "Другие планеты", "value": "2371" }, { "label": "Другой мир", "value": "2248" }, { "label": "Дружба", "value": "1903" }, { "label": "Друзья детства", "value": "1153" }, { "label": "Духи", "value": "114" }, { "label": "Духовные силы", "value": "1955" }, { "label": "Души", "value": "1212" }, { "label": "Дьявол", "value": "1094" }, { "label": "Дьявольские фрукты", "value": "1564" }, { "label": "Дэдпул", "value": "4399" }, { "label": "Евнух", "value": "6293" }, { "label": "Европейская атмосфера", "value": "5837" }, { "label": "Египет", "value": "528" }, { "label": "Еда", "value": "2056" }, { "label": "Единороги", "value": "437" }, { "label": "Екаи", "value": "655" }, { "label": "Жалкий главный герой", "value": "97" }, { "label": "Жена", "value": "5729" }, { "label": "Женское доминирование", "value": "4622" }, { "label": "Женщина в теле мужчины", "value": "2748" }, { "label": "Женщина кошка", "value": "7513" }, { "label": "Жестокие персонажи", "value": "3153" }, { "label": "Жестокий мир", "value": "1532" }, { "label": "Жестокость", "value": "7880" }, { "label": "Животные", "value": "7488" }, { "label": "Животные компаньоны", "value": "2061" }, { "label": "Жизнь в небесах", "value": "8426" }, { "label": "Жизнь и смерть", "value": "2014" }, { "label": "Жнец", "value": "6288" }, { "label": "Жойен рид", "value": "3926" }, { "label": "Заботливый главный герой", "value": "338" }, { "label": "Закалка тела", "value": "148" }, { "label": "Заклинания", "value": "558" }, { "label": "Заключенные", "value": "3052" }, { "label": "Занпакто", "value": "1102" }, { "label": "Запретная любовь", "value": "8033" }, { "label": "Запутанный сюжет", "value": "1041" }, { "label": "Захват мира", "value": "315" }, { "label": "Зачарованные", "value": "4169" }, { "label": "Звери", "value": "1638" }, { "label": "Зверодевочки", "value": "2006" }, { "label": "Зверолюди", "value": "1018" }, { "label": "Земля", "value": "82" }, { "label": "Злая организация", "value": "7768" }, { "label": "Зло", "value": "1512" }, { "label": "Злодей", "value": "1060" }, { "label": "Злодейка", "value": "2376" }, { "label": "Злой главный герой", "value": "616" }, { "label": "Злые боги", "value": "7109" }, { "label": "Злые персонажи", "value": "3243" }, { "label": "Змей", "value": "5721" }, { "label": "Знаменитости", "value": "1341" }, { "label": "Знание медицины", "value": "1411" }, { "label": "Золушка", "value": "2980" }, { "label": "Зомби", "value": "1743" }, { "label": "Зомби апокалипсис", "value": "912" }, { "label": "Зона 51", "value": "3051" }, { "label": "Зооморфы", "value": "375" }, { "label": "Зорро", "value": "6736" }, { "label": "Зрелые женщины", "value": "1458" }, { "label": "Игра", "value": "663" }, { "label": "Игра на выживание", "value": "2182" }, { "label": "Игровая система", "value": "384" }, { "label": "Игровые элементы", "value": "720" }, { "label": "Избранный", "value": "8425" }, { "label": "Извращения", "value": "651" }, { "label": "Измена", "value": "1874" }, { "label": "Изменение характера", "value": "1113" }, { "label": "Изменения внешности", "value": "259" }, { "label": "Изменения личности", "value": "1080" }, { "label": "Изобретения", "value": "126" }, { "label": "Изуку мидория", "value": "6967" }, { "label": "Император", "value": "867" }, { "label": "Империи", "value": "712" }, { "label": "Империя", "value": "1716" }, { "label": "Инвалидность", "value": "2073" }, { "label": "Инквизитор", "value": "143" }, { "label": "Инкуб", "value": "3264" }, { "label": "Инопланетное вторжение", "value": "209" }, { "label": "Инопланетяне", "value": "866" }, { "label": "Интерактив с читателями", "value": "472" }, { "label": "Интересный сюжет", "value": "7374" }, { "label": "Интернет", "value": "739" }, { "label": "Интимные сцены", "value": "3450" }, { "label": "Интрига", "value": "317" }, { "label": "Интриги и заговоры", "value": "1009" }, { "label": "Иные миры", "value": "35" }, { "label": "Исекай", "value": "2979" }, { "label": "Искусственный интеллект", "value": "1900" }, { "label": "Исследование", "value": "1626" }, { "label": "Исторический роман", "value": "573" }, { "label": "Итачи учиха", "value": "4556" }, { "label": "Ичиго", "value": "7254" }, { "label": "Йода", "value": "6829" }, { "label": "Йоруичи", "value": "6755" }, { "label": "Калипсо", "value": "8062" }, { "label": "Каннибализм", "value": "2249" }, { "label": "Капитан америка", "value": "6301" }, { "label": "Каракура", "value": "7473" }, { "label": "Карточная игра", "value": "1557" }, { "label": "Кастиэль", "value": "6954" }, { "label": "Кафе", "value": "3934" }, { "label": "Кацуки бакуго", "value": "7696" }, { "label": "Квесты", "value": "1707" }, { "label": "Киберспорт", "value": "1984" }, { "label": "Кино", "value": "7126" }, { "label": "Китай", "value": "3762" }, { "label": "Кицунэ", "value": "241" }, { "label": "Кланы", "value": "834" }, { "label": "Клоны", "value": "1624" }, { "label": "Книги", "value": "1068" }, { "label": "Книжный червь", "value": "521" }, { "label": "Колдовство", "value": "2681" }, { "label": "колледж", "value": "5058" }, { "label": "Коллекционер", "value": "2588" }, { "label": "Кольцо", "value": "1628" }, { "label": "Коммунисты", "value": "1042" }, { "label": "Коноха", "value": "2827" }, { "label": "Контракт", "value": "4304" }, { "label": "Контроль разума", "value": "485" }, { "label": "Конфеты", "value": "341" }, { "label": "Корейцы", "value": "6535" }, { "label": "Корея", "value": "2443" }, { "label": "Королевская власть", "value": "55" }, { "label": "Королевская семья", "value": "276" }, { "label": "Королевство", "value": "1695" }, { "label": "Короткий рассказ", "value": "239" }, { "label": "Коррупция", "value": "831" }, { "label": "Космическая опера", "value": "2245" }, { "label": "Космические рейнджеры", "value": "5860" }, { "label": "Космос", "value": "329" }, { "label": "Кот", "value": "5171" }, { "label": "Кража навыков", "value": "1159" }, { "label": "Красивая главная героиня", "value": "186" }, { "label": "Красивые женщины", "value": "66" }, { "label": "Красивые персонажи", "value": "5787" }, { "label": "Красивый главный герой", "value": "895" }, { "label": "Крафт", "value": "1599" }, { "label": "Кроссовер", "value": "75" }, { "label": "Ктулху", "value": "920" }, { "label": "Кузнец", "value": "853" }, { "label": "Кукла", "value": "3085" }, { "label": "Кулинария", "value": "2230" }, { "label": "Культивация", "value": "1901" }, { "label": "Культивирование", "value": "1860" }, { "label": "Курама", "value": "5709" }, { "label": "Курилин", "value": "6134" }, { "label": "Кушина узумаки", "value": "5222" }, { "label": "Лавкрафт", "value": "6063" }, { "label": "Лара крофт", "value": "6435" }, { "label": "Легенда о зельде", "value": "5707" }, { "label": "Ленивый главный герой", "value": "1516" }, { "label": "Леон золдик", "value": "7469" }, { "label": "Лес", "value": "6645" }, { "label": "Лечебная магия", "value": "562" }, { "label": "Локи", "value": "1725" }, { "label": "Лоли", "value": "1576" }, { "label": "Лопата", "value": "4989" }, { "label": "Лорд", "value": "8404" }, { "label": "Лориен", "value": "7397" }, { "label": "Лошади", "value": "6110" }, { "label": "Лунатизм", "value": "3520" }, { "label": "Луффи", "value": "274" }, { "label": "Лучник", "value": "1038" }, { "label": "Любовный интерес влюбляется первым", "value": "7753" }, { "label": "Любовный треугольник", "value": "2109" }, { "label": "Любовь", "value": "2297" }, { "label": "Любовь с первого взгляда", "value": "7748" }, { "label": "Любящие родители", "value": "2699" }, { "label": "Люди", "value": "3572" }, { "label": "Люцифер", "value": "5883" }, { "label": "Маг", "value": "780" }, { "label": "Магазин", "value": "4762" }, { "label": "Маги", "value": "58" }, { "label": "Магическая академия", "value": "6788" }, { "label": "Магические звери", "value": "684" }, { "label": "Магические предметы", "value": "1648" }, { "label": "Магический мир", "value": "578" }, { "label": "Магия", "value": "150" }, { "label": "Магия воды", "value": "6450" }, { "label": "Магия воздуха", "value": "7627" }, { "label": "Магия земли", "value": "7626" }, { "label": "Магия и технология", "value": "107" }, { "label": "Магия крови", "value": "7976" }, { "label": "Магия льда", "value": "1379" }, { "label": "Магия огня", "value": "7625" }, { "label": "Магия призыва", "value": "885" }, { "label": "Магия природы", "value": "6226" }, { "label": "Магия стихий", "value": "7673" }, { "label": "Магия тьмы", "value": "3596" }, { "label": "Мадара", "value": "2929" }, { "label": "Мазохизм", "value": "1961" }, { "label": "Мама", "value": "12" }, { "label": "Мама и дочь", "value": "7894" }, { "label": "Мама и сын", "value": "7895" }, { "label": "Манга", "value": "2464" }, { "label": "Манипуляция временем", "value": "932" }, { "label": "Маньяк", "value": "2026" }, { "label": "Маргери тирелл", "value": "3935" }, { "label": "Марионетки", "value": "3175" }, { "label": "Марс", "value": "4013" }, { "label": "Марти стью", "value": "594" }, { "label": "Мастер на все руки", "value": "3189" }, { "label": "Матриархат", "value": "7197" }, { "label": "Мать и сестры", "value": "7946" }, { "label": "Мафия", "value": "353" }, { "label": "Мачеха", "value": "4664" }, { "label": "Мегаполис", "value": "3322" }, { "label": "Медицина", "value": "441" }, { "label": "Медленная романтика", "value": "8383" }, { "label": "Медленное развитие истории", "value": "7462" }, { "label": "Мелиодас", "value": "7224" }, { "label": "Мелодрама", "value": "1507" }, { "label": "Менеджмент", "value": "368" }, { "label": "Мерлин", "value": "3977" }, { "label": "Месть", "value": "1218" }, { "label": "Меч", "value": "48" }, { "label": "Мечники", "value": "969" }, { "label": "Мечта", "value": "527" }, { "label": "Мизуки", "value": "4269" }, { "label": "Микото", "value": "3862" }, { "label": "Милая главная героиня", "value": "134" }, { "label": "Милф", "value": "1987" }, { "label": "Милый главный герой", "value": "2678" }, { "label": "Мимик", "value": "5706" }, { "label": "Мина ашидо", "value": "7695" }, { "label": "Минато намикадзе", "value": "5223" }, { "label": "Мир будущего", "value": "1770" }, { "label": "Мир земли", "value": "8394" }, { "label": "Мир меча и магии", "value": "1271" }, { "label": "Мистер пропер", "value": "565" }, { "label": "Мифические существа", "value": "1878" }, { "label": "Мифы и легенды", "value": "4463" }, { "label": "Младшая сестра", "value": "1523" }, { "label": "Мморпг", "value": "620" }, { "label": "Много главных героев", "value": "1191" }, { "label": "Много крови", "value": "5318" }, { "label": "Много персонажей", "value": "1539" }, { "label": "Множество королевств", "value": "32" }, { "label": "Модерн", "value": "5457" }, { "label": "Мокутон", "value": "4438" }, { "label": "Молоко", "value": "5469" }, { "label": "Монархия", "value": "3590" }, { "label": "Монстры", "value": "307" }, { "label": "Море", "value": "922" }, { "label": "Моритика ринносукэ", "value": "1142" }, { "label": "Мортал комбат", "value": "5861" }, { "label": "Мошенник", "value": "959" }, { "label": "Мрачный мир", "value": "1" }, { "label": "Мужчина в женском теле", "value": "8405" }, { "label": "Музыка", "value": "1183" }, { "label": "Мультивселенная", "value": "7410" }, { "label": "Мурим", "value": "7342" }, { "label": "Мутанты", "value": "2392" }, { "label": "Мутация", "value": "29" }, { "label": "Мясо", "value": "1503" }, { "label": "На реальных событиях", "value": "26" }, { "label": "Навыки", "value": "415" }, { "label": "Нагато узумаки", "value": "5221" }, { "label": "Наемники", "value": "1668" }, { "label": "Назарик", "value": "5369" }, { "label": "Наивный главный герой", "value": "159" }, { "label": "Наложница", "value": "4867" }, { "label": "Наноботы", "value": "2332" }, { "label": "Наруто", "value": "7177" }, { "label": "Наруто и хината", "value": "5766" }, { "label": "Насилие и жестокость", "value": "1440" }, { "label": "Наука", "value": "2150" }, { "label": "Национализм", "value": "5556" }, { "label": "Нацу", "value": "5826" }, { "label": "Нацуки субару", "value": "6656" }, { "label": "Начальная школа", "value": "3920" }, { "label": "Наши дни", "value": "1814" }, { "label": "Не всесильный главный герой", "value": "42" }, { "label": "Не по канону", "value": "1611" }, { "label": "Неверность", "value": "5735" }, { "label": "Невеста", "value": "6011" }, { "label": "Неджи хьюга", "value": "3099" }, { "label": "Недооценённый главный герой", "value": "43" }, { "label": "Нежить", "value": "1949" }, { "label": "Некромаг", "value": "7441" }, { "label": "Некромант", "value": "1914" }, { "label": "Некромантия", "value": "754" }, { "label": "Ненормативная лексика", "value": "160" }, { "label": "Необычные герои", "value": "67" }, { "label": "Нет людей", "value": "7486" }, { "label": "Нетораре", "value": "403" }, { "label": "Нетори", "value": "5393" }, { "label": "Нефилимы", "value": "7764" }, { "label": "Нецензурная лексика", "value": "4912" }, { "label": "Нечисть", "value": "4559" }, { "label": "Ник фьюри", "value": "6304" }, { "label": "Ниндзюцу", "value": "2354" }, { "label": "Ниндзя", "value": "1330" }, { "label": "Новелла", "value": "2105" }, { "label": "Нэко", "value": "147" }, { "label": "Оби ван кеноби", "value": "6830" }, { "label": "Обито учиха", "value": "2814" }, { "label": "Оборотни", "value": "53" }, { "label": "Обратный гарем", "value": "3303" }, { "label": "Овощ", "value": "6098" }, { "label": "Огнестрельное оружие", "value": "3155" }, { "label": "Одержимость", "value": "708" }, { "label": "Один в поле воин", "value": "6498" }, { "label": "Онлайн игра", "value": "1565" }, { "label": "Ооками теппей", "value": "849" }, { "label": "Оригинальные персонажи", "value": "7741" }, { "label": "Орки", "value": "1597" }, { "label": "Оружие", "value": "125" }, { "label": "Основано на видео игре", "value": "602" }, { "label": "Особые способности", "value": "2904" }, { "label": "От бедности к богатству", "value": "901" }, { "label": "От слабого до сильного", "value": "118" }, { "label": "Отель", "value": "2879" }, { "label": "Отец", "value": "3290" }, { "label": "Отношения", "value": "398" }, { "label": "Отношения человек/нечеловек", "value": "7406" }, { "label": "Офис", "value": "3460" }, { "label": "Охотники", "value": "2263" }, { "label": "Оцуцуки", "value": "5101" }, { "label": "Ошейник", "value": "2362" }, { "label": "Ояш", "value": "8048" }, { "label": "Падчерица", "value": "7023" }, { "label": "Падший ангел", "value": "184" }, { "label": "Палач", "value": "852" }, { "label": "Палочка", "value": "2682" }, { "label": "Пандорум", "value": "4360" }, { "label": "Папа и дочь", "value": "7647" }, { "label": "Паразит", "value": "1213" }, { "label": "Параллельный мир", "value": "2092" }, { "label": "Парень", "value": "619" }, { "label": "Паркур", "value": "3391" }, { "label": "Пародия", "value": "898" }, { "label": "Пасхалки", "value": "455" }, { "label": "Паук", "value": "2209" }, { "label": "Пекарь", "value": "5073" }, { "label": "Первая книга", "value": "269" }, { "label": "Первая любовь", "value": "640" }, { "label": "Первый раз", "value": "1465" }, { "label": "Переводы", "value": "24" }, { "label": "Перевоплощение", "value": "1596" }, { "label": "Перевоплощение в игровом мире", "value": "92" }, { "label": "Перемещение в другой мир", "value": "1288" }, { "label": "Перемещение во времени", "value": "146" }, { "label": "Перерождение", "value": "894" }, { "label": "Перерождение в демона", "value": "1111" }, { "label": "Перерождение в дракона", "value": "6867" }, { "label": "Перерождение в злодейку", "value": "5619" }, { "label": "Перерождение в злодея", "value": "749" }, { "label": "Перерождение в ином мире", "value": "109" }, { "label": "Перерождение в монстра", "value": "917" }, { "label": "Перерождений", "value": "335" }, { "label": "Переселение", "value": "813" }, { "label": "Переселение души", "value": "1864" }, { "label": "Перси джексон", "value": "6329" }, { "label": "Пилот", "value": "5521" }, { "label": "Пилюли", "value": "1531" }, { "label": "Пират", "value": "1579" }, { "label": "Пирог", "value": "80" }, { "label": "Писатель", "value": "734" }, { "label": "Пистолеты", "value": "4916" }, { "label": "Письмо", "value": "840" }, { "label": "Питомцы", "value": "3122" }, { "label": "Планомерное развитие событий", "value": "62" }, { "label": "Племянник", "value": "8303" }, { "label": "Пленница", "value": "4897" }, { "label": "Плети", "value": "4839" }, { "label": "Пляж", "value": "4243" }, { "label": "Повар", "value": "658" }, { "label": "Повествование от первого лица", "value": "1054" }, { "label": "Повествование от разных лиц", "value": "600" }, { "label": "Повествование от третьего лица", "value": "2116" }, { "label": "Подавитель", "value": "497" }, { "label": "Подземелье", "value": "798" }, { "label": "Подростки", "value": "636" }, { "label": "Подруга", "value": "5804" }, { "label": "Подчинение", "value": "8343" }, { "label": "Подчинение и унижение", "value": "4500" }, { "label": "Покемоны", "value": "2840" }, { "label": "Полиамория", "value": "1300" }, { "label": "Полигамия", "value": "1336" }, { "label": "Политика", "value": "1313" }, { "label": "Полицейский", "value": "1907" }, { "label": "Полубог", "value": "7170" }, { "label": "Полукровка", "value": "999" }, { "label": "Полулюди", "value": "2273" }, { "label": "Поношенные трусики", "value": "1204" }, { "label": "Попаданец", "value": "2396" }, { "label": "Попаданец в другой мир", "value": "685" }, { "label": "Попаданец в игру", "value": "6466" }, { "label": "Попадание в книгу", "value": "6957" }, { "label": "Постапокалипсис", "value": "1079" }, { "label": "Похищение", "value": "7452" }, { "label": "Поэзия", "value": "1120" }, { "label": "Правитель", "value": "2261" }, { "label": "Превращения в животных", "value": "3410" }, { "label": "Преданный любовный интерес", "value": "2055" }, { "label": "Предательство", "value": "70" }, { "label": "Президент", "value": "4334" }, { "label": "Преступник", "value": "4049" }, { "label": "Преступный мир", "value": "965" }, { "label": "Призрак", "value": "511" }, { "label": "Призыв", "value": "332" }, { "label": "Призыв в другой мир", "value": "781" }, { "label": "Призыв существ", "value": "412" }, { "label": "Приложение на телефоне", "value": "5345" }, { "label": "Принудительный брак", "value": "2954" }, { "label": "Принуждение", "value": "1442" }, { "label": "Принц", "value": "362" }, { "label": "Принцесса", "value": "2403" }, { "label": "Приручение мостров", "value": "2338" }, { "label": "Прислуга", "value": "5185" }, { "label": "Пришельцы", "value": "273" }, { "label": "Проза", "value": "2012" }, { "label": "Прокачка", "value": "1070" }, { "label": "Проклятия", "value": "1347" }, { "label": "Проработанный мир", "value": "1711" }, { "label": "Пророчество", "value": "7762" }, { "label": "Против наркотиков", "value": "8406" }, { "label": "Псайкеры", "value": "3659" }, { "label": "Псионика", "value": "5216" }, { "label": "Психбольница", "value": "6969" }, { "label": "Психические расстройства", "value": "2445" }, { "label": "Психологические травмы", "value": "3418" }, { "label": "Публичный дом", "value": "7860" }, { "label": "Путешествие в другой мир", "value": "10" }, { "label": "Пух", "value": "4286" }, { "label": "Пушечное мясо", "value": "7234" }, { "label": "Пытки", "value": "1756" }, { "label": "Пьяный мастер", "value": "1655" }, { "label": "Пэнси паркинсон", "value": "7411" }, { "label": "Раб", "value": "977" }, { "label": "Рабы", "value": "1240" }, { "label": "Разведение животных", "value": "3990" }, { "label": "Развитие", "value": "208" }, { "label": "Развитие персонажа", "value": "1780" }, { "label": "Развитие поселения", "value": "7203" }, { "label": "Развитие технологий", "value": "1875" }, { "label": "Раздвоение личности", "value": "2062" }, { "label": "Разные расы", "value": "1188" }, { "label": "Разорванная помолвка", "value": "2057" }, { "label": "Разработчик", "value": "2333" }, { "label": "Ранги", "value": "1568" }, { "label": "Ранобэ", "value": "1764" }, { "label": "Расизм", "value": "3554" }, { "label": "Растение", "value": "407" }, { "label": "Реализм", "value": "1180" }, { "label": "Ребенок", "value": "2881" }, { "label": "Ревность", "value": "293" }, { "label": "Революция", "value": "3996" }, { "label": "Реинкарнация", "value": "1302" }, { "label": "Реинкарнация в другом мире", "value": "2180" }, { "label": "Реинкарнация в игровой мир", "value": "304" }, { "label": "Рейджер", "value": "5147" }, { "label": "Религия", "value": "2184" }, { "label": "Рем", "value": "6655" }, { "label": "Ремесленник", "value": "1483" }, { "label": "Ремонт", "value": "5703" }, { "label": "Репликаторы", "value": "3495" }, { "label": "Ресторан", "value": "7519" }, { "label": "Риас гремори", "value": "6950" }, { "label": "Рим", "value": "612" }, { "label": "Риннеган", "value": "4230" }, { "label": "Ритуал", "value": "1233" }, { "label": "Робот", "value": "4011" }, { "label": "Роботы", "value": "467" }, { "label": "Рок ли", "value": "7002" }, { "label": "Рокси", "value": "7380" }, { "label": "Рон уизли", "value": "4279" }, { "label": "Ророноа зоро", "value": "1590" }, { "label": "Росомаха", "value": "1035" }, { "label": "Российская империя", "value": "2146" }, { "label": "Россия", "value": "4246" }, { "label": "Рудеус", "value": "7379" }, { "label": "Руны", "value": "2393" }, { "label": "Русалки", "value": "3127" }, { "label": "Русь", "value": "2016" }, { "label": "Рыцари", "value": "1902" }, { "label": "Рэо хатаке", "value": "2823" }, { "label": "Сабли", "value": "6136" }, { "label": "Сайян", "value": "6802" }, { "label": "Сакура", "value": "2515" }, { "label": "Самец", "value": "1592" }, { "label": "Самураи", "value": "576" }, { "label": "Санса старк", "value": "3925" }, { "label": "Сарказм", "value": "4658" }, { "label": "Саске", "value": "7237" }, { "label": "Сатира", "value": "215" }, { "label": "Сборник", "value": "7367" }, { "label": "Свадьба", "value": "1524" }, { "label": "Сверхсила", "value": "1055" }, { "label": "Свинцовые книги", "value": "5322" }, { "label": "Связывание", "value": "4506" }, { "label": "Священик", "value": "61" }, { "label": "Северус снейп", "value": "5783" }, { "label": "Сёдзе", "value": "2219" }, { "label": "Секты", "value": "1234" }, { "label": "Сельское хозяйство", "value": "787" }, { "label": "Семейный конфликт", "value": "935" }, { "label": "Семья", "value": "728" }, { "label": "Сенджу", "value": "6069" }, { "label": "Серийный убийца", "value": "261" }, { "label": "Сестра", "value": "2342" }, { "label": "Сила глаза", "value": "1019" }, { "label": "Сильная героиня", "value": "7292" }, { "label": "Сильная главная героиня", "value": "1994" }, { "label": "Сильный главный герой", "value": "570" }, { "label": "Сильфиетта", "value": "7381" }, { "label": "Симбиот", "value": "2648" }, { "label": "Сириус блэк", "value": "7655" }, { "label": "Сирота", "value": "297" }, { "label": "Система", "value": "251" }, { "label": "Система уровней", "value": "2174" }, { "label": "Ситх", "value": "1618" }, { "label": "Сказка", "value": "3570" }, { "label": "Скайрим", "value": "4032" }, { "label": "Скайуокер", "value": "6828" }, { "label": "Сквиб", "value": "4101" }, { "label": "Скелет", "value": "1315" }, { "label": "Скрытые способности", "value": "3417" }, { "label": "Скульптор", "value": "1178" }, { "label": "Слабая главная героиня", "value": "5805" }, { "label": "Слабый главный герой", "value": "731" }, { "label": "Славяне", "value": "2168" }, { "label": "Слизерин", "value": "6979" }, { "label": "Слизь", "value": "1095" }, { "label": "Сломанная игрушка", "value": "8396" }, { "label": "Служанка", "value": "3486" }, { "label": "Смартфон", "value": "457" }, { "label": "Смена сущности", "value": "8391" }, { "label": "Смерть", "value": "1779" }, { "label": "Смерть основного персонажа", "value": "1530" }, { "label": "Собаки", "value": "6109" }, { "label": "Соблазн", "value": "7994" }, { "label": "Соблазнение", "value": "2290" }, { "label": "Современность", "value": "568" }, { "label": "Современные знания", "value": "988" }, { "label": "Сожительство", "value": "3026" }, { "label": "Создание армии", "value": "1992" }, { "label": "Создание королевства", "value": "1497" }, { "label": "Создание пилюль", "value": "816" }, { "label": "Создатель", "value": "1045" }, { "label": "Сокровища", "value": "6521" }, { "label": "Сокрытие истинной личности", "value": "2894" }, { "label": "Сома и эрина", "value": "5737" }, { "label": "Соперничество", "value": "7699" }, { "label": "Соседи", "value": "4075" }, { "label": "Сотрудник", "value": "6339" }, { "label": "Социология", "value": "7618" }, { "label": "Спокойная главная героиня", "value": "236" }, { "label": "Спокойный главный герой", "value": "1656" }, { "label": "Спор", "value": "3484" }, { "label": "Спортивное тело", "value": "8317" }, { "label": "Способность кражи", "value": "7784" }, { "label": "Сражения", "value": "23" }, { "label": "Средневековье", "value": "1022" }, { "label": "Сталкер", "value": "1932" }, { "label": "Становление государства", "value": "111" }, { "label": "Старшая школа", "value": "1658" }, { "label": "Стёб", "value": "454" }, { "label": "Стекло", "value": "7453" }, { "label": "Стеснительный персонаж", "value": "152" }, { "label": "Стимпанк", "value": "1894" }, { "label": "Стихи", "value": "1309" }, { "label": "Стратегия", "value": "569" }, { "label": "Строительство", "value": "921" }, { "label": "Студент", "value": "1464" }, { "label": "Студентка", "value": "7518" }, { "label": "Суккубы", "value": "2662" }, { "label": "Супер зрение", "value": "6574" }, { "label": "Супер удача", "value": "489" }, { "label": "Супергерои", "value": "1481" }, { "label": "Суперзлодеи", "value": "2125" }, { "label": "Супермен", "value": "6997" }, { "label": "Суперсилы", "value": "2276" }, { "label": "Существа", "value": "6033" }, { "label": "Сферы", "value": "1077" }, { "label": "Схемы и заговоры", "value": "7116" }, { "label": "Сценарий", "value": "7489" }, { "label": "Счастливый конец", "value": "3293" }, { "label": "Сын", "value": "3297" }, { "label": "Сэм винчестер", "value": "7461" }, { "label": "Сюаньхуа", "value": "2560" }, { "label": "Сюжетные повороты", "value": "7202" }, { "label": "Таблетки для развития", "value": "589" }, { "label": "Таинственное прошлое", "value": "769" }, { "label": "Тайная личность", "value": "8096" }, { "label": "Тайная любовь", "value": "113" }, { "label": "Тайны", "value": "7481" }, { "label": "Тайные отношения", "value": "7450" }, { "label": "Тайцы", "value": "6413" }, { "label": "Танки", "value": "1787" }, { "label": "Творчество", "value": "20" }, { "label": "Тейлор эберт", "value": "3526" }, { "label": "Телекинез", "value": "2203" }, { "label": "Телепортация", "value": "914" }, { "label": "Телохранитель", "value": "723" }, { "label": "Темари", "value": "4810" }, { "label": "Темная магия", "value": "4788" }, { "label": "Темное фэнтези", "value": "1675" }, { "label": "Темные эльфы", "value": "7198" }, { "label": "Тенсейган", "value": "4367" }, { "label": "Тетя", "value": "4194" }, { "label": "Техномагия", "value": "508" }, { "label": "Тиран", "value": "1174" }, { "label": "Титаны", "value": "3308" }, { "label": "Тодороки шото", "value": "5105" }, { "label": "Токио", "value": "5791" }, { "label": "Том реддл", "value": "6652" }, { "label": "Тони старк", "value": "1338" }, { "label": "Тор", "value": "1800" }, { "label": "Тор и локи", "value": "2645" }, { "label": "Торговля", "value": "1637" }, { "label": "Травничество", "value": "221" }, { "label": "Трагическое прошлое", "value": "644" }, { "label": "Трактир", "value": "1918" }, { "label": "Трансмиграция", "value": "1071" }, { "label": "Трансформация", "value": "156" }, { "label": "Трансформеры", "value": "4616" }, { "label": "Тревор филипс", "value": "5427" }, { "label": "Тройняшки", "value": "7169" }, { "label": "Троли", "value": "4250" }, { "label": "Трудолюбивый главный герой", "value": "248" }, { "label": "Тупой главный герой", "value": "3710" }, { "label": "Тьма", "value": "1919" }, { "label": "Тюрьма", "value": "5597" }, { "label": "Тяжёлое детство", "value": "2253" }, { "label": "Убийства", "value": "378" }, { "label": "Убийцы", "value": "1766" }, { "label": "Убийцы драконов", "value": "1484" }, { "label": "Увечья", "value": "3266" }, { "label": "Удача", "value": "6575" }, { "label": "Узумаки", "value": "7579" }, { "label": "Укротитель", "value": "367" }, { "label": "Умения", "value": "531" }, { "label": "Умная главная героиня", "value": "1381" }, { "label": "Умные персонажи", "value": "2756" }, { "label": "Умный главный герой", "value": "2093" }, { "label": "Университет", "value": "2102" }, { "label": "Унижение", "value": "8342" }, { "label": "Уничтожение мира", "value": "81" }, { "label": "Управление временем", "value": "5648" }, { "label": "Уровни", "value": "8" }, { "label": "Усиление", "value": "3549" }, { "label": "Усопп", "value": "6737" }, { "label": "Устроенный брак", "value": "2223" }, { "label": "Усыновление", "value": "395" }, { "label": "Утопия", "value": "4677" }, { "label": "Уход за детьми", "value": "7609" }, { "label": "Учеба в университете", "value": "2797" }, { "label": "Учебное заведение", "value": "1817" }, { "label": "Ученые", "value": "1843" }, { "label": "Учитель", "value": "845" }, { "label": "Учиха", "value": "5348" }, { "label": "Фамильяры", "value": "1471" }, { "label": "Фанатичная любовь", "value": "6721" }, { "label": "Фанаты", "value": "7739" }, { "label": "Фантастический мир", "value": "2414" }, { "label": "Фармацевт", "value": "1706" }, { "label": "Фашисты", "value": "3118" }, { "label": "Феи", "value": "7185" }, { "label": "Фелляция", "value": "5880" }, { "label": "Феминизм", "value": "6527" }, { "label": "Феникс", "value": "2413" }, { "label": "Фенрир", "value": "2740" }, { "label": "Феодализм", "value": "280" }, { "label": "Ферма", "value": "285" }, { "label": "Фехтовальщик", "value": "4685" }, { "label": "Филиппины", "value": "128" }, { "label": "Философия", "value": "1859" }, { "label": "Флафф", "value": "5048" }, { "label": "Флер делакур", "value": "5191" }, { "label": "Флэш", "value": "4667" }, { "label": "Фокусник", "value": "7602" }, { "label": "Фольклор", "value": "4086" }, { "label": "Фугаку", "value": "6161" }, { "label": "Фурри", "value": "6631" }, { "label": "Футбол", "value": "1121" }, { "label": "Фэнтезийный мир", "value": "1556" }, { "label": "Хакер", "value": "475" }, { "label": "Халк", "value": "1196" }, { "label": "Хан нуньен синг", "value": "4817" }, { "label": "Ханма юджиро", "value": "4369" }, { "label": "Хаос", "value": "3117" }, { "label": "Харизматичный главный герой", "value": "2350" }, { "label": "Хатаке какаши", "value": "2820" }, { "label": "Хиддлстон", "value": "5903" }, { "label": "Химавари", "value": "2583" }, { "label": "Хината", "value": "2513" }, { "label": "Хитрый главный герой", "value": "2036" }, { "label": "Хоббит", "value": "6698" }, { "label": "Хогвартс", "value": "5954" }, { "label": "Холодная главная героиня", "value": "6507" }, { "label": "Холодное оружие", "value": "4889" }, { "label": "Холодный главный герой", "value": "2686" }, { "label": "Храм", "value": "2135" }, { "label": "Христианство", "value": "877" }, { "label": "Художественная литература", "value": "2380" }, { "label": "Художница", "value": "518" }, { "label": "Хулиганы", "value": "854" }, { "label": "Цветок", "value": "902" }, { "label": "Цезарь", "value": "1705" }, { "label": "Целители", "value": "4523" }, { "label": "Церковь", "value": "1980" }, { "label": "Цундере", "value": "1078" }, { "label": "Чакра", "value": "1393" }, { "label": "Чат-система", "value": "8407" }, { "label": "Черный юмор", "value": "2868" }, { "label": "Честная главная героиня", "value": "5855" }, { "label": "Честный главный герой", "value": "129" }, { "label": "Читы", "value": "451" }, { "label": "Шантаж", "value": "7175" }, { "label": "Шаринган", "value": "5165" }, { "label": "Шинигами", "value": "4661" }, { "label": "Шиноби", "value": "1227" }, { "label": "Школьная жизнь", "value": "284" }, { "label": "Школьники", "value": "218" }, { "label": "Школьницы", "value": "5946" }, { "label": "Шлюха", "value": "5822" }, { "label": "Шоу-бизнес", "value": "7119" }, { "label": "Шпионы", "value": "4262" }, { "label": "Эволюция", "value": "2040" }, { "label": "Экзорцизм", "value": "676" }, { "label": "Экономика", "value": "121" }, { "label": "Экспансия", "value": "110" }, { "label": "Эксперименты над людьми", "value": "7408" }, { "label": "Элементальная магия", "value": "1264" }, { "label": "Эльфы", "value": "1362" }, { "label": "Эротика", "value": "2053" }, { "label": "Это история без главной героини", "value": "8417" }, { "label": "Юмор", "value": "7360" }, { "label": "Яды", "value": "201" }, { "label": "Якудза", "value": "4599" }, { "label": "Яндере", "value": "7111" }, { "label": "Rpg", "value": "90" }, { "label": "Star wars", "value": "1985" }, { "label": "Time skip", "value": "824" }, { "label": "Warrior of light", "value": "5289" }], "type": filterInputs_1.FilterTypes.CheckboxGroup }, "fandoms": { "label": "Фэндом: все фэндомы любой фэндом", "value": [], "options": [{ "label": "19 Дней - Один день / 19 Days - One Day", "value": "838" }, { "label": "47-й / Хитмэн: Агент 47 / Наёмный убийца / Hitman", "value": "589" }, { "label": "Абсолютный дуэт / Absolute Duo", "value": "1029" }, { "label": "Аватар (Короля; об Аанге; об Корре) / Avatar", "value": "1889" }, { "label": "Аватар: Легенда о Корре / Avatar legend of Korra", "value": "351" }, { "label": "Аватар: Легенда об Аанге / Avatar: The Legend of Aang / Avatar: The Last Airbender", "value": "303" }, { "label": "Аватар(Фильм, 2009) / Avatar", "value": "19" }, { "label": "Ад Данте(Данте Алигьери) / Dante's Inferno(Dante Alighieri)", "value": "1502" }, { "label": "Азур Лейн / Azur Lane", "value": "1009" }, { "label": "Айон / Aion", "value": "1005" }, { "label": "Аладдин / Aladdin", "value": "502" }, { "label": "Алиса в Стране чудес / Alice in Wonderland", "value": "616" }, { "label": "Альдноа.Зеро / Aldnoah.Zero", "value": "1799" }, { "label": "Амагами СС / Amagami SS", "value": "900" }, { "label": "Амано Мегуми полна любви! / Amano Megumi wa Sukidarake!", "value": "991" }, { "label": "Американские боги / American Gods", "value": "1843" }, { "label": "Американский папаша! / American Dad", "value": "348" }, { "label": "Ангельские ритмы! / Angel Beats!", "value": "880" }, { "label": "Анлимитед: Хёбу Кёске / Zettai Karen Children: The Unlimited - Hyoubu Kyousuke", "value": "74" }, { "label": "Апостол карточек / The Apostle of Cards", "value": "1504" }, { "label": "Арифурэта: сильнейший ремесленник в мире / Arifureta: From Commonplace to World's Strongest", "value": "62" }, { "label": "Аркан: О Паровых Заводах и Магии Обскуры / Arcanum: Of Steamworks and Magick Obscura", "value": "1495" }, { "label": "Аркейн / Arcane: League of Legends", "value": "1154" }, { "label": "Аркнайтс(Games) / Arknights", "value": "1210" }, { "label": "Армелло(Games) / Armello", "value": "1846" }, { "label": "Астра, затерянная в космосе / Kanata no Astra", "value": "1851" }, { "label": "Атака титанов / Атака на титанов / Attack on Titan", "value": "106" }, { "label": "Атлантида: Затерянный мир / Atlantis: The Lost Empire", "value": "985" }, { "label": "Бакуган Отчаянные бойцы / Bakugan Battle Brawlers", "value": "1069" }, { "label": "Банановая рыба / Banana Fish", "value": "1685" }, { "label": "Баскетбол Куроко / Kuroko no basuke", "value": "582" }, { "label": "Баффи - Истребительница вампиров / Buffy the Vampire Slayer", "value": "115" }, { "label": "Башня Бога / Tower of God", "value": "58" }, { "label": "Бездарная Нана / Munou na Nana", "value": "954" }, { "label": "Бездомный бог / Норагами / Noragami", "value": "1014" }, { "label": "Безумные Мотивы / Looney Tunes", "value": "1140" }, { "label": "Безумный азарт / Kakegurui", "value": "334" }, { "label": "Бейблэйд / Beyblade", "value": "921" }, { "label": "Бен - 10 / Ben 10", "value": "475" }, { "label": "Берсерк / Berserk", "value": "479" }, { "label": "Бесконечное лето / Everlasting Summer", "value": "966" }, { "label": "Бесконечный ужас / Terror Infinity", "value": "381" }, { "label": "Бесподобный Воинственный Бог / Peerless Martial God", "value": "419" }, { "label": "Бессмертный Деревенщина(Games) / Immortal Redneck", "value": "1524" }, { "label": "Бесстыжие / Shameless", "value": "1759" }, { "label": "Био шок(Games) / BioShock", "value": "1095" }, { "label": "Блейд / Blade", "value": "1479" }, { "label": "Блич / Bleach", "value": "7" }, { "label": "Бог войны / God Of War", "value": "352" }, { "label": "Бог из машины / Deus Ex", "value": "612" }, { "label": "Боги поступают плохо / Игры богов / Gods Behaving Badly", "value": "301" }, { "label": "Боевая академия города Астериск / Gakusen Toshi Asterisk", "value": "884" }, { "label": "Боевой континент / Combat Continent / Douluo Dalu", "value": "739" }, { "label": "Боевой молот 40-го тысячелетия / WH40K / Warhammer 40,000", "value": "341" }, { "label": "Боевой молот Фэнтезийная битва / Warhammer Fantasy Battles", "value": "1742" }, { "label": "Боевые машины(Games) / BattleTech", "value": "1667" }, { "label": "Боец Баки / Baki the Grappler", "value": "821" }, { "label": "Божественность II: Эго Дракона(Games) / Divinity II: Ego Draconis", "value": "1538" }, { "label": "Божественные Врата / Divine Gate", "value": "1490" }, { "label": "Большая автомобильная кража 5 / GTA V / Grand Theft Auto V", "value": "1139" }, { "label": "Большая автомобильная кража: Сан-Андреас / GTA: SA / Grand Theft Auto: San Andreas", "value": "820" }, { "label": "Большая разница / Far Cry", "value": "939" }, { "label": "Большой куш / Ван Пис / One Piece", "value": "25" }, { "label": "Боруто: Следующие поколения Наруто / Boruto: Naruto Next Generations", "value": "602" }, { "label": "Брак по договоренности с принцессой красных скорпионов / Arranged marriage to the princess of the Red Scorpions", "value": "1386" }, { "label": "Бэтмен за гранью: Наследие / Batman Beyond: Legacy", "value": "1380" }, { "label": "В другом мире со смартфоном / Isekai wa Smartphone to Tomo ni", "value": "947" }, { "label": "В объятиях шлюхи / JK Bitch ni Shiboraretai", "value": "1283" }, { "label": "В ожидании бедности, я собираюсь стать кузнецом / Expecting to Fall into Ruin, I Aim to Become a Blacksmith", "value": "1475" }, { "label": "В Повелителе как Довакин / In Overlord as a Dovahkiin", "value": "1816" }, { "label": "Вакфу / Wakfu", "value": "814" }, { "label": "ВАЛЛ-И / Wally", "value": "801" }, { "label": "Вампир: Маскарад - Родословные / Vampire: The Masquerade Bloodline", "value": "1212" }, { "label": "Вампирелла / Vampirella", "value": "1214" }, { "label": "Варфрейм / Warframe", "value": "967" }, { "label": "Ведьмак / The Witcher", "value": "278" }, { "label": "Великий из бродячих псов / Bungou Stray Dogs", "value": "75" }, { "label": "Великолепный парк Амаги / Amagi Brilliant Park", "value": "813" }, { "label": "Вельзепуз / Вельзевул / Beelzebub", "value": "765" }, { "label": "Веном / Venom", "value": "978" }, { "label": "Веселая ферма / Fun Farm", "value": "1124" }, { "label": "Вечная история / The Neverending Story", "value": "547" }, { "label": "Вечные(Фильм, 2021) / Eternal", "value": "1234" }, { "label": "Виви: Песнь флюоритового глаза / Vivy: Fluorite Eye's Song", "value": "1819" }, { "label": "Викинги / Vikings", "value": "369" }, { "label": "Владелец ранчо со слизью(Games) / Ранчо слизи / Slime Rancher", "value": "1529" }, { "label": "Властелин колец / Lord of the Ring", "value": "254" }, { "label": "Власть книжного червя / Honzuki no Gekokujou", "value": "1399" }, { "label": "Внук Мудрец / Kenjo no Mago", "value": "1260" }, { "label": "Внук Нурарихёна / Nurarihyon no Mago", "value": "66" }, { "label": "Во всеоружии / Overgeared", "value": "1021" }, { "label": "Во тьме(Games) / The Darkness", "value": "938" }, { "label": "Военная хроника маленькой девочки / Сага о злой Тане / The Saga of Tanya the Evil / \tGekijouban Youjo Senki", "value": "1726" }, { "label": "Возвращение в детские годы / Gaki ni Modotte Yarinaoshi!!!", "value": "1031" }, { "label": "Возрождение Серийного Убийцы / Rebirth Of A Serial Killer", "value": "1358" }, { "label": "Воинственный Бог Асура / Martial God Asura", "value": "771" }, { "label": "Война будущего / The Tomorrow War", "value": "1174" }, { "label": "Война Любовь Снег / War Love Snow", "value": "1417" }, { "label": "Волейбол! / Haikyuu!!", "value": "697" }, { "label": "Волчонок / Teen Wolf", "value": "795" }, { "label": "Волшебная Девушка Спецоперация Аска / Magical Girl Spec-Ops Asuka", "value": "1470" }, { "label": "Волшебник-воин Орфен / Majutsushi Orphen Hagure Tabi: Kimluck-hen", "value": "1128" }, { "label": "Волшебники / The Magicians", "value": "1314" }, { "label": "Волшебный учитель Нэгима! / Negima!: Magister Negi Mag", "value": "1777" }, { "label": "Воля второго цикла мироздания. / Will of the second cycle of the Worldifice.", "value": "1036" }, { "label": "Воспитание хозяина / Yours to Claim", "value": "839" }, { "label": "Восставший против неба / Against the Gods", "value": "957" }, { "label": "Восстание стражей / Хранители снов / Rise of the Guardians", "value": "1488" }, { "label": "Восхождение в Голливуде / I'm in Hollywood", "value": "1237" }, { "label": "Восхождение героя щита / The Rising of the Shield Hero", "value": "103" }, { "label": "Врата Штейна / Steins: Gate", "value": "1044" }, { "label": "Врата: там бьются наши воины / Gate: Jieitai Kanochi nite, Kaku Tatakaeri", "value": "727" }, { "label": "Время / In Time", "value": "542" }, { "label": "Время приключений с Финном и Джейком / Adventure Time with Finn and Jake", "value": "1909" }, { "label": "Время приключений: Фионна и Кейк / Adventure Time: Fionna and Cake", "value": "1908" }, { "label": "Всегда вялый Танака-кун / Tanaka-kun wa Itsumo Kedaruge", "value": "1082" }, { "label": "Всего лишь восьмой сын? Я с этим не смирюсь! / Hachinan tte, Sore wa Nai Deshou! / Eighth son, I don’t think so!", "value": "1473" }, { "label": "Вселенная Марвел / Marvel Universe / Marvel Comics", "value": "6" }, { "label": "Вселенная монстров / Monsterverse / Monster Verse", "value": "905" }, { "label": "Вселенная Стивена / Steven universe", "value": "573" }, { "label": "Вселенная Стрелы / Arrowverse", "value": "488" }, { "label": "Вселенная Тип Луны(Игровая компания) / Universe Type Moon", "value": "1221" }, { "label": "Вселенная DC / DC Universe / DC Comics", "value": "36" }, { "label": "Выпадение радиоактивных осадков / Fallout", "value": "55" }, { "label": "Выращивание онлайн / Cultivation Online", "value": "1252" }, { "label": "Галактическая секс-звезда / Galaxy Sex Star", "value": "1539" }, { "label": "Гало(Games) / Halo", "value": "1338" }, { "label": "Ганц / Gantz", "value": "256" }, { "label": "Гарем рабов в лабиринте другого мира / Slave Harem in the Labyrinth of the Other World", "value": "1853" }, { "label": "Гарри Поттер / Harry Potter", "value": "1" }, { "label": "Гвен-паук / Spider-Gwen", "value": "920" }, { "label": "Генерал маньяк с его сумасшедшей системой / The Maniacal General with his Crazy System", "value": "1356" }, { "label": "Генерал, вы вправе уйти. / General, You May Leave Now", "value": "1385" }, { "label": "Геншин Импакт / Genshin Impact", "value": "689" }, { "label": "Геркулес / Hercules", "value": "721" }, { "label": "Герои и замки / Heroes & Castles", "value": "940" }, { "label": "Герои меча и магии / Heroes of Might and Magic", "value": "1002" }, { "label": "Герои(телесериал) / Heroes", "value": "864" }, { "label": "Гильгамеш / Gilgamesh", "value": "1143" }, { "label": "Гинтама / Gintama", "value": "129" }, { "label": "Глубина(Фильм, 2002) / Below", "value": "1186" }, { "label": "Гнев Асуры / Asura's wrath", "value": "100" }, { "label": "Годзилла / Godzilla", "value": "922" }, { "label": "Голодные игры / The Hunger Games", "value": "859" }, { "label": "Горец / Highlander", "value": "1761" }, { "label": "Горожане(Games) / Townsmen", "value": "1599" }, { "label": "Госпожа Кагуя: в любви как на войне / Kaguya sama: Love is war", "value": "533" }, { "label": "Готика / Gothic", "value": "418" }, { "label": "Готов ли ты влюбиться в извращенку до тех пор, пока она милая? / Hentai demo Suki ni Natte Kuremasu ka", "value": "1383" }, { "label": "Гоэтия / Гоетия / Yοητεία / Ars Goetia", "value": "772" }, { "label": "Гравити Фолз / Gravity Falls", "value": "491" }, { "label": "Граница пустоты / Kara no Kyoukai", "value": "1101" }, { "label": "Гриффины / Family Guy", "value": "349" }, { "label": "Гром над небом / Thunder over the sky", "value": "793" }, { "label": "Гуррен-Лаганн / Tengen Toppa Gurren Lagann", "value": "719" }, { "label": "Да будет благословенен этот прекрасный мир! / Konosuba / Kono Subarashii Sekai ni Shukufuku wo!", "value": "82" }, { "label": "Да Здравствует Призыв! / Long Live Summons!", "value": "948" }, { "label": "Да, я паук, и что с того? / So I'm a Spider, So What? / Kumo Desu ga, Nani ka?", "value": "910" }, { "label": "Данганронпа / Danganronpa", "value": "972" }, { "label": "Две звезды Онмёджи / Sousei no Onmyouji", "value": "1108" }, { "label": "Дворянство / Благородство / Noblesse", "value": "636" }, { "label": "Девочка-волшебница Мадока Магика / Mahou Shoujo Madoka Magica", "value": "1412" }, { "label": "Девочка, которая видит это / Mieruko-chan", "value": "1645" }, { "label": "Декстер(телесериал) / Dexter", "value": "1543" }, { "label": "Демон Бездны всех царств / Abyss Demon of All Realms", "value": "1419" }, { "label": "Демоны старшей школы / High School DxD", "value": "8" }, { "label": "День независимости(Фильм, 1996) / Independence Day", "value": "850" }, { "label": "Детектив Конан / Detective Conan", "value": "1554" }, { "label": "Дети индиго из другого мира / Mondaiji-tachi ga isekai kara kuru sô desu yo", "value": "1484" }, { "label": "Джаггед Альянс 2: Агония Власти(Games) / Jagged Alliance 2", "value": "1668" }, { "label": "Джессика Джонс / Marvel's Jessica Jones", "value": "1817" }, { "label": "Джон Уик / John Wick", "value": "388" }, { "label": "Дисней / The Walt Disney Company", "value": "503" }, { "label": "Для тебя, Бессмертный / Fumetsu no Anata e / To Your Eternity", "value": "1802" }, { "label": "Дневник Будущего / Mirai Nikki", "value": "368" }, { "label": "Дневники вампира / The Vampire Diaries", "value": "160" }, { "label": "Доблесть рыцаря-неудачника / Chivalry of a Failed Knight", "value": "1462" }, { "label": "Добро пожаловать в ад, Ирума / Welcome to Demon School! Iruma-kun", "value": "261" }, { "label": "Добро пожаловать в класс превосходства / Classroom of the Elite", "value": "122" }, { "label": "Добро пожаловать! В лес похотливых эльфов! / Youkoso! Sukebe Elf no Mori e", "value": "1034" }, { "label": "Добывать ремесло / Майнкрафт / Minecraft", "value": "102" }, { "label": "Доктор Кто / Doctor Who", "value": "277" }, { "label": "Доктор Стоун / Dr. Stone", "value": "720" }, { "label": "Доля секунды: скорость / Split - second: velocity", "value": "890" }, { "label": "Дом кролика / Кофейня "Кроличий домик" / Gochuumon wa Usagi Desu ka?", "value": "642" }, { "label": "Домашний очаг / Hearthstone: Heroes of Warcraft / Hearthstone", "value": "934" }, { "label": "Домекано / Domestic Na Kanojo", "value": "632" }, { "label": "Дорогой звёзд / Звёздное преобразование / Stellar Transformation / Xing Chen Bian", "value": "1155" }, { "label": "Доспехи Бога 2: Операция Кондор / Armour of God II: Operation Condor", "value": "1829" }, { "label": "Дота 2 / Dota 2", "value": "1105" }, { "label": "Дофус / Dofus", "value": "817" }, { "label": "Дракенгард / Drakengard / Drag-On Dragoon", "value": "919" }, { "label": "Дракон-горничная госпожи Кобаяси / Kobayashi-san Chi no Maid Dragon", "value": "673" }, { "label": "Дракон-сама из семьи Касумигаока / Dragon-sama of the Kasumigaoka Family", "value": "1458" }, { "label": "Драконий жемчуг Зет / Dragon Ball Z", "value": "307" }, { "label": "Дракониум Онлайн / Draconic Online", "value": "1360" }, { "label": "Дракула / Dracula", "value": "709" }, { "label": "Древнегреческая мифология / Ancient Greek mythology", "value": "1159" }, { "label": "Дре́вние / Первородные / The Originals", "value": "863" }, { "label": "Древние свитки / The Elder Scrolls", "value": "428" }, { "label": "Древние свитки: Скайрим / TES: Skyrim", "value": "337" }, { "label": "Другой мир / Underworld", "value": "480" }, { "label": "Друид с Сеульской станции / Seoul Station Druid", "value": "1178" }, { "label": "Дьявол / Диабло / Diablo", "value": "1787" }, { "label": "Дьявол может плакать / Devil May Cry / DMC", "value": "339" }, { "label": "Дьявол Юраги-су / The Devil of Yuragi-sou", "value": "431" }, { "label": "Дьявол II(Games) / Диабло II / Diablo II", "value": "1055" }, { "label": "Дэдпул / Deadpool", "value": "810" }, { "label": "Дэнни-призрак / Danny Phantom", "value": "109" }, { "label": "Евангелион / Neon Genesis Evangelion", "value": "583" }, { "label": "Единство семи магов / Тринити: Семь Магов / Trinity Seven", "value": "442" }, { "label": "Еженедельный прыжок сёнэн / Weekly Shōnen Jump", "value": "1629" }, { "label": "Ёрмунганд / Jormungand", "value": "77" }, { "label": "Жажда скорости / Need For Speed", "value": "1493" }, { "label": "Железный человек / Iron Man", "value": "710" }, { "label": "Жемчуг дракона / Dragon Ball", "value": "309" }, { "label": "Женщина-Халк(телесериал) / She-Hulk: Attorney at Law", "value": "1593" }, { "label": "Жизнь девушки в игровом мире / A Girl’s Life In A Gaming World", "value": "1406" }, { "label": "Жизнь после / Days Gone", "value": "1279" }, { "label": "За гранью / Beyond the Boundary", "value": "357" }, { "label": "Загипнотизировать Семью / Kyonyuu Kazoku Saimin", "value": "1032" }, { "label": "Закон Уэки / The Law of Ueki", "value": "790" }, { "label": "Закулисье / Backrooms", "value": "1827" }, { "label": "Зачарованные / Charmed", "value": "113" }, { "label": "Защитники / Defenders", "value": "1832" }, { "label": "Защитница Химари / Omamori Himari", "value": "279" }, { "label": "Звёздная принцесса и силы зла\t / Стар против сил зла / Star vs. The Forces of Evil", "value": "782" }, { "label": "Звёздное дитя / Oshi no Ko", "value": "1903" }, { "label": "Звёздное ремесло / StarCraft", "value": "386" }, { "label": "Звездные Войны / Star Wars", "value": "40" }, { "label": "Звёздные войны: Войны клонов - Все типы носителей(мультсериал, 2008) / Star Wars: The Clone Wars", "value": "1182" }, { "label": "Звёздные врата / Stargate", "value": "770" }, { "label": "Звёздные врата: Атлантида / Stargate: Atlantis", "value": "1097" }, { "label": "Звездный путь / Стартрек / Star Trek", "value": "849" }, { "label": "Зверополис / Zootopia", "value": "1449" }, { "label": "Зеленая Жизнь / Green Life", "value": "1196" }, { "label": "Зеленый фонарь / The Green Lantern", "value": "1222" }, { "label": "Зетмен / Zetman", "value": "1191" }, { "label": "Игра в кальмара(телесериал) / Squid game", "value": "1065" }, { "label": "Игра престолов / Game of Thrones", "value": "22" }, { "label": "Игрок / The Gamer", "value": "126" }, { "label": "Идеальная судьба / The Perfect Destiny", "value": "781" }, { "label": "Идолмастер / The Idolmaster", "value": "807" }, { "label": "Иерихон Клайва Баркера / Иерихон / Clive Barker’s Jericho /Jericho", "value": "320" }, { "label": "Извивающийся дракон / Coiling Dragon", "value": "692" }, { "label": "Изгнаные королевства РПГ / Exiled Kingdoms RPG", "value": "1375" }, { "label": "Импульс Валькирии: Сирена / Варукири Дораиву: Сирена / Valkyrie Drive: Mermaid", "value": "1736" }, { "label": "Индекс волшебства / A Certain Magical Index", "value": "68" }, { "label": "Инуяша - Пес-демон / InuYasha", "value": "481" }, { "label": "Искусственный отбор / Triage X", "value": "1037" }, { "label": "Истинный мир боевых искусств / Zhenwu Shijie / True Martial World", "value": "867" }, { "label": "История монстров / Monogatari", "value": "911" }, { "label": "История о второстепенном персонаже который стал игроком в другой игре. / The story is about a minor character who became a player in another game.", "value": "868" }, { "label": "Кабанери железной крепости / Koutetsujou no Kabaneri", "value": "1494" }, { "label": "Каждый раз, когда я сплю, моя душа покидает мое тело / Every Day I Sleep, My Soul Goes Out of My Body", "value": "1048" }, { "label": "Как воспитать героиню из обычной девушки / Saenai Heroine no Sodatekata", "value": "1637" }, { "label": "Как игрок глупой FPS попал в иной мир / Как дурачок из стрелялки в другой мир попал / Manuke na FPS Player ga Isekai e Ochita Baai", "value": "746" }, { "label": "Как приручить дракона / How to Train Your Dragon", "value": "687" }, { "label": "Капитан Америка / Captain America", "value": "1425" }, { "label": "Капитан Марвел(Фильм, 2019) / Captain Marvel", "value": "1594" }, { "label": "Каратель / The Punisher", "value": "387" }, { "label": "Касл / Castle", "value": "389" }, { "label": "Касльвания / Castlevania", "value": "1215" }, { "label": "Катаклизм: Тёмные дни впереди / DDA / Cataclysm: Dark Days Ahead", "value": "680" }, { "label": "Квайзер со Стигматом / Адепт Святого Знака / The Qwaser of Stigmata", "value": "72" }, { "label": "Квартет из альтернативного мира / Isekai Quartet", "value": "1801" }, { "label": "Квест Девушки-монстра / Monster Girl Questt", "value": "928" }, { "label": "Квест титана(Games) / Титанический квест / Titan Quest", "value": "1483" }, { "label": "Кенши(Games) / Kenshi", "value": "1230" }, { "label": "Киберпанк 2077 / Cyberpunk 2077", "value": "416" }, { "label": "Ким Пять-с-плюсом / Kim Possible", "value": "436" }, { "label": "Киру ра Киру / Круши Кромсай / Убей или умри / Kill la Kill", "value": "763" }, { "label": "Класс убийц / Assassination classroom", "value": "610" }, { "label": "Клеймор / Claymore", "value": "110" }, { "label": "Клинок зла / Evil Blade / Übel Blatt", "value": "722" }, { "label": "Клинок королевы / Queen’s Blade", "value": "757" }, { "label": "Клинок Маню: Тайна сисечного свитка / Manyuu Hiken-chou", "value": "501" }, { "label": "Клинок рассекающий демонов / Demon Slayer: Kimetsu no Yaiba", "value": "21" }, { "label": "Клуб Винкс / Winx Club", "value": "397" }, { "label": "Книга джунглей / The Jungle Book", "value": "1688" }, { "label": "Князь тьмы с задней парты / Demon King Daimao / Ichiban Ushiro no Daimaou", "value": "1207" }, { "label": "Код Гиас / Code Geass", "value": "340" }, { "label": "Код Квалидеи / Qualidea Code", "value": "76" }, { "label": "Кольцо Элдена / Elden Ring", "value": "1408" }, { "label": "Комната / The Room", "value": "889" }, { "label": "Конь и клинок: Боевой отряд(Games) / Mount and Blade:Warband", "value": "1477" }, { "label": "Королевства Сердец / Kingdom Hearts", "value": "407" }, { "label": "Короли крестоносцев / Crusader kings", "value": "572" }, { "label": "Король бойцов / The King of Fighters", "value": "1378" }, { "label": "Король лев / The Lion king", "value": "1705" }, { "label": "Король Шаманов / Shaman King", "value": "744" }, { "label": "Корона греха / Guilty Crown", "value": "1007" }, { "label": "Корпорация лоботомии / Lobotomy corporation", "value": "852" }, { "label": "Космические рейнджеры(Games) / Space Rangers", "value": "1508" }, { "label": "Кошечка из Сакурасо / Sakurasou no Pet na Kanojo", "value": "605" }, { "label": "Красавица и чудовище / Beauty and the Beast", "value": "1765" }, { "label": "Красная угроза 3 / Command & Conquer: Red Alert 3", "value": "742" }, { "label": "Красный, Белый, Черный, Желтый / RWBY", "value": "131" }, { "label": "Кредо убийцы / Assassin's Creed", "value": "690" }, { "label": "Кризис / Crysis", "value": "1734" }, { "label": "Крушитель / The Breaker", "value": "1080" }, { "label": "Кунг-фу панда / Kung Fu Panda", "value": "831" }, { "label": "Кэйон! / K-On!", "value": "1785" }, { "label": "Кэнган Асура / Kengan Asura", "value": "726" }, { "label": "Лаборатория Декстера / Dexter Lab", "value": "639" }, { "label": "Лавкрафт / Говард Филлипс Лавкрафт / Howard Phillips Lovecraft", "value": "1259" }, { "label": "Легенда о восьми псах востока / Hakkenden: Touhou Hakken Ibun", "value": "1699" }, { "label": "Легенда о Зельде / The Legend of Zelda", "value": "870" }, { "label": "Легенда о Короле Драконов / Legend of the Dragon King", "value": "623" }, { "label": "Легенда о Легендарных Героях / Densetsu no Yuusha no Densetsu", "value": "193" }, { "label": "Легендарный Механик", "value": "1912" }, { "label": "Легион Супергероев / The Legion of Super-Heroes", "value": "450" }, { "label": "Леди Баг и Супер-Кот / Miraculous Ladybug", "value": "327" }, { "label": "Летняя сага / Summertime Saga", "value": "1441" }, { "label": "Лига Легенд / League of Legends", "value": "65" }, { "label": "Линия фронта для девочек / Girls' Frontline", "value": "1686" }, { "label": "Литературный клуб Доки Доки / Литературный клуб / Doki Doki literature club!", "value": "819" }, { "label": "Лорд героев(Games) / Lord of Heroes", "value": "1771" }, { "label": "Лорд человечества / Lord of the People", "value": "1896" }, { "label": "Лориенская Сага / Lorien Legacies", "value": "521" }, { "label": "Любимая жена господина генерального директора / Mr.CEO's Beloved Wife", "value": "1389" }, { "label": "Любовные неприятности / To love ru", "value": "353" }, { "label": "Любовь, Деньги, Рок-н-Ролл / Love, Money, Rock'n'Roll", "value": "1890" }, { "label": "Люди в чёрном(Фильм) / Men in Black", "value": "1193" }, { "label": "Люди Икс / X-Men", "value": "371" }, { "label": "Лютер Строуд Сага / The Luther Strode Saga", "value": "1700" }, { "label": "Люцифер(телесериал) / Lucifer", "value": "681" }, { "label": "Маг на полную ставку / Quanzhi Fashi", "value": "291" }, { "label": "Маг смерти не желающий четвертой реинкарнации / The Death Mage Who Doesn’t Want a Fourth Time", "value": "1775" }, { "label": "Маг-целитель: Новый старт / Kaifuku Jutsushi no Yarinaoshi", "value": "1311" }, { "label": "Маги: Волшебный лабиринт / Magi: The Labyrinth of Magic", "value": "1581" }, { "label": "Магистр дьявольского культа / The Grandmaster of Demonic Cultivation", "value": "608" }, { "label": "Магическая академия Атараксия: Гибрид х Сердце / Hybrid x Heart Magias Academy Ataraxia", "value": "1898" }, { "label": "Магическая битва / Magic Battle / Jujutsu Kaisen", "value": "671" }, { "label": "Маленькие кошмары 2 / Little Nightmares 2", "value": "601" }, { "label": "Малефисента / Maleficent", "value": "775" }, { "label": "Мальчик с оленьими рогами / Сладкоежка / Sweet tooth", "value": "1772" }, { "label": "Маска / The mask", "value": "847" }, { "label": "Мастер Урадана / The Master of Uradan", "value": "1395" }, { "label": "Мастера меча онлайн / Sword Art Online / SAO", "value": "324" }, { "label": "Межвидовые Рецензенты / Interspecies Reviewers", "value": "1555" }, { "label": "Менеджер среднего звена Тонэгава / Chuukan Kanriroku Tonegawa", "value": "1084" }, { "label": "Мерлин / Merlin", "value": "486" }, { "label": "Мертвы к Рассвету / Dead by Daylight", "value": "899" }, { "label": "Мертвый или живой / Dead or Alive", "value": "1563" }, { "label": "Мертвый остров / Dead Island", "value": "124" }, { "label": "Месть Масамуне-куна! / Masamune-kun no Revenge", "value": "571" }, { "label": "Метавселенная Рудазова / Rudazov's Metauniverse", "value": "1211" }, { "label": "Метро 2033(Games) / Metro 2033", "value": "1584" }, { "label": "Милый во Франксе / Любимый во Франксе / Darling in the Franxx", "value": "942" }, { "label": "Мир боевых искусств / 武极天下 / Wuji Tianxia / Martial World", "value": "620" }, { "label": "Мир зомби / Zombie World", "value": "1880" }, { "label": "Мир Льда и Пламени / The World of Ice & Fire", "value": "415" }, { "label": "Мир приключений Джеки Чана(мультсериал, 2000) / ackie Chan Adventures", "value": "1544" }, { "label": "Мир танков / WoT Blitz / World of Tanks Blitz", "value": "525" }, { "label": "Мир Тьмы / World of Darkness", "value": "145" }, { "label": "Мир Эрастай / The World of Erasthay", "value": "1836" }, { "label": "Мир Warcraft / World of Warcraft", "value": "89" }, { "label": "Мировая война Z / Война миров Z / World War Z", "value": "1217" }, { "label": "Моана / Moana", "value": "686" }, { "label": "Моб психо 100 / Mob Psycho 100", "value": "866" }, { "label": "Мобильные легенды: Бах-Бах(Games) / Mobile Legends: Bang Bang", "value": "1497" }, { "label": "Могучие рейнджеры / Power Rangers", "value": "1486" }, { "label": "Может, я встречу тебя в подземелье? / DanMachi", "value": "9" }, { "label": "Мой жених сбежал / My Groom Ran Away", "value": "1047" }, { "label": "Мой маленький пони / My Little Pony", "value": "655" }, { "label": "Мой маленький пони: Дружба — это чудо / My Little Pony: Friendship is Magic", "value": "658" }, { "label": "Мой шумный дом(мультсериал, 2016) / The Loud House", "value": "1467" }, { "label": "Монстер Хай / Monster High", "value": "1012" }, { "label": "Моя возлюбленная чпокается со всеми / Kanojo wa Dare to demo Sex Sur", "value": "1274" }, { "label": "Моя геройская академия / Boku no Hero Academia", "value": "69" }, { "label": "Моя девушка - зомби / My Girlfriend is a Zombie", "value": "754" }, { "label": "Моя жена - красивый генеральный директор / My Wife is a Beautiful CEO", "value": "1025" }, { "label": "Моя жена — президент студенческого совета! / My Wife is the Student Council President / Okusama ga Seitokaichou", "value": "241" }, { "label": "Моя Марвел Академия / My marvel academia", "value": "696" }, { "label": "Моя первая модница / Hajimete no Gal", "value": "1835" }, { "label": "Моя Супер-Бывшая / My Super Ex-Girlfriend", "value": "1828" }, { "label": "Мрачный рассвет / Grim Dawn", "value": "1113" }, { "label": "Мстители / The Avengers", "value": "1747" }, { "label": "Мстители. Эра Альтрона / The Avengers. Age of Ultron", "value": "784" }, { "label": "Мулан / Mulan", "value": "706" }, { "label": "Мы не можем учится / Bokutachi wa Benkyou ga Dekinai", "value": "912" }, { "label": "Мэй Гунцин / Mei Gongqing", "value": "753" }, { "label": "Наблюдать / Overwatch", "value": "607" }, { "label": "Надпись / Inscription", "value": "1718" }, { "label": "Нам Ён / Nam Yeon", "value": "1188" }, { "label": "Наруто / Naruto", "value": "3" }, { "label": "Начало после конца / The Beginning After The End", "value": "888" }, { "label": "Не голодай / Don't Starve", "value": "274" }, { "label": "Не издевайся надо мной, Нагаторо / Ijiranaide / Nagatoro-san Don't Toy with Me, Miss Nagatoro", "value": "1041" }, { "label": "Не люблю боль, так что вкачаю все в защиту / Itai no wa Iya nano de Bougyoryoku ni Kyokufuri Shitai to Omoimasu", "value": "517" }, { "label": "Не моя вина, что я непопулярна! / Watashi ga Motenai no wa Dou Kangaetemo Omaera ga Warui", "value": "1381" }, { "label": "Небесный замок Лапута / Tenkuu no Shiro Laputa", "value": "1109" }, { "label": "Невероятные приключения ДжоДжо / JoJo's Bizarre Adventure", "value": "20" }, { "label": "Негодник, которому не снилась девочка-зайка / Rascal Does Not Dream of Bunny Girl Senpai", "value": "1897" }, { "label": "Негодяй спасает мужскую роль / The Villain Saves the Male Lead", "value": "1224" }, { "label": "Неизвестен / Persona", "value": "205" }, { "label": "Некий магический индекс / To Aru Majutsu no Index", "value": "562" }, { "label": "Некий научный акселератор / Toaru Kagaku no Accelerator", "value": "1487" }, { "label": "Ненасытный Берсерк / Boushoku no Berserk: Ore dake Level to Iu Gainen wo Toppa suru the Comic", "value": "1195" }, { "label": "Необъятные небеса / Infinite Stratos / IS", "value": "280" }, { "label": "Необъятный океан / Grand Blue", "value": "531" }, { "label": "Непревзойденная / Master Piece The Animation", "value": "712" }, { "label": "Непризнанный школой владыка демонов / Maou Gakuin no Futekigousha", "value": "1476" }, { "label": "Непутевый ученик в школе магии / Mahouka Koukou No Rettousei", "value": "982" }, { "label": "Непутевый ученик в школе магии / The Irregular at Magic High School", "value": "630" }, { "label": "Несокрушимая механическая кукла / Machine-Doll wa Kizutsukanai", "value": "1030" }, { "label": "Несправедливость / Injustice", "value": "1026" }, { "label": "Нет игры - нет жизни / Без игры жизни нет / No Game No Life", "value": "718" }, { "label": "Неуязвимый / Invincible", "value": "702" }, { "label": "НиоХ(Games) / NioH", "value": "1465" }, { "label": "Новый завет Владыки тьмы / Shinmai Maou no Testament", "value": "1432" }, { "label": "Ну и ну! Земляничные яйца / I My Me! Strawberry Eggs", "value": "1485" }, { "label": "Нулевой Уровень Целомудрия / Teisou Kannen Zero", "value": "1209" }, { "label": "О моём перерождении в меч / Tensei Shitara Ken deshita", "value": "53" }, { "label": "О моём перерождении в слизь / Tensei shitara Slime Datta Ken", "value": "64" }, { "label": "О моя Богиня / Aa! Megami-sama! / Ah! My Goddess", "value": "915" }, { "label": "Обесчещенный(Games) / Dishonored", "value": "1073" }, { "label": "Обитель зла / Resident Evil", "value": "86" }, { "label": "Огненная эмблема / Fire Emblem", "value": "1615" }, { "label": "Огненная эмблема: Пробуждение / Fire Emblem: Awakening", "value": "1616" }, { "label": "Огненная эмблема: Три Дома / Fire Emblem:Three Houses", "value": "1716" }, { "label": "Одинокий рокер! / Bocchi the Rock!", "value": "1904" }, { "label": "Одному лишь Богу ведомый мир / World God Only Knows", "value": "1248" }, { "label": "Она становится гламурной после расторжения помолвки / She gets glamorous after the engagement is annulled", "value": "1404" }, { "label": "Орк-рубака / Orc Grunt", "value": "779" }, { "label": "Освободите эту ведьму / Release that witch", "value": "994" }, { "label": "Острые козырьки(телесериал) / Peaky Blinders", "value": "1177" }, { "label": "От заката до рассвета! / From Dusk till Dawn!", "value": "1416" }, { "label": "Отброс из семьи графа / Trash of counts family", "value": "853" }, { "label": "Отряд самоубийц / The Suicide Squad", "value": "1844" }, { "label": "Отчаянные домохозяйки / Desperate Housewives", "value": "1011" }, { "label": "Отчет о буйстве духов / YuYu Hakusho", "value": "1008" }, { "label": "Охота демонического короля на свою жену / Xie Wang Zhui Qi", "value": "1737" }, { "label": "Охотник х Охотник / Hunter x Hunter", "value": "101" }, { "label": "Охотницы на демонов / Taimanin Asagi", "value": "1463" }, { "label": "Очень приятно Бог! / Kamisama Hajimemashita", "value": "1585" }, { "label": "Очень Странные Дела(телесериал) / Stranger Things", "value": "1834" }, { "label": "ПАЗЛ / PUZZLE", "value": "1762" }, { "label": "Палач Рока / DOOM", "value": "132" }, { "label": "Параграф 78(Фильм) / Paragraph 78", "value": "923" }, { "label": "Паразит: Учение о жизни / Parasyte: The Maxim", "value": "1176" }, { "label": "Пастырь(Фильм, 2011) / Priest", "value": "1173" }, { "label": "Пацаны / The Boys", "value": "133" }, { "label": "Первый детский сад во вселенной / The First Kindergarten in the Universe", "value": "1049" }, { "label": "Перевозчик / Le Transporteur", "value": "365" }, { "label": "Передающийся через кровь / Bloodborne", "value": "229" }, { "label": "Пережить / Outlast", "value": "645" }, { "label": "Перерождение / Rebirth", "value": "550" }, { "label": "Перерождение бессмертного горожанина-культиватора / Rebirth – City Cultivation / Rebirth of the Urban Immortal Cultivator", "value": "843" }, { "label": "Перерождение в монстра / Re:Monster", "value": "85" }, { "label": "Перестрой мир / Sekai O Sai Kochiku / Rebuild World", "value": "961" }, { "label": "Период полураспада(Valve) / Half-Life", "value": "895" }, { "label": "Перси Джексон / Percy Jackson", "value": "308" }, { "label": "Персона 5 / Persona 5", "value": "1614" }, { "label": "Печать ветра / Kaze no Stigma", "value": "845" }, { "label": "Пик боевых искусств / Martial Peak", "value": "414" }, { "label": "Пираты Карибского моря / Pirates of the Caribbean", "value": "932" }, { "label": "Пираты черной лагуны / Black Lagoon", "value": "621" }, { "label": "Пламенная бригада пожарных / Fire Force / Enen no Shouboutai", "value": "841" }, { "label": "Пламя бесчисленых невзгод / I' m really not demon god's lackey", "value": "1452" }, { "label": "Планетарная аннигиляция / Planetary Annihilation", "value": "487" }, { "label": "Плоскостной пейзаж: Мучение / Planescape: Torment", "value": "1768" }, { "label": "По велению адской сестры / The Testament of Sister New Devil", "value": "18" }, { "label": "Поборники тьмы / Darksiders", "value": "1028" }, { "label": "Повар небесной гостиницы / Чем кормят в ином мире / Kakuriyo no Yadomeshi", "value": "998" }, { "label": "Повар-боец Сома / В поисках божественного рецепта / Shokugeki no Souma", "value": "191" }, { "label": "Повелитель тьмы на подработке! / Hataraku Maou-sama!", "value": "674" }, { "label": "Повелитель тьмы: Другая история мира / How Not to Summon a Demon Lord / Isekai Maou to Shoukan Shoujo no Dorei Majutsu", "value": "699" }, { "label": "Повелитель(Куганэ Маруяма) / Overlord", "value": "27" }, { "label": "Повелитель(Games) / Overlord", "value": "1623" }, { "label": "Повесть о Конце Света / Record of Ragnarok", "value": "332" }, { "label": "Повесть о лунной принцессе / Tsukihime: Lunar Legend", "value": "750" }, { "label": "Повесть о Небесных островах / Фэнтези Гранблю / Granblue Fantasy", "value": "808" }, { "label": "Повседневная жизнь бессмертного короля / The Daily Life of the Immortal King / Xian Wang de Richang Shenghuo", "value": "1466" }, { "label": "Повседневная жизнь с девушкой-монстром / Monster Musume", "value": "760" }, { "label": "Пограничье(Games) / Borderlands", "value": "992" }, { "label": "Под лунами Драконьих глаз / Beneath the Dragoneye Moons", "value": "1735" }, { "label": "Подземелья и драконы / Dungeons & Dragons", "value": "81" }, { "label": "Подземная история / Андертейл / Undertale", "value": "390" }, { "label": "Поднявшийся(Games) / Risen", "value": "1273" }, { "label": "Поднятие уровня в одиночку / Solo Leveling", "value": "127" }, { "label": "Подручный Луизы-Нулизы / Zero no Tsukaima", "value": "580" }, { "label": "Пожиратель богов / God Eater", "value": "1321" }, { "label": "Поймай себя ! Моя дорогая жена / Catch You ! My Dear Wife", "value": "1317" }, { "label": "Покемон / Pokemon", "value": "43" }, { "label": "Политическая Хроника Молодой Девушки / A Young Woman's Political Record", "value": "1306" }, { "label": "Полностью пленённые / Totally Captivated", "value": "1086" }, { "label": "Полый Рыцарь(Games) / Hollow Knight", "value": "1198" }, { "label": "Пользователи Силы / Forceusers", "value": "1162" }, { "label": "Поля битвы Неизвестного игрока / ПАБГ / Player Unknown's Battlegrounds / PUBG", "value": "622" }, { "label": "Попытка приручить злого повелителя / Trying to Tame an Evil Overlord", "value": "983" }, { "label": "Поработитель Ада / Helltaker", "value": "776" }, { "label": "Порновселенная / Porn Universe", "value": "1776" }, { "label": "Портал(Valve) / Portal", "value": "800" }, { "label": "Последние из нас / Last Of Us", "value": "1717" }, { "label": "Последний Серафим / Owari no Seraph", "value": "551" }, { "label": "Последняя из рода Блау(Тайга Ри) / The last of the Blau family", "value": "1507" }, { "label": "Последняя фантазия / ファイナルファンタジ / Final Fantasy", "value": "769" }, { "label": "Преподобное безумие / Reverend Insanity", "value": "1280" }, { "label": "Преподобный Гу / Gu Zhen Ren / Daoist Gu", "value": "1464" }, { "label": "Призрак в доспехах / Ghost in the Shell", "value": "1907" }, { "label": "Призрачный бегун / Ghostrunner", "value": "613" }, { "label": "Призрачный гонщик / Ghost Rider", "value": "823" }, { "label": "Принц Драконов Хаоса / The Chaos Dragon Prince", "value": "1397" }, { "label": "Принц Персии / Prince of Persia", "value": "1535" }, { "label": "Принцесса монстров / Princess Resurrection", "value": "1304" }, { "label": "Принцесса Цу / Не проиграю! / Maken Ki", "value": "675" }, { "label": "Проект „Восток“ / Touhou Project", "value": "809" }, { "label": "Проект Кей / K Project", "value": "73" }, { "label": "Проклятие: Автоматизация / NieR:Automata", "value": "1496" }, { "label": "Противостояние святого / Renegade Immortal", "value": "926" }, { "label": "Прототип / Prototype", "value": "54" }, { "label": "Пуленепробиваемый / Bang-Tan / BTS", "value": "520" }, { "label": "Путешествие на Запад / Journey to the West", "value": "1833" }, { "label": "Пять невест / Go-Toubun no Hanayome", "value": "713" }, { "label": "Пять ночей у Фредди / Five nights at freddy's", "value": "930" }, { "label": "Рагнарёк Онлайн / Ragnarok Online", "value": "953" }, { "label": "Радуга 6: Осада / Rainbow Six: Siege", "value": "421" }, { "label": "Развращение Дочери / Daraku Reijou Hakoiri Ojou-sama Netorare Choukyou Kiroku", "value": "1284" }, { "label": "Рай Грисайи / Эдем в серых тонах / Grisaia no Rakuen", "value": "584" }, { "label": "Рандеву с жизнью / Date A live", "value": "851" }, { "label": "Ранма ½ / Ranma ½", "value": "1192" }, { "label": "Рапунцель: Запутанная история / Tangled", "value": "773" }, { "label": "Расколотая битвой синева небес / Battle Through the Heavens", "value": "927" }, { "label": "Рассказ служанки / The Handmaid's Tale", "value": "1135" }, { "label": "Расхитительница гробниц / Tomb Raider", "value": "988" }, { "label": "Резатель / Лангриссер / Langrisser", "value": "792" }, { "label": "Реинкарнация безработного / Mushoku Tensei", "value": "569" }, { "label": "Реинкарнация Богини / Megami Tensei", "value": "1161" }, { "label": "Репликант НиеР / NieR Replicant / NieR Gestalt", "value": "1299" }, { "label": "Рецеттия: Повесть о магазине предметов / Recettear: An Item Shop's Tale", "value": "858" }, { "label": "Ривердэйл / Riverdale", "value": "637" }, { "label": "Рик и Морти / Rick and Morty", "value": "315" }, { "label": "Розарий и Вампир / Rosario+Vampire", "value": "83" }, { "label": "Розовая пора моей школьной жизни сплошной обман / Yahari Ore no Seishun Love Come wa Machigatteiru", "value": "856" }, { "label": "Рок шоу! / Show By Rock!!", "value": "344" }, { "label": "Русалочка / The Little Mermaid", "value": "892" }, { "label": "Рыцарь и маг / Knight's & Magic", "value": "1491" }, { "label": "Сага о Винланде / Vinland Saga", "value": "1200" }, { "label": "Садистская смесь / Blend S", "value": "1120" }, { "label": "Сайт волшебниц / Mahou Shoujo Site", "value": "909" }, { "label": "Сверхъестественное(телесериал) / Supernatural", "value": "916" }, { "label": "Связь принцесс: повторное погружение / Princess Connect! Re:Dive", "value": "1481" }, { "label": "Святые / Saints Row", "value": "1390" }, { "label": "Сейлор Мун / Sailor Moon", "value": "114" }, { "label": "Секире: Тени Умирают Дважды / Sekiro: Shadows Die Twice", "value": "1076" }, { "label": "Семь смертных грехов / Nanatsu no Taizai", "value": "61" }, { "label": "Семья шпиона / Spy x Family", "value": "1646" }, { "label": "Сердца Пандоры / Pandora Hearts", "value": "497" }, { "label": "Серия Метроидов / Metroid Series", "value": "1612" }, { "label": "Серый человек / Ди: Гурэйман / D.Gray-man", "value": "367" }, { "label": "Си Тянь Гуань / Si Tian Guan", "value": "1189" }, { "label": "Сильнейший в истории ученик Кэнити / Shijou Saikyou no Deshi Kenichi", "value": "242" }, { "label": "Сильнейший в истории ученик Кэнъити / KenIchi: The Mightiest Disciple", "value": "745" }, { "label": "Сильнейший магнат / The Strongest Tycoon", "value": "1340" }, { "label": "Сильнейший мудрец низшей эмблемы / Shikkakumon no Saikyou Kenja", "value": "1472" }, { "label": "Симпсоны / The Simpsons", "value": "1461" }, { "label": "Симс / The Sims", "value": "654" }, { "label": "Симфония морской стали / Aoki Hagane no Arpeggio", "value": "958" }, { "label": "Сингулярность(Games) / Singularity", "value": "1793" }, { "label": "Синий Архив / Blue Archive", "value": "1411" }, { "label": "Синий экзорцист / Blue Exorcist", "value": "312" }, { "label": "Синяя Тюрьма: Блю Лок / Blue Lock", "value": "1792" }, { "label": "Система Богов и Демонов / God and Devil World", "value": "1648" }, { "label": "Система Спаси-Себя-Сам / The Scum Villain's Self-Saving System: Ren Zha Fanpai Zijiu Xitong", "value": "1505" }, { "label": "Система: Восьмой уровень(Д. Серебряков) / System: Eighth level", "value": "1175" }, { "label": "Сисястая Принцесса под гипнозом / Kyonyuu Princess Saimin", "value": "1618" }, { "label": "Сказание о Демонах и Богах / Tales of Demons and Gods", "value": "59" }, { "label": "Сказание о Тёмном Рыцаре ~ Призван, чтобы одолеть Героя ~ / Tale of Dark Knight~Summoned to Defeat The Hero~", "value": "1647" }, { "label": "Сказки хранителей(Games) / Guardian tales", "value": "1068" }, { "label": "Скрытая Похотливая Натура Моих Русских Сестренок и Мачехи / Muttsuri do Sukebe ro Gibo Shimai", "value": "1282" }, { "label": "Скуби-Ду / Scooby-Doo", "value": "638" }, { "label": "Скучный мир, где не существует самой идеи похабных шуток / Shimoneta to Iu Gainen ga Sonzai Shinai Taikutsu na Sekai", "value": "830" }, { "label": "Сладкая жизнь / Happy Sugar Life", "value": "1099" }, { "label": "Сладкий флирт / Amour Sucré / Sweet Crush", "value": "495" }, { "label": "Сладости и Сигареты / Candy & Cigarettes", "value": "778" }, { "label": "Следопыт Гнев Праведников / Pathfinder Wrath Of The Righteous", "value": "1077" }, { "label": "Следопыт: Творец королей / Pathfinder: Kingmaker", "value": "1770" }, { "label": "Смертельная битва / Мортал Комбат / Mortal Kombat", "value": "806" }, { "label": "Созданный в бездне / Made in Abyss", "value": "952" }, { "label": "Сокрушитель: Новые волны / The Breaker: New Waves", "value": "1500" }, { "label": "Соник еж / Sonic the hedgehog", "value": "1052" }, { "label": "Сорвиголова / Daredevil", "value": "1690" }, { "label": "Сотня / Hundred", "value": "885" }, { "label": "Спаун / Spawn", "value": "1254" }, { "label": "Спецагент Арчер / Archer", "value": "624" }, { "label": "Специалист по апгрейду из другого мира / Endless Sea of Clouds ESC", "value": "1499" }, { "label": "Спираль / Удзумаки / Uzumaki", "value": "1164" }, { "label": "СТАЛКЕР / STALKER / S.T.A.L.K.E.R", "value": "677" }, { "label": "Стальная тревога / Full Metal Panic! The Second Raid", "value": "1489" }, { "label": "Стальной алхимик / Fullmetal Alchemist", "value": "1123" }, { "label": "Стальной Гигант / The Iron Giant", "value": "1241" }, { "label": "Становление богом / Bai Lian Cheng Shen", "value": "1315" }, { "label": "Старгерл / Stargirl", "value": "1137" }, { "label": "Стелларис / Stellaris", "value": "1098" }, { "label": "Сторожевые Псы / Watch Dogs", "value": "1886" }, { "label": "Стражи Галактики / Guardians of the Galaxy", "value": "1426" }, { "label": "Страна Самоцветов / Houseki no Kuni", "value": "1305" }, { "label": "Страна чудес смертников / Зона-парк смертников / Deadman Wonderland", "value": "857" }, { "label": "Страношары / Кантриболз / Countryballs", "value": "1895" }, { "label": "Студии 20-й век / 20th Century Studios", "value": "1715" }, { "label": "Судьба / Fate", "value": "1740" }, { "label": "Судьба: Апокриф / Fate: Apocrypha", "value": "231" }, { "label": "Судьба: Великий Орден / Fate: Grand Order", "value": "60" }, { "label": "Судьба: Девочка волшебница Илия / Fate: Kaleid Liner Prisma", "value": "789" }, { "label": "Судьба: Истоки / Fate: Zero", "value": "230" }, { "label": "Судьба: Ночь схватки / Fate: Stay Night", "value": "536" }, { "label": "Сумерки / Twilight", "value": "471" }, { "label": "Супер ген бога / Super God Gene", "value": "316" }, { "label": "Супер Марио / Super Mario", "value": "1661" }, { "label": "Супергёрл(телесериал, 2015) / Supergirl", "value": "1088" }, { "label": "Супермедицинский ниндзя / Super medical ninja", "value": "1391" }, { "label": "Суперсемейка / The Incredibles", "value": "306" }, { "label": "Сэкирэй / Sekirei", "value": "111" }, { "label": "Тада не может влюбиться! / Tada-kun wa koi wo shinai!", "value": "1905" }, { "label": "Тайны Смолвиля / Smallville", "value": "449" }, { "label": "Танец клинка Элементалиста / Seireitsukai no Blade Dance", "value": "1498" }, { "label": "Твоя апрельская ложь / Your lie in april", "value": "532" }, { "label": "Те, кто охотятся на эльфов / エルフを狩るモノたち / Those Who Hunt Elves", "value": "1168" }, { "label": "Темнейшее подземелье / Darkest dungeon", "value": "1405" }, { "label": "Темные Души / Dark Souls", "value": "200" }, { "label": "Темный Ангел / Dark Angel", "value": "1010" }, { "label": "Тёмный Дворецкий / Kuroshitsuj / Dark Butler", "value": "411" }, { "label": "Темный дворецкий / Kuroshitsuji", "value": "1043" }, { "label": "Темный призыватель Апокалипсиса / The Dark Summoner of the Apocalypse", "value": "1407" }, { "label": "Тень ежа / Ёж Шэдоу / Shadow the hedgehog", "value": "796" }, { "label": "Терминатор / The Terminator", "value": "759" }, { "label": "Террарий / Terraria", "value": "805" }, { "label": "Тетрадь смерти / Death Note", "value": "78" }, { "label": "Тибериумные войны / Tiberium Wars", "value": "1893" }, { "label": "Титаник / Titanic", "value": "1842" }, { "label": "Тихий Холм / Сайлент Хилл / Silent Hill", "value": "848" }, { "label": "Тихоокеанский рубеж / Pacific Rim", "value": "832" }, { "label": "Тогайну но Чи ~Потерял кровь~(Games) / Togainu no Chi ~Lost Blood~", "value": "1540" }, { "label": "Токийские вороны / Tokyo Ravens", "value": "836" }, { "label": "Токийские мстители / Tokyo Revengers", "value": "1064" }, { "label": "Токийский Гуль / Tokyo Ghoul", "value": "271" }, { "label": "Тор / Thor", "value": "764" }, { "label": "Торико / Toriko", "value": "342" }, { "label": "Точка зрения Всеведущего читателя / Omniscient Reader’s Viewpoint", "value": "1872" }, { "label": "Трансформеры / Transformers", "value": "117" }, { "label": "Трес Наварра / Tres Navarre", "value": "1197" }, { "label": "Три Икса / xXx", "value": "364" }, { "label": "Трон: Восстание / Tron: Uprising", "value": "1887" }, { "label": "Тропико / Tropico", "value": "694" }, { "label": "Ты единственная, кто любит Великого Меня / Ore wo Suki nano wa Omae dake ka yo", "value": "1818" }, { "label": "Ты же любишь мамочку, удары которой бьют по площади двойным уроном? / Tsuujou Kougeki ga Zentai Kougeki de Ni-kai Kougeki no Okaasan wa Suki Desu ka?", "value": "333" }, { "label": "Тэнти - лишний! / Tenchi Muyo", "value": "1316" }, { "label": "У Коми-сан проблемы с общением / 古見さんは、コミュ症です / Komi Can't Communicate", "value": "591" }, { "label": "У меня мало друзей / Boku wa Tomodachi ga Sukunai", "value": "1506" }, { "label": "Убийца Акаме / Akame ga Kill", "value": "30" }, { "label": "Убийца Брайан / Carl Robert Brown", "value": "1092" }, { "label": "Убийца гоблинов / Goblin slayer", "value": "803" }, { "label": "Удар крови / Very AU strike the blood", "value": "1255" }, { "label": "Уж не зомби ли это? / Kore wa Zombie Desu ka?", "value": "725" }, { "label": "Уличный боец(Games) / Суторито Фаита / Street Fighter", "value": "1203" }, { "label": "Ультрафиолет / Ultraviolet", "value": "1831" }, { "label": "Усио и Тора / Ushio and Tora", "value": "1501" }, { "label": "Утраченное небесами / Sora no Otoshimoto / Lost Property of the Sky", "value": "627" }, { "label": "Ученик Мудреца / Kenja no Deshi wo Nanoru Kenja", "value": "1474" }, { "label": "Ученик чародея / The Sorcerer's Apprentice", "value": "862" }, { "label": "Ученики(Games) / Disciples", "value": "1478" }, { "label": "Учитель Хокаге / Hokage Master", "value": "1319" }, { "label": "Учитель-мафиози Реборн! / Katekyo Hitman Reborn!", "value": "134" }, { "label": "Ушастые Друзья / Kemono Friends", "value": "578" }, { "label": "Фальшивая любовь / Nisekoi", "value": "1103" }, { "label": "Фантастическая четвёрка / Fantastic Four", "value": "625" }, { "label": "Фантастические твари и где они обитают / Fantastic Beasts and Where to Find Them", "value": "246" }, { "label": "Финес и Ферб / Phineas and Ferb", "value": "898" }, { "label": "Флотская коллекция / Kantai Collection", "value": "1194" }, { "label": "Флэш / The Flash", "value": "1136" }, { "label": "Фонд SCP / SCP / SCP Foundation", "value": "822" }, { "label": "Форма голоса / A Silent Voice", "value": "1100" }, { "label": "Форсаж / The Fast and the Furious", "value": "363" }, { "label": "Фронт кровавой блокады / Кровавый круг - линия фронта / Kekkai Sensen / Blood Blockade Battlefront", "value": "794" }, { "label": "Футадом мир / Futadom world", "value": "984" }, { "label": "Халк / Hulk", "value": "973" }, { "label": "Хвост Феи / Fairy Tail", "value": "13" }, { "label": "Хеллбой / Hellboy", "value": "1171" }, { "label": "Хеллсинг: Война с нечистью / Hellsing", "value": "116" }, { "label": "Хикару и го / Hikaru no Go", "value": "1121" }, { "label": "Хищник / Predator", "value": "747" }, { "label": "Хоббит(Дж. Р. Р. Толкина) / The Hobbit(John R.R. Tolkien)", "value": "1127" }, { "label": "Ходячие мертвецы / The Walking Dead", "value": "704" }, { "label": "Холодное сердце / Frozen", "value": "633" }, { "label": "Хонкай удар / Honkai impact", "value": "1332" }, { "label": "Хранители Пандоры / The guardians of Pandora", "value": "1187" }, { "label": "Хранитель вечности / UQ Holder", "value": "1469" }, { "label": "Хроники Акаши / Rokudenashi Majutsu Koushi to Akashic Records", "value": "1166" }, { "label": "Хроники Ксенобладания / Дзэнобурэйдо / Xenoblade Chronicles", "value": "1110" }, { "label": "Хроники Миров(Е. Лукин) / Chronicles of the Worlds(E. Lukin)", "value": "346" }, { "label": "Хроники расхитителей гробниц / Даому Биджи / Grave Robbery Note / Dao Mu Bi Ji / Daomu Biji", "value": "724" }, { "label": "Хроники Ренегата / The Renegade Chronicles", "value": "1225" }, { "label": "Царь Горы / The Gog of the Highschool", "value": "1285" }, { "label": "Чародейки / W.I.T.C.H.", "value": "118" }, { "label": "Человек — бензопила / Chainsaw Man", "value": "797" }, { "label": "Человек — летучая мышь / Бэтмен / Bat-man / Batman", "value": "440" }, { "label": "Человек одного удара / Ванпанчмен / One Punch-Man", "value": "70" }, { "label": "Человек-паук / Spider-Man", "value": "326" }, { "label": "Чемпион! / Campione!", "value": "534" }, { "label": "Червь(Джон Маккрей) / Worm(John C. McCrae(Wildbow))", "value": "700" }, { "label": "Черная Пантера(Фильм, 2018) / Black Panther", "value": "1605" }, { "label": "Черновик(С.Лукьяненко) / Draft", "value": "1023" }, { "label": "Чернокнижник в Мире Магов / Варлок / Warlock", "value": "635" }, { "label": "Чёрные души / Black Souls", "value": "1439" }, { "label": "Чёрный зверь / Чёрный Пёс / Kuroinu", "value": "755" }, { "label": "Чёрный зверь: Развращение Благородных Воительниц / Black Beast: Corruption of the Noble Warriors", "value": "1733" }, { "label": "Чёрный клевер / Black Clover", "value": "11" }, { "label": "Что такое настоящий мир? / What is real peace?", "value": "1336" }, { "label": "Чудачества любви не помеха! / Chuunibyou Demo Koi ga Shitai!", "value": "1719" }, { "label": "Чужой / Чужие / Aliens", "value": "1791" }, { "label": "Чужой / Alien", "value": "748" }, { "label": "Чума инкорпорейтед / Plague Inc", "value": "125" }, { "label": "Шазам! / Shazam!", "value": "1560" }, { "label": "Шальной последний босс появился! / A Wild Last Boss Appeared!", "value": "968" }, { "label": "Шальные девчонки / Girl the Wild's", "value": "965" }, { "label": "Шан Чи и легенда десяти колец / Shang-Chi and the Legend of the Ten Rings", "value": "1424" }, { "label": "Шарлотта / Charlotte", "value": "71" }, { "label": "Шерлок (ВВС) / Sherlock", "value": "492" }, { "label": "Шестерни войны / Gears of War", "value": "1346" }, { "label": "Школа мертвецов / Highschool of the Dead", "value": "98" }, { "label": "Школа строгого режима / Prison School", "value": "676" }, { "label": "Школьные воины / Сила тысячи / Ikki Tosen", "value": "818" }, { "label": "Шрек(мультфильм) / Шрэк / Shrek", "value": "1586" }, { "label": "Шухер, у нас новый студент / Transfer Student The Storm Bringer", "value": "628" }, { "label": "Эволюционировать(Games) / Evolve", "value": "1789" }, { "label": "Эволюция. Естественный Отбор / Game Evolution", "value": "287" }, { "label": "Эльсворд: Эль-ий Йоин / Elsword", "value": "199" }, { "label": "Эльфийская песнь / Elfen Lied", "value": "1899" }, { "label": "Эпоха Драконов / Dragon Age", "value": "253" }, { "label": "Эр Ген Я запечатаю небеса / ISSTH / Er Gen I shall seal the heavens", "value": "1170" }, { "label": "Эрагон(Кристофер Паолини) / Eragon", "value": "417" }, { "label": "Эроманга-сэнсэй / Ero-manga Sensei", "value": "1094" }, { "label": "Эстетика заблудшего героя / Hagure Yuusha no Aesthetica", "value": "1310" }, { "label": "Эта гяру будет встречаться с отаку через 100 дней. / 100-nichigo ni Otaku-kun to Tsukiau Gal", "value": "1246" }, { "label": "Эта фарфоровая кукла влюбилась / Sono Bisque Doll wa Koi wo Suru My Dress-Up Darling", "value": "1335" }, { "label": "Это не Гарри Поттер / This is not Harry Potter", "value": "1219" }, { "label": "Этот герой неуязвим, но очень осторожен / This Hero Is Invincible but Too Cautious", "value": "1276" }, { "label": "Эффект массы / Mass Effect", "value": "213" }, { "label": "Эхо пули / Bullet Echo", "value": "1523" }, { "label": "Югио: Дуэльные монстры / Yu-Gi-Oh", "value": "1814" }, { "label": "Югио! Вреинс / Yu-Gi-Oh! VRAINS", "value": "1888" }, { "label": "Юна из гостиницы Юраги / Yuuna of Yuragi Manor", "value": "493" }, { "label": "Юная Лига Справедливости / Young Justice", "value": "1020" }, { "label": "Юные Титаны / Teen Titans", "value": "420" }, { "label": "Я - Четвертый / I Am Number Four", "value": "590" }, { "label": "Я Король-Волшебник / I Am The Sorcerer King", "value": "1292" }, { "label": "Я мачеха, но моя дочь слишком милая / I'm stepmother but daughter is too cute", "value": "777" }, { "label": "Я не родился счастливчиком / I Wasn’t Born Lucky", "value": "996" }, { "label": "Я получил читерские способности в другом мире и стал экстраординарным в реальном мире / I Got a Cheat Skill in Another World and Became Unrivaled in The Real World, Too", "value": "1900" }, { "label": "Я стала потерянной дочерью злодея / I Became the Villain’s Lost Daughter", "value": "1387" }, { "label": "Ядерный трон / Nuclear Throne", "value": "1456" }, { "label": "Ярость [Пересмотрено] / Rage [Revised]", "value": "1337" }, { "label": "Ящик предложений Мэдаки / Medaka box", "value": "874" }, { "label": "Baldur's Gate 3", "value": "1910" }, { "label": "Cказка для Дьявола / Tale For Satan", "value": "1271" }, { "label": "D&D стиль / D&D style", "value": "1289" }, { "label": "Dying Light 2: Stay Human", "value": "1906" }, { "label": "Fallout: Нью-Вегас / Fallout: New Vegas", "value": "1249" }, { "label": "Mato Seihei no Slave", "value": "1913" }, { "label": "Metal Gear Rising: Месть / Metal Gear Rising: Revengeance", "value": "1911" }, { "label": "Re: Жизнь в альтернативном мире с нуля / Re: Zero, Starting Life in Another World", "value": "57" }, { "label": "Re:Zero Начало жизни в другом мире / Re:Zero Starting Life in Another World", "value": "1531" }, { "label": "Rimworld", "value": "1894" }, { "label": "The Second Coming of Gluttony / The Second Coming of Avarice", "value": "1236" }, { "label": "Vfhdbk", "value": "1884" }, { "label": "XCOM: Враг внутри / XCOM: Enemy Unknown", "value": "476" }, { "label": "Xenus: Точка кипения / Boiling point: Road To Hell / Xenus: Boiling Point", "value": "695" }], "type": filterInputs_1.FilterTypes.CheckboxGroup } } }); -exports.default = plugin; diff --git a/.js/plugins/russian/authortoday.js b/.js/plugins/russian/authortoday.js deleted file mode 100644 index b1531ef..0000000 --- a/.js/plugins/russian/authortoday.js +++ /dev/null @@ -1,388 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var filterInputs_1 = require("@libs/filterInputs"); -var defaultCover_1 = require("@libs/defaultCover"); -var fetch_1 = require("@libs/fetch"); -var novelStatus_1 = require("@libs/novelStatus"); -var cheerio_1 = require("cheerio"); -var dayjs_1 = __importDefault(require("dayjs")); -var apiUrl = "https://api.author.today/"; -var token = "Bearer guest"; -var AuthorToday = /** @class */ (function () { - function AuthorToday() { - this.id = "AT"; - this.name = "Автор Тудей"; - this.icon = "src/ru/authortoday/icon.png"; - this.site = "https://author.today"; - this.version = "1.0.0"; - this.fetchImage = fetch_1.fetchFile; - this.filters = { - sort: { - label: "Сортировка", - value: "", - options: [ - { label: "По популярности", value: "popular" }, - { label: "По количеству лайков", value: "likes" }, - { label: "По комментариям", value: "comments" }, - { label: "По новизне", value: "recent" }, - { label: "По просмотрам", value: "views" }, - { label: "Набирающие популярность", value: "trending" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - genre: { - label: "Жанры", - value: "", - options: [ - { label: "Альтернативная история", value: "sf-history" }, - { label: "Антиутопия", value: "dystopia" }, - { label: "Бизнес-литература", value: "biznes-literatura" }, - { label: "Боевая фантастика", value: "sf-action" }, - { label: "Боевик", value: "action" }, - { label: "Боевое фэнтези", value: "fantasy-action" }, - { label: "Бояръ-Аниме", value: "boyar-anime" }, - { label: "Героическая фантастика", value: "sf-heroic" }, - { label: "Героическое фэнтези", value: "heroic-fantasy" }, - { label: "Городское фэнтези", value: "urban-fantasy" }, - { label: "Детектив", value: "detective" }, - { label: "Детская литература", value: "detskaya-literatura" }, - { label: "Документальная проза", value: "non-fiction" }, - { label: "Историческая проза", value: "historical-fiction" }, - { label: "Исторические приключения", value: "historical-adventure" }, - { label: "Исторический детектив", value: "historical-mystery" }, - { label: "Исторический любовный роман", value: "historical-romance" }, - { label: "Историческое фэнтези", value: "historical-fantasy" }, - { label: "Киберпанк", value: "cyberpunk" }, - { label: "Короткий любовный роман", value: "short-romance" }, - { label: "Космическая фантастика", value: "sf-space" }, - { label: "ЛитРПГ", value: "litrpg" }, - { label: "Любовное фэнтези", value: "love-fantasy" }, - { label: "Любовные романы", value: "romance" }, - { label: "Мистика", value: "paranormal" }, - { label: "Назад в СССР", value: "back-to-ussr" }, - { label: "Научная фантастика", value: "science-fiction" }, - { label: "Подростковая проза", value: "teen-prose" }, - { label: "Политический роман", value: "political-fiction" }, - { label: "Попаданцы", value: "popadantsy" }, - { label: "Попаданцы в космос", value: "popadantsy-v-kosmos" }, - { label: "Попаданцы в магические миры", value: "popadantsy-v-magicheskie-miry" }, - { label: "Попаданцы во времени", value: "popadantsy-vo-vremeni" }, - { label: "Постапокалипсис", value: "postapocalyptic" }, - { label: "Поэзия", value: "poetry" }, - { label: "Приключения", value: "adventure" }, - { label: "Публицистика", value: "publicism" }, - { label: "Развитие личности", value: "razvitie-lichnosti" }, - { label: "Разное", value: "other" }, - { label: "РеалРПГ", value: "realrpg" }, - { label: "Романтическая эротика", value: "romantic-erotika" }, - { label: "Сказка", value: "fairy-tale" }, - { label: "Современная проза", value: "modern-prose" }, - { label: "Современный любовный роман", value: "contemporary-romance" }, - { label: "Социальная фантастика", value: "sf-social" }, - { label: "Стимпанк", value: "steampunk" }, - { label: "Темное фэнтези", value: "dark-fantasy" }, - { label: "Триллер", value: "thriller" }, - { label: "Ужасы", value: "horror" }, - { label: "Фантастика", value: "sci-fi" }, - { label: "Фантастический детектив", value: "detective-science-fiction" }, - { label: "Фанфик", value: "fanfiction" }, - { label: "Фэнтези", value: "fantasy" }, - { label: "Шпионский детектив", value: "spy-mystery" }, - { label: "Эпическое фэнтези", value: "epic-fantasy" }, - { label: "Эротика", value: "erotica" }, - { label: "Эротическая фантастика", value: "sf-erotika" }, - { label: "Эротический фанфик", value: "fanfiction-erotika" }, - { label: "Эротическое фэнтези", value: "fantasy-erotika" }, - { label: "Юмор", value: "humor" }, - { label: "Юмористическая фантастика", value: "sf-humor" }, - { label: "Юмористическое фэнтези", value: "ironical-fantasy" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - form: { - label: "Форма произведения", - value: "", - options: [ - { label: "Любой", value: "any" }, - { label: "Перевод", value: "translation" }, - { label: "Повесть", value: "tale" }, - { label: "Рассказ", value: "story" }, - { label: "Роман", value: "novel" }, - { label: "Сборник поэзии", value: "poetry" }, - { label: "Сборник рассказов", value: "story-book" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - state: { - label: "Статус произведения", - value: "", - options: [ - { label: "Любой статус", value: "any" }, - { label: "В процессе", value: "in-progress" }, - { label: "Завершено", value: "finished" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - series: { - label: "Статус цикла", - value: "", - options: [ - { label: "Не важно", value: "any" }, - { label: "Вне цикла", value: "out" }, - { label: "Цикл завершен", value: "finished" }, - { label: "Цикл не завершен", value: "unfinished" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - access: { - label: "Тип доступа", - value: "", - options: [ - { label: "Любой", value: "any" }, - { label: "Платный", value: "paid" }, - { label: "Бесплатный", value: "free" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - promo: { - label: "Промо-фрагмент", - value: "", - options: [ - { label: "Скрывать", value: "hide" }, - { label: "Показывать", value: "show" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - }; - } - AuthorToday.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g, _h, _j; - var showLatestNovels = _a.showLatestNovels, filters = _a.filters; - return __awaiter(this, void 0, void 0, function () { - var url, result, json, novels; - var _this = this; - return __generator(this, function (_k) { - switch (_k.label) { - case 0: - url = apiUrl + "v1/catalog/search?page=" + pageNo; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genre) === null || _b === void 0 ? void 0 : _b.value) { - url += "&genre=" + filters.genre.value; - } - url += - "&sorting=" + (showLatestNovels ? "recent" : ((_c = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _c === void 0 ? void 0 : _c.value) || "popular"); - url += "&form=" + (((_d = filters === null || filters === void 0 ? void 0 : filters.form) === null || _d === void 0 ? void 0 : _d.value) || "any"); - url += "&state=" + (((_e = filters === null || filters === void 0 ? void 0 : filters.state) === null || _e === void 0 ? void 0 : _e.value) || "any"); - url += "&series=" + (((_f = filters === null || filters === void 0 ? void 0 : filters.series) === null || _f === void 0 ? void 0 : _f.value) || "any"); - url += "&access=" + (((_g = filters === null || filters === void 0 ? void 0 : filters.access) === null || _g === void 0 ? void 0 : _g.value) || "any"); - url += "&promo=" + (((_h = filters === null || filters === void 0 ? void 0 : filters.promo) === null || _h === void 0 ? void 0 : _h.value) || "hide"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url, { - headers: { - Authorization: token, - }, - })]; - case 1: - result = _k.sent(); - return [4 /*yield*/, result.json()]; - case 2: - json = (_k.sent()); - novels = []; - if ((json === null || json === void 0 ? void 0 : json.code) === "NotFound") { - return [2 /*return*/, novels]; - } - (_j = json === null || json === void 0 ? void 0 : json.searchResults) === null || _j === void 0 ? void 0 : _j.forEach(function (novel) { - return novels.push({ - name: novel.title, - cover: (novel === null || novel === void 0 ? void 0 : novel.coverUrl) - ? "https://cm.author.today/content/" + novel.coverUrl - : defaultCover_1.defaultCover, - url: _this.site + "/work/" + novel.id, - }); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - AuthorToday.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var workID, result, json, novel, chaptersRaw, chaptersJSON, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - workID = novelUrl.split("/")[4]; - return [4 /*yield*/, (0, fetch_1.fetchApi)("".concat(apiUrl, "v1/work/").concat(workID, "/details"), { - headers: { - Authorization: token, - }, - })]; - case 1: - result = _b.sent(); - return [4 /*yield*/, result.json()]; - case 2: - json = (_b.sent()); - novel = { - url: novelUrl, - name: json.title, - cover: (json === null || json === void 0 ? void 0 : json.coverUrl) ? json.coverUrl.split("?")[0] : defaultCover_1.defaultCover, - author: (json === null || json === void 0 ? void 0 : json.originalAuthor) || - (json === null || json === void 0 ? void 0 : json.authorFIO) || - (json === null || json === void 0 ? void 0 : json.coAuthorFIO) || - (json === null || json === void 0 ? void 0 : json.secondCoAuthorFIO) || - (json === null || json === void 0 ? void 0 : json.translator) || - "", - genres: (_a = json === null || json === void 0 ? void 0 : json.tags) === null || _a === void 0 ? void 0 : _a.join(", "), - status: (json === null || json === void 0 ? void 0 : json.isFinished) ? novelStatus_1.NovelStatus.Completed : novelStatus_1.NovelStatus.Ongoing, - }; - novel.summary = ""; - novel.summary += (json === null || json === void 0 ? void 0 : json.annotation) ? json.annotation + "\n" : ""; - novel.summary += (json === null || json === void 0 ? void 0 : json.authorNotes) - ? "Примечания автора:\n" + json.authorNotes - : ""; - return [4 /*yield*/, (0, fetch_1.fetchApi)("".concat(apiUrl, "v1/work/").concat(workID, "/content"), { - headers: { - Authorization: token, - }, - })]; - case 3: - chaptersRaw = _b.sent(); - return [4 /*yield*/, chaptersRaw.json()]; - case 4: - chaptersJSON = (_b.sent()); - chapters = []; - chaptersJSON === null || chaptersJSON === void 0 ? void 0 : chaptersJSON.forEach(function (chapter, index) { - if ((chapter === null || chapter === void 0 ? void 0 : chapter.isAvailable) && !(chapter === null || chapter === void 0 ? void 0 : chapter.isDraft)) { - chapters.push({ - name: (chapter === null || chapter === void 0 ? void 0 : chapter.title) || "\u0413\u043B\u0430\u0432\u0430 ".concat(index + 1), - releaseTime: (0, dayjs_1.default)((chapter === null || chapter === void 0 ? void 0 : chapter.publishTime) || chapter.lastModificationTime).format("LLL"), - url: "".concat(apiUrl, "v1/work/").concat(workID, "/chapter/").concat(chapter.id, "/text"), - }); - } - }); - novel.chapters = chapters; - return [2 /*return*/, novel]; - } - }); - }); - }; - AuthorToday.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var result, json, key, text, i, loadedCheerio, baseUrl, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl, { - headers: { - Authorization: token, - }, - })]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.json()]; - case 2: - json = (_a.sent()); - if (json === null || json === void 0 ? void 0 : json.code) { - return [2 /*return*/, json.code + "\n" + (json === null || json === void 0 ? void 0 : json.message)]; - } - key = json.key.split("").reverse().join("") + "@_@"; - text = ""; - for (i = 0; i < json.text.length; i++) { - text += String.fromCharCode(json.text.charCodeAt(i) ^ key.charCodeAt(Math.floor(i % key.length))); - } - loadedCheerio = (0, cheerio_1.load)(text); - baseUrl = this.site; - loadedCheerio("img").each(function () { - var _a; - if (!((_a = loadedCheerio(this).attr("src")) === null || _a === void 0 ? void 0 : _a.startsWith("http"))) { - var src = loadedCheerio(this).attr("src"); - loadedCheerio(this).attr("src", baseUrl + src); - } - }); - chapterText = loadedCheerio.html(); - return [2 /*return*/, chapterText]; - } - }); - }); - }; - AuthorToday.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var baseUrl, url, result, body, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - baseUrl = this.site; - url = baseUrl + "/search?category=works&q=" + searchTerm + "&page="; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url + (pageNo || 1))]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio("div.book-row").each(function () { - var _a; - var name = loadedCheerio(this) - .find('div[class="book-title"] a') - .text() - .trim(); - var cover = loadedCheerio(this).find("img").attr("src"); - var url = baseUrl + - "/work/" + - ((_a = loadedCheerio(this) - .find('div[class="book-title"] a') - .attr("href")) === null || _a === void 0 ? void 0 : _a.split("/")[2]); - if (cover) { - cover = cover.split("?")[0]; - } - else { - cover = defaultCover_1.defaultCover; - } - novels.push({ name: name, cover: cover, url: url }); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - return AuthorToday; -}()); -exports.default = new AuthorToday(); diff --git a/.js/plugins/russian/bookriver.js b/.js/plugins/russian/bookriver.js deleted file mode 100644 index 1e7f385..0000000 --- a/.js/plugins/russian/bookriver.js +++ /dev/null @@ -1,259 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var filterInputs_1 = require("@libs/filterInputs"); -var fetch_1 = require("@libs/fetch"); -var novelStatus_1 = require("@libs/novelStatus"); -var cheerio_1 = require("cheerio"); -var dayjs_1 = __importDefault(require("dayjs")); -var Bookriver = /** @class */ (function () { - function Bookriver() { - this.id = "bookriver"; - this.name = "Bookriver"; - this.site = "https://bookriver.ru"; - this.version = "1.0.0"; - this.icon = "src/ru/bookriver/icon.png"; - this.fetchImage = fetch_1.fetchFile; - this.filters = { - sort: { - label: "Сортировка", - value: "", - options: [ - { label: "Бестселлеры", value: "bestseller" }, - { label: "Дате добавления", value: "newest" }, - { label: "Дате обновления", value: "last-update" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - genres: { - label: "жанры", - value: [], - options: [ - { label: "Альтернативная история", value: "alternativnaya-istoriya" }, - { label: "Боевая фантастика", value: "boevaya-fantastika" }, - { label: "Боевое фэнтези", value: "boevoe-fentezi" }, - { label: "Бытовое фэнтези", value: "bytovoe-fentezi" }, - { label: "Героическая фантастика", value: "geroicheskaya-fantastika" }, - { label: "Героическое фэнтези", value: "geroicheskoe-fentezi" }, - { label: "Городское фэнтези", value: "gorodskoe-fentezi" }, - { label: "Детектив", value: "detektiv" }, - { label: "Детективная фантастика", value: "detektivnaya-fantastika" }, - { label: "Жёсткая эротика", value: "zhyostkaya-erotika" }, - { label: "Исторический детектив", value: "istoricheskii-detektiv" }, - { label: "Исторический любовный роман", value: "istoricheskii-lyubovnyi-roman" }, - { label: "Историческое фэнтези", value: "istoricheskoe-fentezi" }, - { label: "Киберпанк", value: "kiberpank" }, - { label: "Классический детектив", value: "klassicheskii-detektiv" }, - { label: "Короткий любовный роман", value: "korotkii-lyubovnyi-roman" }, - { label: "Космическая фантастика", value: "kosmicheskaya-fantastika" }, - { label: "Криминальный детектив", value: "kriminalnyi-detektiv" }, - { label: "ЛитРПГ", value: "litrpg" }, - { label: "Любовная фантастика", value: "lyubovnaya-fantastika" }, - { label: "Любовное фэнтези", value: "lyubovnoe-fentezi" }, - { label: "Любовный роман", value: "lyubovnyi-roman" }, - { label: "Мистика", value: "mistika" }, - { label: "Молодежная проза", value: "molodezhnaya-proza" }, - { label: "Научная фантастика", value: "nauchnaya-fantastika" }, - { label: "Остросюжетный любовный роман", value: "ostrosyuzhetnyi-lyubovnyi-roman" }, - { label: "Политический детектив", value: "politicheskii-detektiv" }, - { label: "Попаданцы", value: "popadantsy" }, - { label: "Постапокалипсис", value: "postapokalipsis" }, - { label: "Приключенческое фэнтези", value: "priklyuchencheskoe-fentezi" }, - { label: "Романтическая эротика", value: "romanticheskaya-erotika" }, - { label: "С элементами эротики", value: "s-elementami-erotiki" }, - { label: "Славянское фэнтези", value: "slavyanskoe-fentezi" }, - { label: "Современный любовный роман", value: "sovremennyi-lyubovnyi-roman" }, - { label: "Социальная фантастика", value: "sotsialnaya-fantastika" }, - { label: "Тёмное фэнтези", value: "temnoe-fentezi" }, - { label: "Фантастика", value: "fantastika" }, - { label: "Фэнтези", value: "fentezi" }, - { label: "Шпионский детектив", value: "shpionskii-detektiv" }, - { label: "Эпическое фэнтези", value: "epicheskoe-fentezi" }, - { label: "Эротика", value: "erotika" }, - { label: "Эротическая фантастика", value: "eroticheskaya-fantastika" }, - { label: "Эротический фанфик", value: "eroticheskii-fanfik" }, - { label: "Эротическое фэнтези", value: "eroticheskoe-fentezi" }, - { label: "Юмористический детектив", value: "yumoristicheskii-detektiv" }, - { label: "Юмористическое фэнтези", value: "yumoristicheskoe-fentezi" }, - ], - type: filterInputs_1.FilterTypes.CheckboxGroup, - }, - }; - } - Bookriver.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var showLatestNovels = _a.showLatestNovels, filters = _a.filters; - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novels, jsonRaw, json; - var _this = this; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - url = this.site + "/genre?page=".concat(pageNo, "&perPage=24&sortingType="); - url += showLatestNovels - ? "last-update" - : ((_b = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _b === void 0 ? void 0 : _b.value) || "bestseller"; - if (((_c = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _c === void 0 ? void 0 : _c.value) instanceof Array && ((_d = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _d === void 0 ? void 0 : _d.value.length)) { - url += "&g=" + filters.genres.value.join(","); - } - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _h.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - jsonRaw = loadedCheerio("#__NEXT_DATA__").html(); - if (jsonRaw) { - json = JSON.parse(jsonRaw); - (_g = (_f = (_e = json.props.pageProps.state.pagesFilter) === null || _e === void 0 ? void 0 : _e.genre) === null || _f === void 0 ? void 0 : _f.books) === null || _g === void 0 ? void 0 : _g.forEach(function (novel) { - return novels.push({ - name: novel.name, - cover: novel.coverImages[0].url, - url: _this.site + "/book/" + novel.slug, - }); - }); - } - return [2 /*return*/, novels]; - } - }); - }); - }; - Bookriver.prototype.parseNovelAndChapters = function (novelUrl) { - var _a, _b, _c, _d, _e; - return __awaiter(this, void 0, void 0, function () { - var result, body, loadedCheerio, jsonRaw, json, book, novel, chapters; - var _this = this; - return __generator(this, function (_f) { - switch (_f.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl)]; - case 1: - result = _f.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _f.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - jsonRaw = loadedCheerio("#__NEXT_DATA__").html(); - json = JSON.parse(jsonRaw || "{}"); - book = (_a = json.props.pageProps.state.book) === null || _a === void 0 ? void 0 : _a.bookPage; - novel = { - url: novelUrl, - name: book === null || book === void 0 ? void 0 : book.name, - cover: book === null || book === void 0 ? void 0 : book.coverImages[0].url, - summary: book === null || book === void 0 ? void 0 : book.annotation, - author: (_b = book === null || book === void 0 ? void 0 : book.author) === null || _b === void 0 ? void 0 : _b.name, - genres: (_c = book === null || book === void 0 ? void 0 : book.tags) === null || _c === void 0 ? void 0 : _c.map(function (item) { return item.name; }).join(", "), - status: (book === null || book === void 0 ? void 0 : book.statusComplete) === "writing" - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed, - }; - chapters = []; - (_e = (_d = book === null || book === void 0 ? void 0 : book.ebook) === null || _d === void 0 ? void 0 : _d.chapters) === null || _e === void 0 ? void 0 : _e.forEach(function (chapter) { - if (chapter.available) { - chapters.push({ - name: chapter.name, - releaseTime: (0, dayjs_1.default)((chapter === null || chapter === void 0 ? void 0 : chapter.firstPublishedAt) || chapter.createdAt).format("LLL"), - url: _this.site + "/reader/" + (book === null || book === void 0 ? void 0 : book.slug) + "/" + chapter.chapterId, - }); - } - }); - novel.chapters = chapters; - return [2 /*return*/, novel]; - } - }); - }); - }; - Bookriver.prototype.parseChapter = function (chapterUrl) { - var _a, _b; - return __awaiter(this, void 0, void 0, function () { - var url, result, json, chapterText; - return __generator(this, function (_c) { - switch (_c.label) { - case 0: - url = "https://api.bookriver.ru/api/v1/books/chapter/text/"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url + chapterUrl.split("/").pop())]; - case 1: - result = _c.sent(); - return [4 /*yield*/, result.json()]; - case 2: - json = (_c.sent()); - chapterText = json.data.content || "Конец произведения"; - if ((_b = (_a = json.data) === null || _a === void 0 ? void 0 : _a.audio) === null || _b === void 0 ? void 0 : _b.available) { - chapterText += "\n" + json.data.audio.url; - } - return [2 /*return*/, chapterText]; - } - }); - }); - }; - Bookriver.prototype.searchNovels = function (searchTerm, pageNo) { - var _a, _b; - if (pageNo === void 0) { pageNo = 1; } - return __awaiter(this, void 0, void 0, function () { - var url, result, json, novels; - var _this = this; - return __generator(this, function (_c) { - switch (_c.label) { - case 0: - url = "https://api.bookriver.ru/api/v1/search/autocomplete?keyword=".concat(searchTerm, "&page=").concat(pageNo, "&perPage=10"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _c.sent(); - return [4 /*yield*/, result.json()]; - case 2: - json = (_c.sent()); - novels = []; - (_b = (_a = json === null || json === void 0 ? void 0 : json.data) === null || _a === void 0 ? void 0 : _a.books) === null || _b === void 0 ? void 0 : _b.forEach(function (novel) { - return novels.push({ - name: novel.name, - cover: novel.coverImages[0].url, - url: _this.site + "/book/" + novel.slug, - }); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - return Bookriver; -}()); -exports.default = new Bookriver(); diff --git a/.js/plugins/russian/ficbook.js b/.js/plugins/russian/ficbook.js deleted file mode 100644 index 1fd8cd7..0000000 --- a/.js/plugins/russian/ficbook.js +++ /dev/null @@ -1,2673 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var filterInputs_1 = require("@libs/filterInputs"); -var fetch_1 = require("@libs/fetch"); -var novelStatus_1 = require("@libs/novelStatus"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var ficbook = /** @class */ (function () { - function ficbook() { - this.id = "ficbook"; - this.name = "ficbook"; - this.site = "https://ficbook.net"; - this.version = "1.0.0"; - this.icon = "src/ru/ficbook/icon.png"; - this.fetchImage = fetch_1.fetchFile; - this.filters = { - sort: { - label: "Сортировка:", - value: "", - options: [ - { label: "Горячие работы", value: "fanfiction" }, - { label: "Популярные ", value: "popular-fanfics" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - directions: { - label: "Направление:", - value: "", - options: [ - { label: "Все", value: "" }, - { label: "Джен", value: "gen" }, - { label: "Гет", value: "het" }, - { label: "Слэш", value: "slash-fics-3712917" }, - { label: "Фемслэш", value: "femslash-fanfics-9374932" }, - { label: "Статьи", value: "article" }, - { label: "Смешанный", value: "mixed" }, - { label: "Другой", value: "other" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - tags: { - label: "Тэги:", - value: "", - options: [ - { label: "Все", value: "" }, - { label: "#1fic1week", value: "884" }, - { label: "#7daystowrite", value: "2961" }, - { label: "#Бинго_ТФ", value: "1458" }, - { label: "#миниатюры3days", value: "2118" }, - { label: "#Не_Тайный_Санта", value: "2760" }, - { label: "#Писательские фанты-блиц", value: "2613" }, - { label: "#cosmowrite", value: "2284" }, - { label: "#femKHRweek", value: "2658" }, - { label: "#FourShips", value: "2588" }, - { label: "#Goretober", value: "1861" }, - { label: "#InternationalVampireDay / #WorldDraculaDay", value: "2048" }, - { label: "#KattWeek", value: "2717" }, - { label: "#Kinktober", value: "1867" }, - { label: "#LotorWeek", value: "2657" }, - { label: "#MerMay", value: "1122" }, - { label: "#NaNoWriMo", value: "1852" }, - { label: "#nsfweruriweek", value: "2944" }, - { label: "#RCMiaChallenge", value: "2700" }, - { label: "#SheithMonth", value: "2432" }, - { label: "#SixDrabbles", value: "2293" }, - { label: "#Writober", value: "1831" }, - { label: "1900-е годы", value: "369" }, - { label: "1910-е годы", value: "213" }, - { label: "1920-е годы", value: "81" }, - { label: "1930-е годы", value: "82" }, - { label: "1940-е годы", value: "83" }, - { label: "1950-е годы", value: "84" }, - { label: "1960-е годы", value: "85" }, - { label: "1970-е годы", value: "86" }, - { label: "1980-е годы", value: "87" }, - { label: "1990-е годы", value: "88" }, - { label: "2000-е годы", value: "590" }, - { label: "2010-е годы", value: "2562" }, - { label: "2014 год", value: "2977" }, - { label: "2P", value: "1910" }, - { label: "9 мая", value: "1019" }, - { label: "Аборт / Выкидыш", value: "306" }, - { label: "Аватары", value: "2401" }, - { label: "Авиатранспорт", value: "962" }, - { label: "Авиация", value: "455" }, - { label: "Аврорат", value: "1906" }, - { label: "Австралия", value: "767" }, - { label: "Австрия", value: "1024" }, - { label: "Автомастерские", value: "788" }, - { label: "Авторская пунктуация", value: "2886" }, - { label: "Авторские неологизмы", value: "1123" }, - { label: "Автоспорт", value: "856" }, - { label: "Автостоп", value: "1429" }, - { label: "Аддикции", value: "1230" }, - { label: "Адреналиновая зависимость", value: "1480" }, - { label: "Азартные игры", value: "1009" }, - { label: "Азкабан", value: "1922" }, - { label: "Аквакинез", value: "1380" }, - { label: "Аквапарки", value: "789" }, - { label: "Акростих", value: "911" }, - { label: "Актеры", value: "408" }, - { label: "Акустикофилия", value: "903" }, - { label: "Алекситимия", value: "2020" }, - { label: "Алкоголь", value: "201" }, - { label: "Алкогольные игры", value: "1534" }, - { label: "Аллергии", value: "746" }, - { label: "Алхимия", value: "1174" }, - { label: "Альбинизм", value: "1213" }, - { label: "Альпинизм", value: "1448" }, - { label: "Альтернативная мировая история", value: "442" }, - { label: "Альтернативное размножение", value: "2751" }, - { label: "Альтернативные судьбы", value: "2839" }, - { label: "Амазонки", value: "1424" }, - { label: "Амегакуре", value: "2571" }, - { label: "Американский футбол", value: "808" }, - { label: "Ампутация", value: "704" }, - { label: "Амфибии", value: "2792" }, - { label: "Анальгезия", value: "1254" }, - { label: "Анальный оргазм", value: "999" }, - { label: "Анальный секс", value: "215" }, - { label: "Анархия", value: "1175" }, - { label: "Анахронизмы", value: "780" }, - { label: "Ангелы", value: "91" }, - { label: "Ангелы-хранители", value: "1044" }, - { label: "Ангст", value: "1665" }, - { label: "Андрогинная внешность", value: "2602" }, - { label: "Андроиды", value: "155" }, - { label: "Анимагия", value: "2519" }, - { label: "Анимализм", value: "1443" }, - { label: "Аномальные зоны", value: "822" }, - { label: "Анонимный секс", value: "112" }, - { label: "Анрождение", value: "1246" }, - { label: "Антарктида", value: "2205" }, - { label: "Анти-Сью (Анти-Стью)", value: "1150" }, - { label: "Антигерои", value: "418" }, - { label: "Антизлодеи", value: "1833" }, - { label: "Антикварные магазины", value: "1496" }, - { label: "Антисоциальное расстройство личности", value: "734" }, - { label: "Антиутопия", value: "1700" }, - { label: "Античность", value: "237" }, - { label: "Апатия", value: "1850" }, - { label: "Аптеки", value: "1240" }, - { label: "Аргентина", value: "1146" }, - { label: "Арены", value: "940" }, - { label: "Аристократия", value: "16" }, - { label: "Арктика", value: "2426" }, - { label: "Армия", value: "22" }, - { label: "Аромантичные персонажи", value: "339" }, - { label: "Артефакты", value: "924" }, - { label: "Археологи", value: "405" }, - { label: "Архивы", value: "2594" }, - { label: "Архитекторы", value: "1011" }, - { label: "Асексофобия", value: "1120" }, - { label: "Асексуальные персонажи", value: "168" }, - { label: "Аскетизм", value: "606" }, - { label: "Асоциальность", value: "2019" }, - { label: "Ассистенты", value: "2641" }, - { label: "Астма", value: "1121" }, - { label: "Астральное проецирование", value: "2530" }, - { label: "Астральные миры", value: "1379" }, - { label: "Астрология", value: "476" }, - { label: "Астронавты", value: "2220" }, - { label: "Астрономия", value: "1372" }, - { label: "Асфиксия", value: "104" }, - { label: "Атеисты", value: "669" }, - { label: "Атлантида", value: "1144" }, - { label: "Атмокинез", value: "1964" }, - { label: "Атмосферная зарисовка", value: "2802" }, - { label: "Атомные электростанции", value: "2192" }, - { label: "Аудиокинез", value: "2849" }, - { label: "Аукционы", value: "607" }, - { label: "Аутоассасинофилия", value: "2025" }, - { label: "Аутоканнибализм", value: "2593" }, - { label: "Аутофелляция / Аутокуннилингус", value: "610" }, - { label: "Африка", value: "791" }, - { label: "Афродизиаки", value: "103" }, - { label: "Аффект", value: "938" }, - { label: "Аэрокинез", value: "2850" }, - { label: "Байкеры", value: "522" }, - { label: "Байронические герои", value: "2900" }, - { label: "Балет", value: "404" }, - { label: "Баллада", value: "2318" }, - { label: "Банки / Биржи", value: "937" }, - { label: "Банши", value: "250" }, - { label: "Барти Крауч-младший — не Пожиратель Смерти", value: "2795" }, - { label: "Бары", value: "142" }, - { label: "Баскетбол", value: "829" }, - { label: "Баски", value: "1763" }, - { label: "Бастарды", value: "603" }, - { label: "Батохаки", value: "2830" }, - { label: "Бедность", value: "979" }, - { label: "Без Волдеморта", value: "2160" }, - { label: "Без диалогов (стилизация)", value: "2885" }, - { label: "Без золотого трио", value: "2648" }, - { label: "Без Избранного (Гарри Поттер)", value: "2762" }, - { label: "Без канонических персонажей", value: "2694" }, - { label: "Без Таноса", value: "2381" }, - { label: "БезГражданки", value: "2418" }, - { label: "Бездомные", value: "916" }, - { label: "Безответственность", value: "2152" }, - { label: "Безумные ученые", value: "2559" }, - { label: "Безэмоциональность", value: "1488" }, - { label: "Бейсбол", value: "1489" }, - { label: "Беларусь", value: "1030" }, - { label: "Белый день", value: "683" }, - { label: "Белый стих", value: "1998" }, - { label: "Бельгия", value: "1039" }, - { label: "Беременность", value: "1712" }, - { label: "Бермудский треугольник", value: "1158" }, - { label: "Берсерки", value: "566" }, - { label: "Бесконтактный секс", value: "2214" }, - { label: "Бесплодие", value: "719" }, - { label: "Беспокойство", value: "2888" }, - { label: "Беспризорники", value: "604" }, - { label: "Беспричудный Изуку", value: "2422" }, - { label: "Бессмертие", value: "219" }, - { label: "Бессмертный конкурс 2023", value: "3016" }, - { label: "Бестелесность", value: "2607" }, - { label: "Би-персонажи", value: "300" }, - { label: "Библейские темы и мотивы", value: "1468" }, - { label: "Библиотекари", value: "2631" }, - { label: "Библиотеки", value: "310" }, - { label: "Бизнесмены / Бизнесвумен", value: "573" }, - { label: "Биологическое оружие", value: "1188" }, - { label: "Биопанк", value: "281" }, - { label: "Биороботы", value: "2256" }, - { label: "Биполярное расстройство", value: "690" }, - { label: "Битва за Хогвартс", value: "2774" }, - { label: "Битва Историй", value: "2960" }, - { label: "Благородные разбойники", value: "952" }, - { label: "Благотворительность", value: "613" }, - { label: "Бладплей", value: "109" }, - { label: "Ближний Восток", value: "1041" }, - { label: "Близкие враги", value: "721" }, - { label: "Близнецы", value: "295" }, - { label: "Блиц-свидания", value: "2511" }, - { label: "Блогеры", value: "1471" }, - { label: "Блокадный Ленинград", value: "1111" }, - { label: "Блэкигуд", value: "2905" }, - { label: "Богачи", value: "1549" }, - { label: "Боги / Божественные сущности", value: "149" }, - { label: "Боди-арт", value: "2260" }, - { label: "Бодипозитив", value: "1153" }, - { label: "Боевая пара", value: "1919" }, - { label: "Боевые искусства", value: "918" }, - { label: "Бои без правил", value: "1390" }, - { label: "Бокс", value: "765" }, - { label: "Болгария", value: "1786" }, - { label: "Болезнь Альцгеймера", value: "2533" }, - { label: "Боль", value: "1803" }, - { label: "Больницы", value: "20" }, - { label: "Большая Игра профессора Дамблдора", value: "2890" }, - { label: "Бордели", value: "120" }, - { label: "Борьба за власть", value: "2300" }, - { label: "Борьба за отношения", value: "1251" }, - { label: "Борьба за справедливость", value: "2335" }, - { label: "Боязнь боли", value: "2441" }, - { label: "Боязнь воды", value: "1084" }, - { label: "Боязнь врачей", value: "2063" }, - { label: "Боязнь высоты", value: "1085" }, - { label: "Боязнь грозы", value: "1124" }, - { label: "Боязнь громких звуков", value: "1090" }, - { label: "Боязнь грязи", value: "1277" }, - { label: "Боязнь замкнутых пространств", value: "821" }, - { label: "Боязнь зеркал", value: "2739" }, - { label: "Боязнь клоунов", value: "2970" }, - { label: "Боязнь крови", value: "1312" }, - { label: "Боязнь людей", value: "1082" }, - { label: "Боязнь мужчин", value: "1264" }, - { label: "Боязнь насекомых / Боязнь пауков", value: "1119" }, - { label: "Боязнь неудачи", value: "2713" }, - { label: "Боязнь огня", value: "1258" }, - { label: "Боязнь одиночества", value: "1491" }, - { label: "Боязнь открытых пространств", value: "965" }, - { label: "Боязнь привязанности", value: "1343" }, - { label: "Боязнь призраков", value: "2770" }, - { label: "Боязнь прикосновений", value: "823" }, - { label: "Боязнь сексуальных домогательств", value: "2319" }, - { label: "Боязнь смерти", value: "1515" }, - { label: "Боязнь сна", value: "2262" }, - { label: "Боязнь темноты", value: "1494" }, - { label: "Боязнь тишины", value: "2233" }, - { label: "Бразилия", value: "833" }, - { label: "Брак по договоренности", value: "35" }, - { label: "Брак по расчету", value: "303" }, - { label: "БРД", value: "2907" }, - { label: "Бродячие артисты", value: "2661" }, - { label: "Бродячие певцы", value: "1497" }, - { label: "Броманс", value: "171" }, - { label: "Будущее", value: "227" }, - { label: "Буллёзный эпидермолиз", value: "2725" }, - { label: "Буллинг", value: "436" }, - { label: "Бухгалтеры", value: "2509" }, - { label: "Буч и фэм", value: "486" }, - { label: "Бывшие", value: "311" }, - { label: "Бывшие враги", value: "2812" }, - { label: "Бывшие серийные убийцы", value: "2498" }, - { label: "Бытовое фэнтези", value: "2702" }, - { label: "В одном теле", value: "1425" }, - { label: "В поисках отношений", value: "1576" }, - { label: "В. А. О. Н.", value: "2377" }, - { label: "Вагинальный секс", value: "395" }, - { label: "Ваканда", value: "2668" }, - { label: "Валькирии", value: "557" }, - { label: "Вампиры", value: "27" }, - { label: "Василиски", value: "863" }, - { label: "Вдовство", value: "2030" }, - { label: "Вебкам-модели", value: "2299" }, - { label: "Вегетарианцы / Веганы", value: "577" }, - { label: "Ведьмы / Колдуны", value: "33" }, - { label: "Великая депрессия", value: "2224" }, - { label: "Великая французская революция", value: "2000" }, - { label: "Великобритания", value: "673" }, - { label: "Великое Княжество Литовское", value: "2587" }, - { label: "Великолепный мерзавец", value: "1244" }, - { label: "Велоспорт", value: "2978" }, - { label: "Венгрия", value: "1432" }, - { label: "Вендиго", value: "251" }, - { label: "Верность", value: "459" }, - { label: "Вертикальный инцест", value: "337" }, - { label: "Вестерн", value: "2329" }, - { label: "Ветераны", value: "555" }, - { label: "Ветеринары", value: "629" }, - { label: "Вечеринки", value: "854" }, - { label: "Вечная молодость", value: "2405" }, - { label: "Вещие сны", value: "1993" }, - { label: "Взаимопонимание", value: "2887" }, - { label: "Взросление", value: "909" }, - { label: "Вигиланты", value: "1514" }, - { label: "Видеоигры", value: "2508" }, - { label: "Визажисты / Гримеры", value: "1801" }, - { label: "Викинги", value: "676" }, - { label: "Виктимблейминг", value: "331" }, - { label: "Викторианская эпоха", value: "469" }, - { label: "Виртуальная реальность", value: "803" }, - { label: "Виртуальный секс", value: "268" }, - { label: "Витилиго", value: "1167" }, - { label: "Вице-королевство Новая Испания", value: "2603" }, - { label: "ВИЧ / СПИД", value: "542" }, - { label: "Влюбленность", value: "1303" }, - { label: "Вне закона", value: "1089" }, - { label: "Внутренний сексизм", value: "2155" }, - { label: "Внутренняя гомофобия", value: "2154" }, - { label: "Внутренняя трансфобия", value: "2716" }, - { label: "Водители / Шоферы", value: "879" }, - { label: "Военные", value: "313" }, - { label: "Военные городки", value: "2095" }, - { label: "Военные преступления", value: "2356" }, - { label: "Возвращение", value: "1522" }, - { label: "Возвращение Артура", value: "2570" }, - { label: "Воздержание", value: "921" }, - { label: "Воздушная атлетика", value: "2811" }, - { label: "Война", value: "232" }, - { label: "Война в Афганистане", value: "1050" }, - { label: "Война во Вьетнаме", value: "1332" }, - { label: "Война за независимость США", value: "2065" }, - { label: "Война миров", value: "1222" }, - { label: "Волдигуд", value: "1874" }, - { label: "Волейбол", value: "1095" }, - { label: "Волк в овечьей шкуре", value: "2228" }, - { label: "Волонтеры", value: "900" }, - { label: "Волшебники / Волшебницы", value: "93" }, - { label: "Воображаемые друзья", value: "738" }, - { label: "Ворарефилия", value: "157" }, - { label: "Воры", value: "320" }, - { label: "Воскрешение", value: "256" }, - { label: "Воспоминания", value: "1118" }, - { label: "Воссоединение", value: "498" }, - { label: "Восстание машин", value: "817" }, - { label: "Восточное побережье", value: "770" }, - { label: "Восьмое марта", value: "493" }, - { label: "Вражда", value: "681" }, - { label: "Вражда семей", value: "2867" }, - { label: "Врачи", value: "374" }, - { label: "Времена Мародеров", value: "1872" }, - { label: "Времена Основателей", value: "1891" }, - { label: "Временная смерть персонажа", value: "439" }, - { label: "Временное бессмертие", value: "2755" }, - { label: "Временное воскрешение персонажей", value: "2649" }, - { label: "Временные петли", value: "147" }, - { label: "Временные превращения", value: "927" }, - { label: "Врожденные заболевания", value: "1781" }, - { label: "Всадники Апокалипсиса", value: "1326" }, - { label: "Все живы / Никто не умер", value: "535" }, - { label: "Все за Одного — отец Изуку", value: "2421" }, - { label: "Всезнающий рассказчик", value: "1368" }, - { label: "Вселение в тело", value: "1181" }, - { label: "Вторая мировая", value: "488" }, - { label: "Вторжение пришельцев", value: "755" }, - { label: "Вторичный стыд", value: "1393" }, - { label: "Второй шанс", value: "1799" }, - { label: "Второстепенные оригинальные персонажи", value: "1536" }, - { label: "Вуайеризм", value: "174" }, - { label: "Вуду", value: "678" }, - { label: "Выбор", value: "2808" }, - { label: "Выгорание", value: "2914" }, - { label: "Выживание", value: "216" }, - { label: "Вымирающий вид", value: "2373" }, - { label: "Вымышленная анатомия", value: "1317" }, - { label: "Вымышленная география", value: "1294" }, - { label: "Вымышленная религия", value: "2062" }, - { label: "Вымышленная физика", value: "2132" }, - { label: "Вымышленные виды спорта", value: "1777" }, - { label: "Вымышленные заболевания", value: "1295" }, - { label: "Вымышленные науки", value: "1333" }, - { label: "Вымышленные праздники", value: "1769" }, - { label: "Вымышленные профессии", value: "1391" }, - { label: "Вымышленные существа", value: "1685" }, - { label: "Вымышленные языки", value: "536" }, - { label: "Выпускные", value: "717" }, - { label: "Высшее общество", value: "1093" }, - { label: "Высшие учебные заведения", value: "97" }, - { label: "Выученная беспомощность", value: "2772" }, - { label: "Выхаживание", value: "511" }, - { label: "Выход из нездоровых отношений", value: "2891" }, - { label: "Гадалки / Ясновидящие", value: "2662" }, - { label: "Гадкий утенок", value: "1225" }, - { label: "Газлайтинг", value: "1418" }, - { label: "Галлюцинации / Иллюзии", value: "365" }, - { label: "Гаремник", value: "50" }, - { label: "Гаремы", value: "115" }, - { label: "Гарпии", value: "1482" }, - { label: "Гарри Поттер и Драко Малфой — друзья", value: "1923" }, - { label: "Гастроли", value: "2487" }, - { label: "Гедонизм", value: "736" }, - { label: "Гей-клубы", value: "2482" }, - { label: "Геймеры", value: "356" }, - { label: "Геймлит", value: "23" }, - { label: "Гейши / Кисэн", value: "332" }, - { label: "Гемофилия", value: "1341" }, - { label: "Гендерная дисфория", value: "431" }, - { label: "Гендерная интрига", value: "55" }, - { label: "Гендерное неравенство", value: "2568" }, - { label: "Гендерный нонконформизм", value: "1417" }, - { label: "Гендерсвап", value: "1691" }, - { label: "Генетика / Эволюция", value: "2131" }, - { label: "Гении", value: "445" }, - { label: "Генитальные пытки", value: "2104" }, - { label: "Геноцид", value: "720" }, - { label: "Геокинез", value: "2889" }, - { label: "Геологи / Географы", value: "934" }, - { label: "Германия", value: "688" }, - { label: "Германия — не Священная Римская Империя", value: "2470" }, - { label: "Герой поневоле", value: "2145" }, - { label: "Геронтофилия", value: "162" }, - { label: "Гетерохромия", value: "1210" }, - { label: "Гетто", value: "1783" }, - { label: "Гибристофилия", value: "1843" }, - { label: "Гиганты", value: "735" }, - { label: "Гидра трэш-пати", value: "2804" }, - { label: "Гики", value: "482" }, - { label: "Гильдии", value: "957" }, - { label: "Гимнастика", value: "1974" }, - { label: "Гиперакузия", value: "2866" }, - { label: "Гиперсексуальность", value: "945" }, - { label: "Гипноз", value: "700" }, - { label: "Гладиаторы", value: "677" }, - { label: "Глобальные катастрофы", value: "525" }, - { label: "Глухота", value: "595" }, - { label: "Гнев", value: "2806" }, - { label: "Гнездование", value: "1452" }, - { label: "Гномы", value: "138" }, - { label: "Гоблины", value: "188" }, - { label: "Големы", value: "1208" }, - { label: "Голод", value: "868" }, - { label: "Голодные Фэндомные Игры", value: "2895" }, - { label: "Гомофобия", value: "428" }, - { label: "Гомункулы", value: "1366" }, - { label: "Горе / Утрата", value: "1113" }, - { label: "Горизонтальный инцест", value: "338" }, - { label: "Городские легенды", value: "1832" }, - { label: "Горы", value: "702" }, - { label: "Горячие источники", value: "2813" }, - { label: "Гостевой брак", value: "1354" }, - { label: "Гостиницы", value: "384" }, - { label: "Готический роман", value: "963" }, - { label: "Готы", value: "575" }, - { label: "Гравиокинез", value: "1985" }, - { label: "Гражданская война", value: "370" }, - { label: "Гражданская война в России", value: "1282" }, - { label: "Гражданская война в США", value: "1018" }, - { label: "Графичные описания", value: "2854" }, - { label: "Грейнджергад", value: "1892" }, - { label: "Грейромантичные персонажи", value: "707" }, - { label: "Гремлины", value: "189" }, - { label: "Греция", value: "1040" }, - { label: "Грифоны", value: "335" }, - { label: "Громкий секс", value: "1184" }, - { label: "Грубый секс", value: "121" }, - { label: "Грудное кормление", value: "296" }, - { label: "Групи", value: "2925" }, - { label: "Групповое изнасилование", value: "2203" }, - { label: "Групповой секс", value: "1654" }, - { label: "Грязный реализм", value: "634" }, - { label: "Гувернантки", value: "1179" }, - { label: "Гули", value: "367" }, - { label: "Гэвин Рид — андроид", value: "2692" }, - { label: "Даб-кон", value: "57" }, - { label: "Даби — не Тойя Тодороки", value: "2821" }, - { label: "Даби — Тойя Тодороки", value: "2423" }, - { label: "Дадзава", value: "2915" }, - { label: "Дадмайт", value: "2917" }, - { label: "Дайверы", value: "939" }, - { label: "Дайвинг", value: "2823" }, - { label: "Дама в беде", value: "1259" }, - { label: "Дамбигад", value: "1863" }, - { label: "Дамбигуд", value: "1873" }, - { label: "Дампиры", value: "2860" }, - { label: "Дандэрэ", value: "1364" }, - { label: "Дарк", value: "1678" }, - { label: "Даркнет", value: "1287" }, - { label: "Дачи", value: "930" }, - { label: "Двойники", value: "305" }, - { label: "Двойное проникновение", value: "107" }, - { label: "Двойной кноттинг", value: "2619" }, - { label: "Двойные агенты", value: "441" }, - { label: "Дворцовые интриги", value: "2075" }, - { label: "Девиантное поведение", value: "1814" }, - { label: "Девичники / Мальчишники", value: "1191" }, - { label: "Девочки из Эквестрии", value: "2912" }, - { label: "Дежавю", value: "2049" }, - { label: "Декаданс", value: "2353" }, - { label: "Деконструкция", value: "1322" }, - { label: "Деми-персонажи", value: "723" }, - { label: "Демиурги", value: "819" }, - { label: "Демонология", value: "2485" }, - { label: "Демоны", value: "73" }, - { label: "Демоны-хранители", value: "2045" }, - { label: "Дендрофилия", value: "491" }, - { label: "День благодарения", value: "754" }, - { label: "День знаний", value: "1075" }, - { label: "День матери", value: "2979" }, - { label: "День мертвых", value: "1074" }, - { label: "День независимости США", value: "1008" }, - { label: "День рождения", value: "298" }, - { label: "День святого Валентина", value: "204" }, - { label: "День святого Патрика", value: "1129" }, - { label: "День смерти", value: "2251" }, - { label: "День учителя", value: "1076" }, - { label: "Деперсонализация", value: "1197" }, - { label: "Депрессия", value: "354" }, - { label: "Депривация сна", value: "551" }, - { label: "Дереализация", value: "1198" }, - { label: "Деревни", value: "364" }, - { label: "Дерматозойный бред", value: "2779" }, - { label: "Деспоты / Тираны", value: "1345" }, - { label: "Детектив", value: "1672" }, - { label: "Дети", value: "217" }, - { label: "Детоненавистничество", value: "1836" }, - { label: "Детская влюбленность", value: "186" }, - { label: "Детские дома", value: "355" }, - { label: "Детские лагеря", value: "222" }, - { label: "Детские сады", value: "567" }, - { label: "Дефекты зрения", value: "2639" }, - { label: "Дефекты речи", value: "737" }, - { label: "Джинны / Пери", value: "456" }, - { label: "Джон Ватсон — преступник", value: "1932" }, - { label: "Джуманджи — не игровой мир", value: "2799" }, - { label: "Диабет", value: "820" }, - { label: "Диалоги (стилизация)", value: "1139" }, - { label: "Дизайнеры", value: "1875" }, - { label: "Дизельпанк", value: "294" }, - { label: "Дикие животные", value: "622" }, - { label: "Дикий Запад", value: "293" }, - { label: "Дилетанты", value: "2443" }, - { label: "Динозавры", value: "670" }, - { label: "Дипломатия", value: "1790" }, - { label: "Дисбаланс власти", value: "732" }, - { label: "Дискриминация", value: "2230" }, - { label: "Дискриминация по внешности", value: "1414" }, - { label: "Дискриминация по возрасту", value: "2843" }, - { label: "Дислексия", value: "860" }, - { label: "Дисморфофобия", value: "1108" }, - { label: "Диссоциативное расстройство идентичности", value: "2127" }, - { label: "Дистанционное обучение", value: "2592" }, - { label: "Дисфункциональные семьи", value: "602" }, - { label: "Дневники (стилизация)", value: "214" }, - { label: "Добрый Сальери", value: "2522" }, - { label: "Доверие", value: "1117" }, - { label: "Договоры / Сделки", value: "2137" }, - { label: "Документы / Отчеты (стилизация)", value: "752" }, - { label: "Долголетие", value: "2130" }, - { label: "Домашнее насилие", value: "42" }, - { label: "Домашние животные", value: "517" }, - { label: "Домашний арест", value: "2526" }, - { label: "Домашний ремонт", value: "867" }, - { label: "Домовые", value: "1423" }, - { label: "Допросы", value: "2654" }, - { label: "Дорожное приключение", value: "47" }, - { label: "Драббл", value: "2935" }, - { label: "Драки", value: "1367" }, - { label: "Драконы", value: "43" }, - { label: "Драма", value: "1668" }, - { label: "Драуги", value: "2264" }, - { label: "Древний Восток", value: "1940" }, - { label: "Древний Египет", value: "474" }, - { label: "Древний Китай", value: "1438" }, - { label: "Древняя Русь", value: "466" }, - { label: "Дремлющее зло", value: "2719" }, - { label: "Дремлющие способности", value: "2084" }, - { label: "Другая магическая школа", value: "1864" }, - { label: "Другие планеты", value: "1415" }, - { label: "Другой избранный", value: "2054" }, - { label: "Другой факультет", value: "1866" }, - { label: "Дружба", value: "1701" }, - { label: "Дружба втайне", value: "2303" }, - { label: "Дружба по расчету", value: "2331" }, - { label: "Друзья детства", value: "343" }, - { label: "Друзья по переписке", value: "1466" }, - { label: "Друзья поневоле", value: "627" }, - { label: "Друзья с привилегиями", value: "113" }, - { label: "Друиды", value: "1199" }, - { label: "Дрэг (субкультура)", value: "1248" }, - { label: "Дурмстранг", value: "2389" }, - { label: "Дурслигуд", value: "2058" }, - { label: "Духи природы", value: "503" }, - { label: "Духовенство", value: "478" }, - { label: "Духовная связь", value: "2090" }, - { label: "Духокинез", value: "2500" }, - { label: "Дуэли", value: "446" }, - { label: "Дьяволы", value: "2369" }, - { label: "Дэдди-кинк", value: "165" }, - { label: "Еда / Кулинария", value: "1195" }, - { label: "Единороги", value: "373" }, - { label: "Ёкаи", value: "416" }, - { label: "Естественные враги", value: "728" }, - { label: "Жамевю", value: "2050" }, - { label: "Жаргон", value: "1016" }, - { label: "Ждун Фест", value: "2936" }, - { label: "Железнодорожники", value: "2680" }, - { label: "Железные дороги", value: "811" }, - { label: "Женская дружба", value: "2156" }, - { label: "Жертвы обстоятельств", value: "1475" }, - { label: "Жестокое обращение с животными", value: "722" }, - { label: "Жестокость", value: "1710" }, - { label: "Живой сосуд", value: "2072" }, - { label: "Животные-компаньоны", value: "2371" }, - { label: "Живые машины", value: "961" }, - { label: "ЖиП", value: "143" }, - { label: "Журналисты", value: "438" }, - { label: "Заболевания", value: "1268" }, - { label: "Заболевания крови", value: "2254" }, - { label: "Заболевания сердца", value: "1767" }, - { label: "Забота / Поддержка", value: "1302" }, - { label: "Заброшенные города", value: "1276" }, - { label: "Заброшенные здания", value: "1483" }, - { label: "Забытый герой", value: "2337" }, - { label: "Завещание", value: "1262" }, - { label: "Зависимое расстройство личности", value: "2349" }, - { label: "Зависть", value: "990" }, - { label: "Завоевание", value: "978" }, - { label: "Загробный мир", value: "275" }, - { label: "Закавказье", value: "2819" }, - { label: "Заклятые друзья", value: "1316" }, - { label: "Закрытые города", value: "1481" }, - { label: "Закрытые учебные заведения", value: "98" }, - { label: "Закрытый детектив", value: "2616" }, - { label: "Заложники", value: "845" }, - { label: "Замки", value: "654" }, - { label: "Замкнутое пространство", value: "2306" }, - { label: "Замкнутый мир", value: "874" }, - { label: "Занавесочная история", value: "1688" }, - { label: "Запахи", value: "1385" }, - { label: "Заповедники", value: "618" }, - { label: "Запредельно одаренный персонаж", value: "1241" }, - { label: "Запрет на магию", value: "2663" }, - { label: "Запретные отношения", value: "362" }, - { label: "Засосы / Укусы", value: "913" }, - { label: "Застенчивость", value: "2807" }, - { label: "Затворники", value: "1059" }, - { label: "Затерянные миры", value: "2448" }, - { label: "Защита любимого", value: "2492" }, - { label: "Защитники природы", value: "628" }, - { label: "Защищенный секс", value: "636" }, - { label: "Звездные слезы", value: "2971" }, - { label: "Здоровые механизмы преодоления", value: "2147" }, - { label: "Здоровые отношения", value: "1853" }, - { label: "Зеркала", value: "724" }, - { label: "Зимняя Фандомная Битва", value: "254" }, - { label: "Злобные бывшие", value: "518" }, - { label: "Зловещая находка", value: "2275" }, - { label: "Знаки зодиака", value: "643" }, - { label: "Знаменитости", value: "1360" }, - { label: "Золотая клетка", value: "480" }, - { label: "Золотая молодежь", value: "796" }, - { label: "Золотая Орда", value: "1143" }, - { label: "Золушка", value: "1226" }, - { label: "Зомби", value: "31" }, - { label: "Зоопарки", value: "792" }, - { label: "Зоофилия", value: "1662" }, - { label: "Зоофобии", value: "2715" }, - { label: "ЗППП", value: "630" }, - { label: "ЗПР", value: "2259" }, - { label: "Зрелые персонажи", value: "851" }, - { label: "Иван Купала", value: "1068" }, - { label: "Игровое расстройство", value: "949" }, - { label: "Игрушки", value: "1346" }, - { label: "Игры на выживание", value: "554" }, - { label: "Игры на раздевание", value: "1535" }, - { label: "Игры с сосками", value: "423" }, - { label: "Игры с температурой", value: "230" }, - { label: "Идеализация", value: "1540" }, - { label: "Иерархический строй", value: "652" }, - { label: "Избранные", value: "847" }, - { label: "Избыточный физиологизм", value: "2334" }, - { label: "Изгнанники", value: "871" }, - { label: "Измена", value: "62" }, - { label: "Измененное состояние сознания", value: "2242" }, - { label: "Изменились за лето", value: "1908" }, - { label: "Изнасилование", value: "1650" }, - { label: "Изоляция", value: "1296" }, - { label: "Израиль", value: "1094" }, - { label: "Изуку Мидория — злодей", value: "2472" }, - { label: "Иллюзионисты", value: "532" }, - { label: "Имейджин", value: "838" }, - { label: "Импотенция", value: "632" }, - { label: "Импринтинг", value: "635" }, - { label: "Импрореал", value: "2955" }, - { label: "Импрофест", value: "2947" }, - { label: "Имя вместо цвета", value: "2919" }, - { label: "Инвалидность", value: "197" }, - { label: "Индия", value: "1002" }, - { label: "Инквизиция", value: "1130" }, - { label: "Инопланетяне", value: "58" }, - { label: "Инсектоиды / Арахноиды", value: "953" }, - { label: "Инсектофилия / Арахнофилия", value: "664" }, - { label: "Инсценированная смерть персонажа", value: "440" }, - { label: "Интерактивная работа", value: "419" }, - { label: "Интервью (стилизация)", value: "2446" }, - { label: "Интернет", value: "1286" }, - { label: "Интерсекс-персонажи", value: "299" }, - { label: "Интрамаммарный секс", value: "840" }, - { label: "Инфантильность", value: "1300" }, - { label: "Инцест", value: "1651" }, - { label: "Ипохондрия", value: "2178" }, - { label: "Ирландия", value: "1035" }, - { label: "Иронический детектив", value: "2638" }, - { label: "Искра Стайлз Стилински", value: "1975" }, - { label: "Искупление", value: "877" }, - { label: "Искусственно вызванные чувства", value: "626" }, - { label: "Искусственные интеллекты", value: "150" }, - { label: "Искусственные существа", value: "2277" }, - { label: "Искусство", value: "2257" }, - { label: "Искусствоведы", value: "2873" }, - { label: "Искушение", value: "776" }, - { label: "Испания", value: "1020" }, - { label: "Исповеди", value: "1342" }, - { label: "Исправительные лагеря", value: "2439" }, - { label: "Истинные", value: "1855" }, - { label: "Историческая Хеталия", value: "1865" }, - { label: "Исторические эпохи", value: "1698" }, - { label: "Исторический Кантриболс", value: "2913" }, - { label: "Историческое допущение", value: "2681" }, - { label: "Исцеление", value: "802" }, - { label: "Италия", value: "1003" }, - { label: "Ихтиоморфы", value: "972" }, - { label: "Йога", value: "483" }, - { label: "Йоль", value: "2143" }, - { label: "Кабаре", value: "457" }, - { label: "Кабэ-дон", value: "2626" }, - { label: "Казахстан", value: "1260" }, - { label: "Казино", value: "620" }, - { label: "Казнь", value: "548" }, - { label: "Как ориджинал", value: "1032" }, - { label: "Каламбуры", value: "881" }, - { label: "Каминг-аут", value: "559" }, - { label: "Канада", value: "695" }, - { label: "Каникулы", value: "805" }, - { label: "Каннибализм", value: "1706" }, - { label: "Канонная смерть персонажа", value: "564" }, - { label: "Капитан Гидра", value: "1928" }, - { label: "Карантинные зоны", value: "1290" }, - { label: "Карантины", value: "2734" }, - { label: "Караоке", value: "886" }, - { label: "Карательная психиатрия", value: "730" }, - { label: "Карибский бассейн", value: "1172" }, - { label: "Карма", value: "647" }, - { label: "Карьеризм", value: "956" }, - { label: "Каскадеры", value: "2267" }, - { label: "Катарсис", value: "824" }, - { label: "Кафе / Кофейни / Чайные", value: "13" }, - { label: "Квай-Гад", value: "2894" }, - { label: "Квантовая физика", value: "2744" }, - { label: "Квисины", value: "2722" }, - { label: "Кемономими", value: "997" }, - { label: "Кемпинг", value: "182" }, - { label: "Кентавры", value: "64" }, - { label: "Кибербуллинг", value: "1858" }, - { label: "Киберпанк", value: "24" }, - { label: "Киберспорт", value: "745" }, - { label: "Кибертрон", value: "2775" }, - { label: "Киборги", value: "154" }, - { label: "Киевская Русь", value: "515" }, - { label: "Кинк на беременность", value: "2281" }, - { label: "Кинк на волосы", value: "2089" }, - { label: "Кинк на волосы на теле", value: "1337" }, - { label: "Кинк на девственность", value: "2282" }, - { label: "Кинк на инвалидность", value: "633" }, - { label: "Кинк на интеллект", value: "2798" }, - { label: "Кинк на клыки", value: "2325" }, - { label: "Кинк на колготки", value: "2644" }, - { label: "Кинк на крылья", value: "2035" }, - { label: "Кинк на латекс", value: "134" }, - { label: "Кинк на мольбы", value: "1543" }, - { label: "Кинк на наручники", value: "1065" }, - { label: "Кинк на нижнее белье", value: "145" }, - { label: "Кинк на очки", value: "1723" }, - { label: "Кинк на ошейники", value: "388" }, - { label: "Кинк на полноту", value: "552" }, - { label: "Кинк на похвалу", value: "1042" }, - { label: "Кинк на протезы", value: "2682" }, - { label: "Кинк на рога", value: "2320" }, - { label: "Кинк на руки", value: "915" }, - { label: "Кинк на сердцебиение", value: "941" }, - { label: "Кинк на силу", value: "1476" }, - { label: "Кинк на слезы", value: "1373" }, - { label: "Кинк на служение", value: "2980" }, - { label: "Кинк на страх", value: "2246" }, - { label: "Кинк на стыд", value: "747" }, - { label: "Кинк на унижение", value: "2291" }, - { label: "Кинк на униформу", value: "1350" }, - { label: "Кинк на уши", value: "2370" }, - { label: "Кинк на формальную одежду", value: "1064" }, - { label: "Кинк на чужую одежду", value: "2920" }, - { label: "Кинк на чулки", value: "810" }, - { label: "Кинк на шрамы", value: "2831" }, - { label: "Кинк на щекотку", value: "2396" }, - { label: "Кинк-бинго", value: "2290" }, - { label: "Кинки / Фетиши", value: "1659" }, - { label: "Кинотеатры", value: "981" }, - { label: "Киригакуре", value: "2475" }, - { label: "Китай", value: "757" }, - { label: "Кладбища", value: "501" }, - { label: "Кланы", value: "2879" }, - { label: "Классизм", value: "1927" }, - { label: "Клейма", value: "1548" }, - { label: "Клептомания", value: "1160" }, - { label: "Клетка Люцифера", value: "1884" }, - { label: "Клетки", value: "1069" }, - { label: "Клиническая смерть", value: "2068" }, - { label: "Клокпанк / Ветропанк", value: "1812" }, - { label: "Клоны", value: "358" }, - { label: "Клоуны", value: "1520" }, - { label: "Клубы по интересам", value: "1369" }, - { label: "Клюква", value: "1001" }, - { label: "Кляпы / Затыкание рта", value: "379" }, - { label: "Книги", value: "2746" }, - { label: "Книжные магазины", value: "444" }, - { label: "Кноттинг", value: "99" }, - { label: "Ковбои", value: "330" }, - { label: "Кода", value: "1943" }, - { label: "Кожаная одежда", value: "1517" }, - { label: "Колдовстворец", value: "2600" }, - { label: "Кома", value: "516" }, - { label: "Командная работа", value: "708" }, - { label: "Комики", value: "1315" }, - { label: "Комиксисты / Мангаки", value: "576" }, - { label: "Коммунальные квартиры", value: "1437" }, - { label: "Коммуны", value: "797" }, - { label: "Комнатные растения", value: "1792" }, - { label: "Комплекс Бога", value: "2087" }, - { label: "Комплекс превосходства", value: "2191" }, - { label: "Комплексы", value: "2529" }, - { label: "Конкурс от BUBBLE", value: "2937" }, - { label: "Конный спорт", value: "1378" }, - { label: "Конохагакуре", value: "2477" }, - { label: "Конспирология", value: "1911" }, - { label: "Контрабандисты", value: "2363" }, - { label: "Контроль / Подчинение", value: "932" }, - { label: "Контроль памяти", value: "2540" }, - { label: "Контроль сознания", value: "257" }, - { label: "Конфликт мировоззрений", value: "2678" }, - { label: "Концентрационные лагеря", value: "547" }, - { label: "Концерты / Выступления", value: "1236" }, - { label: "Конюшни", value: "514" }, - { label: "Копирование сознания", value: "1231" }, - { label: "Копирование способностей", value: "1825" }, - { label: "Копро-кинк", value: "763" }, - { label: "Корё", value: "1142" }, - { label: "Корейская война", value: "2187" }, - { label: "Коренные народы", value: "1505" }, - { label: "Королевства", value: "2794" }, - { label: "Корпорация BOBSOC", value: "2940" }, - { label: "Корректирующее изнасилование", value: "2856" }, - { label: "Коррупция", value: "2150" }, - { label: "Косвенные убийства", value: "2846" }, - { label: "Космоопера", value: "48" }, - { label: "Космос", value: "236" }, - { label: "Косплееры", value: "944" }, - { label: "Кочевники", value: "1793" }, - { label: "Кошмары", value: "1228" }, - { label: "Красная нить судьбы", value: "608" }, - { label: "Крепости / Башни", value: "2321" }, - { label: "Крестовые походы", value: "2070" }, - { label: "Крестражи", value: "2238" }, - { label: "Кризис гендера", value: "1406" }, - { label: "Кризис ориентации", value: "1405" }, - { label: "Криминалистическая экспертиза", value: "2361" }, - { label: "Криминальная пара", value: "1920" }, - { label: "Криокинез", value: "1804" }, - { label: "Криптиды", value: "60" }, - { label: "Криптоистория", value: "179" }, - { label: "Кровь / Травмы", value: "800" }, - { label: "Кроссдрессинг", value: "65" }, - { label: "Кроссовер", value: "10" }, - { label: "Кроули — Архангел Рафаэль", value: "2471" }, - { label: "Круизы", value: "2488" }, - { label: "Крушение «Титаника»", value: "2200" }, - { label: "Крылатые", value: "92" }, - { label: "Крэк", value: "1408" }, - { label: "Ксенофилия", value: "1711" }, - { label: "Ксенофобия", value: "589" }, - { label: "Куба", value: "773" }, - { label: "Кудэрэ", value: "1216" }, - { label: "Куклы", value: "1221" }, - { label: "Куколдинг", value: "524" }, - { label: "Культ Дракона", value: "2244" }, - { label: "Кумогакуре", value: "2474" }, - { label: "Куннилингус", value: "172" }, - { label: "Купальни", value: "964" }, - { label: "Курение", value: "202" }, - { label: "Курортный роман", value: "181" }, - { label: "Курьеры", value: "2735" }, - { label: "Лабиринты", value: "1981" }, - { label: "Лаборатории", value: "1115" }, - { label: "Лабораторные опыты", value: "146" }, - { label: "Лав-отели", value: "801" }, - { label: "Лавандовый брак", value: "1357" }, - { label: "Лакросс", value: "830" }, - { label: "Лапслок", value: "267" }, - { label: "Латентная гомосексуальность", value: "2339" }, - { label: "ЛГБТ-родители", value: "2723" }, - { label: "Лебединая верность", value: "537" }, - { label: "Левитация", value: "1281" }, - { label: "Легкая атлетика", value: "1797" }, - { label: "Лекарственная зависимость", value: "2632" }, - { label: "Леса", value: "703" }, - { label: "Летние ОтМетки", value: "2956" }, - { label: "Летние школы", value: "2803" }, - { label: "Лето девяносто девятого", value: "1990" }, - { label: "Лжебоги", value: "2869" }, - { label: "Лингвистический кинк", value: "2042" }, - { label: "Лирика", value: "2005" }, - { label: "Лихтенштейн", value: "1023" }, - { label: "Личность против системы", value: "1912" }, - { label: "Ложная беременность", value: "1428" }, - { label: "Ложные воспоминания", value: "376" }, - { label: "Ложные обвинения", value: "1204" }, - { label: "Локальный постапокалипсис", value: "2455" }, - { label: "Лолита (субкультура)", value: "1207" }, - { label: "Ломка", value: "1846" }, - { label: "Лошади", value: "1083" }, - { label: "Лугнасад", value: "2621" }, - { label: "Лудомания", value: "947" }, - { label: "Лучники", value: "1521" }, - { label: "Любить луну", value: "2901" }, - { label: "Любовная магия", value: "2317" }, - { label: "Любовный магнит", value: "1407" }, - { label: "Любовный многоугольник", value: "63" }, - { label: "Любовь с первого взгляда", value: "813" }, - { label: "Любовь/Ненависть", value: "1703" }, - { label: "Люди", value: "1538" }, - { label: "Людоеды", value: "1288" }, - { label: "Магазины", value: "1063" }, - { label: "Магическая связь", value: "2720" }, - { label: "Магические клятвы", value: "2245" }, - { label: "Магические лавки", value: "2629" }, - { label: "Магические учебные заведения", value: "1338" }, - { label: "Магический реализм", value: "9" }, - { label: "Магия", value: "1419" }, - { label: "Магия крови", value: "2857" }, - { label: "Маленькие города", value: "221" }, - { label: "Малфоигуд", value: "1890" }, - { label: "Мамми-кинк", value: "273" }, - { label: "Мандалорцы", value: "2870" }, - { label: "Манекены", value: "1509" }, - { label: "Манипуляции", value: "992" }, - { label: "Марафонный секс", value: "316" }, - { label: "Маргиналы", value: "394" }, - { label: "Марди Гра", value: "2407" }, - { label: "Маскарады / Балы", value: "443" }, - { label: "Массаж", value: "2218" }, - { label: "Мастурбация", value: "226" }, - { label: "Матриархат", value: "706" }, - { label: "Матчасть", value: "2328" }, - { label: "Махотокоро", value: "2943" }, - { label: "Маяки", value: "1356" }, - { label: "Мегаломания", value: "985" }, - { label: "Мегаполисы", value: "451" }, - { label: "Медицинский кинк", value: "748" }, - { label: "Медицинское использование наркотиков", value: "925" }, - { label: "Медовый месяц", value: "2235" }, - { label: "Медсестры / Медбратья", value: "2236" }, - { label: "Межбедренный секс", value: "931" }, - { label: "Междумирье", value: "2280" }, - { label: "Межэтнические отношения", value: "2121" }, - { label: "Мейлдом", value: "59" }, - { label: "Мексика", value: "768" }, - { label: "Меланхолия", value: "2108" }, - { label: "Мелодрама", value: "2881" }, - { label: "Менструация", value: "1570" }, - { label: "Ментальная тюрьма", value: "2294" }, - { label: "Месть", value: "907" }, - { label: "Металлисты", value: "1206" }, - { label: "Металлокинез", value: "1532" }, - { label: "Метафизические существа", value: "2097" }, - { label: "Метки", value: "1398" }, - { label: "Метросексуалы", value: "558" }, - { label: "Механофилия / Технофилия", value: "587" }, - { label: "Мечники", value: "2783" }, - { label: "Мечты", value: "993" }, - { label: "Миддлпанк", value: "2076" }, - { label: "Мизофилия", value: "1970" }, - { label: "Микро / Макро", value: "407" }, - { label: "Микрофикшен", value: "417" }, - { label: "Мимикрия", value: "2083" }, - { label: "Минет", value: "231" }, - { label: "Министерство Магии", value: "1917" }, - { label: "Минотавры", value: "2820" }, - { label: "Мир без гомофобии", value: "2660" }, - { label: "Мир Желаний (Однажды в сказке)", value: "2923" }, - { label: "Мир Института Войны", value: "2379" }, - { label: "Мироустройство", value: "989" }, - { label: "Мистерия", value: "2012" }, - { label: "Мистика", value: "1671" }, - { label: "Мистическая беременность", value: "1784" }, - { label: "Мистические защитники", value: "2162" }, - { label: "Мифы и мифология", value: "18" }, - { label: "Мнимая беременность", value: "1096" }, - { label: "Мнимая проза", value: "1098" }, - { label: "Мнимая свобода", value: "2708" }, - { label: "Многодетные семьи", value: "2785" }, - { label: "Множественное проникновение", value: "2059" }, - { label: "Множественные оргазмы", value: "317" }, - { label: "Множественные финалы", value: "312" }, - { label: "Могучие Рейнджеры: Дино Заряд", value: "2931" }, - { label: "Могучие Рейнджеры: Мегафорс", value: "2930" }, - { label: "Могучие Рейнджеры: Мистическая Сила", value: "2933" }, - { label: "Могучие Рейнджеры: Самураи", value: "2929" }, - { label: "Могучие Рейнджеры: Успеть на помощь", value: "2934" }, - { label: "Могучие Рейнджеры: Ярость Джунглей", value: "2932" }, - { label: "Модели", value: "399" }, - { label: "Модельеры", value: "598" }, - { label: "Модельный бизнес", value: "435" }, - { label: "Модификации тела", value: "890" }, - { label: "Молдова", value: "2967" }, - { label: "Молчание", value: "2465" }, - { label: "Монастыри", value: "352" }, - { label: "Монахи", value: "353" }, - { label: "Монолог", value: "2333" }, - { label: "Монстрофилия", value: "94" }, - { label: "Монстры", value: "529" }, - { label: "Моральные дилеммы", value: "959" }, - { label: "Морлед", value: "2255" }, - { label: "Моря / Океаны", value: "955" }, - { label: "Моряки", value: "406" }, - { label: "Мотоспорт", value: "1461" }, - { label: "Мужская беременность", value: "1660" }, - { label: "Мужская дружба", value: "2157" }, - { label: "Мужское грудное кормление", value: "297" }, - { label: "Музеи / Галереи", value: "795" }, - { label: "Музы", value: "2001" }, - { label: "Музыканты", value: "141" }, - { label: "Муковисцидоз", value: "2764" }, - { label: "Мультикроссовер", value: "2247" }, - { label: "Мумии", value: "579" }, - { label: "Мутанты", value: "740" }, - { label: "Мэри Сью (Марти Стью)", value: "1655" }, - { label: "Мятежи / Восстания", value: "584" }, - { label: "На грани жизни и смерти", value: "2545" }, - { label: "Наблюдатели", value: "1816" }, - { label: "Навязчивая опека", value: "954" }, - { label: "Навязчивые мысли", value: "2851" }, - { label: "Наги", value: "90" }, - { label: "Надежда", value: "2627" }, - { label: "Наемники", value: "512" }, - { label: "Наемные убийцы", value: "192" }, - { label: "Названные сиблинги", value: "2927" }, - { label: "Намеки на отношения", value: "1387" }, - { label: "Намеки на секс", value: "1382" }, - { label: "Напарники", value: "1291" }, - { label: "Наперегонки со временем", value: "2240" }, - { label: "НапиСанта", value: "2946" }, - { label: "Наполеоновские войны", value: "470" }, - { label: "Нарколепсия", value: "586" }, - { label: "Наркоторговля", value: "1116" }, - { label: "Нарушение этических норм", value: "968" }, - { label: "Нарциссизм", value: "546" }, - { label: "Насекомые", value: "2358" }, - { label: "Насилие", value: "1649" }, - { label: "Насилие над детьми", value: "726" }, - { label: "Наследие (Гарри Поттер)", value: "1935" }, - { label: "Наследство", value: "2172" }, - { label: "Наставничество", value: "935" }, - { label: "Настольные игры", value: "1513" }, - { label: "Настольные ролевые игры", value: "644" }, - { label: "Натуризм / Нудизм", value: "1810" }, - { label: "Наука", value: "2624" }, - { label: "Научная фантастика", value: "596" }, - { label: "Научно-исследовательские организации", value: "1503" }, - { label: "Научное фэнтези", value: "180" }, - { label: "Начало отношений", value: "1328" }, - { label: "Небинарные персонажи", value: "314" }, - { label: "Невезение", value: "2689" }, - { label: "Невзаимные предначертанные", value: "1484" }, - { label: "Невзаимные чувства", value: "105" }, - { label: "Невидимость", value: "359" }, - { label: "Невидимый мир", value: "2286" }, - { label: "Неграфичные описания", value: "2855" }, - { label: "Недоверие", value: "1842" }, - { label: "Недопонимания", value: "614" }, - { label: "Недостатки внешности", value: "923" }, - { label: "Нежелательная беременность", value: "715" }, - { label: "Нежелательные сверхспособности", value: "1335" }, - { label: "Нежелательные чувства", value: "2078" }, - { label: "Нежный секс", value: "280" }, - { label: "Незащищенный секс", value: "497" }, - { label: "Нездоровые механизмы преодоления", value: "1528" }, - { label: "Нездоровые отношения", value: "71" }, - { label: "Нездоровый образ жизни", value: "2148" }, - { label: "Нездоровый BDSM", value: "1062" }, - { label: "Неидеальный омегаверс", value: "2712" }, - { label: "Неизвестность", value: "2826" }, - { label: "Неизвестные родственники", value: "2752" }, - { label: "Неизлечимые заболевания", value: "1269" }, - { label: "Нейтрализация сверхспособностей", value: "2343" }, - { label: "Некромаги", value: "679" }, - { label: "Некрофилия", value: "1663" }, - { label: "Нелинейное повествование", value: "1699" }, - { label: "Неловкий секс", value: "2883" }, - { label: "Неловкость", value: "2459" }, - { label: "Нелюбящие родители", value: "2817" }, - { label: "Немертвые", value: "495" }, - { label: "Немота", value: "414" }, - { label: "Ненависть", value: "685" }, - { label: "Ненависть к себе", value: "1441" }, - { label: "Ненависть с первого взгляда", value: "814" }, - { label: "Ненадежный рассказчик", value: "322" }, - { label: "Ненасильственная смерть", value: "2531" }, - { label: "Необитаемые острова", value: "1196" }, - { label: "Необратимые превращения", value: "926" }, - { label: "Неозвученные чувства", value: "258" }, - { label: "Неприятие отношений", value: "2056" }, - { label: "Неравные отношения", value: "545" }, - { label: "Неравный брак", value: "409" }, - { label: "Неразрывная связь", value: "2569" }, - { label: "Нервный срыв", value: "1190" }, - { label: "Нерды", value: "481" }, - { label: "Нереалистичность", value: "2350" }, - { label: "Несексуальная близость", value: "2874" }, - { label: "Нестандартная поэзия", value: "1704" }, - { label: "Несчастливые отношения", value: "2080" }, - { label: "Несчастливый финал", value: "61" }, - { label: "Несчастные случаи", value: "499" }, - { label: "Нетаймори", value: "2323" }, - { label: "Неторопливое повествование", value: "1815" }, - { label: "Нетрадиционное использование Силы", value: "2520" }, - { label: "Неумышленное употребление наркотических веществ", value: "1192" }, - { label: "Неуставные отношения", value: "1396" }, - { label: "Нефилимы", value: "1086" }, - { label: "Неформальный брак", value: "1355" }, - { label: "Нецензурная лексика", value: "1653" }, - { label: "Нечеловеческая мораль", value: "2551" }, - { label: "Нечеловеческие виды", value: "995" }, - { label: "Нечистая сила", value: "1464" }, - { label: "Нидерланды", value: "1141" }, - { label: "Низкая самооценка", value: "2014" }, - { label: "Низкое фэнтези", value: "2007" }, - { label: "Нимфы", value: "1477" }, - { label: "Ниндзя", value: "471" }, - { label: "Новая жизнь", value: "2018" }, - { label: "Новая Зеландия", value: "1789" }, - { label: "Новеллизация", value: "262" }, - { label: "Новые отношения", value: "1827" }, - { label: "Новый год", value: "206" }, - { label: "Новый канон ЗВ", value: "1948" }, - { label: "Норны", value: "2206" }, - { label: "Ностальгия", value: "878" }, - { label: "Ночное видение", value: "2006" }, - { label: "Ночные клубы", value: "531" }, - { label: "Нуар", value: "137" }, - { label: "Няни", value: "570" }, - { label: "Обездвиживание", value: "116" }, - { label: "Обещания / Клятвы", value: "1823" }, - { label: "Обиды", value: "905" }, - { label: "Обман / Заблуждение", value: "650" }, - { label: "Обмен квами", value: "2572" }, - { label: "Обмен ролями", value: "1055" }, - { label: "Обмен телами", value: "49" }, - { label: "Обмороки", value: "2484" }, - { label: "Обнажение", value: "970" }, - { label: "Оборотни", value: "28" }, - { label: "Обоснованный ООС", value: "2549" }, - { label: "Образ тела", value: "2289" }, - { label: "Обратный омегаверс", value: "2435" }, - { label: "Обретенные семьи", value: "601" }, - { label: "Обреченные отношения", value: "653" }, - { label: "Обскуры", value: "2237" }, - { label: "Обсуждение кинков", value: "1072" }, - { label: "Обусловленная контекстом гомофобия", value: "2685" }, - { label: "Обусловленный контекстом расизм", value: "2686" }, - { label: "Обусловленный контекстом сексизм", value: "2687" }, - { label: "Общежития", value: "534" }, - { label: "Общественный транспорт", value: "615" }, - { label: "Объективация", value: "1837" }, - { label: "Объектофилия", value: "366" }, - { label: "Овипозиция", value: "269" }, - { label: "Огнестрельное оружие", value: "1189" }, - { label: "Ограбления", value: "2269" }, - { label: "Одержимость", value: "2248" }, - { label: "Одержимые", value: "496" }, - { label: "Один день", value: "2647" }, - { label: "Одиночество", value: "1015" }, - { label: "Одичавшие дети", value: "835" }, - { label: "Однолюбы", value: "2146" }, - { label: "Одноминутный канонический персонаж", value: "2184" }, - { label: "Однополый мир", value: "1462" }, - { label: "Ожидание", value: "2909" }, - { label: "ОЖП", value: "1657" }, - { label: "Окаменение", value: "2052" }, - { label: "Океания", value: "1058" }, - { label: "Оккультизм", value: "2374" }, - { label: "ОКР", value: "594" }, - { label: "Окулолинктус", value: "1470" }, - { label: "Олимпийские игры", value: "1127" }, - { label: "Олфактофилия", value: "1945" }, - { label: "Омегаверс", value: "1693" }, - { label: "Омегаверс: Альфа/Альфа", value: "2437" }, - { label: "Омегаверс: Альфа/Бета", value: "2741" }, - { label: "Омегаверс: Альфа/Бета/Омега", value: "2898" }, - { label: "Омегаверс: Альфа/Омега/Альфа", value: "2436" }, - { label: "Омегаверс: Бета/Бета", value: "2966" }, - { label: "Омегаверс: Больше трех полов", value: "2782" }, - { label: "Омегаверс: Омега/Альфа/Омега", value: "2544" }, - { label: "Омегаверс: Омега/Бета", value: "2965" }, - { label: "Омегаверс: Омега/Омега", value: "2564" }, - { label: "Омегаверс: Смена второго пола", value: "2776" }, - { label: "Омегаверс: f!Альфа/m!Омега", value: "2777" }, - { label: "ОМП", value: "1656" }, - { label: "Онейрокинез", value: "2067" }, - { label: "Онкологические заболевания", value: "540" }, - { label: "ООС", value: "1648" }, - { label: "Опасность", value: "2847" }, - { label: "Опера", value: "549" }, - { label: "Опричнина", value: "2252" }, - { label: "Оптимизм", value: "2420" }, - { label: "Оракулы / Провидцы", value: "2221" }, - { label: "Оральная фиксация", value: "2523" }, - { label: "Оргазм без стимуляции", value: "1000" }, - { label: "Организаторы свадеб", value: "858" }, - { label: "Орден Феникса", value: "1907" }, - { label: "Орки", value: "187" }, - { label: "Оружие массового поражения", value: "1193" }, - { label: "Освоение земель", value: "1824" }, - { label: "Оседлание", value: "1223" }, - { label: "Османская империя", value: "527" }, - { label: "Особняки / Резиденции", value: "500" }, - { label: "Осознанные сновидения", value: "530" }, - { label: "Остеокинез", value: "2845" }, - { label: "Острова", value: "799" }, - { label: "От антигероя к герою", value: "2173" }, - { label: "От антигероя к злодею", value: "2213" }, - { label: "От божественного существа к смертному", value: "2664" }, - { label: "От возлюбленных к врагам", value: "783" }, - { label: "От возлюбленных к друзьям", value: "782" }, - { label: "От врагов к возлюбленным", value: "346" }, - { label: "От врагов к друзьям", value: "347" }, - { label: "От врагов к друзьям к возлюбленным", value: "345" }, - { label: "От героя к антигерою", value: "2546" }, - { label: "От героя к злодею", value: "1027" }, - { label: "От героя к монстру", value: "2659" }, - { label: "От героя к обычному персонажу", value: "2584" }, - { label: "От друзей к возлюбленным", value: "344" }, - { label: "От друзей к врагам", value: "463" }, - { label: "От друзей к незнакомцам", value: "1870" }, - { label: "От злодея к антигерою", value: "2640" }, - { label: "От злодея к герою", value: "1026" }, - { label: "От напарников к друзьям к возлюбленным", value: "2460" }, - { label: "От нездоровых отношений к здоровым", value: "2301" }, - { label: "От незнакомцев к возлюбленным", value: "372" }, - { label: "От простонародья к аристократу", value: "2816" }, - { label: "От сексуальных партнеров к возлюбленным", value: "2069" }, - { label: "От смертного к божественному существу", value: "2665" }, - { label: "От супругов к возлюбленным", value: "2359" }, - { label: "Ответвление от канона", value: "2336" }, - { label: "Ответственность", value: "2468" }, - { label: "Отдаю на вдохновение", value: "2288" }, - { label: "Отечественная война 1812 года", value: "1162" }, - { label: "Отказ от чувств", value: "2227" }, - { label: "Отклонения от канона", value: "5" }, - { label: "Открытый финал", value: "185" }, - { label: "ОтМетки", value: "2945" }, - { label: "Отношения втайне", value: "285" }, - { label: "Отношения на расстоянии", value: "37" }, - { label: "Отношения на спор", value: "383" }, - { label: "Отношения наполовину", value: "1573" }, - { label: "Отпуск", value: "1828" }, - { label: "Отрицание", value: "1868" }, - { label: "Отрицание чувств", value: "648" }, - { label: "Отрицательный протагонист", value: "1442" }, - { label: "Отсутствие души", value: "1897" }, - { label: "Отшельники", value: "543" }, - { label: "Офисы", value: "74" }, - { label: "Официанты / Официантки", value: "2560" }, - { label: "Охота", value: "825" }, - { label: "Охота на разумных существ", value: "2784" }, - { label: "Охотники", value: "2036" }, - { label: "Охотники за головами", value: "2103" }, - { label: "Охотники на нечисть", value: "46" }, - { label: "Охранники", value: "1173" }, - { label: "Ошибки", value: "2554" }, - { label: "Ошибочная идентификация", value: "2490" }, - { label: "Паладины", value: "1194" }, - { label: "Пан-персонажи", value: "302" }, - { label: "Пандемия COVID-19", value: "2724" }, - { label: "Панические атаки", value: "751" }, - { label: "Паническое расстройство", value: "733" }, - { label: "Панки", value: "625" }, - { label: "Паразиты", value: "1877" }, - { label: "Паралич", value: "1941" }, - { label: "Параллельные миры", value: "378" }, - { label: "Паранойя", value: "1253" }, - { label: "Пари", value: "778" }, - { label: "Парки / Зоны отдыха", value: "1005" }, - { label: "Парки аттракционов / Ярмарки", value: "793" }, - { label: "Паркур", value: "553" }, - { label: "Пародия", value: "1676" }, - { label: "Партизаны", value: "850" }, - { label: "Парфюмеры", value: "1384" }, - { label: "Пасха", value: "562" }, - { label: "Патологическое бесстрашие", value: "1498" }, - { label: "Патологическое накопительство", value: "2691" }, - { label: "Патологоанатомы", value: "502" }, - { label: "Патриархат", value: "705" }, - { label: "Патриотические темы и мотивы", value: "2231" }, - { label: "Патронусы", value: "2390" }, - { label: "Патрули", value: "1819" }, - { label: "Пафос", value: "2589" }, - { label: "Пацифисты", value: "1939" }, - { label: "Пегасы", value: "1047" }, - { label: "Пеггинг", value: "159" }, - { label: "Пейзажная лирика", value: "2330" }, - { label: "Пекарни", value: "78" }, - { label: "Первая мировая", value: "487" }, - { label: "Первая чеченская война", value: "2428" }, - { label: "Первобытные времена", value: "465" }, - { label: "Первое апреля", value: "2315" }, - { label: "Первопроходцы", value: "351" }, - { label: "Первый контакт", value: "2093" }, - { label: "Первый поцелуй", value: "2790" }, - { label: "Первый раз", value: "1292" }, - { label: "Передача магических способностей", value: "2497" }, - { label: "Переезд", value: "658" }, - { label: "Перезапуск мира", value: "2710" }, - { label: "Перемирие", value: "1331" }, - { label: "Переписки и чаты (стилизация)", value: "38" }, - { label: "Перерыв в отношениях", value: "519" }, - { label: "Переселение душ", value: "1237" }, - { label: "Перестрелки", value: "2268" }, - { label: "Переходный возраст", value: "1297" }, - { label: "Период Эдо", value: "1140" }, - { label: "Персекуторный бред", value: "2136" }, - { label: "Персонажи-геи", value: "2141" }, - { label: "Персонажи-лесбиянки", value: "2142" }, - { label: "Персонификация", value: "994" }, - { label: "Персонификация смерти", value: "1046" }, - { label: "Перу", value: "2017" }, - { label: "Перфекционизм", value: "2730" }, - { label: "Пессимизм", value: "2709" }, - { label: "Пет-плей", value: "391" }, - { label: "Петербург: бикейм #Чимин Сергеевич", value: "1859" }, - { label: "Петтинг", value: "301" }, - { label: "Пещеры", value: "655" }, - { label: "Пижамные вечеринки", value: "1340" }, - { label: "Пикацизм", value: "1227" }, - { label: "Пикники", value: "1165" }, - { label: "Пионеры", value: "668" }, - { label: "Пираты", value: "72" }, - { label: "Пирокинез", value: "1180" }, - { label: "Пиромания", value: "899" }, - { label: "Пирсинг", value: "507" }, - { label: "Писатели", value: "196" }, - { label: "Письма", value: "2298" }, - { label: "Письма (стилизация)", value: "266" }, - { label: "Пиццерии / Дайнеры", value: "593" }, - { label: "Плавание", value: "1135" }, - { label: "Плантокинез", value: "2029" }, - { label: "Пластические операции", value: "1847" }, - { label: "Платонические отношения", value: "385" }, - { label: "Племена", value: "1336" }, - { label: "Плен", value: "290" }, - { label: "Плененные путешествием", value: "2615" }, - { label: "Плохая компания", value: "1502" }, - { label: "Плохие друзья", value: "2445" }, - { label: "Плохой хороший финал", value: "1265" }, - { label: "Плюшефилия", value: "520" }, - { label: "Пляжи", value: "766" }, - { label: "По разные стороны", value: "897" }, - { label: "Побег", value: "661" }, - { label: "Побег из дома", value: "2309" }, - { label: "Победа Волдеморта", value: "1887" }, - { label: "Победа Гриндевальда", value: "2398" }, - { label: "Повара", value: "2853" }, - { label: "Повелитель смерти", value: "1909" }, - { label: "Повествование в будущем времени", value: "2633" }, - { label: "Повествование в настоящем времени", value: "1826" }, - { label: "Повествование во втором лице", value: "166" }, - { label: "Повествование от нескольких лиц", value: "1157" }, - { label: "Повествование от первого лица", value: "1681" }, - { label: "Повседневность", value: "1677" }, - { label: "Повстанцы", value: "659" }, - { label: "Повторение судьбы", value: "1997" }, - { label: "Поглощение способностей", value: "2605" }, - { label: "Погони / Преследования", value: "1996" }, - { label: "Пограничный синдром", value: "710" }, - { label: "Погребение заживо", value: "1279" }, - { label: "Под одной крышей", value: "462" }, - { label: "Под старину (стилизация)", value: "2486" }, - { label: "Подарки", value: "1109" }, - { label: "Подвешивание", value: "914" }, - { label: "Подводный мир", value: "901" }, - { label: "Подземелья", value: "2314" }, - { label: "Подземный мир", value: "1453" }, - { label: "Подлость", value: "2625" }, - { label: "Подменыши", value: "2250" }, - { label: "Подпольные бои", value: "1389" }, - { label: "Подразумеваемая смерть персонажа", value: "2204" }, - { label: "Подростки", value: "218" }, - { label: "Подростковая беременность", value: "986" }, - { label: "Подростковая влюбленность", value: "581" }, - { label: "Подсознание", value: "2273" }, - { label: "Поедание разумных существ", value: "1795" }, - { label: "Пожарные", value: "2557" }, - { label: "Пожилые персонажи", value: "852" }, - { label: "Поза 69", value: "699" }, - { label: "Поиск работы", value: "2646" }, - { label: "Поиск родителей", value: "2033" }, - { label: "Поклонение телу", value: "712" }, - { label: "Покровительство", value: "2223" }, - { label: "Покушение на жизнь", value: "1057" }, - { label: "Покушение на свободу", value: "2655" }, - { label: "Полиамория", value: "1705" }, - { label: "Полиандрия", value: "761" }, - { label: "Полигиния", value: "760" }, - { label: "Политика", value: "1835" }, - { label: "Политики", value: "711" }, - { label: "Политические интриги", value: "183" }, - { label: "Полицейские", value: "14" }, - { label: "Половой диморфизм", value: "1780" }, - { label: "Полубоги", value: "437" }, - { label: "Полудемоны", value: "2872" }, - { label: "Полудраконы", value: "2859" }, - { label: "Полукровки", value: "368" }, - { label: "Польша", value: "777" }, - { label: "Полярные станции", value: "1493" }, - { label: "Помощь врагу", value: "1325" }, - { label: "Попаданцы: В реальный мир", value: "1499" }, - { label: "Попаданцы: В своем теле", value: "1412" }, - { label: "Попаданцы: В чужом теле", value: "1413" }, - { label: "Попаданцы: Из одного фандома в другой", value: "2699" }, - { label: "Попаданцы: Из фандома в ориджинал", value: "2193" }, - { label: "Попаданцы: По обмену", value: "2196" }, - { label: "Попаданчество", value: "1695" }, - { label: "Популярность", value: "2581" }, - { label: "Попытка изнасилования", value: "1440" }, - { label: "Порноактеры", value: "289" }, - { label: "Португалия", value: "1749" }, - { label: "Порты", value: "1028" }, - { label: "Поселки", value: "1298" }, - { label: "После таймскипа (Haikyuu!!)", value: "2906" }, - { label: "После таймскипа (Shingeki no Kyojin)", value: "2903" }, - { label: "Послевоенное время", value: "1080" }, - { label: "Последний раз", value: "2645" }, - { label: "Последний рубеж", value: "1178" }, - { label: "Последний шанс", value: "1209" }, - { label: "Последствия", value: "2491" }, - { label: "Последствия болезни", value: "2612" }, - { label: "Послеродовая депрессия", value: "988" }, - { label: "Посмертная любовь", value: "2670" }, - { label: "Посмертный персонаж", value: "2653" }, - { label: "Пост-Пацифист", value: "2408" }, - { label: "Пост-Рейхенбах", value: "1903" }, - { label: "Пост-третий сезон (Шерлок)", value: "1977" }, - { label: "Постапокалиптика", value: "1697" }, - { label: "ПостВБ", value: "2386" }, - { label: "Постканон", value: "6" }, - { label: "ПостРагнарек", value: "2537" }, - { label: "ПостХог", value: "1883" }, - { label: "ПостЭндгейм", value: "2179" }, - { label: "Потеря девственности", value: "1234" }, - { label: "Потеря конечностей", value: "1289" }, - { label: "Потеря магических способностей", value: "1430" }, - { label: "Потеря памяти", value: "36" }, - { label: "Потеря сверхспособностей", value: "1051" }, - { label: "Поттергад", value: "2417" }, - { label: "Похищение", value: "224" }, - { label: "Похороны", value: "786" }, - { label: "Почтовые работники", value: "1821" }, - { label: "Пошлый юмор", value: "1362" }, - { label: "Поэма", value: "1938" }, - { label: "Поэты", value: "357" }, - { label: "Пояс верности", value: "1779" }, - { label: "Правда или действие", value: "1982" }, - { label: "Практопия", value: "2249" }, - { label: "Пре-гет", value: "209" }, - { label: "Пре-Рош", value: "2047" }, - { label: "Пре-слэш", value: "207" }, - { label: "Пре-фемслэш", value: "208" }, - { label: "Предательство", value: "361" }, - { label: "Предвидение", value: "1876" }, - { label: "Предложение руки и сердца", value: "1081" }, - { label: "Предопределенность", value: "411" }, - { label: "Предрассудки", value: "2046" }, - { label: "Предсмертные сообщения", value: "2174" }, - { label: "Преканон", value: "7" }, - { label: "ПреКербер", value: "2726" }, - { label: "Прекрасная эпоха", value: "1809" }, - { label: "Прелюдия", value: "2395" }, - { label: "Пренебрежение гигиеной", value: "2921" }, - { label: "Пренебрежение жизнью", value: "2216" }, - { label: "Преодоление комплексов", value: "588" }, - { label: "Преподаватели", value: "403" }, - { label: "Преподаватель/Обучающийся", value: "2507" }, - { label: "Преступники", value: "1446" }, - { label: "Преступный мир", value: "12" }, - { label: "Прибрежные города", value: "984" }, - { label: "Приватный танец", value: "2786" }, - { label: "Привязанность", value: "2372" }, - { label: "Пригород", value: "452" }, - { label: "Приемные семьи", value: "844" }, - { label: "Признания в любви", value: "1049" }, - { label: "Призраки", value: "26" }, - { label: "Приключения", value: "21" }, - { label: "Приметы / Суеверия", value: "612" }, - { label: "Примирение", value: "660" }, - { label: "Принудительная феминизация", value: "656" }, - { label: "Принудительное лечение", value: "971" }, - { label: "Принудительные отношения", value: "2302" }, - { label: "Принудительный брак", value: "307" }, - { label: "Принудительный инцест", value: "2942" }, - { label: "Принуждение", value: "1323" }, - { label: "Принятие себя", value: "2754" }, - { label: "Прислуга", value: "804" }, - { label: "Прист-кинк", value: "342" }, - { label: "Приступы агрессии", value: "2788" }, - { label: "Притча", value: "1088" }, - { label: "Приюты для животных", value: "2345" }, - { label: "ПРЛ", value: "1092" }, - { label: "Проблемы доверия", value: "2208" }, - { label: "Проблемы с законом", value: "1007" }, - { label: "Проводники душ", value: "2348" }, - { label: "Программисты", value: "574" }, - { label: "Прогрессорство", value: "449" }, - { label: "Прогулки", value: "2462" }, - { label: "Продажа души", value: "887" }, - { label: "Прозопагнозия", value: "2013" }, - { label: "Производственный роман", value: "2119" }, - { label: "Проклятия", value: "875" }, - { label: "Пролапс", value: "2926" }, - { label: "Промискуитет", value: "1817" }, - { label: "Промышленные предприятия", value: "1456" }, - { label: "Пропавшие без вести", value: "2073" }, - { label: "Пропущенная сцена", value: "1702" }, - { label: "Пророчества", value: "834" }, - { label: "Просмотр порно", value: "2341" }, - { label: "Проституция", value: "178" }, - { label: "Протезы", value: "1581" }, - { label: "Противоположности", value: "948" }, - { label: "Противоречивые чувства", value: "2528" }, - { label: "Прошлое", value: "983" }, - { label: "Прощение", value: "1545" }, - { label: "Псевдо-инцест", value: "336" }, - { label: "Псевдо-мистика", value: "2159" }, - { label: "Псевдоисторический сеттинг", value: "1479" }, - { label: "Псионика", value: "2023" }, - { label: "Психиатрические больницы", value: "135" }, - { label: "Психические расстройства", value: "69" }, - { label: "Психоз", value: "1339" }, - { label: "Психологи / Психоаналитики", value: "611" }, - { label: "Психологическая война", value: "2595" }, - { label: "Психологические пытки", value: "2825" }, - { label: "Психологические травмы", value: "40" }, - { label: "Психологический мазохизм", value: "2212" }, - { label: "Психологический ужас", value: "1261" }, - { label: "Психологическое насилие", value: "836" }, - { label: "Психология", value: "1674" }, - { label: "Психопатия", value: "869" }, - { label: "Психосоматические расстройства", value: "1834" }, - { label: "Психотерапия", value: "958" }, - { label: "ПТСР", value: "425" }, - { label: "Публичное обнажение", value: "319" }, - { label: "Пурпурная проза", value: "599" }, - { label: "Пустоши", value: "1114" }, - { label: "Пустыни", value: "692" }, - { label: "Путешественники-исследователи", value: "888" }, - { label: "Путешествия", value: "894" }, - { label: "Пытки", value: "210" }, - { label: "Пьеса", value: "434" }, - { label: "Рабочие", value: "1771" }, - { label: "Рабство", value: "51" }, - { label: "Равнодушие", value: "2516" }, - { label: "Равные отношения", value: "2728" }, - { label: "Радикальная медицина", value: "731" }, - { label: "Радио", value: "974" }, - { label: "Разбойники", value: "473" }, - { label: "Развитие отношений", value: "1404" }, - { label: "Развод", value: "200" }, - { label: "Разговоры", value: "1401" }, - { label: "Раздвоение личности", value: "287" }, - { label: "Раздельное обучение", value: "1959" }, - { label: "Разлука / Прощания", value: "1104" }, - { label: "Разница в возрасте", value: "2" }, - { label: "Разница культур", value: "1079" }, - { label: "Разновозрастная дружба", value: "2402" }, - { label: "Разнополая дружба", value: "806" }, - { label: "Разоблачения", value: "2684" }, - { label: "Разочарования", value: "646" }, - { label: "Разрушение стереотипов", value: "2805" }, - { label: "Разрушение четвертой стены", value: "381" }, - { label: "Разрыв связи", value: "2582" }, - { label: "Разум роя", value: "1459" }, - { label: "Разумное оружие", value: "2675" }, - { label: "Разумные животные", value: "895" }, - { label: "Разумные растения", value: "1037" }, - { label: "Раптофилия", value: "729" }, - { label: "Расизм", value: "433" }, - { label: "Раскрытие личностей", value: "2120" }, - { label: "Раскрытие магии", value: "1878" }, - { label: "Расплата", value: "2464" }, - { label: "Рассказ в рассказе", value: "2077" }, - { label: "Расставание", value: "506" }, - { label: "Расстройства аутистического спектра", value: "541" }, - { label: "Расстройства цветового восприятия", value: "1330" }, - { label: "Расстройства шизофренического спектра", value: "912" }, - { label: "Растаманы", value: "857" }, - { label: "Расширенная Вселенная ЗВ", value: "1950" }, - { label: "Реабилитационные центры", value: "1467" }, - { label: "Реактивное расстройство привязанности", value: "2576" }, - { label: "Реакции (стилизация)", value: "1283" }, - { label: "Реализм", value: "1201" }, - { label: "Реалити-шоу", value: "2312" }, - { label: "Ревность", value: "544" }, - { label: "Революции", value: "585" }, - { label: "Регенерация", value: "1530" }, - { label: "Регресс", value: "450" }, - { label: "Регрессия возраста", value: "102" }, - { label: "Редкие заболевания", value: "1856" }, - { label: "Реинкарнация", value: "101" }, - { label: "Рейтинг за лексику", value: "276" }, - { label: "Рейтинг за насилие и/или жестокость", value: "277" }, - { label: "Рейтинг за секс", value: "278" }, - { label: "Религиозная нетерпимость", value: "2451" }, - { label: "Религиозные войны", value: "2911" }, - { label: "Религиозные темы и мотивы", value: "198" }, - { label: "Религиозный фанатизм", value: "2548" }, - { label: "Ренессанс", value: "239" }, - { label: "Репетиторы", value: "2413" }, - { label: "Репетиции", value: "2241" }, - { label: "Репродуктивное насилие", value: "2310" }, - { label: "Реставраторы", value: "2239" }, - { label: "Рестораны", value: "412" }, - { label: "Ретеллинг", value: "52" }, - { label: "Ретрофутуризм", value: "727" }, - { label: "Реформация", value: "2199" }, - { label: "Речь Посполитая", value: "1529" }, - { label: "Риветхеды", value: "2904" }, - { label: "Римминг", value: "170" }, - { label: "Риск", value: "2467" }, - { label: "Рискованная беременность", value: "998" }, - { label: "Ритуалы", value: "749" }, - { label: "Ритуальные услуги", value: "2362" }, - { label: "Роботы", value: "513" }, - { label: "Родео", value: "1314" }, - { label: "Родители-одиночки", value: "325" }, - { label: "Родительские чувства", value: "2308" }, - { label: "Родомагия", value: "1899" }, - { label: "Роды", value: "991" }, - { label: "Рождество", value: "211" }, - { label: "Розыгрыши", value: "1807" }, - { label: "Рокеры", value: "861" }, - { label: "Роковая женщина / Роковой мужчина", value: "982" }, - { label: "Роковое усилие", value: "2604" }, - { label: "Роллер-дерби", value: "1014" }, - { label: "Романтизация", value: "1898" }, - { label: "Романтика", value: "1664" }, - { label: "Романтическая дружба", value: "2307" }, - { label: "Ромком", value: "2768" }, - { label: "Российская империя", value: "475" }, - { label: "Россия", value: "701" }, - { label: "РПП", value: "286" }, - { label: "Румыния", value: "862" }, - { label: "Русалки", value: "32" }, - { label: "Русальная неделя", value: "1067" }, - { label: "Русреал", value: "53" }, - { label: "Руферы", value: "578" }, - { label: "Рыбалка", value: "855" }, - { label: "Рыцари", value: "426" }, - { label: "Рыцарские турниры", value: "2759" }, - { label: "С чистого листа", value: "987" }, - { label: "Савойя", value: "1036" }, - { label: "Садизм / Мазохизм", value: "461" }, - { label: "Садовники", value: "1348" }, - { label: "Сайз-кинк", value: "100" }, - { label: "Самобытные культуры", value: "663" }, - { label: "Самовнушение", value: "2169" }, - { label: "Самовставка", value: "1689" }, - { label: "Самозванцы", value: "1811" }, - { label: "Самоистязание", value: "1386" }, - { label: "Самоопределение / Самопознание", value: "1278" }, - { label: "Самопожертвование", value: "750" }, - { label: "Самосуд", value: "1402" }, - { label: "Самоуничижение", value: "2667" }, - { label: "Самураи", value: "472" }, - { label: "Санатории", value: "223" }, - { label: "Сандалпанк", value: "1986" }, - { label: "Сарказм", value: "2225" }, - { label: "Сатира", value: "1944" }, - { label: "Сатиры", value: "264" }, - { label: "Сахарный диабет", value: "2609" }, - { label: "Сборник драбблов", value: "39" }, - { label: "Сборник лимериков", value: "1989" }, - { label: "Сборник пирожков", value: "743" }, - { label: "Сборник стихотворений", value: "600" }, - { label: "Сборник японской поэзии", value: "1351" }, - { label: "Свадьба", value: "184" }, - { label: "Сверхразумы", value: "966" }, - { label: "Сверхскорость", value: "1902" }, - { label: "Сверхспособности", value: "597" }, - { label: "Светлые властелины", value: "2596" }, - { label: "Светские мероприятия", value: "973" }, - { label: "Свидание вслепую", value: "741" }, - { label: "Свидания", value: "1235" }, - { label: "Свидетели", value: "1242" }, - { label: "Свингерство", value: "203" }, - { label: "Свобода", value: "2166" }, - { label: "Свободные отношения", value: "255" }, - { label: "Сводничество", value: "568" }, - { label: "Сводные родственники", value: "1445" }, - { label: "Святые", value: "393" }, - { label: "Сгенерировано ИИ", value: "3014" }, - { label: "СДВГ", value: "539" }, - { label: "Севвитус", value: "1871" }, - { label: "Северная Корея", value: "2767" }, - { label: "Северус Снейп жив", value: "2406" }, - { label: "Сегрегация", value: "2158" }, - { label: "Секретари", value: "1170" }, - { label: "Секретные миссии", value: "1829" }, - { label: "Секс без обязательств", value: "387" }, - { label: "Секс в воде", value: "718" }, - { label: "Секс в нетрезвом виде", value: "1110" }, - { label: "Секс в одежде", value: "1013" }, - { label: "Секс в публичных местах", value: "123" }, - { label: "Секс в транспорте", value: "124" }, - { label: "Секс в церкви", value: "2968" }, - { label: "Секс во время беременности", value: "279" }, - { label: "Секс во время болезни", value: "1365" }, - { label: "Секс во время менструации", value: "153" }, - { label: "Секс на камеру", value: "1101" }, - { label: "Секс на природе", value: "1256" }, - { label: "Секс перед зеркалом", value: "1255" }, - { label: "Секс по расчету", value: "1212" }, - { label: "Секс по телефону", value: "133" }, - { label: "Секс при посторонних", value: "2514" }, - { label: "Секс с воображаемыми партнерами", value: "2276" }, - { label: "Секс с использованием магии", value: "1563" }, - { label: "Секс с использованием одурманивающих веществ", value: "2635" }, - { label: "Секс с использованием посторонних предметов", value: "1661" }, - { label: "Секс с использованием сверхспособностей", value: "2610" }, - { label: "Секс со смертельным исходом", value: "1171" }, - { label: "Секс-игрушки", value: "176" }, - { label: "Секс-индустрия", value: "447" }, - { label: "Секс-клубы / Секс-вечеринки", value: "936" }, - { label: "Секс-куклы", value: "1202" }, - { label: "Секс-магия", value: "1131" }, - { label: "Секс-машины", value: "1112" }, - { label: "Секс-шопы", value: "739" }, - { label: "Сексизм", value: "464" }, - { label: "Сексомния", value: "2024" }, - { label: "Секстинг", value: "2215" }, - { label: "Сексуальная неопытность", value: "1717" }, - { label: "Сексуальное насилие", value: "2495" }, - { label: "Сексуальное обучение", value: "967" }, - { label: "Сексуальное рабство", value: "1353" }, - { label: "Сексуальные фобии", value: "1537" }, - { label: "Селфхарм", value: "76" }, - { label: "Селфцест", value: "1708" }, - { label: "Семейная сага", value: "920" }, - { label: "Семейные тайны", value: "779" }, - { label: "Семейный бизнес", value: "2338" }, - { label: "Семьи", value: "220" }, - { label: "Сенсорная депривация", value: "282" }, - { label: "Сенсорная перегрузка", value: "2351" }, - { label: "Сентиментальность", value: "2567" }, - { label: "Серая мораль", value: "839" }, - { label: "Серая мышь", value: "1250" }, - { label: "Серая реальность", value: "2278" }, - { label: "Серийные насильники", value: "1942" }, - { label: "Серийные убийцы", value: "193" }, - { label: "Серфинг", value: "764" }, - { label: "Сиамские близнецы", value: "1252" }, - { label: "Сибари", value: "131" }, - { label: "Сиблинги", value: "617" }, - { label: "Сидение на лице", value: "713" }, - { label: "Силкпанк", value: "1813" }, - { label: "Симбиоз", value: "849" }, - { label: "Символизм", value: "538" }, - { label: "Симфорофилия", value: "492" }, - { label: "Синдром восьмиклассника", value: "2032" }, - { label: "Синдром выжившего", value: "1100" }, - { label: "Синдром Дауна", value: "2106" }, - { label: "Синдром Котара", value: "2765" }, - { label: "Синдром Питера Пэна", value: "687" }, - { label: "Синдром Туретта", value: "946" }, - { label: "Синестезия", value: "960" }, - { label: "Сирены", value: "1830" }, - { label: "Сириус Блэк жив", value: "2617" }, - { label: "Сироты", value: "689" }, - { label: "Ситком", value: "2553" }, - { label: "Сказка", value: "288" }, - { label: "Скайпанк", value: "976" }, - { label: "Скандинавия", value: "781" }, - { label: "Скандинавская мифология", value: "2304" }, - { label: "Сквиртинг", value: "950" }, - { label: "Сквозное видение", value: "1280" }, - { label: "Скейтбординг", value: "1395" }, - { label: "Скелеты", value: "1766" }, - { label: "Скинхэды", value: "1757" }, - { label: "Скрытая беременность", value: "2580" }, - { label: "Скрытность", value: "2577" }, - { label: "Скрытые способности", value: "2579" }, - { label: "Скрытый Этаж", value: "2763" }, - { label: "Скульпторы", value: "2976" }, - { label: "Слатшейминг", value: "2910" }, - { label: "Следующее поколение", value: "698" }, - { label: "Слежка", value: "2102" }, - { label: "Слепота", value: "413" }, - { label: "Слияние", value: "2324" }, - { label: "Словакия", value: "2938" }, - { label: "Словения", value: "1788" }, - { label: "Сложные отношения", value: "326" }, - { label: "Слом личности", value: "623" }, - { label: "Слоуберн", value: "19" }, - { label: "Служебные животные", value: "1506" }, - { label: "Служебные отношения", value: "1347" }, - { label: "Служебный роман", value: "75" }, - { label: "Слухи / Сплетни", value: "2809" }, - { label: "Случайные убийства", value: "2673" }, - { label: "Случайный брак", value: "304" }, - { label: "Случайный поцелуй", value: "2852" }, - { label: "Случайный секс", value: "1275" }, - { label: "Смена имени", value: "2094" }, - { label: "Смена мировоззрения", value: "2865" }, - { label: "Смена сущности", value: "1707" }, - { label: "Смертельные заболевания", value: "1132" }, - { label: "Смерть антагониста", value: "2650" }, - { label: "Смерть всех персонажей", value: "2611" }, - { label: "Смерть второстепенных персонажей", value: "1713" }, - { label: "Смерть животных", value: "2210" }, - { label: "Смерть основных персонажей", value: "1647" }, - { label: "СМИ", value: "2656" }, - { label: "Смирение", value: "2272" }, - { label: "Смотрины", value: "1495" }, - { label: "Смутное время", value: "2002" }, - { label: "Снайперы", value: "1762" }, - { label: "Сновидения", value: "490" }, - { label: "Сноубординг", value: "2180" }, - { label: "Соблазнение / Ухаживания", value: "616" }, - { label: "Собственничество", value: "908" }, - { label: "Советпанк", value: "397" }, - { label: "Советский Союз", value: "468" }, - { label: "Совместная кровать", value: "1229" }, - { label: "Совместное купание", value: "1301" }, - { label: "Современное искусство", value: "1087" }, - { label: "Современность", value: "80" }, - { label: "Согласование с каноном", value: "1388" }, - { label: "Сожаления", value: "550" }, - { label: "Создание общества", value: "2643" }, - { label: "Созидание", value: "2590" }, - { label: "Сокровища", value: "893" }, - { label: "Сокрытие убийства", value: "2311" }, - { label: "Солянка из Сансов", value: "2515" }, - { label: "Сомелье / Бармены", value: "865" }, - { label: "Сомнамбулизм", value: "1394" }, - { label: "Сомнения", value: "1544" }, - { label: "Сомнофилия", value: "95" }, - { label: "Сонный паралич", value: "1203" }, - { label: "Соперничество", value: "671" }, - { label: "Сорванная свадьба", value: "2044" }, - { label: "Сострадание", value: "885" }, - { label: "Состязания", value: "910" }, - { label: "Состязания с участием животных", value: "1154" }, - { label: "Сотриголова — отец Хитоши Шинсо", value: "2877" }, - { label: "Соулмейты", value: "1696" }, - { label: "Соулмейты: Действия", value: "2575" }, - { label: "Соулмейты: Изменение восприятия", value: "1400" }, - { label: "Соулмейты: Контакт через кожу", value: "2608" }, - { label: "Соулмейты: Ментальная связь", value: "2841" }, - { label: "Соулмейты: Общая боль", value: "2583" }, - { label: "Соулмейты: Общие эмоции", value: "2637" }, - { label: "Соулмейты: Опознавательные фразы", value: "1399" }, - { label: "Соулмейты: Предметы", value: "2563" }, - { label: "Соулмейты: Предпочтения", value: "2521" }, - { label: "Соулмейты: Разноцветные глаза", value: "2461" }, - { label: "Соулмейты: Ранения", value: "2134" }, - { label: "Соулмейты: Сны", value: "2414" }, - { label: "Соулмейты: Тактильный контакт", value: "2190" }, - { label: "Соулмейты: Татуировки", value: "2711" }, - { label: "Соулмейты: Физические проявления", value: "2864" }, - { label: "Социальная фантастика", value: "591" }, - { label: "Социальные темы и мотивы", value: "1017" }, - { label: "Социальные эксперименты", value: "2756" }, - { label: "Социальный паразитизм", value: "2444" }, - { label: "Социофобия", value: "826" }, - { label: "Спарринги", value: "1575" }, - { label: "Спасатели", value: "392" }, - { label: "Спасение жизни", value: "1299" }, - { label: "Спасение мира", value: "812" }, - { label: "Спектрофилия", value: "2634" }, - { label: "Спецагенты", value: "401" }, - { label: "Спиритизм", value: "1478" }, - { label: "Сплошинг", value: "424" }, - { label: "Спонтанный секс", value: "2918" }, - { label: "Спорт", value: "15" }, - { label: "Спортзалы", value: "1359" }, - { label: "Сражения", value: "2868" }, - { label: "Средневековье", value: "238" }, - { label: "Ссоры / Конфликты", value: "645" }, - { label: "Стаи", value: "2884" }, - { label: "Сталкеры / Диггеры (субкультура)", value: "1029" }, - { label: "Сталкинг", value: "605" }, - { label: "Становление героя", value: "680" }, - { label: "Стёб", value: "1690" }, - { label: "Стереотипы", value: "809" }, - { label: "Стимпанк", value: "25" }, - { label: "Стимуляция руками", value: "225" }, - { label: "Стихи", value: "1692" }, - { label: "Стихийные бедствия", value: "1352" }, - { label: "Стихотворные вставки", value: "2404" }, - { label: "СтихоТворцы", value: "3015" }, - { label: "Стокгольмский синдром / Лимский синдром", value: "1217" }, - { label: "Столетняя война", value: "2243" }, - { label: "Сторонний рассказчик", value: "1383" }, - { label: "Стоунпанк", value: "1987" }, - { label: "Страдания", value: "2009" }, - { label: "Странногеддон", value: "1882" }, - { label: "Страны Балтии", value: "1031" }, - { label: "Страпоны", value: "380" }, - { label: "Страсть", value: "1955" }, - { label: "Страх перед родителями", value: "2332" }, - { label: "Стрельба из лука", value: "1791" }, - { label: "Стримеры / Ютуберы", value: "1473" }, - { label: "Стрип-клубы", value: "79" }, - { label: "Стрит-арт", value: "1012" }, - { label: "Строители", value: "1774" }, - { label: "Студенты", value: "274" }, - { label: "Студенты по обмену", value: "859" }, - { label: "Студенческие городки", value: "753" }, - { label: "Субкультуры", value: "1061" }, - { label: "Субординация", value: "1099" }, - { label: "Суд", value: "827" }, - { label: "Суккубы / Инкубы", value: "334" }, - { label: "Сумасшествие", value: "1239" }, - { label: "Сунагакуре", value: "2476" }, - { label: "Супергерои", value: "67" }, - { label: "Суперзлодеи", value: "1205" }, - { label: "Супермаркеты", value: "843" }, - { label: "Суррогатная беременность", value: "1427" }, - { label: "Сухой закон", value: "2100" }, - { label: "Сухой оргазм", value: "2818" }, - { label: "Сфера ИТ", value: "2534" }, - { label: "Сфинксы", value: "1349" }, - { label: "Сценарий (стилизация)", value: "323" }, - { label: "Счастливый финал", value: "3" }, - { label: "США", value: "640" }, - { label: "Съемочная площадка", value: "410" }, - { label: "Сын Тьмы", value: "2175" }, - { label: "Сэнгоку Джидай", value: "2380" }, - { label: "Сэнгоку Дзидай", value: "2834" }, - { label: "Сэцубун", value: "2969" }, - { label: "Сюрреализм / Фантасмагория", value: "872" }, - { label: "Т/И / Л/И", value: "167" }, - { label: "Таджикистан", value: "2974" }, - { label: "Таиланд", value: "1034" }, - { label: "Тайна происхождения", value: "662" }, - { label: "Тайная личность", value: "194" }, - { label: "Тайная сущность", value: "1512" }, - { label: "Тайны / Секреты", value: "906" }, - { label: "Тайные друзья (игра)", value: "2908" }, - { label: "Тайные организации", value: "572" }, - { label: "Тайные поклонники", value: "1374" }, - { label: "Тайный НапиСанта", value: "2972" }, - { label: "Таксисты", value: "2679" }, - { label: "Тактильный голод", value: "2197" }, - { label: "Тактильный контакт", value: "2875" }, - { label: "Танабата", value: "2340" }, - { label: "Танцы", value: "108" }, - { label: "Танцы на пилоне", value: "1370" }, - { label: "Таро", value: "642" }, - { label: "Тату-салоны", value: "324" }, - { label: "Татуировки", value: "327" }, - { label: "Твинцест", value: "1652" }, - { label: "Творческий кризис", value: "2107" }, - { label: "Театры", value: "195" }, - { label: "Телекинез", value: "951" }, - { label: "Телепатия", value: "127" }, - { label: "Телепортация", value: "1794" }, - { label: "Телесные жидкости", value: "1220" }, - { label: "Телесные наказания", value: "132" }, - { label: "Телесный хоррор", value: "212" }, - { label: "Телохранители", value: "400" }, - { label: "Темная сторона (Гарри Поттер)", value: "1937" }, - { label: "Темная сторона Силы", value: "1946" }, - { label: "Темная Эра (Bungou Stray Dogs)", value: "2494" }, - { label: "Темное прошлое", value: "2229" }, - { label: "Темное фэнтези", value: "1963" }, - { label: "Темные властелины", value: "1224" }, - { label: "Темные эльфы", value: "2597" }, - { label: "Темный романтизм", value: "2128" }, - { label: "Темы ментального здоровья", value: "2344" }, - { label: "Темы этики и морали", value: "1106" }, - { label: "Теннис", value: "1066" }, - { label: "Тентакли", value: "129" }, - { label: "Теория инверсии", value: "1980" }, - { label: "Теория Одурманивания", value: "2493" }, - { label: "Термокинез", value: "2793" }, - { label: "Террористы", value: "556" }, - { label: "Теслапанк", value: "1988" }, - { label: "Техники", value: "1272" }, - { label: "Техногенные катастрофы", value: "526" }, - { label: "Технокинез", value: "1271" }, - { label: "Технологии", value: "1232" }, - { label: "Технотриллер", value: "649" }, - { label: "Течка / Гон", value: "283" }, - { label: "Тим Дрейк — Джокер-младший", value: "2454" }, - { label: "Тим Дрейк — Кэтлэд", value: "2453" }, - { label: "Тихий секс", value: "1185" }, - { label: "Товарищи по несчастью", value: "2666" }, - { label: "Токсичные родственники", value: "2008" }, - { label: "Том Реддл — не Темный Лорд", value: "2394" }, - { label: "Томбои", value: "565" }, - { label: "Томгерлз", value: "848" }, - { label: "Торговля органами", value: "1358" }, - { label: "Торговцы", value: "2098" }, - { label: "Торговые центры", value: "1416" }, - { label: "Тоталитаризм", value: "1169" }, - { label: "Травники / Травницы", value: "1211" }, - { label: "Трагедия", value: "919" }, - { label: "Трагикомедия", value: "1454" }, - { label: "Традиции", value: "1463" }, - { label: "Трансгендерные персонажи", value: "175" }, - { label: "Трансплантация", value: "2364" }, - { label: "Трансфобия", value: "420" }, - { label: "Тревожное расстройство личности", value: "1914" }, - { label: "Тревожность", value: "1318" }, - { label: "Трейлеры", value: "785" }, - { label: "Тренировки / Обучение", value: "876" }, - { label: "Третий лишний", value: "1176" }, - { label: "Третья мировая", value: "624" }, - { label: "Три корейских государства", value: "2322" }, - { label: "Трикстеры", value: "1507" }, - { label: "Триллер", value: "169" }, - { label: "Трилогия Юникрона", value: "2378" }, - { label: "Трипофобия", value: "2342" }, - { label: "Трисам", value: "758" }, - { label: "Трихотилломания", value: "2185" }, - { label: "Тролли", value: "190" }, - { label: "Трудные отношения с родителями", value: "1490" }, - { label: "Трудный характер", value: "2123" }, - { label: "Трудоголизм", value: "1848" }, - { label: "Трущобы", value: "2822" }, - { label: "Туалетный юмор", value: "1247" }, - { label: "Туберкулез", value: "2163" }, - { label: "Турция", value: "794" }, - { label: "Тщеславие", value: "2578" }, - { label: "Тюрьмы / Темницы", value: "117" }, - { label: "Тяжелое детство", value: "2614" }, - { label: "Убийства", value: "621" }, - { label: "Убийственная пара", value: "1918" }, - { label: "Убийца поневоле", value: "2671" }, - { label: "Уважение", value: "2688" }, - { label: "Ужасы", value: "1679" }, - { label: "Узбекистан", value: "1293" }, - { label: "Уизлигады", value: "1862" }, - { label: "Украина", value: "716" }, - { label: "Укрытия", value: "199" }, - { label: "Уличные артисты", value: "2550" }, - { label: "Уличные гонки", value: "880" }, - { label: "Умбракинез", value: "2355" }, - { label: "Универсалы", value: "657" }, - { label: "Унижения", value: "1319" }, - { label: "Упоминания аддикций", value: "2848" }, - { label: "Упоминания алкоголя", value: "2415" }, - { label: "Упоминания беременности", value: "2057" }, - { label: "Упоминания войны", value: "2707" }, - { label: "Упоминания жестокости", value: "2447" }, - { label: "Упоминания зоофилии", value: "2620" }, - { label: "Упоминания измены", value: "2876" }, - { label: "Упоминания изнасилования", value: "521" }, - { label: "Упоминания инвалидности", value: "2705" }, - { label: "Упоминания инцеста", value: "2285" }, - { label: "Упоминания каннибализма", value: "2427" }, - { label: "Упоминания курения", value: "2450" }, - { label: "Упоминания мужской беременности", value: "2226" }, - { label: "Упоминания наркотиков", value: "144" }, - { label: "Упоминания насилия", value: "2207" }, - { label: "Упоминания нездоровых отношений", value: "2892" }, - { label: "Упоминания проституции", value: "2618" }, - { label: "Упоминания пыток", value: "2410" }, - { label: "Упоминания расизма", value: "2737" }, - { label: "Упоминания религии", value: "1048" }, - { label: "Упоминания самоубийства", value: "77" }, - { label: "Упоминания секса", value: "2747" }, - { label: "Упоминания селфхарма", value: "2105" }, - { label: "Упоминания смертей", value: "2081" }, - { label: "Упоминания смертей животных", value: "2211" }, - { label: "Упоминания телесного хоррора", value: "2466" }, - { label: "Упоминания терроризма", value: "774" }, - { label: "Упоминания убийств", value: "1501" }, - { label: "Управление оргазмом", value: "118" }, - { label: "Управление стихиями", value: "2091" }, - { label: "Уретральное проникновение", value: "1469" }, - { label: "Уро-кинк", value: "762" }, - { label: "Условное бессмертие", value: "2117" }, - { label: "Уся / Сянься", value: "2714" }, - { label: "Утопия", value: "350" }, - { label: "Утраченная тройка", value: "2535" }, - { label: "Утренний секс", value: "2882" }, - { label: "Уход за персонажами с инвалидностью", value: "2133" }, - { label: "Ухудшение отношений", value: "1219" }, - { label: "Учебные заведения", value: "1694" }, - { label: "Ученые", value: "402" }, - { label: "Уют", value: "2738" }, - { label: "Фавориты", value: "2135" }, - { label: "Фамильяры", value: "1045" }, - { label: "Фан-Бинго", value: "2957" }, - { label: "Фан-Фанты", value: "2953" }, - { label: "Фандомная аналитика", value: "742" }, - { label: "Фандомная Битва", value: "253" }, - { label: "Фансервис", value: "2483" }, - { label: "Фантастика", value: "1670" }, - { label: "Фастберн", value: "2016" }, - { label: "Фастфуд / Закусочные", value: "1025" }, - { label: "Феи", value: "191" }, - { label: "Фельчинг", value: "2368" }, - { label: "Фемдом", value: "54" }, - { label: "Феминистские темы и мотивы", value: "523" }, - { label: "Феминитивы", value: "390" }, - { label: "Фениксы", value: "1215" }, - { label: "Феодализм", value: "1504" }, - { label: "Фермы / Ранчо", value: "329" }, - { label: "Фестивали", value: "1006" }, - { label: "Фехтование", value: "1775" }, - { label: "Фиггинг", value: "1439" }, - { label: "Фигурное катание", value: "460" }, - { label: "Физиотерапия", value: "2222" }, - { label: "Физическая сверхсила", value: "2880" }, - { label: "Фикрайтеры / Фикридеры", value: "1284" }, - { label: "Фиксированная раскладка", value: "1344" }, - { label: "Фиктивные отношения", value: "308" }, - { label: "Фиктивный брак", value: "34" }, - { label: "Философия", value: "1675" }, - { label: "Финляндия", value: "1133" }, - { label: "Фистинг", value: "151" }, - { label: "Флафф", value: "1667" }, - { label: "Флирт", value: "349" }, - { label: "Флот", value: "846" }, - { label: "Фобии", value: "977" }, - { label: "Фольклор и предания", value: "1273" }, - { label: "Форнифилия", value: "580" }, - { label: "Фотографы", value: "348" }, - { label: "Фотокинез", value: "1805" }, - { label: "Франция", value: "691" }, - { label: "Фред Уизли жив", value: "2941" }, - { label: "Фроттаж", value: "96" }, - { label: "Фуд-плей", value: "509" }, - { label: "Фуд-фетиш", value: "2168" }, - { label: "Фурри", value: "996" }, - { label: "Фут-фетиш", value: "432" }, - { label: "Футбол", value: "458" }, - { label: "Фэйри", value: "2028" }, - { label: "Фэнтези", value: "1669" }, - { label: "Хакеры", value: "340" }, - { label: "Ханами", value: "1155" }, - { label: "Ханахаки", value: "45" }, - { label: "Ханжество", value: "882" }, - { label: "Характерная для канона жестокость", value: "896" }, - { label: "Харассмент", value: "477" }, - { label: "Хиерофилия", value: "2366" }, - { label: "Химеры", value: "816" }, - { label: "Химическое оружие", value: "1186" }, - { label: "Химэдэрэ / Оджидэрэ", value: "1363" }, - { label: "Хип-хоп (субкультура)", value: "1822" }, - { label: "Хиппи", value: "784" }, - { label: "Хиромантия", value: "2749" }, - { label: "Хирургическая коррекция пола", value: "1249" }, - { label: "Хирургические операции", value: "1845" }, - { label: "Хобби", value: "1161" }, - { label: "Хогсмид", value: "2388" }, - { label: "Хоккей", value: "828" }, - { label: "Холодная война", value: "2140" }, - { label: "Холодное оружие", value: "1187" }, - { label: "Хорватия", value: "1433" }, - { label: "Хороший плохой финал", value: "1266" }, - { label: "Хронические заболевания", value: "1267" }, - { label: "Хронокинез", value: "1447" }, - { label: "Хронофантастика", value: "56" }, - { label: "Хтонические существа", value: "504" }, - { label: "Художники", value: "140" }, - { label: "Хуманизация", value: "177" }, - { label: "Хэллоуин", value: "205" }, - { label: "Хюльдры", value: "1397" }, - { label: "Цветочные магазины", value: "164" }, - { label: "Целители", value: "1107" }, - { label: "Церкви", value: "533" }, - { label: "Цикличность", value: "1979" }, - { label: "Цирки", value: "259" }, - { label: "Цукими", value: "1798" }, - { label: "Цундэрэ", value: "1137" }, - { label: "Цыгане", value: "1091" }, - { label: "Чайлдфри", value: "592" }, - { label: "Чайные церемонии", value: "2416" }, - { label: "Частичный ООС", value: "1409" }, - { label: "Частные детективы", value: "427" }, - { label: "Черная археология", value: "2503" }, - { label: "Черная мораль", value: "2438" }, - { label: "Чернобыльская катастрофа", value: "775" }, - { label: "Черный юмор", value: "66" }, - { label: "Чехия", value: "1021" }, - { label: "Чиновники", value: "1991" }, - { label: "Чирлидинг", value: "1431" }, - { label: "Чистокровные AU (Гарри Поттер)", value: "1905" }, - { label: "Чосон", value: "571" }, - { label: "Чувство вины", value: "902" }, - { label: "Чумные доктора", value: "1125" }, - { label: "Чхусок", value: "2973" }, - { label: "Шаманы", value: "484" }, - { label: "Шантаж", value: "569" }, - { label: "Шармбатон", value: "2733" }, - { label: "Швейцария", value: "1022" }, - { label: "Шейпшифтеры", value: "29" }, - { label: "Шелки", value: "2431" }, - { label: "Шифры", value: "2232" }, - { label: "Школьная иерархия", value: "2787" }, - { label: "Школьники", value: "2566" }, - { label: "Школьные годы Тома Реддла", value: "1913" }, - { label: "Школьные ОтМетки", value: "3017" }, - { label: "Школьные поездки", value: "2481" }, - { label: "Школьный роман", value: "2440" }, - { label: "Шопинг", value: "864" }, - { label: "Шоу-бизнес", value: "17" }, - { label: "Шпионы", value: "148" }, - { label: "Шрамирование", value: "891" }, - { label: "Шрамы", value: "328" }, - { label: "Эвтаназия", value: "1102" }, - { label: "Эгоизм", value: "2071" }, - { label: "Эдвардианская эпоха", value: "2975" }, - { label: "Эзотерические темы и мотивы", value: "2801" }, - { label: "Эйблизм", value: "453" }, - { label: "Эйдетическая память", value: "975" }, - { label: "Эйфория", value: "2458" }, - { label: "Экзамены", value: "2591" }, - { label: "Экзистенциальный кризис", value: "1200" }, - { label: "Экзорцизм", value: "494" }, - { label: "Экологи / Биологи", value: "631" }, - { label: "Экологический кризис", value: "485" }, - { label: "Экономический кризис", value: "1547" }, - { label: "Эксаудиризм", value: "2151" }, - { label: "Эксгибиционизм", value: "489" }, - { label: "Эксперимент", value: "1686" }, - { label: "Экстрасенсы", value: "371" }, - { label: "Экшн", value: "1673" }, - { label: "Электрокинез", value: "1857" }, - { label: "Электростимуляция", value: "807" }, - { label: "Элементы ангста", value: "2696" }, - { label: "Элементы гета", value: "1714" }, - { label: "Элементы дарка", value: "2703" }, - { label: "Элементы детектива", value: "2698" }, - { label: "Элементы драмы", value: "2697" }, - { label: "Элементы других видов отношений", value: "454" }, - { label: "Элементы мистики", value: "1324" }, - { label: "Элементы психологии", value: "2824" }, - { label: "Элементы романтики", value: "2742" }, - { label: "Элементы слэша", value: "1715" }, - { label: "Элементы ужасов", value: "2721" }, - { label: "Элементы фемслэша", value: "1716" }, - { label: "Элементы флаффа", value: "2731" }, - { label: "Элементы юмора / Элементы стёба", value: "2011" }, - { label: "Эльфы", value: "44" }, - { label: "Эметофилия", value: "1434" }, - { label: "Эмо", value: "641" }, - { label: "Эмоциональная одержимость", value: "1270" }, - { label: "Эмпатия", value: "1177" }, - { label: "Энергетический вампиризм", value: "818" }, - { label: "Эпидемии", value: "619" }, - { label: "Эпизод 23.5", value: "2469" }, - { label: "Эпилепсия", value: "1511" }, - { label: "Эпилог? Какой эпилог?", value: "2651" }, - { label: "Эпоха Бакумацу", value: "1472" }, - { label: "Эпоха Мэйдзи", value: "1435" }, - { label: "Эпоха Тайсё", value: "2015" }, - { label: "Эрик Киллмонгер жив", value: "2897" }, - { label: "Эрогуро", value: "1731" }, - { label: "Эротическая дрессировка", value: "2026" }, - { label: "Эротическая лактация", value: "284" }, - { label: "Эротическая мумификация", value: "415" }, - { label: "Эротическая сверхстимуляция", value: "1245" }, - { label: "Эротические наказания", value: "125" }, - { label: "Эротические ролевые игры", value: "111" }, - { label: "Эротические сны", value: "128" }, - { label: "Эротические фантазии", value: "561" }, - { label: "Эротический массаж", value: "1518" }, - { label: "Эротический перенос", value: "744" }, - { label: "Эротомания", value: "2922" }, - { label: "Эскапизм", value: "1552" }, - { label: "Эскорты", value: "922" }, - { label: "Эстетика", value: "2021" }, - { label: "ЭТЕРНА", value: "2948" }, - { label: "Этнические анклавы", value: "2732" }, - { label: "Этническое фэнтези", value: "667" }, - { label: "Эффект бабочки", value: "1572" }, - { label: "Ювелиры", value: "2964" }, - { label: "Южная Америка", value: "832" }, - { label: "Южная готика", value: "1077" }, - { label: "Южная Корея", value: "674" }, - { label: "Юмор", value: "1666" }, - { label: "Юристы", value: "333" }, - { label: "Я никогда не... (игра)", value: "1436" }, - { label: "Явное согласие", value: "1569" }, - { label: "Ядерная война", value: "889" }, - { label: "Язык жестов", value: "2962" }, - { label: "Язык животных", value: "1327" }, - { label: "Язык растений", value: "2622" }, - { label: "Язык цветов", value: "272" }, - { label: "Ямадад", value: "2916" }, - { label: "Янгирэ", value: "1257" }, - { label: "Яндэрэ", value: "1136" }, - { label: "Яогуаи", value: "2347" }, - { label: "Япония", value: "665" }, - { label: "Японские фестивали", value: "2555" }, - { label: "Ящеролюди", value: "682" }, - { label: "Abuse/Comfort", value: "2599" }, - { label: "Aged down", value: "229" }, - { label: "Aged up", value: "4" }, - { label: "Artfic", value: "68" }, - { label: "AU", value: "1683" }, - { label: "AU: Альтернативные способности", value: "2086" }, - { label: "AU: Без апокалипсиса", value: "2051" }, - { label: "AU: Без войны", value: "2305" }, - { label: "AU: Без магии", value: "1052" }, - { label: "AU: Без мистики", value: "2489" }, - { label: "AU: Без сверхспособностей", value: "1053" }, - { label: "AU: Без супергероев", value: "1152" }, - { label: "AU: Все гражданские", value: "2797" }, - { label: "AU: Все друзья", value: "2552" }, - { label: "AU: Все люди", value: "1151" }, - { label: "AU: Все хорошо", value: "2124" }, - { label: "AU: Другая страна", value: "2165" }, - { label: "AU: Другая эпоха", value: "2452" }, - { label: "AU: Другое детство", value: "2360" }, - { label: "AU: Другое знакомство", value: "2217" }, - { label: "AU: Другое семейное положение", value: "2902" }, - { label: "AU: Не родственники", value: "2167" }, - { label: "AU: Профессиональные герои (BNHA)", value: "2924" }, - { label: "AU: Родственники", value: "2164" }, - { label: "AU: Школа", value: "2532" }, - { label: "AU: Age swap", value: "917" }, - { label: "AU: Kitty Gang", value: "2928" }, - { label: "AU: Race swap", value: "933" }, - { label: "AU: Reverse", value: "1156" }, - { label: "AU: Role swap", value: "1054" }, - { label: "Authors Time", value: "2959" }, - { label: "BDSM", value: "1646" }, - { label: "BDSM-вселенная", value: "1078" }, - { label: "BDSM: Домспейс", value: "1444" }, - { label: "BDSM: Дроп", value: "1411" }, - { label: "BDSM: Сабспейс", value: "1410" }, - { label: "BDSM: Aftercare", value: "1523" }, - { label: "BEAST (Bungou Stray Dogs)", value: "2457" }, - { label: "Blackwatch", value: "2116" }, - { label: "Body inflation", value: "389" }, - { label: "Character study", value: "363" }, - { label: "Cockwarming", value: "318" }, - { label: "Dark academia", value: "2430" }, - { label: "DDLG / DDLB / MDLG / MDLB", value: "1033" }, - { label: "Dirty talk", value: "139" }, - { label: "Doggy style", value: "1361" }, - { label: "Dollification", value: "2780" }, - { label: "Dramione Authors Tournament", value: "2950" }, - { label: "EIQ", value: "271" }, - { label: "ER", value: "1687" }, - { label: "Final Haikyuu Quest", value: "2652" }, - { label: "Fix-it", value: "1" }, - { label: "Frenemies", value: "666" }, - { label: "Gangbang", value: "315" }, - { label: "Glory hole", value: "2188" }, - { label: "Golden Age Overwatch", value: "2112" }, - { label: "GOLockdown", value: "2391" }, - { label: "Gun play", value: "252" }, - { label: "Hurt/Comfort", value: "1682" }, - { label: "Hydra!AU", value: "1931" }, - { label: "Ironqrow week", value: "2209" }, - { label: "Kimetsu Gakuen", value: "2574" }, - { label: "Knife play", value: "152" }, - { label: "KPOP-AUFEST", value: "1851" }, - { label: "LARP", value: "1510" }, - { label: "LOVE ОтМетки", value: "2981" }, - { label: "Maleval week", value: "2382" }, - { label: "Marvel ГФИ", value: "2896" }, - { label: "Mate or die", value: "375" }, - { label: "Mirror!verse (Звездный путь)", value: "2899" }, - { label: "Moresome", value: "759" }, - { label: "N раз", value: "263" }, - { label: "Omnic Crisis Era", value: "2111" }, - { label: "ORIGINAL'S 2021", value: "2939" }, - { label: "Parentlock", value: "2053" }, - { label: "Patronus of Dramione", value: "2958" }, - { label: "Post-Fall of Overwatch", value: "2114" }, - { label: "Post-Recall", value: "2115" }, - { label: "PWP", value: "1680" }, - { label: "Rape/Revenge", value: "2195" }, - { label: "Reverse Falls", value: "1879" }, - { label: "RofR ДраМиВояж", value: "2954" }, - { label: "RST", value: "815" }, - { label: "RTFM", value: "2327" }, - { label: "Service top / Power bottom", value: "563" }, - { label: "Shingeki no Kyojin High School AU", value: "2037" }, - { label: "Shingeki! Kyojin Chuugakkou", value: "2038" }, - { label: "Sickfic", value: "422" }, - { label: "Songfic", value: "1684" }, - { label: "Spider-son & Iron-dad", value: "1885" }, - { label: "Sugar daddy", value: "106" }, - { label: "Sugar mommy", value: "160" }, - { label: "Superfamily (Мстители)", value: "2623" }, - { label: "Superior Iron Man", value: "2676" }, - { label: "Talon (Overwatch)", value: "2110" }, - { label: "The Big Four / The Super Six", value: "1954" }, - { label: "Trench AU", value: "2387" }, - { label: "TYL", value: "1933" }, - { label: "Underage", value: "1658" }, - { label: "URT", value: "2761" }, - { label: "UST", value: "1709" }, - { label: "Versefic", value: "2729" }, - { label: "Videofic", value: "2480" }, - { label: "Womance", value: "265" }, - { label: "X век", value: "240" }, - { label: "XI век", value: "241" }, - { label: "XII век", value: "242" }, - { label: "XIII век", value: "243" }, - { label: "XIV век", value: "244" }, - { label: "XIX век", value: "249" }, - { label: "XV век", value: "245" }, - { label: "XVI век", value: "246" }, - { label: "XVII век", value: "247" }, - { label: "XVIII век", value: "248" }, - { label: "XX век", value: "1004" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - }; - } - ficbook.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d; - var showLatestNovels = _a.showLatestNovels, filters = _a.filters; - return __awaiter(this, void 0, void 0, function () { - var baseUrl, url, result, body, loadedCheerio, novels; - return __generator(this, function (_e) { - switch (_e.label) { - case 0: - baseUrl = this.site; - url = baseUrl; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.directions) === null || _b === void 0 ? void 0 : _b.value) { - url += "/popular-fanfics/" + filters.directions.value; - } - else if ((_c = filters === null || filters === void 0 ? void 0 : filters.tags) === null || _c === void 0 ? void 0 : _c.value) { - url += "/tags/" + filters.tags.value + "?p=" + pageNo; - } - else { - url += "/" + (((_d = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _d === void 0 ? void 0 : _d.value) || "fanfiction") + "?p=" + pageNo; - } - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _e.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _e.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio("article.fanfic-inline").each(function () { - var name = loadedCheerio(this).find("h3 > a").text().trim(); - var cover = loadedCheerio(this).find("picture > img").attr("src"); - var url = loadedCheerio(this).find("h3 > a").attr("href"); - cover = cover - ? cover.replace(/covers\/m_|covers\/d_/g, "covers/") - : defaultCover_1.defaultCover; - if (!name || !url) - return; - novels.push({ name: name, cover: cover, url: baseUrl + url.replace(/\?.*/g, "") }); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - ficbook.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var result, body, loadedCheerio, novel, tags, chapters, baseUrl, name_1, releaseTime; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl)]; - case 1: - result = _b.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { - url: novelUrl, - }; - novel.name = (loadedCheerio('h1[itemprop="headline"]').text() || - loadedCheerio('h1[itemprop="name"]').text()).trim(); - novel.cover = loadedCheerio('meta[property="og:image"]').attr("content"); - novel.summary = loadedCheerio('div[itemprop="description"]').text().trim(); - novel.author = loadedCheerio('a[itemprop="author"]').text(); - novel.status = - loadedCheerio("div.fanfic-main-info > section:nth-child(3) > div:nth-child(3) > span:nth-child(2)").text() === "В процессе" - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - tags = loadedCheerio('div[class="tags"] > a') - .map(function (index, element) { return loadedCheerio(element).text(); }) - .get(); - if (tags) { - novel.genres = tags.join(","); - } - if (!novel.cover || ((_a = novel.cover) === null || _a === void 0 ? void 0 : _a.includes("/design/"))) { - novel.cover = defaultCover_1.defaultCover; - } - else { - novel.cover = novel.cover.replace(/covers\/m_|covers\/d_/g, "covers/"); - } - chapters = []; - baseUrl = this.site; - if (loadedCheerio("#content").length == 1) { - name_1 = loadedCheerio(".title-area > h2").text(); - releaseTime = loadedCheerio(".part-date > span").attr("title"); - if (name_1) - chapters.push({ name: name_1, releaseTime: releaseTime, url: novelUrl }); - } - else { - loadedCheerio("li.part").each(function () { - var name = loadedCheerio(this).find("h3").text(); - var releaseTime = loadedCheerio(this) - .find("div > span") - .attr("title"); - var url = loadedCheerio(this).find("a:nth-child(1)").attr("href"); - if (!name || !url) - return; - chapters.push({ name: name, releaseTime: releaseTime, url: baseUrl + url }); - }); - } - novel.chapters = chapters; - return [2 /*return*/, novel]; - } - }); - }); - }; - ficbook.prototype.parseChapter = function (chapterUrl) { - var _a, _b; - return __awaiter(this, void 0, void 0, function () { - var result, body, loadedCheerio, chapterText; - return __generator(this, function (_c) { - switch (_c.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl)]; - case 1: - result = _c.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _c.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = ""; - (_b = (_a = loadedCheerio("#content") - .html()) === null || _a === void 0 ? void 0 : _a.split("\n")) === null || _b === void 0 ? void 0 : _b.forEach(function (line) { - if (line.trim()) { - //blank line skip - if (line.includes("

")) { - //new paragraph - chapterText += line; - } - else { - //plaintext - chapterText += "

" + line + "

"; - } - } - }); - return [2 /*return*/, chapterText]; - } - }); - }); - }; - ficbook.prototype.searchNovels = function (searchTerm, pageNo) { - var _a, _b; - if (pageNo === void 0) { pageNo = 1; } - return __awaiter(this, void 0, void 0, function () { - var formData, result, json, novels; - var _this = this; - return __generator(this, function (_c) { - switch (_c.label) { - case 0: - formData = new FormData(); - formData.append("term", searchTerm); - formData.append("page", pageNo.toString()); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "/search/fanfic", { - method: "POST", - body: formData, - })]; - case 1: - result = _c.sent(); - return [4 /*yield*/, result.json()]; - case 2: - json = (_c.sent()); - novels = []; - (_b = (_a = json.data) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.forEach(function (novel) { - var name = novel.title.trim(); - var url = _this.site + "/readfic/" + novel.slug; - var cover = novel.cover - ? "https://images.ficbook.net/fanfic-covers/" + novel.cover - : defaultCover_1.defaultCover; - novels.push({ name: name, cover: cover, url: url }); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - return ficbook; -}()); -exports.default = new ficbook(); diff --git a/.js/plugins/russian/jaomix.js b/.js/plugins/russian/jaomix.js deleted file mode 100644 index ac5f5fd..0000000 --- a/.js/plugins/russian/jaomix.js +++ /dev/null @@ -1,308 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var filterInputs_1 = require("@libs/filterInputs"); -var fetch_1 = require("@libs/fetch"); -var novelStatus_1 = require("@libs/novelStatus"); -var cheerio_1 = require("cheerio"); -var Jaomix = /** @class */ (function () { - function Jaomix() { - this.id = "jaomix.ru"; - this.name = "Jaomix"; - this.site = "https://jaomix.ru"; - this.version = "1.0.0"; - this.icon = "src/ru/jaomix/icon.png"; - this.fetchImage = fetch_1.fetchFile; - this.filters = { - sortby: { - label: "Сортировка:", - value: "topweek", - options: [ - { label: "Топ недели", value: "topweek" }, - { label: "По алфавиту", value: "alphabet" }, - { label: "По дате обновления", value: "upd" }, - { label: "По дате создания", value: "new" }, - { label: "По просмотрам", value: "count" }, - { label: "Топ года", value: "topyear" }, - { label: "Топ дня", value: "topday" }, - { label: "Топ за все время", value: "alltime" }, - { label: "Топ месяца", value: "topmonth" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - sortdaycreate: { - label: "Дата добавления:", - value: "1", - options: [ - { label: "Любое", value: "1" }, - { label: "От 120 до 180 дней", value: "1218" }, - { label: "От 180 до 365 дней", value: "1836" }, - { label: "От 30 до 60 дней", value: "3060" }, - { label: "От 365 дней", value: "365" }, - { label: "От 60 до 90 дней", value: "6090" }, - { label: "От 90 до 120 дней", value: "9012" }, - { label: "Послед. 30 дней", value: "30" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - sortcountchapt: { - label: "Количество глав:", - value: "1", - options: [ - { label: "Любое кол-во глав", value: "1" }, - { label: "До 500", value: "500" }, - { label: "От 1000 до 2000", value: "1020" }, - { label: "От 2000 до 3000", value: "2030" }, - { label: "От 3000 до 4000", value: "3040" }, - { label: "От 4000", value: "400" }, - { label: "От 500 до 1000", value: "510" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - genre: { - label: "Жанры:", - value: { include: [], exclude: [] }, - 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: "Триллер" }, - { label: "Фантастика", value: "Фантастика" }, - { label: "Фэнтези", value: "Фэнтези" }, - { label: "Хоррор", value: "Хоррор" }, - { label: "Школьная жизнь", value: "Школьная жизнь" }, - { label: "Шоунен", value: "Шоунен" }, - { label: "Экшн", value: "Экшн" }, - { label: "Этти", value: "Этти" }, - { label: "Юри", value: "Юри" }, - { label: "Adult", value: "Adult" }, - { label: "Ecchi", value: "Ecchi" }, - { label: "Josei", value: "Josei" }, - { label: "Lolicon", value: "Lolicon" }, - { label: "Mature", value: "Mature" }, - { label: "Shoujo", value: "Shoujo" }, - { label: "Wuxia", value: "Wuxia" }, - { label: "Xianxia", value: "Xianxia" }, - { label: "Xuanhuan", value: "Xuanhuan" }, - { label: "Yaoi", value: "Yaoi" }, - ], - type: filterInputs_1.FilterTypes.ExcludableCheckboxGroup, - }, - lang: { - label: "Выбрать языки:", - value: [], - options: [ - { label: "Английский", value: "Английский" }, - { label: "Китайский", value: "Китайский" }, - { label: "Корейский", value: "Корейский" }, - { label: "Японский", value: "Японский" }, - ], - type: filterInputs_1.FilterTypes.CheckboxGroup, - }, - }; - } - Jaomix.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m; - var showLatestNovels = _a.showLatestNovels, filters = _a.filters; - return __awaiter(this, void 0, void 0, function () { - var url, body, loadedCheerio, novels; - return __generator(this, function (_o) { - switch (_o.label) { - case 0: - url = this.site + "/?searchrn"; - if ((_c = (_b = filters === null || filters === void 0 ? void 0 : filters.lang) === null || _b === void 0 ? void 0 : _b.value) === null || _c === void 0 ? void 0 : _c.length) { - url += filters.lang.value - .map(function (lang, idx) { return "&lang[".concat(idx, "]=").concat(lang); }).join(""); - } - if ((_f = (_e = (_d = filters === null || filters === void 0 ? void 0 : filters.genre) === null || _d === void 0 ? void 0 : _d.value) === null || _e === void 0 ? void 0 : _e.include) === null || _f === void 0 ? void 0 : _f.length) { - url += filters.genre.value.include - .map(function (genre, idx) { return "&genre[".concat(idx, "]=").concat(genre); }).join(""); - } - if ((_j = (_h = (_g = filters === null || filters === void 0 ? void 0 : filters.genre) === null || _g === void 0 ? void 0 : _g.value) === null || _h === void 0 ? void 0 : _h.exclude) === null || _j === void 0 ? void 0 : _j.length) { - url += filters.genre.value.exclude - .map(function (genre, idx) { return "&delgenre[".concat(idx, "]=del ").concat(genre); }).join(""); - } - url += "&sortcountchapt=" + (((_k = filters === null || filters === void 0 ? void 0 : filters.sortcountchapt) === null || _k === void 0 ? void 0 : _k.value) || "1"); - url += "&sortdaycreate=" + (((_l = filters === null || filters === void 0 ? void 0 : filters.sortdaycreate) === null || _l === void 0 ? void 0 : _l.value) || "1"); - url += - "&sortby=" + (showLatestNovels ? "upd" : ((_m = filters === null || filters === void 0 ? void 0 : filters.sortby) === null || _m === void 0 ? void 0 : _m.value) || "topweek"); - url += "&gpage=" + pageNo; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _o.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio('div[class="block-home"] > div[class="one"]').each(function () { - var _a; - var name = loadedCheerio(this) - .find('div[class="img-home"] > a') - .attr("title"); - var cover = (_a = loadedCheerio(this) - .find('div[class="img-home"] > a > img') - .attr("src")) === null || _a === void 0 ? void 0 : _a.replace("-150x150", ""); - var url = loadedCheerio(this) - .find('div[class="img-home"] > a') - .attr("href"); - if (!name || !url) - return; - novels.push({ name: name, cover: cover, url: url }); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - Jaomix.prototype.parseNovelAndChapters = function (novelUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, novel, chapters; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { - url: novelUrl, - name: loadedCheerio('div[class="desc-book"] > h1').text().trim(), - cover: loadedCheerio('div[class="img-book"] > img').attr("src"), - summary: loadedCheerio('div[id="desc-tab"]').text().trim() - }; - loadedCheerio("#info-book > p").each(function () { - var text = loadedCheerio(this).text().replace(/,/g, "").split(" "); - if (text[0] === "Автор:") { - novel.author = text.splice(1).join(" "); - } - else if (text[0] === "Жанры:") { - novel.genres = text.splice(1).join(","); - } - else if (text[0] === "Статус:") { - novel.status = text.includes("продолжается") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - } - }); - chapters = []; - loadedCheerio(".download-chapter div.title").each(function () { - var name = loadedCheerio(this).find("a").attr("title"); - var releaseTime = loadedCheerio(this).find("time").text(); - var url = loadedCheerio(this).find("a").attr("href"); - if (!name || !url) - return; - chapters.push({ name: name, releaseTime: releaseTime, url: url }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - Jaomix.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio('div[class="adblock-service"]').remove(); - chapterText = loadedCheerio('div[class="entry-content"]').html(); - return [2 /*return*/, chapterText || ""]; - } - }); - }); - }; - Jaomix.prototype.searchNovels = function (searchTerm, pageNo) { - if (pageNo === void 0) { pageNo = 1; } - return __awaiter(this, void 0, void 0, function () { - var url, body, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = "".concat(this.site, "/?searchrn=").concat(searchTerm, "&but=\u041F\u043E\u0438\u0441\u043A \u043F\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044E&sortby=upd&gpage=").concat(pageNo); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio('div[class="block-home"] > div[class="one"]').each(function () { - var _a; - var name = loadedCheerio(this) - .find('div[class="img-home"] > a') - .attr("title"); - var cover = (_a = loadedCheerio(this) - .find('div[class="img-home"] > a > img') - .attr("src")) === null || _a === void 0 ? void 0 : _a.replace("-150x150", ""); - var url = loadedCheerio(this) - .find('div[class="img-home"] > a') - .attr("href"); - if (!name || !url) - return; - novels.push({ name: name, cover: cover, url: url }); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - return Jaomix; -}()); -exports.default = new Jaomix(); diff --git a/.js/plugins/russian/novelTL.js b/.js/plugins/russian/novelTL.js deleted file mode 100644 index 64ea114..0000000 --- a/.js/plugins/russian/novelTL.js +++ /dev/null @@ -1,938 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var filterInputs_1 = require("@libs/filterInputs"); -var defaultCover_1 = require("@libs/defaultCover"); -var fetch_1 = require("@libs/fetch"); -var novelStatus_1 = require("@libs/novelStatus"); -var cheerio_1 = require("cheerio"); -var dayjs_1 = __importDefault(require("dayjs")); -var TL = /** @class */ (function () { - function TL() { - this.id = "TL"; - this.name = "NovelTL"; - this.site = "https://novel.tl"; - this.version = "1.0.0"; - this.icon = "src/ru/noveltl/icon.png"; - this.fetchImage = fetch_1.fetchFile; - this.filters = { - tags: { - label: "Тэги", - value: [], - options: [ - { label: "Автоматы", value: "64" }, - { label: "Агрессивные персонажи", value: "26" }, - { label: "Ад", value: "338" }, - { label: "Адаптация манги", value: "8" }, - { label: "Академия", value: "5" }, - { label: "Актёрское искусство", value: "7" }, - { label: "Актеры озвучки", value: "746" }, - { label: "Алхимия", value: "27" }, - { label: "Альтернативная реальность", value: "30" }, - { label: "Амнезия", value: "31" }, - { label: "Анабиоз", value: "170" }, - { label: "Анал", value: "33" }, - { label: "Ангелы", value: "38" }, - { label: "Андроиды", value: "37" }, - { label: "Анти-рост персонажа", value: "25" }, - { label: "Антигерой", value: "43" }, - { label: "Антикварный магазин", value: "44" }, - { label: "Антимагия", value: "41" }, - { label: "Антиутопия", value: "225" }, - { label: "Апатичный главный герой", value: "46" }, - { label: "Апокалипсис", value: "47" }, - { label: "Аристократия", value: "51" }, - { label: "Армия", value: "53" }, - { label: "Артефакты", value: "58" }, - { label: "Асоциальный главный герой", value: "42" }, - { label: "Ассасины", value: "61" }, - { label: "Атмосфера Европы", value: "245" }, - { label: "Банды", value: "302" }, - { label: "БДСМ", value: "77" }, - { label: "Бедный главный герой", value: "541" }, - { label: "Бездушный главный герой", value: "143" }, - { label: "Беззаботный герой", value: "115" }, - { label: "Безответная любовь", value: "213" }, - { label: "Безответная любовь", value: "740" }, - { label: "Безработные", value: "377" }, - { label: "Беременность", value: "551" }, - { label: "Бескорыстная любовь", value: "733" }, - { label: "Бессмертные", value: "359" }, - { label: "Бесстрашный главный герой", value: "274" }, - { label: "Библиотека", value: "393" }, - { label: "Биография", value: "86" }, - { label: "Близнецы", value: "729" }, - { label: "Богачи", value: "753" }, - { label: "Боги", value: "318" }, - { label: "Богини", value: "316" }, - { label: "Богоподобный протагонист", value: "314" }, - { label: "Боевая академия", value: "75" }, - { label: "Боевая парочка", value: "547" }, - { label: "Божественная защита", value: "208" }, - { label: "Божественная сила", value: "317" }, - { label: "Болеющие персонажи", value: "648" }, - { label: "Борьба за власть", value: "548" }, - { label: "Брак по расчету", value: "55" }, - { label: "Братство", value: "106" }, - { label: "Братья или сёстры", value: "646" }, - { label: "Брошенные дети", value: "1" }, - { label: "Бывший герой", value: "290" }, - { label: "Вампиры", value: "742" }, - { label: "Ваншот", value: "496" }, - { label: "Вдали от родителей", value: "3" }, - { label: "Ведьмы", value: "756" }, - { label: "Везучий главный герой", value: "411" }, - { label: "Верные подданные", value: "410" }, - { label: "Вероломные герои/плетение интриг", value: "424" }, - { label: "Взросление персонажа", value: "24" }, - { label: "Видит то, чего остальной люд не в силах", value: "617" }, - { label: "Виртуальная реальность", value: "744" }, - { label: "Владелец магазина", value: "677" }, - { label: "Владелец уникального оружия", value: "736" }, - { label: "Властные персонажи", value: "545" }, - { label: "Влияние прошлого", value: "517" }, - { label: "Внезапное обогащение", value: "691" }, - { label: "Внезапное обретение силы", value: "690" }, - { label: "Военные хроники", value: "749" }, - { label: "Возвращение в родной мир", value: "587" }, - { label: "Война", value: "750" }, - { label: "Вокалоид", value: "745" }, - { label: "Волшебные твари", value: "413" }, - { label: "Воскрешение", value: "586" }, - { label: "Воспитанный главный герой", value: "537" }, - { label: "Воспоминания прошлого", value: "283" }, - { label: "Враги становятся союзниками", value: "238" }, - { label: "Врата в иной мир", value: "303" }, - { label: "Временной парадокс", value: "711" }, - { label: "Вторжение на Землю", value: "228" }, - { label: "Второй шанс", value: "608" }, - { label: "Выживание", value: "695" }, - { label: "Вынужденные условия проживания", value: "287" }, - { label: "Высокомерный герой", value: "56" }, - { label: "Гадание", value: "207" }, - { label: "Галлюцинации", value: "189" }, - { label: "Гарем рабов", value: "656" }, - { label: "Геймеры", value: "301" }, - { label: "Генетические модификации", value: "306" }, - { label: "Герои", value: "341" }, - { label: "Герои непонятного пола", value: "36" }, - { label: "Героиня девушка-сорванец", value: "715" }, - { label: "Героиня красавица", value: "81" }, - { label: "Герой влюбляется первым", value: "561" }, - { label: "Герой использует щит", value: "636" }, - { label: "Герой красавец", value: "329" }, - { label: "Герой со множеством тел", value: "564" }, - { label: "Герой-бесстыдник", value: "632" }, - { label: "Герой-извращенец", value: "521" }, - { label: "Герой-трудяга", value: "330" }, - { label: "Герой-яндере", value: "421" }, - { label: "Гетерохромия", value: "342" }, - { label: "Гильдии", value: "324" }, - { label: "Гиперопека", value: "509" }, - { label: "Главная героиня — женщина", value: "277" }, - { label: "Главный герой - гений", value: "308" }, - { label: "Главный герой - Моб", value: "446" }, - { label: "Главный герой — знаменитость", value: "263" }, - { label: "Главный герой — мужчина", value: "419" }, - { label: "Главный герой в поисках гарема", value: "331" }, - { label: "Главный герой заранее готовится", value: "557" }, - { label: "Главный герой не человек", value: "488" }, - { label: "Главный герой приёмный", value: "20" }, - { label: "Главный герой сразу силён", value: "563" }, - { label: "Гладиаторы", value: "310" }, - { label: "Глухой к любви герой", value: "194" }, - { label: "Гоблины", value: "313" }, - { label: "Големы", value: "319" }, - { label: "Гомункул", value: "347" }, - { label: "Горничные", value: "418" }, - { label: "Государственные интриги", value: "212" }, - { label: "Гринд", value: "322" }, - { label: "Давняя травма", value: "518" }, - { label: "Двойник", value: "97" }, - { label: "Дворецкие", value: "111" }, - { label: "Дворфы", value: "224" }, - { label: "Дворяне", value: "487" }, - { label: "Двоюродные братья или сёстры", value: "162" }, - { label: "Девочки-волшебницы", value: "415" }, - { label: "Демоны", value: "193" }, - { label: "Депрессия", value: "196" }, - { label: "Детектив", value: "198" }, - { label: "Детективное расследование", value: "473" }, - { label: "Детское насилие", value: "125" }, - { label: "Детское обещание", value: "130" }, - { label: "Дискриминация", value: "203" }, - { label: "Длительный разрыв отношений", value: "400" }, - { label: "Домашняя жизнь", value: "45" }, - { label: "Драконы", value: "218" }, - { label: "Древний Китай", value: "34" }, - { label: "Дружба", value: "293" }, - { label: "Друзья детства", value: "128" }, - { label: "Друзья становятся врагами", value: "292" }, - { label: "Духи", value: "673" }, - { label: "Духовная сила", value: "665" }, - { label: "Духовный наставник", value: "671" }, - { label: "Душещипательная история", value: "335" }, - { label: "Души", value: "666" }, - { label: "Дьявольский путь культивации", value: "192" }, - { label: "Ёкай", value: "763" }, - { label: "Есть аниме-адаптация", value: "10" }, - { label: "Есть видеоигра", value: "13" }, - { label: "Есть дорама-адаптация", value: "11" }, - { label: "Есть манга-адаптация", value: "14" }, - { label: "Есть манхва-адаптация", value: "16" }, - { label: "Есть маньхуа-адаптация", value: "15" }, - { label: "Есть фильм", value: "17" }, - { label: "Есть CD дорама-адаптация", value: "12" }, - { label: "Жёсткий главный герой", value: "597" }, - { label: "Жестокие персонажи", value: "4" }, - { label: "Жёстокие персонажи", value: "169" }, - { label: "Животное-спутник", value: "78" }, - { label: "Жизнь в одиночку", value: "396" }, - { label: "Жрецы", value: "555" }, - { label: "Жрицы", value: "554" }, - { label: "Забота о детях", value: "127" }, - { label: "Заботливый главный герой", value: "116" }, - { label: "Загадочное заболевание", value: "471" }, - { label: "Загадочное прошлое родителей", value: "470" }, - { label: "Заговоры", value: "154" }, - { label: "Закалка тела", value: "96" }, - { label: "Закон джунглей", value: "682" }, - { label: "Закулисная борба", value: "603" }, - { label: "Замкнутый главный герой", value: "371" }, - { label: "Запечатанная сила", value: "607" }, - { label: "Затворник", value: "346" }, - { label: "Звери", value: "80" }, - { label: "Зверолюди", value: "39" }, - { label: "Звероподобные", value: "79" }, - { label: "Земледелие", value: "268" }, - { label: "Злобные благородные девы", value: "743" }, - { label: "Зловещие организации", value: "247" }, - { label: "Злой главный герой", value: "248" }, - { label: "Злые боги", value: "246" }, - { label: "Злые религии", value: "249" }, - { label: "Знаменитости", value: "118" }, - { label: "Знания из прошлой жизни", value: "553" }, - { label: "Зомби", value: "767" }, - { label: "Игра на выживание", value: "696" }, - { label: "Игровая рейтинговая система", value: "300" }, - { label: "Из грязи в князи", value: "542" }, - { label: "Известные родители", value: "262" }, - { label: "Изменение внешнего вида", value: "48" }, - { label: "Изнасилование", value: "574" }, - { label: "Инвалидность", value: "202" }, - { label: "Индустриализация", value: "364" }, - { label: "Инженер", value: "241" }, - { label: "Инцест", value: "361" }, - { label: "Искажённая личность", value: "730" }, - { label: "Искусственный интеллект", value: "59" }, - { label: "Исполнение желаний", value: "755" }, - { label: "Каннибализм", value: "113" }, - { label: "Карточные игры", value: "114" }, - { label: "Кладбищенский смотритель", value: "321" }, - { label: "Классика", value: "134" }, - { label: "Книги", value: "99" }, - { label: "Книги навыков", value: "654" }, - { label: "Книжный червь", value: "100" }, - { label: "Коллеги", value: "140" }, - { label: "Колледж/Университет", value: "145" }, - { label: "Командная работа", value: "701" }, - { label: "Комедийный подтекст", value: "147" }, - { label: "Комплекс брата", value: "105" }, - { label: "Комплекс неполноценности", value: "365" }, - { label: "Контракты", value: "155" }, - { label: "Контроль разума", value: "441" }, - { label: "Конфликт в семье", value: "261" }, - { label: "Конфликт верности", value: "153" }, - { label: "Копейщик", value: "668" }, - { label: "Королевская особа", value: "596" }, - { label: "Королевства", value: "382" }, - { label: "Короткий рассказ", value: "638" }, - { label: "Коррупция", value: "157" }, - { label: "Космические Войны", value: "158" }, - { label: "Космос", value: "507" }, - { label: "Косплей", value: "159" }, - { label: "Кража способностей", value: "2" }, - { label: "Крафтинг", value: "164" }, - { label: "Кризис личности", value: "357" }, - { label: "Кровь", value: "320" }, - { label: "Кружки, клубы", value: "138" }, - { label: "Кудэрэ", value: "384" }, - { label: "Кузнец", value: "90" }, - { label: "Кукловоды", value: "567" }, - { label: "Куклы/Марионетки", value: "211" }, - { label: "Кулинария", value: "156" }, - { label: "Культивация", value: "171" }, - { label: "Куннилингус", value: "172" }, - { label: "Легенды", value: "391" }, - { label: "Легкая жизнь", value: "229" }, - { label: "Лекари", value: "334" }, - { label: "Ленивый главный герой", value: "389" }, - { label: "Лидерство", value: "390" }, - { label: "Любит персонажа младше себя", value: "765" }, - { label: "Любит персонажа старше себя", value: "494" }, - { label: "Любовное соперничество", value: "406" }, - { label: "Любовные треугольники", value: "407" }, - { label: "Любовь детства", value: "129" }, - { label: "Любовь с первого взгляда", value: "404" }, - { label: "Любящие родители", value: "215" }, - { label: "Маги", value: "757" }, - { label: "Магические технологии", value: "417" }, - { label: "Магия", value: "412" }, - { label: "Магия призыва", value: "694" }, - { label: "Маленькие девочки", value: "397" }, - { label: "Мангака", value: "423" }, - { label: "Маниакальная любовь", value: "492" }, - { label: "Марти Сью", value: "508" }, - { label: "Мастер подземелий", value: "222" }, - { label: "Мастурбация", value: "432" }, - { label: "Матриархат", value: "433" }, - { label: "Межпространственные путешествия", value: "370" }, - { label: "Менеджмент", value: "422" }, - { label: "Месть", value: "588" }, - { label: "Мечи и магия", value: "697" }, - { label: "Мечники", value: "698" }, - { label: "Миленькие дети", value: "176" }, - { label: "Милитаризм", value: "439" }, - { label: "Миловидная история", value: "178" }, - { label: "Милый главный герой", value: "177" }, - { label: "Минет", value: "275" }, - { label: "Мировое древо", value: "760" }, - { label: "Миролюбивый главный герой", value: "510" }, - { label: "Мифология", value: "475" }, - { label: "Младшие сёстры", value: "766" }, - { label: "ММОРПГ", value: "445" }, - { label: "Множество временных линий", value: "463" }, - { label: "Модели", value: "447" }, - { label: "Молод не по годам", value: "49" }, - { label: "Монстры", value: "454" }, - { label: "Мрачность", value: "183" }, - { label: "Музыка", value: "466" }, - { label: "Музыкальные группы", value: "68" }, - { label: "Мутации", value: "468" }, - { label: "На волосок от смерти", value: "479" }, - { label: "На все руки мастер", value: "374" }, - { label: "Навыки имеют стоимость", value: "150" }, - { label: "Нагота", value: "490" }, - { label: "Наездники на драконах", value: "216" }, - { label: "Наёмники", value: "437" }, - { label: "Наивный главный герой", value: "476" }, - { label: "Наследие", value: "366" }, - { label: "Настоящая любовь", value: "200" }, - { label: "Настоящий гарем", value: "540" }, - { label: "Небесное испытание", value: "337" }, - { label: "Невезучий главный герой", value: "738" }, - { label: "Недоверчивый протагонист", value: "206" }, - { label: "Недооцененный главный герой", value: "734" }, - { label: "Недопонимание", value: "444" }, - { label: "Некромант", value: "480" }, - { label: "Нелинейное повествование", value: "489" }, - { label: "Неловкий главный герой", value: "67" }, - { label: "Нелюбимый протагонист", value: "333" }, - { label: "Немой персонаж", value: "469" }, - { label: "Ненадежный рассказчик", value: "739" }, - { label: "Непримечательный герой", value: "65" }, - { label: "Нерешительный протагонист", value: "363" }, - { label: "Несгибаемый главный герой", value: "676" }, - { label: "Несколько главных героев", value: "460" }, - { label: "Несколько миров", value: "461" }, - { label: "Несколько перерожденцев", value: "462" }, - { label: "Несколько попаданцев", value: "464" }, - { label: "Несравненная скорость культивации", value: "269" }, - { label: "Нехватка/отсутствие здравого смысла", value: "385" }, - { label: "Нечестный протагонист", value: "205" }, - { label: "НИИТ", value: "481" }, - { label: "Ниндзя", value: "486" }, - { label: "Обмен телами", value: "95" }, - { label: "Оборотни", value: "754" }, - { label: "Объект любви влюбился первым", value: "405" }, - { label: "Объект любви популярен", value: "543" }, - { label: "Огнестрельное оружие", value: "280" }, - { label: "Ограничение на время жизни", value: "394" }, - { label: "Одержимость", value: "544" }, - { label: "Один родитель", value: "651" }, - { label: "Одинокий главный герой", value: "399" }, - { label: "Одиночество", value: "398" }, - { label: "Одно тело на двоих", value: "634" }, - { label: "Око силы", value: "253" }, - { label: "Оммёдзи", value: "498" }, - { label: "Организованная преступность", value: "500" }, - { label: "Оргия", value: "501" }, - { label: "Орки", value: "499" }, - { label: "Основано на аниме", value: "74" }, - { label: "Основано на видеоигре", value: "72" }, - { label: "Основано на визуальной новелле", value: "73" }, - { label: "Основано на песне", value: "70" }, - { label: "Основано на фильме", value: "69" }, - { label: "Осторожный главный герой", value: "117" }, - { label: "От ненависти до любви один шаг", value: "239" }, - { label: "От сильного с сильнейшему", value: "684" }, - { label: "От слабого к сильному", value: "752" }, - { label: "Отаку", value: "503" }, - { label: "Отзывчивая любовь", value: "380" }, - { label: "Отзывчивый главный герой", value: "339" }, - { label: "Отношение учитель-ученик", value: "430" }, - { label: "Отношения бог-человек", value: "315" }, - { label: "Отношения между учителем и учеником", value: "687" }, - { label: "Отношения начальник-подчинённый", value: "101" }, - { label: "Отношения против воли", value: "286" }, - { label: "Отношения с нечеловеком", value: "353" }, - { label: "Отношения сэмпай-кохай", value: "621" }, - { label: "Отношения хозяин-слуга", value: "431" }, - { label: "Отомэ-игры", value: "504" }, - { label: "ОТП", value: "562" }, - { label: "Отшельники", value: "505" }, - { label: "Офисный работник", value: "600" }, - { label: "Официанты", value: "748" }, - { label: "Охотники", value: "355" }, - { label: "Падшие ангелы", value: "255" }, - { label: "Падшие дворяне", value: "256" }, - { label: "Пайзури", value: "511" }, - { label: "Паразиты", value: "513" }, - { label: "Параллельные миры", value: "512" }, - { label: "Парк развлечений", value: "32" }, - { label: "Пародия", value: "515" }, - { label: "Перемещение между мирами", value: "758" }, - { label: "Переодевание", value: "167" }, - { label: "Переплавка пилюль", value: "529" }, - { label: "Перерождение в девушку", value: "420" }, - { label: "Перерождение в другом мире", value: "580" }, - { label: "Перерождение в другом мире", value: "720" }, - { label: "Перерождение в игровом мире", value: "579" }, - { label: "Перерождение в монстра", value: "577" }, - { label: "Персонажи с мазохистскими наклонностями", value: "429" }, - { label: "Персонажи с садистскими наклонностями", value: "598" }, - { label: "Петля времени", value: "709" }, - { label: "Петтинг", value: "328" }, - { label: "Писатели", value: "761" }, - { label: "Питомцы", value: "522" }, - { label: "Племенное общество", value: "726" }, - { label: "Повелитель демонов", value: "191" }, - { label: "Повествование от нескольких лиц", value: "459" }, - { label: "Поглощение навыков", value: "653" }, - { label: "Подземелья", value: "223" }, - { label: "Поздно начинающаяся романтическая линия", value: "387" }, - { label: "Политика", value: "538" }, - { label: "Полулюди", value: "190" }, - { label: "Помолвка", value: "240" }, - { label: "Попаданец в другой мир", value: "723" }, - { label: "Попаданец в игровой мир", value: "722" }, - { label: "Постапокалипсис", value: "546" }, - { label: "Постижение Дао", value: "181" }, - { label: "Потеря девственности", value: "282" }, - { label: "Потустороннее пространство", value: "416" }, - { label: "Похищения", value: "379" }, - { label: "Прагматичный главный герой", value: "549" }, - { label: "Предательство", value: "83" }, - { label: "Предвидение", value: "550" }, - { label: "Преследователи", value: "674" }, - { label: "Преступление", value: "165" }, - { label: "Преступность", value: "166" }, - { label: "Приёмные дети", value: "19" }, - { label: "Призванный герой", value: "693" }, - { label: "Призраки", value: "309" }, - { label: "Приключения", value: "22" }, - { label: "Принуждение", value: "108" }, - { label: "Приручатель", value: "453" }, - { label: "Прислуга", value: "625" }, - { label: "Приставучий любовник", value: "136" }, - { label: "Притворная любовь", value: "552" }, - { label: "Пришельцы", value: "28" }, - { label: "Программист", value: "558" }, - { label: "Произведение - обладатель наград", value: "66" }, - { label: "Проклятия", value: "175" }, - { label: "Промывка мозгов", value: "102" }, - { label: "Пропуск времени", value: "712" }, - { label: "Пророчества", value: "559" }, - { label: "Протагонист в очках", value: "312" }, - { label: "Протагонист раб", value: "657" }, - { label: "Психокинез", value: "565" }, - { label: "Психопаты", value: "566" }, - { label: "Путешествия", value: "759" }, - { label: "Путешествия во времени", value: "713" }, - { label: "Пытки", value: "716" }, - { label: "Рабы", value: "658" }, - { label: "Развитие отношений", value: "160" }, - { label: "Развитие персонажа", value: "119" }, - { label: "Раздвоение личности", value: "458" }, - { label: "Размеренная романтика", value: "661" }, - { label: "Разница в статусе", value: "201" }, - { label: "Разорванная помолвка", value: "104" }, - { label: "Разумные предметы", value: "622" }, - { label: "Рай", value: "336" }, - { label: "Раняя романтика", value: "227" }, - { label: "Расизм", value: "573" }, - { label: "Расследования", value: "372" }, - { label: "Ребенок — главный герой", value: "126" }, - { label: "Реверс-гарем", value: "589" }, - { label: "Реверс-изнасилование", value: "590" }, - { label: "Резкая смена характера", value: "520" }, - { label: "Реинкарнация", value: "581" }, - { label: "Религии", value: "582" }, - { label: "Ресторан", value: "585" }, - { label: "Решительный главный герой", value: "199" }, - { label: "Робкий протагонист", value: "714" }, - { label: "Родительсткий комплекс", value: "514" }, - { label: "Родные не связанные кровью", value: "647" }, - { label: "Родословные", value: "94" }, - { label: "РПГ-система", value: "392" }, - { label: "Рыцари", value: "383" }, - { label: "Самовлюбленный главный герой", value: "477" }, - { label: "Самоубийства", value: "692" }, - { label: "Самураи", value: "601" }, - { label: "Сборник коротких историй", value: "144" }, - { label: "Свадьба", value: "426" }, - { label: "Связанные сюжетные линии", value: "369" }, - { label: "Святые", value: "599" }, - { label: "Секреты", value: "614" }, - { label: "Секс втроём", value: "707" }, - { label: "Секс-рабыня", value: "629" }, - { label: "Семейная любовь", value: "257" }, - { label: "Семь добродетелей", value: "627" }, - { label: "Семь смертных грехов", value: "626" }, - { label: "Серийные убийцы", value: "624" }, - { label: "Сикигами", value: "637" }, - { label: "Сильная любовь от старших", value: "214" }, - { label: "Синдром восьмиклассника", value: "132" }, - { label: "Синдром сестры", value: "652" }, - { label: "Сироты", value: "502" }, - { label: "Системный администратор", value: "699" }, - { label: "Скромный главный герой", value: "409" }, - { label: "Скрытые романтические отношения", value: "23" }, - { label: "Скрытые способности", value: "343" }, - { label: "Скряга", value: "450" }, - { label: "Скульпторы", value: "606" }, - { label: "Слабая романтика", value: "688" }, - { label: "Слабый главный герой", value: "751" }, - { label: "Сложные семейные отношения", value: "149" }, - { label: "Смена расы", value: "572" }, - { label: "Смертельное заболевание", value: "704" }, - { label: "Смерть", value: "185" }, - { label: "Смерть любимых", value: "186" }, - { label: "Современность", value: "448" }, - { label: "Современные знания в слаборазвитых мирах", value: "449" }, - { label: "Сожительство", value: "141" }, - { label: "Создание артефактов", value: "57" }, - { label: "Создание клана", value: "133" }, - { label: "Создание королевства", value: "381" }, - { label: "Создание навыков", value: "655" }, - { label: "Сокрытие истинных способностей", value: "344" }, - { label: "Сокрытие личности", value: "345" }, - { label: "Солдаты", value: "664" }, - { label: "Сон", value: "659" }, - { label: "Соседи по комнате", value: "595" }, - { label: "Социальные изгои", value: "663" }, - { label: "Спасение мира", value: "602" }, - { label: "Спорящая пара", value: "84" }, - { label: "Способность перевоплощения", value: "719" }, - { label: "Средневековье", value: "436" }, - { label: "Стеснительные персонажи", value: "643" }, - { label: "Стокгольмский синдром", value: "575" }, - { label: "Стокгольмский синдром", value: "675" }, - { label: "Стратег", value: "681" }, - { label: "Стратегические битвы", value: "680" }, - { label: "Стрелки", value: "325" }, - { label: "Стрельба из лука", value: "50" }, - { label: "Студенческий совет", value: "686" }, - { label: "Судьба", value: "197" }, - { label: "Суккубы", value: "689" }, - { label: "Суперспособности", value: "669" }, - { label: "Суровая тренировка", value: "332" }, - { label: "Сцены насилия", value: "195" }, - { label: "Таинственное прошлое", value: "472" }, - { label: "Тайная личность", value: "610" }, - { label: "Тайные организации", value: "611" }, - { label: "Телохранители", value: "98" }, - { label: "Тентакли", value: "703" }, - { label: "Террористы", value: "705" }, - { label: "Технологический разрыв", value: "702" }, - { label: "Тихие герои", value: "568" }, - { label: "Толстый протагонист", value: "271" }, - { label: "Торговцы", value: "438" }, - { label: "Травник", value: "340" }, - { label: "Трагичное прошлое", value: "718" }, - { label: "Трап", value: "725" }, - { label: "Триллер", value: "708" }, - { label: "Турнир", value: "76" }, - { label: "Тюрьма", value: "556" }, - { label: "Убийства", value: "465" }, - { label: "Уверенный в себе главный герой", value: "151" }, - { label: "Умная пара", value: "662" }, - { label: "Умный главный герой", value: "135" }, - { label: "Уникальная техника культивации", value: "735" }, - { label: "Уникальные оружия", value: "737" }, - { label: "Управление бизнесом", value: "109" }, - { label: "Управление временем", value: "710" }, - { label: "Управление пространством", value: "667" }, - { label: "Ускоренный рост", value: "6" }, - { label: "Учёные", value: "605" }, - { label: "Учителя", value: "700" }, - { label: "Фамильяры", value: "258" }, - { label: "Фанатизм", value: "264" }, - { label: "Фармацевт", value: "523" }, - { label: "Феи", value: "254" }, - { label: "Фениксы", value: "526" }, - { label: "Фетиш на грудь", value: "103" }, - { label: "Фетиш на очки", value: "311" }, - { label: "Философия", value: "524" }, - { label: "Фобии/Страхи", value: "525" }, - { label: "Фольклор", value: "285" }, - { label: "Формирование армии", value: "54" }, - { label: "Футанари", value: "295" }, - { label: "Футуристический мир", value: "296" }, - { label: "Фэнтези", value: "267" }, - { label: "Фэнтезийные существа", value: "266" }, - { label: "Хакеры", value: "326" }, - { label: "Харизматичный протагонист", value: "120" }, - { label: "Хитрый главный герой", value: "173" }, - { label: "Хладнокровный главный герой", value: "112" }, - { label: "Художники", value: "60" }, - { label: "Хулиганы", value: "188" }, - { label: "Цундере", value: "728" }, - { label: "Чат", value: "122" }, - { label: "Человек-оружие", value: "352" }, - { label: "Человекоподобный главный герой", value: "354" }, - { label: "Честный главный герой", value: "348" }, - { label: "Четкие любовные убеждения", value: "683" }, - { label: "Читы", value: "123" }, - { label: "Чудаковатые герои", value: "569" }, - { label: "Чужие воспоминания", value: "721" }, - { label: "Шантаж", value: "89" }, - { label: "Шеф-повар", value: "124" }, - { label: "Школа для девочек", value: "29" }, - { label: "Шоу-бизнес", value: "642" }, - { label: "Шпионы", value: "670" }, - { label: "Эволюция", value: "250" }, - { label: "Эгоистичный главный герой", value: "618" }, - { label: "Экзорцизм", value: "252" }, - { label: "Экономика", value: "230" }, - { label: "Эксгибиционизм", value: "251" }, - { label: "Эксперименты на людях", value: "351" }, - { label: "Элементальная магия", value: "234" }, - { label: "Элементы игрового мира", value: "299" }, - { label: "Элементы романтики", value: "594" }, - { label: "Элементы юри", value: "640" }, - { label: "Элементы яоя", value: "641" }, - { label: "Эльфы", value: "235" }, - { label: "Эпизодичность", value: "243" }, - { label: "Язвительные персонажи", value: "635" }, - { label: "Языковой барьер", value: "386" }, - { label: "Яндере", value: "762" }, - { label: "Яойщица", value: "294" }, - { label: "Японские силы самообороны", value: "378" }, - { label: "R-15", value: "570" }, - { label: "R-18", value: "571" }, - ], - type: filterInputs_1.FilterTypes.CheckboxGroup, - }, - genres: { - label: "Жанры", - value: [], - options: [ - { label: "16+", value: "1" }, - { label: "18+", value: "2" }, - { label: "Боевик", value: "3" }, - { label: "Боевые искусства", value: "4" }, - { label: "Вампиры", value: "47" }, - { label: "Военное", value: "44" }, - { label: "Гарем", value: "5" }, - { label: "Демоны", value: "48" }, - { label: "Детектив", value: "6" }, - { label: "Дзёсей", value: "50" }, - { label: "Драма", value: "7" }, - { label: "Игры", value: "45" }, - { label: "Историческое", value: "8" }, - { label: "Киберпанк", value: "9" }, - { label: "Комедия", value: "10" }, - { label: "Космос", value: "46" }, - { label: "Магия", value: "42" }, - { label: "Махо-сёдзё", value: "12" }, - { label: "Меха", value: "13" }, - { label: "Мистика", value: "14" }, - { label: "Музыка", value: "49" }, - { label: "Научная фантастика", value: "15" }, - { label: "Пародия", value: "16" }, - { label: "Повседневность", value: "17" }, - { label: "Приключения", value: "18" }, - { label: "Психологическое", value: "19" }, - { label: "Романтика", value: "20" }, - { label: "Сверхъестественное", value: "21" }, - { label: "Сёдзё", value: "22" }, - { label: "Сёдзё-ай", value: "23" }, - { label: "Сёнэн", value: "24" }, - { label: "Сёнэн-ай", value: "25" }, - { label: "Смена пола", value: "26" }, - { label: "Современность", value: "27" }, - { label: "Спорт", value: "28" }, - { label: "Супер сила", value: "43" }, - { label: "Сэйнэн", value: "29" }, - { label: "Трагедия", value: "32" }, - { label: "Триллер", value: "33" }, - { label: "Ужасы", value: "34" }, - { label: "Уся", value: "35" }, - { label: "Фэнтези", value: "36" }, - { label: "Школьная жизнь", value: "37" }, - { label: "Этти", value: "38" }, - { label: "Юри", value: "39" }, - { label: "Яой", value: "40" }, - { label: "LitRPG", value: "41" }, - ], - type: filterInputs_1.FilterTypes.CheckboxGroup, - }, - }; - } - TL.prototype.popularNovels = function (page, _a) { - var _b, _c, _d, _e, _f; - var showLatestNovels = _a.showLatestNovels, filters = _a.filters; - return __awaiter(this, void 0, void 0, function () { - var result, json, novels; - var _this = this; - return __generator(this, function (_g) { - switch (_g.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "/api/site/v2/graphql", { - method: "post", - headers: { - Accept: "application/json, text/plain, */*", - "Accept-Language": "ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3", - "Content-Type": "application/json", - }, - referrer: this.site, - body: JSON.stringify({ - operationName: "Projects", - query: "query Projects($hostname:String! $filter:SearchFilter $page:Int $limit:Int){projects(section:{fullUrl:$hostname}filter:$filter page:{pageSize:$limit,pageNumber:$page}){content{title fullUrl covers{url}}}}", - variables: { - filter: { - tags: ((_b = filters === null || filters === void 0 ? void 0 : filters.tags) === null || _b === void 0 ? void 0 : _b.value) || [], - genres: ((_c = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _c === void 0 ? void 0 : _c.value) || [], - }, - hostname: "novel.tl", - limit: 40, - page: page, - }, - }), - })]; - case 1: - result = _g.sent(); - return [4 /*yield*/, result.json()]; - case 2: - json = (_g.sent()); - novels = []; - (_f = (_e = (_d = json.data) === null || _d === void 0 ? void 0 : _d.projects) === null || _e === void 0 ? void 0 : _e.content) === null || _f === void 0 ? void 0 : _f.forEach(function (novel) { - var _a, _b; - return novels.push({ - name: novel.title, - url: "https://" + novel.fullUrl, - cover: ((_b = (_a = novel === null || novel === void 0 ? void 0 : novel.covers) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.url) - ? _this.site + novel.covers[0].url - : defaultCover_1.defaultCover, - }); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - TL.prototype.parseNovelAndChapters = function (novelUrl) { - var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p; - return __awaiter(this, void 0, void 0, function () { - var result, json, novel, genres, chapters; - return __generator(this, function (_q) { - switch (_q.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "/api/site/v2/graphql", { - method: "post", - headers: { - Accept: "application/json, text/plain, */*", - "Accept-Language": "ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3", - "Content-Type": "application/json", - }, - referrer: this.site, - body: JSON.stringify({ - operationName: "Book", - query: 'query Book($url:String){project(project:{fullUrl:$url}){title translationStatus fullUrl covers{url}persons(langs:["ru","en","*"],roles:["author","illustrator"]){role name{firstName lastName}}genres{nameRu nameEng}tags{nameRu nameEng}annotation{text}subprojects{content{title volumes{content{shortName chapters{title publishDate fullUrl published}}}}}}}', - variables: { - url: novelUrl, - }, - }), - })]; - case 1: - result = _q.sent(); - return [4 /*yield*/, result.json()]; - case 2: - json = (_q.sent()); - novel = { - url: novelUrl, - name: (_a = json.data.project) === null || _a === void 0 ? void 0 : _a.title, - cover: ((_d = (_c = (_b = json.data.project) === null || _b === void 0 ? void 0 : _b.covers) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.url) - ? this.site + json.data.project.covers[0].url - : defaultCover_1.defaultCover, - summary: (_f = (_e = json.data.project) === null || _e === void 0 ? void 0 : _e.annotation) === null || _f === void 0 ? void 0 : _f.text, - status: ((_g = json.data.project) === null || _g === void 0 ? void 0 : _g.translationStatus) === "active" - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed, - }; - genres = [(_h = json.data.project) === null || _h === void 0 ? void 0 : _h.tags, (_j = json.data.project) === null || _j === void 0 ? void 0 : _j.genres] - .flat() - .map(function (item) { return (item === null || item === void 0 ? void 0 : item.nameRu) || (item === null || item === void 0 ? void 0 : item.nameEng); }) - .filter(function (item) { return item; }); - if (genres === null || genres === void 0 ? void 0 : genres.length) { - novel.genres = genres.join(", "); - } - (_l = (_k = json.data.project) === null || _k === void 0 ? void 0 : _k.persons) === null || _l === void 0 ? void 0 : _l.forEach(function (person) { - var _a; - if (person.role == "author" && person.name.firstName) { - novel.author = - person.name.firstName + " " + (((_a = person.name) === null || _a === void 0 ? void 0 : _a.lastName) || ""); - } - }); - chapters = []; - (_p = (_o = (_m = json.data.project) === null || _m === void 0 ? void 0 : _m.subprojects) === null || _o === void 0 ? void 0 : _o.content) === null || _p === void 0 ? void 0 : _p.forEach(function (work) { - return work.volumes.content.forEach(function (volume) { - return volume.chapters.forEach(function (chapter) { - return (chapter === null || chapter === void 0 ? void 0 : chapter.published) && - chapters.push({ - name: volume.shortName + " " + chapter.title, - url: "https://" + chapter.fullUrl, - releaseTime: (0, dayjs_1.default)(chapter.publishDate).format("LLL"), - }); - }); - }); - }); - novel.chapters = chapters; - return [2 /*return*/, novel]; - } - }); - }); - }; - TL.prototype.parseChapter = function (chapterUrl) { - var _a, _b; - return __awaiter(this, void 0, void 0, function () { - var result, json, baseUrl, loadedCheerio, chapterText; - return __generator(this, function (_c) { - switch (_c.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "/api/site/v2/graphql", { - method: "post", - headers: { - Accept: "application/json, text/plain, */*", - "Accept-Language": "ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3", - "Content-Type": "application/json", - }, - referrer: this.site, - body: JSON.stringify({ - query: "query($url:String){chapter(chapter:{fullUrl:$url}){text{text}}}", - variables: { - url: chapterUrl, - }, - }), - })]; - case 1: - result = _c.sent(); - return [4 /*yield*/, result.json()]; - case 2: - json = (_c.sent()); - baseUrl = this.site; - loadedCheerio = (0, cheerio_1.load)(((_b = (_a = json.data.chapter) === null || _a === void 0 ? void 0 : _a.text) === null || _b === void 0 ? void 0 : _b.text) || ""); - loadedCheerio("p > a[href]").each(function () { - var src = baseUrl + loadedCheerio(this).attr("href"); - if (!src.startsWith("http")) { - src = baseUrl + src; - } - loadedCheerio(this).find("picture").remove(); - loadedCheerio(this).removeAttr("href"); - loadedCheerio("")).appendTo(this); - }); - chapterText = loadedCheerio.html(); - return [2 /*return*/, chapterText]; - } - }); - }); - }; - TL.prototype.searchNovels = function (searchTerm, page) { - var _a, _b, _c; - if (page === void 0) { page = 1; } - return __awaiter(this, void 0, void 0, function () { - var result, json, novels; - var _this = this; - return __generator(this, function (_d) { - switch (_d.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "/api/site/v2/graphql", { - method: "post", - headers: { - Accept: "application/json, text/plain, */*", - "Accept-Language": "ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3", - "Content-Type": "application/json", - }, - referrer: this.site, - body: JSON.stringify({ - operationName: "Projects", - query: "query Projects($hostname:String! $filter:SearchFilter $page:Int $limit:Int){projects(section:{fullUrl:$hostname}filter:$filter page:{pageSize:$limit,pageNumber:$page}){content{title fullUrl covers{url}}}}", - variables: { - filter: { - query: searchTerm, - }, - hostname: "novel.tl", - limit: 40, - page: page, - }, - }), - })]; - case 1: - result = _d.sent(); - return [4 /*yield*/, result.json()]; - case 2: - json = (_d.sent()); - novels = []; - (_c = (_b = (_a = json === null || json === void 0 ? void 0 : json.data) === null || _a === void 0 ? void 0 : _a.projects) === null || _b === void 0 ? void 0 : _b.content) === null || _c === void 0 ? void 0 : _c.forEach(function (novel) { - var _a, _b; - return novels.push({ - name: novel.title, - url: "https://" + novel.fullUrl, - cover: ((_b = (_a = novel === null || novel === void 0 ? void 0 : novel.covers) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.url) - ? _this.site + novel.covers[0].url - : defaultCover_1.defaultCover, - }); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - return TL; -}()); -exports.default = new TL(); diff --git a/.js/plugins/russian/ranobehub.js b/.js/plugins/russian/ranobehub.js deleted file mode 100644 index d8d1f1e..0000000 --- a/.js/plugins/russian/ranobehub.js +++ /dev/null @@ -1,1191 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var filterInputs_1 = require("@libs/filterInputs"); -var fetch_1 = require("@libs/fetch"); -var novelStatus_1 = require("@libs/novelStatus"); -var cheerio_1 = require("cheerio"); -var dayjs_1 = __importDefault(require("dayjs")); -var RNBH = /** @class */ (function () { - function RNBH() { - this.id = "RNBH.org"; - this.name = "RanobeHub"; - this.version = "1.0.0"; - this.site = "https://ranobehub.org/"; - this.icon = "src/ru/ranobehub/icon.png"; - this.fetchImage = fetch_1.fetchFile; - this.filters = { - sort: { - label: "Сортировка", - value: "", - options: [ - { label: "по рейтингу", value: "computed_rating" }, - { label: "по дате обновления", value: "last_chapter_at" }, - { label: "по дате добавления", value: "created_at" }, - { label: "по названию", value: "name_rus" }, - { label: "по просмотрам", value: "views" }, - { label: "по количеству глав", value: "count_chapters" }, - { label: "по объему перевода", value: "count_of_symbols" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - status: { - label: "Статус перевода", - value: "", - options: [ - { label: "Любой", value: "" }, - { label: "В процессе", value: "1" }, - { label: "Завершено", value: "2" }, - { label: "Заморожено", value: "3" }, - { label: "Неизвестно", value: "4" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - country: { - label: "Тип", - value: [], - options: [ - { label: "Китай", value: "2" }, - { label: "Корея", value: "3" }, - { label: "США", value: "4" }, - { label: "Япония", value: "1" }, - ], - type: filterInputs_1.FilterTypes.CheckboxGroup, - }, - events: { - label: "События", - value: { include: [], exclude: [] }, - options: [ - { label: "[Награжденная работа]", value: "611" }, - { label: "18+", value: "338" }, - { label: "Авантюристы", value: "353" }, - { label: "Автоматоны", value: "538" }, - { label: "Агрессивные персонажи", value: "434" }, - { label: "Ад", value: "509" }, - { label: "Адаптация в радиопостановку", value: "522" }, - { label: "Академия", value: "25" }, - { label: "Актеры озвучки", value: "578" }, - { label: "Активный главный герой", value: "132" }, - { label: "Алхимия", value: "116" }, - { label: "Альтернативный мир", value: "28" }, - { label: "Амнезия/Потеря памяти", value: "247" }, - { label: "Анабиоз", value: "657" }, - { label: "Ангелы", value: "218" }, - { label: "Андрогинные персонажи", value: "217" }, - { label: "Андроиды", value: "82" }, - { label: "Анти-магия", value: "471" }, - { label: "Антигерой", value: "346" }, - { label: "Антикварный магазин", value: "572" }, - { label: "Антисоциальный главный герой", value: "562" }, - { label: "Антиутопия", value: "663" }, - { label: "Апатичный протагонист", value: "29" }, - { label: "Апокалипсис", value: "314" }, - { label: "Аранжированный брак", value: "285" }, - { label: "Армия", value: "598" }, - { label: "Артефакты", value: "117" }, - { label: "Артисты", value: "460" }, - { label: "Банды", value: "581" }, - { label: "БДСМ", value: "676" }, - { label: "Бедный главный герой", value: "309" }, - { label: "Безжалостный главный герой", value: "144" }, - { label: "Беззаботный главный герой", value: "355" }, - { label: "Безусловная любовь", value: "650" }, - { label: "Беременность", value: "131" }, - { label: "Бесполый главный герой", value: "222" }, - { label: "Бессмертные", value: "275" }, - { label: "Бесстрашный протагонист", value: "619" }, - { label: "Бесстыдный главный герой", value: "256" }, - { label: "Бесчестный главный герой", value: "699" }, - { label: "Библиотека", value: "342" }, - { label: "Бизнесмен ", value: "813" }, - { label: "Биочип", value: "120" }, - { label: "Бисексуальный главный герой", value: "822" }, - { label: "Близнецы", value: "148" }, - { label: "Боги", value: "211" }, - { label: "Богини", value: "356" }, - { label: "Боевая академия", value: "369" }, - { label: "Боевые духи", value: "347" }, - { label: "Боевые соревнования", value: "422" }, - { label: "Божественная защита", value: "336" }, - { label: "Божественные силы", value: "224" }, - { label: "Большая разница в возрасте между героем и его любовным интересом", value: "348" }, - { label: "Борьба за власть", value: "544" }, - { label: "Брак", value: "363" }, - { label: "Брак по расчету", value: "65" }, - { label: "Братский комплекс", value: "31" }, - { label: "Братство", value: "413" }, - { label: "Братья и сестры", value: "518" }, - { label: "Буддизм", value: "742" }, - { label: "Быстрая культивация", value: "273" }, - { label: "Быстрообучаемый", value: "221" }, - { label: "Валькирии", value: "667" }, - { label: "Вампиры", value: "266" }, - { label: "Ваншот", value: "679" }, - { label: "Ведьмы", value: "169" }, - { label: "Вежливый главный герой", value: "289" }, - { label: "Верные подчиненные", value: "225" }, - { label: "Взрослый главный герой", value: "183" }, - { label: "Видит то, чего не видят другие", value: "636" }, - { label: "Виртуальная реальность", value: "313" }, - { label: "Владелец магазина", value: "653" }, - { label: "Внезапная сила", value: "376" }, - { label: "Внезапное богатство", value: "802" }, - { label: "Внешний вид отличается от фактического возраста", value: "334" }, - { label: "Военные Летописи", value: "740" }, - { label: "Возвращение из другого мира", value: "673" }, - { label: "Войны", value: "58" }, - { label: "Вокалоид", value: "678" }, - { label: "Волшебники/Волшебницы", value: "477" }, - { label: "Волшебные звери", value: "201" }, - { label: "Воображаемый друг", value: "614" }, - { label: "Воры", value: "326" }, - { label: "Воскрешение", value: "78" }, - { label: "Враги становятся возлюбленными", value: "428" }, - { label: "Враги становятся союзниками", value: "502" }, - { label: "Врата в другой мир", value: "558" }, - { label: "Врачи", value: "286" }, - { label: "Временной парадокс", value: "163" }, - { label: "Всемогущий главный герой", value: "42" }, - { label: "Вторжение на землю", value: "77" }, - { label: "Второй шанс", value: "112" }, - { label: "Вуайеризм", value: "851" }, - { label: "Выживание", value: "290" }, - { label: "Высокомерные персонажи", value: "268" }, - { label: "Гадание", value: "540" }, - { label: "Гарем рабов", value: "828" }, - { label: "Геймеры", value: "302" }, - { label: "Генералы", value: "223" }, - { label: "Генетические модификации", value: "620" }, - { label: "Гениальный главный герой", value: "566" }, - { label: "Герои", value: "173" }, - { label: "Героиня — сорванец", value: "525" }, - { label: "Герой влюбляется первым", value: "64" }, - { label: "Гетерохромия", value: "510" }, - { label: "Гильдии", value: "323" }, - { label: "Гипнотизм", value: "768" }, - { label: "Главный герой — бог", value: "486" }, - { label: "Главный герой — гуманоид", value: "595" }, - { label: "Главный герой — женщина", value: "63" }, - { label: "Главный герой — мужчина", value: "39" }, - { label: "Главный герой — наполовину человек", value: "362" }, - { label: "Главный герой — отец", value: "859" }, - { label: "Главный герой — раб", value: "832" }, - { label: "Главный герой — ребенок", value: "415" }, - { label: "Главный герой — рубака", value: "400" }, - { label: "Главный герой — собиратель гарема", value: "439" }, - { label: "Главный герой влюбляется первым", value: "655" }, - { label: "Главный герой играет роль", value: "396" }, - { label: "Главный герой носит очки", value: "637" }, - { label: "Главный герой пацифист", value: "675" }, - { label: "Главный герой с несколькими телами", value: "628" }, - { label: "Главный герой силен с самого начала", value: "45" }, - { label: "Гладиаторы", value: "549" }, - { label: "Глуповатый главный герой", value: "295" }, - { label: "Гоблины", value: "529" }, - { label: "Големы", value: "569" }, - { label: "Гомункул", value: "850" }, - { label: "Горничные", value: "380" }, - { label: "Госпиталь", value: "1043" }, - { label: "Готовка", value: "193" }, - { label: "Гриндинг", value: "303" }, - { label: "Дао Компаньон", value: "384" }, - { label: "Даосизм", value: "792" }, - { label: "Дарк", value: "151" }, - { label: "Дварфы", value: "220" }, - { label: "Двойная личность", value: "601" }, - { label: "Двойник", value: "547" }, - { label: "Дворецкий", value: "623" }, - { label: "Дворяне", value: "41" }, - { label: "Дворянство/Аристократия", value: "354" }, - { label: "Девушки-монстры", value: "634" }, - { label: "Демоническая техника культивации", value: "706" }, - { label: "Демоны", value: "6" }, - { label: "Денежный долг", value: "841" }, - { label: "Депрессия", value: "494" }, - { label: "Детективы", value: "561" }, - { label: "Дискриминация", value: "34" }, - { label: "Добыча денег одно из основных стремлений главного героя", value: "307" }, - { label: "Долгая разлука", value: "200" }, - { label: "Домашние дела", value: "178" }, - { label: "Домогательство", value: "394" }, - { label: "Драконы", value: "195" }, - { label: "Драконьи всадники", value: "555" }, - { label: "Древние времена", value: "102" }, - { label: "Древний Китай", value: "284" }, - { label: "Дружба", value: "97" }, - { label: "Друзья детства", value: "170" }, - { label: "Друзья становятся врагами", value: "507" }, - { label: "Друиды", value: "427" }, - { label: "Дух лисы", value: "842" }, - { label: "Духи/Призраки", value: "46" }, - { label: "Духовный советник", value: "351" }, - { label: "Душевность", value: "587" }, - { label: "Души", value: "136" }, - { label: "Европейская атмосфера", value: "457" }, - { label: "Ёкаи", value: "516" }, - { label: "Есть аниме-адаптация", value: "26" }, - { label: "Есть видеоигра по мотивам", value: "491" }, - { label: "Есть манга-адаптация", value: "27" }, - { label: "Есть манхва-адаптация", value: "453" }, - { label: "Есть маньхуа-адаптация", value: "298" }, - { label: "Есть сериал-адаптация", value: "421" }, - { label: "Есть фильм по мотивам", value: "47" }, - { label: "Женища-наставник", value: "438" }, - { label: "Жертва изнасилования влюбляется в насильника", value: "414" }, - { label: "Жесткая, двуличная личность", value: "249" }, - { label: "Жестокие персонажи", value: "436" }, - { label: "Жестокое обращение с ребенком", value: "617" }, - { label: "Жестокость", value: "127" }, - { label: "Животноводство", value: "765" }, - { label: "Животные черты", value: "466" }, - { label: "Жизнь в квартире", value: "554" }, - { label: "Жрицы", value: "564" }, - { label: "Заботливый главный герой", value: "176" }, - { label: "Забывчивый главный герой", value: "579" }, - { label: "Заговоры", value: "177" }, - { label: "Закалка тела", value: "269" }, - { label: "Законники", value: "769" }, - { label: "Замкнутый главный герой", value: "533" }, - { label: "Запечатанная сила", value: "344" }, - { label: "Застенчивые персонажи", value: "443" }, - { label: "Звери", value: "119" }, - { label: "Звери-компаньоны", value: "192" }, - { label: "Злой протагонист", value: "125" }, - { label: "Злые боги", value: "437" }, - { label: "Злые организации", value: "503" }, - { label: "Злые религии", value: "725" }, - { label: "Знаменитости", value: "397" }, - { label: "Знаменитый главный герой", value: "469" }, - { label: "Знания современного мира", value: "185" }, - { label: "Зомби", value: "321" }, - { label: "Игра на выживание", value: "162" }, - { label: "Игривый протагонист", value: "700" }, - { label: "Игровая система рейтинга", value: "301" }, - { label: "Игровые элементы", value: "152" }, - { label: "Игрушки (18+)", value: "644" }, - { label: "Из грязи в князи", value: "330" }, - { label: "Из женщины в мужчину ", value: "688" }, - { label: "Из мужчины в женщину", value: "698" }, - { label: "Из полного в худого", value: "809" }, - { label: "Из слабого в сильного", value: "81" }, - { label: "Из страшно(го/й) в красиво(го/ю)", value: "810" }, - { label: "Извращенный главный герой", value: "349" }, - { label: "Изгои", value: "472" }, - { label: "Изменение расы", value: "627" }, - { label: "Изменения внешнего вида", value: "191" }, - { label: "Изменения личности", value: "99" }, - { label: "Изнасилование", value: "110" }, - { label: "Изображения жестокости", value: "260" }, - { label: "Империи", value: "749" }, - { label: "Инвалидность", value: "656" }, - { label: "Индустриализация", value: "180" }, - { label: "Инженер", value: "35" }, - { label: "Инцест", value: "463" }, - { label: "Искусственный интеллект", value: "118" }, - { label: "Исследования", value: "635" }, - { label: "Каннибализм", value: "377" }, - { label: "Карточные игры", value: "654" }, - { label: "Киберспорт", value: "658" }, - { label: "Кланы", value: "950" }, - { label: "Класс безработного [Игровой класс в игре]", value: "727" }, - { label: "Клоны", value: "365" }, - { label: "Клубы", value: "96" }, - { label: "Книги", value: "341" }, - { label: "Книги навыков", value: "312" }, - { label: "Книжный червь", value: "455" }, - { label: "Коварство", value: "111" }, - { label: "Коллеги", value: "683" }, - { label: "Колледж/Университет", value: "712" }, - { label: "Кома", value: "826" }, - { label: "Командная работа", value: "426" }, - { label: "Комедийный оттенок", value: "523" }, - { label: "Комплекс неполноценности", value: "489" }, - { label: "Комплекс семейных отношений", value: "104" }, - { label: "Конкуренция", value: "746" }, - { label: "Контракты", value: "483" }, - { label: "Контроль разума/сознания", value: "262" }, - { label: "Копейщик", value: "339" }, - { label: "Королевская битва", value: "1025" }, - { label: "Королевская власть", value: "53" }, - { label: "Королевства", value: "141" }, - { label: "Коррупция", value: "378" }, - { label: "Космические войны", value: "674" }, - { label: "Красивый герой", value: "107" }, - { label: "Крафт", value: "287" }, - { label: "Кризис личности", value: "599" }, - { label: "Кругосветное путешествие", value: "257" }, - { label: "Кудере", value: "440" }, - { label: "Кузены", value: "701" }, - { label: "Кузнец", value: "454" }, - { label: "Кукловоды", value: "431" }, - { label: "Куклы/марионетки", value: "573" }, - { label: "Культивация", value: "123" }, - { label: "Куннилингус", value: "632" }, - { label: "Легенды", value: "430" }, - { label: "Легкая жизнь", value: "604" }, - { label: "Ленивый главный герой", value: "570" }, - { label: "Лидерство", value: "424" }, - { label: "Лоли", value: "92" }, - { label: "Лотерея", value: "401" }, - { label: "Любовный интерес влюбляется первым", value: "647" }, - { label: "Любовный интерес главного героя носит очки", value: "576" }, - { label: "Любовный треугольник", value: "98" }, - { label: "Любовь детства", value: "500" }, - { label: "Любовь с первого взгляда", value: "730" }, - { label: "Магические надписи", value: "373" }, - { label: "Магические печати", value: "277" }, - { label: "Магические технологии", value: "357" }, - { label: "Магическое пространство/измерение, доступное не всем персонажам", value: "244" }, - { label: "Магия", value: "38" }, - { label: "Магия призыва", value: "333" }, - { label: "Мазохистские персонажи", value: "660" }, - { label: "Манипулятивные персонажи", value: "130" }, - { label: "Мания", value: "91" }, - { label: "Мастер на все руки", value: "390" }, - { label: "Мастурбация", value: "846" }, - { label: "Махо-сёдзё", value: "496" }, - { label: "Медицинские знания", value: "441" }, - { label: "Медленная романтическая линия", value: "113" }, - { label: "Медленное развитие на старте ", value: "670" }, - { label: "Межпространственные путешествия", value: "316" }, - { label: "Менеджмент", value: "182" }, - { label: "Мертвый главный герой", value: "794" }, - { label: "Месть", value: "88" }, - { label: "Метаморфы", value: "234" }, - { label: "Меч и магия", value: "55" }, - { label: "Мечник", value: "607" }, - { label: "Мечты", value: "733" }, - { label: "Милая история", value: "709" }, - { label: "Милое дитя", value: "596" }, - { label: "Милый главный герой", value: "697" }, - { label: "Мировое дерево", value: "385" }, - { label: "Мистический ореол вокруг семьи", value: "409" }, - { label: "Мифические звери", value: "418" }, - { label: "Мифология", value: "468" }, - { label: "Младшие братья", value: "843" }, - { label: "Младшие сестры", value: "465" }, - { label: "ММОРПГ (ЛитРПГ)", value: "306" }, - { label: "Множество перемещенных людей", value: "488" }, - { label: "Множество реальностей", value: "278" }, - { label: "Множество реинкарнированных людей", value: "227" }, - { label: "Модели", value: "649" }, - { label: "Молчаливый персонаж", value: "705" }, - { label: "Монстры", value: "69" }, - { label: "Мужская гей-пара", value: "685" }, - { label: "Мужчина-яндере", value: "155" }, - { label: "Музыка", value: "589" }, - { label: "Музыкальные группы", value: "588" }, - { label: "Мутации", value: "668" }, - { label: "Мутированные существа", value: "317" }, - { label: "Навык кражи", value: "626" }, - { label: "Навязчивая любовь", value: "85" }, - { label: "Наемники", value: "324" }, - { label: "Назойливый возлюбленный", value: "501" }, - { label: "Наивный главный герой", value: "66" }, - { label: "Наркотики", value: "661" }, - { label: "Нарциссический главный герой", value: "470" }, - { label: "Насилие сексуального характера", value: "824" }, - { label: "Наследование", value: "372" }, - { label: "Национализм", value: "318" }, - { label: "Не блещущий внешне главный герой", value: "328" }, - { label: "Не родные братья и сестры", value: "464" }, - { label: "Небеса", value: "508" }, - { label: "Небесное испытание", value: "274" }, - { label: "Негуманоидный главный герой", value: "622" }, - { label: "Недоверчивый главный герой", value: "485" }, - { label: "Недооцененный главный герой", value: "140" }, - { label: "Недоразумения", value: "202" }, - { label: "Неизлечимая болезнь", value: "75" }, - { label: "Некромант", value: "308" }, - { label: "Нелинейная история", value: "157" }, - { label: "Ненавистный главный герой", value: "487" }, - { label: "Ненадежный рассказчик", value: "165" }, - { label: "Нерезиденты", value: "821" }, - { label: "Нерешительный главный герой", value: "741" }, - { label: "Несерьезный главный герой", value: "294" }, - { label: "Несколько временных линий", value: "517" }, - { label: "Несколько главных героев", value: "475" }, - { label: "Несколько идентичностей", value: "615" }, - { label: "Несколько личностей", value: "474" }, - { label: "Нетораре", value: "721" }, - { label: "Нетори", value: "450" }, - { label: "Неудачливый главный герой", value: "567" }, - { label: "Ниндзя", value: "358" }, - { label: "Обещание из детства", value: "738" }, - { label: "Обманщик", value: "411" }, - { label: "Обмен телами", value: "94" }, - { label: "Обнаженка", value: "417" }, - { label: "Обольщение", value: "718" }, - { label: "Оборотни", value: "624" }, - { label: "Обратный гарем", value: "255" }, - { label: "Общество монстров", value: "226" }, - { label: "Обязательство", value: "548" }, - { label: "Огнестрельное оружие", value: "179" }, - { label: "Ограниченная продолжительность жизни", value: "73" }, - { label: "Одержимость", value: "447" }, - { label: "Одинокий главный герой", value: "304" }, - { label: "Одиночество", value: "199" }, - { label: "Одиночное проживание", value: "207" }, - { label: "Околосмертные переживания", value: "773" }, - { label: "Оммёдзи", value: "542" }, - { label: "Омоложение", value: "237" }, - { label: "Организованная преступность", value: "478" }, - { label: "Оргия", value: "825" }, - { label: "Орки", value: "228" }, - { label: "Освоение навыков", value: "235" }, - { label: "Основано на аниме", value: "553" }, - { label: "Основано на видео игре", value: "704" }, - { label: "Основано на визуальной новелле ", value: "861" }, - { label: "Основано на песне", value: "677" }, - { label: "Основано на фильме", value: "552" }, - { label: "Осторожный главный герой", value: "122" }, - { label: "Отаку", value: "512" }, - { label: "Открытый космос", value: "150" }, - { label: "Отношения в сети", value: "713" }, - { label: "Отношения между богом и человеком", value: "603" }, - { label: "Отношения между людьми и нелюдьми", value: "205" }, - { label: "Отношения на расстоянии", value: "852" }, - { label: "Отношения начальник-подчиненный", value: "590" }, - { label: "Отношения Сенпай-Коухай", value: "513" }, - { label: "Отношения ученика и учителя", value: "451" }, - { label: "Отношения учитель-ученик", value: "343" }, - { label: "Отношения хозяин-слуга", value: "206" }, - { label: "Отомэ игра", value: "723" }, - { label: "Отсутствие здравого смысла", value: "605" }, - { label: "Отсутствие родителей", value: "575" }, - { label: "Офисный роман", value: "686" }, - { label: "Официанты", value: "681" }, - { label: "Охотники", value: "288" }, - { label: "Очаровательный главный герой", value: "659" }, - { label: "Падшее дворянство", value: "618" }, - { label: "Падшие ангелы", value: "505" }, - { label: "Пайзури", value: "630" }, - { label: "Паразиты", value: "535" }, - { label: "Параллельные миры", value: "86" }, - { label: "Парк развлечений", value: "586" }, - { label: "Пародия", value: "319" }, - { label: "Певцы/Певицы", value: "734" }, - { label: "Первая любовь", value: "716" }, - { label: "Первоисточник новеллы — манга", value: "560" }, - { label: "Первый раз", value: "845" }, - { label: "Перемещение в другой мир, имея при себе современные достижения", value: "732" }, - { label: "Перемещение в игровой мир", value: "532" }, - { label: "Перемещение в иной мир", value: "754" }, - { label: "Перерождение в ином мире", value: "755" }, - { label: "Переселение души/Трансмиграция", value: "139" }, - { label: "Персонаж использует щит", value: "631" }, - { label: "Петля времени", value: "79" }, - { label: "Пираты", value: "817" }, - { label: "Писатели", value: "408" }, - { label: "Питомцы", value: "253" }, - { label: "Племенное общество", value: "291" }, - { label: "Повелитель демонов", value: "171" }, - { label: "Повествование от нескольких лиц/Несколько точек зрения", value: "156" }, - { label: "Подземелья", value: "219" }, - { label: "Пожелания", value: "166" }, - { label: "Познание Дао", value: "360" }, - { label: "Покинутое дитя", value: "534" }, - { label: "Полигамия", value: "296" }, - { label: "Политика", value: "43" }, - { label: "Полиция", value: "801" }, - { label: "Полулюди", value: "335" }, - { label: "Пользователь уникального оружия", value: "432" }, - { label: "Популярный любовный интерес", value: "241" }, - { label: "Постапокалиптика", value: "60" }, - { label: "Потерянные цивилизации", value: "751" }, - { label: "Похищения людей", value: "707" }, - { label: "Поэзия", value: "404" }, - { label: "Правонарушители", value: "694" }, - { label: "Прагматичный главный герой", value: "536" }, - { label: "Преданный любовный интерес", value: "106" }, - { label: "Предательство", value: "103" }, - { label: "Предвидение", value: "52" }, - { label: "Прекрасная героиня", value: "30" }, - { label: "Преступники", value: "728" }, - { label: "Преступность", value: "83" }, - { label: "Призванный герой", value: "147" }, - { label: "Призраки", value: "51" }, - { label: "Принуждение к отношениям", value: "602" }, - { label: "Принцессы", value: "933" }, - { label: "Притворная пара", value: "600" }, - { label: "Причудливые персонажи", value: "297" }, - { label: "Пришельцы/Инопланетяне", value: "76" }, - { label: "Программист", value: "666" }, - { label: "Проклятия", value: "48" }, - { label: "Промывание мозгов", value: "519" }, - { label: "Пропуск времени", value: "138" }, - { label: "Пророчества", value: "429" }, - { label: "Проститутки", value: "844" }, - { label: "Пространственное манипулирование", value: "375" }, - { label: "Прошлое играет большую роль", value: "215" }, - { label: "Прыжки между мирами", value: "737" }, - { label: "Психические силы", value: "265" }, - { label: "Психопаты", value: "158" }, - { label: "Путешествие во времени", value: "80" }, - { label: "Пытка", value: "168" }, - { label: "Рабы", value: "829" }, - { label: "Развод", value: "771" }, - { label: "Разумные предметы", value: "174" }, - { label: "Расизм", value: "320" }, - { label: "Рассказ", value: "61" }, - { label: "Расторжения помолвки", value: "243" }, - { label: "Расы зооморфов", value: "209" }, - { label: "Ревность", value: "717" }, - { label: "Редакторы", value: "684" }, - { label: "Реинкарнация", value: "281" }, - { label: "Реинкарнация в монстра", value: "204" }, - { label: "Реинкарнация в объект", value: "692" }, - { label: "Религии", value: "565" }, - { label: "Репортеры", value: "837" }, - { label: "Ресторан", value: "652" }, - { label: "Решительный главный герой", value: "124" }, - { label: "Робкий главный герой", value: "800" }, - { label: "Родитель одиночка", value: "687" }, - { label: "Родительский комплекс", value: "531" }, - { label: "Родословная", value: "121" }, - { label: "Романтический подсюжет ", value: "159" }, - { label: "Рост персонажа", value: "95" }, - { label: "Рыцари", value: "142" }, - { label: "Садистские персонажи", value: "642" }, - { label: "Самоотверженный главный герой", value: "748" }, - { label: "Самоубийства", value: "616" }, - { label: "Самурай", value: "646" }, - { label: "Сборник коротких историй", value: "456" }, - { label: "Связанные сюжетные линии", value: "473" }, - { label: "Святые", value: "761" }, - { label: "Священники", value: "325" }, - { label: "Сдержанный главный герой", value: "799" }, - { label: "Секретные организации", value: "331" }, - { label: "Секреты", value: "577" }, - { label: "Секс рабы", value: "830" }, - { label: "Семейный конфликт", value: "770" }, - { label: "Семь добродетелей", value: "233" }, - { label: "Семь смертных грехов", value: "134" }, - { label: "Семья", value: "251" }, - { label: "Сёнэн-ай подсюжет ", value: "664" }, - { label: "Серийные убийцы", value: "497" }, - { label: "Сестринский комплекс", value: "498" }, - { label: "Сила духа", value: "282" }, - { label: "Сила, требующая платы за пользование", value: "520" }, - { label: "Сильная пара", value: "109" }, - { label: "Сильный в сильнейшего", value: "359" }, - { label: "Сильный любовный интерес", value: "161" }, - { label: "Синдром восьмиклассника", value: "90" }, - { label: "Сироты", value: "214" }, - { label: "Система уровней", value: "198" }, - { label: "Системный администратор", value: "476" }, - { label: "Скрытие истинной личности", value: "371" }, - { label: "Скрытие истинных способностей", value: "252" }, - { label: "Скрытный главный герой", value: "133" }, - { label: "Скрытые способности", value: "128" }, - { label: "Скульпторы", value: "366" }, - { label: "Слабо выраженная романтическая линия", value: "213" }, - { label: "Слабый главный герой", value: "188" }, - { label: "Слепой главный герой", value: "864" }, - { label: "Слуги", value: "232" }, - { label: "Смерть", value: "49" }, - { label: "Смерть близких", value: "361" }, - { label: "Собственнические персонажи", value: "108" }, - { label: "Современность", value: "40" }, - { label: "Сожительство", value: "482" }, - { label: "Создание армии", value: "175" }, - { label: "Создание артефактов", value: "292" }, - { label: "Создание клана", value: "448" }, - { label: "Создание королевства", value: "181" }, - { label: "Создание навыков", value: "236" }, - { label: "Создание секты", value: "393" }, - { label: "Солдаты/Военные", value: "71" }, - { label: "Сон", value: "571" }, - { label: "Состоятельные персонажи", value: "67" }, - { label: "Социальная иерархия на основе силы", value: "137" }, - { label: "Социальные изгои", value: "480" }, - { label: "Спасение мира", value: "597" }, - { label: "Специальные способности", value: "54" }, - { label: "Спокойный главный герой", value: "32" }, - { label: "Справедливый главный герой", value: "702" }, - { label: "Средневековье", value: "184" }, - { label: "Ссорящаяся пара", value: "293" }, - { label: "Сталкеры", value: "689" }, - { label: "Старение", value: "190" }, - { label: "Стоические персонажи", value: "444" }, - { label: "Стокгольмский синдром", value: "643" }, - { label: "Стратег", value: "425" }, - { label: "Стратегические битвы", value: "160" }, - { label: "Стратегия", value: "1038" }, - { label: "Стрелки", value: "458" }, - { label: "Стрельба из лука", value: "383" }, - { label: "Студенческий совет", value: "490" }, - { label: "Судьба", value: "271" }, - { label: "Суккубы", value: "484" }, - { label: "Супер герои", value: "1039" }, - { label: "Суровая подготовка", value: "261" }, - { label: "Таинственная болезнь", value: "74" }, - { label: "Таинственное прошлое", value: "263" }, - { label: "Тайная личность", value: "310" }, - { label: "Тайные отношения", value: "812" }, - { label: "Танцоры", value: "840" }, - { label: "Телохранители", value: "452" }, - { label: "Тентакли", value: "693" }, - { label: "Террористы", value: "515" }, - { label: "Технологический разрыв", value: "621" }, - { label: "Тихие персонажи", value: "546" }, - { label: "Толстый главный герой", value: "299" }, - { label: "Торговцы", value: "416" }, - { label: "Травля/Буллинг", value: "89" }, - { label: "Травник", value: "708" }, - { label: "Трагическое прошлое", value: "164" }, - { label: "Трансплантация воспоминаний", value: "367" }, - { label: "Трап (Путаница с гендером персонажа)", value: "582" }, - { label: "Трудолюбивый главный герой", value: "37" }, - { label: "Тюрьма", value: "479" }, - { label: "Убийства", value: "84" }, - { label: "Убийцы", value: "248" }, - { label: "Убийцы драконов", value: "606" }, - { label: "Уверенный главный герой", value: "270" }, - { label: "Удачливый главный герой", value: "402" }, - { label: "Укротитель монстров", value: "337" }, - { label: "Умения из прошлой жизни", value: "280" }, - { label: "Умная пара", value: "493" }, - { label: "Умный главный герой", value: "33" }, - { label: "Уникальная техника Культивации", value: "254" }, - { label: "Уникальное оружие", value: "340" }, - { label: "Управление бизнесом", value: "315" }, - { label: "Управление временем", value: "167" }, - { label: "Управление кровью", value: "764" }, - { label: "Упрямый главный герой", value: "672" }, - { label: "Уродливый главный герой", value: "803" }, - { label: "Ускоренный рост", value: "300" }, - { label: "Усыновленные дети", value: "481" }, - { label: "Усыновленный главный герой", value: "412" }, - { label: "Уход за детьми", value: "398" }, - { label: "Учителя", value: "345" }, - { label: "Фамильяры", value: "541" }, - { label: "Фанатизм", value: "613" }, - { label: "Фантастические существа", value: "322" }, - { label: "Фанфикшн", value: "388" }, - { label: "Фармацевт", value: "715" }, - { label: "Фарминг", value: "379" }, - { label: "Феи", value: "210" }, - { label: "Фелляция", value: "584" }, - { label: "Фениксы", value: "374" }, - { label: "Фетиш груди", value: "499" }, - { label: "Философия", value: "87" }, - { label: "Фильмы", value: "403" }, - { label: "Флэшбэки", value: "528" }, - { label: "Фобии", value: "100" }, - { label: "Фольклор", value: "467" }, - { label: "Футанари", value: "568" }, - { label: "Футуристический сеттинг", value: "382" }, - { label: "Фэнтези мир", value: "126" }, - { label: "Хакеры", value: "399" }, - { label: "Харизматический герой", value: "391" }, - { label: "Хикикомори/Затворники", value: "462" }, - { label: "Хитроумный главный герой", value: "105" }, - { label: "Хозяин подземелий", value: "557" }, - { label: "Холодный главный герой", value: "259" }, - { label: "Хорошие отношения с семьей", value: "506" }, - { label: "Хранители могил", value: "68" }, - { label: "Целители", value: "389" }, - { label: "Цзянши", value: "735" }, - { label: "Цундэрэ", value: "445" }, - { label: "Чаты", value: "580" }, - { label: "Человеческое оружие", value: "521" }, - { label: "Честный главный герой", value: "240" }, - { label: "Читы", value: "238" }, - { label: "Шантаж", value: "526" }, - { label: "Шеф-повар", value: "239" }, - { label: "Шикигами", value: "543" }, - { label: "Школа только для девочек", value: "633" }, - { label: "Шота", value: "514" }, - { label: "Шоу-бизнес", value: "407" }, - { label: "Шпионы", value: "563" }, - { label: "Эволюция", value: "196" }, - { label: "Эгоистичный главный герой", value: "539" }, - { label: "Эйдетическая память", value: "392" }, - { label: "Экзорсизм", value: "504" }, - { label: "Экономика", value: "492" }, - { label: "Эксгибиционизм", value: "639" }, - { label: "Эксперименты с людьми", value: "129" }, - { label: "Элементальная магия", value: "395" }, - { label: "Эльфы", value: "172" }, - { label: "Эмоционально слабый главный герой", value: "816" }, - { label: "Эпизодический", value: "612" }, - { label: "Юный любовный интерес", value: "446" }, - { label: "Яды", value: "410" }, - { label: "Языкастые персонажи", value: "406" }, - { label: "Языковой барьер", value: "59" }, - { label: "Яндере", value: "208" }, - { label: "Японские силы самообороны", value: "559" }, - { label: "Ярко выраженная романтическая линия", value: "272" }, - { label: "Abusive Characters", value: "625" }, - { label: "Adapted to Visual Novel", value: "1046" }, - { label: "Adopted-lead", value: "886" }, - { label: "Adultery", value: "866" }, - { label: "Affair", value: "645" }, - { label: "Age-gap", value: "923" }, - { label: "Almost-human-lead", value: "975" }, - { label: "An*l", value: "780" }, - { label: "Androgynous-male-lead", value: "1002" }, - { label: "Anti-hero-lead", value: "976" }, - { label: "Apathetic-lead", value: "967" }, - { label: "Arms Dealers", value: "839" }, - { label: "Army-commander", value: "1003" }, - { label: "Artifact-refining", value: "924" }, - { label: "Autism", value: "855" }, - { label: "Awkward Protagonist", value: "669" }, - { label: "Awkward-lead", value: "892" }, - { label: "Bestiality", value: "796" }, - { label: "Big-breasts", value: "908" }, - { label: "Birth-of-a-nation", value: "1004" }, - { label: "Bisexual-lead", value: "1027" }, - { label: "Body-refining", value: "947" }, - { label: "Body-swap/s", value: "1036" }, - { label: "Boss-subordinate-relationship", value: "876" }, - { label: "Bride-kidnapping", value: "948" }, - { label: "Caring-lead", value: "879" }, - { label: "Cautious-lead", value: "1032" }, - { label: "Changed-man", value: "925" }, - { label: "Charismatic-lead", value: "1005" }, - { label: "Child-lead", value: "936" }, - { label: "Clever-lead", value: "880" }, - { label: "Clumsy Love Interests", value: "815" }, - { label: "Cold Love Interests", value: "651" }, - { label: "Coming of Age", value: "860" }, - { label: "Confident-lead", value: "894" }, - { label: "Confident-male-lead", value: "951" }, - { label: "Confinement", value: "767" }, - { label: "Conflicting Loyalties", value: "793" }, - { label: "Couple Growth", value: "690" }, - { label: "Court Official", value: "863" }, - { label: "Cowardly Protagonist", value: "703" }, - { label: "Cowardly-lead", value: "1000" }, - { label: "Cross-dressing", value: "250" }, - { label: "Cunnilingus", value: "867" }, - { label: "Cunning-lead", value: "952" }, - { label: "Cunning-male-lead", value: "953" }, - { label: "Curious Protagonist", value: "849" }, - { label: "Cute-lead", value: "887" }, - { label: "Dense-lead", value: "868" }, - { label: "Determined-lead", value: "972" }, - { label: "Developing-technology", value: "1006" }, - { label: "Devil/s", value: "1007" }, - { label: "Different Social Status", value: "758" }, - { label: "Disfigurement", value: "838" }, - { label: "Doting Love Interests", value: "665" }, - { label: "Doting Older Siblings", value: "609" }, - { label: "Doting Parents", value: "530" }, - { label: "Dungeon/s-exploring", value: "990" }, - { label: "Elderly Protagonist", value: "774" }, - { label: "Enlightenment", value: "729" }, - { label: "Eunuch", value: "1047" }, - { label: "Eye Powers", value: "386" }, - { label: "Family Business", value: "785" }, - { label: "Famous Parents", value: "790" }, - { label: "Famous-lead", value: "897" }, - { label: "Fanfic", value: "942" }, - { label: "Fated Lovers", value: "797" }, - { label: "Fellatio", value: "870" }, - { label: "Female-lead", value: "888" }, - { label: "First-time-intercourse", value: "871" }, - { label: "Fleet Battles", value: "836" }, - { label: "Forced Living Arrangements", value: "808" }, - { label: "Forced Marriage", value: "835" }, - { label: "Former Hero", value: "752" }, - { label: "Fujoshi", value: "1045" }, - { label: "Galge", value: "848" }, - { label: "Gambling", value: "1031" }, - { label: "Gamelit", value: "994" }, - { label: "Genderless-lead", value: "1008" }, - { label: "Glasses-wearing-lead", value: "995" }, - { label: "Guardian Relationship", value: "197" }, - { label: "H*ndjob", value: "629" }, - { label: "Half-human-lead", value: "956" }, - { label: "Hard-working-lead", value: "957" }, - { label: "Hard-working-male-lead", value: "958" }, - { label: "Hard-working-protagonist/s", value: "1030" }, - { label: "Harem-seeking-lead", value: "929" }, - { label: "Harem-subtext", value: "909" }, - { label: "Helpful Protagonist", value: "760" }, - { label: "Helpful-lead", value: "882" }, - { label: "Hidden-gem", value: "998" }, - { label: "High-fantasy", value: "991" }, - { label: "Human-becomes-demon/monster", value: "1009" }, - { label: "Human-nonhuman-relationship", value: "914" }, - { label: "Humanoid-lead", value: "915" }, - { label: "Imperial Harem", value: "805" }, - { label: "Incubus", value: "1049" }, - { label: "Insects", value: "831" }, - { label: "Interspatial-storage", value: "959" }, - { label: "Kind Love Interests", value: "757" }, - { label: "Large-number-of-skills", value: "1010" }, - { label: "Legendary-hero", value: "1011" }, - { label: "Litrpg", value: "977" }, - { label: "Love Rivals", value: "788" }, - { label: "Lovers Reunited", value: "853" }, - { label: "Low-fantasy", value: "1037" }, - { label: "Master-disciple-relationship", value: "899" }, - { label: "Matriarchy", value: "807" }, - { label: "Mature-lead", value: "900" }, - { label: "Mind Break", value: "862" }, - { label: "Mismatched Couple", value: "695" }, - { label: "Mob Protagonist", value: "648" }, - { label: "Mob-lead", value: "902" }, - { label: "Modern", value: "988" }, - { label: "Monster-pov", value: "1012" }, - { label: "Mpreg", value: "856" }, - { label: "Multiple-povs", value: "1013" }, - { label: "Mystery Solving", value: "710" }, - { label: "Naive-lead", value: "1014" }, - { label: "Near-death-experience", value: "996" }, - { label: "Neet", value: "495" }, - { label: "Nightmares", value: "833" }, - { label: "Nobility", value: "1015" }, - { label: "Non-human-lead", value: "978" }, - { label: "Non-humanoid-lead", value: "1016" }, - { label: "Not-so-secret-identity", value: "979" }, - { label: "Omegaverse", value: "857" }, - { label: "Online-game", value: "910" }, - { label: "Online-gaming", value: "911" }, - { label: "Outdoor Interc**rse", value: "847" }, - { label: "Outdoor-intercourse", value: "903" }, - { label: "Overprotective Siblings", value: "610" }, - { label: "Part-Time Job", value: "865" }, - { label: "Past Trauma", value: "726" }, - { label: "Past-memories", value: "1017" }, - { label: "Persistent Love Interests", value: "714" }, - { label: "Perverted-lead", value: "932" }, - { label: "Photography", value: "798" }, - { label: "Pill Based Cultivation", value: "279" }, - { label: "Pill Concocting", value: "245" }, - { label: "Pilots", value: "820" }, - { label: "Playboys", value: "795" }, - { label: "Playful-lead", value: "989" }, - { label: "Polyandry", value: "811" }, - { label: "Portal-fantasy-/-isekai", value: "992" }, - { label: "Pragmatic-lead", value: "884" }, - { label: "Profanity", value: "980" }, - { label: "Protagonist-loyal-to-love-interest", value: "905" }, - { label: "R-15 (Японское возрастное ограничение)", value: "230" }, - { label: "Rebellion", value: "834" }, - { label: "Reincarnated in a Game World", value: "804" }, - { label: "Reluctant Protagonist", value: "696" }, - { label: "Reverse R*pe", value: "776" }, - { label: "Reversible Couple", value: "854" }, - { label: "Ruling-class", value: "943" }, - { label: "S*x Friends", value: "750" }, - { label: "S*xual Cultivation Technique", value: "823" }, - { label: "Salaryman", value: "1035" }, - { label: "Satire", value: "981" }, - { label: "Schemes And Conspiracies", value: "745" }, - { label: "Scientist/s", value: "997" }, - { label: "Scientists", value: "1029" }, - { label: "Secret Crush", value: "827" }, - { label: "Seme Protagonist", value: "1034" }, - { label: "Seme-lead", value: "1028" }, - { label: "Sentimental Protagonist", value: "1048" }, - { label: "Seven-heavenly-virtues", value: "1018" }, - { label: "Sexual Cultivation Technique", value: "350" }, - { label: "Sexual-content", value: "982" }, - { label: "Sexuality", value: "983" }, - { label: "Sharing A Body", value: "814" }, - { label: "Shotacon", value: "858" }, - { label: "Shoujo-Ai Subplot", value: "777" }, - { label: "Sibling Rivalry", value: "766" }, - { label: "Sibling's Care", value: "1042" }, - { label: "Sickly Characters", value: "787" }, - { label: "Skills", value: "1019" }, - { label: "Slave-harem", value: "1001" }, - { label: "Slime", value: "1020" }, - { label: "Smart-male-lead", value: "963" }, - { label: "Spirit Users", value: "739" }, - { label: "Straight Seme", value: "819" }, - { label: "Straight Uke", value: "818" }, - { label: "Strength-based-social-hierarchy", value: "974" }, - { label: "Strong-lead", value: "944" }, - { label: "Strong-male-lead", value: "964" }, - { label: "Student-teacher-relationship", value: "1026" }, - { label: "Suspense", value: "987" }, - { label: "Sword-and-sorcery", value: "875" }, - { label: "Threesome", value: "574" }, - { label: "Transformation Ability", value: "736" }, - { label: "Traumatising-content", value: "1040" }, - { label: "Underestimated-lead", value: "919" }, - { label: "Underestimated-male-lead", value: "966" }, - { label: "Unique-abilities", value: "1021" }, - { label: "Unique-skill", value: "1022" }, - { label: "Unique-skills", value: "1023" }, - { label: "Unlimited Flow", value: "1044" }, - { label: "Unrequited Love", value: "806" }, - { label: "Urban-fantasy", value: "1041" }, - { label: "Villainess Noble Girls", value: "719" }, - { label: "Weak-lead", value: "885" }, - { label: "Web-novel", value: "1024" }, - ], - type: filterInputs_1.FilterTypes.ExcludableCheckboxGroup, - }, - tags: { - label: "Жанры", - value: { include: [], exclude: [] }, - options: [ - { label: "Боевые искусства", value: "22" }, - { label: "Гарем", value: "114" }, - { label: "Гендер бендер", value: "246" }, - { label: "Дзёсэй", value: "216" }, - { label: "Для взрослых", value: "115" }, - { label: "Для взрослых", value: "258" }, - { label: "Драма", value: "7" }, - { label: "Исторический", value: "101" }, - { label: "Комедия", value: "17" }, - { label: "Лоликон", value: "638" }, - { label: "Магический реализм", value: "922" }, - { label: "Меха", value: "24" }, - { label: "Милитари", value: "12" }, - { label: "Мистика", value: "2" }, - { label: "Научная фантастика", value: "13" }, - { label: "Непристойность", value: "747" }, - { label: "Повседневность", value: "93" }, - { label: "Приключение", value: "11" }, - { label: "Психология", value: "18" }, - { label: "Романтика", value: "9" }, - { label: "Сверхъестественное", value: "20" }, - { label: "Сёдзё", value: "15" }, - { label: "Сёдзё-ай", value: "23" }, - { label: "Сёнэн", value: "189" }, - { label: "Сёнэн-ай", value: "680" }, - { label: "Спорт", value: "420" }, - { label: "Сэйнэн", value: "5" }, - { label: "Сюаньхуа", value: "242" }, - { label: "Сянься", value: "364" }, - { label: "Трагедия", value: "19" }, - { label: "Триллер", value: "3" }, - { label: "Ужасы", value: "1" }, - { label: "Уся", value: "720" }, - { label: "Фэнтези", value: "8" }, - { label: "Школьная жизнь", value: "21" }, - { label: "Экшн", value: "14" }, - { label: "Эччи", value: "327" }, - { label: "Юри", value: "691" }, - { label: "Яой", value: "682" }, - { label: "Eastern fantasy", value: "907" }, - { label: "Isekai", value: "999" }, - { label: "Video games", value: "993" }, - ], - type: filterInputs_1.FilterTypes.ExcludableCheckboxGroup, - }, - }; - } - RNBH.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w; - var showLatestNovels = _a.showLatestNovels, filters = _a.filters; - return __awaiter(this, void 0, void 0, function () { - var url, tagsPositive, tagsNegative, result, body, novels; - return __generator(this, function (_x) { - switch (_x.label) { - case 0: - url = this.site + "api/search?page=".concat(pageNo, "&sort="); - url += showLatestNovels - ? "last_chapter_at" - : (filters === null || filters === void 0 ? void 0 : filters.sort) || "computed_rating"; - url += "&status=" + (((_b = filters === null || filters === void 0 ? void 0 : filters.status) === null || _b === void 0 ? void 0 : _b.value) ? (_c = filters === null || filters === void 0 ? void 0 : filters.status) === null || _c === void 0 ? void 0 : _c.value : "0"); - if (filters) { - if ((_e = (_d = filters.country) === null || _d === void 0 ? void 0 : _d.value) === null || _e === void 0 ? void 0 : _e.length) { - url += "&country=" + filters.country.value.join(","); - } - if (((_h = (_g = (_f = filters.tags) === null || _f === void 0 ? void 0 : _f.value) === null || _g === void 0 ? void 0 : _g.include) === null || _h === void 0 ? void 0 : _h.length) || - ((_l = (_k = (_j = filters.events) === null || _j === void 0 ? void 0 : _j.value) === null || _k === void 0 ? void 0 : _k.include) === null || _l === void 0 ? void 0 : _l.length)) { - tagsPositive = [ - (_m = filters.tags.value) === null || _m === void 0 ? void 0 : _m.include, - (_o = filters.events.value) === null || _o === void 0 ? void 0 : _o.include, - ] - .flat() - .filter(function (t) { return t; }); - url += "&tags:positive=" + tagsPositive.join(","); - } - if (((_r = (_q = (_p = filters === null || filters === void 0 ? void 0 : filters.tags) === null || _p === void 0 ? void 0 : _p.value) === null || _q === void 0 ? void 0 : _q.exclude) === null || _r === void 0 ? void 0 : _r.length) || - ((_u = (_t = (_s = filters === null || filters === void 0 ? void 0 : filters.events) === null || _s === void 0 ? void 0 : _s.value) === null || _t === void 0 ? void 0 : _t.exclude) === null || _u === void 0 ? void 0 : _u.length)) { - tagsNegative = [ - (_v = filters.tags.value) === null || _v === void 0 ? void 0 : _v.exclude, - (_w = filters.events.value) === null || _w === void 0 ? void 0 : _w.exclude, - ] - .flat() - .filter(function (t) { return t; }); - url += "&tags:negative=" + tagsNegative.join(","); - } - } - url += "&take=40"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _x.sent(); - return [4 /*yield*/, result.json()]; - case 2: - body = (_x.sent()); - novels = []; - body.resource.forEach(function (novel) { - var _a; - return novels.push({ - name: ((_a = novel.names) === null || _a === void 0 ? void 0 : _a.rus) || novel.names.eng, - cover: novel.poster.medium, - url: novel.url, - }); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - RNBH.prototype.parseNovelAndChapters = function (novelUrl) { - var _a, _b, _c, _d; - return __awaiter(this, void 0, void 0, function () { - var novelId, result, json, novel, tags, chapters, fetchChaptersUrl, chaptersRaw, chaptersJSON; - return __generator(this, function (_e) { - switch (_e.label) { - case 0: - novelId = novelUrl - .substring("https://ranobehub.org/ranobe/".length) - .split("-")[0]; - return [4 /*yield*/, (0, fetch_1.fetchApi)("".concat(this.site, "api/ranobe/").concat(novelId))]; - case 1: - result = _e.sent(); - return [4 /*yield*/, result.json()]; - case 2: - json = (_e.sent()); - novel = { - url: json.data.url, - name: ((_a = json.data.names) === null || _a === void 0 ? void 0 : _a.rus) || json.data.names.eng, - cover: json.data.posters.medium, - summary: json.data.description, - author: ((_d = (_c = (_b = json.data) === null || _b === void 0 ? void 0 : _b.authors) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.name_eng) || "", - status: json.data.status.title.includes("процессе") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed, - }; - tags = [json.data.tags.events, json.data.tags.genres] - .flat() - .map(function (tags) { var _a, _b; return ((_a = tags === null || tags === void 0 ? void 0 : tags.names) === null || _a === void 0 ? void 0 : _a.rus) || ((_b = tags === null || tags === void 0 ? void 0 : tags.names) === null || _b === void 0 ? void 0 : _b.eng) || (tags === null || tags === void 0 ? void 0 : tags.title); }) - .filter(function (tags) { return tags; }); - if (tags.length) { - novel.genres = tags.join(", "); - } - chapters = []; - fetchChaptersUrl = "".concat(this.site, "api/ranobe/").concat(novelId, "/contents"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(fetchChaptersUrl)]; - case 3: - chaptersRaw = _e.sent(); - return [4 /*yield*/, chaptersRaw.json()]; - case 4: - chaptersJSON = (_e.sent()); - chaptersJSON.volumes.forEach(function (volume) { - var _a; - return (_a = volume.chapters) === null || _a === void 0 ? void 0 : _a.forEach(function (chapter) { - return chapters.push({ - name: chapter.name, - url: chapter.url, - releaseTime: (0, dayjs_1.default)(parseInt(chapter.changed_at, 10) * 1000).format("LLL"), - }); - }); - }); - novel.chapters = chapters; - return [2 /*return*/, novel]; - } - }); - }); - }; - RNBH.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var result, body, loadedCheerio, baseUrl, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".chapter-hoticons").remove(); - baseUrl = this.site; - loadedCheerio("div.text:nth-child(1) img").each(function () { - var _a; - if (!((_a = loadedCheerio(this).attr("src")) === null || _a === void 0 ? void 0 : _a.startsWith("http"))) { - var dataMediaId = loadedCheerio(this).attr("data-media-id"); - loadedCheerio(this).attr("src", baseUrl + "api/media/" + dataMediaId); - } - }); - chapterText = loadedCheerio("div.text:nth-child(1)").html() || ""; - // Remove script tags - chapterText = chapterText === null || chapterText === void 0 ? void 0 : chapterText.replace(/<\s*script[^>]*>[\s\S]*?<\/script>/gim, ""); - return [2 /*return*/, chapterText]; - } - }); - }); - }; - RNBH.prototype.searchNovels = function (searchTerm) { - var _a, _b; - return __awaiter(this, void 0, void 0, function () { - var url, result, data, novels; - return __generator(this, function (_c) { - switch (_c.label) { - case 0: - url = "".concat(this.site, "api/fulltext/global?query=").concat(searchTerm, "&take=10"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _c.sent(); - return [4 /*yield*/, result.json()]; - case 2: - data = (_c.sent()); - novels = []; - (_b = (_a = data === null || data === void 0 ? void 0 : data.find(function (item) { var _a; return ((_a = item === null || item === void 0 ? void 0 : item.meta) === null || _a === void 0 ? void 0 : _a.key) === "ranobe"; })) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.forEach(function (novel) { - var _a, _b, _c, _d, _e; - return novels.push({ - name: ((_a = novel === null || novel === void 0 ? void 0 : novel.names) === null || _a === void 0 ? void 0 : _a.rus) || ((_b = novel === null || novel === void 0 ? void 0 : novel.names) === null || _b === void 0 ? void 0 : _b.eng) || (novel === null || novel === void 0 ? void 0 : novel.name) || "", - url: "https://ranobehub.org/ranobe/" + - ((_d = (_c = novel === null || novel === void 0 ? void 0 : novel.url) === null || _c === void 0 ? void 0 : _c.match(/https:\/\/ranobehub\.org\/ranobe\/(.*?)\?utm_source=search_name&utm_medium=search&utm_campaign=search_using/)) === null || _d === void 0 ? void 0 : _d[1]), - cover: (_e = novel === null || novel === void 0 ? void 0 : novel.image) === null || _e === void 0 ? void 0 : _e.replace("/small", "/medium"), - }); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - return RNBH; -}()); -exports.default = new RNBH(); diff --git a/.js/plugins/russian/ranobelib.js b/.js/plugins/russian/ranobelib.js deleted file mode 100644 index b0ffe30..0000000 --- a/.js/plugins/russian/ranobelib.js +++ /dev/null @@ -1,460 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var filterInputs_1 = require("@libs/filterInputs"); -var fetch_1 = require("@libs/fetch"); -var novelStatus_1 = require("@libs/novelStatus"); -var cheerio_1 = require("cheerio"); -var dayjs_1 = __importDefault(require("dayjs")); -var RLIB = /** @class */ (function () { - function RLIB() { - this.id = "RLIB"; - this.name = "RanobeLib"; - this.site = "https://ranobelib.me"; - this.version = "1.0.0"; - this.icon = "src/ru/ranobelib/icon.png"; - this.ui = undefined; - this.fetchImage = fetch_1.fetchFile; - this.filters = { - sort: { - label: "Сортировка", - value: "", - options: [ - { label: "Рейтинг", value: "rate" }, - { label: "Имя", value: "name" }, - { label: "Просмотры", value: "views" }, - { label: "Дате добавления", value: "created_at" }, - { label: "Дате обновления", value: "last_chapter_at" }, - { label: "Количество глав", value: "chap_count" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - order: { - label: "Порядок", - value: "", - options: [ - { label: "По убыванию", value: "desc" }, - { label: "По возрастанию", value: "asc" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - type: { - label: "Тип", - value: [], - options: [ - { label: "Авторский", value: "14" }, - { label: "Английский", value: "13" }, - { label: "Китай", value: "12" }, - { label: "Корея", value: "11" }, - { label: "Фанфик", value: "15" }, - { label: "Япония", value: "10" }, - ], - type: filterInputs_1.FilterTypes.CheckboxGroup, - }, - format: { - label: "Формат выпуска", - value: { include: [], exclude: [] }, - options: [ - { label: "4-кома (Ёнкома)", value: "1" }, - { label: "В цвете", value: "4" }, - { label: "Веб", value: "6" }, - { label: "Вебтун", value: "7" }, - { label: "Додзинси", value: "3" }, - { label: "Сборник", value: "2" }, - { label: "Сингл", value: "5" }, - ], - type: filterInputs_1.FilterTypes.ExcludableCheckboxGroup, - }, - status: { - label: "Статус перевода", - value: [], - options: [ - { label: "Продолжается", value: "1" }, - { label: "Завершен", value: "2" }, - { label: "Заморожен", value: "3" }, - { label: "Заброшен", value: "4" }, - ], - type: filterInputs_1.FilterTypes.CheckboxGroup, - }, - statuss: { - label: "Статус тайтла", - value: [], - options: [ - { label: "Онгоинг", value: "1" }, - { label: "Завершён", value: "2" }, - { label: "Анонс", value: "3" }, - { label: "Приостановлен", value: "4" }, - { label: "Выпуск прекращён", value: "5" }, - ], - type: filterInputs_1.FilterTypes.CheckboxGroup, - }, - genres: { - label: "Жанры", - value: { include: [], exclude: [] }, - options: [ - { label: "Арт", value: "32" }, - { label: "Безумие", value: "91" }, - { label: "Боевик", value: "34" }, - { label: "Боевые искусства", value: "35" }, - { label: "Вампиры", value: "36" }, - { label: "Военное", value: "89" }, - { label: "Гарем", value: "37" }, - { label: "Гендерная интрига", value: "38" }, - { label: "Героическое фэнтези", value: "39" }, - { label: "Демоны", value: "81" }, - { label: "Детектив", value: "40" }, - { label: "Детское", value: "88" }, - { label: "Дзёсэй", value: "41" }, - { label: "Драма", value: "43" }, - { label: "Игра", value: "44" }, - { label: "Исекай", value: "79" }, - { label: "История", value: "45" }, - { label: "Киберпанк", value: "46" }, - { label: "Кодомо", value: "76" }, - { label: "Комедия", value: "47" }, - { label: "Космос", value: "83" }, - { label: "Магия", value: "85" }, - { label: "Махо-сёдзё", value: "48" }, - { label: "Машины", value: "90" }, - { label: "Меха", value: "49" }, - { label: "Мистика", value: "50" }, - { label: "Музыка", value: "80" }, - { label: "Научная фантастика", value: "51" }, - { label: "Омегаверс", value: "77" }, - { label: "Пародия", value: "86" }, - { label: "Повседневность", value: "52" }, - { label: "Полиция", value: "82" }, - { label: "Постапокалиптика", value: "53" }, - { label: "Приключения", value: "54" }, - { label: "Психология", value: "55" }, - { label: "Романтика", value: "56" }, - { label: "Самурайский боевик", value: "57" }, - { label: "Сверхъестественное", value: "58" }, - { label: "Сёдзё", value: "59" }, - { label: "Сёдзё-ай", value: "60" }, - { label: "Сёнэн", value: "61" }, - { label: "Сёнэн-ай", value: "62" }, - { label: "Спорт", value: "63" }, - { label: "Супер сила", value: "87" }, - { label: "Сэйнэн", value: "64" }, - { label: "Трагедия", value: "65" }, - { label: "Триллер", value: "66" }, - { label: "Ужасы", value: "67" }, - { label: "Фантастика", value: "68" }, - { label: "Фэнтези", value: "69" }, - { label: "Школа", value: "70" }, - { label: "Эротика", value: "71" }, - { label: "Этти", value: "72" }, - { label: "Юри", value: "73" }, - { label: "Яой", value: "74" }, - ], - type: filterInputs_1.FilterTypes.ExcludableCheckboxGroup, - }, - tags: { - label: "Теги", - value: { include: [], exclude: [] }, - options: [ - { label: "Авантюристы", value: "328" }, - { label: "Антигерой", value: "176" }, - { label: "Бессмертные", value: "333" }, - { label: "Боги", value: "218" }, - { label: "Борьба за власть", value: "309" }, - { label: "Брат и сестра", value: "360" }, - { label: "Ведьма", value: "339" }, - { label: "Видеоигры", value: "204" }, - { label: "Виртуальная реальность", value: "214" }, - { label: "Владыка демонов", value: "349" }, - { label: "Военные", value: "198" }, - { label: "Воспоминания из другого мира", value: "310" }, - { label: "Выживание", value: "212" }, - { label: "ГГ женщина", value: "294" }, - { label: "ГГ имба", value: "292" }, - { label: "ГГ мужчина", value: "295" }, - { label: "ГГ не ояш", value: "325" }, - { label: "ГГ не человек", value: "331" }, - { label: "ГГ ояш", value: "326" }, - { label: "Главный герой бог", value: "324" }, - { label: "Глупый ГГ", value: "298" }, - { label: "Горничные", value: "171" }, - { label: "Гуро", value: "306" }, - { label: "Гяру", value: "197" }, - { label: "Демоны", value: "157" }, - { label: "Драконы", value: "313" }, - { label: "Древний мир", value: "317" }, - { label: "Зверолюди", value: "163" }, - { label: "Зомби", value: "155" }, - { label: "Исторические фигуры", value: "323" }, - { label: "Кулинария", value: "158" }, - { label: "Культивация", value: "161" }, - { label: "ЛГБТ", value: "344" }, - { label: "ЛитРПГ", value: "319" }, - { label: "Лоли", value: "206" }, - { label: "Магия", value: "170" }, - { label: "Машинный перевод", value: "345" }, - { label: "Медицина", value: "159" }, - { label: "Межгалактическая война", value: "330" }, - { label: "Монстр Девушки", value: "207" }, - { label: "Монстры", value: "208" }, - { label: "Мрачный мир", value: "316" }, - { label: "Музыка", value: "358" }, - { label: "Музыка", value: "209" }, - { label: "Ниндзя", value: "199" }, - { label: "Обратный Гарем", value: "210" }, - { label: "Офисные Работники", value: "200" }, - { label: "Пираты", value: "341" }, - { label: "Подземелья", value: "314" }, - { label: "Политика", value: "311" }, - { label: "Полиция", value: "201" }, - { label: "Преступники / Криминал", value: "205" }, - { label: "Призраки / Духи", value: "196" }, - { label: "Призыватели", value: "329" }, - { label: "Прыжки между мирами", value: "321" }, - { label: "Путешествие в другой мир", value: "318" }, - { label: "Путешествие во времени", value: "213" }, - { label: "Рабы", value: "355" }, - { label: "Ранги силы", value: "312" }, - { label: "Реинкарнация", value: "154" }, - { label: "Самураи", value: "202" }, - { label: "Скрытие личности", value: "315" }, - { label: "Средневековье", value: "174" }, - { label: "Традиционные игры", value: "203" }, - { label: "Умный ГГ", value: "303" }, - { label: "Характерный рост", value: "332" }, - { label: "Хикикомори", value: "167" }, - { label: "Эволюция", value: "322" }, - { label: "Элементы РПГ", value: "327" }, - { label: "Эльфы", value: "217" }, - { label: "Якудза", value: "165" }, - ], - type: filterInputs_1.FilterTypes.ExcludableCheckboxGroup, - }, - }; - } - RLIB.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4; - var showLatestNovels = _a.showLatestNovels, filters = _a.filters; - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novels; - return __generator(this, function (_5) { - switch (_5.label) { - case 0: - url = "".concat(this.site, "/manga-list?sort="); - url += showLatestNovels - ? "last_chapter_at" - : ((_b = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _b === void 0 ? void 0 : _b.value) || "rate"; - url += "&dir=" + (((_c = filters === null || filters === void 0 ? void 0 : filters.order) === null || _c === void 0 ? void 0 : _c.value) || "desc"); - if ((_e = (_d = filters.type) === null || _d === void 0 ? void 0 : _d.value) === null || _e === void 0 ? void 0 : _e.length) { - url += filters.type.value.map(function (i) { return "&types[]=" + i; }).join(""); - } - if ((_h = (_g = (_f = filters.format) === null || _f === void 0 ? void 0 : _f.value) === null || _g === void 0 ? void 0 : _g.include) === null || _h === void 0 ? void 0 : _h.length) { - url += filters.format.value.include - .map(function (i) { return "&format[include][]=" + i; }).join(""); - } - if ((_l = (_k = (_j = filters.format) === null || _j === void 0 ? void 0 : _j.value) === null || _k === void 0 ? void 0 : _k.exclude) === null || _l === void 0 ? void 0 : _l.length) { - url += filters.format.value.exclude - .map(function (i) { return "&format[exclude][]=" + i; }).join(""); - } - if ((_o = (_m = filters.status) === null || _m === void 0 ? void 0 : _m.value) === null || _o === void 0 ? void 0 : _o.length) { - url += filters.status.value.map(function (i) { return "&status[]=" + i; }).join(""); - } - if ((_q = (_p = filters.statuss) === null || _p === void 0 ? void 0 : _p.value) === null || _q === void 0 ? void 0 : _q.length) { - url += filters.statuss.value.map(function (i) { return "&manga_status[]=" + i; }).join(""); - } - if ((_t = (_s = (_r = filters.genres) === null || _r === void 0 ? void 0 : _r.value) === null || _s === void 0 ? void 0 : _s.include) === null || _t === void 0 ? void 0 : _t.length) { - url += filters.genres.value.include - .map(function (i) { return "&genres[include][]=" + i; }).join(""); - } - if ((_w = (_v = (_u = filters.genres) === null || _u === void 0 ? void 0 : _u.value) === null || _v === void 0 ? void 0 : _v.exclude) === null || _w === void 0 ? void 0 : _w.length) { - url += filters.genres.value.exclude - .map(function (i) { return "&genres[exclude][]=" + i; }).join(""); - } - if ((_z = (_y = (_x = filters.tags) === null || _x === void 0 ? void 0 : _x.value) === null || _y === void 0 ? void 0 : _y.include) === null || _z === void 0 ? void 0 : _z.length) { - url += filters.tags.value.include - .map(function (i) { return "&tags[include][]=" + i; }).join(""); - } - if ((_2 = (_1 = (_0 = filters.tags) === null || _0 === void 0 ? void 0 : _0.value) === null || _1 === void 0 ? void 0 : _1.exclude) === null || _2 === void 0 ? void 0 : _2.length) { - url += filters.tags.value.exclude - .map(function (i) { return "&tags[exclude][]=" + i; }).join(""); - } - url += "&page=" + pageNo; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _5.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _5.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - this.ui = (_4 = (_3 = loadedCheerio("a.header-right-menu__item") - .attr("href")) === null || _3 === void 0 ? void 0 : _3.replace) === null || _4 === void 0 ? void 0 : _4.call(_3, /[^0-9]/g, ""); - novels = []; - loadedCheerio(".media-card-wrap").each(function () { - var name = loadedCheerio(this).find(".media-card__title").text(); - var cover = loadedCheerio(this).find("a.media-card").attr("data-src"); - var url = loadedCheerio(this).find("a.media-card").attr("href"); - if (!url) - return; - novels.push({ name: name, cover: cover, url: url }); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - RLIB.prototype.parseNovelAndChapters = function (novelUrl) { - var _a, _b, _c, _d, _e, _f, _g; - return __awaiter(this, void 0, void 0, function () { - var result, body, loadedCheerio, novel, chapters, chaptersRaw, chaptersJson; - var _this = this; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl)]; - case 1: - result = _h.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { - url: novelUrl, - }; - novel.name = loadedCheerio(".media-name__main").text().trim(); - novel.cover = loadedCheerio(".media-sidebar__cover img").attr("src"); - novel.summary = loadedCheerio(".media-description__text").text().trim(); - novel.genres = loadedCheerio('div[class="media-tags"]') - .text() - .trim() - .replace(/[\n\r]+/g, ", ") - .replace(/ /g, ""); - loadedCheerio('div[class="media-info-list paper"] > [class="media-info-list__item"]').each(function () { - var name = loadedCheerio(this) - .find('div[class="media-info-list__title"]') - .text(); - if (name === "Статус перевода") { - novel.status = - loadedCheerio(this).find("div:nth-child(2)").text().trim() === - "Продолжается" - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - } - else if (name === "Автор") { - novel.author = loadedCheerio(this) - .find("div:nth-child(2)") - .text() - .trim(); - } - }); - chapters = []; - chaptersRaw = body.match(/window.__DATA__ = [\s\S]*?window._SITE_COLOR_/gm); - chaptersRaw = (_d = (_c = (_b = (_a = chaptersRaw === null || chaptersRaw === void 0 ? void 0 : chaptersRaw[0]) === null || _a === void 0 ? void 0 : _a.replace("window.__DATA__ = ", "")) === null || _b === void 0 ? void 0 : _b.replace("window._SITE_COLOR_", "")) === null || _c === void 0 ? void 0 : _c.trim()) === null || _d === void 0 ? void 0 : _d.slice(0, -1); - chaptersJson = JSON.parse(chaptersRaw); - this.ui = (_e = chaptersJson === null || chaptersJson === void 0 ? void 0 : chaptersJson.user) === null || _e === void 0 ? void 0 : _e.id; - (_g = (_f = chaptersJson.chapters) === null || _f === void 0 ? void 0 : _f.list) === null || _g === void 0 ? void 0 : _g.forEach(function (chapter) { - var _a; - return chapters.push({ - name: (_a = "\u0422\u043E\u043C ".concat(chapter.chapter_volume, " \u0413\u043B\u0430\u0432\u0430 ").concat(chapter.chapter_number, " ").concat(chapter.chapter_name)) === null || _a === void 0 ? void 0 : _a.trim(), - releaseTime: (0, dayjs_1.default)(chapter.chapter_created_at).format("LLL"), - url: "".concat(_this.site, "/").concat(chaptersJson.manga.slug, "/v").concat(chapter.chapter_volume, "/c").concat(chapter.chapter_number, "?bid=") + - ((chapter === null || chapter === void 0 ? void 0 : chapter.branch_id) || ""), - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - RLIB.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var result, body, loadedCheerio, baseUrl, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl + (this.ui ? "&ui=" + this.ui : ""))]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - baseUrl = this.site; - loadedCheerio(".reader-container img").each(function () { - var src = loadedCheerio(this).attr("data-src") || loadedCheerio(this).attr("src"); - if (!(src === null || src === void 0 ? void 0 : src.startsWith("http"))) { - loadedCheerio(this).attr("src", baseUrl + src); - } - else { - loadedCheerio(this).attr("src", src); - } - loadedCheerio(this).removeAttr("data-src"); - }); - chapterText = loadedCheerio(".reader-container").html(); - return [2 /*return*/, chapterText || ""]; - } - }); - }); - }; - RLIB.prototype.searchNovels = function (searchTerm) { - return __awaiter(this, void 0, void 0, function () { - var result, body, novels; - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)("".concat(this.site, "/search?q=").concat(searchTerm, "&type=manga"))]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.json()]; - case 2: - body = (_a.sent()); - novels = []; - body.forEach(function (novel) { - return novels.push({ - name: (novel === null || novel === void 0 ? void 0 : novel.rus_name) || novel.name, - cover: novel === null || novel === void 0 ? void 0 : novel.coverImage, - url: (novel === null || novel === void 0 ? void 0 : novel.href) || _this.site + "/" + novel.slug, - }); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - return RLIB; -}()); -exports.default = new RLIB(); diff --git a/.js/plugins/russian/ranoberf.js b/.js/plugins/russian/ranoberf.js deleted file mode 100644 index 22d5508..0000000 --- a/.js/plugins/russian/ranoberf.js +++ /dev/null @@ -1,216 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var filterInputs_1 = require("@libs/filterInputs"); -var defaultCover_1 = require("@libs/defaultCover"); -var fetch_1 = require("@libs/fetch"); -var novelStatus_1 = require("@libs/novelStatus"); -var cheerio_1 = require("cheerio"); -var dayjs_1 = __importDefault(require("dayjs")); -var RNRF = /** @class */ (function () { - function RNRF() { - this.id = "RNRF"; - this.name = "РанобэРФ"; - this.site = "https://ранобэ.рф"; - this.version = "1.0.0"; - this.icon = "src/ru/ranoberf/icon.png"; - this.fetchImage = fetch_1.fetchFile; - this.filters = { - sort: { - label: "Сортировка", - value: "", - options: [ - { label: "Рейтинг", value: "popular" }, - { label: "Дате добавления", value: "new" }, - { label: "Дате обновления", value: "lastPublishedChapter" }, - { label: "Законченные", value: "completed" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - }; - } - RNRF.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e; - var showLatestNovels = _a.showLatestNovels, filters = _a.filters; - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, jsonRaw, json, novels; - var _this = this; - return __generator(this, function (_f) { - switch (_f.label) { - case 0: - url = this.site + "/books?order="; - url += showLatestNovels - ? "lastPublishedChapter" - : ((_b = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _b === void 0 ? void 0 : _b.value) || "popular"; - url += "&page=" + pageNo; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _f.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _f.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - jsonRaw = loadedCheerio("#__NEXT_DATA__").html(); - json = JSON.parse(jsonRaw || "{}"); - novels = []; - (_e = (_d = (_c = json.props.pageProps) === null || _c === void 0 ? void 0 : _c.totalData) === null || _d === void 0 ? void 0 : _d.items) === null || _e === void 0 ? void 0 : _e.forEach(function (novel) { - var _a; - return novels.push({ - name: novel.title, - cover: ((_a = novel === null || novel === void 0 ? void 0 : novel.verticalImage) === null || _a === void 0 ? void 0 : _a.url) - ? _this.site + novel.verticalImage.url - : defaultCover_1.defaultCover, - url: _this.site + "/" + novel.slug, - }); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - RNRF.prototype.parseNovelAndChapters = function (novelUrl) { - var _a, _b; - return __awaiter(this, void 0, void 0, function () { - var result, body, loadedCheerio, jsonRaw, book, novel, chapters; - var _this = this; - return __generator(this, function (_c) { - switch (_c.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl)]; - case 1: - result = _c.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _c.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - jsonRaw = loadedCheerio("#__NEXT_DATA__").html(); - book = JSON.parse(jsonRaw || "{}").props.pageProps.book; - novel = { - url: novelUrl, - name: book === null || book === void 0 ? void 0 : book.title, - cover: ((_a = book === null || book === void 0 ? void 0 : book.verticalImage) === null || _a === void 0 ? void 0 : _a.url) - ? this.site + book.verticalImage.url - : defaultCover_1.defaultCover, - summary: book === null || book === void 0 ? void 0 : book.description, - author: (book === null || book === void 0 ? void 0 : book.author) || "", - genres: book === null || book === void 0 ? void 0 : book.genres.map(function (item) { return item.title; }).join(", "), - status: (book === null || book === void 0 ? void 0 : book.additionalInfo.includes("Активен")) - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed, - }; - chapters = []; - (_b = book === null || book === void 0 ? void 0 : book.chapters) === null || _b === void 0 ? void 0 : _b.forEach(function (chapter) { - if (!chapter.isDonate || chapter.isUserPaid) { - chapters.push({ - name: chapter.title, - releaseTime: (0, dayjs_1.default)(chapter.publishedAt).format("LLL"), - url: _this.site + chapter.url, - }); - } - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - RNRF.prototype.parseChapter = function (chapterUrl) { - var _a, _b, _c; - return __awaiter(this, void 0, void 0, function () { - var result, body, loadedCheerio, jsonRaw, json, baseUrl, chapterText; - return __generator(this, function (_d) { - switch (_d.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl)]; - case 1: - result = _d.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _d.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - jsonRaw = loadedCheerio("#__NEXT_DATA__").html(); - json = JSON.parse(jsonRaw || "{}"); - loadedCheerio = (0, cheerio_1.load)(((_c = (_b = (_a = json.props.pageProps) === null || _a === void 0 ? void 0 : _a.chapter) === null || _b === void 0 ? void 0 : _b.content) === null || _c === void 0 ? void 0 : _c.text) || ""); - baseUrl = this.site; - loadedCheerio("img").each(function () { - var _a; - if (!((_a = loadedCheerio(this).attr("src")) === null || _a === void 0 ? void 0 : _a.startsWith("http"))) { - var src = loadedCheerio(this).attr("src"); - loadedCheerio(this).attr("src", baseUrl + src); - } - }); - chapterText = loadedCheerio.html(); - return [2 /*return*/, chapterText]; - } - }); - }); - }; - RNRF.prototype.searchNovels = function (searchTerm) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, novels; - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = "".concat(this.site, "/v3/books?filter[or][0][title][like]=").concat(searchTerm, "&filter[or][1][titleEn][like]=").concat(searchTerm, "&filter[or][2][fullTitle][like]=").concat(searchTerm, "&filter[status][]=active&filter[status][]=abandoned&filter[status][]=completed&expand=verticalImage"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.json()]; - case 2: - body = (_a.sent()); - novels = []; - body.items.forEach(function (novel) { - var _a; - return novels.push({ - name: novel.title, - cover: ((_a = novel === null || novel === void 0 ? void 0 : novel.verticalImage) === null || _a === void 0 ? void 0 : _a.url) - ? _this.site + novel.verticalImage.url - : defaultCover_1.defaultCover, - url: _this.site + "/" + novel.slug, - }); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - return RNRF; -}()); -exports.default = new RNRF(); diff --git a/.js/plugins/russian/renovels.js b/.js/plugins/russian/renovels.js deleted file mode 100644 index 462ea46..0000000 --- a/.js/plugins/russian/renovels.js +++ /dev/null @@ -1,1037 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var filterInputs_1 = require("@libs/filterInputs"); -var fetch_1 = require("@libs/fetch"); -var novelStatus_1 = require("@libs/novelStatus"); -var dayjs_1 = __importDefault(require("dayjs")); -var ReN = /** @class */ (function () { - function ReN() { - this.id = "ReN"; - this.name = "Renovels"; - this.site = "https://renovels.org"; - this.version = "1.0.0"; - this.icon = "src/ru/renovels/icon.png"; - this.fetchImage = fetch_1.fetchFile; - this.filters = { - sort: { - label: "Сортировка", - value: "", - options: [ - { label: "Рейтинг", value: "rating" }, - { label: "Просмотры", value: "views" }, - { label: "Лайкам", value: "votes" }, - { label: "Дате добавления", value: "id" }, - { label: "Дате обновления", value: "chapter_date" }, - { label: "Количество глав", value: "count_chapters" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - order: { - label: "Порядок", - value: "", - options: [ - { label: "По убыванию", value: "-" }, - { label: "По возрастанию", value: "+" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - genres: { - label: "Жанры:", - value: { include: [], exclude: [] }, - options: [ - { label: "Боевик", value: "112" }, - { label: "Война", value: "123" }, - { label: "Детектив", value: "114" }, - { label: "Драма", value: "125" }, - { label: "Историческая проза", value: "115" }, - { label: "ЛитРПГ", value: "109" }, - { label: "Любовные романы", value: "116" }, - { label: "Мистика", value: "103" }, - { label: "Научная фантастика", value: "121" }, - { label: "Повседневность", value: "128" }, - { label: "Подростковая проза", value: "113" }, - { label: "Политический роман", value: "119" }, - { label: "Попаданцы", value: "108" }, - { label: "Поэзия", value: "105" }, - { label: "Разное", value: "111" }, - { label: "РеалРПГ", value: "117" }, - { label: "Романтика", value: "126" }, - { label: "Современная проза", value: "102" }, - { label: "Современная фантастика", value: "127" }, - { label: "Спорт", value: "122" }, - { label: "Трагедия", value: "129" }, - { label: "Триллер", value: "110" }, - { label: "Триллер и саспенс", value: "124" }, - { label: "Ужасы", value: "106" }, - { label: "Фантастика", value: "101" }, - { label: "Фанфик", value: "107" }, - { label: "Фьюжн роман", value: "120" }, - { label: "Фэнтези", value: "100" }, - { label: "Эротика", value: "118" }, - { label: "Юмор", value: "104" }, - ], - type: filterInputs_1.FilterTypes.ExcludableCheckboxGroup, - }, - categories: { - label: "Тэги:", - value: { include: [], exclude: [] }, - options: [ - { label: "[Награжденная работа]", value: "648" }, - { label: "18+", value: "423" }, - { label: "Абьюзеры", value: "663" }, - { label: "Авантюристы", value: "436" }, - { label: "Автоматоны", value: "593" }, - { label: "Агрессивные персонажи", value: "502" }, - { label: "Ад", value: "569" }, - { label: "Адаптация в радиопостановку", value: "581" }, - { label: "Академия", value: "153" }, - { label: "Актеры озвучки", value: "627" }, - { label: "Активный главный герой", value: "251" }, - { label: "Алхимия", value: "233" }, - { label: "Альтернативная история", value: "147" }, - { label: "Альтернативный мир", value: "156" }, - { label: "Амнезия/Потеря памяти", value: "344" }, - { label: "Анабиоз", value: "685" }, - { label: "Ангелы", value: "183" }, - { label: "Андрогинные персонажи", value: "321" }, - { label: "Андроиды", value: "203" }, - { label: "Анти-магия", value: "533" }, - { label: "Антигерой", value: "432" }, - { label: "Антикварный магазин", value: "623" }, - { label: "Антисоциальный главный герой", value: "613" }, - { label: "Антиутопия", value: "142" }, - { label: "Апатичный протагонист", value: "157" }, - { label: "Апокалипсис", value: "402" }, - { label: "Аранжированный брак", value: "375" }, - { label: "Армия", value: "639" }, - { label: "Артефакты", value: "234" }, - { label: "Артисты", value: "523" }, - { label: "Банды", value: "630" }, - { label: "БДСМ", value: "699" }, - { label: "Бедный главный герой", value: "398" }, - { label: "Безжалостный главный герой", value: "261" }, - { label: "Беззаботный главный герой", value: "438" }, - { label: "Безусловная любовь", value: "679" }, - { label: "Беременность", value: "250" }, - { label: "Бесполый главный герой", value: "325" }, - { label: "Бессмертные", value: "368" }, - { label: "Бесстрашный протагонист", value: "656" }, - { label: "Бесстыдный главный герой", value: "352" }, - { label: "Бесчестный главный герой", value: "716" }, - { label: "Библиотека", value: "428" }, - { label: "Бизнес-литература", value: "121" }, - { label: "Бизнесмен", value: "769" }, - { label: "Биочип", value: "238" }, - { label: "Бисексуальный главный герой", value: "773" }, - { label: "Близнецы", value: "263" }, - { label: "Боги", value: "317" }, - { label: "Богини", value: "439" }, - { label: "Боевая академия", value: "450" }, - { label: "Боевая фантастика", value: "149" }, - { label: "Боевое фэнтези", value: "104" }, - { label: "Боевые духи", value: "433" }, - { label: "Боевые соревнования", value: "493" }, - { label: "Божественная защита", value: "421" }, - { label: "Божественные силы", value: "327" }, - { label: "Борьба за власть", value: "599" }, - { label: "Брак", value: "446" }, - { label: "Брак по расчету", value: "188" }, - { label: "Братский комплекс", value: "159" }, - { label: "Братство", value: "487" }, - { label: "Братья и сестры", value: "577" }, - { label: "Буддизм", value: "745" }, - { label: "Быстрая культивация", value: "366" }, - { label: "Быстрообучаемый", value: "324" }, - { label: "Валькирии", value: "692" }, - { label: "Вампиры", value: "360" }, - { label: "Ваншот", value: "702" }, - { label: "Ведьмы", value: "281" }, - { label: "Вежливый главный герой", value: "379" }, - { label: "Верные подчиненные", value: "328" }, - { label: "Взрослый главный герой", value: "295" }, - { label: "Видит то, чего не видят другие", value: "671" }, - { label: "Виртуальная реальность", value: "401" }, - { label: "Владелец магазина", value: "681" }, - { label: "Внезапная сила", value: "455" }, - { label: "Внезапное богатство", value: "765" }, - { label: "Внешний вид отличается от факт", value: "419" }, - { label: "Военные Летописи", value: "743" }, - { label: "Возвращение из другого мира", value: "696" }, - { label: "Войны", value: "181" }, - { label: "Вокалоид", value: "701" }, - { label: "Волшебники/Волшебницы", value: "539" }, - { label: "Волшебные звери", value: "308" }, - { label: "Воображаемый друг", value: "651" }, - { label: "Воры", value: "414" }, - { label: "Воскрешение", value: "199" }, - { label: "Враги становятся возлюбленными", value: "498" }, - { label: "Враги становятся союзниками", value: "562" }, - { label: "Врата в другой мир", value: "609" }, - { label: "Врачи", value: "376" }, - { label: "Временной парадокс", value: "275" }, - { label: "Всемогущий главный герой", value: "169" }, - { label: "Вторжение на землю", value: "198" }, - { label: "Второй шанс", value: "231" }, - { label: "Вуайеризм", value: "790" }, - { label: "Выживание", value: "380" }, - { label: "Высокомерные персонажи", value: "361" }, - { label: "Гадание", value: "595" }, - { label: "Гарем рабов", value: "777" }, - { label: "Гг - женщина", value: "186" }, - { label: "Гг - мужчина", value: "166" }, - { label: "Гг силен с самого начала", value: "171" }, - { label: "Геймеры", value: "392" }, - { label: "Генералы", value: "326" }, - { label: "Генетические модификации", value: "657" }, - { label: "Гениальный главный герой", value: "617" }, - { label: "Герои", value: "285" }, - { label: "Героиня — сорванец", value: "583" }, - { label: "Героическая фантастика", value: "140" }, - { label: "Героическое фэнтези", value: "107" }, - { label: "Герой влюбляется первым", value: "187" }, - { label: "Гетерохромия", value: "570" }, - { label: "Гильдии", value: "411" }, - { label: "Гипнотизм", value: "755" }, - { label: "Главный герой — бог", value: "547" }, - { label: "Главный герой — гуманоид", value: "636" }, - { label: "Главный герой — наполовину чел", value: "445" }, - { label: "Главный герой — отец", value: "792" }, - { label: "Главный герой — раб", value: "780" }, - { label: "Главный герой — ребенок", value: "488" }, - { label: "Главный герой — рубака", value: "476" }, - { label: "Главный герой влюбляется первы", value: "683" }, - { label: "Главный герой играет роль", value: "472" }, - { label: "Главный герой носит очки", value: "672" }, - { label: "Главный герой пацифист", value: "698" }, - { label: "Гладиаторы", value: "603" }, - { label: "Глуповатый главный герой", value: "385" }, - { label: "Гоблины", value: "586" }, - { label: "Големы", value: "620" }, - { label: "Гомункул", value: "789" }, - { label: "Горничные", value: "459" }, - { label: "Городское фэнтези", value: "105" }, - { label: "Госпиталь", value: "800" }, - { label: "Готовка", value: "302" }, - { label: "Гриндинг", value: "393" }, - { label: "Дао Компаньон", value: "462" }, - { label: "Даосизм", value: "760" }, - { label: "Дварфы", value: "323" }, - { label: "Двойная личность", value: "642" }, - { label: "Двойник", value: "601" }, - { label: "Дворецкий", value: "660" }, - { label: "Дворяне", value: "168" }, - { label: "Дворянство/Аристократия", value: "437" }, - { label: "Девушки-монстры", value: "669" }, - { label: "Демоническая техника культивац", value: "722" }, - { label: "Демоны", value: "152" }, - { label: "Денежный долг", value: "783" }, - { label: "Депрессия", value: "555" }, - { label: "Детектив", value: "116" }, - { label: "Детективы", value: "612" }, - { label: "Детская литература", value: "123" }, - { label: "Дискриминация", value: "162" }, - { label: "Добыча денег в приоритете", value: "396" }, - { label: "Документальная проза", value: "122" }, - { label: "Долгая разлука", value: "307" }, - { label: "Домашние дела", value: "290" }, - { label: "Домогательство", value: "470" }, - { label: "Драконы", value: "303" }, - { label: "Драконьи всадники", value: "607" }, - { label: "Древние времена", value: "221" }, - { label: "Древний Китай", value: "374" }, - { label: "Дружба", value: "217" }, - { label: "Друзья детства", value: "282" }, - { label: "Друзья становятся врагами", value: "567" }, - { label: "Друиды", value: "497" }, - { label: "Дух лисы", value: "784" }, - { label: "Духи/призраки", value: "172" }, - { label: "Духовный советник", value: "435" }, - { label: "Душевность", value: "633" }, - { label: "Души", value: "254" }, - { label: "Европейская атмосфера", value: "521" }, - { label: "Ёкаи", value: "575" }, - { label: "Есть аниме-адаптация", value: "154" }, - { label: "Есть видеоигра по мотивам", value: "552" }, - { label: "Есть манга", value: "155" }, - { label: "Есть манхва-адаптация", value: "517" }, - { label: "Есть маньхуа-адаптация", value: "388" }, - { label: "Есть сериал-адаптация", value: "492" }, - { label: "Есть фильм", value: "173" }, - { label: "Женища-наставник", value: "505" }, - { label: "Жесткая, двуличная личность", value: "346" }, - { label: "Жестокие персонажи", value: "503" }, - { label: "Жестокое обращение с ребенком", value: "654" }, - { label: "Жестокость", value: "245" }, - { label: "Животноводство", value: "754" }, - { label: "Животные черты", value: "528" }, - { label: "Жизнь в квартире", value: "606" }, - { label: "Жрицы", value: "615" }, - { label: "Заботливый главный герой", value: "288" }, - { label: "Забывчивый главный герой", value: "628" }, - { label: "Заговоры", value: "289" }, - { label: "Закалка тела", value: "362" }, - { label: "Законники", value: "756" }, - { label: "Замкнутый главный герой", value: "589" }, - { label: "Запечатанная сила", value: "430" }, - { label: "Застенчивые персонажи", value: "508" }, - { label: "Звери", value: "237" }, - { label: "Звери-компаньоны", value: "301" }, - { label: "Злой протагонист", value: "243" }, - { label: "Злые боги", value: "504" }, - { label: "Злые организации", value: "563" }, - { label: "Злые религии", value: "734" }, - { label: "Знаменитости", value: "473" }, - { label: "Знаменитый главный герой", value: "531" }, - { label: "Знания современного мира", value: "297" }, - { label: "Зомби", value: "409" }, - { label: "Игра на выживание", value: "274" }, - { label: "Игривый протагонист", value: "717" }, - { label: "Игровая система рейтинга", value: "391" }, - { label: "Игровые элементы", value: "266" }, - { label: "Игрушки (18+)", value: "676" }, - { label: "Из грязи в князи", value: "416" }, - { label: "Из женщины в мужчину", value: "709" }, - { label: "Из мужчины в женщину", value: "715" }, - { label: "Из полного в худого", value: "767" }, - { label: "Из слабого в сильного", value: "202" }, - { label: "Извращенный главный герой", value: "434" }, - { label: "Изгои", value: "534" }, - { label: "Изменение расы", value: "664" }, - { label: "Изменения внешнего вида", value: "300" }, - { label: "Изменения личности", value: "219" }, - { label: "Изнасилование", value: "229" }, - { label: "Изображения жестокости", value: "355" }, - { label: "ИИ", value: "235" }, - { label: "Империи", value: "748" }, - { label: "Инвалидность", value: "684" }, - { label: "Индустриализация", value: "292" }, - { label: "Инженер", value: "163" }, - { label: "Инцест", value: "525" }, - { label: "Искусственный интеллект", value: "236" }, - { label: "Исследования", value: "670" }, - { label: "Историческая проза", value: "119" }, - { label: "Исторические приключения", value: "120" }, - { label: "Исторический детектив", value: "117" }, - { label: "Исторический любовный роман", value: "138" }, - { label: "Историческое фэнтези", value: "110" }, - { label: "Каннибализм", value: "456" }, - { label: "Карточные игры", value: "682" }, - { label: "Киберпанк", value: "141" }, - { label: "Киберспорт", value: "686" }, - { label: "Кланы", value: "796" }, - { label: "Класс безработного", value: "735" }, - { label: "Клоны", value: "447" }, - { label: "Клубы", value: "216" }, - { label: "Книги", value: "427" }, - { label: "Книги навыков", value: "400" }, - { label: "Книжный червь", value: "519" }, - { label: "Коварство", value: "230" }, - { label: "Коллеги", value: "704" }, - { label: "Колледж/Университет", value: "726" }, - { label: "Кома", value: "776" }, - { label: "Командная работа", value: "496" }, - { label: "Комедийный оттенок", value: "582" }, - { label: "Комплекс неполноценности", value: "550" }, - { label: "Комплекс семейных отношений", value: "223" }, - { label: "Конкуренция", value: "746" }, - { label: "Контроль разума/сознания", value: "357" }, - { label: "Копейщик", value: "425" }, - { label: "Королевская битва", value: "797" }, - { label: "Королевская власть", value: "178" }, - { label: "Королевства", value: "259" }, - { label: "Короткий любовный роман", value: "136" }, - { label: "Коррупция", value: "457" }, - { label: "Космическая фантастика", value: "146" }, - { label: "Космические войны", value: "697" }, - { label: "Красивый герой", value: "226" }, - { label: "Крафт", value: "377" }, - { label: "Кризис личности", value: "640" }, - { label: "Кругосветное путешествие", value: "353" }, - { label: "Кудере", value: "506" }, - { label: "Кузены", value: "718" }, - { label: "Кузнец", value: "518" }, - { label: "Кукловоды", value: "501" }, - { label: "Куклы/марионетки", value: "624" }, - { label: "Культивация", value: "241" }, - { label: "Куннилингус", value: "667" }, - { label: "Легенды", value: "500" }, - { label: "Легкая жизнь", value: "644" }, - { label: "Ленивый главный герой", value: "621" }, - { label: "Лидерство", value: "494" }, - { label: "Лоли", value: "213" }, - { label: "Лотерея", value: "477" }, - { label: "Любовное фэнтези", value: "135" }, - { label: "Любовный треугольник", value: "218" }, - { label: "Любовь детства", value: "560" }, - { label: "Любовь с первого взгляда", value: "737" }, - { label: "Магические надписи", value: "453" }, - { label: "Магические печати", value: "369" }, - { label: "Магические технологии", value: "440" }, - { label: "Магия", value: "165" }, - { label: "Магия призыва", value: "418" }, - { label: "Мазохистские персонажи", value: "688" }, - { label: "Манипулятивные персонажи", value: "249" }, - { label: "Мания", value: "212" }, - { label: "Мастер на все руки", value: "466" }, - { label: "Мастурбация", value: "788" }, - { label: "Махо-сёдзё", value: "556" }, - { label: "Медицинские знания", value: "507" }, - { label: "Медленная романтическая линия", value: "232" }, - { label: "Медленное развитие на старте", value: "694" }, - { label: "Межпространственные путешестви", value: "404" }, - { label: "Менеджмент", value: "294" }, - { label: "Мертвый главный герой", value: "761" }, - { label: "Месть", value: "209" }, - { label: "Метаморфы", value: "335" }, - { label: "Меч и магия", value: "180" }, - { label: "Мечник", value: "647" }, - { label: "Мечты", value: "738" }, - { label: "Милая история", value: "725" }, - { label: "Милое дитя", value: "637" }, - { label: "Милый главный герой", value: "714" }, - { label: "Мировое дерево", value: "463" }, - { label: "Мистика", value: "151" }, - { label: "Мистический ореол вокруг семьи", value: "483" }, - { label: "Мифические звери", value: "491" }, - { label: "Мифология", value: "530" }, - { label: "Младшие братья", value: "785" }, - { label: "Младшие сестры", value: "527" }, - { label: "ММОРПГ (ЛитРПГ)", value: "395" }, - { label: "Множество перемещенных людей", value: "549" }, - { label: "Множество реальностей", value: "370" }, - { label: "Множество реинкарнированных лю", value: "330" }, - { label: "Модели", value: "678" }, - { label: "Молчаливый персонаж", value: "721" }, - { label: "Монстры", value: "192" }, - { label: "Мужская гей-пара", value: "706" }, - { label: "Мужчина-яндере", value: "267" }, - { label: "Музыка", value: "635" }, - { label: "Музыкальные группы", value: "634" }, - { label: "Мутации", value: "693" }, - { label: "Мутированные существа", value: "405" }, - { label: "Навык кражи", value: "662" }, - { label: "Навязчивая любовь", value: "206" }, - { label: "Наемники", value: "412" }, - { label: "Назойливый возлюбленный", value: "561" }, - { label: "Наивный главный герой", value: "189" }, - { label: "Наркотики", value: "689" }, - { label: "Нарциссический главный герой", value: "532" }, - { label: "Насилие сексуального характера", value: "774" }, - { label: "Наследование", value: "452" }, - { label: "Научная фантастика", value: "144" }, - { label: "Национализм", value: "406" }, - { label: "Не блещущий внешне главный гер", value: "415" }, - { label: "Не родные братья и сестры", value: "526" }, - { label: "Небеса", value: "568" }, - { label: "Небесное испытание", value: "367" }, - { label: "Негуманоидный главный герой", value: "659" }, - { label: "Недоверчивый главный герой", value: "546" }, - { label: "Недооцененный главный герой", value: "258" }, - { label: "Недоразумения", value: "309" }, - { label: "Неизлечимая болезнь", value: "196" }, - { label: "Некромант", value: "397" }, - { label: "Нелинейная история", value: "269" }, - { label: "Ненавистный главный герой", value: "548" }, - { label: "Ненадежный рассказчик", value: "277" }, - { label: "Нерезиденты", value: "772" }, - { label: "Нерешительный главный герой", value: "744" }, - { label: "Несерьезный главный герой", value: "384" }, - { label: "Несколько временных линий", value: "576" }, - { label: "Несколько гг", value: "268" }, - { label: "Несколько главных героев", value: "537" }, - { label: "Несколько идентичностей", value: "652" }, - { label: "Несколько личностей", value: "536" }, - { label: "Нетораре", value: "732" }, - { label: "Нетори", value: "514" }, - { label: "Неудачливый главный герой", value: "618" }, - { label: "Ниндзя", value: "441" }, - { label: "Новелла", value: "103" }, - { label: "Обещание из детства", value: "742" }, - { label: "Обманщик", value: "485" }, - { label: "Обмен телами", value: "214" }, - { label: "Обнаженка", value: "490" }, - { label: "Обольщение", value: "731" }, - { label: "Оборотни", value: "661" }, - { label: "Обратный гарем", value: "351" }, - { label: "Общество монстров", value: "329" }, - { label: "Обязательство", value: "602" }, - { label: "Огнестрельное оружие", value: "291" }, - { label: "Ограниченное время жизни", value: "194" }, - { label: "Одержимость", value: "512" }, - { label: "Одинокий главный герой", value: "394" }, - { label: "Одиночество", value: "306" }, - { label: "Одиночное проживание", value: "313" }, - { label: "Околосмертные переживания", value: "759" }, - { label: "Оммёдзи", value: "597" }, - { label: "Омоложение", value: "338" }, - { label: "Организованная преступность", value: "540" }, - { label: "Оргия", value: "775" }, - { label: "Орки", value: "331" }, - { label: "Освоение навыков", value: "336" }, - { label: "Основано на аниме", value: "605" }, - { label: "Основано на видео игре", value: "720" }, - { label: "Основано на визуальной новелле", value: "793" }, - { label: "Основано на песне", value: "700" }, - { label: "Основано на фильме", value: "604" }, - { label: "Осторожный главный герой", value: "240" }, - { label: "Отаку", value: "571" }, - { label: "Открытый космос", value: "264" }, - { label: "Отношения в сети", value: "727" }, - { label: "Отношения между людьми и нелюд", value: "311" }, - { label: "Отношения на расстоянии", value: "791" }, - { label: "Отношения Сенпай-Коухай", value: "572" }, - { label: "Отношения ученика и учителя", value: "515" }, - { label: "Отношения учитель-ученик", value: "429" }, - { label: "Отношения хозяин-слуга", value: "312" }, - { label: "Отомэ игра", value: "733" }, - { label: "Отсутствие здравого смысла", value: "645" }, - { label: "Отсутствие родителей", value: "625" }, - { label: "Офисный роман", value: "707" }, - { label: "Официанты", value: "703" }, - { label: "Охотники", value: "378" }, - { label: "Очаровательный главный герой", value: "687" }, - { label: "Падшее дворянство", value: "655" }, - { label: "Падшие ангелы", value: "565" }, - { label: "Пайзури", value: "665" }, - { label: "Паразиты", value: "591" }, - { label: "Параллельные миры", value: "207" }, - { label: "Парк", value: "265" }, - { label: "Парк развлечений", value: "632" }, - { label: "Пародия", value: "407" }, - { label: "Певцы/Певицы", value: "739" }, - { label: "Первая любовь", value: "729" }, - { label: "Первоисточник новеллы — манга", value: "611" }, - { label: "Первый раз", value: "787" }, - { label: "Перемещение в игровой мир", value: "588" }, - { label: "Перемещение в иной мир", value: "750" }, - { label: "Перерождение в ином мире", value: "751" }, - { label: "Переселение души/трансмиграция", value: "257" }, - { label: "Персонаж использует щит", value: "666" }, - { label: "Петля времени", value: "200" }, - { label: "Пираты", value: "771" }, - { label: "Писатели", value: "482" }, - { label: "Питомцы", value: "349" }, - { label: "Племенное общество", value: "381" }, - { label: "Повелитель демонов", value: "283" }, - { label: "Подземелья", value: "322" }, - { label: "Подростковая проза", value: "114" }, - { label: "Пожелания", value: "278" }, - { label: "Познание Дао", value: "443" }, - { label: "Покинутое дитя", value: "590" }, - { label: "Полигамия", value: "386" }, - { label: "Политика", value: "170" }, - { label: "Политический роман", value: "133" }, - { label: "Полиция", value: "764" }, - { label: "Полулюди", value: "420" }, - { label: "Популярный любовный интерес", value: "342" }, - { label: "Постапокалипсис", value: "145" }, - { label: "Постапокалиптика", value: "184" }, - { label: "Потерянные цивилизации", value: "749" }, - { label: "Похищения людей", value: "723" }, - { label: "Поэзия", value: "111" }, - { label: "Правонарушители", value: "713" }, - { label: "Прагматичный главный герой", value: "592" }, - { label: "Преданный любовный интерес", value: "225" }, - { label: "Предательство", value: "222" }, - { label: "Предвидение", value: "177" }, - { label: "Прекрасная героиня", value: "158" }, - { label: "Преступники", value: "736" }, - { label: "Преступность", value: "204" }, - { label: "Призванный герой", value: "262" }, - { label: "Призраки", value: "176" }, - { label: "Принуждение к отношениям", value: "643" }, - { label: "Принцессы", value: "795" }, - { label: "Притворная пара", value: "641" }, - { label: "Причудливые персонажи", value: "387" }, - { label: "Пришельцы/инопланетяне", value: "197" }, - { label: "Программист", value: "691" }, - { label: "Проклятия", value: "174" }, - { label: "Промывание мозгов", value: "578" }, - { label: "Пропуск времени", value: "256" }, - { label: "Пророчества", value: "499" }, - { label: "Проститутки", value: "786" }, - { label: "Прошлое играет большую роль", value: "320" }, - { label: "Прыжки между мирами", value: "741" }, - { label: "Психические силы", value: "359" }, - { label: "Психопаты", value: "270" }, - { label: "Публицистика", value: "124" }, - { label: "Путешествие во времени", value: "201" }, - { label: "Пытка", value: "280" }, - { label: "Рабы", value: "778" }, - { label: "Развитие личности", value: "125" }, - { label: "Развод", value: "758" }, - { label: "Разумные предметы", value: "286" }, - { label: "Расизм", value: "408" }, - { label: "Рассказ", value: "185" }, - { label: "Расторжения помолвки", value: "343" }, - { label: "Расы зооморфов", value: "315" }, - { label: "Реализм", value: "246" }, - { label: "Ревность", value: "730" }, - { label: "Редакторы", value: "705" }, - { label: "Реинкарнация", value: "372" }, - { label: "Реинкарнация в монстра", value: "310" }, - { label: "Реинкарнация в объект", value: "711" }, - { label: "Религии", value: "616" }, - { label: "Репортеры", value: "781" }, - { label: "Ресторан", value: "680" }, - { label: "Решительный главный герой", value: "242" }, - { label: "Робкий главный герой", value: "763" }, - { label: "Родитель одиночка", value: "708" }, - { label: "Родительский комплекс", value: "587" }, - { label: "Родословная", value: "239" }, - { label: "Романтическая эротика", value: "132" }, - { label: "Романтический подсюжет", value: "271" }, - { label: "Рост персонажа", value: "215" }, - { label: "Рыцари", value: "260" }, - { label: "Садистские персонажи", value: "674" }, - { label: "Самоотверженный главный герой", value: "747" }, - { label: "Самурай", value: "677" }, - { label: "Сборник коротких историй", value: "520" }, - { label: "Связанные сюжетные линии", value: "535" }, - { label: "Святые", value: "752" }, - { label: "Священники", value: "413" }, - { label: "Сдержанный главный герой", value: "762" }, - { label: "Секретные организации", value: "417" }, - { label: "Секреты", value: "626" }, - { label: "Секс рабы", value: "779" }, - { label: "Семейный конфликт", value: "757" }, - { label: "Семь добродетелей", value: "334" }, - { label: "Семь смертных грехов", value: "253" }, - { label: "Семья", value: "347" }, - { label: "Сёнэн-ай подсюжет", value: "690" }, - { label: "Серийные убийцы", value: "557" }, - { label: "Сестринский комплекс", value: "558" }, - { label: "Сила духа", value: "373" }, - { label: "Сила, требующая платы за польз", value: "579" }, - { label: "Сильная пара", value: "228" }, - { label: "Сильный в сильнейшего", value: "442" }, - { label: "Сильный любовный интерес", value: "273" }, - { label: "Синдром восьмиклассника", value: "211" }, - { label: "Сироты", value: "319" }, - { label: "Система уровней", value: "305" }, - { label: "Системный администратор", value: "538" }, - { label: "Сказка", value: "126" }, - { label: "Скрытие истинной личности", value: "451" }, - { label: "Скрытие истинных способностей", value: "348" }, - { label: "Скрытный главный герой", value: "252" }, - { label: "Скрытые способности", value: "247" }, - { label: "Скульпторы", value: "448" }, - { label: "Слабо выраженная романтическая", value: "318" }, - { label: "Слабый главный герой", value: "298" }, - { label: "Слепой главный герой", value: "794" }, - { label: "Слуги", value: "333" }, - { label: "Слэш", value: "131" }, - { label: "Смерть", value: "175" }, - { label: "Смерть близких", value: "444" }, - { label: "Собственнические персонажи", value: "227" }, - { label: "Современная проза", value: "150" }, - { label: "Современность", value: "167" }, - { label: "Современный любовный роман", value: "137" }, - { label: "Сожительство", value: "544" }, - { label: "Создание армии", value: "287" }, - { label: "Создание артефактов", value: "382" }, - { label: "Создание клана", value: "513" }, - { label: "Создание королевства", value: "293" }, - { label: "Создание навыков", value: "337" }, - { label: "Создание секты", value: "469" }, - { label: "Солдаты/военные", value: "193" }, - { label: "Сон", value: "622" }, - { label: "Состоятельные персонажи", value: "190" }, - { label: "Социальная иерархия по силе", value: "255" }, - { label: "Социальная фантастика", value: "148" }, - { label: "Социальные изгои", value: "542" }, - { label: "Спасение мира", value: "638" }, - { label: "Специальные способности", value: "179" }, - { label: "Спокойный главный герой", value: "160" }, - { label: "Справедливый главный герой", value: "719" }, - { label: "Средневековье", value: "296" }, - { label: "Ссорящаяся пара", value: "383" }, - { label: "Сталкеры", value: "710" }, - { label: "Старение", value: "299" }, - { label: "Стимпанк", value: "139" }, - { label: "Стоические персонажи", value: "509" }, - { label: "Стокгольмский синдром", value: "675" }, - { label: "Стратег", value: "495" }, - { label: "Стратегические битвы", value: "272" }, - { label: "Стратегия", value: "798" }, - { label: "Стрелки", value: "522" }, - { label: "Стрельба из лука", value: "461" }, - { label: "Студенческий совет", value: "551" }, - { label: "Судьба", value: "364" }, - { label: "Суккубы", value: "545" }, - { label: "Супер герои", value: "799" }, - { label: "Суровая подготовка", value: "356" }, - { label: "Таинственная болезнь", value: "195" }, - { label: "Таинственное прошлое", value: "358" }, - { label: "Тайная личность", value: "399" }, - { label: "Тайные отношения", value: "768" }, - { label: "Танцоры", value: "782" }, - { label: "Телохранители", value: "516" }, - { label: "Темное фэнтези", value: "106" }, - { label: "Тентакли", value: "712" }, - { label: "Террористы", value: "574" }, - { label: "Технологический разрыв", value: "658" }, - { label: "Тихие персонажи", value: "600" }, - { label: "Толстый главный герой", value: "389" }, - { label: "Торговцы", value: "489" }, - { label: "Травля/буллинг", value: "210" }, - { label: "Травник", value: "724" }, - { label: "Трагическое прошлое", value: "276" }, - { label: "Трансплантация воспоминаний", value: "449" }, - { label: "Триллер", value: "134" }, - { label: "Трудолюбивый главный герой", value: "164" }, - { label: "Тюрьма", value: "541" }, - { label: "Убийства", value: "205" }, - { label: "Убийцы", value: "345" }, - { label: "Убийцы драконов", value: "646" }, - { label: "Уверенный главный герой", value: "363" }, - { label: "Удачливый главный герой", value: "478" }, - { label: "Ужасы", value: "112" }, - { label: "Укротитель монстров", value: "422" }, - { label: "Умения из прошлой жизни", value: "371" }, - { label: "Умная пара", value: "554" }, - { label: "Умный главный герой", value: "161" }, - { label: "Уникальная техника Культивации", value: "350" }, - { label: "Уникальное оружие", value: "426" }, - { label: "Управление бизнесом", value: "403" }, - { label: "Управление временем", value: "279" }, - { label: "Управление кровью", value: "753" }, - { label: "Упрямый главный герой", value: "695" }, - { label: "Уродливый главный герой", value: "766" }, - { label: "Ускоренный рост", value: "390" }, - { label: "Усыновленные дети", value: "543" }, - { label: "Усыновленный главный герой", value: "486" }, - { label: "Уход за детьми", value: "474" }, - { label: "Учителя", value: "431" }, - { label: "Фамильяры", value: "596" }, - { label: "Фанатизм", value: "650" }, - { label: "Фантастические существа", value: "410" }, - { label: "Фантастический детектив", value: "115" }, - { label: "Фанфик", value: "113" }, - { label: "Фанфикшн", value: "464" }, - { label: "Фармацевт", value: "728" }, - { label: "Фарминг", value: "458" }, - { label: "Феи", value: "316" }, - { label: "Фелляция", value: "631" }, - { label: "Фемслэш", value: "127" }, - { label: "Фениксы", value: "454" }, - { label: "Фетиш груди", value: "559" }, - { label: "Философия", value: "208" }, - { label: "Фильмы", value: "479" }, - { label: "Флэшбэки", value: "585" }, - { label: "Фобии", value: "220" }, - { label: "Фольклор", value: "529" }, - { label: "Футанари", value: "619" }, - { label: "Футуристический сеттинг", value: "460" }, - { label: "Фэнтези мир", value: "244" }, - { label: "Хакеры", value: "475" }, - { label: "Харизматический герой", value: "467" }, - { label: "Хикикомори/Затворники", value: "524" }, - { label: "Хитроумный главный герой", value: "224" }, - { label: "Хозяин подземелий", value: "608" }, - { label: "Холодный главный герой", value: "354" }, - { label: "Хорошие отношения с семьей", value: "566" }, - { label: "Хранители могил", value: "191" }, - { label: "Целители", value: "465" }, - { label: "Цзянши", value: "740" }, - { label: "Цундэрэ", value: "510" }, - { label: "Чаты", value: "629" }, - { label: "Человеческое оружие", value: "580" }, - { label: "Честный главный герой", value: "341" }, - { label: "Читы", value: "339" }, - { label: "Шантаж", value: "584" }, - { label: "Шеф-повар", value: "340" }, - { label: "Шикигами", value: "598" }, - { label: "Школа только для девочек", value: "668" }, - { label: "Шота", value: "573" }, - { label: "Шоу-бизнес", value: "481" }, - { label: "Шпионский детектив", value: "118" }, - { label: "Шпионы", value: "614" }, - { label: "Эволюция", value: "304" }, - { label: "Эгоистичный главный герой", value: "594" }, - { label: "Эйдетическая память", value: "468" }, - { label: "Экзорсизм", value: "564" }, - { label: "Экономика", value: "553" }, - { label: "Эксгибиционизм", value: "673" }, - { label: "Эксперименты с людьми", value: "248" }, - { label: "Элементальная магия", value: "471" }, - { label: "Эльфы", value: "284" }, - { label: "Эмоционально слабый гг", value: "770" }, - { label: "Эпизодический", value: "649" }, - { label: "Эпическое фэнтези", value: "109" }, - { label: "Эротическая фантастика", value: "129" }, - { label: "Эротический фанфик", value: "128" }, - { label: "Эротическое фэнтези", value: "130" }, - { label: "Юмористическая фантастика", value: "143" }, - { label: "Юмористическое фэнтези", value: "108" }, - { label: "Юный любовный интерес", value: "511" }, - { label: "Яды", value: "484" }, - { label: "Языкастые персонажи", value: "480" }, - { label: "Языковой барьер", value: "182" }, - { label: "Яндере", value: "314" }, - { label: "Японские силы самообороны", value: "610" }, - { label: "Ярко выраженная романтика", value: "365" }, - { label: "R-15 Японское возрастное огр.", value: "332" }, - { label: "R-18", value: "424" }, - ], - type: filterInputs_1.FilterTypes.ExcludableCheckboxGroup, - }, - types: { - label: "Типы:", - value: [], - options: [ - { label: "Авторское", value: "1" }, - { label: "Другое", value: "7" }, - { label: "Запад", value: "5" }, - { label: "Китай", value: "4" }, - { label: "Корея", value: "3" }, - { label: "Фанфики", value: "6" }, - { label: "Япония", value: "2" }, - ], - type: filterInputs_1.FilterTypes.CheckboxGroup, - }, - status: { - label: "Статус проекта:", - value: [], - options: [ - { label: "Анонс", value: "4" }, - { label: "Закончен", value: "0" }, - { label: "Заморожен", value: "2" }, - { label: "Лицензировано", value: "5" }, - { label: "Нет переводчика", value: "3" }, - { label: "Продолжается", value: "1" }, - ], - type: filterInputs_1.FilterTypes.CheckboxGroup, - }, - age_limit: { - label: "Возрастной рейтинг:", - value: [], - options: [ - { label: "16+", value: "1" }, - { label: "18+", value: "2" }, - { label: "Для всех", value: "0" }, - ], - type: filterInputs_1.FilterTypes.CheckboxGroup, - }, - }; - } - ReN.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w; - var showLatestNovels = _a.showLatestNovels, filters = _a.filters; - return __awaiter(this, void 0, void 0, function () { - var url, result, body, novels; - var _this = this; - return __generator(this, function (_x) { - switch (_x.label) { - case 0: - url = this.site + "/api/search/catalog/?count=30&ordering="; - url += ((_b = filters === null || filters === void 0 ? void 0 : filters.order) === null || _b === void 0 ? void 0 : _b.value) - ? filters.order.value.replace("+", "") - : "-"; - url += showLatestNovels ? "chapter_date" : ((_c = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _c === void 0 ? void 0 : _c.value) || "rating"; - if ((_f = (_e = (_d = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _d === void 0 ? void 0 : _d.value) === null || _e === void 0 ? void 0 : _e.include) === null || _f === void 0 ? void 0 : _f.length) { - url += filters.genres.value.include.map(function (i) { return "&genres=" + i; }).join(""); - } - if ((_j = (_h = (_g = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _g === void 0 ? void 0 : _g.value) === null || _h === void 0 ? void 0 : _h.exclude) === null || _j === void 0 ? void 0 : _j.length) { - url += filters.genres.value.exclude - .map(function (i) { return "&exclude_genres=" + i; }).join(""); - } - if ((_l = (_k = filters === null || filters === void 0 ? void 0 : filters.status) === null || _k === void 0 ? void 0 : _k.value) === null || _l === void 0 ? void 0 : _l.length) { - url += filters.status.value.map(function (i) { return "&status=" + i; }).join(""); - } - if ((_o = (_m = filters === null || filters === void 0 ? void 0 : filters.types) === null || _m === void 0 ? void 0 : _m.value) === null || _o === void 0 ? void 0 : _o.length) { - url += filters.types.value.map(function (i) { return "&types=" + i; }).join(""); - } - if ((_r = (_q = (_p = filters === null || filters === void 0 ? void 0 : filters.categories) === null || _p === void 0 ? void 0 : _p.value) === null || _q === void 0 ? void 0 : _q.include) === null || _r === void 0 ? void 0 : _r.length) { - url += filters.categories.value.include - .map(function (i) { return "&categories=" + i; }).join(""); - } - if ((_u = (_t = (_s = filters === null || filters === void 0 ? void 0 : filters.categories) === null || _s === void 0 ? void 0 : _s.value) === null || _t === void 0 ? void 0 : _t.exclude) === null || _u === void 0 ? void 0 : _u.length) { - url += filters.categories.value.exclude - .map(function (i) { return "&exclude_categories=" + i; }).join(""); - } - if ((_w = (_v = filters === null || filters === void 0 ? void 0 : filters.age_limit) === null || _v === void 0 ? void 0 : _v.value) === null || _w === void 0 ? void 0 : _w.length) { - url += filters.age_limit.value.map(function (i) { return "&age_limit=" + i; }).join(""); - } - url += "&page=" + pageNo; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _x.sent(); - return [4 /*yield*/, result.json()]; - case 2: - body = (_x.sent()); - novels = []; - body.content.forEach(function (novel) { - var _a, _b; - return novels.push({ - name: novel.main_name || novel.secondary_name, - cover: _this.site + (((_a = novel.img) === null || _a === void 0 ? void 0 : _a.high) || ((_b = novel.img) === null || _b === void 0 ? void 0 : _b.mid) || novel.img.low), - url: _this.site + "/novel/" + novel.dir, - }); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - ReN.prototype.parseNovelAndChapters = function (novelUrl) { - var _a, _b, _c, _d, _e, _f; - return __awaiter(this, void 0, void 0, function () { - var novelID, result, body, novel, tags, all, branch_id, chapters, i, chapterResult, volumes; - var _this = this; - return __generator(this, function (_g) { - switch (_g.label) { - case 0: - novelID = novelUrl.split("/")[4]; - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "/api/titles/" + novelID)]; - case 1: - result = _g.sent(); - return [4 /*yield*/, result.json()]; - case 2: - body = (_g.sent()); - novel = { - url: novelUrl, - name: body.content.main_name || body.content.secondary_name, - summary: body.content.description, - cover: this.site + - (((_a = body.content.img) === null || _a === void 0 ? void 0 : _a.high) || - ((_b = body.content.img) === null || _b === void 0 ? void 0 : _b.mid) || - body.content.img.low), - status: body.content.status.name === "Продолжается" - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed, - }; - tags = [(_c = body.content) === null || _c === void 0 ? void 0 : _c.genres, (_d = body.content) === null || _d === void 0 ? void 0 : _d.categories] - .flat() - .map(function (tags) { return tags === null || tags === void 0 ? void 0 : tags.name; }) - .filter(function (tags) { return tags; }); - if (tags.length) { - novel.genres = tags.join(","); - } - all = Math.floor(body.content.count_chapters / 100 + 1); - branch_id = ((_f = (_e = body.content.branches) === null || _e === void 0 ? void 0 : _e[0]) === null || _f === void 0 ? void 0 : _f.id) || body.content.id; - chapters = []; - i = 0; - _g.label = 3; - case 3: - if (!(i < all)) return [3 /*break*/, 7]; - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + - "/api/titles/chapters/?branch_id=" + - branch_id + - "&count=100&page=" + - (i + 1))]; - case 4: - chapterResult = _g.sent(); - return [4 /*yield*/, chapterResult.json()]; - case 5: - volumes = (_g.sent()); - volumes.content.forEach(function (chapter) { - var _a; - if (!chapter.is_paid || chapter.is_bought) { - chapters.push({ - name: (_a = "\u0422\u043E\u043C ".concat(chapter.tome, " \u0413\u043B\u0430\u0432\u0430 ").concat(chapter.chapter, " ").concat(chapter.name)) === null || _a === void 0 ? void 0 : _a.trim(), - releaseTime: (0, dayjs_1.default)(chapter.upload_date).format("LLL"), - url: "".concat(_this.site, "/novel/").concat(novelID, "/").concat(chapter.id, "/"), - }); - } - }); - _g.label = 6; - case 6: - i++; - return [3 /*break*/, 3]; - case 7: - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - ReN.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = this.site + "/api/titles/chapters/" + chapterUrl.split("/")[5]; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.json()]; - case 2: - body = (_a.sent()); - return [2 /*return*/, body.content.content]; - } - }); - }); - }; - ReN.prototype.searchNovels = function (searchTerm, pageNo) { - if (pageNo === void 0) { pageNo = 1; } - return __awaiter(this, void 0, void 0, function () { - var url, result, body, novels; - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = "".concat(this.site, "/api/search/?query=").concat(searchTerm, "&count=100&field=titles&page=").concat(pageNo); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.json()]; - case 2: - body = (_a.sent()); - novels = []; - body.content.forEach(function (novel) { - var _a, _b; - return novels.push({ - name: novel.main_name || novel.secondary_name, - cover: _this.site + (((_a = novel.img) === null || _a === void 0 ? void 0 : _a.high) || ((_b = novel.img) === null || _b === void 0 ? void 0 : _b.mid) || novel.img.low), - url: _this.site + "/novel/" + novel.dir, - }); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - return ReN; -}()); -exports.default = new ReN(); diff --git a/.js/plugins/russian/СвободныйМирРанобэ[ifreedom].js b/.js/plugins/russian/СвободныйМирРанобэ[ifreedom].js deleted file mode 100644 index 3a8f390..0000000 --- a/.js/plugins/russian/СвободныйМирРанобэ[ifreedom].js +++ /dev/null @@ -1,198 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var novelStatus_1 = require("@libs/novelStatus"); -var cheerio_1 = require("cheerio"); -var IfreedomPlugin = /** @class */ (function () { - function IfreedomPlugin(metadata) { - this.fetchImage = fetch_1.fetchFile; - this.id = metadata.id; - this.name = metadata.sourceName + "[ifreedom]"; - this.icon = "multisrc/ifreedom/icons/".concat(metadata.id, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.filters = metadata.filters; - } - IfreedomPlugin.prototype.popularNovels = function (page, _a) { - var _b, _c, _d, _e; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var url, body, loadedCheerio, novels; - return __generator(this, function (_f) { - switch (_f.label) { - case 0: - url = this.site + "/vse-knigi/?sort=" + - (showLatestNovels ? "По дате обновления" : ((_b = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _b === void 0 ? void 0 : _b.value) || "По рейтингу"); - if (((_c = filters === null || filters === void 0 ? void 0 : filters.status) === null || _c === void 0 ? void 0 : _c.value) instanceof Array) { - url += filters.status.value.map(function (i) { return "&status[]=" + i; }).join(""); - } - if (((_d = filters === null || filters === void 0 ? void 0 : filters.lang) === null || _d === void 0 ? void 0 : _d.value) instanceof Array) { - url += filters.lang.value.map(function (i) { return "&lang[]=" + i; }).join(""); - } - if (((_e = filters === null || filters === void 0 ? void 0 : filters.genre) === null || _e === void 0 ? void 0 : _e.value) instanceof Array) { - url += filters.genre.value.map(function (i) { return "&genre[]=" + i; }).join(""); - } - url += "&bpage=" + page; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _f.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = loadedCheerio("div.one-book-home > div.img-home a") - .map(function (index, element) { return ({ - name: loadedCheerio(element).attr("title") || "", - cover: loadedCheerio(element).find("img").attr("src"), - url: loadedCheerio(element).attr("href") || "", - }); }) - .get() - .filter(function (novel) { return novel.name && novel.url; }); - return [2 /*return*/, novels]; - } - }); - }); - }; - IfreedomPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, novel, chapters; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { - url: novelUrl, - name: loadedCheerio(".entry-title").text(), - cover: loadedCheerio(".img-ranobe > img").attr("src"), - summary: loadedCheerio('meta[name="description"]').attr("content"), - }; - loadedCheerio("div.data-ranobe").each(function () { - switch (loadedCheerio(this).find("b").text()) { - case "Автор": - novel.author = loadedCheerio(this) - .find("div.data-value") - .text() - .trim(); - break; - case "Жанры": - novel.genres = loadedCheerio("div.data-value > a") - .map(function (index, element) { var _a; return (_a = loadedCheerio(element).text()) === null || _a === void 0 ? void 0 : _a.trim(); }) - .get() - .join(","); - break; - case "Статус книги": - novel.status = loadedCheerio("div.data-value") - .text() - .includes("активен") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - if (novel.author == "Не указан") - delete novel.author; - chapters = []; - loadedCheerio("div.li-ranobe").each(function () { - var name = loadedCheerio(this).find("a").text(); - var url = loadedCheerio(this).find("a").attr("href"); - if (!loadedCheerio(this).find("label.buy-ranobe").length && name && url) { - var releaseTime = loadedCheerio(this) - .find("div.li-col2-ranobe").text().trim(); - chapters.push({ name: name, releaseTime: releaseTime, url: url }); - } - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - IfreedomPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".entry-content img").each(function () { - var _a, _b; - var srcset = (_b = (_a = loadedCheerio(this).attr("srcset")) === null || _a === void 0 ? void 0 : _a.split) === null || _b === void 0 ? void 0 : _b.call(_a, " "); - if (srcset === null || srcset === void 0 ? void 0 : srcset.length) { - var bestlink = srcset.filter(function (url) { return url.startsWith("http"); }).unshift(); - if (typeof bestlink == 'string') - loadedCheerio(this).attr("src", bestlink); - } - }); - chapterText = loadedCheerio(".entry-content").html() || ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - IfreedomPlugin.prototype.searchNovels = function (searchTerm, page) { - if (page === void 0) { page = 1; } - return __awaiter(this, void 0, void 0, function () { - var url, result, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = this.site + "/vse-knigi/?searchname=" + searchTerm + "&bpage=" + page; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - result = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(result); - novels = loadedCheerio("div.one-book-home > div.img-home a") - .map(function (index, element) { return ({ - name: loadedCheerio(element).attr("title") || "", - cover: loadedCheerio(element).find("img").attr("src"), - url: loadedCheerio(element).attr("href") || "", - }); }) - .get() - .filter(function (novel) { return novel.name && novel.url; }); - return [2 /*return*/, novels]; - } - }); - }); - }; - return IfreedomPlugin; -}()); -var plugin = new IfreedomPlugin({ "id": "ifreedom", "sourceSite": "https://ifreedom.su", "sourceName": "Свободный Мир Ранобэ", "filters": { "sort": { "type": filterInputs_1.FilterTypes.Picker, "label": "Сортировка:", "options": [{ "label": "По дате добавления", "value": "По дате добавления" }, { "label": "По дате обновления", "value": "По дате обновления" }, { "label": "По количеству глав", "value": "По количеству глав" }, { "label": "По названию", "value": "По названию" }, { "label": "По просмотрам", "value": "По просмотрам" }, { "label": "По рейтингу", "value": "По рейтингу" }], "value": "По рейтингу" }, "status": { "type": filterInputs_1.FilterTypes.CheckboxGroup, "label": "Статус:", "options": [{ "label": "Перевод активен", "value": "Перевод активен" }, { "label": "Перевод приостановлен", "value": "Перевод приостановлен" }, { "label": "Произведение завершено", "value": "Произведение завершено" }], "value": [] }, "lang": { "type": filterInputs_1.FilterTypes.CheckboxGroup, "label": "Язык:", "options": [{ "label": "Английский", "value": "Английский" }, { "label": "Китайский", "value": "Китайский" }, { "label": "Корейский", "value": "Корейский" }, { "label": "Японский", "value": "Японский" }], "value": [] }, "genre": { "type": filterInputs_1.FilterTypes.CheckboxGroup, "label": "Жанры:", "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": "Сёнэн-ай" }, { "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": "Adult", "value": "Adult" }, { "label": "Mature", "value": "Mature" }, { "label": "Xianxia", "value": "Xianxia" }, { "label": "Xuanhuan", "value": "Xuanhuan" }], "value": [] } } }); -exports.default = plugin; diff --git a/.js/plugins/spanish/hasutl.js b/.js/plugins/spanish/hasutl.js deleted file mode 100644 index 85ffbad..0000000 --- a/.js/plugins/spanish/hasutl.js +++ /dev/null @@ -1,195 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var cheerio_1 = require("cheerio"); -var fetch_1 = require("@libs/fetch"); -var HasulTL = /** @class */ (function () { - function HasulTL() { - this.id = "HasuTL"; - this.name = "Hasu Translations"; - this.icon = "src/es/hasutl/icon.png"; - this.site = "https://hasutl.wordpress.com/"; - this.version = "1.0.0"; - this.baseUrl = this.site; - } - HasulTL.prototype.popularNovels = function (pageNo, options) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = this.baseUrl + "light-novels-activas/"; - return [4 /*yield*/, fetch(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio("div.wp-block-columns").each(function () { - var novelName = loadedCheerio(this).find(".wp-block-button").text(); - var novelCover = loadedCheerio(this).find("img").attr("src"); - var novelUrl = loadedCheerio(this) - .find(".wp-block-button > a") - .attr("href"); - if (!novelUrl) - return; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - HasulTL.prototype.parseNovelAndChapters = function (novelUrl) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novel, novelSummary, novelChapters; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = novelUrl; - return [4 /*yield*/, fetch(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { - url: url, - }; - novel.url = novelUrl; - novel.name = loadedCheerio(".post-header").text(); - novel.cover = loadedCheerio(".featured-media > img").attr("src"); - novelSummary = loadedCheerio(".post-content").find("p").html(); - novel.summary = novelSummary; - novelChapters = []; - loadedCheerio(".wp-block-media-text__content") - .find("a") - .each(function () { - var chapterName = loadedCheerio(this).text().trim(); - var releaseDate = null; - var chapterUrl = loadedCheerio(this).attr("href"); - if (!chapterUrl) - return; - var chapter = { - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }; - novelChapters.push(chapter); - }); - novel.chapters = novelChapters; - return [2 /*return*/, novel]; - } - }); - }); - }; - HasulTL.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = chapterUrl; - return [4 /*yield*/, fetch(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".post-content").html() || ''; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - HasulTL.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = "".concat(this.baseUrl, "?s=").concat(searchTerm, "&post_type=wp-manga"); - return [4 /*yield*/, fetch(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio(".post-container").each(function () { - var novelName = loadedCheerio(this).find(".post-header").text(); - if (!novelName.includes("Cap") && - !novelName.includes("Vol") && - !novelName.includes("Light Novels")) { - var novelCover = loadedCheerio(this).find("img").attr("src"); - var novelUrl = loadedCheerio(this).find("a").attr("href"); - if (!novelUrl) - return; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - } - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - HasulTL.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2 /*return*/, (0, fetch_1.fetchFile)(url)]; - }); - }); - }; - return HasulTL; -}()); -exports.default = new HasulTL(); diff --git a/.js/plugins/spanish/novelasligera.js b/.js/plugins/spanish/novelasligera.js deleted file mode 100644 index 9270555..0000000 --- a/.js/plugins/spanish/novelasligera.js +++ /dev/null @@ -1,239 +0,0 @@ -"use strict"; -var __assign = (this && this.__assign) || function () { - __assign = Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); -}; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var cheerio_1 = require("cheerio"); -var fetch_1 = require("@libs/fetch"); -var Ligera = /** @class */ (function () { - function Ligera() { - this.id = "ligera.com"; - this.name = "Novelas Ligera"; - this.icon = "src/es/novelasligera/icon.png"; - this.site = "https://novelasligera.com/"; - this.version = "1.0.0"; - this.baseUrl = this.site; - } - Ligera.prototype.popularNovels = function (pageNo, options) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = this.baseUrl; - return [4 /*yield*/, fetch(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio(".elementor-column").each(function () { - var novelName = loadedCheerio(this) - .find(".widget-image-caption.wp-caption-text") - .text(); - if (novelName) { - var novelCover = loadedCheerio(this) - .find("a > img") - .attr("data-lazy-src"); - var novelUrl = loadedCheerio(this).find("a").attr("href"); - if (!novelUrl) - return; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - } - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - Ligera.prototype.parseNovelAndChapters = function (novelUrl) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novel, novelChapters; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = this.baseUrl + "novela/" + novelUrl; - return [4 /*yield*/, fetch(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { url: url }; - novel.name = loadedCheerio("h1").text(); - novel.cover = loadedCheerio(".elementor-widget-container") - .find("img") - .attr("src"); - loadedCheerio(".elementor-row") - .find("p") - .each(function () { - if (loadedCheerio(this).text().includes("Autor:")) { - novel.author = loadedCheerio(this) - .text() - .replace("Autor:", "") - .trim(); - } - if (loadedCheerio(this).text().includes("Estado:")) { - novel.status = loadedCheerio(this) - .text() - .replace("Estado: ", "") - .trim(); - } - if (loadedCheerio(this).text().includes("Género:")) { - loadedCheerio(this).find("span").remove(); - novel.genres = loadedCheerio(this) - .text() - .replace(/,\s/g, ","); - } - }); - novel.summary = loadedCheerio(".elementor-text-editor.elementor-clearfix").text(); - novelChapters = []; - loadedCheerio(".elementor-accordion-item").remove(); - loadedCheerio(".elementor-tab-content") - .find("li") - .each(function () { - var chapterName = loadedCheerio(this).text(); - var releaseDate = null; - var chapterUrl = loadedCheerio(this).find("a").attr("href"); - if (!chapterUrl) - return; - var chapter = { - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }; - novelChapters.push(chapter); - }); - novel.chapters = novelChapters; - return [2 /*return*/, novel]; - } - }); - }); - }; - Ligera.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = chapterUrl; - return [4 /*yield*/, fetch(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".osny-nightmode.osny-nightmode--left").remove(); - loadedCheerio(".code-block.code-block-1").remove(); - loadedCheerio(".adsb30").remove(); - loadedCheerio(".saboxplugin-wrap").remove(); - loadedCheerio(".wp-post-navigation").remove(); - chapterText = loadedCheerio(".entry-content").html() || ''; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - Ligera.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = this.baseUrl + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, fetch(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio(".inside-article").each(function () { - var novelCover = loadedCheerio(this).find("img").attr("src"); - var novelUrl = loadedCheerio(this).find("a").attr("href"); - var novelName; - if (novelUrl) { - novelName = novelUrl.replace(/-/g, " ").replace(/^./, function (x) { - return x.toUpperCase(); - }); - } - novelUrl += "/"; - if (!novelName || !novelUrl) - return; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - novels = [__assign({}, novels[1])]; - return [2 /*return*/, novels]; - } - }); - }); - }; - Ligera.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2 /*return*/, (0, fetch_1.fetchFile)(url)]; - }); - }); - }; - return Ligera; -}()); -exports.default = new Ligera(); diff --git a/.js/plugins/spanish/novelawuxia.js b/.js/plugins/spanish/novelawuxia.js deleted file mode 100644 index 539f161..0000000 --- a/.js/plugins/spanish/novelawuxia.js +++ /dev/null @@ -1,245 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var ReinoWuxia = /** @class */ (function () { - function ReinoWuxia() { - this.id = "awuxia.com"; - this.name = "ReinoWuxia"; - this.icon = "src/es/novelawuxia/icon.png"; - this.version = "1.0.0"; - this.site = "http://www.reinowuxia.com/"; - this.baseUrl = this.site; - } - ReinoWuxia.prototype.getNovelName = function (y) { - return y === null || y === void 0 ? void 0 : y.replace(/-/g, " ").replace(/(?:^|\s)\S/g, function (a) { return a.toUpperCase(); }); - }; - ReinoWuxia.prototype.popularNovels = function (pageNo, options) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novels; - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = this.baseUrl + "p/todas-las-novelas.html"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url, { - method: "GET", - })]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio(".post-body.entry-content") - .find("a") - .each(function (idx, ele) { - var _a, _b; - var novelName = (_b = (_a = loadedCheerio(ele) - .attr("href")) === null || _a === void 0 ? void 0 : _a.split("/").pop()) === null || _b === void 0 ? void 0 : _b.replace(".html", ""); - novelName = _this.getNovelName(novelName); - var novelCover = loadedCheerio(ele).find("img").attr("src"); - var novelUrl = loadedCheerio(ele).attr("href"); - if (!novelName || !novelUrl) - return; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - ReinoWuxia.prototype.parseNovelAndChapters = function (novelUrl) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novel, novelChapters; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = novelUrl; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { url: url }; - novel.name = loadedCheerio("h1.post-title").text().trim(); - novel.cover = loadedCheerio("div.separator").find("a").attr("href"); - novel.status = ""; - loadedCheerio("div > b").each(function () { - var detailName = loadedCheerio(this).text(); - var detail = loadedCheerio(this)[0].nextSibling; - if (detailName && detail) { - var text = loadedCheerio(detail).text(); - if (detailName.includes("Autor")) { - novel.author = text.replace("Autor:", ""); - } - if (detailName.includes("Estatus")) { - novel.status = text.replace("Estatus: ", ""); - } - if (detailName.includes("Géneros:")) { - novel.genres = text - .replace("Géneros: ", "") - .replace(/,\s/g, ","); - } - } - }); - novelChapters = []; - loadedCheerio("div").each(function () { - var detailName = loadedCheerio(this).text(); - if (detailName.includes("Sinopsis")) { - novel.summary = - loadedCheerio(this).next().text() !== "" - ? loadedCheerio(this) - .next() - .text() - .replace("Sinopsis", "") - .trim() - : loadedCheerio(this) - .next() - .next() - .text() - .replace("Sinopsis", "") - .trim(); - } - if (detailName.includes("Lista de Capítulos")) { - loadedCheerio(this) - .find("a") - .each(function (res) { - var chapterName = loadedCheerio(this).text(); - var chapterUrl = loadedCheerio(this).attr("href"); - var releaseDate = null; - if (chapterName && - chapterUrl && - !novelChapters.some(function (chap) { return chap.name === chapterName; })) { - var chapter = { - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }; - novelChapters.push(chapter); - } - }); - } - }); - novel.chapters = novelChapters; - return [2 /*return*/, novel]; - } - }); - }); - }; - ReinoWuxia.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = chapterUrl; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".post-body.entry-content").html() || ''; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - ReinoWuxia.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novels; - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = "".concat(this.baseUrl, "search?q=").concat(searchTerm); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio(".date-outer").each(function (idx, ele) { - var _a, _b; - var novelName = (_b = (_a = loadedCheerio(ele) - .find("a") - .attr("href")) === null || _a === void 0 ? void 0 : _a.split("/").pop()) === null || _b === void 0 ? void 0 : _b.replace(/-capitulo(.*?).html/, ""); - var novelUrl = novelName + ".html/"; - novelName = _this.getNovelName(novelName); - var exists = novels.some(function (novel) { return novel.name === novelName; }); - if (!exists) { - var novelCover = defaultCover_1.defaultCover; - if (!novelUrl || !novelName) - return; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - } - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - ReinoWuxia.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2 /*return*/, (0, fetch_1.fetchFile)(url)]; - }); - }); - }; - return ReinoWuxia; -}()); -exports.default = new ReinoWuxia(); diff --git a/.js/plugins/spanish/oasistranslations.js b/.js/plugins/spanish/oasistranslations.js deleted file mode 100644 index 168e202..0000000 --- a/.js/plugins/spanish/oasistranslations.js +++ /dev/null @@ -1,220 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.icon = exports.version = exports.site = exports.name = exports.id = void 0; -var fetch_1 = require("@libs/fetch"); -var cheerio_1 = require("cheerio"); -exports.id = "oasisTL.wp"; -exports.name = "Oasis Translations"; -exports.site = "https://oasistranslations.wordpress.com/"; -exports.version = "1.0.0"; -exports.icon = "src/es/oasistranslations/icon.png"; -var baseUrl = exports.site; -var Oasis = /** @class */ (function () { - function Oasis() { - this.id = "oasisTL.wp"; - this.name = "Oasis Translations"; - this.site = "https://oasistranslations.wordpress.com/"; - this.version = "1.0.0"; - this.icon = "src/es/oasistranslations/icon.png"; - } - Oasis.prototype.popularNovels = function (pageNo, options) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = baseUrl; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio(".menu-item-1819") - .find(".sub-menu > li") - .each(function () { - var novelName = loadedCheerio(this).text(); - if (!novelName.match(/Activas|Finalizadas|Dropeadas/)) { - var novelCover = loadedCheerio(this).find("img").attr("src"); - var novelUrl = loadedCheerio(this).find("a").attr("href"); - if (!novelUrl) - return; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - } - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - Oasis.prototype.parseNovelAndChapters = function (novelUrl) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novel, novelChapters; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = novelUrl; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { url: url }; - novel.name = loadedCheerio("h1.entry-title") - .text() - .replace(/[\t\n]/g, "") - .trim(); - novel.cover = loadedCheerio('img[loading="lazy"]').attr("src"); - loadedCheerio(".entry-content > p").each(function (res) { - var _a, _b; - if (loadedCheerio(this).text().includes("Autor")) { - var details = (_b = (_a = loadedCheerio(this).html()) === null || _a === void 0 ? void 0 : _a.match(/<\/strong>(.|\n)*?
/g)) === null || _b === void 0 ? void 0 : _b.map(function (detail) { return detail.replace(/|<\/strong>|
|:\s/g, ""); }); - novel.genres = ""; - if (details) { - novel.author = details[2]; - novel.genres = details[4].replace(/\s| /g, ""); - } - } - }); - // let novelSummary = $(this).next().html(); - novel.summary = ""; - novelChapters = []; - // if ($(".entry-content").find("li").length) { - loadedCheerio(".entry-content") - .find("a") - .each(function () { - var chapterUrl = loadedCheerio(this).attr("href"); - if (chapterUrl && chapterUrl.includes(baseUrl)) { - var chapterName = loadedCheerio(this).text(); - var releaseDate = null; - var chapter = { - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }; - novelChapters.push(chapter); - } - }); - novel.chapters = novelChapters; - return [2 /*return*/, novel]; - } - }); - }); - }; - Oasis.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = chapterUrl; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio("div#jp-post-flair").remove(); - chapterText = loadedCheerio(".entry-content").html() || ''; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - Oasis.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - searchTerm = searchTerm.toLowerCase(); - url = baseUrl; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio(".menu-item-1819") - .find(".sub-menu > li") - .each(function () { - var novelName = loadedCheerio(this).text(); - if (!novelName.match(/Activas|Finalizadas|Dropeadas/)) { - var novelCover = loadedCheerio(this).find("img").attr("src"); - var novelUrl = loadedCheerio(this).find("a").attr("href"); - if (!novelUrl) - return; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - } - }); - novels = novels.filter(function (novel) { - return novel.name.toLowerCase().includes(searchTerm); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - Oasis.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2 /*return*/, (0, fetch_1.fetchFile)(url)]; - }); - }); - }; - return Oasis; -}()); -exports.default = new Oasis(); diff --git a/.js/plugins/spanish/skynovels.js b/.js/plugins/spanish/skynovels.js deleted file mode 100644 index c2d4e01..0000000 --- a/.js/plugins/spanish/skynovels.js +++ /dev/null @@ -1,194 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var SkyNovels = /** @class */ (function () { - function SkyNovels() { - this.id = "skynovels.net"; - this.name = "SkyNovels"; - this.site = "https://www.skynovels.net/"; - this.version = "1.0.0"; - this.icon = "src/es/skynovels/icon.png"; - this.baseUrl = this.site; - } - SkyNovels.prototype.popularNovels = function (pageNo, options) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var url, result, body, novels; - var _this = this; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - url = "https://api.skynovels.net/api/novels?&q"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _b.sent(); - return [4 /*yield*/, result.json()]; - case 2: - body = _b.sent(); - novels = []; - (_a = body.novels) === null || _a === void 0 ? void 0 : _a.forEach(function (res) { - var novelName = res.nvl_title; - var novelCover = "https://api.skynovels.net/api/get-image/" + - res.image + - "/novels/false"; - var novelUrl = _this.baseUrl + "novelas/" + res.id + "/" + res.nvl_name + "/"; - var novel = { name: novelName, url: novelUrl, cover: novelCover }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - SkyNovels.prototype.parseNovelAndChapters = function (novelUrl) { - var _a, _b, _c; - return __awaiter(this, void 0, void 0, function () { - var novelId, url, result, body, item, novel, genres, novelChapters; - return __generator(this, function (_d) { - switch (_d.label) { - case 0: - novelId = novelUrl.split("/")[4]; - url = "https://api.skynovels.net/api/novel/" + novelId + "/reading?&q"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _d.sent(); - return [4 /*yield*/, result.json()]; - case 2: - body = _d.sent(); - item = (_a = body === null || body === void 0 ? void 0 : body.novel) === null || _a === void 0 ? void 0 : _a[0]; - novel = { url: novelUrl }; - novel.name = item === null || item === void 0 ? void 0 : item.nvl_title; - novel.cover = - "https://api.skynovels.net/api/get-image/" + - (item === null || item === void 0 ? void 0 : item.image) + - "/novels/false"; - genres = []; - (_b = item === null || item === void 0 ? void 0 : item.genres) === null || _b === void 0 ? void 0 : _b.forEach(function (genre) { return genres.push(genre.genre_name); }); - novel.genres = genres.join(","); - novel.author = item === null || item === void 0 ? void 0 : item.nvl_writer; - novel.summary = item === null || item === void 0 ? void 0 : item.nvl_content; - novel.status = item === null || item === void 0 ? void 0 : item.nvl_status; - novelChapters = []; - (_c = item === null || item === void 0 ? void 0 : item.volumes) === null || _c === void 0 ? void 0 : _c.forEach(function (volume) { - var _a; - (_a = volume === null || volume === void 0 ? void 0 : volume.chapters) === null || _a === void 0 ? void 0 : _a.forEach(function (chapter) { - var chapterName = chapter.chp_index_title; - var releaseDate = new Date(chapter.createdAt).toDateString(); - var chapterUrl = novelUrl + chapter.id + "/" + chapter.chp_name; - var chap = { - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }; - novelChapters.push(chap); - }); - }); - novel.chapters = novelChapters; - return [2 /*return*/, novel]; - } - }); - }); - }; - SkyNovels.prototype.parseChapter = function (chapterUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var chapterId, url, result, body, item, chapterText; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - chapterId = chapterUrl.split("/")[6]; - url = "https://api.skynovels.net/api/novel-chapter/".concat(chapterId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _b.sent(); - return [4 /*yield*/, result.json()]; - case 2: - body = _b.sent(); - item = (_a = body === null || body === void 0 ? void 0 : body.chapter) === null || _a === void 0 ? void 0 : _a[0]; - chapterText = (item === null || item === void 0 ? void 0 : item.chp_content) || '404'; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - SkyNovels.prototype.searchNovels = function (searchTerm, pageNo) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var url, result, body, results, novels; - var _this = this; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - searchTerm = searchTerm.toLowerCase(); - url = "https://api.skynovels.net/api/novels?&q"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _b.sent(); - return [4 /*yield*/, result.json()]; - case 2: - body = _b.sent(); - ; - results = (_a = body === null || body === void 0 ? void 0 : body.novels) === null || _a === void 0 ? void 0 : _a.filter(function (novel) { - return novel.nvl_title.toLowerCase().includes(searchTerm); - }); - novels = []; - results === null || results === void 0 ? void 0 : results.forEach(function (res) { - var novelName = res.nvl_title; - var novelCover = "https://api.skynovels.net/api/get-image/" + - res.image + - "/novels/false"; - var novelUrl = _this.baseUrl + "novelas/" + res.id + "/" + res.nvl_name + "/"; - var novel = { name: novelName, url: novelUrl, cover: novelCover }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - SkyNovels.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2 /*return*/, (0, fetch_1.fetchFile)(url)]; - }); - }); - }; - return SkyNovels; -}()); -exports.default = new SkyNovels(); diff --git a/.js/plugins/spanish/tunovelaligera.js b/.js/plugins/spanish/tunovelaligera.js deleted file mode 100644 index 5aac9ca..0000000 --- a/.js/plugins/spanish/tunovelaligera.js +++ /dev/null @@ -1,402 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var cheerio_1 = require("cheerio"); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var TuNovelaLigera = /** @class */ (function () { - function TuNovelaLigera() { - this.id = "tunovelaligera"; - this.name = "TuNovelaLigera"; - this.icon = "src/es/tunovelaligera/icon.png"; - this.site = "https://tunovelaligera.com/"; - this.version = "1.0.0"; - this.filters = { - order: { - value: "?m_orderby=rating", - label: "Ordenado por", - options: [ - { label: "Lo mas reciente", value: "?m_orderby=latest" }, - { label: "A-Z", value: "?m_orderby=alphabet" }, - { label: "Clasificación", value: "?m_orderby=rating" }, - { label: "Trending", value: "?m_orderby=trending" }, - { label: "Mas visto", value: "?m_orderby=views" }, - { label: "Nuevo", value: "?m_orderby=new-manga" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - genres: { - value: "", - label: "Generos", - options: [ - { label: "None", value: "" }, - { label: "Acción", value: "accion" }, - { label: "Adulto", value: "adulto" }, - { label: "Artes Marciales", value: "artes-marciales" }, - { label: "Aventura", value: "aventura" }, - { label: "Ciencia Ficción", value: "ciencia-ficcion" }, - { label: "Comedia", value: "comedia" }, - { label: "Deportes", value: "deportes" }, - { label: "Drama", value: "drama" }, - { label: "Eastern Fantasy", value: "eastern-fantasy" }, - { label: "Ecchi", value: "ecchi" }, - { label: "FanFiction", value: "fan-fiction" }, - { label: "Fantasía", value: "fantasia" }, - { label: "Fantasía oriental", value: "fantasia-oriental" }, - { label: "Ficción Romántica", value: "ficcion-romantica" }, - { label: "Gender Bender", value: "gender-bender" }, - { label: "Harem", value: "harem" }, - { label: "Histórico", value: "historico" }, - { label: "Horror", value: "horror" }, - { label: "Josei", value: "josei" }, - { label: "Maduro", value: "maduro" }, - { label: "Mecha", value: "mecha" }, - { label: "Misterio", value: "misterio" }, - { label: "Novela China", value: "novela-china" }, - { label: "Novela FanFiction", value: "novela-fanfiction" }, - { label: "Novela Japonesa", value: "novela-japonesa" }, - { label: "Novela Koreana", value: "novela-koreana" }, - { label: "Novela ligera", value: "novela-ligera" }, - { label: "Novela original", value: "novela-original" }, - { label: "Novela Web", value: "web-novel" }, - { label: "Psicológico", value: "psicologico" }, - { label: "Realismo Mágico", value: "realismo-magico" }, - { label: "Recuento de vida", value: "recuento-de-vida" }, - { label: "Romance", value: "romance" }, - { - label: "Romance contemporáneo", - value: "romance-contemporaneo", - }, - { label: "Romance Moderno", value: "romance-moderno" }, - { label: "Seinen", value: "seinen" }, - { label: "Shoujo", value: "shoujo" }, - { label: "Shounen", value: "shounen" }, - { label: "Sobrenatural", value: "sobrenatural" }, - { label: "Tragedia", value: "tragedia" }, - { label: "Vampiros", value: "vampiros" }, - { label: "Vida Escolar", value: "vida-escolar" }, - { label: "Western Fantasy", value: "western-fantasy" }, - { label: "Wuxia", value: "wuxia" }, - { label: "Xianxia", value: "xianxia" }, - { label: "Xuanhuan", value: "xuanhuan" }, - { label: "Yaoi", value: "yaoi" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - }; - } - TuNovelaLigera.prototype.popularNovels = function (pageNo, _a) { - var filters = _a.filters; - return __awaiter(this, void 0, void 0, function () { - var link, headers, result, body, loadedCheerio, novels; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - link = "".concat(this.site); - link += filters.genres.value ? "genero/" + filters.genres.value : "novelas"; - link += "/page/".concat(pageNo); - link += filters.order.value; - headers = new Headers(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(link, { headers: headers })]; - case 1: - result = _b.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio(".page-item-detail").each(function (i, el) { - var novelName = loadedCheerio(el).find(".h5 > a").text(); - var novelCover = loadedCheerio(el).find("img").attr("src"); - var novelUrl = loadedCheerio(el).find(".h5 > a").attr("href"); - if (!novelUrl) - return; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - TuNovelaLigera.prototype.parseNovelAndChapters = function (novelUrl) { - return __awaiter(this, void 0, void 0, function () { - var url, headers, result, body, loadedCheerio, novel, novelCover, chapter, delay, lastPage, getChapters, getPageChapters, _a, _b; - var _this = this; - return __generator(this, function (_c) { - switch (_c.label) { - case 0: - url = novelUrl; - headers = new Headers(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url, { headers: headers })]; - case 1: - result = _c.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _c.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { - url: url, - chapters: [], - }; - loadedCheerio(".manga-title-badges").remove(); - novel.name = loadedCheerio(".post-title > h1").text().trim(); - novelCover = loadedCheerio(".summary_image > a > img"); - novel.cover = - novelCover.attr("data-src") || - novelCover.attr("src") || - novelCover.attr("data-cfsrc") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item").each(function () { - var detailName = loadedCheerio(this) - .find(".summary-heading > h5") - .text() - .trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Generos": - novel.genres = detail.replace(/, /g, ","); - break; - case "Autores": - novel.author = detail; - break; - case "Estado": - novel.status = - detail.includes("OnGoing") || - detail.includes("Updating") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - novel.summary = loadedCheerio("div.summary__content > p").text().trim(); - chapter = []; - delay = function (ms) { return new Promise(function (res) { return setTimeout(res, ms); }); }; - lastPage = 1; - lastPage = +loadedCheerio(".lcp_paginator li:last").prev().text(); - getChapters = function () { return __awaiter(_this, void 0, void 0, function () { - var n, novelName, formData, result, text; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - n = url.split("/"); - novelName = n[4]; - formData = new FormData(); - formData.append("action", "madara_load_more"); - formData.append("page", "0"); - formData.append("template", "html/loop/content"); - formData.append("vars[category_name]", novelName); - formData.append("vars[posts_per_page]", "10000"); - return [4 /*yield*/, (0, fetch_1.fetchApi)("".concat(this.site, "wp-admin/admin-ajax.php"), { - method: "POST", - body: formData, - headers: headers, - })]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - text = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(text); - loadedCheerio(".heading").each(function (i, el) { - var chapterName = loadedCheerio(el) - .text() - .replace(/[\t\n]/g, "") - .trim(); - var releaseDate = null; - var chapterUrl = loadedCheerio(el).find("a").attr("href") || ""; - chapter.push({ - name: chapterName, - url: chapterUrl, - releaseTime: releaseDate, - }); - }); - return [2 /*return*/, chapter.reverse()]; - } - }); - }); }; - getPageChapters = function () { return __awaiter(_this, void 0, void 0, function () { - var _loop_1, i; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _loop_1 = function (i) { - var chaptersUrl, result_1, chaptersHTML, chapterCheerio; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - chaptersUrl = "".concat(novelUrl, "?lcp_page0=").concat(i); - return [4 /*yield*/, (0, fetch_1.fetchApi)(chaptersUrl, { headers: headers })]; - case 1: - result_1 = _b.sent(); - return [4 /*yield*/, result_1.text()]; - case 2: - chaptersHTML = _b.sent(); - chapterCheerio = (0, cheerio_1.load)(chaptersHTML); - chapterCheerio(".lcp_catlist li").each(function (i, el) { - var chapterName = chapterCheerio(el) - .find("a") - .text() - .replace(/[\t\n]/g, "") - .trim(); - var releaseDate = chapterCheerio(el) - .find("span") - .text() - .trim(); - var chapterUrl = chapterCheerio(el).find("a").attr("href") || ""; - chapter.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - return [4 /*yield*/, delay(1000)]; - case 3: - _b.sent(); - return [2 /*return*/]; - } - }); - }; - i = 1; - _a.label = 1; - case 1: - if (!(i <= lastPage)) return [3 /*break*/, 4]; - return [5 /*yield**/, _loop_1(i)]; - case 2: - _a.sent(); - _a.label = 3; - case 3: - i++; - return [3 /*break*/, 1]; - case 4: return [2 /*return*/, chapter.reverse()]; - } - }); - }); }; - _a = novel; - return [4 /*yield*/, getChapters()]; - case 3: - _a.chapters = _c.sent(); - if (!!novel.chapters.length) return [3 /*break*/, 6]; - return [4 /*yield*/, delay(1000)]; - case 4: - _c.sent(); - _b = novel; - return [4 /*yield*/, getPageChapters()]; - case 5: - _b.chapters = _c.sent(); - _c.label = 6; - case 6: return [2 /*return*/, novel]; - } - }); - }); - }; - TuNovelaLigera.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var headers, result, body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - headers = new Headers(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio("#hola_siguiente").next().find("div").remove(); - chapterText = loadedCheerio("#hola_siguiente").next().html() || ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - TuNovelaLigera.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = "".concat(this.site, "?s=").concat(searchTerm, "&post_type=wp-manga"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio(".c-tabs-item__content").each(function (i, el) { - var novelName = loadedCheerio(el).find(".h4 > a").text(); - var novelCover = loadedCheerio(el).find("img").attr("src"); - var novelUrl = loadedCheerio(el).find(".h4 > a").attr("href"); - if (!novelUrl) - return; - novels.push({ - name: novelName, - url: novelUrl, - cover: novelCover, - }); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - TuNovelaLigera.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url)]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return TuNovelaLigera; -}()); -exports.default = new TuNovelaLigera(); diff --git a/.js/plugins/spanish/yukitls.js b/.js/plugins/spanish/yukitls.js deleted file mode 100644 index 46cc9db..0000000 --- a/.js/plugins/spanish/yukitls.js +++ /dev/null @@ -1,239 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.icon = exports.version = exports.site = exports.name = exports.id = void 0; -var fetch_1 = require("@libs/fetch"); -var cheerio_1 = require("cheerio"); -exports.id = "yuukitls.com"; -exports.name = "Yuuki Tls"; -exports.site = "https://yuukitls.com/"; -exports.version = "1.0.0"; -exports.icon = "src/es/yuukitls/icon.png"; -var baseUrl = exports.site; -var Yuuki = /** @class */ (function () { - function Yuuki() { - this.id = "yuukitls.com"; - this.name = "Yuuki Tls"; - this.icon = "src/es/yuukitls/icon.png"; - this.site = "https://yuukitls.com/"; - this.version = "1.0.0"; - this.baseUrl = this.site; - } - Yuuki.prototype.popularNovels = function (pageNo, options) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = baseUrl; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio(".quadmenu-navbar-collapse ul li:nth-child(2)") - .find("li") - .each(function () { - var novelName = loadedCheerio(this) - .text() - .replace(/[\s\n]+/g, " "); - var novelCover = loadedCheerio(this).find("img").attr("src"); - var novelUrl = loadedCheerio(this).find("a").attr("href"); - if (!novelUrl) - return; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - Yuuki.prototype.parseNovelAndChapters = function (novelUrl) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novel, novelChapters; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = novelUrl; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { - url: url, - }; - novel.name = loadedCheerio("h1.entry-title") - .text() - .replace(/[\t\n]/g, "") - .trim(); - novel.cover = loadedCheerio('img[loading="lazy"]').attr("src"); - loadedCheerio(".entry-content") - .find("div") - .each(function () { - if (loadedCheerio(this).text().includes("Escritor:")) { - novel.author = loadedCheerio(this) - .text() - .replace("Escritor: ", "") - .trim(); - } - if (loadedCheerio(this).text().includes("Género:")) { - novel.genres = loadedCheerio(this) - .text() - .replace(/Género: |\s/g, ""); - } - if (loadedCheerio(this).text().includes("Sinopsis:")) { - novel.summary = loadedCheerio(this).next().text(); - } - }); - novelChapters = []; - if (loadedCheerio(".entry-content").find("li").length) { - loadedCheerio(".entry-content") - .find("li") - .each(function () { - var chapterUrl = loadedCheerio(this).find("a").attr("href"); - if (chapterUrl && chapterUrl.includes(baseUrl)) { - var chapterName = loadedCheerio(this).text(); - var releaseDate = null; - var chapter = { - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }; - novelChapters.push(chapter); - } - }); - } - else { - loadedCheerio(".entry-content") - .find("p") - .each(function () { - var chapterUrl = loadedCheerio(this).find("a").attr("href"); - if (chapterUrl && chapterUrl.includes(baseUrl)) { - var chapterName = loadedCheerio(this).text(); - var releaseDate = null; - var chapter = { - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }; - novelChapters.push(chapter); - } - }); - } - novel.chapters = novelChapters; - return [2 /*return*/, novel]; - } - }); - }); - }; - Yuuki.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = chapterUrl; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".entry-content").html() || ''; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - Yuuki.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - searchTerm = searchTerm.toLowerCase(); - url = baseUrl; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio(".menu-item-2869") - .find(".menu-item.menu-item-type-post_type.menu-item-object-post") - .each(function () { - var novelName = loadedCheerio(this).text(); - var novelCover = loadedCheerio(this).find("img").attr("src"); - var novelUrl = loadedCheerio(this).find("a").attr("href"); - if (!novelUrl) - return; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - novels = novels.filter(function (novel) { - return novel.name.toLowerCase().includes(searchTerm); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - Yuuki.prototype.fetchImage = function (url) { - return (0, fetch_1.fetchFile)(url); - }; - return Yuuki; -}()); -exports.default = new Yuuki(); diff --git a/.js/plugins/turkish/TurkceLightNovels[madara].js b/.js/plugins/turkish/TurkceLightNovels[madara].js deleted file mode 100644 index 1be81c5..0000000 --- a/.js/plugins/turkish/TurkceLightNovels[madara].js +++ /dev/null @@ -1,296 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var dayjs_1 = __importDefault(require("dayjs")); -var MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; -var MadaraPlugin = /** @class */ (function () { - function MadaraPlugin(metadata) { - this.id = metadata.id; - this.name = metadata.sourceName + "[madara]"; - var iconFileName = metadata.sourceName - .replace(/\s+/g, "") - .toLowerCase(); - this.icon = "multisrc/madara/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - this.filters = metadata.filters; - } - MadaraPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - novels = []; - url = this.site; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) { - url += (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.path) === null || _d === void 0 ? void 0 : _d.genres) || MadaraDefaultPath.genres) + - "/" + - filters.genres.value; - } - else { - url += ((_f = (_e = this.options) === null || _e === void 0 ? void 0 : _e.path) === null || _f === void 0 ? void 0 : _f.novels) || MadaraDefaultPath.novels; - } - url += - "/page/" + - pageNo + - "/" + - "?m_orderby=" + - (showLatestNovels ? "latest" : ((_g = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _g === void 0 ? void 0 : _g.value) || "rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges").remove(); - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novel, body, loadedCheerio, html, novelId, formData, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges, #manga-title span").remove(); - novel.name = - loadedCheerio(".post-title h1").text().trim() || - loadedCheerio("#manga-title h1").text(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("data-lazy-src") || - loadedCheerio(".summary_image > a > img").attr("data-src") || - loadedCheerio(".summary_image > a > img").attr("src") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item, .post-content").each(function () { - var detailName = loadedCheerio(this).find("h5").text().trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - case "التصنيفات": - novel.genres = detail.replace(/[\\t\\n]/g, ","); - break; - case "Author(s)": - case "المؤلف": - case "المؤلف (ين)": - novel.author = detail; - break; - case "Status": - case "الحالة": - novel.status = - detail.includes("OnGoing") || detail.includes("مستمرة") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - loadedCheerio("div.summary__content .code-block,script").remove(); - novel.summary = - loadedCheerio("div.summary__content").text().trim() || - loadedCheerio("#tab-manga-about").text().trim() || - loadedCheerio('.post-content_item h5:contains("Summary")') - .next() - .text() - .trim(); - if (!(((_a = this.options) === null || _a === void 0 ? void 0 : _a.useNewChapterEndpoint) !== true)) return [3 /*break*/, 3]; - novelId = loadedCheerio(".rating-post-id").attr("value") || - loadedCheerio("#manga-chapters-holder").attr("data-id") || - ""; - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - }).then(function (res) { return res.text(); })]; - case 2: - html = _b.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl + "ajax/chapters/", { - method: "POST", - }).then(function (res) { return res.text(); })]; - case 4: - html = _b.sent(); - _b.label = 5; - case 5: - if (html !== "0") { - loadedCheerio = (0, cheerio_1.load)(html); - } - chapters = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - releaseDate = loadedCheerio(this) - .find("span.chapter-release-date") - .text() - .trim(); - if (releaseDate) { - releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(releaseDate); - } - else { - /** - * Insert current date - */ - releaseDate = (0, dayjs_1.default)().format("LL"); - } - var chapterUrl = loadedCheerio(this).find("a").attr("href") || ""; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MadaraPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || - loadedCheerio(".text-right").html() || - loadedCheerio(".entry-content").html() || - ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MadaraPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url, {})]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return MadaraPlugin; -}()); -var plugin = new MadaraPlugin({ "id": "turkcelightnovels", "sourceSite": "https://turkcelightnovels.com/", "sourceName": "TurkceLightNovels", "filters": { "sort": { "label": "Order by", "value": "", "options": [{ "label": "Default", "value": "" }, { "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": filterInputs_1.FilterTypes.Picker } }, "options": { "path": { "novels": "light-novel", "novel": "light-novel", "chapter": "light-novel" }, "lang": "Turkish" } }); -exports.default = plugin; diff --git a/.js/plugins/turkish/WebNovelOku[madara].js b/.js/plugins/turkish/WebNovelOku[madara].js deleted file mode 100644 index 39ebf5f..0000000 --- a/.js/plugins/turkish/WebNovelOku[madara].js +++ /dev/null @@ -1,296 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var cheerio_1 = require("cheerio"); -var defaultCover_1 = require("@libs/defaultCover"); -var novelStatus_1 = require("@libs/novelStatus"); -var parseMadaraDate_1 = require("@libs/parseMadaraDate"); -var dayjs_1 = __importDefault(require("dayjs")); -var MadaraDefaultPath = { - genres: "novel-genre", - novels: "novel", - novel: "novel", - chapter: "novel", -}; -var MadaraPlugin = /** @class */ (function () { - function MadaraPlugin(metadata) { - this.id = metadata.id; - this.name = metadata.sourceName + "[madara]"; - var iconFileName = metadata.sourceName - .replace(/\s+/g, "") - .toLowerCase(); - this.icon = "multisrc/madara/icons/".concat(iconFileName, ".png"); - this.site = metadata.sourceSite; - this.version = "1.0.0"; - this.options = metadata.options; - this.filters = metadata.filters; - } - MadaraPlugin.prototype.popularNovels = function (pageNo, _a) { - var _b, _c, _d, _e, _f, _g; - var filters = _a.filters, showLatestNovels = _a.showLatestNovels; - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - novels = []; - url = this.site; - if ((_b = filters === null || filters === void 0 ? void 0 : filters.genres) === null || _b === void 0 ? void 0 : _b.value) { - url += (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.path) === null || _d === void 0 ? void 0 : _d.genres) || MadaraDefaultPath.genres) + - "/" + - filters.genres.value; - } - else { - url += ((_f = (_e = this.options) === null || _e === void 0 ? void 0 : _e.path) === null || _f === void 0 ? void 0 : _f.novels) || MadaraDefaultPath.novels; - } - url += - "/page/" + - pageNo + - "/" + - "?m_orderby=" + - (showLatestNovels ? "latest" : ((_g = filters === null || filters === void 0 ? void 0 : filters.sort) === null || _g === void 0 ? void 0 : _g.value) || "rating"); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _h.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges").remove(); - loadedCheerio(".page-item-detail").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var novel, body, loadedCheerio, html, novelId, formData, chapters; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl).then(function (res) { return res.text(); })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".manga-title-badges, #manga-title span").remove(); - novel.name = - loadedCheerio(".post-title h1").text().trim() || - loadedCheerio("#manga-title h1").text(); - novel.cover = - loadedCheerio(".summary_image > a > img").attr("data-lazy-src") || - loadedCheerio(".summary_image > a > img").attr("data-src") || - loadedCheerio(".summary_image > a > img").attr("src") || - defaultCover_1.defaultCover; - loadedCheerio(".post-content_item, .post-content").each(function () { - var detailName = loadedCheerio(this).find("h5").text().trim(); - var detail = loadedCheerio(this) - .find(".summary-content") - .text() - .trim(); - switch (detailName) { - case "Genre(s)": - case "التصنيفات": - novel.genres = detail.replace(/[\\t\\n]/g, ","); - break; - case "Author(s)": - case "المؤلف": - case "المؤلف (ين)": - novel.author = detail; - break; - case "Status": - case "الحالة": - novel.status = - detail.includes("OnGoing") || detail.includes("مستمرة") - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed; - break; - } - }); - loadedCheerio("div.summary__content .code-block,script").remove(); - novel.summary = - loadedCheerio("div.summary__content").text().trim() || - loadedCheerio("#tab-manga-about").text().trim() || - loadedCheerio('.post-content_item h5:contains("Summary")') - .next() - .text() - .trim(); - if (!(((_a = this.options) === null || _a === void 0 ? void 0 : _a.useNewChapterEndpoint) !== true)) return [3 /*break*/, 3]; - novelId = loadedCheerio(".rating-post-id").attr("value") || - loadedCheerio("#manga-chapters-holder").attr("data-id") || - ""; - formData = new FormData(); - formData.append("action", "manga_get_chapters"); - formData.append("manga", novelId); - return [4 /*yield*/, (0, fetch_1.fetchApi)(this.site + "wp-admin/admin-ajax.php", { - method: "POST", - body: formData, - }).then(function (res) { return res.text(); })]; - case 2: - html = _b.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, (0, fetch_1.fetchApi)(novelUrl + "ajax/chapters/", { - method: "POST", - }).then(function (res) { return res.text(); })]; - case 4: - html = _b.sent(); - _b.label = 5; - case 5: - if (html !== "0") { - loadedCheerio = (0, cheerio_1.load)(html); - } - chapters = []; - loadedCheerio(".wp-manga-chapter").each(function () { - var chapterName = loadedCheerio(this).find("a").text().trim(); - var releaseDate = null; - releaseDate = loadedCheerio(this) - .find("span.chapter-release-date") - .text() - .trim(); - if (releaseDate) { - releaseDate = (0, parseMadaraDate_1.parseMadaraDate)(releaseDate); - } - else { - /** - * Insert current date - */ - releaseDate = (0, dayjs_1.default)().format("LL"); - } - var chapterUrl = loadedCheerio(this).find("a").attr("href") || ""; - chapters.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapters.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - MadaraPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".text-left").html() || - loadedCheerio(".text-right").html() || - loadedCheerio(".entry-content").html() || - ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - MadaraPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var novels, url, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novels = []; - url = this.site + "?s=" + searchTerm + "&post_type=wp-manga"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url).then(function (res) { return res.text(); })]; - case 1: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - loadedCheerio(".c-tabs-item__content").each(function () { - var novelName = loadedCheerio(this) - .find(".post-title") - .text() - .trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this) - .find(".post-title") - .find("a") - .attr("href") || ""; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - MadaraPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url, {})]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return MadaraPlugin; -}()); -var plugin = new MadaraPlugin({ "id": "webnoveloku", "sourceSite": "https://www.webnoveloku.com/", "sourceName": "WebNovelOku ", "filters": { "sort": { "label": "Sırala", "value": "", "options": [{ "label": "Default", "value": "" }, { "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": filterInputs_1.FilterTypes.Picker } }, "options": { "lang": "Turkish" } }); -exports.default = plugin; diff --git a/.js/plugins/turkish/epiknovel.js b/.js/plugins/turkish/epiknovel.js deleted file mode 100644 index df2eca1..0000000 --- a/.js/plugins/turkish/epiknovel.js +++ /dev/null @@ -1,208 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var cheerio_1 = require("cheerio"); -var fetch_1 = require("@libs/fetch"); -var EpikNovel = /** @class */ (function () { - function EpikNovel() { - this.id = "epiknovel.com"; - this.name = "EpikNovel"; - this.icon = "src/tr/epiknovel/icon.png"; - this.site = "https://www.epiknovel.com/"; - this.version = "1.0.0"; - this.baseUrl = this.site; - } - EpikNovel.prototype.popularNovels = function (pageNo, options) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = this.baseUrl + "seri-listesi?Sayfa=" + pageNo; - return [4 /*yield*/, fetch(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio("div.col-lg-12.col-md-12").each(function () { - var novelName = loadedCheerio(this).find("h3").text(); - var novelCover = loadedCheerio(this).find("img").attr("data-src"); - var novelUrl = loadedCheerio(this).find("h3 > a").attr("href"); - if (!novelUrl) - return; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - // console.log(novels); - return [2 /*return*/, novels]; - } - }); - }); - }; - EpikNovel.prototype.parseNovelAndChapters = function (novelUrl) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novel, novelChapters; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = novelUrl; - return [4 /*yield*/, fetch(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { url: url }; - novel.name = loadedCheerio("h1#tables").text().trim(); - novel.cover = loadedCheerio("img.manga-cover").attr("src"); - novel.summary = loadedCheerio("#wrapper > div.row > div.col-md-9 > div:nth-child(6) > p:nth-child(3)") - .text() - .trim(); - novel.status = loadedCheerio("#wrapper > div.row > div.col-md-9 > div.row > div.col-md-9 > h4:nth-child(3) > a") - .text() - .trim(); - novel.author = loadedCheerio("#NovelInfo > p:nth-child(4)") - .text() - .replace(/Publisher:|\s/g, "") - .trim(); - novelChapters = []; - loadedCheerio("table").find("tr").first().remove(); - loadedCheerio("table") - .find("tr") - .each(function () { - var releaseDate = loadedCheerio(this) - .find("td:nth-child(3)") - .text(); - var chapterName = loadedCheerio(this) - .find("td:nth-child(1) > a") - .text(); - if (loadedCheerio(this).find("td:nth-child(1) > span").length > - 0) { - chapterName = "🔒 " + chapterName; - } - var chapterUrl = loadedCheerio(this) - .find(" td:nth-child(1) > a") - .attr("href"); - if (!chapterUrl) - return; - novelChapters.push({ - name: chapterName, - url: chapterUrl, - releaseTime: releaseDate, - }); - }); - novel.chapters = novelChapters; - // console.log(novel); - return [2 /*return*/, novel]; - } - }); - }); - }; - EpikNovel.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = chapterUrl; - return [4 /*yield*/, fetch(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = ''; - if (result.url === "https://www.epiknovel.com/login") { - chapterText = "Premium Chapter"; - } - else { - chapterText = loadedCheerio("div#icerik").html() || ''; - } - return [2 /*return*/, chapterText]; - } - }); - }); - }; - EpikNovel.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = this.baseUrl + "seri-listesi?q=" + searchTerm + '&Sayfa=' + pageNo; - return [4 /*yield*/, fetch(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio("div.col-lg-12.col-md-12").each(function () { - var novelName = loadedCheerio(this).find("h3").text(); - var novelCover = loadedCheerio(this).find("img").attr("data-src"); - var novelUrl = loadedCheerio(this).find("h3 > a").attr("href"); - if (!novelUrl) - return; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - EpikNovel.prototype.fetchImage = function (url) { - return (0, fetch_1.fetchFile)(url); - }; - return EpikNovel; -}()); -exports.default = new EpikNovel(); diff --git a/.js/plugins/turkish/lshnovel.js b/.js/plugins/turkish/lshnovel.js deleted file mode 100644 index a7feb90..0000000 --- a/.js/plugins/turkish/lshnovel.js +++ /dev/null @@ -1,312 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var cheerio_1 = require("cheerio"); -var fetch_1 = require("@libs/fetch"); -var filterInputs_1 = require("@libs/filterInputs"); -var LSHNovel = /** @class */ (function () { - function LSHNovel() { - this.id = "lshnovel"; - this.name = "Liebe Schnee Hiver Novel"; - this.icon = "multisrc/wpmangastream/icons/lshnovel.png"; - this.site = "https://lshnovel.com/"; - this.version = "1.0.0"; - this.filters = { - order: { - value: "popular", - label: "Önerilen", - options: [ - { label: "Varsayılan", value: "" }, - { label: "A-Z", value: "title" }, - { label: "Z-A", value: "titlereverse" }, - { label: "Son Yüklemeler", value: "update" }, - { label: "Son Eklenenler", value: "latest" }, - { label: "Bestimiz", value: "popular" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - status: { - label: "Statü", - value: "", - options: [ - { label: "Tümü", value: "" }, - { label: "Ongoing", value: "ongoing" }, - { label: "Hiatus", value: "hiatus" }, - { label: "Completed", value: "completed" }, - ], - type: filterInputs_1.FilterTypes.Picker, - }, - type: { - value: [], - label: "Tür", - options: [ - { label: "Çeviri Novel", value: "ceviri-novel" }, - { label: "Liz-Chan", value: "liz-chan" }, - { label: "Manhwa", value: "manhwa" }, - { label: "Orijinal Novel", value: "orijinal-novel" }, - { label: "Web Novel", value: "web-novel" }, - ], - type: filterInputs_1.FilterTypes.CheckboxGroup, - }, - genres: { - value: [], - label: "Kategori", - options: [ - { label: "+18", value: "18" }, - { label: "Action", value: "action" }, - { label: "Adult", value: "adult" }, - { label: "Aksiyon", value: "aksiyon" }, - { label: "BL", value: "bl" }, - { label: "Comedy", value: "comedy" }, - { label: "Doğaüstü", value: "dogaustu" }, - { label: "Dram", value: "dram" }, - { label: "Drama", value: "drama" }, - { label: "Ecchi", value: "ecchi" }, - { label: "Fantastik", value: "fantastik" }, - { label: "Fantasy", value: "fantasy" }, - { label: "Gizem", value: "gizem" }, - { label: "Harem", value: "harem" }, - { label: "Historical", value: "historical" }, - { label: "Josei", value: "josei" }, - { label: "Macera", value: "macera" }, - { label: "Manhwa", value: "manhwa" }, - { label: "Martial Arts", value: "martial-arts" }, - { label: "Mature", value: "mature" }, - { label: "Novel", value: "novel" }, - { label: "Okul", value: "okul" }, - { label: "Psikolojik", value: "psikolojik" }, - { label: "Psychological", value: "psychological" }, - { label: "Reverse Harem", value: "reverse-harem" }, - { label: "Romance", value: "romance" }, - { label: "Romantik", value: "romantik" }, - { label: "Shoujo", value: "shoujo" }, - { label: "Slice Of Life", value: "slice-of-life" }, - { label: "Smut", value: "smut" }, - { label: "Supernatural", value: "supernatural" }, - { label: "Tarihi", value: "tarihi" }, - { label: "Tragedy", value: "tragedy" }, - { label: "Yaoi", value: "yaoi" }, - ], - type: filterInputs_1.FilterTypes.CheckboxGroup, - }, - }; - } - LSHNovel.prototype.popularNovels = function (pageNo, _a) { - var filters = _a.filters; - return __awaiter(this, void 0, void 0, function () { - var link, headers, body, loadedCheerio, novels; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - link = "".concat(this.site, "series/?page=").concat(pageNo); - if (filters.genres.value.length) { - link += filters.genres.value.map(function (i) { return "&genre[]=".concat(i); }).join(""); - } - if (filters.type.value.length) - link += filters.type.value.map(function (i) { return "&lang[]=".concat(i); }).join(""); - link += "&status=" + filters.status; - link += "&order=" + filters.order; - headers = new Headers(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(link, { headers: headers }).then(function (result) { - return result.text(); - })]; - case 1: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio("article.bs").each(function () { - var novelName = loadedCheerio(this).find(".ntitle").text().trim(); - var image = loadedCheerio(this).find("img"); - var novelCover = image.attr("data-src") || image.attr("src"); - var novelUrl = loadedCheerio(this).find("a").attr("href"); - if (!novelUrl) - return; - var novel = { - name: novelName, - cover: novelCover, - url: novelUrl, - }; - novels.push(novel); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - LSHNovel.prototype.parseNovelAndChapters = function (novelUrl) { - return __awaiter(this, void 0, void 0, function () { - var url, headers, result, body, loadedCheerio, novel, chapter; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = novelUrl; - headers = new Headers(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url, { headers: headers })]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { - url: url, - chapters: [], - }; - novel.name = loadedCheerio(".entry-title").text(); - novel.cover = - loadedCheerio("img.wp-post-image").attr("data-src") || - loadedCheerio("img.wp-post-image").attr("src"); - loadedCheerio("div.spe > span").each(function () { - var detailName = loadedCheerio(this).find("b").text().trim(); - var detail = loadedCheerio(this) - .find("b") - .remove() - .end() - .text() - .trim(); - switch (detailName) { - case "Yazar:": - novel.author = detail; - break; - case "Seviye:": - novel.status = detail; - break; - } - }); - novel.genres = loadedCheerio(".genxed") - .text() - .trim() - .replace(/\s/g, ","); - loadedCheerio('div[itemprop="description"] h3,p.a,strong').remove(); - novel.summary = loadedCheerio('div[itemprop="description"]') - .find("br") - .replaceWith("\n") - .end() - .text(); - chapter = []; - loadedCheerio(".eplister") - .find("li") - .each(function () { - var chapterName = loadedCheerio(this).find(".epl-num").text() + - " - " + - loadedCheerio(this).find(".epl-title").text(); - var releaseDate = loadedCheerio(this) - .find(".epl-date") - .text() - .trim(); - var chapterUrl = loadedCheerio(this).find("a").attr("href"); - if (!chapterUrl) - return; - chapter.push({ - name: chapterName, - releaseTime: releaseDate, - url: chapterUrl, - }); - }); - novel.chapters = chapter.reverse(); - return [2 /*return*/, novel]; - } - }); - }); - }; - LSHNovel.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var headers, result, body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - headers = new Headers(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(chapterUrl, { headers: headers })]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio(".epcontent").html() || ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - LSHNovel.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var url, headers, result, body, loadedCheerio, novels; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = "".concat(this.site, "?s=").concat(searchTerm); - headers = new Headers(); - return [4 /*yield*/, (0, fetch_1.fetchApi)(url, { headers: headers })]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novels = []; - loadedCheerio("article.bs").each(function () { - var novelName = loadedCheerio(this).find(".ntitle").text().trim(); - var novelCover = loadedCheerio(this).find("img").attr("src"); - var novelUrl = loadedCheerio(this).find("a").attr("href"); - if (!novelUrl) - return; - novels.push({ - name: novelName, - url: novelUrl, - cover: novelCover, - }); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - LSHNovel.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchFile)(url)]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return LSHNovel; -}()); -exports.default = new LSHNovel(); diff --git a/.js/plugins/ukraine/smakolykytl.js b/.js/plugins/ukraine/smakolykytl.js deleted file mode 100644 index b2e03b8..0000000 --- a/.js/plugins/ukraine/smakolykytl.js +++ /dev/null @@ -1,225 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fetch_1 = require("@libs/fetch"); -var novelStatus_1 = require("@libs/novelStatus"); -var dayjs_1 = __importDefault(require("dayjs")); -var Smakolykytl = /** @class */ (function () { - function Smakolykytl() { - this.id = "smakolykytl"; - this.name = "Смаколики"; - this.site = "https://smakolykytl.site/"; - this.version = "1.0.0"; - this.icon = "src/ua/smakolykytl/icon.png"; - this.fetchImage = fetch_1.fetchFile; - } - Smakolykytl.prototype.popularNovels = function (pageNo, _a) { - var _b; - var showLatestNovels = _a.showLatestNovels, filters = _a.filters; - return __awaiter(this, void 0, void 0, function () { - var url, result, json, novels; - var _this = this; - return __generator(this, function (_c) { - switch (_c.label) { - case 0: - url = showLatestNovels - ? "https://api.smakolykytl.site/api/user/updates" - : "https://api.smakolykytl.site/api/user/projects"; - return [4 /*yield*/, (0, fetch_1.fetchApi)(url)]; - case 1: - result = _c.sent(); - return [4 /*yield*/, result.json()]; - case 2: - json = (_c.sent()); - novels = []; - (_b = ((json === null || json === void 0 ? void 0 : json.projects) || (json === null || json === void 0 ? void 0 : json.updates))) === null || _b === void 0 ? void 0 : _b.forEach(function (novel) { - return novels.push({ - name: novel.title, - cover: novel.image.url, - url: _this.site + "titles/" + novel.id, - }); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - Smakolykytl.prototype.parseNovelAndChapters = function (novelUrl) { - var _a, _b, _c, _d, _e, _f, _g, _h, _j; - return __awaiter(this, void 0, void 0, function () { - var id, result, book, novel, tags, chapters, res, data; - var _this = this; - return __generator(this, function (_k) { - switch (_k.label) { - case 0: - id = novelUrl.split("/").pop(); - return [4 /*yield*/, (0, fetch_1.fetchApi)("https://api.smakolykytl.site/api/user/projects/" + id)]; - case 1: - result = _k.sent(); - return [4 /*yield*/, result.json()]; - case 2: - book = (_k.sent()); - novel = { - url: novelUrl, - name: (_a = book === null || book === void 0 ? void 0 : book.project) === null || _a === void 0 ? void 0 : _a.title, - cover: (_c = (_b = book === null || book === void 0 ? void 0 : book.project) === null || _b === void 0 ? void 0 : _b.image) === null || _c === void 0 ? void 0 : _c.url, - summary: (_d = book === null || book === void 0 ? void 0 : book.project) === null || _d === void 0 ? void 0 : _d.description, - author: (_e = book === null || book === void 0 ? void 0 : book.project) === null || _e === void 0 ? void 0 : _e.author, - status: ((_f = book === null || book === void 0 ? void 0 : book.project) === null || _f === void 0 ? void 0 : _f.status_translate.includes("Триває")) - ? novelStatus_1.NovelStatus.Ongoing - : novelStatus_1.NovelStatus.Completed, - }; - tags = [(_g = book === null || book === void 0 ? void 0 : book.project) === null || _g === void 0 ? void 0 : _g.genres, (_h = book === null || book === void 0 ? void 0 : book.project) === null || _h === void 0 ? void 0 : _h.tags] - .flat() - .map(function (tags) { return tags === null || tags === void 0 ? void 0 : tags.title; }) - .filter(function (tags) { return tags; }); - if (tags.length) { - novel.genres = tags.join(", "); - } - chapters = []; - return [4 /*yield*/, (0, fetch_1.fetchApi)("https://api.smakolykytl.site/api/user/projects/" + id + "/books")]; - case 3: - res = _k.sent(); - return [4 /*yield*/, res.json()]; - case 4: - data = (_k.sent()); - (_j = data === null || data === void 0 ? void 0 : data.books) === null || _j === void 0 ? void 0 : _j.forEach(function (volume) { - var _a; - return (_a = volume === null || volume === void 0 ? void 0 : volume.chapters) === null || _a === void 0 ? void 0 : _a.map(function (chapter) { - return chapters.push({ - name: volume.title + " " + chapter.title, - releaseTime: (0, dayjs_1.default)(chapter.modifiedAt).format("LLL"), - url: _this.site + "read/" + chapter.id, - }); - }); - }); - novel.chapters = chapters; - return [2 /*return*/, novel]; - } - }); - }); - }; - Smakolykytl.prototype.parseChapter = function (chapterUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var id, result, json, chapterRaw, chapterText; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - id = chapterUrl.split("/").pop(); - return [4 /*yield*/, (0, fetch_1.fetchApi)("https://api.smakolykytl.site/api/user/chapters/" + id)]; - case 1: - result = _b.sent(); - return [4 /*yield*/, result.json()]; - case 2: - json = (_b.sent()); - chapterRaw = JSON.parse(((_a = json === null || json === void 0 ? void 0 : json.chapter) === null || _a === void 0 ? void 0 : _a.content) || "[]"); - chapterText = jsonToHtml(chapterRaw); - return [2 /*return*/, chapterText]; - } - }); - }); - }; - Smakolykytl.prototype.searchNovels = function (searchTerm) { - var _a, _b; - return __awaiter(this, void 0, void 0, function () { - var result, json, novels; - var _this = this; - return __generator(this, function (_c) { - switch (_c.label) { - case 0: return [4 /*yield*/, (0, fetch_1.fetchApi)("https://api.smakolykytl.site/api/user/projects")]; - case 1: - result = _c.sent(); - return [4 /*yield*/, result.json()]; - case 2: - json = (_c.sent()); - novels = []; - (_b = (_a = json === null || json === void 0 ? void 0 : json.projects) === null || _a === void 0 ? void 0 : _a.filter(function (novel) { - return novel.title.includes(searchTerm) || String(novel.id) === searchTerm; - })) === null || _b === void 0 ? void 0 : _b.forEach(function (novel) { - return novels.push({ - name: novel.title, - cover: novel.image.url, - url: _this.site + "titles/" + novel.id, - }); - }); - return [2 /*return*/, novels]; - } - }); - }); - }; - return Smakolykytl; -}()); -exports.default = new Smakolykytl(); -function jsonToHtml(json, html) { - if (html === void 0) { html = ""; } - json.forEach(function (element) { - switch (element.type) { - case "hardBreak": - html += "
"; - break; - case "horizontalRule": - html += "
"; - break; - case "image": - if (element.attrs) { - var attrs = Object.entries(element.attrs) - .filter(function (attr) { return attr === null || attr === void 0 ? void 0 : attr[1]; }) - .map(function (attr) { return "".concat(attr[0], "=\"").concat(attr[1], "\""); }); - html += ""; - } - break; - case "paragraph": - html += - "

" + - (element.content ? jsonToHtml(element.content) : "
") + - "

"; - break; - case "text": - html += element.text; - break; - default: - html += JSON.stringify(element, null, "\t"); //maybe I missed something. - break; - } - }); - return html; -} diff --git a/.js/plugins/vietnamese/LNHako.js b/.js/plugins/vietnamese/LNHako.js deleted file mode 100644 index ce1c425..0000000 --- a/.js/plugins/vietnamese/LNHako.js +++ /dev/null @@ -1,327 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var cheerio_1 = require("cheerio"); -var fetch_1 = require("@libs/fetch"); -var isAbsoluteUrl_1 = require("@libs/isAbsoluteUrl"); -var novelStatus_1 = require("@libs/novelStatus"); -var filterInputs_1 = require("@libs/filterInputs"); -var HakoPlugin = /** @class */ (function () { - function HakoPlugin() { - this.id = "ln.hako"; - this.name = "Hako"; - this.icon = "src/vi/hakolightnovel/icon.png"; - this.site = "https://ln.hako.vn"; - this.version = "1.0.1"; - this.filters = { - alphabet: { - type: filterInputs_1.FilterTypes.Picker, - value: "", - label: "Chữ cái", - options: [ - { label: 'Tất cả', value: '' }, - { label: 'Khác', value: 'khac' }, - { label: 'A', value: 'a' }, - { label: 'B', value: 'b' }, - { label: 'C', value: 'c' }, - { label: 'D', value: 'd' }, - { label: 'E', value: 'e' }, - { label: 'F', value: 'f' }, - { label: 'G', value: 'g' }, - { label: 'H', value: 'h' }, - { label: 'I', value: 'i' }, - { label: 'J', value: 'j' }, - { label: 'K', value: 'k' }, - { label: 'L', value: 'l' }, - { label: 'M', value: 'm' }, - { label: 'N', value: 'n' }, - { label: 'O', value: 'o' }, - { label: 'P', value: 'p' }, - { label: 'Q', value: 'q' }, - { label: 'R', value: 'r' }, - { label: 'S', value: 's' }, - { label: 'T', value: 't' }, - { label: 'U', value: 'u' }, - { label: 'V', value: 'v' }, - { label: 'W', value: 'w' }, - { label: 'X', value: 'x' }, - { label: 'Y', value: 'y' }, - { label: 'Z', value: 'z' }, - ] - }, - type: { - type: filterInputs_1.FilterTypes.CheckboxGroup, - label: "Phân loại", - value: [], - options: [ - { label: "Truyện dịch", value: "truyendich" }, - { label: "Truyện sáng tác", value: "sangtac" }, - { label: "Convert", value: "convert" } - ] - }, - status: { - type: filterInputs_1.FilterTypes.CheckboxGroup, - label: "Tình trạng", - value: [], - options: [ - { label: "Đang tiến hành", value: "dangtienhanh" }, - { label: "Tạm ngưng", value: "tamngung" }, - { label: "Đã hoàn thành", value: "hoanthanh" } - ] - }, - sort: { - type: filterInputs_1.FilterTypes.Picker, - label: "Sắp xếp", - value: "top", - options: [ - { label: "A-Z", value: "tentruyen" }, - { label: "Z-A", value: "tentruyenza" }, - { label: "Mới cập nhật", value: "capnhat" }, - { label: "Truyện mới", value: "truyenmoi" }, - { label: "Theo dõi", value: "theodoi" }, - { label: "Top toàn thời gian", value: "top" }, - { label: "Top tháng", value: "topthang" }, - { label: "Số từ", value: "sotu" }, - ] - } - }; - } - HakoPlugin.prototype.parseNovels = function (loadedCheerio) { - var _this = this; - var novels = []; - loadedCheerio("#mainpart .row .thumb-item-flow").each(function (index, ele) { - var url = loadedCheerio(ele) - .find("div.thumb_attr.series-title > a") - .attr("href"); - if (url && !(0, isAbsoluteUrl_1.isUrlAbsolute)(url)) { - url = _this.site + url; - } - if (url) { - var name_1 = loadedCheerio(ele) - .find(".series-title") - .text() - .trim(); - var cover = loadedCheerio(ele) - .find(".img-in-ratio") - .attr("data-bg"); - if (cover && !(0, isAbsoluteUrl_1.isUrlAbsolute)(cover)) { - cover = _this.site + cover; - } - var novel = { name: name_1, url: url, cover: cover }; - novels.push(novel); - } - }); - return novels; - }; - HakoPlugin.prototype.popularNovels = function (pageNo, _a) { - var showLatestNovels = _a.showLatestNovels, filters = _a.filters; - return __awaiter(this, void 0, void 0, function () { - var link, params, _i, _b, novelType, _c, _d, status_1, result, body, loadedCheerio; - return __generator(this, function (_e) { - switch (_e.label) { - case 0: - link = this.site + "/danh-sach"; - if (filters.alphabet.value) { - link += "/" + filters.alphabet.value; - } - params = new URLSearchParams(); - for (_i = 0, _b = filters.type.value; _i < _b.length; _i++) { - novelType = _b[_i]; - params.append(novelType, "1"); - } - for (_c = 0, _d = filters.status.value; _c < _d.length; _c++) { - status_1 = _d[_c]; - params.append(status_1, "1"); - } - params.append("sapxep", filters.sort.value); - link += '?' + params.toString() + '&page=' + pageNo; - return [4 /*yield*/, fetch(link)]; - case 1: - result = _e.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _e.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - return [2 /*return*/, this.parseNovels(loadedCheerio)]; - } - }); - }); - }; - HakoPlugin.prototype.parseNovelAndChapters = function (novelUrl) { - return __awaiter(this, void 0, void 0, function () { - var novel, result, body, loadedCheerio, background, novelCover, num, part, chapters; - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - novel = { - url: novelUrl, - }; - return [4 /*yield*/, fetch(novelUrl)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel.name = loadedCheerio(".series-name").text().trim(); - background = loadedCheerio(".series-cover > .a6-ratio > div").attr("style") || - ""; - novelCover = background.substring(background.indexOf("http"), background.length - 2); - novel.cover = novelCover - ? (0, isAbsoluteUrl_1.isUrlAbsolute)(novelCover) - ? novelCover - : this.site + novelCover - : ""; - novel.summary = loadedCheerio(".summary-content").text().trim(); - novel.genres = loadedCheerio(".series-information > div:nth-child(1)") - .text() - .trim() - .split(/\n[\s\n]*/).join(','); - novel.author = loadedCheerio('.series-information > div:nth-child(2) > .info-value') - .text() - .trim(); - novel.artist = loadedCheerio('.series-information > div:nth-child(3) > .info-value') - .text() - .trim(); - novel.status = loadedCheerio('.series-information > div:nth-child(4) > .info-value') - .text() - .trim(); - switch (novel.status) { - case 'Đang tiến hành': - novel.status = novelStatus_1.NovelStatus.Ongoing; - break; - case 'Tạm ngưng': - novel.status = novelStatus_1.NovelStatus.OnHiatus; - break; - case 'Completed': - novel.status = novelStatus_1.NovelStatus.Completed; - break; - default: - novel.status = novelStatus_1.NovelStatus.Unknown; - } - num = 0, part = 1; - chapters = loadedCheerio('.list-chapters li').toArray().map(function (ele) { - var _a; - var chapterUrl = _this.site + loadedCheerio(ele).find("a").attr("href"); - var chapterName = loadedCheerio(ele) - .find(".chapter-name") - .text() - .trim(); - var chapterNumber = Number((_a = chapterName.match(/Chương\s*(\d+)/i)) === null || _a === void 0 ? void 0 : _a[1]); - if (chapterNumber) { - num = chapterNumber; - part = 1; - } - else { - chapterNumber = num + part / 10; - part++; - } - var chapterTime = loadedCheerio(ele) - .find(".chapter-time") - .text() - .split('/') - .map(function (x) { return Number(x); }); - return { - url: chapterUrl || '', - name: chapterName, - releaseTime: new Date(chapterTime[2], chapterTime[1], chapterTime[0]).toISOString(), - chapterNumber: chapterNumber, - }; - }).filter(function (c) { return c.url; }); - novel.chapters = chapters; - return [2 /*return*/, novel]; - } - }); - }); - }; - HakoPlugin.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var result, body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, fetch(chapterUrl)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = loadedCheerio("#chapter-content").html() || ""; - return [2 /*return*/, chapterText]; - } - }); - }); - }; - HakoPlugin.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = this.site + "/tim-kiem?keywords=" + searchTerm + '&page=' + pageNo; - return [4 /*yield*/, fetch(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - return [2 /*return*/, this.parseNovels(loadedCheerio)]; - } - }); - }); - }; - HakoPlugin.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - var headers; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - headers = { - Referer: "https://ln.hako.vn", - }; - return [4 /*yield*/, (0, fetch_1.fetchFile)(url, { headers: headers })]; - case 1: return [2 /*return*/, _a.sent()]; - } - }); - }); - }; - return HakoPlugin; -}()); -exports.default = new HakoPlugin(); diff --git a/.js/plugins/vietnamese/truyenfull.js b/.js/plugins/vietnamese/truyenfull.js deleted file mode 100644 index 34050b3..0000000 --- a/.js/plugins/vietnamese/truyenfull.js +++ /dev/null @@ -1,203 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var cheerio_1 = require("cheerio"); -var fetch_1 = require("@libs/fetch"); -var novelStatus_1 = require("@libs/novelStatus"); -var TruyenFull = /** @class */ (function () { - function TruyenFull() { - this.id = "truyenfull"; - this.name = "Truyện Full"; - this.icon = "src/vi/truyenfull/icon.png"; - this.site = "https://truyenfull.vn"; - this.version = "1.0.0"; - } - TruyenFull.prototype.parseNovels = function (loadedCheerio) { - var novels = []; - loadedCheerio(".list-truyen .row").each(function (idx, ele) { - var novelName = loadedCheerio(ele) - .find("h3.truyen-title > a") - .text(); - var novelCover = loadedCheerio(ele).find("div[data-classname='cover']").attr("data-image"); - var novelUrl = loadedCheerio(ele) - .find("h3.truyen-title > a") - .attr("href"); - if (novelUrl) { - novels.push({ - name: novelName, - cover: novelCover, - url: novelUrl - }); - } - }); - return novels; - }; - TruyenFull.prototype.popularNovels = function (pageNo, options) { - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - url = "".concat(this.site, "/danh-sach/truyen-hot/trang-").concat(pageNo, "/"); - return [4 /*yield*/, fetch(url)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - return [2 /*return*/, this.parseNovels(loadedCheerio)]; - } - }); - }); - }; - TruyenFull.prototype.parseNovelAndChapters = function (novelUrl) { - var _a; - return __awaiter(this, void 0, void 0, function () { - var url, result, body, loadedCheerio, novel, lastPage, lastPageUrl, res, lastChapterUrl, lastChapter, chapters, i; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - url = novelUrl; - return [4 /*yield*/, fetch(url)]; - case 1: - result = _b.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - novel = { - url: url, - chapters: [], - }; - novel.name = loadedCheerio("div.book > img").attr("alt"); - novel.cover = loadedCheerio("div.book > img").attr("src"); - novel.summary = loadedCheerio("div.desc-text").text().trim(); - novel.author = loadedCheerio('h3:contains("Tác giả:")') - .parent() - .contents() - .text() - .replace("Tác giả:", ""); - novel.genres = loadedCheerio('h3:contains("Thể loại")') - .siblings() - .map(function (i, el) { return loadedCheerio(el).text(); }) - .toArray() - .join(","); - novel.status = loadedCheerio('h3:contains("Trạng thái")').next().text(); - if (novel.status === "Full") { - novel.status = novelStatus_1.NovelStatus.Completed; - } - else if (novel.status === 'Đang ra') { - novel.status = novelStatus_1.NovelStatus.Ongoing; - } - else { - novel.status = novelStatus_1.NovelStatus.Unknown; - } - lastPage = 1; - loadedCheerio('ul.pagination.pagination-sm > li').each(function () { - var page = Number(loadedCheerio(this).text()); - if (page && page > lastPage) - lastPage = page; - }); - lastPageUrl = novelUrl + 'trang-' + lastPage + '/'; - return [4 /*yield*/, fetch(lastPageUrl).then(function (res) { return res.text(); })]; - case 3: - res = _b.sent(); - loadedCheerio = (0, cheerio_1.load)(res); - lastChapterUrl = loadedCheerio('ul.list-chapter > li:last-child > a').attr('href'); - lastChapter = Number((_a = lastChapterUrl === null || lastChapterUrl === void 0 ? void 0 : lastChapterUrl.match(/\/chuong-(\d+)\//)) === null || _a === void 0 ? void 0 : _a[1]) || 1; - chapters = []; - for (i = 1; i <= lastChapter; i++) { - chapters.push({ - name: 'Chương ' + i, - url: novelUrl + 'chuong-' + i + '/', - }); - } - novel.chapters = chapters; - return [2 /*return*/, novel]; - } - }); - }); - }; - TruyenFull.prototype.parseChapter = function (chapterUrl) { - return __awaiter(this, void 0, void 0, function () { - var result, body, loadedCheerio, chapterText; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, fetch(chapterUrl)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - chapterText = (loadedCheerio(".chapter-title").html() || '') + (loadedCheerio('#chapter-c').html() || ''); - return [2 /*return*/, chapterText]; - } - }); - }); - }; - TruyenFull.prototype.searchNovels = function (searchTerm, pageNo) { - return __awaiter(this, void 0, void 0, function () { - var searchUrl, result, body, loadedCheerio; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - searchUrl = "".concat(this.site, "/tim-kiem?tukhoa=").concat(searchTerm, "&page=").concat(pageNo); - return [4 /*yield*/, fetch(searchUrl)]; - case 1: - result = _a.sent(); - return [4 /*yield*/, result.text()]; - case 2: - body = _a.sent(); - loadedCheerio = (0, cheerio_1.load)(body); - return [2 /*return*/, this.parseNovels(loadedCheerio)]; - } - }); - }); - }; - TruyenFull.prototype.fetchImage = function (url) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2 /*return*/, (0, fetch_1.fetchFile)(url)]; - }); - }); - }; - return TruyenFull; -}()); -exports.default = new TruyenFull(); diff --git a/README.md b/README.md index 55432a3..bbaaf63 100644 --- a/README.md +++ b/README.md @@ -26,23 +26,6 @@ Repository to host plugins and related issues, and requests for [LNReader](https - Prerequisites: Nodejs >= 18 1. `npm install` -2. Create `config.json` file in root dir - -```json -{ - "githubUsername": "", - "githubRepository": "", - "githubBranch": "" -} -``` -Example -```json -{ - "githubUsername": "LNReader", - "githubRepository": "lnreader-sources", - "githubBranch": "master" -} -``` ## Contributing 1. Choose your language in [plugins](./plugins) @@ -61,7 +44,7 @@ Example ### If you want to test in app side. -- Commit and push changes. Check your own json files in github fork: `.dist//` +- `./host.sh` - Change these in [pluginManager.ts](https://github.com/LNReader/lnreader/blob/master/src/plugins/pluginManager.ts) (app repo) to yours @@ -70,15 +53,7 @@ Example ```ts const githubUsername = 'LNReader'; const githubRepository = 'lnreader-sources'; -const githubBranch = 'master'; ``` - - - -- Note: No need to modify `.dist` folder when opening PR. There's already action for that job. - - - ---------- diff --git a/host.sh b/host.sh new file mode 100644 index 0000000..4cf2d17 --- /dev/null +++ b/host.sh @@ -0,0 +1,20 @@ +current=`git rev-parse --abbrev-ref HEAD` +dist=dist +exists=`git show-ref refs/heads/$dist` + +if [ -n "$exists" ]; then + git checkout $dist +else + git checkout -b $dist +fi + +git merge $current --strategy-option theirs + +npm run generate +npm run json +git add . +git add -f .dist .js/plugins +git commit -m "Update plugins host" +git push -f origin $dist + +git checkout $current diff --git a/index.ts b/index.ts index 3adeb1a..29d14e1 100644 --- a/index.ts +++ b/index.ts @@ -8,7 +8,10 @@ import * as pluginApi from "./test_web/api/plugins"; import localizedFormat from "dayjs/plugin/localizedFormat"; const app = express(); -const port = 3000; +const port = Number(process.argv[2]); +if(!port){ + process.exit(0); +} const host = "localhost"; const dirname = path.join(__dirname, ".."); @@ -95,7 +98,7 @@ app.get("/", (req, res) => { }); app.listen(port, host, () => { - console.log("Testing plugins web listening on http://localhost:3000"); + console.log(`Testing plugins web listening on http://localhost:${port}`); }); //Dayjs localization diff --git a/package.json b/package.json index e796020..1991035 100644 --- a/package.json +++ b/package.json @@ -4,12 +4,13 @@ "description": "Plugins repo for LNReader", "main": "index.js", "scripts": { - "start": "tsc-watch --onSuccess \"node ./.js/index.js\"", + "start": "tsc-watch --onSuccess \"node ./.js/index.js 3000\"", "test": "exit 0", - "json": "tsc && mv ./.js/index.js ./.js/index.js.temp && node ./.js/scripts/json_plugins.js && mv ./.js/index.js.temp ./.js/index.js && git add plugins && git add .dist && git add .js/plugins", - "generate": "ts-node ./scripts/multisrc/generate.ts && tsc", + "json": "tsc && node ./.js/scripts/json_plugins.js", + "generate": "ts-node ./scripts/multisrc/generate.ts", "clearMulti": "ts-node ./scripts/clearMultisrc.ts", - "less": "npx less ./test_web/static/css/index.less ./test_web/static/css/index.css" + "less": "npx less ./test_web/static/css/index.less ./test_web/static/css/index.css", + "host": "host.sh" }, "author": "LNReader", "license": "MIT", @@ -41,8 +42,5 @@ "@types/node": "^20.3.1", "pre-commit": "^1.2.2", "tsc-watch": "^6.0.4" - }, - "pre-commit": [ - "json" - ] + } } diff --git a/scripts/json_plugins.ts b/scripts/json_plugins.ts index a7542b7..1d25e6c 100644 --- a/scripts/json_plugins.ts +++ b/scripts/json_plugins.ts @@ -5,22 +5,18 @@ import { languages } from "@libs/languages"; import * as path from "path"; import { Plugin, isPlugin } from "@typings/plugin"; -import config from "./../config.json"; - const root = path.dirname(__dirname); const outRoot = path.join(root, ".."); -const username = config.githubUsername; -const repo = config.githubRepository; -const branch = config.githubBranch; -if (!username || !repo || !branch) { - console.error("config.json not provided!"); - process.exit(1); -} -if (!fs.existsSync(path.join(outRoot, ".dist", username))) { - fs.mkdirSync(path.join(outRoot, ".dist", username)); -} -const githubIconsLink = `https://raw.githubusercontent.com/${username}/${repo}/${branch}/icons`; -const githubPluginsLink = `https://raw.githubusercontent.com/${username}/${repo}/${branch}/.js/plugins`; +const { execSync } = require('child_process'); +const REMOTE = execSync('git remote get-url origin').toString().replace(/[\s\n]/g, ''); +const CURRENT_BRANCH = execSync('git rev-parse --abbrev-ref HEAD').toString().replace(/[\s\n]/g, ''); +const USERNAME = REMOTE.split('/')[3].trim(); +const REPO = REMOTE.split('/')[4].trim().replace(/\.git$/, ''); +const USER_CONTENT_LINK = `https://raw.githubusercontent.com/${USERNAME}/${REPO}/${CURRENT_BRANCH}`; + + +const ICON_LINK = `${USER_CONTENT_LINK}/icons`; +const PLUGIN_LINK = `${USER_CONTENT_LINK}/.js/plugins`; const json: { [key: string]: { @@ -33,8 +29,11 @@ const json: { iconUrl: string; }[]; } = {}; -const jsonPath = path.join(outRoot, ".dist", username, "plugins.json"); -const jsonMinPath = path.join(outRoot, ".dist", username, "plugins.min.json"); +if(!fs.existsSync(path.join(outRoot, '.dist'))){ + fs.mkdirSync(path.join(outRoot, '.dist')); +} +const jsonPath = path.join(outRoot, ".dist", "plugins.json"); +const jsonMinPath = path.join(outRoot, ".dist", "plugins.min.json"); const pluginSet = new Set(); for (let language in languages) { @@ -64,8 +63,8 @@ for (let language in languages) { site, lang: languageNative, version, - url: `${githubPluginsLink}/${language.toLowerCase()}/${plugin}`, - iconUrl: `${githubIconsLink}/${icon}`, + url: `${PLUGIN_LINK}/${language.toLowerCase()}/${plugin}`, + iconUrl: `${ICON_LINK}/${icon}`, } as const; if (pluginSet.has(id)) {