From f6e4189fbd496c01ccfefb50f40c9d1e112244bc Mon Sep 17 00:00:00 2001 From: K1ngfish3r <26593485+K1ngfish3r@users.noreply.github.com> Date: Mon, 18 May 2026 11:00:55 +0500 Subject: [PATCH] feat: Add Cherry Mist Cafe --- plugins/index.ts | 440 +++++++++--------- .../custom/cherrymistcafe/chapterTransform.js | 46 ++ plugins/multisrc/fictioneer/sources.json | 12 + .../fictioneer/cherrymistcafe/icon.png | Bin 0 -> 4879 bytes 4 files changed, 279 insertions(+), 219 deletions(-) create mode 100644 plugins/multisrc/fictioneer/custom/cherrymistcafe/chapterTransform.js create mode 100644 public/static/multisrc/fictioneer/cherrymistcafe/icon.png diff --git a/plugins/index.ts b/plugins/index.ts index 2307f3026..c152366d6 100644 --- a/plugins/index.ts +++ b/plugins/index.ts @@ -25,225 +25,226 @@ import p_22 from '@plugins/english/ArcaneTranslations[lightnovelwp]'; import p_23 from '@plugins/english/BelleReservoir[madara]'; import p_24 from '@plugins/english/BoxNovel[readnovelfull]'; import p_25 from '@plugins/english/CPUnovel[lightnovelwp]'; -import p_26 from '@plugins/english/CitrusAurora[madara]'; -import p_27 from '@plugins/english/CoralBoutique[madara]'; -import p_28 from '@plugins/english/DaoNovel[madara]'; -import p_29 from '@plugins/english/DaoTranslate[lightnovelwp]'; -import p_30 from '@plugins/english/DaoistQuest[fictioneer]'; -import p_31 from '@plugins/english/DearestRosalie[fictioneer]'; -import p_32 from '@plugins/english/DragonTea[madara]'; -import p_33 from '@plugins/english/Dragonholic[madara]'; -import p_34 from '@plugins/english/DuskBlossoms[madara]'; -import p_35 from '@plugins/english/ElloTL[lightnovelwp]'; -import p_36 from '@plugins/english/Eternalune[madara]'; -import p_37 from '@plugins/english/EtudeTranslations[madara]'; -import p_38 from '@plugins/english/FanNovel[readwn]'; -import p_39 from '@plugins/english/FansMTL[readwn]'; -import p_40 from '@plugins/english/FansTranslations[madara]'; -import p_41 from '@plugins/english/FirstKissNovel[madara]'; -import p_42 from '@plugins/english/Foxaholic[madara]'; -import p_43 from '@plugins/english/FreeWebNovel[readnovelfull]'; -import p_44 from '@plugins/english/GalaxyTranslations[madara]'; -import p_45 from '@plugins/english/Guavaread[madara]'; -import p_46 from '@plugins/english/HiraethTranslation[madara]'; -import p_47 from '@plugins/english/HotNovelPub[hotnovelpub]'; -import p_48 from '@plugins/english/Ippotranslations[lightnovelwp]'; -import p_49 from '@plugins/english/KDTNovels[lightnovelwp]'; -import p_50 from '@plugins/english/KeopiTranslations[lightnovelwp]'; -import p_51 from '@plugins/english/KnoxT[lightnovelwp]'; -import p_52 from '@plugins/english/LazyGirlTranslations[lightnovelwp]'; -import p_53 from '@plugins/english/LibRead[readnovelfull]'; -import p_54 from '@plugins/english/LightNovelCave[lightnovelworld]'; -import p_55 from '@plugins/english/LightNovelHeaven[madara]'; -import p_56 from '@plugins/english/LightNovelPlus[readnovelfull]'; -import p_57 from '@plugins/english/LightNovelPubVip[lightnovelworld]'; -import p_58 from '@plugins/english/LightNovelUpdates[madara]'; -import p_59 from '@plugins/english/LilyontheValley[fictioneer]'; -import p_60 from '@plugins/english/Ltnovel[readwn]'; -import p_61 from '@plugins/english/LulloBox[madara]'; -import p_62 from '@plugins/english/LunarLetters[madara]'; -import p_63 from '@plugins/english/MTLNovel[madara]'; -import p_64 from '@plugins/english/MTLNovel[mtlnovel]'; -import p_65 from '@plugins/english/Meownovel[madara]'; -import p_66 from '@plugins/english/MoonlightNovels[lightnovelwp]'; -import p_67 from '@plugins/english/MostNovel[madara]'; -import p_68 from '@plugins/english/MysticalSeries[madara]'; -import p_69 from '@plugins/english/NeoSekaiTranslations[madara]'; -import p_70 from '@plugins/english/NitroManga[madara]'; -import p_71 from '@plugins/english/NobleMTL[lightnovelwp]'; -import p_72 from '@plugins/english/NoiceTranslations[madara]'; -import p_73 from '@plugins/english/NovelBin[readnovelfull]'; -import p_74 from '@plugins/english/NovelCool[novelcool]'; -import p_75 from '@plugins/english/NovelFull[readnovelfull]'; -import p_76 from '@plugins/english/NovelLib[fictioneer]'; -import p_77 from '@plugins/english/NovelMultiverse[madara]'; -import p_78 from '@plugins/english/NovelNinja[madara]'; -import p_79 from '@plugins/english/NovelOnline'; -import p_80 from '@plugins/english/NovelTranslate[madara]'; -import p_81 from '@plugins/english/NovelsKnight[lightnovelwp]'; -import p_82 from '@plugins/english/PandaMachineTranslations[lightnovelwp]'; -import p_83 from '@plugins/english/PastelTales[madara]'; -import p_84 from '@plugins/english/PenguinSquad[fictioneer]'; -import p_85 from '@plugins/english/Prizma[fictioneer]'; -import p_86 from '@plugins/english/Ranobes[ranobes]'; -import p_87 from '@plugins/english/Ranovel[madara]'; -import p_88 from '@plugins/english/ReadFanfic[madara]'; -import p_89 from '@plugins/english/ReadNovelFull[readnovelfull]'; -import p_90 from '@plugins/english/RequiemTranslations[lightnovelwp]'; -import p_91 from '@plugins/english/SalmonLatte[madara]'; -import p_92 from '@plugins/english/SleepyTranslations[madara]'; -import p_93 from '@plugins/english/SonicMTL[madara]'; -import p_94 from '@plugins/english/SrankManga[madara]'; -import p_95 from '@plugins/english/StorySeedling'; -import p_96 from '@plugins/english/SweetEscape[madara]'; -import p_97 from '@plugins/english/SystemTranslation[lightnovelwp]'; -import p_98 from '@plugins/english/TranslatinOtaku[madara]'; -import p_99 from '@plugins/english/TranslationWeaver[lightnovelwp]'; -import p_100 from '@plugins/english/UniversalNovel[lightnovelwp]'; -import p_101 from '@plugins/english/VandyTranslate[lightnovelwp]'; -import p_102 from '@plugins/english/VioletLily[madara]'; -import p_103 from '@plugins/english/WebNovelLover[madara]'; -import p_104 from '@plugins/english/WebNovelPub[lightnovelworld]'; -import p_105 from '@plugins/english/WebNovelTranslation[madara]'; -import p_106 from '@plugins/english/WhiteMoonlightNovels[lightnovelwp]'; -import p_107 from '@plugins/english/WooksTeahouse[madara]'; -import p_108 from '@plugins/english/WordExcerpt[madara]'; -import p_109 from '@plugins/english/WuxiaSpace[readwn]'; -import p_110 from '@plugins/english/WuxiaV[readwn]'; -import p_111 from '@plugins/english/WuxiaWorldSite[madara]'; -import p_112 from '@plugins/english/Wuxiabox[readwn]'; -import p_113 from '@plugins/english/Wuxiafox[readwn]'; -import p_114 from '@plugins/english/ZetroTranslation[madara]'; -import p_115 from '@plugins/english/ao3'; -import p_116 from '@plugins/english/chrysanthemumgarden'; -import p_117 from '@plugins/english/crimsonscrolls'; -import p_118 from '@plugins/english/divinedaolibrary'; -import p_119 from '@plugins/english/dreambigtl'; -import p_120 from '@plugins/english/faqwikius'; -import p_121 from '@plugins/english/fenrirrealm'; -import p_122 from '@plugins/english/fictionzone'; -import p_123 from '@plugins/english/foxteller'; -import p_124 from '@plugins/english/genesis'; -import p_125 from '@plugins/english/indraTranslations'; -import p_126 from '@plugins/english/inkitt'; -import p_127 from '@plugins/english/inoveltranslation'; -import p_128 from '@plugins/english/leafstudio'; -import p_129 from '@plugins/english/lightnoveltranslation'; -import p_130 from '@plugins/english/lnmtl'; -import p_131 from '@plugins/english/mvlempyr'; -import p_132 from '@plugins/english/novelbuddy'; -import p_133 from '@plugins/english/novelfire'; -import p_134 from '@plugins/english/novelhall'; -import p_135 from '@plugins/english/novelhi'; -import p_136 from '@plugins/english/novelight'; -import p_137 from '@plugins/english/novelrest'; -import p_138 from '@plugins/english/novelupdates'; -import p_139 from '@plugins/english/pawread'; -import p_140 from '@plugins/english/rainofsnow'; -import p_141 from '@plugins/english/readfrom'; -import p_142 from '@plugins/english/relibrary'; -import p_143 from '@plugins/english/royalroad'; -import p_144 from '@plugins/english/scribblehub'; -import p_145 from '@plugins/english/vynovel'; -import p_146 from '@plugins/english/wct'; -import p_147 from '@plugins/english/webnovel'; -import p_148 from '@plugins/english/wtrlab'; -import p_149 from '@plugins/english/wuxiaworld'; -import p_150 from '@plugins/french/LighNovelFR[lightnovelwp]'; -import p_151 from '@plugins/french/MTLNovel(FR)[mtlnovel]'; -import p_152 from '@plugins/french/MassNovel[madara]'; -import p_153 from '@plugins/french/WorldNovel[madara]'; -import p_154 from '@plugins/french/chireads'; -import p_155 from '@plugins/french/harkeneliwood'; -import p_156 from '@plugins/french/kisswood'; -import p_157 from '@plugins/french/noveldeglace'; -import p_158 from '@plugins/french/novhell'; -import p_159 from '@plugins/french/warriorlegendtrad'; -import p_160 from '@plugins/french/wuxialnscantrad'; -import p_161 from '@plugins/french/xiaowaz'; -import p_162 from '@plugins/indonesian/BacaLightNovel[lightnovelwp]'; -import p_163 from '@plugins/indonesian/MTLNovel(ID)[mtlnovel]'; -import p_164 from '@plugins/indonesian/MeioNovel[madara]'; -import p_165 from '@plugins/indonesian/NovelBookID[madara]'; -import p_166 from '@plugins/indonesian/SekteNovel[lightnovelwp]'; -import p_167 from '@plugins/indonesian/Vanovel[madara]'; -import p_168 from '@plugins/indonesian/WBNovel[madara]'; -import p_169 from '@plugins/indonesian/indowebnovel'; -import p_170 from '@plugins/indonesian/sakuranovel'; -import p_171 from '@plugins/japanese/Syosetu'; -import p_172 from '@plugins/japanese/kakuyomu'; -import p_173 from '@plugins/korean/Agitoon'; -import p_174 from '@plugins/korean/FortuneEternal[madara]'; -import p_175 from '@plugins/multi/komga'; -import p_176 from '@plugins/polish/novelki'; -import p_177 from '@plugins/portuguese/BetterNovels[lightnovelwp]'; -import p_178 from '@plugins/portuguese/CentralNovel[lightnovelwp]'; -import p_179 from '@plugins/portuguese/Kiniga[madara]'; -import p_180 from '@plugins/portuguese/LaNovels[hotnovelpub]'; -import p_181 from '@plugins/portuguese/LightNovelBrasil[lightnovelwp]'; -import p_182 from '@plugins/portuguese/MTLNovel(PT)[mtlnovel]'; -import p_183 from '@plugins/portuguese/blogdoamonnovels'; -import p_184 from '@plugins/portuguese/illusia'; -import p_185 from '@plugins/portuguese/novelmania'; -import p_186 from '@plugins/portuguese/tsundoku'; -import p_187 from '@plugins/russian/Bllate[rulate]'; -import p_188 from '@plugins/russian/Bookhamster[ifreedom]'; -import p_189 from '@plugins/russian/Erolate[rulate]'; -import p_190 from '@plugins/russian/EzNovels[hotnovelpub]'; -import p_191 from '@plugins/russian/MTLNovel(RU)[mtlnovel]'; -import p_192 from '@plugins/russian/NovelCool(RU)[novelcool]'; -import p_193 from '@plugins/russian/Ranobes(RU)[ranobes]'; -import p_194 from '@plugins/russian/Rulate[rulate]'; -import p_195 from '@plugins/russian/authortoday'; -import p_196 from '@plugins/russian/bookriver'; -import p_197 from '@plugins/russian/ficbook'; -import p_198 from '@plugins/russian/jaomix'; -import p_199 from '@plugins/russian/neobook'; -import p_200 from '@plugins/russian/novelTL'; -import p_201 from '@plugins/russian/ranobehub'; -import p_202 from '@plugins/russian/ranobelib'; -import p_203 from '@plugins/russian/ranoberf'; -import p_204 from '@plugins/russian/renovels'; -import p_205 from '@plugins/russian/topliba'; -import p_206 from '@plugins/russian/zelluloza'; -import p_207 from '@plugins/russian/СвободныйМирРанобэ[ifreedom]'; -import p_208 from '@plugins/spanish/AllNovelRead[lightnovelwp]'; -import p_209 from '@plugins/spanish/AnimesHoy12[madara]'; -import p_210 from '@plugins/spanish/LightNovelDaily[hotnovelpub]'; -import p_211 from '@plugins/spanish/MTLNovel(ES)[mtlnovel]'; -import p_212 from '@plugins/spanish/NOVA'; -import p_213 from '@plugins/spanish/PanchoTranslations[madara]'; -import p_214 from '@plugins/spanish/TC&Sega[lightnovelwp]'; -import p_215 from '@plugins/spanish/TraduccionesAmistosas[madara]'; -import p_216 from '@plugins/spanish/hasutl'; -import p_217 from '@plugins/spanish/novelasligera'; -import p_218 from '@plugins/spanish/novelawuxia'; -import p_219 from '@plugins/spanish/novelyra'; -import p_220 from '@plugins/spanish/oasistranslations'; -import p_221 from '@plugins/spanish/skynovels'; -import p_222 from '@plugins/spanish/tunovelaligera'; -import p_223 from '@plugins/spanish/yukitls'; -import p_224 from '@plugins/thai/NovelLucky[madara]'; -import p_225 from '@plugins/thai/NovelPDF[madara]'; -import p_226 from '@plugins/turkish/ArazNovel[madara]'; -import p_227 from '@plugins/turkish/EKTAPLAR[madara]'; -import p_228 from '@plugins/turkish/KodeksLibrary[lightnovelwp]'; -import p_229 from '@plugins/turkish/MangaTR'; -import p_230 from '@plugins/turkish/NABSCANS[madara]'; -import p_231 from '@plugins/turkish/Namevt[lightnovelwp]'; -import p_232 from '@plugins/turkish/NovelTR[lightnovelwp]'; -import p_233 from '@plugins/turkish/Noveloku[madara]'; -import p_234 from '@plugins/turkish/RagnarScans[madara]'; -import p_235 from '@plugins/turkish/ThNovels[hotnovelpub]'; -import p_236 from '@plugins/turkish/TurkceLightNovels[madara]'; -import p_237 from '@plugins/turkish/WebNovelOku[madara]'; -import p_238 from '@plugins/turkish/epiknovel'; -import p_239 from '@plugins/turkish/kakikata[madara]'; -import p_240 from '@plugins/ukrainian/bakainua'; -import p_241 from '@plugins/ukrainian/smakolykytl'; -import p_242 from '@plugins/vietnamese/LNHako'; -import p_243 from '@plugins/vietnamese/lightnovelvn'; -import p_244 from '@plugins/vietnamese/nettruyen'; +import p_26 from '@plugins/english/CherryMistCafe[fictioneer]'; +import p_27 from '@plugins/english/CitrusAurora[madara]'; +import p_28 from '@plugins/english/CoralBoutique[madara]'; +import p_29 from '@plugins/english/DaoNovel[madara]'; +import p_30 from '@plugins/english/DaoTranslate[lightnovelwp]'; +import p_31 from '@plugins/english/DaoistQuest[fictioneer]'; +import p_32 from '@plugins/english/DearestRosalie[fictioneer]'; +import p_33 from '@plugins/english/DragonTea[madara]'; +import p_34 from '@plugins/english/Dragonholic[madara]'; +import p_35 from '@plugins/english/DuskBlossoms[madara]'; +import p_36 from '@plugins/english/ElloTL[lightnovelwp]'; +import p_37 from '@plugins/english/Eternalune[madara]'; +import p_38 from '@plugins/english/EtudeTranslations[madara]'; +import p_39 from '@plugins/english/FanNovel[readwn]'; +import p_40 from '@plugins/english/FansMTL[readwn]'; +import p_41 from '@plugins/english/FansTranslations[madara]'; +import p_42 from '@plugins/english/FirstKissNovel[madara]'; +import p_43 from '@plugins/english/Foxaholic[madara]'; +import p_44 from '@plugins/english/FreeWebNovel[readnovelfull]'; +import p_45 from '@plugins/english/GalaxyTranslations[madara]'; +import p_46 from '@plugins/english/Guavaread[madara]'; +import p_47 from '@plugins/english/HiraethTranslation[madara]'; +import p_48 from '@plugins/english/HotNovelPub[hotnovelpub]'; +import p_49 from '@plugins/english/Ippotranslations[lightnovelwp]'; +import p_50 from '@plugins/english/KDTNovels[lightnovelwp]'; +import p_51 from '@plugins/english/KeopiTranslations[lightnovelwp]'; +import p_52 from '@plugins/english/KnoxT[lightnovelwp]'; +import p_53 from '@plugins/english/LazyGirlTranslations[lightnovelwp]'; +import p_54 from '@plugins/english/LibRead[readnovelfull]'; +import p_55 from '@plugins/english/LightNovelCave[lightnovelworld]'; +import p_56 from '@plugins/english/LightNovelHeaven[madara]'; +import p_57 from '@plugins/english/LightNovelPlus[readnovelfull]'; +import p_58 from '@plugins/english/LightNovelPubVip[lightnovelworld]'; +import p_59 from '@plugins/english/LightNovelUpdates[madara]'; +import p_60 from '@plugins/english/LilyontheValley[fictioneer]'; +import p_61 from '@plugins/english/Ltnovel[readwn]'; +import p_62 from '@plugins/english/LulloBox[madara]'; +import p_63 from '@plugins/english/LunarLetters[madara]'; +import p_64 from '@plugins/english/MTLNovel[madara]'; +import p_65 from '@plugins/english/MTLNovel[mtlnovel]'; +import p_66 from '@plugins/english/Meownovel[madara]'; +import p_67 from '@plugins/english/MoonlightNovels[lightnovelwp]'; +import p_68 from '@plugins/english/MostNovel[madara]'; +import p_69 from '@plugins/english/MysticalSeries[madara]'; +import p_70 from '@plugins/english/NeoSekaiTranslations[madara]'; +import p_71 from '@plugins/english/NitroManga[madara]'; +import p_72 from '@plugins/english/NobleMTL[lightnovelwp]'; +import p_73 from '@plugins/english/NoiceTranslations[madara]'; +import p_74 from '@plugins/english/NovelBin[readnovelfull]'; +import p_75 from '@plugins/english/NovelCool[novelcool]'; +import p_76 from '@plugins/english/NovelFull[readnovelfull]'; +import p_77 from '@plugins/english/NovelLib[fictioneer]'; +import p_78 from '@plugins/english/NovelMultiverse[madara]'; +import p_79 from '@plugins/english/NovelNinja[madara]'; +import p_80 from '@plugins/english/NovelOnline'; +import p_81 from '@plugins/english/NovelTranslate[madara]'; +import p_82 from '@plugins/english/NovelsKnight[lightnovelwp]'; +import p_83 from '@plugins/english/PandaMachineTranslations[lightnovelwp]'; +import p_84 from '@plugins/english/PastelTales[madara]'; +import p_85 from '@plugins/english/PenguinSquad[fictioneer]'; +import p_86 from '@plugins/english/Prizma[fictioneer]'; +import p_87 from '@plugins/english/Ranobes[ranobes]'; +import p_88 from '@plugins/english/Ranovel[madara]'; +import p_89 from '@plugins/english/ReadFanfic[madara]'; +import p_90 from '@plugins/english/ReadNovelFull[readnovelfull]'; +import p_91 from '@plugins/english/RequiemTranslations[lightnovelwp]'; +import p_92 from '@plugins/english/SalmonLatte[madara]'; +import p_93 from '@plugins/english/SleepyTranslations[madara]'; +import p_94 from '@plugins/english/SonicMTL[madara]'; +import p_95 from '@plugins/english/SrankManga[madara]'; +import p_96 from '@plugins/english/StorySeedling'; +import p_97 from '@plugins/english/SweetEscape[madara]'; +import p_98 from '@plugins/english/SystemTranslation[lightnovelwp]'; +import p_99 from '@plugins/english/TranslatinOtaku[madara]'; +import p_100 from '@plugins/english/TranslationWeaver[lightnovelwp]'; +import p_101 from '@plugins/english/UniversalNovel[lightnovelwp]'; +import p_102 from '@plugins/english/VandyTranslate[lightnovelwp]'; +import p_103 from '@plugins/english/VioletLily[madara]'; +import p_104 from '@plugins/english/WebNovelLover[madara]'; +import p_105 from '@plugins/english/WebNovelPub[lightnovelworld]'; +import p_106 from '@plugins/english/WebNovelTranslation[madara]'; +import p_107 from '@plugins/english/WhiteMoonlightNovels[lightnovelwp]'; +import p_108 from '@plugins/english/WooksTeahouse[madara]'; +import p_109 from '@plugins/english/WordExcerpt[madara]'; +import p_110 from '@plugins/english/WuxiaSpace[readwn]'; +import p_111 from '@plugins/english/WuxiaV[readwn]'; +import p_112 from '@plugins/english/WuxiaWorldSite[madara]'; +import p_113 from '@plugins/english/Wuxiabox[readwn]'; +import p_114 from '@plugins/english/Wuxiafox[readwn]'; +import p_115 from '@plugins/english/ZetroTranslation[madara]'; +import p_116 from '@plugins/english/ao3'; +import p_117 from '@plugins/english/chrysanthemumgarden'; +import p_118 from '@plugins/english/crimsonscrolls'; +import p_119 from '@plugins/english/divinedaolibrary'; +import p_120 from '@plugins/english/dreambigtl'; +import p_121 from '@plugins/english/faqwikius'; +import p_122 from '@plugins/english/fenrirrealm'; +import p_123 from '@plugins/english/fictionzone'; +import p_124 from '@plugins/english/foxteller'; +import p_125 from '@plugins/english/genesis'; +import p_126 from '@plugins/english/indraTranslations'; +import p_127 from '@plugins/english/inkitt'; +import p_128 from '@plugins/english/inoveltranslation'; +import p_129 from '@plugins/english/leafstudio'; +import p_130 from '@plugins/english/lightnoveltranslation'; +import p_131 from '@plugins/english/lnmtl'; +import p_132 from '@plugins/english/mvlempyr'; +import p_133 from '@plugins/english/novelbuddy'; +import p_134 from '@plugins/english/novelfire'; +import p_135 from '@plugins/english/novelhall'; +import p_136 from '@plugins/english/novelhi'; +import p_137 from '@plugins/english/novelight'; +import p_138 from '@plugins/english/novelrest'; +import p_139 from '@plugins/english/novelupdates'; +import p_140 from '@plugins/english/pawread'; +import p_141 from '@plugins/english/rainofsnow'; +import p_142 from '@plugins/english/readfrom'; +import p_143 from '@plugins/english/relibrary'; +import p_144 from '@plugins/english/royalroad'; +import p_145 from '@plugins/english/scribblehub'; +import p_146 from '@plugins/english/vynovel'; +import p_147 from '@plugins/english/wct'; +import p_148 from '@plugins/english/webnovel'; +import p_149 from '@plugins/english/wtrlab'; +import p_150 from '@plugins/english/wuxiaworld'; +import p_151 from '@plugins/french/LighNovelFR[lightnovelwp]'; +import p_152 from '@plugins/french/MTLNovel(FR)[mtlnovel]'; +import p_153 from '@plugins/french/MassNovel[madara]'; +import p_154 from '@plugins/french/WorldNovel[madara]'; +import p_155 from '@plugins/french/chireads'; +import p_156 from '@plugins/french/harkeneliwood'; +import p_157 from '@plugins/french/kisswood'; +import p_158 from '@plugins/french/noveldeglace'; +import p_159 from '@plugins/french/novhell'; +import p_160 from '@plugins/french/warriorlegendtrad'; +import p_161 from '@plugins/french/wuxialnscantrad'; +import p_162 from '@plugins/french/xiaowaz'; +import p_163 from '@plugins/indonesian/BacaLightNovel[lightnovelwp]'; +import p_164 from '@plugins/indonesian/MTLNovel(ID)[mtlnovel]'; +import p_165 from '@plugins/indonesian/MeioNovel[madara]'; +import p_166 from '@plugins/indonesian/NovelBookID[madara]'; +import p_167 from '@plugins/indonesian/SekteNovel[lightnovelwp]'; +import p_168 from '@plugins/indonesian/Vanovel[madara]'; +import p_169 from '@plugins/indonesian/WBNovel[madara]'; +import p_170 from '@plugins/indonesian/indowebnovel'; +import p_171 from '@plugins/indonesian/sakuranovel'; +import p_172 from '@plugins/japanese/Syosetu'; +import p_173 from '@plugins/japanese/kakuyomu'; +import p_174 from '@plugins/korean/Agitoon'; +import p_175 from '@plugins/korean/FortuneEternal[madara]'; +import p_176 from '@plugins/multi/komga'; +import p_177 from '@plugins/polish/novelki'; +import p_178 from '@plugins/portuguese/BetterNovels[lightnovelwp]'; +import p_179 from '@plugins/portuguese/CentralNovel[lightnovelwp]'; +import p_180 from '@plugins/portuguese/Kiniga[madara]'; +import p_181 from '@plugins/portuguese/LaNovels[hotnovelpub]'; +import p_182 from '@plugins/portuguese/LightNovelBrasil[lightnovelwp]'; +import p_183 from '@plugins/portuguese/MTLNovel(PT)[mtlnovel]'; +import p_184 from '@plugins/portuguese/blogdoamonnovels'; +import p_185 from '@plugins/portuguese/illusia'; +import p_186 from '@plugins/portuguese/novelmania'; +import p_187 from '@plugins/portuguese/tsundoku'; +import p_188 from '@plugins/russian/Bllate[rulate]'; +import p_189 from '@plugins/russian/Bookhamster[ifreedom]'; +import p_190 from '@plugins/russian/Erolate[rulate]'; +import p_191 from '@plugins/russian/EzNovels[hotnovelpub]'; +import p_192 from '@plugins/russian/MTLNovel(RU)[mtlnovel]'; +import p_193 from '@plugins/russian/NovelCool(RU)[novelcool]'; +import p_194 from '@plugins/russian/Ranobes(RU)[ranobes]'; +import p_195 from '@plugins/russian/Rulate[rulate]'; +import p_196 from '@plugins/russian/authortoday'; +import p_197 from '@plugins/russian/bookriver'; +import p_198 from '@plugins/russian/ficbook'; +import p_199 from '@plugins/russian/jaomix'; +import p_200 from '@plugins/russian/neobook'; +import p_201 from '@plugins/russian/novelTL'; +import p_202 from '@plugins/russian/ranobehub'; +import p_203 from '@plugins/russian/ranobelib'; +import p_204 from '@plugins/russian/ranoberf'; +import p_205 from '@plugins/russian/renovels'; +import p_206 from '@plugins/russian/topliba'; +import p_207 from '@plugins/russian/zelluloza'; +import p_208 from '@plugins/russian/СвободныйМирРанобэ[ifreedom]'; +import p_209 from '@plugins/spanish/AllNovelRead[lightnovelwp]'; +import p_210 from '@plugins/spanish/AnimesHoy12[madara]'; +import p_211 from '@plugins/spanish/LightNovelDaily[hotnovelpub]'; +import p_212 from '@plugins/spanish/MTLNovel(ES)[mtlnovel]'; +import p_213 from '@plugins/spanish/NOVA'; +import p_214 from '@plugins/spanish/PanchoTranslations[madara]'; +import p_215 from '@plugins/spanish/TC&Sega[lightnovelwp]'; +import p_216 from '@plugins/spanish/TraduccionesAmistosas[madara]'; +import p_217 from '@plugins/spanish/hasutl'; +import p_218 from '@plugins/spanish/novelasligera'; +import p_219 from '@plugins/spanish/novelawuxia'; +import p_220 from '@plugins/spanish/novelyra'; +import p_221 from '@plugins/spanish/oasistranslations'; +import p_222 from '@plugins/spanish/skynovels'; +import p_223 from '@plugins/spanish/tunovelaligera'; +import p_224 from '@plugins/spanish/yukitls'; +import p_225 from '@plugins/thai/NovelLucky[madara]'; +import p_226 from '@plugins/thai/NovelPDF[madara]'; +import p_227 from '@plugins/turkish/ArazNovel[madara]'; +import p_228 from '@plugins/turkish/EKTAPLAR[madara]'; +import p_229 from '@plugins/turkish/KodeksLibrary[lightnovelwp]'; +import p_230 from '@plugins/turkish/MangaTR'; +import p_231 from '@plugins/turkish/NABSCANS[madara]'; +import p_232 from '@plugins/turkish/Namevt[lightnovelwp]'; +import p_233 from '@plugins/turkish/NovelTR[lightnovelwp]'; +import p_234 from '@plugins/turkish/Noveloku[madara]'; +import p_235 from '@plugins/turkish/RagnarScans[madara]'; +import p_236 from '@plugins/turkish/ThNovels[hotnovelpub]'; +import p_237 from '@plugins/turkish/TurkceLightNovels[madara]'; +import p_238 from '@plugins/turkish/WebNovelOku[madara]'; +import p_239 from '@plugins/turkish/epiknovel'; +import p_240 from '@plugins/turkish/kakikata[madara]'; +import p_241 from '@plugins/ukrainian/bakainua'; +import p_242 from '@plugins/ukrainian/smakolykytl'; +import p_243 from '@plugins/vietnamese/LNHako'; +import p_244 from '@plugins/vietnamese/lightnovelvn'; +import p_245 from '@plugins/vietnamese/nettruyen'; const PLUGINS: Plugin.PluginBase[] = [ p_0, @@ -491,5 +492,6 @@ const PLUGINS: Plugin.PluginBase[] = [ p_242, p_243, p_244, + p_245, ]; export default PLUGINS; diff --git a/plugins/multisrc/fictioneer/custom/cherrymistcafe/chapterTransform.js b/plugins/multisrc/fictioneer/custom/cherrymistcafe/chapterTransform.js new file mode 100644 index 000000000..0f309828d --- /dev/null +++ b/plugins/multisrc/fictioneer/custom/cherrymistcafe/chapterTransform.js @@ -0,0 +1,46 @@ + const ghostScript = loadedCheerio('script[id*=ghost]'); + const contentHost = loadedCheerio('#cherry-content-host'); + + if (ghostScript.length && contentHost.length) { + const poly = ghostScript.attr('data-poly'); + // data-poly attr provide id + // encoded text is stored in attr data-{id}-{number} + // create full string of all the data-poly-nums + const encoded = Array.from( + { length: +ghostScript.attr('data-total') || 0 }, + (_, i) => ghostScript.attr(`data-${poly}-${i}`) || '', + ).join(''); + + // technically copypasta from source + // var c = s.charCodeAt(i); + // if(c>=65 && c<=90) + // o+=String.fromCharCode((c-65+13)%26+65); + // else if(c>=97&&c<=122) + // o+=String.fromCharCode((c-97+13)%26+97); + // else + // o+=s.charAt(i); + if (encoded) { + const rot13 = (str) => { + return str.replace(/[a-zA-Z]/g, (char) => { + const base = char <= 'Z' ? 65 : 97; + const shift = ((char.charCodeAt(0) - base + 13) % 26) + base; + return String.fromCharCode(shift); + }); + }; + contentHost.replaceWith(decodeURIComponent(atob(rot13(encoded)))); + } + } + + loadedCheerio('script, ruby').remove(); + + loadedCheerio('section#chapter-content p [data-fcnc-rev="1"]').each((_, el) => { + const text = loadedCheerio(el).text().trim(); + if (text) loadedCheerio(el).replaceWith([...text].reverse().join('')); + }); + + return ( + loadedCheerio('section#chapter-content > div') + .html() + ?.replace(/\u00A0/g, ' ') + ?.replace(/[\u2060\u00AD\u202F\u2007\u200B]/g, '') || '' + ); diff --git a/plugins/multisrc/fictioneer/sources.json b/plugins/multisrc/fictioneer/sources.json index 7e0cb86b5..06cc73009 100644 --- a/plugins/multisrc/fictioneer/sources.json +++ b/plugins/multisrc/fictioneer/sources.json @@ -53,5 +53,17 @@ "down": true, "downSince": 1768289212907 } + }, + { + "id": "cherrymistcafe", + "sourceSite": "https://cherrymist.cafe/", + "sourceName": "Cherry Mist Cafe", + "options": { + "customJs": { + "chapterTransform": "custom/cherrymistcafe/chapterTransform.js" + }, + "versionIncrements": 1, + "browsePage": "stories" + } } ] diff --git a/public/static/multisrc/fictioneer/cherrymistcafe/icon.png b/public/static/multisrc/fictioneer/cherrymistcafe/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..bf7eecd3d80ebe850de0a171ba2070b1b0feda7c GIT binary patch literal 4879 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 B2