From d9a66b76514739420e6ee3a913be9b80cc9396af Mon Sep 17 00:00:00 2001 From: Schnitzel5 Date: Mon, 25 Nov 2024 22:51:11 +0100 Subject: [PATCH 1/6] add novel support --- .../src/frenchanime/frenchanime.dart | 2 +- .../datalifeengine/src/wiflix/wiflix.dart | 2 +- .../dopeflix/src/dopebox/dopebox.dart | 2 +- .../multisrc/dopeflix/src/sflix/sflix.dart | 2 +- .../zorotheme/src/hianime/hianime.dart | 2 +- .../multisrc/zorotheme/src/kaido/kaido.dart | 2 +- .../src/all/animeworldindia/sources.dart | 2 +- dart/anime/src/all/nyaa/source.dart | 2 +- dart/anime/src/ar/okanime/source.dart | 2 +- dart/anime/src/de/animetoast/source.dart | 2 +- dart/anime/src/en/animepahe/source.dart | 2 +- dart/anime/src/en/dramacool/source.dart | 2 +- dart/anime/src/en/gogoanime/source.dart | 2 +- dart/anime/src/en/kisskh/source.dart | 2 +- dart/anime/src/en/nineanimetv/source.dart | 2 +- dart/anime/src/en/uhdmovies/source.dart | 2 +- dart/anime/src/fr/animesama/source.dart | 2 +- dart/anime/src/fr/animesultra/source.dart | 2 +- dart/anime/src/fr/franime/source.dart | 2 +- dart/anime/src/fr/otakufr/source.dart | 2 +- dart/anime/src/hi/yomovies/source.dart | 2 +- dart/anime/src/id/nimegami/source.dart | 2 +- dart/anime/src/id/oploverz/source.dart | 2 +- dart/anime/src/id/otakudesu/source.dart | 2 +- dart/anime/src/it/animesaturn/source.dart | 2 +- dart/anime/src/pt/animesvision/source.dart | 2 +- dart/anime/src/sq/filma24/source.dart | 2 +- dart/anime/src/tr/diziwatch/source.dart | 2 +- dart/manga/multisrc/madara/sources.dart | 1 + dart/manga/multisrc/mangabox/sources.dart | 1 + dart/manga/multisrc/mangareader/sources.dart | 1 + dart/manga/multisrc/mmrcms/sources.dart | 1 + dart/manga/multisrc/nepnep/sources.dart | 1 + dart/manga/src/all/comick/sources.dart | 1 + dart/manga/src/all/mangadex/sources.dart | 1 + dart/manga/src/en/mangahere/source.dart | 1 + dart/novel/novel_source_list.dart | 4 ++++ dart/novel/src/en/icon.png | Bin 0 -> 17418 bytes dart/novel/src/en/novelupdates.dart | 0 dart/novel/src/en/source.dart | 19 +++++++++++++++ javascript/anime/src/de/aniworld.js | 2 +- javascript/anime/src/en/allanime.js | 2 +- javascript/anime/src/es/animeflv.js | 2 +- javascript/anime/src/zh/360zy.js | 2 +- javascript/anime/src/zh/ffzy.js | 2 +- javascript/anime/src/zh/huaweiba.js | 2 +- javascript/anime/src/zh/jisuzy.js | 2 +- javascript/anime/src/zh/mikan.js | 2 +- javascript/anime/src/zh/tiankongzy.js | 2 +- javascript/anime/src/zh/yhdm.js | 2 +- javascript/manga/src/zh/77mh.js | 2 +- javascript/manga/src/zh/copymanga.js | 2 +- javascript/manga/src/zh/dmzj.js | 2 +- javascript/manga/src/zh/manhuadb.js | 2 +- javascript/manga/src/zh/manhuagui.js | 2 +- model/source.dart | 14 +++++++---- source_generator.dart | 22 +++++++++++++++--- 57 files changed, 103 insertions(+), 50 deletions(-) create mode 100644 dart/novel/novel_source_list.dart create mode 100644 dart/novel/src/en/icon.png create mode 100644 dart/novel/src/en/novelupdates.dart create mode 100644 dart/novel/src/en/source.dart diff --git a/dart/anime/multisrc/datalifeengine/src/frenchanime/frenchanime.dart b/dart/anime/multisrc/datalifeengine/src/frenchanime/frenchanime.dart index f28491dc..719dcece 100644 --- a/dart/anime/multisrc/datalifeengine/src/frenchanime/frenchanime.dart +++ b/dart/anime/multisrc/datalifeengine/src/frenchanime/frenchanime.dart @@ -7,7 +7,7 @@ Source _frenchanimeSource = Source( baseUrl: "https://french-anime.com", lang: "fr", typeSource: "datalifeengine", - isManga: false, + itemType: ItemType.anime, iconUrl: "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/multisrc/datalifeengine/src/frenchanime/icon.png", ); diff --git a/dart/anime/multisrc/datalifeengine/src/wiflix/wiflix.dart b/dart/anime/multisrc/datalifeengine/src/wiflix/wiflix.dart index 3e98c937..083a1aa9 100644 --- a/dart/anime/multisrc/datalifeengine/src/wiflix/wiflix.dart +++ b/dart/anime/multisrc/datalifeengine/src/wiflix/wiflix.dart @@ -7,7 +7,7 @@ Source _wiflixSource = Source( baseUrl: "https://wiflix.bot", lang: "fr", typeSource: "datalifeengine", - isManga: false, + itemType: ItemType.anime, iconUrl: "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/multisrc/datalifeengine/src/wiflix/icon.png", ); diff --git a/dart/anime/multisrc/dopeflix/src/dopebox/dopebox.dart b/dart/anime/multisrc/dopeflix/src/dopebox/dopebox.dart index 2029e53f..ef8a39c7 100644 --- a/dart/anime/multisrc/dopeflix/src/dopebox/dopebox.dart +++ b/dart/anime/multisrc/dopeflix/src/dopebox/dopebox.dart @@ -7,7 +7,7 @@ Source _dopeboxSource = Source( baseUrl: "https://dopebox.to", lang: "en", typeSource: "dopeflix", - isManga: false, + itemType: ItemType.anime, iconUrl: "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/multisrc/dopeflix/src/dopebox/icon.png", ); diff --git a/dart/anime/multisrc/dopeflix/src/sflix/sflix.dart b/dart/anime/multisrc/dopeflix/src/sflix/sflix.dart index 89d420a4..c19dbd1e 100644 --- a/dart/anime/multisrc/dopeflix/src/sflix/sflix.dart +++ b/dart/anime/multisrc/dopeflix/src/sflix/sflix.dart @@ -7,7 +7,7 @@ Source _sflixSource = Source( baseUrl: "https://sflix.to", lang: "en", typeSource: "dopeflix", - isManga: false, + itemType: ItemType.anime, iconUrl: "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/multisrc/dopeflix/src/sflix/icon.png", ); diff --git a/dart/anime/multisrc/zorotheme/src/hianime/hianime.dart b/dart/anime/multisrc/zorotheme/src/hianime/hianime.dart index 86b54428..27bc3449 100644 --- a/dart/anime/multisrc/zorotheme/src/hianime/hianime.dart +++ b/dart/anime/multisrc/zorotheme/src/hianime/hianime.dart @@ -6,7 +6,7 @@ Source _aniwatchSource = Source( id: 814067600, name: "HiAnime", baseUrl: "https://hianime.to", - isManga: false, + itemType: ItemType.anime, lang: "en", typeSource: "zorotheme", iconUrl: diff --git a/dart/anime/multisrc/zorotheme/src/kaido/kaido.dart b/dart/anime/multisrc/zorotheme/src/kaido/kaido.dart index 7270c8cb..59929d21 100644 --- a/dart/anime/multisrc/zorotheme/src/kaido/kaido.dart +++ b/dart/anime/multisrc/zorotheme/src/kaido/kaido.dart @@ -6,7 +6,7 @@ Source _kaidoSource = Source( name: "Kaido.to", baseUrl: "https://kaido.to", lang: "en", - isManga: false, + itemType: ItemType.anime, typeSource: "zorotheme", iconUrl: "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/multisrc/zorotheme/src/kaido/icon.png", diff --git a/dart/anime/src/all/animeworldindia/sources.dart b/dart/anime/src/all/animeworldindia/sources.dart index 52db9e30..7d5e80e8 100644 --- a/dart/anime/src/all/animeworldindia/sources.dart +++ b/dart/anime/src/all/animeworldindia/sources.dart @@ -28,6 +28,6 @@ List _animeworldindiaSourcesList = _languages typeSource: "multiple", iconUrl: _iconUrl, version: _animeworldindiaVersion, - isManga: false, + itemType: ItemType.anime, sourceCodeUrl: _animeworldindiaSourceCodeUrl)) .toList(); diff --git a/dart/anime/src/all/nyaa/source.dart b/dart/anime/src/all/nyaa/source.dart index ea04acd6..358cda2c 100644 --- a/dart/anime/src/all/nyaa/source.dart +++ b/dart/anime/src/all/nyaa/source.dart @@ -15,5 +15,5 @@ Source _nyaaSource = Source( typeSource: "torrent", iconUrl: _iconUrl, version: _nyaaVersion, - isManga: false, + itemType: ItemType.anime, sourceCodeUrl: _nyaaSourceCodeUrl); diff --git a/dart/anime/src/ar/okanime/source.dart b/dart/anime/src/ar/okanime/source.dart index 64ab435d..ac354883 100644 --- a/dart/anime/src/ar/okanime/source.dart +++ b/dart/anime/src/ar/okanime/source.dart @@ -13,4 +13,4 @@ Source _okanimeSource = Source( "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/ar/okanime/icon.png", sourceCodeUrl: _okanimeSourceCodeUrl, version: _okanimeVersion, - isManga: false); + itemType: ItemType.anime); diff --git a/dart/anime/src/de/animetoast/source.dart b/dart/anime/src/de/animetoast/source.dart index f3b6e160..e472a65c 100644 --- a/dart/anime/src/de/animetoast/source.dart +++ b/dart/anime/src/de/animetoast/source.dart @@ -13,4 +13,4 @@ Source _animetoast = Source( "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/de/animetoast/icon.png", sourceCodeUrl: _animetoastCodeUrl, version: _animetoastVersion, - isManga: false); + itemType: ItemType.anime); diff --git a/dart/anime/src/en/animepahe/source.dart b/dart/anime/src/en/animepahe/source.dart index 9a52802d..0bf8602a 100644 --- a/dart/anime/src/en/animepahe/source.dart +++ b/dart/anime/src/en/animepahe/source.dart @@ -13,4 +13,4 @@ Source _animepaheSource = Source( "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/en/animepahe/icon.png", sourceCodeUrl: _animepaheSourceCodeUrl, version: _animepaheVersion, - isManga: false); + itemType: ItemType.anime); diff --git a/dart/anime/src/en/dramacool/source.dart b/dart/anime/src/en/dramacool/source.dart index f70146c6..7c0cb4cd 100644 --- a/dart/anime/src/en/dramacool/source.dart +++ b/dart/anime/src/en/dramacool/source.dart @@ -13,4 +13,4 @@ Source _dramacoolSource = Source( "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/en/dramacool/icon.png", sourceCodeUrl: _dramacoolSourceCodeUrl, version: _dramacoolVersion, - isManga: false); + itemType: ItemType.anime); diff --git a/dart/anime/src/en/gogoanime/source.dart b/dart/anime/src/en/gogoanime/source.dart index 0529962b..90640b1f 100644 --- a/dart/anime/src/en/gogoanime/source.dart +++ b/dart/anime/src/en/gogoanime/source.dart @@ -13,4 +13,4 @@ Source _gogoanimeSource = Source( "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/en/gogoanime/icon.png", sourceCodeUrl: _gogoanimeSourceCodeUrl, version: _gogoanimeVersion, - isManga: false); + itemType: ItemType.anime); diff --git a/dart/anime/src/en/kisskh/source.dart b/dart/anime/src/en/kisskh/source.dart index 26cc5a10..c4405238 100644 --- a/dart/anime/src/en/kisskh/source.dart +++ b/dart/anime/src/en/kisskh/source.dart @@ -13,4 +13,4 @@ Source _kisskhSource = Source( "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/en/kisskh/icon.png", sourceCodeUrl: _kisskhSourceCodeUrl, version: _kisskhVersion, - isManga: false); + itemType: ItemType.anime); diff --git a/dart/anime/src/en/nineanimetv/source.dart b/dart/anime/src/en/nineanimetv/source.dart index d568ea93..c57ada38 100644 --- a/dart/anime/src/en/nineanimetv/source.dart +++ b/dart/anime/src/en/nineanimetv/source.dart @@ -13,4 +13,4 @@ Source _nineanimetv = Source( "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/en/nineanimetv/icon.png", sourceCodeUrl: _nineanimetvCodeUrl, version: _nineanimetvVersion, - isManga: false); + itemType: ItemType.anime); diff --git a/dart/anime/src/en/uhdmovies/source.dart b/dart/anime/src/en/uhdmovies/source.dart index 8cb2eb8f..00014bc9 100644 --- a/dart/anime/src/en/uhdmovies/source.dart +++ b/dart/anime/src/en/uhdmovies/source.dart @@ -13,4 +13,4 @@ Source _uhdmoviesSource = Source( "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/en/uhdmovies/icon.png", sourceCodeUrl: _uhdmoviesSourceCodeUrl, version: _uhdmoviesVersion, - isManga: false); + itemType: ItemType.anime); diff --git a/dart/anime/src/fr/animesama/source.dart b/dart/anime/src/fr/animesama/source.dart index 18baefe3..bc99cc92 100644 --- a/dart/anime/src/fr/animesama/source.dart +++ b/dart/anime/src/fr/animesama/source.dart @@ -13,4 +13,4 @@ Source _animesama = Source( "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/fr/animesama/icon.png", sourceCodeUrl: animesamaCodeUrl, version: animesamaVersion, - isManga: false); + itemType: ItemType.anime); diff --git a/dart/anime/src/fr/animesultra/source.dart b/dart/anime/src/fr/animesultra/source.dart index 2fbc1c92..cfb16690 100644 --- a/dart/anime/src/fr/animesultra/source.dart +++ b/dart/anime/src/fr/animesultra/source.dart @@ -13,5 +13,5 @@ Source _animesultraSource = Source( "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/fr/animesultra/icon.png", sourceCodeUrl: _animesultraSourceCodeUrl, version: _animesultraVersion, - isManga: false, + itemType: ItemType.anime, isFullData: false); diff --git a/dart/anime/src/fr/franime/source.dart b/dart/anime/src/fr/franime/source.dart index c91f0113..22b5a5b8 100644 --- a/dart/anime/src/fr/franime/source.dart +++ b/dart/anime/src/fr/franime/source.dart @@ -14,5 +14,5 @@ Source _franimeSource = Source( "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/fr/franime/icon.png", sourceCodeUrl: _franimeSourceCodeUrl, version: _franimeVersion, - isManga: false, + itemType: ItemType.anime, isFullData: true); diff --git a/dart/anime/src/fr/otakufr/source.dart b/dart/anime/src/fr/otakufr/source.dart index ee005123..14d7208a 100644 --- a/dart/anime/src/fr/otakufr/source.dart +++ b/dart/anime/src/fr/otakufr/source.dart @@ -13,5 +13,5 @@ Source _otakufr = Source( "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/fr/otakufr/icon.png", sourceCodeUrl: otakufrCodeUrl, version: otakufrVersion, - isManga: false, + itemType: ItemType.anime, isFullData: false); diff --git a/dart/anime/src/hi/yomovies/source.dart b/dart/anime/src/hi/yomovies/source.dart index a6df350c..39d2e5d1 100644 --- a/dart/anime/src/hi/yomovies/source.dart +++ b/dart/anime/src/hi/yomovies/source.dart @@ -13,4 +13,4 @@ Source _yomoviesSource = Source( "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/hi/yomovies/icon.png", sourceCodeUrl: _yomoviesSourceCodeUrl, version: _yomoviesVersion, - isManga: false); + itemType: ItemType.anime); diff --git a/dart/anime/src/id/nimegami/source.dart b/dart/anime/src/id/nimegami/source.dart index 1468aca8..1c009109 100644 --- a/dart/anime/src/id/nimegami/source.dart +++ b/dart/anime/src/id/nimegami/source.dart @@ -13,4 +13,4 @@ Source _nimegami = Source( "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/id/nimegami/icon.png", sourceCodeUrl: _nimegamiCodeUrl, version: _nimegamiVersion, - isManga: false); + itemType: ItemType.anime); diff --git a/dart/anime/src/id/oploverz/source.dart b/dart/anime/src/id/oploverz/source.dart index 4083f29f..d1ec05ba 100644 --- a/dart/anime/src/id/oploverz/source.dart +++ b/dart/anime/src/id/oploverz/source.dart @@ -13,4 +13,4 @@ Source _oploverz = Source( "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/id/oploverz/icon.png", sourceCodeUrl: _oploverzCodeUrl, version: _oploverzVersion, - isManga: false); + itemType: ItemType.anime); diff --git a/dart/anime/src/id/otakudesu/source.dart b/dart/anime/src/id/otakudesu/source.dart index 288b4050..f91ae909 100644 --- a/dart/anime/src/id/otakudesu/source.dart +++ b/dart/anime/src/id/otakudesu/source.dart @@ -13,4 +13,4 @@ Source _otakudesu = Source( "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/id/otakudesu/icon.png", sourceCodeUrl: _otakudesuCodeUrl, version: _otakudesuVersion, - isManga: false); + itemType: ItemType.anime); diff --git a/dart/anime/src/it/animesaturn/source.dart b/dart/anime/src/it/animesaturn/source.dart index 8148ab4c..a436568f 100644 --- a/dart/anime/src/it/animesaturn/source.dart +++ b/dart/anime/src/it/animesaturn/source.dart @@ -13,4 +13,4 @@ Source _animesaturn = Source( "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/it/animesaturn/icon.png", sourceCodeUrl: _animesaturnCodeUrl, version: _animesaturnVersion, - isManga: false); + itemType: ItemType.anime); diff --git a/dart/anime/src/pt/animesvision/source.dart b/dart/anime/src/pt/animesvision/source.dart index e2aa1711..183c192e 100644 --- a/dart/anime/src/pt/animesvision/source.dart +++ b/dart/anime/src/pt/animesvision/source.dart @@ -13,4 +13,4 @@ Source _animesvision = Source( "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/pt/animesvision/icon.png", sourceCodeUrl: _animesvisionCodeUrl, version: _animesvisionVersion, - isManga: false); + itemType: ItemType.anime); diff --git a/dart/anime/src/sq/filma24/source.dart b/dart/anime/src/sq/filma24/source.dart index d26ea58c..2b085406 100644 --- a/dart/anime/src/sq/filma24/source.dart +++ b/dart/anime/src/sq/filma24/source.dart @@ -13,4 +13,4 @@ Source _filma24 = Source( "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/sq/filma24/icon.png", sourceCodeUrl: _filma24CodeUrl, version: _filma24Version, - isManga: false); + itemType: ItemType.anime); diff --git a/dart/anime/src/tr/diziwatch/source.dart b/dart/anime/src/tr/diziwatch/source.dart index fdef5bc5..d13cc343 100644 --- a/dart/anime/src/tr/diziwatch/source.dart +++ b/dart/anime/src/tr/diziwatch/source.dart @@ -13,4 +13,4 @@ Source _diziwatchSource = Source( "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/tr/diziwatch/icon.png", sourceCodeUrl: _diziwatchSourceCodeUrl, version: _diziwatchVersion, - isManga: false); + itemType: ItemType.anime); diff --git a/dart/manga/multisrc/madara/sources.dart b/dart/manga/multisrc/madara/sources.dart index d31f89e5..01043613 100644 --- a/dart/manga/multisrc/madara/sources.dart +++ b/dart/manga/multisrc/madara/sources.dart @@ -571,6 +571,7 @@ List _madaraSourcesList = [ webtoonhattiSource, ] .map((e) => e + ..itemType = ItemType.manga ..sourceCodeUrl = madaraSourceCodeUrl ..version = madaraVersion) .toList(); diff --git a/dart/manga/multisrc/mangabox/sources.dart b/dart/manga/multisrc/mangabox/sources.dart index 9d6ebeb2..8ba94a88 100644 --- a/dart/manga/multisrc/mangabox/sources.dart +++ b/dart/manga/multisrc/mangabox/sources.dart @@ -20,6 +20,7 @@ List _mangaboxSourcesList = [ manganatoSource ] .map((e) => e + ..itemType = ItemType.manga ..sourceCodeUrl = mangaboxSourceCodeUrl ..version = mangaboxVersion) .toList(); diff --git a/dart/manga/multisrc/mangareader/sources.dart b/dart/manga/multisrc/mangareader/sources.dart index 368596ab..1f6ce4dc 100644 --- a/dart/manga/multisrc/mangareader/sources.dart +++ b/dart/manga/multisrc/mangareader/sources.dart @@ -292,6 +292,7 @@ List _mangareaderSourcesList = [ zenithscansSource ] .map((e) => e + ..itemType = ItemType.manga ..sourceCodeUrl = mangareaderSourceCodeUrl ..version = mangareaderVersion) .toList(); diff --git a/dart/manga/multisrc/mmrcms/sources.dart b/dart/manga/multisrc/mmrcms/sources.dart index 57164115..cbcc621d 100644 --- a/dart/manga/multisrc/mmrcms/sources.dart +++ b/dart/manga/multisrc/mmrcms/sources.dart @@ -32,6 +32,7 @@ List _mmrcmsSourcesList = [ mangafrSource, ] .map((e) => e + ..itemType = ItemType.manga ..sourceCodeUrl = mmrcmsSourceCodeUrl ..version = mmrcmsVersion) .toList(); diff --git a/dart/manga/multisrc/nepnep/sources.dart b/dart/manga/multisrc/nepnep/sources.dart index e191c8e0..f71f1929 100644 --- a/dart/manga/multisrc/nepnep/sources.dart +++ b/dart/manga/multisrc/nepnep/sources.dart @@ -15,6 +15,7 @@ List _nepnepSourcesList = [ mangalifeSource, ] .map((e) => e + ..itemType = ItemType.manga ..sourceCodeUrl = nepnepSourceCodeUrl ..version = nepnepVersion) .toList(); diff --git a/dart/manga/src/all/comick/sources.dart b/dart/manga/src/all/comick/sources.dart index 1fe49c0a..dbfb1b61 100644 --- a/dart/manga/src/all/comick/sources.dart +++ b/dart/manga/src/all/comick/sources.dart @@ -67,5 +67,6 @@ List _comickSourcesList = _languages isNsfw: _isNsfw, dateFormatLocale: "en", version: _comickVersion, + itemType: ItemType.manga, sourceCodeUrl: _comickSourceCodeUrl)) .toList(); diff --git a/dart/manga/src/all/mangadex/sources.dart b/dart/manga/src/all/mangadex/sources.dart index e5f023c4..1f8d9aef 100644 --- a/dart/manga/src/all/mangadex/sources.dart +++ b/dart/manga/src/all/mangadex/sources.dart @@ -70,5 +70,6 @@ List _mangaDexSourcesList = _languages isNsfw: _isNsfw, dateFormatLocale: 'en_Us', version: _mangadexVersion, + itemType: ItemType.manga, sourceCodeUrl: _mangadexSourceCodeUrl)) .toList(); diff --git a/dart/manga/src/en/mangahere/source.dart b/dart/manga/src/en/mangahere/source.dart index 095f6fe0..789e1d84 100644 --- a/dart/manga/src/en/mangahere/source.dart +++ b/dart/manga/src/en/mangahere/source.dart @@ -12,6 +12,7 @@ Source _mangahereSource = Source( iconUrl: "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/src/en/mangahere/icon.png", sourceCodeUrl: _mangahereSourceCodeUrl, + itemType: ItemType.manga, version: _mangahereVersion, dateFormat: "MMM dd,yyyy", dateFormatLocale: "en", diff --git a/dart/novel/novel_source_list.dart b/dart/novel/novel_source_list.dart new file mode 100644 index 00000000..51a1594a --- /dev/null +++ b/dart/novel/novel_source_list.dart @@ -0,0 +1,4 @@ +import '../../model/source.dart'; + +List dartNovelSourceList = [ +]; diff --git a/dart/novel/src/en/icon.png b/dart/novel/src/en/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..544fef066fef894fe949acc8d5f38290d0daa6fd GIT binary patch literal 17418 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
  • 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 literal 0 HcmV?d00001 diff --git a/dart/novel/src/en/novelupdates.dart b/dart/novel/src/en/novelupdates.dart new file mode 100644 index 00000000..e69de29b diff --git a/dart/novel/src/en/source.dart b/dart/novel/src/en/source.dart new file mode 100644 index 00000000..475354c3 --- /dev/null +++ b/dart/novel/src/en/source.dart @@ -0,0 +1,19 @@ +import '../../../../model/source.dart'; + +Source get novelUpdatesSource => _novelUpdatesSource; +const _novelUpdatesVersion = "0.0.1"; +const _novelUpdatesSourceCodeUrl = + "https://raw.githubusercontent.com/Schnitzel5/mangayomi-extensions/$branchName/dart/novel/src/en/novelupdates.dart"; +Source _novelUpdatesSource = Source( + name: "NovelUpdates", + baseUrl: "https://www.novelupdates.com", + lang: "en", + typeSource: "single", + iconUrl: + "https://raw.githubusercontent.com/Schnitzel5/mangayomi-extensions/$branchName/dart/manga/src/en/icon.png", + sourceCodeUrl: _novelUpdatesSourceCodeUrl, + itemType: ItemType.novel, + version: _novelUpdatesVersion, + dateFormat: "MMM dd,yyyy", + dateFormatLocale: "en", +); diff --git a/javascript/anime/src/de/aniworld.js b/javascript/anime/src/de/aniworld.js index 110e2f69..67c68e21 100644 --- a/javascript/anime/src/de/aniworld.js +++ b/javascript/anime/src/de/aniworld.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/de.aniworld.png", "typeSource": "single", - "isManga": false, + "itemType": "anime", "isNsfw": false, "version": "0.0.15", "dateFormat": "", diff --git a/javascript/anime/src/en/allanime.js b/javascript/anime/src/en/allanime.js index 44114676..6815242b 100644 --- a/javascript/anime/src/en/allanime.js +++ b/javascript/anime/src/en/allanime.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "https://api.allanime.day/api", "iconUrl": "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/en.allanime.png", "typeSource": "single", - "isManga": false, + "itemType": "anime", "isNsfw": false, "version": "0.0.25", "dateFormat": "", diff --git a/javascript/anime/src/es/animeflv.js b/javascript/anime/src/es/animeflv.js index 06ace0bd..cd59da2f 100644 --- a/javascript/anime/src/es/animeflv.js +++ b/javascript/anime/src/es/animeflv.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/es.animeflv.png", "typeSource": "single", - "isManga": false, + "itemType": "anime", "isNsfw": false, "version": "0.0.1", "dateFormat": "", diff --git a/javascript/anime/src/zh/360zy.js b/javascript/anime/src/zh/360zy.js index c0a59e36..0ecceaeb 100644 --- a/javascript/anime/src/zh/360zy.js +++ b/javascript/anime/src/zh/360zy.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "https://360zy.com/favicon.ico", "typeSource": "single", - "isManga": false, + "itemType": "anime", "isNsfw": false, "version": "0.0.1", "dateFormat": "", diff --git a/javascript/anime/src/zh/ffzy.js b/javascript/anime/src/zh/ffzy.js index f9dd2184..65ab73d1 100644 --- a/javascript/anime/src/zh/ffzy.js +++ b/javascript/anime/src/zh/ffzy.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "http://ffzy.tv/template/default/img/favicon.png", "typeSource": "single", - "isManga": false, + "itemType": "anime", "isNsfw": false, "version": "0.0.1", "dateFormat": "", diff --git a/javascript/anime/src/zh/huaweiba.js b/javascript/anime/src/zh/huaweiba.js index 200de6f7..56ea0744 100644 --- a/javascript/anime/src/zh/huaweiba.js +++ b/javascript/anime/src/zh/huaweiba.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "https://huaweiba.live/template/ziyuan/images/logo2.png", "typeSource": "single", - "isManga": false, + "itemType": "anime", "isNsfw": false, "version": "0.0.1", "dateFormat": "", diff --git a/javascript/anime/src/zh/jisuzy.js b/javascript/anime/src/zh/jisuzy.js index 7600ceb4..e3ce912b 100644 --- a/javascript/anime/src/zh/jisuzy.js +++ b/javascript/anime/src/zh/jisuzy.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "https://www.jisuzy.com/template/default/images/site_logo.png", "typeSource": "single", - "isManga": false, + "itemType": "anime", "isNsfw": false, "version": "0.0.1", "dateFormat": "", diff --git a/javascript/anime/src/zh/mikan.js b/javascript/anime/src/zh/mikan.js index abbd893a..fc5d122e 100644 --- a/javascript/anime/src/zh/mikan.js +++ b/javascript/anime/src/zh/mikan.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "https://mikanime.tv/images/mikan-pic.png", "typeSource": "torrent", - "isManga": false, + "itemType": "anime", "isNsfw": false, "version": "0.0.15", "dateFormat": "", diff --git a/javascript/anime/src/zh/tiankongzy.js b/javascript/anime/src/zh/tiankongzy.js index e9d21096..eb23c9a4 100644 --- a/javascript/anime/src/zh/tiankongzy.js +++ b/javascript/anime/src/zh/tiankongzy.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "https://api.tiankongapi.com/template/v10012/images/logo.jpg", "typeSource": "single", - "isManga": false, + "itemType": "anime", "isNsfw": false, "version": "0.0.1", "dateFormat": "", diff --git a/javascript/anime/src/zh/yhdm.js b/javascript/anime/src/zh/yhdm.js index a6bf7f82..d8c615db 100644 --- a/javascript/anime/src/zh/yhdm.js +++ b/javascript/anime/src/zh/yhdm.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "http://www.iyinghua.io/js/20180601/favicon.ico", "typeSource": "single", - "isManga": false, + "itemType": "anime", "isNsfw": false, "version": "0.0.15", "dateFormat": "", diff --git a/javascript/manga/src/zh/77mh.js b/javascript/manga/src/zh/77mh.js index 78417889..6f6fbda4 100644 --- a/javascript/manga/src/zh/77mh.js +++ b/javascript/manga/src/zh/77mh.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "https://www.77mh.nl/favicon.ico", "typeSource": "single", - "isManga": true, + "itemType": "manga", "isNsfw": false, "version": "0.0.25", "apiUrl": "", diff --git a/javascript/manga/src/zh/copymanga.js b/javascript/manga/src/zh/copymanga.js index 9278cad6..aa11dd73 100644 --- a/javascript/manga/src/zh/copymanga.js +++ b/javascript/manga/src/zh/copymanga.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "https://api.mangacopy.com", "iconUrl": "https://hi77-overseas.mangafuna.xyz/static/free.ico", "typeSource": "single", - "isManga": true, + "itemType": "manga", "isNsfw": false, "version": "0.0.2", "dateFormat": "", diff --git a/javascript/manga/src/zh/dmzj.js b/javascript/manga/src/zh/dmzj.js index 9c490fd4..064c7934 100644 --- a/javascript/manga/src/zh/dmzj.js +++ b/javascript/manga/src/zh/dmzj.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "https://www.dmzj.com/_nuxt/logo_dmzj.1c94014a.png", "typeSource": "single", - "isManga": true, + "itemType": "manga", "isNsfw": false, "version": "0.0.25", "dateFormat": "", diff --git a/javascript/manga/src/zh/manhuadb.js b/javascript/manga/src/zh/manhuadb.js index bc270e02..ad52caf7 100644 --- a/javascript/manga/src/zh/manhuadb.js +++ b/javascript/manga/src/zh/manhuadb.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/zh.manhuadb.png", "typeSource": "single", - "isManga": true, + "itemType": "manga", "isNsfw": false, "version": "0.0.25", "dateFormat": "", diff --git a/javascript/manga/src/zh/manhuagui.js b/javascript/manga/src/zh/manhuagui.js index 6dd7c95c..44bb2e73 100644 --- a/javascript/manga/src/zh/manhuagui.js +++ b/javascript/manga/src/zh/manhuagui.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "https://www.manhuagui.com/favicon.ico", "typeSource": "single", - "isManga": true, + "itemType": "manga", "isNsfw": false, "version": "0.0.25", "dateFormat": "", diff --git a/model/source.dart b/model/source.dart index f32f5305..84d3a218 100644 --- a/model/source.dart +++ b/model/source.dart @@ -25,7 +25,7 @@ class Source { String? version; - bool? isManga; + ItemType? itemType; bool? isFullData; @@ -49,7 +49,7 @@ class Source { this.sourceCodeUrl = "", this.apiUrl = "", this.version = "", - this.isManga = true, + this.itemType = ItemType.manga, this.isFullData = false, this.appMinVerReq = "0.2.0", this.additionalParams = "", @@ -68,7 +68,7 @@ class Source { : 'mangayomi-js-"${json['lang'] ?? ""}"."${json['name'] ?? ""}"') .hashCode; isFullData = json['isFullData'] ?? false; - isManga = json['isManga'] ?? false; + itemType = json['itemType'] ?? ItemType.manga; isNsfw = json['isNsfw'] ?? false; lang = json['lang'] ?? ""; name = json['name'] ?? ""; @@ -94,7 +94,7 @@ class Source { "sourceCodeUrl": sourceCodeUrl, "apiUrl": apiUrl, "version": version, - "isManga": isManga, + "itemType": itemType, "isFullData": isFullData, "appMinVerReq": appMinVerReq, "additionalParams": additionalParams, @@ -104,3 +104,9 @@ class Source { } const branchName = "main"; + +enum ItemType { + manga, + anime, + novel +} \ No newline at end of file diff --git a/source_generator.dart b/source_generator.dart index f2272441..1ee65660 100644 --- a/source_generator.dart +++ b/source_generator.dart @@ -3,12 +3,14 @@ import 'dart:developer'; import 'dart:io'; import 'dart/anime/anime_source_list.dart'; import 'dart/manga/manga_source_list.dart'; +import 'dart/novel/novel_source_list.dart'; import 'model/source.dart'; void main() { final jsSources = _searchJsSources(Directory("javascript")); - genManga(jsSources.where((element) => element.isManga!).toList()); - genAnime(jsSources.where((element) => !element.isManga!).toList()); + genManga(jsSources.where((element) => element.itemType == "manga").toList()); + genAnime(jsSources.where((element) => element.itemType == "anime").toList()); + genNovel(jsSources.where((element) => element.itemType == "novel").toList()); } void genManga(List jsMangasourceList) { @@ -39,6 +41,20 @@ void genAnime(List jsAnimesourceList) { log('JSON file created: ${file.path}'); } +void genNovel(List jsNovelSourceList) { + List novelSources = []; + novelSources.addAll(dartNovelSourceList); + novelSources.addAll(jsNovelSourceList); + final List> jsonList = + novelSources.map((source) => source.toJson()).toList(); + final jsonString = jsonEncode(jsonList); + + final file = File('novel_index.json'); + file.writeAsStringSync(jsonString); + + log('JSON file created: ${file.path}'); +} + List _searchJsSources(Directory dir) { List sourceList = []; List entities = dir.listSync(); @@ -60,7 +76,7 @@ List _searchJsSources(Directory dir) { ..sourceCodeLanguage = 1 ..appMinVerReq = defaultSource.appMinVerReq ..sourceCodeUrl = - "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/javascript/${e["pkgPath"] ?? e["pkgName"]}") + "https://raw.githubusercontent.com/Schnitzel5/mangayomi-extensions/$branchName/javascript/${e["pkgPath"] ?? e["pkgName"]}") .toList()); } } From 981833cac8ef6537fb722857421970f29426cdb8 Mon Sep 17 00:00:00 2001 From: Schnitzel5 Date: Mon, 25 Nov 2024 22:55:23 +0100 Subject: [PATCH 2/6] add novel support --- dart/anime/anime_source_list.dart | 6 +- .../es/animeonlineninja/animeonlineninja.dart | 309 ++++ dart/anime/src/es/animeonlineninja/icon.png | Bin 0 -> 4044 bytes .../anime/src/es/animeonlineninja/source.dart | 16 + dart/anime/src/fr/anizone/anizone.dart | 490 ++++++ dart/anime/src/fr/anizone/icon.png | Bin 0 -> 26313 bytes dart/anime/src/fr/anizone/source.dart | 16 + dart/anime/src/it/animesaturn/source.dart | 4 +- dart/manga/multisrc/mangareader/sources.dart | 3 - .../src/asurascans/asurascans.dart | 14 - dart/manga/src/all/mangadex/mangadex.dart | 7 +- dart/manga/src/all/mangadex/sources.dart | 2 +- index.json | 2 +- javascript/anime/src/all/netflixmirror.js | 202 +++ javascript/anime/src/de/aniworld.js | 254 +-- javascript/anime/src/de/serienstream.js | 273 ++++ javascript/anime/src/en/allanime.js | 16 +- javascript/anime/src/es/animefenix.js | 1128 +++++++++++++ javascript/anime/src/es/jkanime.js | 1398 +++++++++++++++++ javascript/anime/src/es/tioanime.js | 717 +++++++++ javascript/anime/src/zh/wogg.js | 218 +++ javascript/anime/src/zh/yydsys.js | 211 +++ javascript/icon/all.netflixmirror.png | Bin 0 -> 13305 bytes .../icon/en.asurascans.png | Bin javascript/manga/src/all/mangafire.js | 526 +++++++ javascript/manga/src/en/asurascans.js | 149 ++ model/source.dart | 7 +- source_generator.dart | 32 +- 28 files changed, 5836 insertions(+), 164 deletions(-) create mode 100644 dart/anime/src/es/animeonlineninja/animeonlineninja.dart create mode 100644 dart/anime/src/es/animeonlineninja/icon.png create mode 100644 dart/anime/src/es/animeonlineninja/source.dart create mode 100644 dart/anime/src/fr/anizone/anizone.dart create mode 100644 dart/anime/src/fr/anizone/icon.png create mode 100644 dart/anime/src/fr/anizone/source.dart delete mode 100644 dart/manga/multisrc/mangareader/src/asurascans/asurascans.dart create mode 100644 javascript/anime/src/all/netflixmirror.js create mode 100644 javascript/anime/src/de/serienstream.js create mode 100644 javascript/anime/src/es/animefenix.js create mode 100644 javascript/anime/src/es/jkanime.js create mode 100644 javascript/anime/src/es/tioanime.js create mode 100644 javascript/anime/src/zh/wogg.js create mode 100644 javascript/anime/src/zh/yydsys.js create mode 100644 javascript/icon/all.netflixmirror.png rename dart/manga/multisrc/mangareader/src/asurascans/icon.png => javascript/icon/en.asurascans.png (100%) create mode 100644 javascript/manga/src/all/mangafire.js create mode 100644 javascript/manga/src/en/asurascans.js diff --git a/dart/anime/anime_source_list.dart b/dart/anime/anime_source_list.dart index e582dc61..588bf52d 100644 --- a/dart/anime/anime_source_list.dart +++ b/dart/anime/anime_source_list.dart @@ -10,7 +10,9 @@ import 'src/en/animepahe/source.dart'; import 'src/en/dramacool/source.dart'; import 'src/en/gogoanime/source.dart'; import 'src/en/nineanimetv/source.dart'; +import 'src/es/animeonlineninja/source.dart'; import 'src/fr/animesama/source.dart'; +import 'src/fr/anizone/source.dart'; import 'src/hi/yomovies/source.dart'; import 'src/en/kisskh/source.dart'; import 'src/en/uhdmovies/source.dart'; @@ -50,5 +52,7 @@ List dartAnimesourceList = [ animepaheSource, animetoast, animesvision, - diziwatchSource + diziwatchSource, + aniZoneSource, + animeonlineninjaSource ]; diff --git a/dart/anime/src/es/animeonlineninja/animeonlineninja.dart b/dart/anime/src/es/animeonlineninja/animeonlineninja.dart new file mode 100644 index 00000000..24f8f713 --- /dev/null +++ b/dart/anime/src/es/animeonlineninja/animeonlineninja.dart @@ -0,0 +1,309 @@ +import 'package:mangayomi/bridge_lib.dart'; +import 'dart:convert'; + +class AnimeOnlineNinja extends MProvider { + AnimeOnlineNinja({required this.source}); + + MSource source; + + final Client client = Client(source); + + @override + bool get supportsLatest => false; + + @override + Future getPopular(int page) async { + final res = + (await client.get(Uri.parse("${source.baseUrl}/tendencias"))).body; + return parseAnimeList(res); + } + + @override + Future search(String query, int page, FilterList filterList) async { + String pageStr = page == 1 ? "" : "page/$page/"; + final res = (await client.get(Uri.parse( + "${source.baseUrl}/$pageStr?s=${query.replaceAll(" ", "+")}"))) + .body; + return parseAnimeList(res, + selector: "div.result-item div.image a", + hasNextPage: parseHtml(res) + .selectFirst( + "div.pagination > *:last-child:not(span):not(.current)") + ?.text != + null); + } + + @override + Future getDetail(String url) async { + final res = (await client.get(Uri.parse("${source.baseUrl}$url"))).body; + MManga anime = MManga(); + final document = parseHtml(res); + anime.description = document.selectFirst("div#info").text; + anime.genre = document + .selectFirst("div.sheader") + .select("div.data > div.sgeneros > a") + .map((e) => e.text) + .toList(); + + List? episodesList = []; + final seasonElements = document.select("div#seasons > div"); + if (seasonElements.isEmpty) { + MChapter episode = MChapter(); + episode.name = "Película"; + episode.url = getUrlWithoutDomain(url); + episodesList.add(episode); + } else { + for (var seasonElement in seasonElements) { + final seasonName = seasonElement.selectFirst("span.se-t").text; + for (var epElement in seasonElement.select("ul.episodios > li")) { + final href = epElement.selectFirst("a[href]"); + final epNum = epElement.selectFirst('div.numerando')?.text ?? "0 - 0"; + MChapter episode = MChapter(); + episode.name = + "Season $seasonName x ${substringAfter(epNum, '- ')} ${href.text}"; + episode.url = getUrlWithoutDomain(href!.getHref); + episodesList.add(episode); + } + } + } + + anime.chapters = episodesList.reversed.toList(); + return anime; + } + + @override + Future> getVideoList(String url) async { + final res = (await client.get(Uri.parse("${source.baseUrl}$url"))).body; + final document = parseHtml(res); + final players = document.select("ul#playeroptionsul li"); + List videos = []; + for (var player in players) { + final name = player.selectFirst("span.title").text; + final type = player.attr("data-type"); + final id = player.attr("data-post"); + final num = player.attr("data-nume"); + final resUrl = (await client.get(Uri.parse( + "${source.baseUrl}/wp-json/dooplayer/v1/post/$id?type=$type&source=$num"))) + .body; + final url = + substringBefore(substringAfter(resUrl, "\"embed_url\":\""), "\",") + .replaceAll("\\", ""); + videos.addAll(await extractVideos(url, name)); + } + return sortVideos(videos, source.id); + } + + Future> extractVideos(String url, String lang) async { + List videos = []; + List a = []; + if (url.contains("saidochesto.top") || lang == "MULTISERVER") { + return await extractFromMulti(url); + } else if (["filemoon", "moon", "filemooon"].any((a) => url.contains(a))) { + a = await filemoonExtractor(url, "$lang Filemoon - ", ""); + } else if (["https://dood", "https://ds2play", "https://d0"] + .any((a) => url.contains(a))) { + a = await doodExtractor(url, "$lang DoodStream"); + } else if (["streamtape", "stp", "stape"].any((a) => url.contains(a))) { + a = await streamTapeExtractor(url, "$lang StreamTape"); + } else if (url.contains("uqload")) { + a = await uqloadExtractor(url, lang); + } else if (url.contains("wolfstream")) { + final resUrl = (await client.get(Uri.parse(url))).body; + final jsData = + parseHtml(resUrl).selectFirst("script:contains(sources)").text; + final videoUrl = + substringBefore(substringAfter(jsData, "{file:\""), "\""); + + MVideo video = MVideo(); + video + ..url = videoUrl + ..originalUrl = videoUrl + ..quality = "$lang WolfStream"; + + a = [video]; + } else if (["wishembed", "streamwish", "strwish", "wish"] + .any((a) => url.contains(a))) { + a = await streamWishExtractor(url, "$lang StreamWish"); + } else if (url.contains("mp4upload")) { + a = await mp4UploadExtractor(url, null, "$lang", ""); + } else if (["vidhide", "filelions.top", "vid."] + .any((a) => url.contains(a))) { + a = await streamHideExtractor(url, lang); + } + videos.addAll(a); + + return videos; + } + + Future> streamHideExtractor(String url, String prefix) async { + final res = (await client.get(Uri.parse(url))).body; + final masterUrl = substringBefore( + substringAfter( + substringAfter( + substringAfter(unpackJs(res), "sources:"), "file:\""), + "src:\""), + '"'); + final masterPlaylistRes = (await client.get(Uri.parse(masterUrl))).body; + List videos = []; + for (var it in substringAfter(masterPlaylistRes, "#EXT-X-STREAM-INF:") + .split("#EXT-X-STREAM-INF:")) { + final quality = + "${substringBefore(substringBefore(substringAfter(substringAfter(it, "RESOLUTION="), "x"), ","), "\n")}p"; + + String videoUrl = substringBefore(substringAfter(it, "\n"), "\n"); + + if (!videoUrl.startsWith("http")) { + videoUrl = + "${masterUrl.split("/").sublist(0, masterUrl.split("/").length - 1).join("/")}/$videoUrl"; + } + + MVideo video = MVideo(); + video + ..url = videoUrl + ..originalUrl = videoUrl + ..quality = "$prefix StreamHideVid - $quality"; + videos.add(video); + } + return videos; + } + + Future> uqloadExtractor(String url, String lang) async { + final res = (await client.get(Uri.parse(url))).body; + final js = xpath(res, '//script[contains(text(), "sources:")]/text()'); + if (js.isEmpty) { + return []; + } + + final videoUrl = + substringBefore(substringAfter(js.first, "sources: [\""), '"'); + MVideo video = MVideo(); + video + ..url = videoUrl + ..originalUrl = videoUrl + ..quality = "$lang Uqload" + ..headers = {"Referer": "${Uri.parse(url).origin}/"}; + return [video]; + } + + Future> extractFromMulti(String url) async { + final res = (await client.get(Uri.parse(url))).body; + final document = parseHtml(res); + + final prefLang = getPreferenceValue(source.id, "preferred_lang"); + String langSelector = ""; + if (prefLang.isEmpty) { + langSelector = "div"; + } else { + langSelector = "div.OD_$prefLang"; + } + List videos = []; + for (var element in document.select("div.ODDIV $langSelector > li")) { + final hosterUrl = + substringBefore(substringAfter(element.attr("onclick"), "('"), "')"); + String lang = ""; + if (langSelector == "div") { + lang = substringBefore( + substringAfter(element.parent?.attr("class"), "OD_", ""), " "); + } else { + lang = prefLang; + } + videos.addAll(await extractVideos(hosterUrl, lang)); + } + + return videos; + } + + MPages parseAnimeList(String res, + {String selector = "article.w_item_a > a", bool hasNextPage = false}) { + final elements = parseHtml(res).select(selector); + List animeList = []; + for (var element in elements) { + final url = getUrlWithoutDomain(element.getHref); + if (!url.startsWith("/episodio/")) { + MManga anime = MManga(); + final img = element.selectFirst("img"); + anime.name = img.attr("alt"); + anime.imageUrl = img?.attr("data-src") ?? + img?.attr("data-lazy-src") ?? + img?.attr("srcset") ?? + img?.getSrc; + anime.link = url; + animeList.add(anime); + } + } + return MPages(animeList, hasNextPage); + } + + @override + List getSourcePreferences() { + return [ + ListPreference( + key: "preferred_lang", + title: "Preferred language", + summary: "", + valueIndex: 0, + entries: ["SUB", "All", "ES", "LAT"], + entryValues: ["SUB", "", "ES", "LAT"]), + ListPreference( + key: "preferred_server1", + title: "Preferred server", + summary: "", + valueIndex: 0, + entries: [ + "Filemoon", + "DoodStream", + "StreamTape", + "Uqload", + "WolfStream", + "saidochesto.top", + "VidHide", + "StreamWish", + "Mp4Upload" + ], + entryValues: [ + "Filemoon", + "DoodStream", + "StreamTape", + "Uqload", + "WolfStream", + "saidochesto.top", + "VidHide", + "StreamWish", + "Mp4Upload" + ]), + ]; + } + + List sortVideos(List videos, int sourceId) { + String prefLang = getPreferenceValue(source.id, "preferred_lang"); + String server = getPreferenceValue(sourceId, "preferred_server1"); + videos.sort((MVideo a, MVideo b) { + int qualityMatchA = 0; + + if (a.quality.toLowerCase().contains(prefLang.toLowerCase()) && + a.quality.toLowerCase().contains(server.toLowerCase())) { + qualityMatchA = 1; + } + int qualityMatchB = 0; + if (b.quality.toLowerCase().contains(prefLang.toLowerCase()) && + b.quality.toLowerCase().contains(server.toLowerCase())) { + qualityMatchB = 1; + } + if (qualityMatchA != qualityMatchB) { + return qualityMatchB - qualityMatchA; + } + + final regex = RegExp(r'(\d+)p'); + final matchA = regex.firstMatch(a.quality); + final matchB = regex.firstMatch(b.quality); + final int qualityNumA = int.tryParse(matchA?.group(1) ?? '0') ?? 0; + final int qualityNumB = int.tryParse(matchB?.group(1) ?? '0') ?? 0; + return qualityNumB - qualityNumA; + }); + return videos; + } +} + +AnimeOnlineNinja main(MSource source) { + return AnimeOnlineNinja(source: source); +} diff --git a/dart/anime/src/es/animeonlineninja/icon.png b/dart/anime/src/es/animeonlineninja/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ab51a326a1bd40b66bd48161ccc3531db2c7f3da GIT binary patch literal 4044 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 _animeonlineninjaSource; +const _animeonlineninjaVersion = "0.0.2"; +const _animeonlineninjaSourceCodeUrl = + "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/es/animeonlineninja/animeonlineninja.dart"; +Source _animeonlineninjaSource = Source( + name: "AnimeOnline.Ninja", + baseUrl: "https://ww3.animeonline.ninja", + lang: "es", + typeSource: "single", + iconUrl: + "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/es/animeonlineninja/icon.png", + sourceCodeUrl: _animeonlineninjaSourceCodeUrl, + version: _animeonlineninjaVersion, + isManga: false); diff --git a/dart/anime/src/fr/anizone/anizone.dart b/dart/anime/src/fr/anizone/anizone.dart new file mode 100644 index 00000000..561c7328 --- /dev/null +++ b/dart/anime/src/fr/anizone/anizone.dart @@ -0,0 +1,490 @@ +import 'package:mangayomi/bridge_lib.dart'; +import 'dart:convert'; + +class AniZone extends MProvider { + AniZone({required this.source}); + + final MSource source; + final Client client = Client(source); + + // Constants for the xpath + static const String urlXpath = + '//*[contains(@class,"flw-item item-qtip")]/div[@class="film-poster"]/a/@href'; + static const String nameXpath = + '//*[contains(@class,"flw-item item-qtip")]/div[@class="film-detail"]/h3/text()'; + static const String imageXpath = + '//*[contains(@class,"flw-item item-qtip")]/div[@class="film-poster"]/img/@data-src'; + + // Methods for fetching the manga list (popular, latest & search) + Future _getMangaList(String url) async { + final doc = (await client.get(Uri.parse(url))).body; + List animeList = []; + + final urls = xpath(doc, urlXpath); + final names = xpath(doc, nameXpath); + final images = xpath(doc, imageXpath); + + if (urls.isEmpty || names.isEmpty || images.isEmpty) { + return MPages([], false); + } + + for (var i = 0; i < names.length; i++) { + MManga anime = MManga(); + anime.name = names[i]; + anime.imageUrl = images[i]; + anime.link = urls[i]; + animeList.add(anime); + } + + return MPages(animeList, urls.isNotEmpty); + } + + @override + Future getPopular(int page) async { + return _getMangaList("${source.baseUrl}/most-popular/?page=$page"); + } + + @override + Future getLatestUpdates(int page) async { + return _getMangaList("${source.baseUrl}/recently-added/?page=$page"); + } + + @override + Future search(String query, int page, FilterList filterList) async { + String baseUrl = "${source.baseUrl}/filter?keyword=$query"; + + Map> filterMap = { + "type": [], + "status": [], + "season": [], + "lang": [], + "genre": [] + }; + + // Regroupement des filtres avec une logique générique + final filterHandlers = { + "TypeFilter": "type", + "LanguageFilter": "lang", + "SaisonFilter": "season", + "StatusFilter": "status", + "GenreFilter": "genre" + }; + + for (var filter in filterList.filters) { + if (filterHandlers.containsKey(filter.type)) { + var key = filterHandlers[filter.type]!; + for (var stateItem in filter.state as List) { + if (stateItem.state == true) { + filterMap[key]?.add(stateItem.value as String); + } + } + } + } + + //add filters to the url dynamically + for (var entry in filterMap.entries) { + List values = entry.value; + if (values.isNotEmpty) { + baseUrl += '&${entry.key}=${values.join("%2C")}'; + } + } + + return _getMangaList("$baseUrl&page=$page"); + } + + Future getDetail(String url) async { + MManga anime = MManga(); + try { + final doc = (await client.get(Uri.parse(url))).body; + final description = xpath(doc, '//p[contains(@class,"short")]/text()'); + anime.description = description.isNotEmpty ? description.first : ""; + + final statusList = xpath(doc, + '//div[contains(@class,"col2")]//div[contains(@class,"item")]//div[contains(@class,"item-content")]/text()'); + if (statusList.isNotEmpty) { + if (statusList[0] == "Terminer") { + anime.status = MStatus.completed; + } else if (statusList[0] == "En cours") { + anime.status = MStatus.ongoing; + } else { + anime.status = MStatus.unknown; + } + } else { + anime.status = MStatus.unknown; + } + + anime.genre = xpath(doc, + '//div[contains(@class,"item")]//div[contains(@class,"item-content")]//a[contains(@href,"genre")]/text()'); + + final regex = RegExp(r'(\d+)$'); + final match = regex.firstMatch(url); + + if (match == null) { + throw Exception('Numéro de l\'épisode non trouvé dans l\'URL.'); + } + + final res = (await client.get(Uri.parse( + "${source.baseUrl}/ajax/episode/list/${match.group(1)}"))) + .body; + + List episodesList = []; + + final episodeElements = + parseHtml(json.decode(res)["html"]).select(".ep-item"); + + // Associer chaque titre à son URL et récupérer les vidéos + for (var element in episodeElements) { + MChapter episode = MChapter(); + episode.name = element.attr("title"); + + String id = substringAfterLast(element.attr("href"), "="); + episode.url = "${source.baseUrl}/ajax/episode/servers?episodeId=$id"; + episodesList.add(episode); + } + + anime.chapters = episodesList.reversed.toList(); + + return anime; + } catch (e) { + throw Exception('Erreur lors de la récupération des détails: $e'); + } + } + + @override + Future> getVideoList(String url) async { + final videoRes = (await client + .get(Uri.parse(url), headers: {"Referer": "${source.baseUrl}/"})) + .body; + + final lang = xpath(videoRes.replaceAll(r'\', ''), + '//div[contains(@class,"item server-item")]/@data-type'); + final links = xpath(videoRes.replaceAll(r'\', ''), + '//div[contains(@class,"item server-item")]/@data-id'); + final playersNames = xpath(videoRes.replaceAll(r'\', ''), + '//div[contains(@class,"item server-item")]/text()'); + List> players = []; + for (int j = 0; j < links.length; j++) { + // schema of players https://v1.animesz.xyz/ajax/episode/servers?episodeId=(id_episode) + // schema or url https://v1.animesz.xyz/ajax/episode/sources?id=(player_id)&epid=(id_episode) + if (playersNames.isNotEmpty && playersNames[j] == "sibnet") { + final playerUrl = + "https://video.sibnet.ru/shell.php?videoid=${links[j]}"; + players.add({"lang": lang[j], "player": playerUrl}); + } else if (playersNames.isNotEmpty && playersNames[j] == "sendvid") { + final playerUrl = "https://sendvid.com/embed/${links[j]}"; + players.add({"lang": lang[j], "player": playerUrl}); + } else if (playersNames.isNotEmpty && playersNames[j] == "VidCDN") { + final playerUrl = + "https://r.vidcdn.xyz/v1/api/get_sources/${links[j].replaceFirst(RegExp(r'vidcdn$'), '')}"; + players.add({"lang": lang[j], "player": playerUrl}); + } else if (playersNames.isNotEmpty && playersNames[j] == "Voe") { + final playerUrl = "https://voe.sx/e/${links[j]}"; + players.add({"lang": lang[j], "player": playerUrl}); + } else if (playersNames.isNotEmpty && playersNames[j] == "Fmoon") { + final playerUrl = + "https://filemoon.sx/e/${links[j]}&data-realid=${links[j]}&epid=${substringAfter(url, "episodeId=")}"; + players.add({"lang": lang[j], "player": playerUrl}); + } + } + + List videos = []; + for (var player in players) { + String lang = (player["lang"] as String).toUpperCase(); + String playerUrl = player["player"]; + List a = []; + if (playerUrl.contains("sendvid")) { + a = await sendVidExtractorr(playerUrl, "$lang "); + } else if (playerUrl.contains("sibnet.ru")) { + a = await sibnetExtractor(playerUrl, lang); + } else if (playerUrl.contains("voe.sx")) { + a = await voeExtractor(playerUrl, "$lang "); + } else if (playerUrl.contains("vidcdn")) { + a = await vidcdnExtractor(playerUrl, lang); + } else if (playerUrl.contains("filemoon")) { + a = await filemoonExtractor(playerUrl, "$lang Filemoon - ", ""); + } else if (playerUrl.contains("vidhide")) { + a = await streamHideExtractor(playerUrl, lang); + } + videos.addAll(a); + } + + return sortVideos(videos, source.id); + } + + Future> streamHideExtractor(String url, String prefix) async { + final res = (await client.get(Uri.parse(url))).body; + final masterUrl = substringBefore( + substringAfter( + substringAfter( + substringAfter(unpackJs(res), "sources:"), "file:\""), + "src:\""), + '"'); + final masterPlaylistRes = (await client.get(Uri.parse(masterUrl))).body; + List videos = []; + for (var it in substringAfter(masterPlaylistRes, "#EXT-X-STREAM-INF:") + .split("#EXT-X-STREAM-INF:")) { + final quality = + "${substringBefore(substringBefore(substringAfter(substringAfter(it, "RESOLUTION="), "x"), ","), "\n")}p"; + + String videoUrl = substringBefore(substringAfter(it, "\n"), "\n"); + + if (!videoUrl.startsWith("http")) { + videoUrl = + "${masterUrl.split("/").sublist(0, masterUrl.split("/").length - 1).join("/")}/$videoUrl"; + } + + MVideo video = MVideo(); + video + ..url = videoUrl + ..originalUrl = videoUrl + ..quality = "$prefix StreamHideVid - $quality"; + videos.add(video); + } + return videos; + } + + @override + List getFilterList() { + return [ + GroupFilter("TypeFilter", "Type", [ + CheckBoxFilter("Film", "1"), + CheckBoxFilter("Anime", "2"), + CheckBoxFilter("OVA", "3"), + CheckBoxFilter("ONA", "4"), + CheckBoxFilter("Special", "5"), + CheckBoxFilter("Music", "6"), + ]), + GroupFilter("LanguageFilter", "Langue", [ + CheckBoxFilter("VF", "3"), + CheckBoxFilter("VOSTFR", "4"), + CheckBoxFilter("Multicc", "2"), + CheckBoxFilter("EN", "1"), + ]), + GroupFilter("SaisonFilter", "Saison", [ + CheckBoxFilter("Printemps", "1"), + CheckBoxFilter("Été", "2"), + CheckBoxFilter("Automne", "3"), + CheckBoxFilter("Hiver", "4"), + ]), + GroupFilter("StatusFilter", "Statut", [ + CheckBoxFilter("Terminés", "1"), + CheckBoxFilter("En cours", "2"), + CheckBoxFilter("Pas encore diffusés", "3"), + ]), + GroupFilter("GenreFilter", "Genre", [ + CheckBoxFilter("Action", "1"), + CheckBoxFilter("Aventure", "2"), + CheckBoxFilter("Voitures", "3"), + CheckBoxFilter("Comédie", "4"), + CheckBoxFilter("Démence", "5"), + CheckBoxFilter("Démons", "6"), + CheckBoxFilter("Drame", "8"), + CheckBoxFilter("Ecchi", "9"), + CheckBoxFilter("Fantastique", "10"), + CheckBoxFilter("Jeu", "11"), + CheckBoxFilter("Harem", "35"), + CheckBoxFilter("Historique", "13"), + CheckBoxFilter("Horreur", "14"), + CheckBoxFilter("Isekai", "44"), + CheckBoxFilter("Josei", "43"), + CheckBoxFilter("Enfants", "25"), + CheckBoxFilter("Magie", "16"), + CheckBoxFilter("Arts martiaux", "17"), + CheckBoxFilter("Mecha", "18"), + CheckBoxFilter("Militaire", "38"), + CheckBoxFilter("Musique", "19"), + CheckBoxFilter("Mystère", "7"), + CheckBoxFilter("Parodie", "20"), + CheckBoxFilter("Police", "39"), + CheckBoxFilter("Psychologique", "40"), + CheckBoxFilter("Romance", "22"), + CheckBoxFilter("Samouraï", "21"), + CheckBoxFilter("École", "23"), + CheckBoxFilter("Science-Fiction", "24"), + CheckBoxFilter("Seinen", "42"), + CheckBoxFilter("Shoujo Ai", "26"), + CheckBoxFilter("Shoujo", "25"), + CheckBoxFilter("Shounen Ai", "28"), + CheckBoxFilter("Tranche de vie", "36"), + CheckBoxFilter("Shounen", "27"), + CheckBoxFilter("Espace", "29"), + CheckBoxFilter("Sports", "30"), + CheckBoxFilter("Super Pouvoir", "31"), + CheckBoxFilter("Surnaturel", "37"), + CheckBoxFilter("Vampire", "32"), + CheckBoxFilter("Yaoi", "33"), + CheckBoxFilter("Yuri", "34"), + ]) + ]; + } + + @override + List getSourcePreferences() { + return [ + ListPreference( + key: "preferred_quality", + title: "Qualité préférée", + summary: "", + valueIndex: 0, + entries: ["1080p", "720p", "480p", "360p"], + entryValues: ["1080", "720", "480", "360"]), + ListPreference( + key: "voices_preference", + title: "Préférence des voix", + summary: "", + valueIndex: 0, + entries: ["Préférer VOSTFR", "Préférer VF"], + entryValues: ["vostfr", "vf"]), + ]; + } + + List sortVideos(List videos, int sourceId) { + String quality = getPreferenceValue(sourceId, "preferred_quality"); + String voice = getPreferenceValue(sourceId, "voices_preference"); + + videos.sort((MVideo a, MVideo b) { + int qualityMatchA = 0; + if (a.quality.contains(quality) && + a.quality.toLowerCase().contains(voice)) { + qualityMatchA = 1; + } + int qualityMatchB = 0; + if (b.quality.contains(quality) && + b.quality.toLowerCase().contains(voice)) { + qualityMatchB = 1; + } + if (qualityMatchA != qualityMatchB) { + return qualityMatchB - qualityMatchA; + } + + final regex = RegExp(r'(\d+)p'); + final matchA = regex.firstMatch(a.quality); + final matchB = regex.firstMatch(b.quality); + final int qualityNumA = int.tryParse(matchA?.group(1) ?? '0') ?? 0; + final int qualityNumB = int.tryParse(matchB?.group(1) ?? '0') ?? 0; + return qualityNumB - qualityNumA; + }); + return videos; + } + + Future> sendVidExtractorr(String url, String prefix) async { + final res = (await client.get(Uri.parse(url))).body; + final document = parseHtml(res); + final masterUrl = document.selectFirst("source#video_source")?.attr("src"); + print(masterUrl); + if (masterUrl == null) return []; + final masterHeaders = { + "Accept": "*/*", + "Host": Uri.parse(masterUrl).host, + "Origin": "https://${Uri.parse(url).host}", + "Referer": "https://${Uri.parse(url).host}/", + }; + List videos = []; + if (masterUrl.contains(".m3u8")) { + final masterPlaylistRes = (await client.get(Uri.parse(masterUrl))).body; + + for (var it in substringAfter(masterPlaylistRes, "#EXT-X-STREAM-INF:") + .split("#EXT-X-STREAM-INF:")) { + final quality = + "${substringBefore(substringBefore(substringAfter(substringAfter(it, "RESOLUTION="), "x"), ","), "\n")}p"; + + String videoUrl = substringBefore(substringAfter(it, "\n"), "\n"); + + if (!videoUrl.startsWith("http")) { + videoUrl = + "${masterUrl.split("/").sublist(0, masterUrl.split("/").length - 1).join("/")}/$videoUrl"; + } + final videoHeaders = { + "Accept": "*/*", + "Host": Uri.parse(videoUrl).host, + "Origin": "https://${Uri.parse(url).host}", + "Referer": "https://${Uri.parse(url).host}/", + }; + var video = MVideo(); + video + ..url = videoUrl + ..originalUrl = videoUrl + ..quality = prefix + "Sendvid:$quality" + ..headers = videoHeaders; + videos.add(video); + } + } else { + var video = MVideo(); + video + ..url = masterUrl + ..originalUrl = masterUrl + ..quality = prefix + "Sendvid:default" + ..headers = masterHeaders; + videos.add(video); + } + + return videos; + } + + Future> vidcdnExtractor(String url, String prefix) async { + final res = await client.get(Uri.parse(url)); + if (res.statusCode != 200) { + print("Erreur lors de la récupération de la page : ${res.statusCode}"); + return []; + } + final jsonResponse = jsonDecode(res.body); + + String masterUrl = jsonResponse['sources'][0]['file'] ?? ''; + final quality = jsonResponse['quality'] ?? ''; + + List videos = []; + + final masterPlaylistRes = await client.get(Uri.parse(masterUrl)); + if (masterPlaylistRes.statusCode != 200) { + print( + "Error lors de la récupération de la playlist M3U8 : ${masterPlaylistRes.statusCode}"); + return []; + } + + final masterPlaylistBody = masterPlaylistRes.body; + + final playlistLines = masterPlaylistBody.split("\n"); + + for (int i = 0; i < playlistLines.length; i++) { + final line = playlistLines[i]; + if (line.startsWith("#EXT-X-STREAM-INF")) { + final resolutionLine = line.split("RESOLUTION=").last; + final resolution = resolutionLine.split(",").first; + final width = int.parse(resolution.split("x").first); + final height = int.parse(resolution.split("x").last); + + String videoQuality; + if (height >= 1080) { + videoQuality = "1080p"; + } else if (height >= 720) { + videoQuality = "720p"; + } else if (height >= 480) { + videoQuality = "480p"; + } else if (height >= 360) { + videoQuality = "360p"; + } else { + videoQuality = "${height}p"; + } + + String videoUrl = playlistLines[i + 1].trim(); + + if (!videoUrl.startsWith("http")) { + videoUrl = + "${masterUrl.substring(0, masterUrl.lastIndexOf('/'))}/$videoUrl"; + } + + var video = MVideo(); + video + ..url = masterUrl + ..originalUrl = masterUrl + ..quality = "$prefix VidCDN:$videoQuality"; + videos.add(video); + } + } + return videos; + } +} + +AniZone main(MSource source) { + return AniZone(source: source); +} diff --git a/dart/anime/src/fr/anizone/icon.png b/dart/anime/src/fr/anizone/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..32debc92558373dd9fbcca5cd9fdddbf7e413c9a GIT binary patch literal 26313 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 _aniZoneSource; +const _aniZoneVersion = "0.0.2"; +const _aniZoneSourceCodeUrl = + "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/fr/anizone/anizone.dart"; +Source _aniZoneSource = Source( + name: "AniZone", + baseUrl: "https://v1.animesz.xyz", + lang: "fr", + typeSource: "single", + iconUrl: + "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/fr/anizone/icon.png", + sourceCodeUrl: _aniZoneSourceCodeUrl, + version: _aniZoneVersion, + isManga: false); diff --git a/dart/anime/src/it/animesaturn/source.dart b/dart/anime/src/it/animesaturn/source.dart index a436568f..442e746c 100644 --- a/dart/anime/src/it/animesaturn/source.dart +++ b/dart/anime/src/it/animesaturn/source.dart @@ -1,12 +1,12 @@ import '../../../../../model/source.dart'; Source get animesaturn => _animesaturn; -const _animesaturnVersion = "0.0.35"; +const _animesaturnVersion = "0.0.4"; const _animesaturnCodeUrl = "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/it/animesaturn/animesaturn.dart"; Source _animesaturn = Source( name: "AnimeSaturn", - baseUrl: "https://www.animesaturn.tv", + baseUrl: "https://www.animesaturn.cx", lang: "it", typeSource: "single", iconUrl: diff --git a/dart/manga/multisrc/mangareader/sources.dart b/dart/manga/multisrc/mangareader/sources.dart index 1f6ce4dc..f8f0863c 100644 --- a/dart/manga/multisrc/mangareader/sources.dart +++ b/dart/manga/multisrc/mangareader/sources.dart @@ -1,7 +1,6 @@ import '../../../../model/source.dart'; import 'src/beastscans/beastscans.dart'; import 'src/lelmanga/lelmanga.dart'; -import 'src/asurascans/asurascans.dart'; import 'src/komiklab/komiklab.dart'; import 'src/azurescans/azurescans.dart'; import 'src/cosmicscans/cosmicscans.dart'; @@ -104,8 +103,6 @@ List _mangareaderSourcesList = [ beastscansSource, //Lelmanga (FR) lelmangaSource, -//Asura Scans (EN) - asurascansSource, //KomikLab Scans (EN) komiklabSource, //Azure Scans (EN) diff --git a/dart/manga/multisrc/mangareader/src/asurascans/asurascans.dart b/dart/manga/multisrc/mangareader/src/asurascans/asurascans.dart deleted file mode 100644 index 4660c9ff..00000000 --- a/dart/manga/multisrc/mangareader/src/asurascans/asurascans.dart +++ /dev/null @@ -1,14 +0,0 @@ -import '../../../../../../model/source.dart'; - -Source get asurascansSource => _asurascansSource; - -Source _asurascansSource = Source( - name: "Asura Scans", - baseUrl: "https://asuratoon.com/", - lang: "en", - typeSource: "mangareader", - iconUrl: - "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/mangareader/src/asurascans/icon.png", - dateFormat: "MMM d, yyyy", - dateFormatLocale: "en_us", -); diff --git a/dart/manga/src/all/mangadex/mangadex.dart b/dart/manga/src/all/mangadex/mangadex.dart index 227fff90..7ba8814f 100644 --- a/dart/manga/src/all/mangadex/mangadex.dart +++ b/dart/manga/src/all/mangadex/mangadex.dart @@ -159,6 +159,11 @@ class MangaDex extends MProvider { headers: headers)) .body; MManga manga = MManga(); + final coverUrl = jsonPathToString( + res, r'$..data.relationships[*].attributes.fileName', ''); + if (coverUrl != null) { + manga.imageUrl = "https://uploads.mangadex.org/covers/${url.replaceAll("/manga/", "")}/${coverUrl}"; + } manga.author = jsonPathToString( res, r'$..data.relationships[*].attributes.name', ', '); @@ -382,8 +387,6 @@ class MangaDex extends MProvider { GroupFilter("ContentRatingList", "Content rating", [ CheckBoxFilter("Safe", "contentRating[]=safe", state: true), CheckBoxFilter("Suggestive", "contentRating[]=suggestive", state: true), - CheckBoxFilter("Erotica", "contentRating[]=erotica"), - CheckBoxFilter("Pornographic", "contentRating[]=pornographic"), ]), GroupFilter("DemographicList", "Publication demographic", [ CheckBoxFilter("None", "publicationDemographic[]=none"), diff --git a/dart/manga/src/all/mangadex/sources.dart b/dart/manga/src/all/mangadex/sources.dart index 1f8d9aef..ff1def04 100644 --- a/dart/manga/src/all/mangadex/sources.dart +++ b/dart/manga/src/all/mangadex/sources.dart @@ -3,7 +3,7 @@ import '../../../../../model/source.dart'; const _apiUrl = 'https://api.mangadex.org'; const _baseUrl = 'https://mangadex.org'; const _isNsfw = true; -const _mangadexVersion = "0.0.9"; +const _mangadexVersion = "0.1.1"; const _mangadexSourceCodeUrl = "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/src/all/mangadex/mangadex.dart"; String _iconUrl = diff --git a/index.json b/index.json index 4c55764b..123ff5a7 100644 --- a/index.json +++ b/index.json @@ -1 +1 @@ -[{"name":"1st Kiss-Manga (unoriginal)","id":638504049,"baseUrl":"https://1stkiss-manga.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/firstkissdashmanga/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"AQUA Scans","id":1022584413,"baseUrl":"https://aquascans.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/manhwaworld/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Akuma no Tenshi","id":556872410,"baseUrl":"https://akumanotenshi.com","lang":"pt-BR","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/akumanotenshi/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Anikiga","id":554316969,"baseUrl":"https://anikiga.com","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/anikiga/icon.png","dateFormat":"d MMMMM yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"ArazNovel","id":966932111,"baseUrl":"https://www.araznovel.com","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/araznovel/icon.png","dateFormat":"d MMMM yyyy","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Arthur Scan","id":678948853,"baseUrl":"https://arthurscan.xyz","lang":"pt-BR","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/arthurscan/icon.png","dateFormat":"MMMMM dd, yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"AstralManga","id":1028022993,"baseUrl":"https://astral-manga.fr","lang":"fr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/astralmanga/icon.png","dateFormat":"dd/mm/yyyy","dateFormatLocale":"fr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Asura Scans.us (unoriginal)","id":586702086,"baseUrl":"https://asurascans.us","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/asurascansus/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"BarManga","id":627965453,"baseUrl":"https://barmanga.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/barmanga/icon.png","dateFormat":"MM/dd/yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"BestManga","id":926276360,"baseUrl":"https://bestmanga.club","lang":"ru","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/bestmanga/icon.png","dateFormat":"dd.MM.yyyy","dateFormatLocale":"ru","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Chibi Manga","id":105430403,"baseUrl":"https://www.cmreader.info","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/chibimanga/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Clover Manga","id":811523862,"baseUrl":"https://clover-manga.com","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/clovermanga/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Coco Rip","id":316931886,"baseUrl":"https://cocorip.net","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/cocorip/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Coffee Manga","id":212388160,"baseUrl":"https://coffeemanga.io","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/coffeemanga/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Doodmanga","id":796439892,"baseUrl":"https://www.doodmanga.com","lang":"th","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/doodmanga/icon.png","dateFormat":"dd MMMMM yyyy","dateFormatLocale":"th","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Elite Manga","id":667501516,"baseUrl":"https://www.elitemanga.org","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/elitemanga/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Emperor Scan","id":21325920,"baseUrl":"https://emperorscan.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/emperorscan/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"EvaScans","id":439004766,"baseUrl":"https://evascans.com","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/evascans/icon.png","dateFormat":"MMM d, yyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"FR-Scan","id":669019889,"baseUrl":"https://fr-scan.com","lang":"fr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/frscan/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"fr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"FactManga","id":956621361,"baseUrl":"https://factmanga.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/factmanga/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"FreeMangaTop","id":679915593,"baseUrl":"https://freemangatop.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/freemangatop/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Glory Manga","id":284318957,"baseUrl":"https://glorymanga.com","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/glorymanga/icon.png","dateFormat":"dd/MM/yyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Harimanga","id":178905360,"baseUrl":"https://harimanga.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/harimanga/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Immortal Updates","id":227459275,"baseUrl":"https://immortalupdates.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/immortalupdates/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Império Scans","id":721205416,"baseUrl":"https://imperioscans.com.br","lang":"pt-BR","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/imperioscans/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Inmortal Scan","id":809387434,"baseUrl":"https://manga.mundodrama.site","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/inmortalscan/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"IsekaiScanManga (unoriginal)","id":775728183,"baseUrl":"https://isekaiscanmanga.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/isekaiscanmanga/icon.png","dateFormat":"dd MMM، yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Jimanga","id":773169340,"baseUrl":"https://jimanga.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/jimanga/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"KSGroupScans","id":374902680,"baseUrl":"https://ksgroupscans.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/ksgroupscans/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Kakusei Project","id":872023105,"baseUrl":"https://kakuseiproject.com.br","lang":"pt-BR","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/kakuseiproject/icon.png","dateFormat":"MMMMM dd, yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Kami Sama Explorer","id":797019242,"baseUrl":"https://leitor.kamisama.com.br","lang":"pt-br","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/kamisamaexplorer/icon.png","dateFormat":"dd 'de' MMMM 'de' yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Komik Chan","id":852383302,"baseUrl":"https://komikchan.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/komikchan/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"LHTranslation","id":21247797,"baseUrl":"https://lhtranslation.net","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/lhtranslation/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Lady Estelar Scan","id":987669145,"baseUrl":"https://ladyestelarscan.com.br","lang":"pt-BR","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/ladyestelarscan/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Leviatan Scans","id":280413449,"baseUrl":"https://lscomic.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/leviatanscans/icon.png","dateFormat":"MMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Luffy Manga","id":797524700,"baseUrl":"https://luffymanga.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/luffymanga/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Maid Scan","id":931615028,"baseUrl":"https://maidscan.com.br","lang":"pt-BR","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/maidscan/icon.png","dateFormat":"dd 'de' MMMMM 'de' yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga Diyari","id":531861751,"baseUrl":"https://manga-diyari.com","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/mangadiyari/icon.png","dateFormat":"MMM dd, yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga Fenix","id":533195191,"baseUrl":"https://manhua-fenix.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/mangafenix/icon.png","dateFormat":"dd MMMM, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga Galaxy","id":935714707,"baseUrl":"https://mangagalaxy.me","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/mangagalaxy/icon.png","dateFormat":"MM/dd/yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga Read","id":256879643,"baseUrl":"https://mangaread.co","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/mangaread/icon.png","dateFormat":"yyyy-MM-dd","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga Tx.gg (unoriginal)","id":457634416,"baseUrl":"https://mangatx.gg","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/mangatxgg/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga Weebs","id":499853860,"baseUrl":"https://mangaweebs.in","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/mangaweebs/icon.png","dateFormat":"dd MMMM HH:mm","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga Şehri","id":865354788,"baseUrl":"https://mangasehri.com","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/mangasehri/icon.png","dateFormat":"dd/MM/yyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga-TX","id":382229208,"baseUrl":"https://manga-tx.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/mangatxunoriginal/icon.png","dateFormat":"MMM d, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaClash","id":1022665553,"baseUrl":"https://mangaclash.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/mangaclash/icon.png","dateFormat":"MM/dd/yy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaFreak.online","id":223793266,"baseUrl":"https://mangafreak.online","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/mangafreakonline/icon.png","dateFormat":"d MMMM، yyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaGreat","id":1054806605,"baseUrl":"https://mangagreat.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/mangagreat/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaKomi","id":396237578,"baseUrl":"https://mangakomi.io","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/mangakomi/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaRead.org","id":120353492,"baseUrl":"https://www.mangaread.org","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/mangareadorg/icon.png","dateFormat":"dd.MM.yyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaRolls","id":720109919,"baseUrl":"https://mangarolls.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/mangarolls/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaTyrant","id":32333683,"baseUrl":"https://mangatyrant.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/mangatyrant/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaUS","id":503871898,"baseUrl":"https://mangaus.xyz","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/mangaus/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Mangasushi","id":224429716,"baseUrl":"https://mangasushi.org","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/mangasushi/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Mangá Nanquim","id":92850584,"baseUrl":"https://mangananquim.com","lang":"pt-BR","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/mangananquim/icon.png","dateFormat":"dd 'de' MMMMM 'de' yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manhua ES","id":722532191,"baseUrl":"https://manhuaaz.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/manhuaes/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"ManhuaUS","id":802461663,"baseUrl":"https://manhuaus.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/manhuaus/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"ManhuaZone","id":751568949,"baseUrl":"https://manhuazone.org","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/manhuazone/icon.png","dateFormat":"MMM d, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"ManhwaClan","id":668862828,"baseUrl":"https://manhwaclan.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/manhwaclan/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manhwafull","id":316078751,"baseUrl":"https://manhwafull.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/manhwafull/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Mantraz Scan","id":919786495,"baseUrl":"https://mantrazscan.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/mantrazscan/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Momo no Hana Scan","id":800496106,"baseUrl":"https://momonohanascan.com","lang":"pt-BR","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/momonohanascan/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MonarcaManga","id":677489943,"baseUrl":"https://monarcamanga.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/monarcamanga/icon.png","dateFormat":"MMM d, yyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Moon Witch In Love","id":1023454168,"baseUrl":"https://moonwitchinlovescan.com","lang":"pt-BR","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/moonwitchinlove/icon.png","dateFormat":"dd 'de' MMMMM 'de' yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"NekoPost.co (unoriginal)","id":68388394,"baseUrl":"https://www.nekopost.co","lang":"th","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/nekopostco/icon.png","dateFormat":"d MMMM yyyy","dateFormatLocale":"th","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Niji Translations","id":1040686830,"baseUrl":"https://niji-translations.com","lang":"ar","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/nijitranslations/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Pantheon Scan","id":722864118,"baseUrl":"https://pantheon-scan.com","lang":"fr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/pantheonscan/icon.png","dateFormat":"d MMMM yyyy","dateFormatLocale":"fr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Pojok Manga","id":620356987,"baseUrl":"https://pojokmanga.net","lang":"id","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/pojokmanga/icon.png","dateFormat":"MMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Projeto Scanlator","id":1059909508,"baseUrl":"https://projetoscanlator.com","lang":"pt-BR","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/projetoscanlator/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"ROG Mangás","id":876053235,"baseUrl":"https://rogmangas.com","lang":"pt-BR","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/mangasoverall/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Ragnarok Scanlation","id":1045851788,"baseUrl":"https://ragnarokscanlation.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/ragnarokscanlation/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Rainbow Fairy Scan","id":342232477,"baseUrl":"https://rainbowfairyscan.com","lang":"pt-BR","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/rainbowfairyscan/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Random Scan","id":608218815,"baseUrl":"https://randomscanlators.net","lang":"pt-BR","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/randomscan/icon.png","dateFormat":"MMMMM dd, yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"ReaderGen","id":630253320,"baseUrl":"https://fr.readergen.fr","lang":"fr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/readergen/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"RichtoScan","id":688713066,"baseUrl":"https://richtoscan.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/richtoscan/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Rightdark Scan","id":1015914849,"baseUrl":"https://rightdark-scan.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/rightdarkscan/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Rio2 Manga","id":110090511,"baseUrl":"https://rio2manga.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/rio2manga/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Romantik Manga","id":944131896,"baseUrl":"https://romantikmanga.com","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/romantikmanga/icon.png","dateFormat":"MMM d, yyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"S2Manga","id":763495726,"baseUrl":"https://www.s2manga.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/s2manga/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"SamuraiScan","id":76766511,"baseUrl":"https://samuraiscan.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/samuraiscan/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"ScamberTraslator","id":774205343,"baseUrl":"https://scambertraslator.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/scambertraslator/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Scantrad-VF","id":400350749,"baseUrl":"https://scantrad-vf.co","lang":"fr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/scantradvf/icon.png","dateFormat":"d MMMM yyyy","dateFormatLocale":"fr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Shadowtrad","id":171182128,"baseUrl":"https://shadowtrad.net","lang":"fr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/shadowtrad/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"fr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Shiba Manga","id":368209304,"baseUrl":"https://shibamanga.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/shibamanga/icon.png","dateFormat":"MM/dd/yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Sinensis Scan","id":874513309,"baseUrl":"https://sinensisscan.net","lang":"pt-BR","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/sinensis/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Sweet Time Scan","id":773665225,"baseUrl":"https://sweetscan.net","lang":"pt-BR","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/sweettimescan/icon.png","dateFormat":"MMMMM dd, yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Tatakae Scan","id":296744306,"baseUrl":"https://tatakaescan.com","lang":"pt-BR","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/tatakaescan/icon.png","dateFormat":"dd 'de' MMMMM 'de' yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Taurus Fansub","id":1036726988,"baseUrl":"https://taurusfansub.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/taurusfansub/icon.png","dateFormat":"dd/MM/yyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"The Beginning After The End","id":337822334,"baseUrl":"https://www.thebeginningaftertheend.fr","lang":"fr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/thebeginningaftertheend/icon.png","dateFormat":"MMMMM dd, yyyy","dateFormatLocale":"fr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Tortuga Ceviri","id":294602572,"baseUrl":"https://tortuga-ceviri.com","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/tortugaceviri/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Wicked Witch Scan","id":679298799,"baseUrl":"https://wickedwitchscan.com","lang":"pt-BR","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/wickedwitchscan/icon.png","dateFormat":"MMMMM dd, yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Winter Scan","id":455337571,"baseUrl":"https://winterscan.com","lang":"pt-BR","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/winterscan/icon.png","dateFormat":"dd 'de' MMMM 'de' yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Wonderland Scan","id":867820989,"baseUrl":"https://wonderlandscan.com","lang":"pt-BR","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/wonderlandscan/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Yuri Verso","id":756257030,"baseUrl":"https://yuri.live","lang":"pt-br","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/yuriverso/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"فالكون مانجا","id":390316279,"baseUrl":"https://falconmanga.com","lang":"ar","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/falconmanga/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"مانجا العاشق","id":913767194,"baseUrl":"https://3asq.org","lang":"ar","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/manga3asq/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Grabber Zone","id":88668089,"baseUrl":"https://grabber.zone","lang":"all","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/grabberzone/icon.png","dateFormat":"dd.MM.yyyy","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Gatemanga","id":228457517,"baseUrl":"https://gatemanga.com","lang":"ar","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/gatemanga/icon.png","dateFormat":"d MMMM، yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"GMANGA (unoriginal)","id":534385671,"baseUrl":"https://gmanga.site","lang":"ar","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/gmangasite/icon.png","dateFormat":"MMMM dd، yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"مانجا لينك","id":933815485,"baseUrl":"https://manga-link.com","lang":"ar","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/mangalink/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaLionz","id":718647301,"baseUrl":"https://manga-lionz.com","lang":"ar","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/mangalionz/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga Rose","id":492075908,"baseUrl":"https://mangarose.net","lang":"ar","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/mangarose/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaSpark","id":498074514,"baseUrl":"https://manga-spark.net","lang":"ar","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/mangaspark/icon.png","dateFormat":"d MMMM، yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga Starz","id":424368932,"baseUrl":"https://manga-starz.com","lang":"ar","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/mangastarz/icon.png","dateFormat":"d MMMM، yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga Time","id":929842820,"baseUrl":"https://mangatime.us","lang":"ar","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/mangatime/icon.png","dateFormat":"dd MMMM، yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Olaoe","id":765729692,"baseUrl":"https://olaoe.cyou","lang":"ar","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/olaoe/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Rocks Manga","id":694856524,"baseUrl":"https://rocks-manga.com","lang":"ar","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/rocksmanga/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"DragonTea","id":351087179,"baseUrl":"https://dragontea.ink","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/dragontea/icon.png","dateFormat":"MM/dd/yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Global Bloging","id":466045336,"baseUrl":"https://globalbloging.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/globalbloging/icon.png","dateFormat":"dd MMMM yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga347","id":32568759,"baseUrl":"https://manga347.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/manga347/icon.png","dateFormat":"d MMM, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaEffect","id":426231795,"baseUrl":"https://mangaeffect.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/mangaeffect/icon.png","dateFormat":"dd.MM.yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga-fast.com","id":304908872,"baseUrl":"https://manga-fast.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/mangafastcom/icon.png","dateFormat":"d MMMM'،' yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga Leveling","id":922449127,"baseUrl":"https://mangaleveling.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/mangaleveling/icon.png","dateFormat":"MM/dd/yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"NeatManga","id":481438951,"baseUrl":"https://neatmanga.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/neatmanga/icon.png","dateFormat":"dd MMM yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"NvManga","id":714716947,"baseUrl":"https://nvmanga.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/nvmanga/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"PMScans","id":724822356,"baseUrl":"https://rackusreads.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/pmscans/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"ReadManhua","id":406424746,"baseUrl":"https://readmanhua.net","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/readmanhua/icon.png","dateFormat":"dd MMM yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"StoneScape","id":611266903,"baseUrl":"https://stonescape.xyz","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/stonescape/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"TappyToon.Net","id":903184103,"baseUrl":"https://tappytoon.net","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/tappytoonnet/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Zinmanga.net","id":656879510,"baseUrl":"https://zinmanga.net","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/zinmanganet/icon.png","dateFormat":"MM/dd/yyyy","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"BokugenTranslation","id":406916759,"baseUrl":"https://bokugents.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/bokugentranslation/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"DapRob","id":711981672,"baseUrl":"https://daprob.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/daprob/icon.png","dateFormat":"dd/MM/yyy","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"DeManhuas","id":563568870,"baseUrl":"https://demanhuas.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/demanhuas/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"HerenScan","id":249889937,"baseUrl":"https://herenscan.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/herenscan/icon.png","dateFormat":"d 'de' MMM 'de' yyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"HouseMangas","id":767167238,"baseUrl":"https://housemangas.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/housemangas/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"InfraFandub","id":1007047649,"baseUrl":"https://infrafandub.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/infrafandub/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Inmoral No Fansub","id":36533629,"baseUrl":"https://inmoralnofansub.xyz","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/inmoralnofansub/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"JeazScans","id":340396217,"baseUrl":"https://jeazscansv2.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/jeazscans/icon.png","dateFormat":"d MMMM, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Jobsibe","id":132907111,"baseUrl":"https://jobsibe.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/jobsibe/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"LegnMangas","id":805195882,"baseUrl":"https://legnmangas.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/legendsnofansub/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga Crab","id":830048268,"baseUrl":"https://visorcrab.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/mangacrab/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga Fenix","id":533195191,"baseUrl":"https://manhua-fenix.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/mangafenix/icon.png","dateFormat":"dd MMMM, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Mangas No Sekai","id":192331842,"baseUrl":"https://mangasnosekai.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/mangasnosekai/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manhua Online","id":1013501577,"baseUrl":"https://blog.manhuaonline.org","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/manhuaonline/icon.png","dateFormat":"dd 'de' MMMM 'de' yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MHScans","id":309079366,"baseUrl":"https://lectormh.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/mhscans/icon.png","dateFormat":"dd 'de' MMMM 'de' yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MonarcaManga","id":677489943,"baseUrl":"https://monarcamanga.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/monarcamanga/icon.png","dateFormat":"MMM d, yyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Noblesse Translations","id":303973222,"baseUrl":"https://www.noblessev1.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/noblessetranslations/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Prince Ediciones","id":23658821,"baseUrl":"https://princediciones.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/princediciones/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"SapphireScan","id":878724478,"baseUrl":"https://sapphirescan.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/sapphirescan/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Tres Daos Scan","id":278790017,"baseUrl":"https://tresdaos.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/tresdaosscan/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Unitoon","id":661103813,"baseUrl":"https://lectorunitoon.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/unitoon/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga-Scantrad","id":686398626,"baseUrl":"https://manga-scantrad.io","lang":"fr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/mangascantrad/icon.png","dateFormat":"d MMM yyyy","dateFormatLocale":"fr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Mangas-Origines.fr","id":27886548,"baseUrl":"https://mangas-origines.fr","lang":"fr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/mangasoriginesfr/icon.png","dateFormat":"dd/mm/yyyy","dateFormatLocale":"fr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Raijin Scans","id":320342235,"baseUrl":"https://raijinscans.com","lang":"fr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/raijinscans/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"fr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Reaper Scans","id":393303796,"baseUrl":"https://reaperscans.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/reaperscans/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Soft Epsilon Scan","id":59479664,"baseUrl":"https://soft.epsilonscan.fr","lang":"fr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/softepsilonscan/icon.png","dateFormat":"dd/MM/yy","dateFormatLocale":"fr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Hwago","id":742688581,"baseUrl":"https://hwago.org","lang":"id","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/hwago/icon.png","dateFormat":"d MMMM yyyy","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"KlikManga","id":325512770,"baseUrl":"https://klikmanga.id","lang":"id","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/klikmanga/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"id","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Komikuzan","id":654623055,"baseUrl":"https://komikuzan.com","lang":"id","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/komikuzan/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"id","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MG Komik","id":336171225,"baseUrl":"https://mgkomik.id","lang":"id","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/mgkomik/icon.png","dateFormat":"dd MMM yy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Siimanga","id":33515095,"baseUrl":"https://siimanga.cyou","lang":"id","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/siimanga/icon.png","dateFormat":"d MMMM","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Yubikiri","id":451585835,"baseUrl":"https://yubikiri.my.id","lang":"id","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/yubikiri/icon.png","dateFormat":"d MMMM","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaHoNa","id":1046386661,"baseUrl":"https://mangahona.pl","lang":"pl","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/mangahona/icon.png","dateFormat":"yyyy-MM-dd","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Alone Scanlator","id":646262881,"baseUrl":"https://alonescanlator.com.br","lang":"pt-br","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/alonescanlator/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Boruto Explorer","id":824559648,"baseUrl":"https://leitor.borutoexplorer.com.br","lang":"pt-br","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/borutoexplorer/icon.png","dateFormat":"dd 'de' MMMMM 'de' yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Crystal Comics","id":345759902,"baseUrl":"https://crystalcomics.com","lang":"pt-br","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/crystalcomics/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Fay Scans","id":591914093,"baseUrl":"https://fayscans.net","lang":"pt-br","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/fayscans/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Galinha Samurai Scan","id":204589683,"baseUrl":"https://galinhasamurai.com","lang":"pt-br","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/galinhasamuraiscan/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Hikari Ga Nai","id":346017333,"baseUrl":"https://hikariganai.xyz","lang":"pt-br","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/hikariganai/icon.png","dateFormat":"d 'de' MMMM 'de' yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Sagrado Império da Britannia","id":825744254,"baseUrl":"https://imperiodabritannia.com","lang":"pt-br","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/imperiodabritannia/icon.png","dateFormat":"dd 'de' MMMMM 'de' yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Império Scans","id":721205416,"baseUrl":"https://imperioscans.com.br","lang":"pt-BR","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/imperioscans/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Leitor de Mangá","id":1053799132,"baseUrl":"https://leitordemanga.com","lang":"pt-br","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/leitordemanga/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"L Scans","id":1044801707,"baseUrl":"https://lscans.com","lang":"pt-br","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/lscans/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Lunar Scan","id":912854479,"baseUrl":"https://lunarscan.com.br","lang":"pt-br","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/lunarscan/icon.png","dateFormat":"MMMMM dd, yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MiniTwo Scan","id":601012644,"baseUrl":"https://minitwoscan.com","lang":"pt-br","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/minitwoscan/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Nexo Scans","id":290544955,"baseUrl":"https://nexoscans.net","lang":"pt-br","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/nexoscans/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Ninja Scan","id":334761951,"baseUrl":"https://ninjacomics.xyz","lang":"pt-br","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/ninjascan/icon.png","dateFormat":"dd 'de' MMMMM 'de' yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"One Piece TECA","id":743484013,"baseUrl":"https://onepieceteca.com","lang":"pt-br","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/onepieceteca/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Demon Sect","id":779027778,"baseUrl":"https://dsectcomics.org","lang":"pt-br","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/prismascans/icon.png","dateFormat":"MMMMM dd, yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Sussy Scan","id":27850545,"baseUrl":"https://sussyscan.com","lang":"pt-br","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/sussyscan/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Kings-Manga","id":247277818,"baseUrl":"https://www.kings-manga.co","lang":"th","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/kingsmanga/icon.png","dateFormat":"d MMMM yyyy","dateFormatLocale":"th","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDeemak","id":1013072878,"baseUrl":"https://mangadeemak.com","lang":"th","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/mangadeemak/icon.png","dateFormat":"d MMMM yyyy","dateFormatLocale":"th","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"ManhuaBug","id":1069870491,"baseUrl":"https://www.manhuabug.com","lang":"th","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/manhuabug/icon.png","dateFormat":"d MMMM yyyy","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"ManhuaThai","id":886909171,"baseUrl":"https://www.manhuathai.com","lang":"th","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/manhuathai/icon.png","dateFormat":"d MMMM yyyy","dateFormatLocale":"th","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"ManhwaBreakup","id":1042261128,"baseUrl":"https://www.manhwabreakup.com","lang":"th","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/manhwabreakup/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"th","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Atikrost","id":515012139,"baseUrl":"https://www.atikrost.com","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/atikrost/icon.png","dateFormat":"d MMMM yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"DiamondFansub","id":692477375,"baseUrl":"https://diamondfansub.com","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/diamondfansub/icon.png","dateFormat":"d MMMM","dateFormatLocale":"tr-tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"EvaScans","id":439004766,"baseUrl":"https://evascans.com","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/evascans/icon.png","dateFormat":"MMM d, yyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Garcia Manga","id":839477218,"baseUrl":"https://garciamanga.com","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/garciamanga/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"GuncelManga","id":344324216,"baseUrl":"https://guncelmanga.net","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/guncelmanga/icon.png","dateFormat":"d MMMM yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"LilyumFansub","id":987644367,"baseUrl":"https://lilyumfansub.com.tr","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/lilyumfansub/icon.png","dateFormat":"MMMM dd yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaGezgini","id":384203300,"baseUrl":"https://mangagezgini.com","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/mangagezgini/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga Keyfi","id":90571537,"baseUrl":"https://mangakeyfi.net","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/mangakeyfi/icon.png","dateFormat":"d MMM yyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga Oku","id":118357555,"baseUrl":"https://mangaoku.info","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/mangaoku/icon.png","dateFormat":"d MMMM yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaWOW","id":753316676,"baseUrl":"https://mangawow.org","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/mangawow/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Merlin Scans","id":766513760,"baseUrl":"https://merlinscans.com","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/merlinscans/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Rüya Manga","id":913158953,"baseUrl":"https://www.ruyamanga.com","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/ruyamanga/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Türkçe Manga Oku","id":1065180352,"baseUrl":"https://turkcemangaoku.com","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/turkcemangaoku/icon.png","dateFormat":"d MMMM yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Webtoon Hatti","id":790500497,"baseUrl":"https://webtoonhatti.net","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/webtoonhatti/icon.png","dateFormat":"dd MMMM","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":370890607,"baseUrl":"https://comick.app","lang":"all","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":955190069,"baseUrl":"https://comick.app","lang":"en","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":494197461,"baseUrl":"https://comick.app","lang":"pt-br","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":1050814052,"baseUrl":"https://comick.app","lang":"ru","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":380505196,"baseUrl":"https://comick.app","lang":"fr","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":296390197,"baseUrl":"https://comick.app","lang":"es-419","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":242913014,"baseUrl":"https://comick.app","lang":"pl","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":507059585,"baseUrl":"https://comick.app","lang":"tr","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":851891714,"baseUrl":"https://comick.app","lang":"it","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":115169439,"baseUrl":"https://comick.app","lang":"es","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":719269008,"baseUrl":"https://comick.app","lang":"id","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":719759654,"baseUrl":"https://comick.app","lang":"hu","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":301477894,"baseUrl":"https://comick.app","lang":"vi","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":113594984,"baseUrl":"https://comick.app","lang":"zh-hk","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":602472856,"baseUrl":"https://comick.app","lang":"ar","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":401493183,"baseUrl":"https://comick.app","lang":"de","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":752155292,"baseUrl":"https://comick.app","lang":"zh","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":1069764002,"baseUrl":"https://comick.app","lang":"ca","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":678531099,"baseUrl":"https://comick.app","lang":"bg","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":311480598,"baseUrl":"https://comick.app","lang":"th","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":141560456,"baseUrl":"https://comick.app","lang":"fa","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":8261465,"baseUrl":"https://comick.app","lang":"uk","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":565474938,"baseUrl":"https://comick.app","lang":"mn","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":533803532,"baseUrl":"https://comick.app","lang":"ro","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":459976450,"baseUrl":"https://comick.app","lang":"he","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":375702775,"baseUrl":"https://comick.app","lang":"ms","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":737984097,"baseUrl":"https://comick.app","lang":"tl","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":796489006,"baseUrl":"https://comick.app","lang":"ja","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":683471552,"baseUrl":"https://comick.app","lang":"hi","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":778623467,"baseUrl":"https://comick.app","lang":"my","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":1065236294,"baseUrl":"https://comick.app","lang":"ko","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":422767524,"baseUrl":"https://comick.app","lang":"cs","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":678647945,"baseUrl":"https://comick.app","lang":"pt","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":698202010,"baseUrl":"https://comick.app","lang":"nl","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":359879447,"baseUrl":"https://comick.app","lang":"sv","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":532878423,"baseUrl":"https://comick.app","lang":"bn","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":481504622,"baseUrl":"https://comick.app","lang":"no","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":112887841,"baseUrl":"https://comick.app","lang":"lt","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":824905526,"baseUrl":"https://comick.app","lang":"el","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":373675453,"baseUrl":"https://comick.app","lang":"sr","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":574420905,"baseUrl":"https://comick.app","lang":"da","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":202373705,"baseUrl":"https://mangadex.org","lang":"ar","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":860658373,"baseUrl":"https://mangadex.org","lang":"bn","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":722270529,"baseUrl":"https://mangadex.org","lang":"bg","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":978675083,"baseUrl":"https://mangadex.org","lang":"my","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":689496451,"baseUrl":"https://mangadex.org","lang":"ca","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":593575397,"baseUrl":"https://mangadex.org","lang":"zh","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":115179159,"baseUrl":"https://mangadex.org","lang":"zh-hk","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":869144666,"baseUrl":"https://mangadex.org","lang":"cs","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":846142909,"baseUrl":"https://mangadex.org","lang":"da","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":841149659,"baseUrl":"https://mangadex.org","lang":"nl","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":810342358,"baseUrl":"https://mangadex.org","lang":"en","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":309024312,"baseUrl":"https://mangadex.org","lang":"tl","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":164642544,"baseUrl":"https://mangadex.org","lang":"fi","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":545017689,"baseUrl":"https://mangadex.org","lang":"fr","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":110023605,"baseUrl":"https://mangadex.org","lang":"de","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":767687578,"baseUrl":"https://mangadex.org","lang":"el","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":511907642,"baseUrl":"https://mangadex.org","lang":"he","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":986826068,"baseUrl":"https://mangadex.org","lang":"hi","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":128441350,"baseUrl":"https://mangadex.org","lang":"hu","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":183977130,"baseUrl":"https://mangadex.org","lang":"id","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":127887438,"baseUrl":"https://mangadex.org","lang":"it","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":204112007,"baseUrl":"https://mangadex.org","lang":"ja","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":1063442064,"baseUrl":"https://mangadex.org","lang":"kk","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":898061477,"baseUrl":"https://mangadex.org","lang":"ko","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":387646759,"baseUrl":"https://mangadex.org","lang":"la","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":270482698,"baseUrl":"https://mangadex.org","lang":"lt","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":284400542,"baseUrl":"https://mangadex.org","lang":"ms","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":525041874,"baseUrl":"https://mangadex.org","lang":"mn","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":613632949,"baseUrl":"https://mangadex.org","lang":"ne","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":441032670,"baseUrl":"https://mangadex.org","lang":"no","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":693311514,"baseUrl":"https://mangadex.org","lang":"fa","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":683661227,"baseUrl":"https://mangadex.org","lang":"pl","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":417850874,"baseUrl":"https://mangadex.org","lang":"pt-br","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":1027115198,"baseUrl":"https://mangadex.org","lang":"pt","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":399589398,"baseUrl":"https://mangadex.org","lang":"ro","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":367421943,"baseUrl":"https://mangadex.org","lang":"ru","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":254140838,"baseUrl":"https://mangadex.org","lang":"sh","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":823535267,"baseUrl":"https://mangadex.org","lang":"es-419","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":736630443,"baseUrl":"https://mangadex.org","lang":"es","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":146351677,"baseUrl":"https://mangadex.org","lang":"sv","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":739930809,"baseUrl":"https://mangadex.org","lang":"ta","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":385031783,"baseUrl":"https://mangadex.org","lang":"th","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":1008587213,"baseUrl":"https://mangadex.org","lang":"tr","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":778357609,"baseUrl":"https://mangadex.org","lang":"uk","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":88174952,"baseUrl":"https://mangadex.org","lang":"vi","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.0.9","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Beast Scans","id":1051043161,"baseUrl":"https://beast-scans.com","lang":"ar","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/beastscans/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Lelmanga","id":35877276,"baseUrl":"https://www.lelmanga.com","lang":"fr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/lelmanga/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Asura Scans","id":524070078,"baseUrl":"https://asuratoon.com/","lang":"en","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/asurascans/icon.png","dateFormat":"MMM d, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"KomikLab Scans","id":932554594,"baseUrl":"https://komiklab.com","lang":"en","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/komiklab/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Azure Scans","id":316512590,"baseUrl":"https://azuremanga.com","lang":"en","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/azurescans/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Cosmic Scans","id":938687459,"baseUrl":"https://cosmicscans.com","lang":"en","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/cosmicscans/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"CosmicScans.id","id":1053293978,"baseUrl":"https://cosmicscans.id","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/cosmicscansid/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"DuniaKomik.id","id":326969052,"baseUrl":"https://duniakomik.id","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/duniakomikid/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"id","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Gecenin Lordu","id":622207049,"baseUrl":"https://geceninlordu.com","lang":"tr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/geceninlordu/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Infernal Void Scans","id":460393112,"baseUrl":"https://void-scans.com","lang":"en","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/infernalvoidscans/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"KataKomik","id":61302571,"baseUrl":"https://katakomik.online","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/katakomik/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Komik Station","id":866615506,"baseUrl":"https://komikstation.co","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/komikstation/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"id","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"KomikMama","id":148959602,"baseUrl":"https://komikmama.co","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/komikmama/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"id","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Komiku.com","id":869906392,"baseUrl":"https://komiku.com","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/komikucom/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"id","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Magus Manga","id":487156426,"baseUrl":"https://magusmanga.com","lang":"ar","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/magusmanga/icon.png","dateFormat":"MMMMM d, yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga Indo.me","id":425166803,"baseUrl":"https://mangaindo.me","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/mangaindome/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Mangacim","id":642410916,"baseUrl":"https://www.mangacim.com","lang":"tr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/mangacim/icon.png","dateFormat":"MMM d, yyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaTale","id":343986734,"baseUrl":"https://mangatale.co","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/mangatale/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"id","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaWT","id":1014190199,"baseUrl":"https://mangawt.com","lang":"tr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/mangawt/icon.png","dateFormat":"MMM d, yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MELOKOMIK","id":532392938,"baseUrl":"https://melokomik.xyz","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/melokomik/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"id","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Origami Orpheans","id":261849744,"baseUrl":"https://origami-orpheans.com.br","lang":"pt-br","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/origamiorpheans/icon.png","dateFormat":"MMMMM dd, yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"PhenixScans","id":984162065,"baseUrl":"https://phenixscans.fr","lang":"fr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/phenixscans/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"fr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Pi Scans","id":548699583,"baseUrl":"https://piscans.in","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/piscans/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Raiki Scan","id":550138305,"baseUrl":"https://raikiscan.com","lang":"es","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/raikiscan/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Raven Scans","id":299682436,"baseUrl":"https://ravenscans.com","lang":"en","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/ravenscans/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Shadow Mangas","id":229424731,"baseUrl":"https://shadowmangas.com","lang":"es","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/shadowmangas/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Surya Scans","id":935389321,"baseUrl":"https://suryascans.com","lang":"en","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/suryascans/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Sushi-Scans","id":1036140988,"baseUrl":"https://sushiscan.fr","lang":"fr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/sushiscans/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"fr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Sushi-Scan","id":972784612,"baseUrl":"https://sushiscan.net","lang":"fr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/sushiscan/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"fr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Tarot Scans","id":347606260,"baseUrl":"https://www.tarotscans.com","lang":"tr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/tarotscans/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"TukangKomik","id":884904192,"baseUrl":"https://tukangkomik.id","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/tukangkomik/icon.png","dateFormat":"MMM d, yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"TurkToon","id":579681001,"baseUrl":"https://turktoon.com","lang":"tr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/turktoon/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Uzay Manga","id":762273201,"baseUrl":"https://uzaymanga.com","lang":"tr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/uzaymanga/icon.png","dateFormat":"MMM d, yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"xCaliBR Scans","id":699314250,"baseUrl":"https://xcalibrscans.com","lang":"en","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/xcalibrscans/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Miau Scan","id":579641140,"baseUrl":"https://lectormiau.com","lang":"all","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/miauscan/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Thunder Scans","id":607210554,"baseUrl":"https://ar-thunderepic.com","lang":"all","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/thunderscans/icon.png","dateFormat":"MMM d, yyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"أريا مانجا","id":101767587,"baseUrl":"https://www.areascans.net","lang":"ar","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/areamanga/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Area Scans","id":215530388,"baseUrl":"https://ar.areascans.org","lang":"ar","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/areascans/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"SCARManga","id":973665455,"baseUrl":"https://scarmanga.com","lang":"ar","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/aresnov/icon.png","dateFormat":"MMMMM dd, yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Beast Scans","id":1051043161,"baseUrl":"https://beast-scans.com","lang":"ar","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/beastscans/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Crow Scans","id":113863087,"baseUrl":"https://crowscans.com","lang":"ar","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/crowscans/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"ARESManga","id":603318428,"baseUrl":"https://fl-ares.com","lang":"ar","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/iimanga/icon.png","dateFormat":"MMMMM dd, yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga Flame","id":246146595,"baseUrl":"https://mangaflame.org","lang":"ar","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/mangaflame/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"مانجا نون","id":360286753,"baseUrl":"https://manjanoon.org","lang":"ar","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/manganoon/icon.png","dateFormat":"MMM d, yyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga Pro","id":349077648,"baseUrl":"https://mangapro.club","lang":"ar","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/mangapro/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaSwat","id":1022922869,"baseUrl":"https://normoyun.com","lang":"ar","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/mangaswat/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaTak","id":71223245,"baseUrl":"https://mangatak.com","lang":"ar","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/mangatak/icon.png","dateFormat":"MMMM DD, yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"PotatoManga","id":833603780,"baseUrl":"https://ar.potatomanga.xyz","lang":"ar","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/potatomanga/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"StellarSaber","id":719550729,"baseUrl":"https://stellarsaber.pro","lang":"ar","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/stellarsaber/icon.png","dateFormat":"MMMMM dd, yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Rizz Comic","id":369389150,"baseUrl":"https://rizzfables.com","lang":"en","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/rizzcomic/icon.png","dateFormat":"dd MMM yyyy","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Berserker Scan","id":150485334,"baseUrl":"https://ragnascan.com","lang":"es","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/berserkerscan/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Cartel de Manhwas","id":884854005,"baseUrl":"https://carteldemanhwas.com","lang":"es","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/carteldemanhwas/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"De Todo Un Poco Scan","id":843656091,"baseUrl":"https://dtupscan.com","lang":"es","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/dtupscan/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Gremory Mangas","id":643211287,"baseUrl":"https://gremorymangas.com","lang":"es","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/gremorymangas/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"RyujinManga","id":280926444,"baseUrl":"https://ryujinmanga.com","lang":"es","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/ryujinmanga/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Senpai Ediciones","id":483474103,"baseUrl":"https://senpaiediciones.com","lang":"es","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/senpaiediciones/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"SkyMangas","id":586822857,"baseUrl":"https://skymangas.com","lang":"es","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/skymangas/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Legacy Scans","id":310973833,"baseUrl":"https://legacy-scans.com","lang":"fr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/flamescansfr/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"fr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Mangas Scans","id":10569804,"baseUrl":"https://mangas-scans.com","lang":"fr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/mangasscans/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"fr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Rimu Scans","id":1062885024,"baseUrl":"https://rimuscans.fr","lang":"fr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/rimuscans/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"fr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"VF Scan","id":66643810,"baseUrl":"https://www.vfscan.cc","lang":"fr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/vfscan/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"fr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comicaso","id":408387886,"baseUrl":"https://comicaso.com","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/comicaso/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"id","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Kiryuu","id":729634849,"baseUrl":"https://kiryuu.id","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/kiryuu/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"id","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"APKOMIK","id":851821537,"baseUrl":"https://apkomik.cc","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/komikav/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"id","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"KomikIndo.co","id":1029579773,"baseUrl":"https://komikindo.co","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/komikindoco/icon.png","dateFormat":"MMM dd, yyyy","dateFormatLocale":"id","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Mangakyo","id":350778130,"baseUrl":"https://mangakyo.vip","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/mangakyo/icon.png","dateFormat":"MMM d, yyyy","dateFormatLocale":"id","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaYu","id":815037068,"baseUrl":"https://mangayu.id","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/mangayu/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"id","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Siren Komik","id":933724425,"baseUrl":"https://sirenkomik.my.id","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/mangkomik/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"id","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Tenshi.id","id":74634925,"baseUrl":"https://tenshi.id","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/masterkomik/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"id-id","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Natsu","id":539493591,"baseUrl":"https://natsu.id","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/natsu/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"id","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Shea Manga","id":732403984,"baseUrl":"https://sheakomik.com","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/sheamanga/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"id","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Shirakami","id":653518167,"baseUrl":"https://shirakami.xyz","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/shirakami/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"id","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Walpurgi Scan","id":83686844,"baseUrl":"https://www.walpurgiscan.it","lang":"it","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/walpurgisscan/icon.png","dateFormat":"MMM d, yyyy","dateFormatLocale":"it","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Diskus Scan","id":219319544,"baseUrl":"https://diskusscan.com","lang":"pt-br","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/diskusscan/icon.png","dateFormat":"MMMMM dd, yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Iris Scanlator","id":627481975,"baseUrl":"https://irisscanlator.com.br","lang":"pt-br","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/irisscanlator/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Mangás Chan","id":413321827,"baseUrl":"https://mangaschan.net","lang":"pt-br","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/mangaschan/icon.png","dateFormat":"MMMMM dd, yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Mangás Online","id":607918644,"baseUrl":"https://mangasonline.cc","lang":"pt-br","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/mangasonline/icon.png","dateFormat":"MMMMM dd, yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"SSSScanlator","id":429559501,"baseUrl":"https://sssscanlator.com.br","lang":"pt-br","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/sssscanlator/icon.png","dateFormat":"MMMMM dd, yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Tsundoku Traduções","id":958388028,"baseUrl":"https://tsundoku.com.br","lang":"pt-br","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/tsundokutraducoes/icon.png","dateFormat":"MMMMM d, yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga-Moon","id":592572146,"baseUrl":"https://manga-moons.net","lang":"th","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/mangamoon/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"th","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Adu Manga","id":278062325,"baseUrl":"https://www.mangacim.com","lang":"tr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/adumanga/icon.png","dateFormat":"MMMM d, yyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Afrodit Scans","id":589929789,"baseUrl":"https://afroditscans.com","lang":"tr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/afroditscans/icon.png","dateFormat":"MMMM d, yyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Athena Manga","id":279839170,"baseUrl":"https://athenamanga.com","lang":"tr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/athenamanga/icon.png","dateFormat":"MMMM d, yyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Gaiatoon","id":135821324,"baseUrl":"https://gaiatoon.com","lang":"tr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/gaiatoon/icon.png","dateFormat":"MMMM d, yyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MajorScans","id":448604103,"baseUrl":"https://www.majorscans.com","lang":"tr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/majorscans/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga Efendisi","id":676269978,"baseUrl":"https://mangaefendisi.net","lang":"tr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/mangaefendisi/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga Kings","id":550899403,"baseUrl":"https://mangakings.com.tr","lang":"tr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/mangakings/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Merlin Shoujo","id":487637789,"baseUrl":"https://merlinshoujo.com","lang":"tr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/merlinshoujo/icon.png","dateFormat":"MMMM d, yyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Nirvana Manga","id":212544702,"baseUrl":"https://nirvanamanga.com","lang":"tr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/nirvanamanga/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Pati Manga","id":170419301,"baseUrl":"https://www.patimanga.com","lang":"tr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/patimanga/icon.png","dateFormat":"MMMM d, yyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Raindrop Fansub","id":380323896,"baseUrl":"https://www.raindropteamfan.com","lang":"tr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/raindropfansub/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Serein Scan","id":366839092,"baseUrl":"https://sereinscan.com","lang":"tr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/sereinscan/icon.png","dateFormat":"MMM d, yyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Shijie Scans","id":95172728,"baseUrl":"https://shijiescans.com","lang":"tr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/shijiescans/icon.png","dateFormat":"MMM d, yyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"SummerToon","id":297221652,"baseUrl":"https://summertoon.me","lang":"tr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/summertoon/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Zenith Scans","id":554003129,"baseUrl":"https://zenithscans.com","lang":"tr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/zenithscans/icon.png","dateFormat":"MMM d, yyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Scan VF","id":929253523,"baseUrl":"https://www.scan-vf.net","lang":"fr","typeSource":"mmrcms","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mmrcms/src/scanvf/icon.png","dateFormat":"d MMM. yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mmrcms/mmrcms.dart","apiUrl":"","version":"0.0.65","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Komikid","id":400330220,"baseUrl":"https://www.komikid.com","lang":"id","typeSource":"mmrcms","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mmrcms/src/komikid/icon.png","dateFormat":"d MMM. yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mmrcms/mmrcms.dart","apiUrl":"","version":"0.0.65","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaID","id":181458486,"baseUrl":"https://mangaid.click","lang":"id","typeSource":"mmrcms","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mmrcms/src/mangaid/icon.png","dateFormat":"d MMM. yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mmrcms/mmrcms.dart","apiUrl":"","version":"0.0.65","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Jpmangas","id":1009609900,"baseUrl":"https://jpmangas.cc","lang":"fr","typeSource":"mmrcms","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mmrcms/src/jpmangas/icon.png","dateFormat":"d MMM. yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mmrcms/mmrcms.dart","apiUrl":"","version":"0.0.65","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"مانجا اون لاين","id":19018595,"baseUrl":"https://onma.top","lang":"ar","typeSource":"mmrcms","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mmrcms/src/onma/icon.png","dateFormat":"d MMM. yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mmrcms/mmrcms.dart","apiUrl":"","version":"0.0.65","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Read Comics Online","id":1021546729,"baseUrl":"https://readcomicsonline.ru","lang":"en","typeSource":"mmrcms","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mmrcms/src/readcomicsonline/icon.png","dateFormat":"d MMM. yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mmrcms/mmrcms.dart","apiUrl":"","version":"0.0.65","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Lelscan-VF","id":529915550,"baseUrl":"https://www.lelscanvf.cc/","lang":"fr","typeSource":"mmrcms","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mmrcms/src/lelscanvf/icon.png","dateFormat":"d MMM. yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mmrcms/mmrcms.dart","apiUrl":"","version":"0.0.65","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga-FR","id":410779276,"baseUrl":"https://manga-fr.me","lang":"fr","typeSource":"mmrcms","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mmrcms/src/mangafr/icon.png","dateFormat":"d MMM. yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mmrcms/mmrcms.dart","apiUrl":"","version":"0.0.65","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaHere","id":434984458,"baseUrl":"http://www.mangahere.cc","lang":"en","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/en/mangahere/icon.png","dateFormat":"MMM dd,yyyy","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/en/mangahere/mangahere.dart","apiUrl":"","version":"0.0.7","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaSee","id":531216751,"baseUrl":"https://mangasee123.com","lang":"en","typeSource":"nepnep","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/nepnep/src/mangasee/icon.png","dateFormat":"yyyy-MM-dd HH:mm:ss","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/nepnep/nepnep.dart","apiUrl":"","version":"0.0.65","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaLife","id":434747478,"baseUrl":"https://manga4life.com","lang":"en","typeSource":"nepnep","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/nepnep/src/mangalife/icon.png","dateFormat":"yyyy-MM-dd HH:mm:ss","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/nepnep/nepnep.dart","apiUrl":"","version":"0.0.65","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Mangabat","id":658659024,"baseUrl":"https://m.mangabat.com","lang":"en","typeSource":"mangabox","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangabox/src/mangabat/icon.png","dateFormat":"MMM dd,yy","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangabox/mangabox.dart","apiUrl":"","version":"0.0.6","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Mangairo","id":119266018,"baseUrl":"https://h.mangairo.com","lang":"en","typeSource":"mangabox","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangabox/src/mangairo/icon.png","dateFormat":"MMM-dd-yy","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangabox/mangabox.dart","apiUrl":"","version":"0.0.6","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Mangakakalot","id":1071729594,"baseUrl":"https://mangakakalot.com","lang":"en","typeSource":"mangabox","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangabox/src/mangakakalot/icon.png","dateFormat":"MMM dd,yyyy","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangabox/mangabox.dart","apiUrl":"","version":"0.0.6","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manganato","id":796167348,"baseUrl":"https://manganato.com","lang":"en","typeSource":"mangabox","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangabox/src/manganato/icon.png","dateFormat":"MMM dd,yy","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangabox/mangabox.dart","apiUrl":"","version":"0.0.6","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"新新漫画","id":652112892,"baseUrl":"https://www.77mh.nl","lang":"zh","typeSource":"single","iconUrl":"https://www.77mh.nl/favicon.ico","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/manga/src/zh/77mh.js","apiUrl":"","version":"0.0.25","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"漫画DB","id":900808373,"baseUrl":"https://www.manhuadb.com","lang":"zh","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/zh.manhuadb.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/manga/src/zh/manhuadb.js","apiUrl":"","version":"0.0.25","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"漫画柜","id":219867496,"baseUrl":"https://www.manhuagui.com","lang":"zh","typeSource":"single","iconUrl":"https://www.manhuagui.com/favicon.ico","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/manga/src/zh/manhuagui.js","apiUrl":"","version":"0.0.25","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"拷贝漫画","id":109412435,"baseUrl":"https://www.mangacopy.com","lang":"zh","typeSource":"single","iconUrl":"https://hi77-overseas.mangafuna.xyz/static/free.ico","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/manga/src/zh/copymanga.js","apiUrl":"https://api.mangacopy.com","version":"0.0.2","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"动漫之家","id":434793864,"baseUrl":"https://www.dmzj.com","lang":"zh","typeSource":"single","iconUrl":"https://www.dmzj.com/_nuxt/logo_dmzj.1c94014a.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/manga/src/zh/dmzj.js","apiUrl":"","version":"0.0.25","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1}] \ No newline at end of file +[{"name":"1st Kiss-Manga (unoriginal)","id":638504049,"baseUrl":"https://1stkiss-manga.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/firstkissdashmanga/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"AQUA Scans","id":1022584413,"baseUrl":"https://aquascans.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/manhwaworld/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Akuma no Tenshi","id":556872410,"baseUrl":"https://akumanotenshi.com","lang":"pt-BR","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/akumanotenshi/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Anikiga","id":554316969,"baseUrl":"https://anikiga.com","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/anikiga/icon.png","dateFormat":"d MMMMM yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"ArazNovel","id":966932111,"baseUrl":"https://www.araznovel.com","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/araznovel/icon.png","dateFormat":"d MMMM yyyy","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Arthur Scan","id":678948853,"baseUrl":"https://arthurscan.xyz","lang":"pt-BR","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/arthurscan/icon.png","dateFormat":"MMMMM dd, yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"AstralManga","id":1028022993,"baseUrl":"https://astral-manga.fr","lang":"fr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/astralmanga/icon.png","dateFormat":"dd/mm/yyyy","dateFormatLocale":"fr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Asura Scans.us (unoriginal)","id":586702086,"baseUrl":"https://asurascans.us","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/asurascansus/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"BarManga","id":627965453,"baseUrl":"https://barmanga.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/barmanga/icon.png","dateFormat":"MM/dd/yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"BestManga","id":926276360,"baseUrl":"https://bestmanga.club","lang":"ru","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/bestmanga/icon.png","dateFormat":"dd.MM.yyyy","dateFormatLocale":"ru","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Chibi Manga","id":105430403,"baseUrl":"https://www.cmreader.info","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/chibimanga/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Clover Manga","id":811523862,"baseUrl":"https://clover-manga.com","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/clovermanga/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Coco Rip","id":316931886,"baseUrl":"https://cocorip.net","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/cocorip/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Coffee Manga","id":212388160,"baseUrl":"https://coffeemanga.io","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/coffeemanga/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Doodmanga","id":796439892,"baseUrl":"https://www.doodmanga.com","lang":"th","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/doodmanga/icon.png","dateFormat":"dd MMMMM yyyy","dateFormatLocale":"th","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Elite Manga","id":667501516,"baseUrl":"https://www.elitemanga.org","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/elitemanga/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Emperor Scan","id":21325920,"baseUrl":"https://emperorscan.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/emperorscan/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"EvaScans","id":439004766,"baseUrl":"https://evascans.com","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/evascans/icon.png","dateFormat":"MMM d, yyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"FR-Scan","id":669019889,"baseUrl":"https://fr-scan.com","lang":"fr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/frscan/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"fr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"FactManga","id":956621361,"baseUrl":"https://factmanga.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/factmanga/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"FreeMangaTop","id":679915593,"baseUrl":"https://freemangatop.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/freemangatop/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Glory Manga","id":284318957,"baseUrl":"https://glorymanga.com","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/glorymanga/icon.png","dateFormat":"dd/MM/yyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Harimanga","id":178905360,"baseUrl":"https://harimanga.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/harimanga/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Immortal Updates","id":227459275,"baseUrl":"https://immortalupdates.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/immortalupdates/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Império Scans","id":721205416,"baseUrl":"https://imperioscans.com.br","lang":"pt-BR","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/imperioscans/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Inmortal Scan","id":809387434,"baseUrl":"https://manga.mundodrama.site","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/inmortalscan/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"IsekaiScanManga (unoriginal)","id":775728183,"baseUrl":"https://isekaiscanmanga.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/isekaiscanmanga/icon.png","dateFormat":"dd MMM، yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Jimanga","id":773169340,"baseUrl":"https://jimanga.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/jimanga/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"KSGroupScans","id":374902680,"baseUrl":"https://ksgroupscans.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/ksgroupscans/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Kakusei Project","id":872023105,"baseUrl":"https://kakuseiproject.com.br","lang":"pt-BR","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/kakuseiproject/icon.png","dateFormat":"MMMMM dd, yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Kami Sama Explorer","id":797019242,"baseUrl":"https://leitor.kamisama.com.br","lang":"pt-br","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/kamisamaexplorer/icon.png","dateFormat":"dd 'de' MMMM 'de' yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Komik Chan","id":852383302,"baseUrl":"https://komikchan.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/komikchan/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"LHTranslation","id":21247797,"baseUrl":"https://lhtranslation.net","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/lhtranslation/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Lady Estelar Scan","id":987669145,"baseUrl":"https://ladyestelarscan.com.br","lang":"pt-BR","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/ladyestelarscan/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Leviatan Scans","id":280413449,"baseUrl":"https://lscomic.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/leviatanscans/icon.png","dateFormat":"MMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Luffy Manga","id":797524700,"baseUrl":"https://luffymanga.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/luffymanga/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Maid Scan","id":931615028,"baseUrl":"https://maidscan.com.br","lang":"pt-BR","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/maidscan/icon.png","dateFormat":"dd 'de' MMMMM 'de' yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga Diyari","id":531861751,"baseUrl":"https://manga-diyari.com","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/mangadiyari/icon.png","dateFormat":"MMM dd, yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga Fenix","id":533195191,"baseUrl":"https://manhua-fenix.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/mangafenix/icon.png","dateFormat":"dd MMMM, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga Galaxy","id":935714707,"baseUrl":"https://mangagalaxy.me","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/mangagalaxy/icon.png","dateFormat":"MM/dd/yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga Read","id":256879643,"baseUrl":"https://mangaread.co","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/mangaread/icon.png","dateFormat":"yyyy-MM-dd","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga Tx.gg (unoriginal)","id":457634416,"baseUrl":"https://mangatx.gg","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/mangatxgg/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga Weebs","id":499853860,"baseUrl":"https://mangaweebs.in","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/mangaweebs/icon.png","dateFormat":"dd MMMM HH:mm","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga Şehri","id":865354788,"baseUrl":"https://mangasehri.com","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/mangasehri/icon.png","dateFormat":"dd/MM/yyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga-TX","id":382229208,"baseUrl":"https://manga-tx.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/mangatxunoriginal/icon.png","dateFormat":"MMM d, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaClash","id":1022665553,"baseUrl":"https://mangaclash.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/mangaclash/icon.png","dateFormat":"MM/dd/yy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaFreak.online","id":223793266,"baseUrl":"https://mangafreak.online","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/mangafreakonline/icon.png","dateFormat":"d MMMM، yyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaGreat","id":1054806605,"baseUrl":"https://mangagreat.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/mangagreat/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaKomi","id":396237578,"baseUrl":"https://mangakomi.io","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/mangakomi/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaRead.org","id":120353492,"baseUrl":"https://www.mangaread.org","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/mangareadorg/icon.png","dateFormat":"dd.MM.yyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaRolls","id":720109919,"baseUrl":"https://mangarolls.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/mangarolls/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaTyrant","id":32333683,"baseUrl":"https://mangatyrant.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/mangatyrant/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaUS","id":503871898,"baseUrl":"https://mangaus.xyz","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/mangaus/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Mangasushi","id":224429716,"baseUrl":"https://mangasushi.org","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/mangasushi/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Mangá Nanquim","id":92850584,"baseUrl":"https://mangananquim.com","lang":"pt-BR","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/mangananquim/icon.png","dateFormat":"dd 'de' MMMMM 'de' yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manhua ES","id":722532191,"baseUrl":"https://manhuaaz.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/manhuaes/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"ManhuaUS","id":802461663,"baseUrl":"https://manhuaus.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/manhuaus/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"ManhuaZone","id":751568949,"baseUrl":"https://manhuazone.org","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/manhuazone/icon.png","dateFormat":"MMM d, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"ManhwaClan","id":668862828,"baseUrl":"https://manhwaclan.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/manhwaclan/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manhwafull","id":316078751,"baseUrl":"https://manhwafull.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/manhwafull/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Mantraz Scan","id":919786495,"baseUrl":"https://mantrazscan.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/mantrazscan/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Momo no Hana Scan","id":800496106,"baseUrl":"https://momonohanascan.com","lang":"pt-BR","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/momonohanascan/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MonarcaManga","id":677489943,"baseUrl":"https://monarcamanga.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/monarcamanga/icon.png","dateFormat":"MMM d, yyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Moon Witch In Love","id":1023454168,"baseUrl":"https://moonwitchinlovescan.com","lang":"pt-BR","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/moonwitchinlove/icon.png","dateFormat":"dd 'de' MMMMM 'de' yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"NekoPost.co (unoriginal)","id":68388394,"baseUrl":"https://www.nekopost.co","lang":"th","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/nekopostco/icon.png","dateFormat":"d MMMM yyyy","dateFormatLocale":"th","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Niji Translations","id":1040686830,"baseUrl":"https://niji-translations.com","lang":"ar","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/nijitranslations/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Pantheon Scan","id":722864118,"baseUrl":"https://pantheon-scan.com","lang":"fr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/pantheonscan/icon.png","dateFormat":"d MMMM yyyy","dateFormatLocale":"fr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Pojok Manga","id":620356987,"baseUrl":"https://pojokmanga.net","lang":"id","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/pojokmanga/icon.png","dateFormat":"MMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Projeto Scanlator","id":1059909508,"baseUrl":"https://projetoscanlator.com","lang":"pt-BR","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/projetoscanlator/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"ROG Mangás","id":876053235,"baseUrl":"https://rogmangas.com","lang":"pt-BR","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/mangasoverall/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Ragnarok Scanlation","id":1045851788,"baseUrl":"https://ragnarokscanlation.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/ragnarokscanlation/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Rainbow Fairy Scan","id":342232477,"baseUrl":"https://rainbowfairyscan.com","lang":"pt-BR","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/rainbowfairyscan/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Random Scan","id":608218815,"baseUrl":"https://randomscanlators.net","lang":"pt-BR","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/randomscan/icon.png","dateFormat":"MMMMM dd, yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"ReaderGen","id":630253320,"baseUrl":"https://fr.readergen.fr","lang":"fr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/readergen/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"RichtoScan","id":688713066,"baseUrl":"https://richtoscan.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/richtoscan/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Rightdark Scan","id":1015914849,"baseUrl":"https://rightdark-scan.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/rightdarkscan/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Rio2 Manga","id":110090511,"baseUrl":"https://rio2manga.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/rio2manga/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Romantik Manga","id":944131896,"baseUrl":"https://romantikmanga.com","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/romantikmanga/icon.png","dateFormat":"MMM d, yyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"S2Manga","id":763495726,"baseUrl":"https://www.s2manga.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/s2manga/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"SamuraiScan","id":76766511,"baseUrl":"https://samuraiscan.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/samuraiscan/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"ScamberTraslator","id":774205343,"baseUrl":"https://scambertraslator.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/scambertraslator/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Scantrad-VF","id":400350749,"baseUrl":"https://scantrad-vf.co","lang":"fr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/scantradvf/icon.png","dateFormat":"d MMMM yyyy","dateFormatLocale":"fr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Shadowtrad","id":171182128,"baseUrl":"https://shadowtrad.net","lang":"fr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/shadowtrad/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"fr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Shiba Manga","id":368209304,"baseUrl":"https://shibamanga.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/shibamanga/icon.png","dateFormat":"MM/dd/yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Sinensis Scan","id":874513309,"baseUrl":"https://sinensisscan.net","lang":"pt-BR","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/sinensis/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Sweet Time Scan","id":773665225,"baseUrl":"https://sweetscan.net","lang":"pt-BR","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/sweettimescan/icon.png","dateFormat":"MMMMM dd, yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Tatakae Scan","id":296744306,"baseUrl":"https://tatakaescan.com","lang":"pt-BR","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/tatakaescan/icon.png","dateFormat":"dd 'de' MMMMM 'de' yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Taurus Fansub","id":1036726988,"baseUrl":"https://taurusfansub.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/taurusfansub/icon.png","dateFormat":"dd/MM/yyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"The Beginning After The End","id":337822334,"baseUrl":"https://www.thebeginningaftertheend.fr","lang":"fr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/thebeginningaftertheend/icon.png","dateFormat":"MMMMM dd, yyyy","dateFormatLocale":"fr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Tortuga Ceviri","id":294602572,"baseUrl":"https://tortuga-ceviri.com","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/tortugaceviri/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Wicked Witch Scan","id":679298799,"baseUrl":"https://wickedwitchscan.com","lang":"pt-BR","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/wickedwitchscan/icon.png","dateFormat":"MMMMM dd, yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Winter Scan","id":455337571,"baseUrl":"https://winterscan.com","lang":"pt-BR","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/winterscan/icon.png","dateFormat":"dd 'de' MMMM 'de' yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Wonderland Scan","id":867820989,"baseUrl":"https://wonderlandscan.com","lang":"pt-BR","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/wonderlandscan/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Yuri Verso","id":756257030,"baseUrl":"https://yuri.live","lang":"pt-br","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/yuriverso/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"فالكون مانجا","id":390316279,"baseUrl":"https://falconmanga.com","lang":"ar","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/falconmanga/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"مانجا العاشق","id":913767194,"baseUrl":"https://3asq.org","lang":"ar","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/manga3asq/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Grabber Zone","id":88668089,"baseUrl":"https://grabber.zone","lang":"all","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/grabberzone/icon.png","dateFormat":"dd.MM.yyyy","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Gatemanga","id":228457517,"baseUrl":"https://gatemanga.com","lang":"ar","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/gatemanga/icon.png","dateFormat":"d MMMM، yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"GMANGA (unoriginal)","id":534385671,"baseUrl":"https://gmanga.site","lang":"ar","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/gmangasite/icon.png","dateFormat":"MMMM dd، yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"مانجا لينك","id":933815485,"baseUrl":"https://manga-link.com","lang":"ar","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/mangalink/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaLionz","id":718647301,"baseUrl":"https://manga-lionz.com","lang":"ar","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/mangalionz/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga Rose","id":492075908,"baseUrl":"https://mangarose.net","lang":"ar","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/mangarose/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaSpark","id":498074514,"baseUrl":"https://manga-spark.net","lang":"ar","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/mangaspark/icon.png","dateFormat":"d MMMM، yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga Starz","id":424368932,"baseUrl":"https://manga-starz.com","lang":"ar","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/mangastarz/icon.png","dateFormat":"d MMMM، yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga Time","id":929842820,"baseUrl":"https://mangatime.us","lang":"ar","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/mangatime/icon.png","dateFormat":"dd MMMM، yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Olaoe","id":765729692,"baseUrl":"https://olaoe.cyou","lang":"ar","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/olaoe/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Rocks Manga","id":694856524,"baseUrl":"https://rocks-manga.com","lang":"ar","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/rocksmanga/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"DragonTea","id":351087179,"baseUrl":"https://dragontea.ink","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/dragontea/icon.png","dateFormat":"MM/dd/yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Global Bloging","id":466045336,"baseUrl":"https://globalbloging.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/globalbloging/icon.png","dateFormat":"dd MMMM yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga347","id":32568759,"baseUrl":"https://manga347.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/manga347/icon.png","dateFormat":"d MMM, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaEffect","id":426231795,"baseUrl":"https://mangaeffect.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/mangaeffect/icon.png","dateFormat":"dd.MM.yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga-fast.com","id":304908872,"baseUrl":"https://manga-fast.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/mangafastcom/icon.png","dateFormat":"d MMMM'،' yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga Leveling","id":922449127,"baseUrl":"https://mangaleveling.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/mangaleveling/icon.png","dateFormat":"MM/dd/yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"NeatManga","id":481438951,"baseUrl":"https://neatmanga.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/neatmanga/icon.png","dateFormat":"dd MMM yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"NvManga","id":714716947,"baseUrl":"https://nvmanga.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/nvmanga/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"PMScans","id":724822356,"baseUrl":"https://rackusreads.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/pmscans/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"ReadManhua","id":406424746,"baseUrl":"https://readmanhua.net","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/readmanhua/icon.png","dateFormat":"dd MMM yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"StoneScape","id":611266903,"baseUrl":"https://stonescape.xyz","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/stonescape/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"TappyToon.Net","id":903184103,"baseUrl":"https://tappytoon.net","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/tappytoonnet/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Zinmanga.net","id":656879510,"baseUrl":"https://zinmanga.net","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/zinmanganet/icon.png","dateFormat":"MM/dd/yyyy","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"BokugenTranslation","id":406916759,"baseUrl":"https://bokugents.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/bokugentranslation/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"DapRob","id":711981672,"baseUrl":"https://daprob.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/daprob/icon.png","dateFormat":"dd/MM/yyy","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"DeManhuas","id":563568870,"baseUrl":"https://demanhuas.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/demanhuas/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"HerenScan","id":249889937,"baseUrl":"https://herenscan.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/herenscan/icon.png","dateFormat":"d 'de' MMM 'de' yyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"HouseMangas","id":767167238,"baseUrl":"https://housemangas.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/housemangas/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"InfraFandub","id":1007047649,"baseUrl":"https://infrafandub.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/infrafandub/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Inmoral No Fansub","id":36533629,"baseUrl":"https://inmoralnofansub.xyz","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/inmoralnofansub/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"JeazScans","id":340396217,"baseUrl":"https://jeazscansv2.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/jeazscans/icon.png","dateFormat":"d MMMM, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Jobsibe","id":132907111,"baseUrl":"https://jobsibe.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/jobsibe/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"LegnMangas","id":805195882,"baseUrl":"https://legnmangas.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/legendsnofansub/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga Crab","id":830048268,"baseUrl":"https://visorcrab.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/mangacrab/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga Fenix","id":533195191,"baseUrl":"https://manhua-fenix.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/mangafenix/icon.png","dateFormat":"dd MMMM, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Mangas No Sekai","id":192331842,"baseUrl":"https://mangasnosekai.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/mangasnosekai/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manhua Online","id":1013501577,"baseUrl":"https://blog.manhuaonline.org","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/manhuaonline/icon.png","dateFormat":"dd 'de' MMMM 'de' yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MHScans","id":309079366,"baseUrl":"https://lectormh.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/mhscans/icon.png","dateFormat":"dd 'de' MMMM 'de' yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MonarcaManga","id":677489943,"baseUrl":"https://monarcamanga.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/monarcamanga/icon.png","dateFormat":"MMM d, yyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Noblesse Translations","id":303973222,"baseUrl":"https://www.noblessev1.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/noblessetranslations/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Prince Ediciones","id":23658821,"baseUrl":"https://princediciones.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/princediciones/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"SapphireScan","id":878724478,"baseUrl":"https://sapphirescan.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/sapphirescan/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Tres Daos Scan","id":278790017,"baseUrl":"https://tresdaos.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/tresdaosscan/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Unitoon","id":661103813,"baseUrl":"https://lectorunitoon.com","lang":"es","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/unitoon/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga-Scantrad","id":686398626,"baseUrl":"https://manga-scantrad.io","lang":"fr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/mangascantrad/icon.png","dateFormat":"d MMM yyyy","dateFormatLocale":"fr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Mangas-Origines.fr","id":27886548,"baseUrl":"https://mangas-origines.fr","lang":"fr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/mangasoriginesfr/icon.png","dateFormat":"dd/mm/yyyy","dateFormatLocale":"fr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Raijin Scans","id":320342235,"baseUrl":"https://raijinscans.com","lang":"fr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/raijinscans/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"fr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Reaper Scans","id":393303796,"baseUrl":"https://reaperscans.com","lang":"en","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/reaperscans/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Soft Epsilon Scan","id":59479664,"baseUrl":"https://soft.epsilonscan.fr","lang":"fr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/softepsilonscan/icon.png","dateFormat":"dd/MM/yy","dateFormatLocale":"fr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Hwago","id":742688581,"baseUrl":"https://hwago.org","lang":"id","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/hwago/icon.png","dateFormat":"d MMMM yyyy","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"KlikManga","id":325512770,"baseUrl":"https://klikmanga.id","lang":"id","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/klikmanga/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"id","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Komikuzan","id":654623055,"baseUrl":"https://komikuzan.com","lang":"id","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/komikuzan/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"id","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MG Komik","id":336171225,"baseUrl":"https://mgkomik.id","lang":"id","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/mgkomik/icon.png","dateFormat":"dd MMM yy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Siimanga","id":33515095,"baseUrl":"https://siimanga.cyou","lang":"id","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/siimanga/icon.png","dateFormat":"d MMMM","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Yubikiri","id":451585835,"baseUrl":"https://yubikiri.my.id","lang":"id","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/yubikiri/icon.png","dateFormat":"d MMMM","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaHoNa","id":1046386661,"baseUrl":"https://mangahona.pl","lang":"pl","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/mangahona/icon.png","dateFormat":"yyyy-MM-dd","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Alone Scanlator","id":646262881,"baseUrl":"https://alonescanlator.com.br","lang":"pt-br","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/alonescanlator/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Boruto Explorer","id":824559648,"baseUrl":"https://leitor.borutoexplorer.com.br","lang":"pt-br","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/borutoexplorer/icon.png","dateFormat":"dd 'de' MMMMM 'de' yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Crystal Comics","id":345759902,"baseUrl":"https://crystalcomics.com","lang":"pt-br","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/crystalcomics/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Fay Scans","id":591914093,"baseUrl":"https://fayscans.net","lang":"pt-br","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/fayscans/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Galinha Samurai Scan","id":204589683,"baseUrl":"https://galinhasamurai.com","lang":"pt-br","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/galinhasamuraiscan/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Hikari Ga Nai","id":346017333,"baseUrl":"https://hikariganai.xyz","lang":"pt-br","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/hikariganai/icon.png","dateFormat":"d 'de' MMMM 'de' yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Sagrado Império da Britannia","id":825744254,"baseUrl":"https://imperiodabritannia.com","lang":"pt-br","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/imperiodabritannia/icon.png","dateFormat":"dd 'de' MMMMM 'de' yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Império Scans","id":721205416,"baseUrl":"https://imperioscans.com.br","lang":"pt-BR","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/imperioscans/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Leitor de Mangá","id":1053799132,"baseUrl":"https://leitordemanga.com","lang":"pt-br","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/leitordemanga/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"L Scans","id":1044801707,"baseUrl":"https://lscans.com","lang":"pt-br","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/lscans/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Lunar Scan","id":912854479,"baseUrl":"https://lunarscan.com.br","lang":"pt-br","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/lunarscan/icon.png","dateFormat":"MMMMM dd, yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MiniTwo Scan","id":601012644,"baseUrl":"https://minitwoscan.com","lang":"pt-br","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/minitwoscan/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Nexo Scans","id":290544955,"baseUrl":"https://nexoscans.net","lang":"pt-br","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/nexoscans/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Ninja Scan","id":334761951,"baseUrl":"https://ninjacomics.xyz","lang":"pt-br","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/ninjascan/icon.png","dateFormat":"dd 'de' MMMMM 'de' yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"One Piece TECA","id":743484013,"baseUrl":"https://onepieceteca.com","lang":"pt-br","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/onepieceteca/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Demon Sect","id":779027778,"baseUrl":"https://dsectcomics.org","lang":"pt-br","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/prismascans/icon.png","dateFormat":"MMMMM dd, yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Sussy Scan","id":27850545,"baseUrl":"https://sussyscan.com","lang":"pt-br","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/sussyscan/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Kings-Manga","id":247277818,"baseUrl":"https://www.kings-manga.co","lang":"th","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/kingsmanga/icon.png","dateFormat":"d MMMM yyyy","dateFormatLocale":"th","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDeemak","id":1013072878,"baseUrl":"https://mangadeemak.com","lang":"th","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/mangadeemak/icon.png","dateFormat":"d MMMM yyyy","dateFormatLocale":"th","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"ManhuaBug","id":1069870491,"baseUrl":"https://www.manhuabug.com","lang":"th","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/manhuabug/icon.png","dateFormat":"d MMMM yyyy","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"ManhuaThai","id":886909171,"baseUrl":"https://www.manhuathai.com","lang":"th","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/manhuathai/icon.png","dateFormat":"d MMMM yyyy","dateFormatLocale":"th","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"ManhwaBreakup","id":1042261128,"baseUrl":"https://www.manhwabreakup.com","lang":"th","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/manhwabreakup/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"th","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Atikrost","id":515012139,"baseUrl":"https://www.atikrost.com","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/atikrost/icon.png","dateFormat":"d MMMM yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"DiamondFansub","id":692477375,"baseUrl":"https://diamondfansub.com","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/diamondfansub/icon.png","dateFormat":"d MMMM","dateFormatLocale":"tr-tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"EvaScans","id":439004766,"baseUrl":"https://evascans.com","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/evascans/icon.png","dateFormat":"MMM d, yyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Garcia Manga","id":839477218,"baseUrl":"https://garciamanga.com","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/garciamanga/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"GuncelManga","id":344324216,"baseUrl":"https://guncelmanga.net","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/guncelmanga/icon.png","dateFormat":"d MMMM yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"LilyumFansub","id":987644367,"baseUrl":"https://lilyumfansub.com.tr","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/lilyumfansub/icon.png","dateFormat":"MMMM dd yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaGezgini","id":384203300,"baseUrl":"https://mangagezgini.com","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/mangagezgini/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga Keyfi","id":90571537,"baseUrl":"https://mangakeyfi.net","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/mangakeyfi/icon.png","dateFormat":"d MMM yyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga Oku","id":118357555,"baseUrl":"https://mangaoku.info","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/mangaoku/icon.png","dateFormat":"d MMMM yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaWOW","id":753316676,"baseUrl":"https://mangawow.org","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/mangawow/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Merlin Scans","id":766513760,"baseUrl":"https://merlinscans.com","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/merlinscans/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Rüya Manga","id":913158953,"baseUrl":"https://www.ruyamanga.com","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/ruyamanga/icon.png","dateFormat":"dd/MM/yyyy","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Türkçe Manga Oku","id":1065180352,"baseUrl":"https://turkcemangaoku.com","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/turkcemangaoku/icon.png","dateFormat":"d MMMM yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Webtoon Hatti","id":790500497,"baseUrl":"https://webtoonhatti.net","lang":"tr","typeSource":"madara","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/bbranchNamee/dart/manga/multisrc/madara/src/webtoonhatti/icon.png","dateFormat":"dd MMMM","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/madara.dart","apiUrl":"","version":"0.1.15","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":370890607,"baseUrl":"https://comick.app","lang":"all","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":955190069,"baseUrl":"https://comick.app","lang":"en","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":494197461,"baseUrl":"https://comick.app","lang":"pt-br","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":1050814052,"baseUrl":"https://comick.app","lang":"ru","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":380505196,"baseUrl":"https://comick.app","lang":"fr","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":296390197,"baseUrl":"https://comick.app","lang":"es-419","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":242913014,"baseUrl":"https://comick.app","lang":"pl","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":507059585,"baseUrl":"https://comick.app","lang":"tr","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":851891714,"baseUrl":"https://comick.app","lang":"it","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":115169439,"baseUrl":"https://comick.app","lang":"es","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":719269008,"baseUrl":"https://comick.app","lang":"id","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":719759654,"baseUrl":"https://comick.app","lang":"hu","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":301477894,"baseUrl":"https://comick.app","lang":"vi","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":113594984,"baseUrl":"https://comick.app","lang":"zh-hk","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":602472856,"baseUrl":"https://comick.app","lang":"ar","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":401493183,"baseUrl":"https://comick.app","lang":"de","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":752155292,"baseUrl":"https://comick.app","lang":"zh","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":1069764002,"baseUrl":"https://comick.app","lang":"ca","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":678531099,"baseUrl":"https://comick.app","lang":"bg","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":311480598,"baseUrl":"https://comick.app","lang":"th","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":141560456,"baseUrl":"https://comick.app","lang":"fa","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":8261465,"baseUrl":"https://comick.app","lang":"uk","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":565474938,"baseUrl":"https://comick.app","lang":"mn","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":533803532,"baseUrl":"https://comick.app","lang":"ro","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":459976450,"baseUrl":"https://comick.app","lang":"he","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":375702775,"baseUrl":"https://comick.app","lang":"ms","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":737984097,"baseUrl":"https://comick.app","lang":"tl","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":796489006,"baseUrl":"https://comick.app","lang":"ja","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":683471552,"baseUrl":"https://comick.app","lang":"hi","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":778623467,"baseUrl":"https://comick.app","lang":"my","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":1065236294,"baseUrl":"https://comick.app","lang":"ko","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":422767524,"baseUrl":"https://comick.app","lang":"cs","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":678647945,"baseUrl":"https://comick.app","lang":"pt","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":698202010,"baseUrl":"https://comick.app","lang":"nl","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":359879447,"baseUrl":"https://comick.app","lang":"sv","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":532878423,"baseUrl":"https://comick.app","lang":"bn","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":481504622,"baseUrl":"https://comick.app","lang":"no","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":112887841,"baseUrl":"https://comick.app","lang":"lt","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":824905526,"baseUrl":"https://comick.app","lang":"el","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":373675453,"baseUrl":"https://comick.app","lang":"sr","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comick","id":574420905,"baseUrl":"https://comick.app","lang":"da","typeSource":"comick","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss'Z'","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/comick/comick.dart","apiUrl":"https://api.comick.fun","version":"0.0.75","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":202373705,"baseUrl":"https://mangadex.org","lang":"ar","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":860658373,"baseUrl":"https://mangadex.org","lang":"bn","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":722270529,"baseUrl":"https://mangadex.org","lang":"bg","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":978675083,"baseUrl":"https://mangadex.org","lang":"my","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":689496451,"baseUrl":"https://mangadex.org","lang":"ca","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":593575397,"baseUrl":"https://mangadex.org","lang":"zh","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":115179159,"baseUrl":"https://mangadex.org","lang":"zh-hk","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":869144666,"baseUrl":"https://mangadex.org","lang":"cs","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":846142909,"baseUrl":"https://mangadex.org","lang":"da","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":841149659,"baseUrl":"https://mangadex.org","lang":"nl","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":810342358,"baseUrl":"https://mangadex.org","lang":"en","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":309024312,"baseUrl":"https://mangadex.org","lang":"tl","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":164642544,"baseUrl":"https://mangadex.org","lang":"fi","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":545017689,"baseUrl":"https://mangadex.org","lang":"fr","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":110023605,"baseUrl":"https://mangadex.org","lang":"de","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":767687578,"baseUrl":"https://mangadex.org","lang":"el","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":511907642,"baseUrl":"https://mangadex.org","lang":"he","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":986826068,"baseUrl":"https://mangadex.org","lang":"hi","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":128441350,"baseUrl":"https://mangadex.org","lang":"hu","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":183977130,"baseUrl":"https://mangadex.org","lang":"id","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":127887438,"baseUrl":"https://mangadex.org","lang":"it","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":204112007,"baseUrl":"https://mangadex.org","lang":"ja","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":1063442064,"baseUrl":"https://mangadex.org","lang":"kk","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":898061477,"baseUrl":"https://mangadex.org","lang":"ko","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":387646759,"baseUrl":"https://mangadex.org","lang":"la","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":270482698,"baseUrl":"https://mangadex.org","lang":"lt","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":284400542,"baseUrl":"https://mangadex.org","lang":"ms","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":525041874,"baseUrl":"https://mangadex.org","lang":"mn","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":613632949,"baseUrl":"https://mangadex.org","lang":"ne","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":441032670,"baseUrl":"https://mangadex.org","lang":"no","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":693311514,"baseUrl":"https://mangadex.org","lang":"fa","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":683661227,"baseUrl":"https://mangadex.org","lang":"pl","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":417850874,"baseUrl":"https://mangadex.org","lang":"pt-br","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":1027115198,"baseUrl":"https://mangadex.org","lang":"pt","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":399589398,"baseUrl":"https://mangadex.org","lang":"ro","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":367421943,"baseUrl":"https://mangadex.org","lang":"ru","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":254140838,"baseUrl":"https://mangadex.org","lang":"sh","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":823535267,"baseUrl":"https://mangadex.org","lang":"es-419","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":736630443,"baseUrl":"https://mangadex.org","lang":"es","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":146351677,"baseUrl":"https://mangadex.org","lang":"sv","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":739930809,"baseUrl":"https://mangadex.org","lang":"ta","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":385031783,"baseUrl":"https://mangadex.org","lang":"th","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":1008587213,"baseUrl":"https://mangadex.org","lang":"tr","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":778357609,"baseUrl":"https://mangadex.org","lang":"uk","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaDex","id":88174952,"baseUrl":"https://mangadex.org","lang":"vi","typeSource":"mangadex","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/icon.png","dateFormat":"yyyy-MM-dd'T'HH:mm:ss+SSS","dateFormatLocale":"en_Us","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/all/mangadex/mangadex.dart","apiUrl":"https://api.mangadex.org","version":"0.1.1","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Beast Scans","id":1051043161,"baseUrl":"https://beast-scans.com","lang":"ar","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/beastscans/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Lelmanga","id":35877276,"baseUrl":"https://www.lelmanga.com","lang":"fr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/lelmanga/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"KomikLab Scans","id":932554594,"baseUrl":"https://komiklab.com","lang":"en","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/komiklab/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Azure Scans","id":316512590,"baseUrl":"https://azuremanga.com","lang":"en","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/azurescans/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Cosmic Scans","id":938687459,"baseUrl":"https://cosmicscans.com","lang":"en","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/cosmicscans/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"CosmicScans.id","id":1053293978,"baseUrl":"https://cosmicscans.id","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/cosmicscansid/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"DuniaKomik.id","id":326969052,"baseUrl":"https://duniakomik.id","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/duniakomikid/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"id","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Gecenin Lordu","id":622207049,"baseUrl":"https://geceninlordu.com","lang":"tr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/geceninlordu/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Infernal Void Scans","id":460393112,"baseUrl":"https://void-scans.com","lang":"en","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/infernalvoidscans/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"KataKomik","id":61302571,"baseUrl":"https://katakomik.online","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/katakomik/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Komik Station","id":866615506,"baseUrl":"https://komikstation.co","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/komikstation/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"id","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"KomikMama","id":148959602,"baseUrl":"https://komikmama.co","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/komikmama/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"id","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Komiku.com","id":869906392,"baseUrl":"https://komiku.com","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/komikucom/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"id","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Magus Manga","id":487156426,"baseUrl":"https://magusmanga.com","lang":"ar","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/magusmanga/icon.png","dateFormat":"MMMMM d, yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga Indo.me","id":425166803,"baseUrl":"https://mangaindo.me","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/mangaindome/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Mangacim","id":642410916,"baseUrl":"https://www.mangacim.com","lang":"tr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/mangacim/icon.png","dateFormat":"MMM d, yyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaTale","id":343986734,"baseUrl":"https://mangatale.co","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/mangatale/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"id","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaWT","id":1014190199,"baseUrl":"https://mangawt.com","lang":"tr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/mangawt/icon.png","dateFormat":"MMM d, yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MELOKOMIK","id":532392938,"baseUrl":"https://melokomik.xyz","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/melokomik/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"id","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Origami Orpheans","id":261849744,"baseUrl":"https://origami-orpheans.com.br","lang":"pt-br","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/origamiorpheans/icon.png","dateFormat":"MMMMM dd, yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"PhenixScans","id":984162065,"baseUrl":"https://phenixscans.fr","lang":"fr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/phenixscans/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"fr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Pi Scans","id":548699583,"baseUrl":"https://piscans.in","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/piscans/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Raiki Scan","id":550138305,"baseUrl":"https://raikiscan.com","lang":"es","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/raikiscan/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Raven Scans","id":299682436,"baseUrl":"https://ravenscans.com","lang":"en","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/ravenscans/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Shadow Mangas","id":229424731,"baseUrl":"https://shadowmangas.com","lang":"es","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/shadowmangas/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Surya Scans","id":935389321,"baseUrl":"https://suryascans.com","lang":"en","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/suryascans/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Sushi-Scans","id":1036140988,"baseUrl":"https://sushiscan.fr","lang":"fr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/sushiscans/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"fr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Sushi-Scan","id":972784612,"baseUrl":"https://sushiscan.net","lang":"fr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/sushiscan/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"fr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Tarot Scans","id":347606260,"baseUrl":"https://www.tarotscans.com","lang":"tr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/tarotscans/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"TukangKomik","id":884904192,"baseUrl":"https://tukangkomik.id","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/tukangkomik/icon.png","dateFormat":"MMM d, yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"TurkToon","id":579681001,"baseUrl":"https://turktoon.com","lang":"tr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/turktoon/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Uzay Manga","id":762273201,"baseUrl":"https://uzaymanga.com","lang":"tr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/uzaymanga/icon.png","dateFormat":"MMM d, yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"xCaliBR Scans","id":699314250,"baseUrl":"https://xcalibrscans.com","lang":"en","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/xcalibrscans/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Miau Scan","id":579641140,"baseUrl":"https://lectormiau.com","lang":"all","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/miauscan/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Thunder Scans","id":607210554,"baseUrl":"https://ar-thunderepic.com","lang":"all","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/thunderscans/icon.png","dateFormat":"MMM d, yyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"أريا مانجا","id":101767587,"baseUrl":"https://www.areascans.net","lang":"ar","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/areamanga/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Area Scans","id":215530388,"baseUrl":"https://ar.areascans.org","lang":"ar","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/areascans/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"SCARManga","id":973665455,"baseUrl":"https://scarmanga.com","lang":"ar","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/aresnov/icon.png","dateFormat":"MMMMM dd, yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Beast Scans","id":1051043161,"baseUrl":"https://beast-scans.com","lang":"ar","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/beastscans/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Crow Scans","id":113863087,"baseUrl":"https://crowscans.com","lang":"ar","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/crowscans/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"ARESManga","id":603318428,"baseUrl":"https://fl-ares.com","lang":"ar","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/iimanga/icon.png","dateFormat":"MMMMM dd, yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga Flame","id":246146595,"baseUrl":"https://mangaflame.org","lang":"ar","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/mangaflame/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"مانجا نون","id":360286753,"baseUrl":"https://manjanoon.org","lang":"ar","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/manganoon/icon.png","dateFormat":"MMM d, yyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga Pro","id":349077648,"baseUrl":"https://mangapro.club","lang":"ar","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/mangapro/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaSwat","id":1022922869,"baseUrl":"https://normoyun.com","lang":"ar","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/mangaswat/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaTak","id":71223245,"baseUrl":"https://mangatak.com","lang":"ar","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/mangatak/icon.png","dateFormat":"MMMM DD, yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"PotatoManga","id":833603780,"baseUrl":"https://ar.potatomanga.xyz","lang":"ar","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/potatomanga/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"StellarSaber","id":719550729,"baseUrl":"https://stellarsaber.pro","lang":"ar","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/stellarsaber/icon.png","dateFormat":"MMMMM dd, yyyy","dateFormatLocale":"ar","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Rizz Comic","id":369389150,"baseUrl":"https://rizzfables.com","lang":"en","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/rizzcomic/icon.png","dateFormat":"dd MMM yyyy","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Berserker Scan","id":150485334,"baseUrl":"https://ragnascan.com","lang":"es","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/berserkerscan/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Cartel de Manhwas","id":884854005,"baseUrl":"https://carteldemanhwas.com","lang":"es","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/carteldemanhwas/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"De Todo Un Poco Scan","id":843656091,"baseUrl":"https://dtupscan.com","lang":"es","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/dtupscan/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Gremory Mangas","id":643211287,"baseUrl":"https://gremorymangas.com","lang":"es","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/gremorymangas/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"RyujinManga","id":280926444,"baseUrl":"https://ryujinmanga.com","lang":"es","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/ryujinmanga/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Senpai Ediciones","id":483474103,"baseUrl":"https://senpaiediciones.com","lang":"es","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/senpaiediciones/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"SkyMangas","id":586822857,"baseUrl":"https://skymangas.com","lang":"es","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/skymangas/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"es","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Legacy Scans","id":310973833,"baseUrl":"https://legacy-scans.com","lang":"fr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/flamescansfr/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"fr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Mangas Scans","id":10569804,"baseUrl":"https://mangas-scans.com","lang":"fr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/mangasscans/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"fr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Rimu Scans","id":1062885024,"baseUrl":"https://rimuscans.fr","lang":"fr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/rimuscans/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"fr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"VF Scan","id":66643810,"baseUrl":"https://www.vfscan.cc","lang":"fr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/vfscan/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"fr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Comicaso","id":408387886,"baseUrl":"https://comicaso.com","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/comicaso/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"id","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Kiryuu","id":729634849,"baseUrl":"https://kiryuu.id","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/kiryuu/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"id","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"APKOMIK","id":851821537,"baseUrl":"https://apkomik.cc","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/komikav/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"id","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"KomikIndo.co","id":1029579773,"baseUrl":"https://komikindo.co","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/komikindoco/icon.png","dateFormat":"MMM dd, yyyy","dateFormatLocale":"id","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Mangakyo","id":350778130,"baseUrl":"https://mangakyo.vip","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/mangakyo/icon.png","dateFormat":"MMM d, yyyy","dateFormatLocale":"id","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaYu","id":815037068,"baseUrl":"https://mangayu.id","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/mangayu/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"id","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Siren Komik","id":933724425,"baseUrl":"https://sirenkomik.my.id","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/mangkomik/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"id","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Tenshi.id","id":74634925,"baseUrl":"https://tenshi.id","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/masterkomik/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"id-id","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Natsu","id":539493591,"baseUrl":"https://natsu.id","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/natsu/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"id","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Shea Manga","id":732403984,"baseUrl":"https://sheakomik.com","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/sheamanga/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"id","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Shirakami","id":653518167,"baseUrl":"https://shirakami.xyz","lang":"id","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/shirakami/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"id","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Walpurgi Scan","id":83686844,"baseUrl":"https://www.walpurgiscan.it","lang":"it","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/walpurgisscan/icon.png","dateFormat":"MMM d, yyyy","dateFormatLocale":"it","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Diskus Scan","id":219319544,"baseUrl":"https://diskusscan.com","lang":"pt-br","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/diskusscan/icon.png","dateFormat":"MMMMM dd, yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Iris Scanlator","id":627481975,"baseUrl":"https://irisscanlator.com.br","lang":"pt-br","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/irisscanlator/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Mangás Chan","id":413321827,"baseUrl":"https://mangaschan.net","lang":"pt-br","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/mangaschan/icon.png","dateFormat":"MMMMM dd, yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Mangás Online","id":607918644,"baseUrl":"https://mangasonline.cc","lang":"pt-br","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/mangasonline/icon.png","dateFormat":"MMMMM dd, yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"SSSScanlator","id":429559501,"baseUrl":"https://sssscanlator.com.br","lang":"pt-br","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/sssscanlator/icon.png","dateFormat":"MMMMM dd, yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Tsundoku Traduções","id":958388028,"baseUrl":"https://tsundoku.com.br","lang":"pt-br","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/tsundokutraducoes/icon.png","dateFormat":"MMMMM d, yyyy","dateFormatLocale":"pt-br","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga-Moon","id":592572146,"baseUrl":"https://manga-moons.net","lang":"th","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/mangamoon/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"th","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Adu Manga","id":278062325,"baseUrl":"https://www.mangacim.com","lang":"tr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/adumanga/icon.png","dateFormat":"MMMM d, yyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Afrodit Scans","id":589929789,"baseUrl":"https://afroditscans.com","lang":"tr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/afroditscans/icon.png","dateFormat":"MMMM d, yyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Athena Manga","id":279839170,"baseUrl":"https://athenamanga.com","lang":"tr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/athenamanga/icon.png","dateFormat":"MMMM d, yyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Gaiatoon","id":135821324,"baseUrl":"https://gaiatoon.com","lang":"tr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/gaiatoon/icon.png","dateFormat":"MMMM d, yyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MajorScans","id":448604103,"baseUrl":"https://www.majorscans.com","lang":"tr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/majorscans/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga Efendisi","id":676269978,"baseUrl":"https://mangaefendisi.net","lang":"tr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/mangaefendisi/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga Kings","id":550899403,"baseUrl":"https://mangakings.com.tr","lang":"tr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/mangakings/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Merlin Shoujo","id":487637789,"baseUrl":"https://merlinshoujo.com","lang":"tr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/merlinshoujo/icon.png","dateFormat":"MMMM d, yyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Nirvana Manga","id":212544702,"baseUrl":"https://nirvanamanga.com","lang":"tr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/nirvanamanga/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Pati Manga","id":170419301,"baseUrl":"https://www.patimanga.com","lang":"tr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/patimanga/icon.png","dateFormat":"MMMM d, yyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Raindrop Fansub","id":380323896,"baseUrl":"https://www.raindropteamfan.com","lang":"tr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/raindropfansub/icon.png","dateFormat":"MMMM d, yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Serein Scan","id":366839092,"baseUrl":"https://sereinscan.com","lang":"tr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/sereinscan/icon.png","dateFormat":"MMM d, yyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Shijie Scans","id":95172728,"baseUrl":"https://shijiescans.com","lang":"tr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/shijiescans/icon.png","dateFormat":"MMM d, yyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"SummerToon","id":297221652,"baseUrl":"https://summertoon.me","lang":"tr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/summertoon/icon.png","dateFormat":"MMMM dd, yyyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Zenith Scans","id":554003129,"baseUrl":"https://zenithscans.com","lang":"tr","typeSource":"mangareader","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/src/zenithscans/icon.png","dateFormat":"MMM d, yyy","dateFormatLocale":"tr","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangareader/mangareader.dart","apiUrl":"","version":"0.1.5","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Scan VF","id":929253523,"baseUrl":"https://www.scan-vf.net","lang":"fr","typeSource":"mmrcms","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mmrcms/src/scanvf/icon.png","dateFormat":"d MMM. yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mmrcms/mmrcms.dart","apiUrl":"","version":"0.0.65","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Komikid","id":400330220,"baseUrl":"https://www.komikid.com","lang":"id","typeSource":"mmrcms","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mmrcms/src/komikid/icon.png","dateFormat":"d MMM. yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mmrcms/mmrcms.dart","apiUrl":"","version":"0.0.65","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaID","id":181458486,"baseUrl":"https://mangaid.click","lang":"id","typeSource":"mmrcms","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mmrcms/src/mangaid/icon.png","dateFormat":"d MMM. yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mmrcms/mmrcms.dart","apiUrl":"","version":"0.0.65","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Jpmangas","id":1009609900,"baseUrl":"https://jpmangas.cc","lang":"fr","typeSource":"mmrcms","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mmrcms/src/jpmangas/icon.png","dateFormat":"d MMM. yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mmrcms/mmrcms.dart","apiUrl":"","version":"0.0.65","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"مانجا اون لاين","id":19018595,"baseUrl":"https://onma.top","lang":"ar","typeSource":"mmrcms","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mmrcms/src/onma/icon.png","dateFormat":"d MMM. yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mmrcms/mmrcms.dart","apiUrl":"","version":"0.0.65","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Read Comics Online","id":1021546729,"baseUrl":"https://readcomicsonline.ru","lang":"en","typeSource":"mmrcms","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mmrcms/src/readcomicsonline/icon.png","dateFormat":"d MMM. yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mmrcms/mmrcms.dart","apiUrl":"","version":"0.0.65","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Lelscan-VF","id":529915550,"baseUrl":"https://www.lelscanvf.cc/","lang":"fr","typeSource":"mmrcms","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mmrcms/src/lelscanvf/icon.png","dateFormat":"d MMM. yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mmrcms/mmrcms.dart","apiUrl":"","version":"0.0.65","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manga-FR","id":410779276,"baseUrl":"https://manga-fr.me","lang":"fr","typeSource":"mmrcms","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mmrcms/src/mangafr/icon.png","dateFormat":"d MMM. yyyy","dateFormatLocale":"en_us","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mmrcms/mmrcms.dart","apiUrl":"","version":"0.0.65","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaHere","id":434984458,"baseUrl":"http://www.mangahere.cc","lang":"en","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/en/mangahere/icon.png","dateFormat":"MMM dd,yyyy","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/src/en/mangahere/mangahere.dart","apiUrl":"","version":"0.0.7","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaSee","id":531216751,"baseUrl":"https://mangasee123.com","lang":"en","typeSource":"nepnep","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/nepnep/src/mangasee/icon.png","dateFormat":"yyyy-MM-dd HH:mm:ss","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/nepnep/nepnep.dart","apiUrl":"","version":"0.0.65","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"MangaLife","id":434747478,"baseUrl":"https://manga4life.com","lang":"en","typeSource":"nepnep","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/nepnep/src/mangalife/icon.png","dateFormat":"yyyy-MM-dd HH:mm:ss","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/nepnep/nepnep.dart","apiUrl":"","version":"0.0.65","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Mangabat","id":658659024,"baseUrl":"https://m.mangabat.com","lang":"en","typeSource":"mangabox","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangabox/src/mangabat/icon.png","dateFormat":"MMM dd,yy","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangabox/mangabox.dart","apiUrl":"","version":"0.0.6","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Mangairo","id":119266018,"baseUrl":"https://h.mangairo.com","lang":"en","typeSource":"mangabox","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangabox/src/mangairo/icon.png","dateFormat":"MMM-dd-yy","dateFormatLocale":"en","isNsfw":true,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangabox/mangabox.dart","apiUrl":"","version":"0.0.6","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Mangakakalot","id":1071729594,"baseUrl":"https://mangakakalot.com","lang":"en","typeSource":"mangabox","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangabox/src/mangakakalot/icon.png","dateFormat":"MMM dd,yyyy","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangabox/mangabox.dart","apiUrl":"","version":"0.0.6","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Manganato","id":796167348,"baseUrl":"https://manganato.com","lang":"en","typeSource":"mangabox","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangabox/src/manganato/icon.png","dateFormat":"MMM dd,yy","dateFormatLocale":"en","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/mangabox/mangabox.dart","apiUrl":"","version":"0.0.6","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"漫画柜","id":219867496,"baseUrl":"https://www.manhuagui.com","lang":"zh","typeSource":"single","iconUrl":"https://www.manhuagui.com/favicon.ico","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/manga/src/zh/manhuagui.js","apiUrl":"","version":"0.0.25","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"漫画DB","id":900808373,"baseUrl":"https://www.manhuadb.com","lang":"zh","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/zh.manhuadb.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/manga/src/zh/manhuadb.js","apiUrl":"","version":"0.0.25","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"拷贝漫画","id":109412435,"baseUrl":"https://www.mangacopy.com","lang":"zh","typeSource":"single","iconUrl":"https://hi77-overseas.mangafuna.xyz/static/free.ico","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/manga/src/zh/copymanga.js","apiUrl":"https://api.mangacopy.com","version":"0.0.2","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"动漫之家","id":434793864,"baseUrl":"https://www.dmzj.com","lang":"zh","typeSource":"single","iconUrl":"https://www.dmzj.com/_nuxt/logo_dmzj.1c94014a.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/manga/src/zh/dmzj.js","apiUrl":"","version":"0.0.25","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"新新漫画","id":652112892,"baseUrl":"https://www.77mh.nl","lang":"zh","typeSource":"single","iconUrl":"https://www.77mh.nl/favicon.ico","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/manga/src/zh/77mh.js","apiUrl":"","version":"0.0.25","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"Asura Scans","id":524070078,"baseUrl":"https://asuracomic.net","lang":"en","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/en.asurascans.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/manga/src/en/asurascans.js","apiUrl":"","version":"0.1.65","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"Mangafire","id":463934370,"baseUrl":"https://mangafire.to","lang":"en","typeSource":"single","iconUrl":"https://mangafire.to/assets/sites/mangafire/favicon.png?v3","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/manga/src/all/mangafire.js","apiUrl":"","version":"0.1.2","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"Mangafire","id":539346615,"baseUrl":"https://mangafire.to","lang":"ja","typeSource":"single","iconUrl":"https://mangafire.to/assets/sites/mangafire/favicon.png?v3","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/manga/src/all/mangafire.js","apiUrl":"","version":"0.1.2","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"Mangafire","id":963891592,"baseUrl":"https://mangafire.to","lang":"fr","typeSource":"single","iconUrl":"https://mangafire.to/assets/sites/mangafire/favicon.png?v3","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/manga/src/all/mangafire.js","apiUrl":"","version":"0.1.2","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"Mangafire","id":368653246,"baseUrl":"https://mangafire.to","lang":"es","typeSource":"single","iconUrl":"https://mangafire.to/assets/sites/mangafire/favicon.png?v3","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/manga/src/all/mangafire.js","apiUrl":"","version":"0.1.2","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"Mangafire","id":842761811,"baseUrl":"https://mangafire.to","lang":"es-la","typeSource":"single","iconUrl":"https://mangafire.to/assets/sites/mangafire/favicon.png?v3","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/manga/src/all/mangafire.js","apiUrl":"","version":"0.1.2","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"Mangafire","id":952845214,"baseUrl":"https://mangafire.to","lang":"pt","typeSource":"single","iconUrl":"https://mangafire.to/assets/sites/mangafire/favicon.png?v3","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/manga/src/all/mangafire.js","apiUrl":"","version":"0.1.2","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"Mangafire","id":361505853,"baseUrl":"https://mangafire.to","lang":"pt-br","typeSource":"single","iconUrl":"https://mangafire.to/assets/sites/mangafire/favicon.png?v3","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/manga/src/all/mangafire.js","apiUrl":"","version":"0.1.2","isManga":true,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1}] \ No newline at end of file diff --git a/javascript/anime/src/all/netflixmirror.js b/javascript/anime/src/all/netflixmirror.js new file mode 100644 index 00000000..3fa88c48 --- /dev/null +++ b/javascript/anime/src/all/netflixmirror.js @@ -0,0 +1,202 @@ +const mangayomiSources = [{ + "name": "NetflixMirror", + "lang": "all", + "baseUrl": "https://iosmirror.cc", + "apiUrl": "", + "iconUrl": "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/all.netflixmirror.png", + "typeSource": "single", + "isManga": false, + "version": "0.0.45", + "dateFormat": "", + "dateFormatLocale": "", + "pkgPath": "anime/src/all/netflixmirror.js" +}]; + +class DefaultExtension extends MProvider { + async getCookie() { + const addhash = new Document((await new Client().get(`${this.source.baseUrl}/home`, { "cookie": "" })).body).selectFirst("body").attr("data-addhash"); + await new Client().get(`https://userverify.netmirror.app/verify?dp1=${addhash}&a=y`); + let body; + let res; + do { + res = await new Client().post(`${this.source.baseUrl}/verify2.php`, { "cookie": "" }, { "verify": addhash }); + body = res.body; + } while (!body.includes('"statusup":"All Done"')); + return res.headers["set-cookie"]; + } + async request(url, cookie) { + cookie = cookie ?? await this.getCookie(); + return (await new Client().get(this.source.baseUrl + url, { "cookie": `ott=nf; hd=on; ${cookie}` })).body; + } + async getPopular(page) { + return await this.getPages(await this.request("/home"), ".tray-container, #top10") + } + async getLatestUpdates(page) { + return await this.getPages(await this.request("/home"), ".inner-mob-tray-container") + } + async getPages(body, selector) { + const elements = new Document(body).select(selector); + const cookie = await this.getCookie(); + const list = []; + for (const element of elements) { + const linkElement = element.selectFirst("article, .top10-post"); + const id = linkElement.selectFirst("a").attr("data-post"); + if (id.length > 0) { + const imageUrl = linkElement.selectFirst(".card-img-container img, .top10-img img").attr("data-src"); + list.push({ name: JSON.parse(await this.request(`/post.php?id=${id}`, cookie)).title, imageUrl, link: id }); + } + } + return { + list: list, + hasNextPage: false + } + } + async search(query, page, filters) { + const data = JSON.parse(await this.request(`/search.php?s=${query}`)); + const list = []; + data.searchResult.map(async (res) => { + const id = res.id; + list.push({ name: res.t, imageUrl: `https://img.nfmirrorcdn.top/poster/v/${id}.jpg`, link: id }); + }) + + return { + list: list, + hasNextPage: false + } + } + async getDetail(url) { + const cookie = await this.getCookie(); + const data = JSON.parse(await this.request(`/post.php?id=${url}`, cookie)); + const name = data.title; + const genre = [data.ua, ...(data.genre || '').split(',').map(g => g.trim())]; + const description = data.desc; + let episodes = []; + if (data.episodes[0] === null) { + episodes.push({ name, url: JSON.stringify({ id: url, name }) }); + } else { + episodes = data.episodes.map(ep => ({ + name: `${ep.s.replace('S', 'Season ')} ${ep.ep.replace('E', 'Episode ')} : ${ep.t}`, + url: JSON.stringify({ id: ep.id, name }) + })); + } + if (data.nextPageShow === 1) { + const eps = await this.getEpisodes(name, url, data.nextPageSeason, 2, cookie); + episodes.push(...eps); + } + episodes.reverse(); + if (data.season && data.season.length > 1) { + let newEpisodes = []; + const seasonsToProcess = data.season.slice(0, -1); + await Promise.all(seasonsToProcess.map(async (season) => { + const eps = await this.getEpisodes(name, url, season.id, 1, cookie); + newEpisodes.push(...eps); + })); + newEpisodes.reverse(); + episodes.push(...newEpisodes); + + } + + return { + description, status: 1, genre, episodes + }; + } + async getEpisodes(name, eid, sid, page, cookie) { + const episodes = []; + let pg = page; + while (true) { + try { + const data = JSON.parse(await this.request(`/episodes.php?s=${sid}&series=${eid}&page=${pg}`, cookie)); + + data.episodes?.forEach(ep => { + episodes.push({ + name: `${ep.s.replace('S', 'Season ')} ${ep.ep.replace('E', 'Episode ')} : ${ep.t}`, + url: JSON.stringify({ id: ep.id, name }) + }); + }); + + if (data.nextPageShow === 0) break; + pg++; + } catch (_) { + break; + } + } + + return episodes; + } + + + async getVideoList(url) { + const baseUrl = this.source.baseUrl; + const urlData = JSON.parse(url); + const data = JSON.parse(await this.request(`/playlist.php?id=${urlData.id}&t=${urlData.name}`)); + const videoList = []; + for (const playlist of data) { + for (const source of playlist.sources) { + try { + const subtitles = []; + playlist.tracks.filter(track => track.kind === 'captions').forEach(track => { + subtitles.push({ + label: track.label, + file: track.file + }); + }); + const link = baseUrl + source.file; + const headers = + { + 'Host': link.match(/^(?:https?:\/\/)?(?:www\.)?([^\/]+)/)[1], + 'Origin': baseUrl, + 'Referer': `${baseUrl}/` + }; + const resp = await new Client().get(link, headers); + + if (resp.statusCode === 200) { + const masterPlaylist = resp.body; + const audios = []; + masterPlaylist.substringAfter('#EXT-X-MEDIA:').split('#EXT-X-MEDIA:').forEach(it => { + if (it.includes('TYPE=AUDIO')) { + const audioInfo = it.substringAfter('TYPE=AUDIO').substringBefore('\n'); + const language = audioInfo.substringAfter('NAME="').substringBefore('"'); + const url = audioInfo.substringAfter('URI="').substringBefore('"'); + audios.push({ file: url, label: language }); + } + }); + + if (!masterPlaylist.includes('#EXT-X-STREAM-INF:')) { + if (audios.length === 0) { + videoList.push({ url: link, quality: source.label, originalUrl: link, subtitles, headers }); + } else { + videoList.push({ url: link, quality: source.label, originalUrl: link, subtitles, audios, headers }); + } + } else { + masterPlaylist.substringAfter('#EXT-X-STREAM-INF:').split('#EXT-X-STREAM-INF:').forEach(it => { + + const quality = `${it.substringAfter('RESOLUTION=').substringAfter('x').substringBefore(',')}p (${source.label})`; + let videoUrl = it.substringAfter('\n').substringBefore('\n'); + + if (!videoUrl.startsWith('http')) { + videoUrl = resp.request.url.substringBeforeLast('/') + `/${videoUrl}`; + } + const headers = + { + 'Host': videoUrl.match(/^(?:https?:\/\/)?(?:www\.)?([^\/]+)/)[1], + 'Origin': baseUrl, + 'Referer': `${baseUrl}/` + }; + if (audios.length === 0) { + videoList.push({ url: videoUrl, quality, originalUrl: videoUrl, subtitles, headers }); + } else { + videoList.push({ url: videoUrl, quality, originalUrl: videoUrl, subtitles, audios, headers }); + } + + }); + } + } + } catch (_) { + + } + } + } + return videoList; + } + +} \ No newline at end of file diff --git a/javascript/anime/src/de/aniworld.js b/javascript/anime/src/de/aniworld.js index 67c68e21..09a63c7c 100644 --- a/javascript/anime/src/de/aniworld.js +++ b/javascript/anime/src/de/aniworld.js @@ -7,16 +7,20 @@ const mangayomiSources = [{ "typeSource": "single", "itemType": "anime", "isNsfw": false, - "version": "0.0.15", + "version": "0.0.28", "dateFormat": "", "dateFormatLocale": "", "pkgPath": "anime/src/de/aniworld.js" }]; class DefaultExtension extends MProvider { + constructor () { + super(); + this.client = new Client(); + } async getPopular(page) { const baseUrl = this.source.baseUrl; - const res = await new Client().get(`${baseUrl}/beliebte-animes`); + const res = await this.client.get(`${baseUrl}/beliebte-animes`); const elements = new Document(res.body).select("div.seriesListContainer div"); const list = []; for (const element of elements) { @@ -33,7 +37,7 @@ class DefaultExtension extends MProvider { } async getLatestUpdates(page) { const baseUrl = this.source.baseUrl; - const res = await new Client().get(`${baseUrl}/neu`); + const res = await this.client.get(`${baseUrl}/neu`); const elements = new Document(res.body).select("div.seriesListContainer div"); const list = []; for (const element of elements) { @@ -50,13 +54,13 @@ class DefaultExtension extends MProvider { } async search(query, page, filters) { const baseUrl = this.source.baseUrl; - const res = await new Client().get(`${baseUrl}/animes`); + const res = await this.client.get(`${baseUrl}/animes`); const elements = new Document(res.body).select("#seriesContainer > div > ul > li > a").filter(e => e.attr("title").toLowerCase().includes(query.toLowerCase())); const list = []; for (const element of elements) { const name = element.text; const link = element.attr("href"); - const img = new Document((await new Client().get(baseUrl + link)).body).selectFirst("div.seriesCoverBox img").attr("data-src"); + const img = new Document((await this.client.get(baseUrl + link)).body).selectFirst("div.seriesCoverBox img").attr("data-src"); const imageUrl = baseUrl + img; list.push({ name, imageUrl, link }); } @@ -67,7 +71,7 @@ class DefaultExtension extends MProvider { } async getDetail(url) { const baseUrl = this.source.baseUrl; - const res = await new Client().get(baseUrl + url); + const res = await this.client.get(baseUrl + url); const document = new Document(res.body); const imageUrl = baseUrl + document.selectFirst("div.seriesCoverBox img").attr("data-src"); @@ -81,22 +85,23 @@ class DefaultExtension extends MProvider { author = produzent[0].select("li").map(e => e.text).join(", "); } const seasonsElements = document.select("#stream > ul:nth-child(1) > li > a"); - let episodes = []; + + const promises = []; + const episodes = []; for (const element of seasonsElements) { - const eps = await this.parseEpisodesFromSeries(element); - for (const ep of eps) { - episodes.push(ep); + promises.push(this.parseEpisodesFromSeries(element)); + } + for (const p of (await Promise.allSettled(promises))) { + if (p.status == 'fulfilled') { + episodes.push(...p.value); } } episodes.reverse(); - - return { - name, imageUrl, description, author, status: 5, genre, episodes - }; + return { name, imageUrl, description, author, status: 5, genre, episodes }; } async parseEpisodesFromSeries(element) { const seasonId = element.getHref; - const res = await new Client().get(this.source.baseUrl + seasonId); + const res = await this.client.get(this.source.baseUrl + seasonId); const episodeElements = new Document(res.body).select("table.seasonEpisodesList tbody tr"); const list = []; for (const episodeElement of episodeElements) { @@ -105,94 +110,71 @@ class DefaultExtension extends MProvider { return list; } episodeFromElement(element) { + const titleAnchor = element.selectFirst("td.seasonEpisodeTitle a"); + const episodeSpan = titleAnchor.selectFirst("span"); + const url = titleAnchor.attr("href"); + const episodeSeasonId = element.attr("data-episode-season-id"); + let episode = episodeSpan.text.replace(/'/g, "'"); let name = ""; - let url = ""; - if (element.selectFirst("td.seasonEpisodeTitle a").attr("href").includes("/film")) { - const num = element.attr("data-episode-season-id"); - name = `Film ${num}` + " : " + element.selectFirst("td.seasonEpisodeTitle a span").text; - url = element.selectFirst("td.seasonEpisodeTitle a").attr("href"); + if (url.includes("/film")) { + name = `Film ${episodeSeasonId} : ${episode}`; } else { - const season = - element.selectFirst("td.seasonEpisodeTitle a").attr("href").substringAfter("staffel-").substringBefore("/episode");; - const num = element.attr("data-episode-season-id"); - name = `Staffel ${season} Folge ${num}` + " : " + element.selectFirst("td.seasonEpisodeTitle a span").text; - url = element.selectFirst("td.seasonEpisodeTitle a").attr("href"); + const seasonMatch = url.match(/staffel-(\d+)\/episode/); + name = `Staffel ${seasonMatch[1]} Folge ${episodeSeasonId} : ${episode}`; } - if (name.length > 0 && url.length > 0) { - return { name, url } - } - return {} + return name && url ? { name, url } : {}; } async getVideoList(url) { const baseUrl = this.source.baseUrl; - const res = await new Client().get(baseUrl + url); + const res = await this.client.get(baseUrl + url, { + 'Accept': '*/*', + 'Referer': baseUrl + url, + 'Priority': 'u=0, i', + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0' + }); const document = new Document(res.body); - const redirectlink = document.select("ul.row li"); - const preference = new SharedPreferences(); - const hosterSelection = preference.get("hoster_selection"); + let promises = []; const videos = []; - for (const element of redirectlink) { - try { + + const redirectsElements = document.select("ul.row li"); + const hosterSelection = new SharedPreferences().get("hoster_selection_new"); + const dartClient = new Client({ 'useDartHttpClient': true, "followRedirects": false }); + + for (const element of redirectsElements) { + const host = element.selectFirst("a h4").text; + + if (hosterSelection.includes(host)) { const langkey = element.attr("data-lang-key"); - let language = ""; - if (langkey.includes("3")) { - language = "Deutscher Sub"; - } else if (langkey.includes("1")) { - language = "Deutscher Dub"; - } else if (langkey.includes("2")) { - language = "Englischer Sub"; - } - const redirectgs = baseUrl + element.selectFirst("a.watchEpisode").attr("href"); - const hoster = element.selectFirst("a h4").text; - - if (hoster == "Streamtape" && hosterSelection.includes("Streamtape")) { - const body = (await new Client().get(redirectgs)).body; - const quality = `Streamtape ${language}`; - const vids = await streamTapeExtractor(body.match(/https:\/\/streamtape\.com\/e\/[a-zA-Z0-9]+/g)[0], quality); - for (const vid of vids) { - videos.push(vid); - } - } else if (hoster == "VOE" && hosterSelection.includes("VOE")) { - const body = (await new Client().get(redirectgs)).body; - const quality = `VOE ${language}`; - const vids = await voeExtractor(body.match(/https:\/\/voe\.sx\/e\/[a-zA-Z0-9]+/g)[0], quality); - for (const vid of vids) { - videos.push(vid); - } - } else if (hoster == "Vidoza" && hosterSelection.includes("Vidoza")) { - const body = (await new Client().get(redirectgs)).body; - const quality = `Vidoza ${language}`; - const match = body.match(/https:\/\/[^\s]*\.vidoza\.net\/[^\s]*\.mp4/g); - if (match.length > 0) { - videos.push({ url: match[0], originalUrl: match[0], quality }); - } - } - } catch (_) { - + const lang = (langkey == 1 || langkey == 3) ? 'Deutscher' : 'Englischer'; + const type = (langkey == 1) ? 'Dub' : 'Sub'; + const redirect = baseUrl + element.selectFirst("a.watchEpisode").attr("href"); + promises.push((async (redirect, lang, type, host) => { + const location = (await dartClient.get(redirect)).headers.location; + return await extractAny(location, host.toLowerCase(), lang, type, host); + })(redirect, lang, type, host)); + } + } + for (const p of (await Promise.allSettled(promises))) { + if (p.status == 'fulfilled') { + videos.push.apply(videos, p.value); } } return this.sortVideos(videos); } sortVideos(videos) { const preference = new SharedPreferences(); - const hoster = preference.get("preferred_hoster"); - const subPreference = preference.get("preferred_lang"); + const hoster = RegExp(preference.get("preferred_hoster_new")); + const lang = RegExp(preference.get("preferred_lang")); videos.sort((a, b) => { - let qualityMatchA = 0; - if (a.quality.includes(hoster) && - a.quality.includes(subPreference)) { - qualityMatchA = 1; - } - let qualityMatchB = 0; - if (b.quality.includes(hoster) && - b.quality.includes(subPreference)) { - qualityMatchB = 1; - } + let qualityMatchA = hoster.test(a.quality) * lang.test(a.quality); + let qualityMatchB = hoster.test(b.quality) * lang.test(b.quality); return qualityMatchB - qualityMatchA; }); return videos; } getSourcePreferences() { + const hosterOptions = ["Streamtape", "VOE", "Vidoza", "Doodstream"]; + const languageOptions = ["Deutscher Sub", "Deutscher Dub", "Englischer Sub"]; return [ { "key": "preferred_lang", @@ -200,58 +182,92 @@ class DefaultExtension extends MProvider { "title": "Bevorzugte Sprache", "summary": "", "valueIndex": 0, - "entries": [ - "Deutscher Sub", - "Deutscher Dub", - "Englischer Sub" - ], - "entryValues": [ - "Deutscher Sub", - "Deutscher Dub", - "Englischer Sub" - ] + "entries": languageOptions, + "entryValues": languageOptions } }, { - "key": "preferred_hoster", + "key": "preferred_hoster_new", "listPreference": { "title": "Standard-Hoster", "summary": "", "valueIndex": 0, - "entries": [ - "Streamtape", - "VOE", - "Vidoza" - ], - "entryValues": [ - "Streamtape", - "VOE", - "Vidoza" - ] + "entries": hosterOptions, + "entryValues": hosterOptions } }, { - "key": "hoster_selection", + "key": "hoster_selection_new", "multiSelectListPreference": { "title": "Hoster auswählen", "summary": "", - "entries": [ - "Streamtape", - "VOE", - "Vidoza" - ], - "entryValues": [ - "Streamtape", - "VOE", - "Vidoza" - ], - "values": [ - "Streamtape", - "VOE", - "Vidoza" - ] + "entries": hosterOptions, + "entryValues": hosterOptions, + "values": hosterOptions } } ]; } } + +async function doodExtractor(url) { + const dartClient = new Client({ 'useDartHttpClient': true, "followRedirects": false }); + let response = await dartClient.get(url); + while ("location" in response.headers) { + response = await dartClient.get(response.headers.location); + } + const newUrl = response.request.url; + const doodhost = newUrl.match(/https:\/\/(.*?)\//, newUrl)[0].slice(8, -1); + const md5 = response.body.match(/'\/pass_md5\/(.*?)',/, newUrl)[0].slice(11, -2); + const token = md5.substring(md5.lastIndexOf("/") + 1); + const expiry = new Date().valueOf(); + const randomString = getRandomString(10); + + response = await new Client().get(`https://${doodhost}/pass_md5/${md5}`, { "Referer": newUrl }); + const videoUrl = `${response.body}${randomString}?token=${token}&expiry=${expiry}`; + const headers = { "User-Agent": "Mangayomi", "Referer": doodhost }; + return [{ url: videoUrl, originalUrl: videoUrl, headers: headers, quality: '' }]; +} + +async function vidozaExtractor(url) { + let response = await new Client({ 'useDartHttpClient': true, "followRedirects": true }).get(url); + const videoUrl = response.body.match(/https:\/\/\S*\.mp4/)[0]; + return [{ url: videoUrl, originalUrl: videoUrl, quality: '' }]; +} + +_streamTapeExtractor = streamTapeExtractor; +streamTapeExtractor = async (url) => { + return await _streamTapeExtractor(url, ''); +} + +_voeExtractor = voeExtractor; +voeExtractor = async (url) => { + return (await _voeExtractor(url, '')).map(v => { + v.quality = v.quality.replace(/Voe: (\d+p?)/i, '$1'); + return v; + }); +} + +async function extractAny(link, method, lang, type, host) { + const m = extractAny.methods[method]; + return (!m) ? [] : (await m(link)).map(v => { + v.quality = v.quality ? `${lang} ${type} ${v.quality} ${host}` : `${lang} ${type} ${host}`; + return v; + }); +}; + +extractAny.methods = { + 'doodstream': doodExtractor, + 'streamtape': streamTapeExtractor, + 'vidoza': vidozaExtractor, + 'voe': voeExtractor +}; + +function getRandomString(length) { + const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"; + const charArray = new Array(length); + for (let i = 0; i < length; i++) { + charArray[i] = chars[Math.floor(Math.random() * chars.length)]; + } + return charArray.join(""); +} diff --git a/javascript/anime/src/de/serienstream.js b/javascript/anime/src/de/serienstream.js new file mode 100644 index 00000000..64dca94c --- /dev/null +++ b/javascript/anime/src/de/serienstream.js @@ -0,0 +1,273 @@ +const mangayomiSources = [{ + "name": "SerienStream", + "lang": "de", + "baseUrl": "https://s.to", + "apiUrl": "", + "iconUrl": "https://s.to/favicon.ico", + "typeSource": "single", + "isManga": false, + "isNsfw": false, + "version": "0.0.2", + "dateFormat": "", + "dateFormatLocale": "", + "pkgPath": "anime/src/de/serienstream.js" +}]; + +class DefaultExtension extends MProvider { + constructor () { + super(); + this.client = new Client(); + } + async getPopular(page) { + const baseUrl = this.source.baseUrl; + const res = await this.client.get(`${baseUrl}/beliebte-serien`); + const elements = new Document(res.body).select("div.seriesListContainer div"); + const list = []; + for (const element of elements) { + const linkElement = element.selectFirst("a"); + const name = element.selectFirst("h3").text; + const imageUrl = baseUrl + linkElement.selectFirst("img").attr("data-src"); + const link = linkElement.attr("href"); + list.push({ name, imageUrl, link }); + } + return { + list: list, + hasNextPage: false + } + } + async getLatestUpdates(page) { + const baseUrl = this.source.baseUrl; + const res = await this.client.get(`${baseUrl}/neu`); + const elements = new Document(res.body).select("div.seriesListContainer div"); + const list = []; + for (const element of elements) { + const linkElement = element.selectFirst("a"); + const name = element.selectFirst("h3").text; + const imageUrl = baseUrl + linkElement.selectFirst("img").attr("data-src"); + const link = linkElement.attr("href"); + list.push({ name, imageUrl, link }); + } + return { + list: list, + hasNextPage: false + } + } + async search(query, page, filters) { + const baseUrl = this.source.baseUrl; + const res = await this.client.get(`${baseUrl}/serien`); + const elements = new Document(res.body).select("#seriesContainer > div > ul > li > a").filter(e => e.attr("title").toLowerCase().includes(query.toLowerCase())); + const list = []; + for (const element of elements) { + const name = element.text; + const link = element.attr("href"); + const img = new Document((await this.client.get(baseUrl + link)).body).selectFirst("div.seriesCoverBox img").attr("data-src"); + const imageUrl = baseUrl + img; + list.push({ name, imageUrl, link }); + } + return { + list: list, + hasNextPage: false + } + } + async getDetail(url) { + const baseUrl = this.source.baseUrl; + const res = await this.client.get(baseUrl + url); + const document = new Document(res.body); + const imageUrl = baseUrl + + document.selectFirst("div.seriesCoverBox img").attr("data-src"); + const name = document.selectFirst("div.series-title h1 span").text; + const genre = document.select("div.genres ul li").map(e => e.text); + const description = document.selectFirst("p.seri_des").attr("data-full-description"); + const produzent = document.select("div.cast li") + .filter(e => e.outerHtml.includes("Produzent:")); + let author = ""; + if (produzent.length > 0) { + author = produzent[0].select("li").map(e => e.text).join(", "); + } + const seasonsElements = document.select("#stream > ul:nth-child(1) > li > a"); + + const promises = []; + const episodes = []; + for (const element of seasonsElements) { + promises.push(this.parseEpisodesFromSeries(element)); + } + for (const p of (await Promise.allSettled(promises))) { + if (p.status == 'fulfilled') { + episodes.push(...p.value); + } + } + episodes.reverse(); + return { name, imageUrl, description, author, status: 5, genre, episodes }; + } + async parseEpisodesFromSeries(element) { + const seasonId = element.getHref; + const res = await this.client.get(this.source.baseUrl + seasonId); + const episodeElements = new Document(res.body).select("table.seasonEpisodesList tbody tr"); + const list = []; + for (const episodeElement of episodeElements) { + list.push(this.episodeFromElement(episodeElement)); + } + return list; + } + episodeFromElement(element) { + const titleAnchor = element.selectFirst("td.seasonEpisodeTitle a"); + const episodeSpan = titleAnchor.selectFirst("span"); + const url = titleAnchor.attr("href"); + const episodeSeasonId = element.attr("data-episode-season-id"); + let episode = episodeSpan.text.replace(/'/g, "'"); + let name = ""; + if (url.includes("/film")) { + name = `Film ${episodeSeasonId} : ${episode}`; + } else { + const seasonMatch = url.match(/staffel-(\d+)\/episode/); + name = `Staffel ${seasonMatch[1]} Folge ${episodeSeasonId} : ${episode}`; + } + return name && url ? { name, url } : {}; + } + async getVideoList(url) { + const baseUrl = this.source.baseUrl; + const res = await this.client.get(baseUrl + url, { + 'Accept': '*/*', + 'Referer': baseUrl + url, + 'Priority': 'u=0, i', + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0' + }); + const document = new Document(res.body); + let promises = []; + const videos = []; + + const redirectsElements = document.select("ul.row li"); + const hosterSelection = new SharedPreferences().get("hoster_selection_new"); + const dartClient = new Client({ 'useDartHttpClient': true, "followRedirects": false }); + + for (const element of redirectsElements) { + const host = element.selectFirst("a h4").text; + + if (hosterSelection.includes(host)) { + const langkey = element.attr("data-lang-key"); + const lang = (langkey == 1 || langkey == 3) ? 'Deutscher' : 'Englischer'; + const type = (langkey == 1) ? 'Dub' : 'Sub'; + const redirect = baseUrl + element.selectFirst("a.watchEpisode").attr("href"); + promises.push((async (redirect, lang, type, host) => { + const location = (await dartClient.get(redirect)).headers.location; + return await extractAny(location, host.toLowerCase(), lang, type, host); + })(redirect, lang, type, host)); + } + } + for (const p of (await Promise.allSettled(promises))) { + if (p.status == 'fulfilled') { + videos.push.apply(videos, p.value); + } + } + return this.sortVideos(videos); + } + sortVideos(videos) { + const preference = new SharedPreferences(); + const hoster = RegExp(preference.get("preferred_hoster_new")); + const lang = RegExp(preference.get("preferred_lang")); + videos.sort((a, b) => { + let qualityMatchA = hoster.test(a.quality) * lang.test(a.quality); + let qualityMatchB = hoster.test(b.quality) * lang.test(b.quality); + return qualityMatchB - qualityMatchA; + }); + return videos; + } + getSourcePreferences() { + const hosterOptions = ["Streamtape", "VOE", "Vidoza", "Doodstream"]; + const languageOptions = ["Deutscher Sub", "Deutscher Dub", "Englischer Sub"]; + return [ + { + "key": "preferred_lang", + "listPreference": { + "title": "Bevorzugte Sprache", + "summary": "", + "valueIndex": 0, + "entries": languageOptions, + "entryValues": languageOptions + } + }, + { + "key": "preferred_hoster_new", + "listPreference": { + "title": "Standard-Hoster", + "summary": "", + "valueIndex": 0, + "entries": hosterOptions, + "entryValues": hosterOptions + } + }, + { + "key": "hoster_selection_new", + "multiSelectListPreference": { + "title": "Hoster auswählen", + "summary": "", + "entries": hosterOptions, + "entryValues": hosterOptions, + "values": hosterOptions + } + } + ]; + } +} + +async function doodExtractor(url) { + const dartClient = new Client({ 'useDartHttpClient': true, "followRedirects": false }); + let response = await dartClient.get(url); + while ("location" in response.headers) { + response = await dartClient.get(response.headers.location); + } + const newUrl = response.request.url; + const doodhost = newUrl.match(/https:\/\/(.*?)\//, newUrl)[0].slice(8, -1); + const md5 = response.body.match(/'\/pass_md5\/(.*?)',/, newUrl)[0].slice(11, -2); + const token = md5.substring(md5.lastIndexOf("/") + 1); + const expiry = new Date().valueOf(); + const randomString = getRandomString(10); + + response = await new Client().get(`https://${doodhost}/pass_md5/${md5}`, { "Referer": newUrl }); + const videoUrl = `${response.body}${randomString}?token=${token}&expiry=${expiry}`; + const headers = { "User-Agent": "Mangayomi", "Referer": doodhost }; + return [{ url: videoUrl, originalUrl: videoUrl, headers: headers, quality: '' }]; +} + +async function vidozaExtractor(url) { + let response = await new Client({ 'useDartHttpClient': true, "followRedirects": true }).get(url); + const videoUrl = response.body.match(/https:\/\/\S*\.mp4/)[0]; + return [{ url: videoUrl, originalUrl: videoUrl, quality: '' }]; +} + +_streamTapeExtractor = streamTapeExtractor; +streamTapeExtractor = async (url) => { + return await _streamTapeExtractor(url, ''); +} + +_voeExtractor = voeExtractor; +voeExtractor = async (url) => { + return (await _voeExtractor(url, '')).map(v => { + v.quality = v.quality.replace(/Voe: (\d+p?)/i, '$1'); + return v; + }); +} + +async function extractAny(link, method, lang, type, host) { + const m = extractAny.methods[method]; + return (!m) ? [] : (await m(link)).map(v => { + v.quality = v.quality ? `${lang} ${type} ${v.quality} ${host}` : `${lang} ${type} ${host}`; + return v; + }); +}; + +extractAny.methods = { + 'doodstream': doodExtractor, + 'streamtape': streamTapeExtractor, + 'vidoza': vidozaExtractor, + 'voe': voeExtractor +}; + +function getRandomString(length) { + const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"; + const charArray = new Array(length); + for (let i = 0; i < length; i++) { + charArray[i] = chars[Math.floor(Math.random() * chars.length)]; + } + return charArray.join(""); +} diff --git a/javascript/anime/src/en/allanime.js b/javascript/anime/src/en/allanime.js index 6815242b..a69deb4b 100644 --- a/javascript/anime/src/en/allanime.js +++ b/javascript/anime/src/en/allanime.js @@ -7,7 +7,7 @@ const mangayomiSources = [{ "typeSource": "single", "itemType": "anime", "isNsfw": false, - "version": "0.0.25", + "version": "0.0.35", "dateFormat": "", "dateFormatLocale": "", "pkgPath": "anime/src/en/allanime.js" @@ -162,7 +162,7 @@ class DefaultExtension extends MProvider { const encodedGql = `?variables=%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%22showId%22:%20%22${ep.showId}%22,%0A%20%20%20%20%20%20%20%20%20%20%22episodeString%22:%20%22${ep.episodeString}%22,%0A%20%20%20%20%20%20%20%20%20%20%22translationType%22:%20%22${translationType[0]}%22%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20&query=%0A%20%20%20%20%20%20%20%20query(%0A%20%20%20%20%20%20%20%20%20%20$showId:%20String!%0A%20%20%20%20%20%20%20%20%20%20$episodeString:%20String!%0A%20%20%20%20%20%20%20%20%20%20$translationType:%20VaildTranslationTypeEnumType!%0A%20%20%20%20%20%20%20%20)%20%7B%0A%20%20%20%20%20%20%20%20%20%20episode(%0A%20%20%20%20%20%20%20%20%20%20%20%20showId:%20$showId%0A%20%20%20%20%20%20%20%20%20%20%20%20episodeString:%20$episodeString%0A%20%20%20%20%20%20%20%20%20%20%20%20translationType:%20$translationType%0A%20%20%20%20%20%20%20%20%20%20)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20sourceUrls%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20`; const videoJson = JSON.parse(await this.request(encodedGql)); const videos = []; - const altHosterSelection = preferences.get('alt_hoster_selection'); + const altHosterSelection = preferences.get('alt_hoster_selection1'); for (const video of videoJson.data.episode.sourceUrls) { const videoUrl = this.decryptSource(video.sourceUrl); let quality = ""; @@ -193,7 +193,7 @@ class DefaultExtension extends MProvider { videos.push(vid); } } else if (videoUrl.includes("streamlare.com") && altHosterSelection.some(element => 'streamlare' === element)) { - const vids = await streamlareExtractor(videoUrl); + const vids = await streamlareExtractor(videoUrl, 'Streamlare '); for (const vid of vids) { videos.push(vid); } @@ -203,7 +203,7 @@ class DefaultExtension extends MProvider { videos.push(vid); } } else if (videoUrl.includes("wish") && altHosterSelection.some(element => 'streamwish' === element)) { - const vids = await streamwishExtractor(videoUrl); + const vids = await streamWishExtractor(videoUrl, 'StreamWish '); for (const vid of vids) { videos.push(vid); } @@ -213,7 +213,7 @@ class DefaultExtension extends MProvider { } sortVideos(videos) { const preferences = new SharedPreferences(); - const hoster = preferences.get("preferred_hoster"); + const hoster = preferences.get("preferred_hoster1"); const quality = preferences.get("preferred_quality"); videos.sort((a, b) => { let qualityMatchA = 0; @@ -290,7 +290,7 @@ class DefaultExtension extends MProvider { } }, { - "key": "preferred_hoster_", + "key": "preferred_hoster1", "listPreference": { "title": "Preferred Video Server", "summary": "", @@ -302,7 +302,7 @@ class DefaultExtension extends MProvider { "filemoon", "streamwish" ], - "entryValues_": [ + "entryValues": [ "Ac", "Ak", "Kir", "Rab", "Luf-mp4", "Si-Hls", "S-mp4", "Ac-Hls", "Uv-mp4", "Pn-Hls", "vidstreaming", "okru", "mp4upload", "streamlare", "doodstream", @@ -312,7 +312,7 @@ class DefaultExtension extends MProvider { } }, { - "key": "alt_hoster_selection_", + "key": "alt_hoster_selection1", "multiSelectListPreference": { "title": "Enable/Disable Alternative Hosts", "summary": "", diff --git a/javascript/anime/src/es/animefenix.js b/javascript/anime/src/es/animefenix.js new file mode 100644 index 00000000..df82d147 --- /dev/null +++ b/javascript/anime/src/es/animefenix.js @@ -0,0 +1,1128 @@ +const mangayomiSources = [{ + "name": "AnimeFénix", + "lang": "es", + "baseUrl": "https://www3.animefenix.tv", + "apiUrl": "", + "iconUrl": "https://www3.animefenix.tv/themes/fenix-neo/images/AveFenix.png", + "typeSource": "single", + "isManga": false, + "version": "0.1.0", + "dateFormat": "", + "dateFormatLocale": "", + "pkgPath": "anime/src/es/animefenix.js" +}]; + +class DefaultExtension extends MProvider { + constructor () { + super(); + this.client = new Client(); + } + getHeaders(url) { + throw new Error("getHeaders not implemented"); + } + async parseAnimeList(url) { + const res = await this.client.get(url); + const doc = new Document(res.body); + const elements = doc.select("main div.grid a"); + const list = []; + + for (const element of elements) { + const name = element.selectFirst("h3").text; + const imageUrl = element.selectFirst("img").getSrc; + const link = element.getHref; + list.push({ name, imageUrl, link }); + } + const hasNextPage = doc.selectFirst("main nav a:last-child").text.trim() == "Next"; + return { "list": list, "hasNextPage": hasNextPage }; + } + statusFromString(status) { + return { + "En emision": 0, // releasing + "Finalizado": 1, // finished + "Proximamente": 4, // unreleased + }[status] ?? 5; + } + async getPopular(page) { + return this.parseAnimeList(`${this.source.baseUrl}/animes?order=visits&page=${page}`); + } + async getLatestUpdates(page) { + return this.parseAnimeList(`${this.source.baseUrl}/animes?order=updated&page=${page}`); + } + async search(query, page, filters) { + query = query.trim().replaceAll(/\ +/g, "+"); + let url = `${this.source.baseUrl}/animes?q=${query}`; + + // Search sometimes failed because filters were empty. I experienced this mostly on android... + if (!filters || filters.length == 0) { + return this.parseAnimeList(url + `&page=${page}`); + } + + for (const filter of filters[0].state) { + if (filter.state == true) + url += `&type[]=${filter.value}`; + } + + url += `&genero[]=${filters[1].values[filters[1].state].value}`; + + for (const filter of filters[2].state) { + if (filter.state == true) + url += `&estado[]=${filter.value}`; + } + + url += `&order=${filters[3].values[filters[3].state].value}`; + url += `&page=${page}`; + return this.parseAnimeList(url); + } + async getDetail(url) { + const detail = {}; + const res = await this.client.get(url); + const doc = new Document(res.body); + const info = doc.selectFirst('main div.flex'); + + detail.name = info.selectFirst("h1").text; + detail.status = this.statusFromString(info.selectFirst("a").text); + detail.imageUrl = info.selectFirst("img").getSrc; + detail.description = info.selectFirst("h2 + p").text.trim(); + detail.genre = info.select("h2 + div a").map(e => e.text.trim()); + detail.episodes = []; + for (const e of doc.select('main + div ul a').reverse()) { + const name = `Episodio ${detail.episodes.length + 1}`; + const url = e.getHref; + detail.episodes.push({ name, url }); + } + detail.episodes.reverse(); + return detail; + } + // For anime episode video list + async getVideoList(url) { + let res = await this.client.get(url); + let doc = new Document(res.body); + let promises = []; + const videos = []; + + // get type + const type = /\blatino\b/i.test(url) ? 'Dub' : 'Sub'; + + // get names + const hosts = doc.select('main ul a').map(e => e.text); + + // get links + const redirects = []; + let script = doc.selectFirst("script:contains(tabsArray)"); + for (const e of script.text.matchAll(/tabsArray.*? = "(.*?)"/g)) { + redirects.push(e[1]); + }; + + // extract remote video links + const renameLUT = { + 'amazones': 'amazon', + 'burst': 'burstcloud', + 'hide': 'vidhide', + 'ru': 'okru', + 'stream2': 'vidhide', + }; + for (let i = 0; i < hosts.length; i++) { + const host = hosts[i].trim(); + const lhost = host.toLowerCase(); + const method = renameLUT[lhost] ?? lhost; + if (method in extractAny.methods) { + promises.push((async (redirect) => { + const res = await this.client.get(redirect); + const doc = new Document(res.body); + const script = doc.selectFirst('script:contains(play)'); + let link = script.text.match(/src="(.*?)"/)[1]; + + if (method == 'amazon') + link = this.source.baseUrl + link.slice(link.search('/')); + + return await extractAny(link, method, 'Español', type, host); + })(redirects[i])); + } + } + for (const p of (await Promise.allSettled(promises))) { + if (p.status == 'fulfilled') { + videos.push.apply(videos, p.value); + } + } + return sortVideos(videos); + } + getFilterList() { + return [ + { + type_name: "GroupFilter", + name: "Tipo", + state: [ + { + type_name: "CheckBox", + name: "TV", + value: "tv" + }, + { + type_name: "CheckBox", + name: "Película", + value: "movie" + }, + { + type_name: "CheckBox", + name: "Especial", + value: "special" + }, + { + type_name: "CheckBox", + name: "OVA", + value: "ova" + }, + { + type_name: "CheckBox", + name: "DONGHUA", + value: "donghua" + } + ] + }, + { + type_name: "SelectFilter", + type: "genero", + name: "Género", + state: 0, + values: [ + { + type_name: "SelectOption", + name: "Todos", + value: "" + }, + { + type_name: "SelectOption", + name: "Acción", + value: "accion" + }, + { + type_name: "SelectOption", + name: "Ángeles", + value: "angeles" + }, + { + type_name: "SelectOption", + name: "Artes Marciales", + value: "artes-marciales" + }, + { + type_name: "SelectOption", + name: "Aventura", + value: "aventura" + }, + { + type_name: "SelectOption", + name: "Ciencia Ficción", + value: "Ciencia Ficción" + }, + { + type_name: "SelectOption", + name: "Comedia", + value: "comedia" + }, + { + type_name: "SelectOption", + name: "Cyberpunk", + value: "cyberpunk" + }, + { + type_name: "SelectOption", + name: "Demonios", + value: "demonios" + }, + { + type_name: "SelectOption", + name: "Deportes", + value: "deportes" + }, + { + type_name: "SelectOption", + name: "Dragones", + value: "dragones" + }, + { + type_name: "SelectOption", + name: "Drama", + value: "drama" + }, + { + type_name: "SelectOption", + name: "Ecchi", + value: "ecchi" + }, + { + type_name: "SelectOption", + name: "Escolares", + value: "escolares" + }, + { + type_name: "SelectOption", + name: "Fantasía", + value: "fantasia" + }, + { + type_name: "SelectOption", + name: "Gore", + value: "gore" + }, + { + type_name: "SelectOption", + name: "Harem", + value: "harem" + }, + { + type_name: "SelectOption", + name: "Histórico", + value: "historico" + }, + { + type_name: "SelectOption", + name: "Horror", + value: "horror" + }, + { + type_name: "SelectOption", + name: "Infantil", + value: "infantil" + }, + { + type_name: "SelectOption", + name: "Isekai", + value: "isekai" + }, + { + type_name: "SelectOption", + name: "Josei", + value: "josei" + }, + { + type_name: "SelectOption", + name: "Juegos", + value: "juegos" + }, + { + type_name: "SelectOption", + name: "Magia", + value: "magia" + }, + { + type_name: "SelectOption", + name: "Mecha", + value: "mecha" + }, + { + type_name: "SelectOption", + name: "Militar", + value: "militar" + }, + { + type_name: "SelectOption", + name: "Misterio", + value: "misterio" + }, + { + type_name: "SelectOption", + name: "Música", + value: "Musica" + }, + { + type_name: "SelectOption", + name: "Ninjas", + value: "ninjas" + }, + { + type_name: "SelectOption", + name: "Parodia", + value: "parodia" + }, + { + type_name: "SelectOption", + name: "Policía", + value: "policia" + }, + { + type_name: "SelectOption", + name: "Psicológico", + value: "psicologico" + }, + { + type_name: "SelectOption", + name: "Recuerdos de la vida", + value: "Recuerdos de la vida" + }, + { + type_name: "SelectOption", + name: "Romance", + value: "romance" + }, + { + type_name: "SelectOption", + name: "Samurai", + value: "samurai" + }, + { + type_name: "SelectOption", + name: "Sci-Fi", + value: "sci-fi" + }, + { + type_name: "SelectOption", + name: "Seinen", + value: "seinen" + }, + { + type_name: "SelectOption", + name: "Shoujo", + value: "shoujo" + }, + { + type_name: "SelectOption", + name: "Shoujo Ai", + value: "shoujo-ai" + }, + { + type_name: "SelectOption", + name: "Shounen", + value: "shounen" + }, + { + type_name: "SelectOption", + name: "Slice of life", + value: "slice-of-life" + }, + { + type_name: "SelectOption", + name: "Sobrenatural", + value: "sobrenatural" + }, + { + type_name: "SelectOption", + name: "Space", + value: "space" + }, + { + type_name: "SelectOption", + name: "Spokon", + value: "spokon" + }, + { + type_name: "SelectOption", + name: "Steampunk", + value: "steampunk" + }, + { + type_name: "SelectOption", + name: "Superpoder", + value: "superpoder" + }, + { + type_name: "SelectOption", + name: "Thriller", + value: "thriller" + }, + { + type_name: "SelectOption", + name: "Vampiro", + value: "vampiro" + }, + { + type_name: "SelectOption", + name: "Yaoi", + value: "yaoi" + }, + { + type_name: "SelectOption", + name: "Yuri", + value: "yuri" + }, + { + type_name: "SelectOption", + name: "Zombies", + value: "zombies" + } + ] + }, + { + type_name: "GroupFilter", + name: "Estado", + state: [ + { + type_name: "CheckBox", + name: "Emisión", + value: "1" + }, + { + type_name: "CheckBox", + name: "Finalizado", + value: "2" + }, + { + type_name: "CheckBox", + name: "Proximamente", + value: "3" + }, + { + type_name: "CheckBox", + name: "En Cuarentena", + value: "4" + } + ] + }, + { + type_name: "SelectFilter", + type: "sort", + name: "Orden", + state: 0, + values: [ + { + type_name: "SelectOption", + name: "Por Defecto", + value: "default" + }, + { + type_name: "SelectOption", + name: "Recientemente Actualizados", + value: "updated" + }, + { + type_name: "SelectOption", + name: "Recientemente Agregados", + value: "added" + }, + { + type_name: "SelectOption", + name: "Nombre A-Z", + value: "title" + }, + { + type_name: "SelectOption", + name: "Calificación", + value: "likes" + }, + { + type_name: "SelectOption", + name: "Más Vistos", + value: "visits" + } + ] + } + ]; + } + getSourcePreferences() { + return [ + { + key: 'lang', + listPreference: { + title: 'Preferred Language', + summary: 'If available, this language will be chosen by default. Priority = 0 (lower is better)', + valueIndex: 0, + entries: [ + 'Español' + ], + entryValues: [ + 'Español' + ] + } + }, + { + key: 'type', + listPreference: { + title: 'Preferred Type', + summary: 'If available, this type will be chosen by default. Priority = 1 (lower is better)', + valueIndex: 0, + entries: [ + 'Sub' + ], + entryValues: [ + 'Sub' + ] + } + }, + { + key: 'res', + listPreference: { + title: 'Preferred Resolution', + summary: 'If available, this resolution will be chosen by default. Priority = 2 (lower is better)', + valueIndex: 0, + entries: [ + '1080p', + '720p', + '480p' + ], + entryValues: [ + '1080p', + '720p', + '480p' + ] + } + }, + { + key: 'host', + listPreference: { + title: 'Preferred Hoster', + summary: 'If available, this hoster will be chosen by default. Priority = 3 (lower is better)', + valueIndex: 0, + entries: [ + 'Amazon', + 'Burst', + 'Mp4Upload', + 'RU', + 'Sendvid', + 'STREAM2', + 'HIDE', + 'YourUpload', + ], + entryValues: [ + 'Amazon', + 'Burst', + 'Mp4Upload', + 'RU', + 'Sendvid', + 'STREAM2', + 'HIDE', + 'YourUpload', + ] + } + } + ]; + } +} + +/*************************************************************************************************** +* +* mangayomi-js-helpers v1.0 +* +* # Video Extractors +* - vidGuardExtractor +* - doodExtractor +* - vidozaExtractor +* - okruExtractor +* - amazonExtractor +* - vidHideExtractor +* - filemoonExtractor +* - mixdropExtractor +* - burstcloudExtractor (not working, see description) +* +* # Video Extractor Format Wrappers +* - streamWishExtractor +* - voeExtractor +* - mp4UploadExtractor +* - yourUploadExtractor +* - streamTapeExtractor +* - sendVidExtractor +* +* # Video Extractor helpers +* - extractAny +* +* # Playlist Extractors +* - m3u8Extractor +* - jwplayerExtractor +* +* # Extension +* - sortVideos() +* +* # Encoding/Decoding +* - Uint8Array.fromBase64() +* - Uint8Array.prototype.toBase64() +* - Uint8Array.prototype.decode() +* - String.prototype.encode() +* - String.prototype.decode() +* +* # Random string +* - getRandomString() +* +* # URL +* - absUrl() +* +***************************************************************************************************/ + +async function vidGuardExtractor(url) { + // get html + const res = await new Client().get(url); + const doc = new Document(res.body); + const script = doc.selectFirst('script:contains(eval)'); + + // eval code + const code = script.text; + eval?.('var window = {};'); + eval?.(code); + const playlistUrl = globalThis.window.svg.stream; + + // decode sig + const encoded = playlistUrl.match(/sig=(.*?)&/)[1]; + const charCodes = []; + + for (let i = 0; i < encoded.length; i += 2) { + charCodes.push(parseInt(encoded.slice(i, i + 2), 16) ^ 2); + } + + let decoded = Uint8Array.fromBase64( + String.fromCharCode(...charCodes)) + .slice(5, -5) + .reverse(); + + for (let i = 0; i < decoded.length; i += 2) { + let tmp = decoded[i]; + decoded[i] = decoded[i + 1]; + decoded[i + 1] = tmp; + } + + decoded = decoded.decode(); + return await m3u8Extractor(playlistUrl.replace(encoded, decoded), null); +} + +async function doodExtractor(url) { + const dartClient = new Client({ 'useDartHttpClient': true, "followRedirects": false }); + let response = await dartClient.get(url); + while ("location" in response.headers) { + response = await dartClient.get(response.headers.location); + } + const newUrl = response.request.url; + const doodhost = newUrl.match(/https:\/\/(.*?)\//, newUrl)[0].slice(8, -1); + const md5 = response.body.match(/'\/pass_md5\/(.*?)',/, newUrl)[0].slice(11, -2); + const token = md5.substring(md5.lastIndexOf("/") + 1); + const expiry = new Date().valueOf(); + const randomString = getRandomString(10); + + response = await new Client().get(`https://${doodhost}/pass_md5/${md5}`, { "Referer": newUrl }); + const videoUrl = `${response.body}${randomString}?token=${token}&expiry=${expiry}`; + const headers = { "User-Agent": "Mangayomi", "Referer": doodhost }; + return [{ url: videoUrl, originalUrl: videoUrl, headers: headers, quality: '' }]; +} + +async function vidozaExtractor(url) { + let response = await new Client({ 'useDartHttpClient': true, "followRedirects": true }).get(url); + const videoUrl = response.body.match(/https:\/\/\S*\.mp4/)[0]; + return [{ url: videoUrl, originalUrl: videoUrl, quality: '' }]; +} + +async function okruExtractor(url) { + const res = await new Client().get(url); + const doc = new Document(res.body); + const tag = doc.selectFirst('div[data-options]'); + const playlistUrl = tag.attr('data-options').match(/hlsManifestUrl.*?(h.*?id=\d+)/)[1].replaceAll('\\\\u0026', '&'); + return await m3u8Extractor(playlistUrl, null); +} + +async function amazonExtractor(url) { + const res = await new Client().get(url); + const doc = new Document(res.body); + const videoUrl = doc.selectFirst('video').getSrc; + return videoUrl ? [{ url: videoUrl, originalUrl: videoUrl, headers: null, quality: '' }] : []; +} + +async function vidHideExtractor(url) { + const res = await new Client().get(url); + return await jwplayerExtractor(res.body); +} + +async function filemoonExtractor(url) { + let res = await new Client().get(url); + const src = res.body.match(/iframe src="(.*?)"/)?.[1]; + if (src) { + res = await new Client().get(src, { + 'Referer': url, + 'Accept-Language': 'de,en-US;q=0.7,en;q=0.3' + }); + } + return await jwplayerExtractor(res.body); +} + +async function mixdropExtractor(url) { + headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36'}; + let res = await new Client({ 'useDartHttpClient': true, "followRedirects": false }).get(url, headers); + while ("location" in res.headers) { + res = await new Client({ 'useDartHttpClient': true, "followRedirects": false }).get(res.headers.location, headers); + } + const newUrl = res.request.url; + let doc = new Document(res.body); + + const code = doc.selectFirst('script:contains(MDCore):contains(eval)').text; + const unpacked = unpackJs(code); + let videoUrl = unpacked.match(/wurl="(.*?)"/)?.[1]; + + if (!videoUrl) return []; + + videoUrl = 'https:' + videoUrl; + headers.referer = newUrl; + + return [{url: videoUrl, originalUrl: videoUrl, quality: '', headers: headers}]; +} + +/** Does not work: Client always sets 'charset=utf-8' in Content-Type. */ +async function burstcloudExtractor(url) { + let client = new Client(); + let res = await client.get(url); + + const id = res.body.match(/data-file-id="(.*?)"/)[1]; + const headers = { + "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", + 'Referer': url, + }; + const data = { + 'fileId': id + }; + + res = await client.post(`https://www.burstcloud.co/file/play-request/`, headers, data); + const videoUrl = res.body.match(/cdnUrl":"(.*?)"/)[1]; + return [{ + url: videoUrl, + originalUrl: videoUrl, + headers: { 'Referer': url.match(/.*?:\/\/.*?\//) }, + quality: '' + }]; +} + +_streamWishExtractor = streamWishExtractor; +streamWishExtractor = async (url) => { + return (await _streamWishExtractor(url, '')).map(v => { + v.quality = v.quality.slice(3, -1); + return v; + }); +} + +_voeExtractor = voeExtractor; +voeExtractor = async (url) => { + return (await _voeExtractor(url, '')).map(v => { + v.quality = v.quality.replace(/Voe: (\d+p?)/i, '$1'); + return v; + }); +} + +_mp4UploadExtractor = mp4UploadExtractor; +mp4UploadExtractor = async (url) => { + return (await _mp4UploadExtractor(url)).map(v => { + v.quality = v.quality.match(/\d+p/)?.[0] ?? ''; + return v; + }); +} + +_yourUploadExtractor = yourUploadExtractor; +yourUploadExtractor = async (url) => { + return (await _yourUploadExtractor(url)) + .filter(v => !v.url.includes('/novideo')) + .map(v => { + v.quality = ''; + return v; + }); +} + +_streamTapeExtractor = streamTapeExtractor; +streamTapeExtractor = async (url) => { + return await _streamTapeExtractor(url, ''); +} + +_sendVidExtractor = sendVidExtractor; +sendVidExtractor = async (url) => { + let res = await new Client().get(url); + var videoUrl, quality; + try { + videoUrl = res.body.match(/og:video" content="(.*?\.mp4.*?)"/)[1]; + quality = res.body.match(/og:video:height" content="(.*?)"/)?.[1]; + quality = quality ? quality + 'p' : ''; + } catch (error) { + + } + if (!videoUrl) { + return _sendVidExtractor(url, null, ''); + } + return [{url: videoUrl, originalUrl: videoUrl, quality: quality, headers: null}]; +} + +async function extractAny(url, method, lang, type, host) { + const m = extractAny.methods[method]; + return (!m) ? [] : (await m(url)).map(v => { + v.quality = v.quality ? `${lang} ${type} ${v.quality} ${host}` : `${lang} ${type} ${host}`; + return v; + }); +}; + +extractAny.methods = { + 'amazon': amazonExtractor, + 'burstcloud': burstcloudExtractor, + 'doodstream': doodExtractor, + 'filemoon': filemoonExtractor, + 'mixdrop': mixdropExtractor, + 'mp4upload': mp4UploadExtractor, + 'okru': okruExtractor, + 'sendvid': sendVidExtractor, + 'streamtape': streamTapeExtractor, + 'streamwish': vidHideExtractor, + 'vidguard': vidGuardExtractor, + 'vidhide': vidHideExtractor, + 'vidoza': vidozaExtractor, + 'voe': voeExtractor, + 'yourupload': yourUploadExtractor +}; + +async function m3u8Extractor(url, headers = null) { + // https://developer.apple.com/documentation/http-live-streaming/creating-a-multivariant-playlist + // https://developer.apple.com/documentation/http-live-streaming/adding-alternate-media-to-a-playlist + // define attribute lists + const streamAttributes = [ + ['avg_bandwidth', /AVERAGE-BANDWIDTH=(\d+)/], + ['bandwidth', /\bBANDWIDTH=(\d+)/], + ['resolution', /\bRESOLUTION=([\dx]+)/], + ['framerate', /\bFRAME-RATE=([\d\.]+)/], + ['codecs', /\bCODECS="(.*?)"/], + ['video', /\bVIDEO="(.*?)"/], + ['audio', /\bAUDIO="(.*?)"/], + ['subtitles', /\bSUBTITLES="(.*?)"/], + ['captions', /\bCLOSED-CAPTIONS="(.*?)"/] + ]; + const mediaAttributes = [ + ['type', /\bTYPE=([\w-]*)/], + ['group', /\bGROUP-ID="(.*?)"/], + ['lang', /\bLANGUAGE="(.*?)"/], + ['name', /\bNAME="(.*?)"/], + ['autoselect', /\bAUTOSELECT=(\w*)/], + ['default', /\bDEFAULT=(\w*)/], + ['instream-id', /\bINSTREAM-ID="(.*?)"/], + ['assoc-lang', /\bASSOC-LANGUAGE="(.*?)"/], + ['channels', /\bCHANNELS="(.*?)"/], + ['uri', /\bURI="(.*?)"/] + ]; + const streams = [], videos = {}, audios = {}, subtitles = {}, captions = {}; + const dict = { 'VIDEO': videos, 'AUDIO': audios, 'SUBTITLES': subtitles, 'CLOSED-CAPTIONS': captions }; + + const res = await new Client().get(url, headers); + const text = res.body; + + // collect media + for (const match of text.matchAll(/#EXT-X-MEDIA:(.*)/g)) { + const info = match[1], medium = {}; + for (const attr of mediaAttributes) { + const m = info.match(attr[1]); + medium[attr[0]] = m ? m[1] : null; + } + + const type = medium.type; + delete medium.type; + const group = medium.group; + delete medium.group; + + const typedict = dict[type]; + if (typedict[group] == undefined) + typedict[group] = []; + typedict[group].push(medium); + } + + // collect streams + for (const match of text.matchAll(/#EXT-X-STREAM-INF:(.*)\s*(.*)/g)) { + const info = match[1], stream = { 'url': absUrl(match[2], url) }; + for (const attr of streamAttributes) { + const m = info.match(attr[1]); + stream[attr[0]] = m ? m[1] : null; + } + + stream['video'] = videos[stream.video] ?? null; + stream['audio'] = audios[stream.audio] ?? null; + stream['subtitles'] = subtitles[stream.subtitles] ?? null; + stream['captions'] = captions[stream.captions] ?? null; + + // format resolution or bandwidth + let quality; + if (stream.resolution) { + quality = stream.resolution.match(/x(\d+)/)[1] + 'p'; + } else { + quality = (parseInt(stream.avg_bandwidth ?? stream.bandwidth) / 1000000) + 'Mb/s' + } + + // add stream to list + const subs = stream.subtitles?.map((s) => { + return { file: s.uri, label: s.name }; + }); + const auds = stream.audio?.map((a) => { + return { file: a.uri, label: a.name }; + }); + streams.push({ + url: stream.url, + quality: quality, + originalUrl: stream.url, + headers: headers, + subtitles: subs ?? null, + audios: auds ?? null + }); + } + return streams.length ? streams : [{ + url: url, + quality: '', + originalUrl: url, + headers: headers, + subtitles: null, + audios: null + }]; +} + +async function jwplayerExtractor(text, headers) { + // https://docs.jwplayer.com/players/reference/playlists + const getsetup = /setup\(({[\s\S]*?})\)/; + const getsources = /sources:\s*(\[[\s\S]*?\])/; + const gettracks = /tracks:\s*(\[[\s\S]*?\])/; + const unpacked = unpackJs(text); + + const videos = [], subtitles = []; + + const data = eval('(' + (getsetup.exec(text) || getsetup.exec(unpacked))?.[1] + ')'); + + if (data){ + var sources = data.sources; + var tracks = data.tracks; + } else { + var sources = eval('(' + (getsources.exec(text) || getsources.exec(unpacked))?.[1] + ')'); + var tracks = eval('(' + (gettracks.exec(text) || gettracks.exec(unpacked))?.[1] + ')'); + } + for (t of tracks) { + if (t.type == "captions") { + subtitles.push({file: t.file, label: t.label}); + } + } + for (s of sources) { + if (s.file.includes('master.m3u8')) { + videos.push(...(await m3u8Extractor(s.file, headers))); + } else if (s.file.includes('.mpd')) { + + } else { + videos.push({url: s.file, originalUrl: s.file, quality: '', headers: headers}); + } + } + return videos.map(v => { + v.subtitles = subtitles; + return v; + }); +} + +function sortVideos(videos) { + const pref = new SharedPreferences(); + const getres = RegExp('(\\d+)p?', 'i'); + const lang = RegExp(pref.get('lang'), 'i'); + const type = RegExp(pref.get('type'), 'i'); + const res = RegExp(getres.exec(pref.get('res'))[1], 'i'); + const host = RegExp(pref.get('host'), 'i'); + + let getScore = (q, hasRes) => { + const bLang = lang.test(q), bType = type.test(q), bRes = res.test(q), bHost = host.test(q); + if (hasRes) { + return bLang * (8 + bType * (4 + bRes * (2 + bHost * 1))); + } else { + return bLang * (8 + bType * (4 + (bHost * 3))); + } + } + + return videos.sort((a, b) => { + const resA = getres.exec(a.quality)?.[1]; + const resB = getres.exec(b.quality)?.[1]; + const score = getScore(b.quality, resB) - getScore(a.quality, resA); + + if (score) return score; + + const qA = resA ? a.quality.replace(resA, (9999 - parseInt(resA)).toString()) : a.quality; + const qB = resA ? b.quality.replace(resB, (9999 - parseInt(resB)).toString()) : b.quality; + + return qA.localeCompare(qB); + }); +} + +Uint8Array.fromBase64 = function (b64) { + // [00,01,02,03,04,05,06,07,08,\t,\n,0b,0c,\r,0e,0f,10,11,12,13,14,15,16,17,18,19,1a,1b,1c,1d,1e,1f,' ', !, ", #, $, %, &, ', (, ), *, +,',', -, ., /, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, :, ;, <,'=', >, ?, @,A,B,C,D,E,F,G,H,I,J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, [, \, ], ^, _, `, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, {, |, }, ~,7f] + const m = [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, 62, -1, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, 63, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1] + let data = [], val = 0, bits = -8 + for (const c of b64) { + let n = m[c.charCodeAt(0)]; + if (n == -1) break; + val = (val << 6) + n; + bits += 6; + for (; bits >= 0; bits -= 8) + data.push((val >> bits) & 0xFF); + } + return new Uint8Array(data); +} + +Uint8Array.prototype.toBase64 = function () { + const m = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' + let b64 = '', val = 0, bits = -6; + for (const b of this) { + val = (val << 8) + b; + bits += 8; + while (bits >= 0) { + b64 += m[(val >> bits) & 0x3F]; + bits -= 6; + } + } + if (bits > -6) + b64 += m[(val << -bits) & 0x3F]; + return b64 + ['', '', '==', '='][b64.length % 4]; +} + +Uint8Array.prototype.decode = function (encoding = 'utf-8') { + encoding = encoding.toLowerCase(); + if (encoding == 'utf-8') { + return decodeUTF8(this); + } + return null; +} + +String.prototype.encode = function (encoding = 'utf-8') { + encoding = encoding.toLowerCase(); + if (encoding == 'utf-8') { + return encodeUTF8(this); + } + return null; +} + +String.decode = function (data, encoding = 'utf-8') { + encoding = encoding.toLowerCase(); + if (encoding == 'utf-8') { + return decodeUTF8(data); + } + return null; +} + +function decodeUTF8(data) { + const codes = []; + for (let i = 0; i < data.length;) { + const c = data[i++]; + const len = (c > 0xBF) + (c > 0xDF) + (c > 0xEF); + let val = c & (0xFF >> (len + 1)); + for (const end = i + len; i < end; i++) { + val = (val << 6) + (data[i] & 0x3F); + } + codes.push(val); + } + return String.fromCharCode(...codes); +} + +function encodeUTF8(string) { + const data = []; + for (const c of string) { + const code = c.charCodeAt(0); + const len = (code > 0x7F) + (code > 0x7FF) + (code > 0xFFFF); + let bits = len * 6; + + data.push((len ? ~(0xFF >> len + 1) : (0)) + (code >> bits)); + while (bits > 0) { + data.push(0x80 + ((code >> (bits -= 6)) & 0x3F)) + } + } + return new Uint8Array(data); +} + +function getRandomString(length) { + const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"; + let result = ""; + for (let i = 0; i < length; i++) { + const random = Math.floor(Math.random() * 61); + result += chars[random]; + } + return result; +} + +function absUrl(url, base) { + if (url.search(/^\w+:\/\//) == 0) { + return url; + } else if (url.startsWith('/')) { + return base.slice(0, base.lastIndexOf('/')) + url; + } else { + return base.slice(0, base.lastIndexOf('/') + 1) + url; + } +} \ No newline at end of file diff --git a/javascript/anime/src/es/jkanime.js b/javascript/anime/src/es/jkanime.js new file mode 100644 index 00000000..a1ab1bf9 --- /dev/null +++ b/javascript/anime/src/es/jkanime.js @@ -0,0 +1,1398 @@ +const mangayomiSources = [{ + "name": "JKAnime", + "lang": "es", + "baseUrl": "https://jkanime.net", + "apiUrl": "", + "iconUrl": "https://cdn.jkdesu.com/assets2/css/img/favicon.ico", + "typeSource": "single", + "isManga": false, + "version": "0.1.0", + "dateFormat": "", + "dateFormatLocale": "", + "pkgPath": "anime/src/es/jkanime.js" +}]; + +class DefaultExtension extends MProvider { + constructor () { + super(); + this.client = new Client(); + } + getHeaders(url) { + throw new Error("getHeaders not implemented"); + } + async parseAnimeList(url) { + const res = await this.client.get(url); + const doc = new Document(res.body); + const code = doc.selectFirst("script:contains(var animes)").text; + const list = []; + + for (const element of code.matchAll(/{.*?short_title.*?}/g)) { + const data = JSON.parse(element[0]); + const name = data.title; + const imageUrl = data.image; + const link = this.source.baseUrl + '/' + data.slug; + list.push({ name, imageUrl, link }); + } + + const nextBtn = doc.selectFirst("a.nav-next"); + const hasNextPage = nextBtn && nextBtn.text != ''; + return { "list": list, "hasNextPage": hasNextPage }; + } + statusFromString(status) { + return { + "En emision": 0, + "Finalizado": 1, + "Concluido": 1 + }[status] ?? 5; + } + async getPopular(page) { + const res = await this.client.get('https://jkanime.net/top/'); + const doc = new Document(res.body); + const list = []; + + for (const i of doc.select('div#conb')) { + const name = i.selectFirst('h2 a').text; + const imageUrl = i.selectFirst('img').getSrc; + let link = i.selectFirst('a').getHref; + link = link.endsWith('/') ? link.slice(0, -1) : link; + list.push({ name, imageUrl, link }); + } + + return { "list": list, "hasNextPage": false }; + } + async getLatestUpdates(page) { + return this.parseAnimeList(`${this.source.baseUrl}/directorio/${page}/`); + } + async search(query, page, filters) { + query = query.trim().replaceAll(/\ +/g, "_"); + + // Search sometimes failed because filters were empty. I experienced this mostly on android... + if (!filters || filters.length == 0) { + return this.parseAnimeList(`${this.source.baseUrl}/buscar/${query}/${page}/`); + } else if (query) { + var url = `${this.source.baseUrl}/buscar/${query}/${page}/`; + url += `?filtro=${filters[1].values[filters[1].state].value}`; + url += `&tipo=${filters[5].values[filters[5].state].value}`; + url += `&estado=${filters[6].values[filters[6].state].value}`; + } else { + var url = `${this.source.baseUrl}/directorio/${query}/${page}`; + url += `/${filters[1].values[filters[1].state].value}`; + url += `/${filters[2].values[filters[2].state].value}`; + url += `/${filters[3].values[filters[3].state].value}`; + url += `/${filters[4].values[filters[4].state].value}`; + url += `/${filters[5].values[filters[5].state].value}`; + url += `/${filters[6].values[filters[6].state].value}`; + url += `/${filters[7].values[filters[7].state].value}`; + url += `/${filters[8].values[filters[8].state].value}`; + } + return this.parseAnimeList(url); + } + async getDetail(url) { + let res = await this.client.get(url); + const doc = new Document(res.body); + const detail = {}; + + const id = res.body.match(/data-anime="(\d+)"/)[1]; + const lastEpisodeUrl = `${this.source.baseUrl}/ajax/last_episode/${id}`; + + const info = doc.selectFirst("div.anime__details__content"); + const extInfo = doc.selectFirst('div.aninfo'); + detail.name = info.selectFirst("h3").text; + detail.imageUrl = info.selectFirst("div.anime__details__pic").attr('data-setbg'); + detail.description = info.selectFirst("p.sinopsis").text.trim(); + detail.status = this.statusFromString(extInfo.selectFirst("span:contains(Estado) + span").text); + detail.genre = extInfo.select("li:contains(Genero) a").map(e => e.text); + + // get episodes + detail.episodes = []; + res = await this.client.get(lastEpisodeUrl, {'User-Agent': 'Mangayomi'}); + const end = parseInt(JSON.parse(res.body)[0].number); + for (let i = 1; i <= end; i++) { + detail.episodes.push({ + name: 'Episodio ' + i, + url: url + '/' + i + }); + } + detail.episodes.reverse(); + return detail; + } + async extractRedirect(redirect, referer, lang, type, host) { + const res = await this.client.get(this.source.baseUrl + redirect, {'Referer': referer}); + const m3u = res.body.match(/http.*?.m3u8/)[0]; + return [{ url: m3u, originalUrl: m3u, headers: {'Referer': referer}, quality: `${lang} ${type} ${host}` }]; + }; + // For anime episode video list + async getVideoList(url) { + const res = await this.client.get(url); + const doc = new Document(res.body); + let promises = []; + const videos = []; + + const code = doc.selectFirst("script:contains(var video)").text; + + // extract direct video links + for (const m of code.matchAll(/video\s*\[\d+\].*?src="(.*?)"/g)) { + promises.push(this.extractRedirect(m[1], url, 'Español', 'Sub', 'Desu')); + } + promises = [Promise.any(promises)]; + + // extract remote video links + for (const server of code.matchAll(/{"remote"\s*:\s*"(.*?)".*?"server"\s*:\s*"(.*?)"/g)) { + const link = Uint8Array.fromBase64(server[1]).decode('utf-8'); + const host = server[2]; + promises.push(extractAny(link, host.toLowerCase(), 'Español', 'Sub', host)); + } + for (const p of (await Promise.allSettled(promises))) { + if (p.status == 'fulfilled') { + videos.push.apply(videos, p.value); + } + } + return sortVideos(videos); + } + getFilterList() { + return [ + { + type_name: "HeaderFilter", + type: "info", + name: "IMPORTANT: Some filters do not work when searching text!", + state: 0 + }, + { + type_name: "SelectFilter", + type: "filtro", + name: "Filtro", + state: 0, + values: [ + { + type_name: "SelectOption", + name: "Por fecha", + value: "" + }, + { + type_name: "SelectOption", + name: "Por nombre", + value: "nombre" + } + ] + }, + { + type_name: "SelectFilter", + type: "genero", + name: "Género", + state: 0, + values: [ + { + type_name: "SelectOption", + name: "Género", + value: "" + }, + { + type_name: "SelectOption", + name: "Accion", + value: "accion" + }, + { + type_name: "SelectOption", + name: "Aventura", + value: "aventura" + }, + { + type_name: "SelectOption", + name: "Autos", + value: "autos" + }, + { + type_name: "SelectOption", + name: "Comedia", + value: "comedia" + }, + { + type_name: "SelectOption", + name: "Dementia", + value: "dementia" + }, + { + type_name: "SelectOption", + name: "Demonios", + value: "demonios" + }, + { + type_name: "SelectOption", + name: "Misterio", + value: "misterio" + }, + { + type_name: "SelectOption", + name: "Drama", + value: "drama" + }, + { + type_name: "SelectOption", + name: "Ecchi", + value: "ecchi" + }, + { + type_name: "SelectOption", + name: "Fantasia", + value: "fantasia" + }, + { + type_name: "SelectOption", + name: "Juegos", + value: "juegos" + }, + { + type_name: "SelectOption", + name: "Hentai", + value: "hentai" + }, + { + type_name: "SelectOption", + name: "Historico", + value: "historico" + }, + { + type_name: "SelectOption", + name: "Terror", + value: "terror" + }, + { + type_name: "SelectOption", + name: "Magia", + value: "magia" + }, + { + type_name: "SelectOption", + name: "Artes Marciales", + value: "artes-marciales" + }, + { + type_name: "SelectOption", + name: "Mecha", + value: "mecha" + }, + { + type_name: "SelectOption", + name: "Musica", + value: "musica" + }, + { + type_name: "SelectOption", + name: "Parodia", + value: "parodia" + }, + { + type_name: "SelectOption", + name: "Samurai", + value: "samurai" + }, + { + type_name: "SelectOption", + name: "Romance", + value: "romance" + }, + { + type_name: "SelectOption", + name: "Colegial", + value: "colegial" + }, + { + type_name: "SelectOption", + name: "Sci-Fi", + value: "sci-fi" + }, + { + type_name: "SelectOption", + name: "Shoujo Ai", + value: "shoujo-ai" + }, + { + type_name: "SelectOption", + name: "Shounen Ai", + value: "shounen-ai" + }, + { + type_name: "SelectOption", + name: "Space", + value: "space" + }, + { + type_name: "SelectOption", + name: "Deportes", + value: "deportes" + }, + { + type_name: "SelectOption", + name: "Super Poderes", + value: "super-poderes" + }, + { + type_name: "SelectOption", + name: "Vampiros", + value: "vampiros" + }, + { + type_name: "SelectOption", + name: "Yaoi", + value: "yaoi" + }, + { + type_name: "SelectOption", + name: "Yuri", + value: "yuri" + }, + { + type_name: "SelectOption", + name: "Harem", + value: "harem" + }, + { + type_name: "SelectOption", + name: "Cosas de la vida", + value: "cosas-de-la-vida" + }, + { + type_name: "SelectOption", + name: "Sobrenatural", + value: "sobrenatural" + }, + { + type_name: "SelectOption", + name: "Militar", + value: "militar" + }, + { + type_name: "SelectOption", + name: "Policial", + value: "policial" + }, + { + type_name: "SelectOption", + name: "Psicologico", + value: "psicologico" + }, + { + type_name: "SelectOption", + name: "Thriller", + value: "thriller" + }, + { + type_name: "SelectOption", + name: "Español Latino", + value: "latino" + }, + { + type_name: "SelectOption", + name: "Isekai", + value: "isekai" + } + ] + }, + { + type_name: "SelectFilter", + type: "demografia", + name: "Demografía", + state: 0, + values: [ + { + type_name: "SelectOption", + name: "Demografía", + value: "" + }, + { + type_name: "SelectOption", + name: "Niños", + value: "nios" + }, + { + type_name: "SelectOption", + name: "Shoujo", + value: "shoujo" + }, + { + type_name: "SelectOption", + name: "Shounen", + value: "shounen" + }, + { + type_name: "SelectOption", + name: "Seinen", + value: "seinen" + }, + { + type_name: "SelectOption", + name: "Josei", + value: "josei" + } + ] + }, + { + type_name: "SelectFilter", + type: "categoria", + name: "Categoría", + state: 0, + values: [ + { + type_name: "SelectOption", + name: "Categoría", + value: "" + }, + { + type_name: "SelectOption", + name: "Donghua", + value: "donghua" + } + ] + }, + { + type_name: "SelectFilter", + type: "tipo", + name: "Tipo", + state: 0, + values: [ + { + type_name: "SelectOption", + name: "Tipo", + value: "" + }, + { + type_name: "SelectOption", + name: "Animes", + value: "animes" + }, + { + type_name: "SelectOption", + name: "Peliculas", + value: "peliculas" + }, + { + type_name: "SelectOption", + name: "Especiales", + value: "especiales" + }, + { + type_name: "SelectOption", + name: "Ovas", + value: "ovas" + }, + { + type_name: "SelectOption", + name: "Onas", + value: "onas" + } + ] + }, + { + type_name: "SelectFilter", + type: "estado", + name: "Estado", + state: 0, + values: [ + { + type_name: "SelectOption", + name: "Estado", + value: "" + }, + { + type_name: "SelectOption", + name: "En emisión", + value: "emision" + }, + { + type_name: "SelectOption", + name: "Finalizado", + value: "finalizados" + }, + { + type_name: "SelectOption", + name: "Por Estrenar", + value: "estrenos" + } + ] + }, + { + type_name: "SelectFilter", + type: "ano", + name: "Año", + state: 0, + values: [ + { + type_name: "SelectOption", + name: "Año", + value: "Año" + }, + { + type_name: "SelectOption", + name: "2024", + value: "2024" + }, + { + type_name: "SelectOption", + name: "2023", + value: "2023" + }, + { + type_name: "SelectOption", + name: "2022", + value: "2022" + }, + { + type_name: "SelectOption", + name: "2021", + value: "2021" + }, + { + type_name: "SelectOption", + name: "2020", + value: "2020" + }, + { + type_name: "SelectOption", + name: "2019", + value: "2019" + }, + { + type_name: "SelectOption", + name: "2018", + value: "2018" + }, + { + type_name: "SelectOption", + name: "2017", + value: "2017" + }, + { + type_name: "SelectOption", + name: "2016", + value: "2016" + }, + { + type_name: "SelectOption", + name: "2015", + value: "2015" + }, + { + type_name: "SelectOption", + name: "2014", + value: "2014" + }, + { + type_name: "SelectOption", + name: "2013", + value: "2013" + }, + { + type_name: "SelectOption", + name: "2012", + value: "2012" + }, + { + type_name: "SelectOption", + name: "2011", + value: "2011" + }, + { + type_name: "SelectOption", + name: "2010", + value: "2010" + }, + { + type_name: "SelectOption", + name: "2009", + value: "2009" + }, + { + type_name: "SelectOption", + name: "2008", + value: "2008" + }, + { + type_name: "SelectOption", + name: "2007", + value: "2007" + }, + { + type_name: "SelectOption", + name: "2006", + value: "2006" + }, + { + type_name: "SelectOption", + name: "2005", + value: "2005" + }, + { + type_name: "SelectOption", + name: "2004", + value: "2004" + }, + { + type_name: "SelectOption", + name: "2003", + value: "2003" + }, + { + type_name: "SelectOption", + name: "2002", + value: "2002" + }, + { + type_name: "SelectOption", + name: "2001", + value: "2001" + }, + { + type_name: "SelectOption", + name: "2000", + value: "2000" + }, + { + type_name: "SelectOption", + name: "1999", + value: "1999" + }, + { + type_name: "SelectOption", + name: "1998", + value: "1998" + }, + { + type_name: "SelectOption", + name: "1997", + value: "1997" + }, + { + type_name: "SelectOption", + name: "1996", + value: "1996" + }, + { + type_name: "SelectOption", + name: "1995", + value: "1995" + }, + { + type_name: "SelectOption", + name: "1994", + value: "1994" + }, + { + type_name: "SelectOption", + name: "1993", + value: "1993" + }, + { + type_name: "SelectOption", + name: "1992", + value: "1992" + }, + { + type_name: "SelectOption", + name: "1991", + value: "1991" + }, + { + type_name: "SelectOption", + name: "1990", + value: "1990" + }, + { + type_name: "SelectOption", + name: "1989", + value: "1989" + }, + { + type_name: "SelectOption", + name: "1988", + value: "1988" + }, + { + type_name: "SelectOption", + name: "1987", + value: "1987" + }, + { + type_name: "SelectOption", + name: "1986", + value: "1986" + }, + { + type_name: "SelectOption", + name: "1985", + value: "1985" + }, + { + type_name: "SelectOption", + name: "1984", + value: "1984" + }, + { + type_name: "SelectOption", + name: "1983", + value: "1983" + }, + { + type_name: "SelectOption", + name: "1982", + value: "1982" + }, + { + type_name: "SelectOption", + name: "1981", + value: "1981" + } + ] + }, + { + type_name: "SelectFilter", + type: "temporada", + name: "Temporada", + state: 0, + values: [ + { + type_name: "SelectOption", + name: "Temporada", + value: "" + }, + { + type_name: "SelectOption", + name: "Invierno", + value: "invierno" + }, + { + type_name: "SelectOption", + name: "Primavera", + value: "primavera" + }, + { + type_name: "SelectOption", + name: "Verano", + value: "verano" + }, + { + type_name: "SelectOption", + name: "Otoño", + value: "otoño" + } + ] + } + ]; + } + getSourcePreferences() { + return [ + { + key: 'lang', + listPreference: { + title: 'Preferred Language', + summary: 'If available, this language will be chosen by default. Priority = 0 (lower is better)', + valueIndex: 0, + entries: [ + 'Español' + ], + entryValues: [ + 'Español' + ] + } + }, + { + key: 'type', + listPreference: { + title: 'Preferred Type', + summary: 'If available, this type will be chosen by default. Priority = 1 (lower is better)', + valueIndex: 0, + entries: [ + 'Sub' + ], + entryValues: [ + 'Sub' + ] + } + }, + { + key: 'res', + listPreference: { + title: 'Preferred Resolution', + summary: 'If available, this resolution will be chosen by default. Priority = 2 (lower is better)', + valueIndex: 0, + entries: [ + '1080p', + '720p', + '480p' + ], + entryValues: [ + '1080p', + '720p', + '480p' + ] + } + }, + { + key: 'host', + listPreference: { + title: 'Preferred Hoster', + summary: 'If available, this hoster will be chosen by default. Priority = 3 (lower is better)', + valueIndex: 0, + entries: [ + 'Desu', + 'Filemoon', + 'Mixdrop', + 'Mp4Upload', + 'Streamtape', + 'Streamwish', + 'Vidhide', + 'Voe' + ], + entryValues: [ + 'Desu', + 'Filemoon', + 'Mixdrop', + 'Mp4Upload', + 'Streamtape', + 'Streamwish', + 'Vidhide', + 'Voe' + ] + } + } + ]; + } +} + +/*************************************************************************************************** +* +* mangayomi-js-helpers v1.0 +* +* # Video Extractors +* - vidGuardExtractor +* - doodExtractor +* - vidozaExtractor +* - okruExtractor +* - amazonExtractor +* - vidHideExtractor +* - filemoonExtractor +* - mixdropExtractor +* - burstcloudExtractor (not working, see description) +* +* # Video Extractor Format Wrappers +* - streamWishExtractor +* - voeExtractor +* - mp4UploadExtractor +* - yourUploadExtractor +* - streamTapeExtractor +* - sendVidExtractor +* +* # Video Extractor helpers +* - extractAny +* +* # Playlist Extractors +* - m3u8Extractor +* - jwplayerExtractor +* +* # Extension +* - sortVideos() +* +* # Encoding/Decoding +* - Uint8Array.fromBase64() +* - Uint8Array.prototype.toBase64() +* - Uint8Array.prototype.decode() +* - String.prototype.encode() +* - String.prototype.decode() +* +* # Random string +* - getRandomString() +* +* # URL +* - absUrl() +* +***************************************************************************************************/ + +async function vidGuardExtractor(url) { + // get html + const res = await new Client().get(url); + const doc = new Document(res.body); + const script = doc.selectFirst('script:contains(eval)'); + + // eval code + const code = script.text; + eval?.('var window = {};'); + eval?.(code); + const playlistUrl = globalThis.window.svg.stream; + + // decode sig + const encoded = playlistUrl.match(/sig=(.*?)&/)[1]; + const charCodes = []; + + for (let i = 0; i < encoded.length; i += 2) { + charCodes.push(parseInt(encoded.slice(i, i + 2), 16) ^ 2); + } + + let decoded = Uint8Array.fromBase64( + String.fromCharCode(...charCodes)) + .slice(5, -5) + .reverse(); + + for (let i = 0; i < decoded.length; i += 2) { + let tmp = decoded[i]; + decoded[i] = decoded[i + 1]; + decoded[i + 1] = tmp; + } + + decoded = decoded.decode(); + return await m3u8Extractor(playlistUrl.replace(encoded, decoded), null); +} + +async function doodExtractor(url) { + const dartClient = new Client({ 'useDartHttpClient': true, "followRedirects": false }); + let response = await dartClient.get(url); + while ("location" in response.headers) { + response = await dartClient.get(response.headers.location); + } + const newUrl = response.request.url; + const doodhost = newUrl.match(/https:\/\/(.*?)\//, newUrl)[0].slice(8, -1); + const md5 = response.body.match(/'\/pass_md5\/(.*?)',/, newUrl)[0].slice(11, -2); + const token = md5.substring(md5.lastIndexOf("/") + 1); + const expiry = new Date().valueOf(); + const randomString = getRandomString(10); + + response = await new Client().get(`https://${doodhost}/pass_md5/${md5}`, { "Referer": newUrl }); + const videoUrl = `${response.body}${randomString}?token=${token}&expiry=${expiry}`; + const headers = { "User-Agent": "Mangayomi", "Referer": doodhost }; + return [{ url: videoUrl, originalUrl: videoUrl, headers: headers, quality: '' }]; +} + +async function vidozaExtractor(url) { + let response = await new Client({ 'useDartHttpClient': true, "followRedirects": true }).get(url); + const videoUrl = response.body.match(/https:\/\/\S*\.mp4/)[0]; + return [{ url: videoUrl, originalUrl: videoUrl, quality: '' }]; +} + +async function okruExtractor(url) { + const res = await new Client().get(url); + const doc = new Document(res.body); + const tag = doc.selectFirst('div[data-options]'); + const playlistUrl = tag.attr('data-options').match(/hlsManifestUrl.*?(h.*?id=\d+)/)[1].replaceAll('\\\\u0026', '&'); + return await m3u8Extractor(playlistUrl, null); +} + +async function amazonExtractor(url) { + const res = await new Client().get(url); + const doc = new Document(res.body); + const videoUrl = doc.selectFirst('video').getSrc; + return videoUrl ? [{ url: videoUrl, originalUrl: videoUrl, headers: null, quality: '' }] : []; +} + +async function vidHideExtractor(url) { + const res = await new Client().get(url); + return await jwplayerExtractor(res.body); +} + +async function filemoonExtractor(url) { + let res = await new Client().get(url); + const src = res.body.match(/iframe src="(.*?)"/)?.[1]; + if (src) { + res = await new Client().get(src, { + 'Referer': url, + 'Accept-Language': 'de,en-US;q=0.7,en;q=0.3' + }); + } + return await jwplayerExtractor(res.body); +} + +async function mixdropExtractor(url) { + headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36'}; + let res = await new Client({ 'useDartHttpClient': true, "followRedirects": false }).get(url, headers); + while ("location" in res.headers) { + res = await new Client({ 'useDartHttpClient': true, "followRedirects": false }).get(res.headers.location, headers); + } + const newUrl = res.request.url; + let doc = new Document(res.body); + + const code = doc.selectFirst('script:contains(MDCore):contains(eval)').text; + const unpacked = unpackJs(code); + let videoUrl = unpacked.match(/wurl="(.*?)"/)?.[1]; + + if (!videoUrl) return []; + + videoUrl = 'https:' + videoUrl; + headers.referer = newUrl; + + return [{url: videoUrl, originalUrl: videoUrl, quality: '', headers: headers}]; +} + +/** Does not work: Client always sets 'charset=utf-8' in Content-Type. */ +async function burstcloudExtractor(url) { + let client = new Client(); + let res = await client.get(url); + + const id = res.body.match(/data-file-id="(.*?)"/)[1]; + const headers = { + "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", + 'Referer': url, + }; + const data = { + 'fileId': id + }; + + res = await client.post(`https://www.burstcloud.co/file/play-request/`, headers, data); + const videoUrl = res.body.match(/cdnUrl":"(.*?)"/)[1]; + return [{ + url: videoUrl, + originalUrl: videoUrl, + headers: { 'Referer': url.match(/.*?:\/\/.*?\//) }, + quality: '' + }]; +} + +_streamWishExtractor = streamWishExtractor; +streamWishExtractor = async (url) => { + return (await _streamWishExtractor(url, '')).map(v => { + v.quality = v.quality.slice(3, -1); + return v; + }); +} + +_voeExtractor = voeExtractor; +voeExtractor = async (url) => { + return (await _voeExtractor(url, '')).map(v => { + v.quality = v.quality.replace(/Voe: (\d+p?)/i, '$1'); + return v; + }); +} + +_mp4UploadExtractor = mp4UploadExtractor; +mp4UploadExtractor = async (url) => { + return (await _mp4UploadExtractor(url)).map(v => { + v.quality = v.quality.match(/\d+p/)?.[0] ?? ''; + return v; + }); +} + +_yourUploadExtractor = yourUploadExtractor; +yourUploadExtractor = async (url) => { + return (await _yourUploadExtractor(url)) + .filter(v => !v.url.includes('/novideo')) + .map(v => { + v.quality = ''; + return v; + }); +} + +_streamTapeExtractor = streamTapeExtractor; +streamTapeExtractor = async (url) => { + return await _streamTapeExtractor(url, ''); +} + +_sendVidExtractor = sendVidExtractor; +sendVidExtractor = async (url) => { + let res = await new Client().get(url); + var videoUrl, quality; + try { + videoUrl = res.body.match(/og:video" content="(.*?\.mp4.*?)"/)[1]; + quality = res.body.match(/og:video:height" content="(.*?)"/)?.[1]; + quality = quality ? quality + 'p' : ''; + } catch (error) { + + } + if (!videoUrl) { + return _sendVidExtractor(url, null, ''); + } + return [{url: videoUrl, originalUrl: videoUrl, quality: quality, headers: null}]; +} + +async function extractAny(url, method, lang, type, host) { + const m = extractAny.methods[method]; + return (!m) ? [] : (await m(url)).map(v => { + v.quality = v.quality ? `${lang} ${type} ${v.quality} ${host}` : `${lang} ${type} ${host}`; + return v; + }); +}; + +extractAny.methods = { + 'amazon': amazonExtractor, + 'burstcloud': burstcloudExtractor, + 'doodstream': doodExtractor, + 'filemoon': filemoonExtractor, + 'mixdrop': mixdropExtractor, + 'mp4upload': mp4UploadExtractor, + 'okru': okruExtractor, + 'sendvid': sendVidExtractor, + 'streamtape': streamTapeExtractor, + 'streamwish': vidHideExtractor, + 'vidguard': vidGuardExtractor, + 'vidhide': vidHideExtractor, + 'vidoza': vidozaExtractor, + 'voe': voeExtractor, + 'yourupload': yourUploadExtractor +}; + +async function m3u8Extractor(url, headers = null) { + // https://developer.apple.com/documentation/http-live-streaming/creating-a-multivariant-playlist + // https://developer.apple.com/documentation/http-live-streaming/adding-alternate-media-to-a-playlist + // define attribute lists + const streamAttributes = [ + ['avg_bandwidth', /AVERAGE-BANDWIDTH=(\d+)/], + ['bandwidth', /\bBANDWIDTH=(\d+)/], + ['resolution', /\bRESOLUTION=([\dx]+)/], + ['framerate', /\bFRAME-RATE=([\d\.]+)/], + ['codecs', /\bCODECS="(.*?)"/], + ['video', /\bVIDEO="(.*?)"/], + ['audio', /\bAUDIO="(.*?)"/], + ['subtitles', /\bSUBTITLES="(.*?)"/], + ['captions', /\bCLOSED-CAPTIONS="(.*?)"/] + ]; + const mediaAttributes = [ + ['type', /\bTYPE=([\w-]*)/], + ['group', /\bGROUP-ID="(.*?)"/], + ['lang', /\bLANGUAGE="(.*?)"/], + ['name', /\bNAME="(.*?)"/], + ['autoselect', /\bAUTOSELECT=(\w*)/], + ['default', /\bDEFAULT=(\w*)/], + ['instream-id', /\bINSTREAM-ID="(.*?)"/], + ['assoc-lang', /\bASSOC-LANGUAGE="(.*?)"/], + ['channels', /\bCHANNELS="(.*?)"/], + ['uri', /\bURI="(.*?)"/] + ]; + const streams = [], videos = {}, audios = {}, subtitles = {}, captions = {}; + const dict = { 'VIDEO': videos, 'AUDIO': audios, 'SUBTITLES': subtitles, 'CLOSED-CAPTIONS': captions }; + + const res = await new Client().get(url, headers); + const text = res.body; + + // collect media + for (const match of text.matchAll(/#EXT-X-MEDIA:(.*)/g)) { + const info = match[1], medium = {}; + for (const attr of mediaAttributes) { + const m = info.match(attr[1]); + medium[attr[0]] = m ? m[1] : null; + } + + const type = medium.type; + delete medium.type; + const group = medium.group; + delete medium.group; + + const typedict = dict[type]; + if (typedict[group] == undefined) + typedict[group] = []; + typedict[group].push(medium); + } + + // collect streams + for (const match of text.matchAll(/#EXT-X-STREAM-INF:(.*)\s*(.*)/g)) { + const info = match[1], stream = { 'url': absUrl(match[2], url) }; + for (const attr of streamAttributes) { + const m = info.match(attr[1]); + stream[attr[0]] = m ? m[1] : null; + } + + stream['video'] = videos[stream.video] ?? null; + stream['audio'] = audios[stream.audio] ?? null; + stream['subtitles'] = subtitles[stream.subtitles] ?? null; + stream['captions'] = captions[stream.captions] ?? null; + + // format resolution or bandwidth + let quality; + if (stream.resolution) { + quality = stream.resolution.match(/x(\d+)/)[1] + 'p'; + } else { + quality = (parseInt(stream.avg_bandwidth ?? stream.bandwidth) / 1000000) + 'Mb/s' + } + + // add stream to list + const subs = stream.subtitles?.map((s) => { + return { file: s.uri, label: s.name }; + }); + const auds = stream.audio?.map((a) => { + return { file: a.uri, label: a.name }; + }); + streams.push({ + url: stream.url, + quality: quality, + originalUrl: stream.url, + headers: headers, + subtitles: subs ?? null, + audios: auds ?? null + }); + } + return streams.length ? streams : [{ + url: url, + quality: '', + originalUrl: url, + headers: headers, + subtitles: null, + audios: null + }]; +} + +async function jwplayerExtractor(text, headers) { + // https://docs.jwplayer.com/players/reference/playlists + const getsetup = /setup\(({[\s\S]*?})\)/; + const getsources = /sources:\s*(\[[\s\S]*?\])/; + const gettracks = /tracks:\s*(\[[\s\S]*?\])/; + const unpacked = unpackJs(text); + + const videos = [], subtitles = []; + + const data = eval('(' + (getsetup.exec(text) || getsetup.exec(unpacked))?.[1] + ')'); + + if (data){ + var sources = data.sources; + var tracks = data.tracks; + } else { + var sources = eval('(' + (getsources.exec(text) || getsources.exec(unpacked))?.[1] + ')'); + var tracks = eval('(' + (gettracks.exec(text) || gettracks.exec(unpacked))?.[1] + ')'); + } + for (t of tracks) { + if (t.type == "captions") { + subtitles.push({file: t.file, label: t.label}); + } + } + for (s of sources) { + if (s.file.includes('master.m3u8')) { + videos.push(...(await m3u8Extractor(s.file, headers))); + } else if (s.file.includes('.mpd')) { + + } else { + videos.push({url: s.file, originalUrl: s.file, quality: '', headers: headers}); + } + } + return videos.map(v => { + v.subtitles = subtitles; + return v; + }); +} + +function sortVideos(videos) { + const pref = new SharedPreferences(); + const getres = RegExp('(\\d+)p?', 'i'); + const lang = RegExp(pref.get('lang'), 'i'); + const type = RegExp(pref.get('type'), 'i'); + const res = RegExp(getres.exec(pref.get('res'))[1], 'i'); + const host = RegExp(pref.get('host'), 'i'); + + let getScore = (q, hasRes) => { + const bLang = lang.test(q), bType = type.test(q), bRes = res.test(q), bHost = host.test(q); + if (hasRes) { + return bLang * (8 + bType * (4 + bRes * (2 + bHost * 1))); + } else { + return bLang * (8 + bType * (4 + (bHost * 3))); + } + } + + return videos.sort((a, b) => { + const resA = getres.exec(a.quality)?.[1]; + const resB = getres.exec(b.quality)?.[1]; + const score = getScore(b.quality, resB) - getScore(a.quality, resA); + + if (score) return score; + + const qA = resA ? a.quality.replace(resA, (9999 - parseInt(resA)).toString()) : a.quality; + const qB = resA ? b.quality.replace(resB, (9999 - parseInt(resB)).toString()) : b.quality; + + return qA.localeCompare(qB); + }); +} + +Uint8Array.fromBase64 = function (b64) { + // [00,01,02,03,04,05,06,07,08,\t,\n,0b,0c,\r,0e,0f,10,11,12,13,14,15,16,17,18,19,1a,1b,1c,1d,1e,1f,' ', !, ", #, $, %, &, ', (, ), *, +,',', -, ., /, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, :, ;, <,'=', >, ?, @,A,B,C,D,E,F,G,H,I,J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, [, \, ], ^, _, `, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, {, |, }, ~,7f] + const m = [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, 62, -1, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, 63, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1] + let data = [], val = 0, bits = -8 + for (const c of b64) { + let n = m[c.charCodeAt(0)]; + if (n == -1) break; + val = (val << 6) + n; + bits += 6; + for (; bits >= 0; bits -= 8) + data.push((val >> bits) & 0xFF); + } + return new Uint8Array(data); +} + +Uint8Array.prototype.toBase64 = function () { + const m = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' + let b64 = '', val = 0, bits = -6; + for (const b of this) { + val = (val << 8) + b; + bits += 8; + while (bits >= 0) { + b64 += m[(val >> bits) & 0x3F]; + bits -= 6; + } + } + if (bits > -6) + b64 += m[(val << -bits) & 0x3F]; + return b64 + ['', '', '==', '='][b64.length % 4]; +} + +Uint8Array.prototype.decode = function (encoding = 'utf-8') { + encoding = encoding.toLowerCase(); + if (encoding == 'utf-8') { + return decodeUTF8(this); + } + return null; +} + +String.prototype.encode = function (encoding = 'utf-8') { + encoding = encoding.toLowerCase(); + if (encoding == 'utf-8') { + return encodeUTF8(this); + } + return null; +} + +String.decode = function (data, encoding = 'utf-8') { + encoding = encoding.toLowerCase(); + if (encoding == 'utf-8') { + return decodeUTF8(data); + } + return null; +} + +function decodeUTF8(data) { + const codes = []; + for (let i = 0; i < data.length;) { + const c = data[i++]; + const len = (c > 0xBF) + (c > 0xDF) + (c > 0xEF); + let val = c & (0xFF >> (len + 1)); + for (const end = i + len; i < end; i++) { + val = (val << 6) + (data[i] & 0x3F); + } + codes.push(val); + } + return String.fromCharCode(...codes); +} + +function encodeUTF8(string) { + const data = []; + for (const c of string) { + const code = c.charCodeAt(0); + const len = (code > 0x7F) + (code > 0x7FF) + (code > 0xFFFF); + let bits = len * 6; + + data.push((len ? ~(0xFF >> len + 1) : (0)) + (code >> bits)); + while (bits > 0) { + data.push(0x80 + ((code >> (bits -= 6)) & 0x3F)) + } + } + return new Uint8Array(data); +} + +function getRandomString(length) { + const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"; + let result = ""; + for (let i = 0; i < length; i++) { + const random = Math.floor(Math.random() * 61); + result += chars[random]; + } + return result; +} + +function absUrl(url, base) { + if (url.search(/^\w+:\/\//) == 0) { + return url; + } else if (url.startsWith('/')) { + return base.slice(0, base.lastIndexOf('/')) + url; + } else { + return base.slice(0, base.lastIndexOf('/') + 1) + url; + } +} \ No newline at end of file diff --git a/javascript/anime/src/es/tioanime.js b/javascript/anime/src/es/tioanime.js new file mode 100644 index 00000000..729e30a2 --- /dev/null +++ b/javascript/anime/src/es/tioanime.js @@ -0,0 +1,717 @@ +const mangayomiSources = [{ + "name": "TioAnime", + "lang": "es", + "baseUrl": "https://tioanime.com", + "apiUrl": "", + "iconUrl": "https://tioanime.com/assets/img/tio_fb.jpg", + "typeSource": "single", + "isManga": false, + "version": "0.1.0", + "dateFormat": "", + "dateFormatLocale": "", + "pkgPath": "anime/src/es/tioanime.js" +}]; + +class DefaultExtension extends MProvider { + constructor () { + super(); + this.client = new Client(); + } + getHeaders(url) { + throw new Error("getHeaders not implemented"); + } + async parseAnimeList(url) { + const res = await this.client.get(url); + const doc = new Document(res.body); + const elements = doc.select("ul.animes > li"); + const list = []; + + for (const element of elements) { + const name = element.selectFirst(".title").text; + const imageUrl = this.source.baseUrl + element.selectFirst("img").getSrc; + const link = element.selectFirst("a").getHref; + list.push({ name, imageUrl, link }); + } + const hasNextPage = doc.selectFirst("li.page-item.active + li").text == "»"; + return { "list": list, "hasNextPage": hasNextPage }; + } + statusFromString(status) { + return { + "En emision": 0, + "Finalizado": 1 + }[status] ?? 5; + } + async getPopular(page) { + return this.parseAnimeList(`${this.source.baseUrl}/directorio?p=${page}`); + } + async getLatestUpdates(page) { + return this.parseAnimeList(`${this.source.baseUrl}/directorio?p=${page}`); + } + async search(query, page, filters) { + query = query.trim().replaceAll(/\ +/g, "+"); + let url = `${this.source.baseUrl}/directorio?q=${query}&p=${page}`; + return this.parseAnimeList(url); + } + async getDetail(url) { + const res = await this.client.get(this.source.baseUrl + url); + const doc = new Document(res.body); + const detail = {}; + + const info = doc.selectFirst("article.anime-single"); + const episodeCount = parseInt(/episodes = \[(\d+)/.exec(doc.select("script").pop().innerHtml)[1]); + const episodeUrl = url.replace("/anime", "/ver") + "-"; + + detail.name = info.selectFirst("h1").text; + detail.status = this.statusFromString(info.selectFirst("a").text); + detail.imageUrl = this.source.baseUrl + info.selectFirst("img").getSrc; + detail.description = info.selectFirst("p.sinopsis").text.trim(); + detail.genre = info.select("p.genres a").map(e => e.text.trim()); + detail.episodes = []; + for (let i = 0; i < episodeCount; i++) { + const name = `Episodio ${i + 1}`; + const url = episodeUrl + (i + 1); + detail.episodes.push({ name, url }); + } + detail.episodes.reverse(); + return detail; + } + // For anime episode video list + async getVideoList(url) { + const res = await this.client.get(this.source.baseUrl + url); + const doc = new Document(res.body); + let promises = []; + const videos = []; + + // get type + const type = /\blatino\b/i.test(url) ? 'Dub' : 'Sub'; + + // get links + const raws = [...doc.select("script").pop().innerHtml.matchAll(/\[".*?\]/g)]; + + // extract videos + for (const raw of raws) { + const data = JSON.parse(raw[0]); + const host = data[0]; + const link = data[1]; + promises.push(extractAny(link, host.toLowerCase(), 'Español', type, host)); + } + for (const p of (await Promise.allSettled(promises))) { + if (p.status == 'fulfilled') { + videos.push.apply(videos, p.value); + } + } + return sortVideos(videos); + } + getFilterList() { + throw new Error("getFilterList not implemented"); + } + getSourcePreferences() { + return [ + { + key: 'lang', + listPreference: { + title: 'Preferred Language', + summary: 'If available, this language will be chosen by default. Priority = 0 (lower is better)', + valueIndex: 0, + entries: [ + 'Español' + ], + entryValues: [ + 'Español' + ] + } + }, + { + key: 'type', + listPreference: { + title: 'Preferred Type', + summary: 'If available, this type will be chosen by default. Priority = 1 (lower is better)', + valueIndex: 0, + entries: [ + 'Sub' + ], + entryValues: [ + 'Sub' + ] + } + }, + { + key: 'res', + listPreference: { + title: 'Preferred Resolution', + summary: 'If available, this resolution will be chosen by default. Priority = 2 (lower is better)', + valueIndex: 0, + entries: [ + '1080p', + '720p', + '480p' + ], + entryValues: [ + '1080p', + '720p', + '480p' + ] + } + }, + { + key: 'host', + listPreference: { + title: 'Preferred Hoster', + summary: 'If available, this hoster will be chosen by default. Priority = 3 (lower is better)', + valueIndex: 0, + entries: [ + 'Okru', + 'VidGuard', + 'Voe', + 'YourUpload' + ], + entryValues: [ + 'Okru', + 'VidGuard', + 'Voe', + 'YourUpload' + ] + } + } + ]; + } +} + +/*************************************************************************************************** +* +* mangayomi-js-helpers v1.0 +* +* # Video Extractors +* - vidGuardExtractor +* - doodExtractor +* - vidozaExtractor +* - okruExtractor +* - amazonExtractor +* - vidHideExtractor +* - filemoonExtractor +* - mixdropExtractor +* - burstcloudExtractor (not working, see description) +* +* # Video Extractor Format Wrappers +* - streamWishExtractor +* - voeExtractor +* - mp4UploadExtractor +* - yourUploadExtractor +* - streamTapeExtractor +* - sendVidExtractor +* +* # Video Extractor helpers +* - extractAny +* +* # Playlist Extractors +* - m3u8Extractor +* - jwplayerExtractor +* +* # Extension +* - sortVideos() +* +* # Encoding/Decoding +* - Uint8Array.fromBase64() +* - Uint8Array.prototype.toBase64() +* - Uint8Array.prototype.decode() +* - String.prototype.encode() +* - String.prototype.decode() +* +* # Random string +* - getRandomString() +* +* # URL +* - absUrl() +* +***************************************************************************************************/ + +async function vidGuardExtractor(url) { + // get html + const res = await new Client().get(url); + const doc = new Document(res.body); + const script = doc.selectFirst('script:contains(eval)'); + + // eval code + const code = script.text; + eval?.('var window = {};'); + eval?.(code); + const playlistUrl = globalThis.window.svg.stream; + + // decode sig + const encoded = playlistUrl.match(/sig=(.*?)&/)[1]; + const charCodes = []; + + for (let i = 0; i < encoded.length; i += 2) { + charCodes.push(parseInt(encoded.slice(i, i + 2), 16) ^ 2); + } + + let decoded = Uint8Array.fromBase64( + String.fromCharCode(...charCodes)) + .slice(5, -5) + .reverse(); + + for (let i = 0; i < decoded.length; i += 2) { + let tmp = decoded[i]; + decoded[i] = decoded[i + 1]; + decoded[i + 1] = tmp; + } + + decoded = decoded.decode(); + return await m3u8Extractor(playlistUrl.replace(encoded, decoded), null); +} + +async function doodExtractor(url) { + const dartClient = new Client({ 'useDartHttpClient': true, "followRedirects": false }); + let response = await dartClient.get(url); + while ("location" in response.headers) { + response = await dartClient.get(response.headers.location); + } + const newUrl = response.request.url; + const doodhost = newUrl.match(/https:\/\/(.*?)\//, newUrl)[0].slice(8, -1); + const md5 = response.body.match(/'\/pass_md5\/(.*?)',/, newUrl)[0].slice(11, -2); + const token = md5.substring(md5.lastIndexOf("/") + 1); + const expiry = new Date().valueOf(); + const randomString = getRandomString(10); + + response = await new Client().get(`https://${doodhost}/pass_md5/${md5}`, { "Referer": newUrl }); + const videoUrl = `${response.body}${randomString}?token=${token}&expiry=${expiry}`; + const headers = { "User-Agent": "Mangayomi", "Referer": doodhost }; + return [{ url: videoUrl, originalUrl: videoUrl, headers: headers, quality: '' }]; +} + +async function vidozaExtractor(url) { + let response = await new Client({ 'useDartHttpClient': true, "followRedirects": true }).get(url); + const videoUrl = response.body.match(/https:\/\/\S*\.mp4/)[0]; + return [{ url: videoUrl, originalUrl: videoUrl, quality: '' }]; +} + +async function okruExtractor(url) { + const res = await new Client().get(url); + const doc = new Document(res.body); + const tag = doc.selectFirst('div[data-options]'); + const playlistUrl = tag.attr('data-options').match(/hlsManifestUrl.*?(h.*?id=\d+)/)[1].replaceAll('\\\\u0026', '&'); + return await m3u8Extractor(playlistUrl, null); +} + +async function amazonExtractor(url) { + const res = await new Client().get(url); + const doc = new Document(res.body); + const videoUrl = doc.selectFirst('video').getSrc; + return videoUrl ? [{ url: videoUrl, originalUrl: videoUrl, headers: null, quality: '' }] : []; +} + +async function vidHideExtractor(url) { + const res = await new Client().get(url); + return await jwplayerExtractor(res.body); +} + +async function filemoonExtractor(url) { + let res = await new Client().get(url); + const src = res.body.match(/iframe src="(.*?)"/)?.[1]; + if (src) { + res = await new Client().get(src, { + 'Referer': url, + 'Accept-Language': 'de,en-US;q=0.7,en;q=0.3' + }); + } + return await jwplayerExtractor(res.body); +} + +async function mixdropExtractor(url) { + headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36'}; + let res = await new Client({ 'useDartHttpClient': true, "followRedirects": false }).get(url, headers); + while ("location" in res.headers) { + res = await new Client({ 'useDartHttpClient': true, "followRedirects": false }).get(res.headers.location, headers); + } + const newUrl = res.request.url; + let doc = new Document(res.body); + + const code = doc.selectFirst('script:contains(MDCore):contains(eval)').text; + const unpacked = unpackJs(code); + let videoUrl = unpacked.match(/wurl="(.*?)"/)?.[1]; + + if (!videoUrl) return []; + + videoUrl = 'https:' + videoUrl; + headers.referer = newUrl; + + return [{url: videoUrl, originalUrl: videoUrl, quality: '', headers: headers}]; +} + +/** Does not work: Client always sets 'charset=utf-8' in Content-Type. */ +async function burstcloudExtractor(url) { + let client = new Client(); + let res = await client.get(url); + + const id = res.body.match(/data-file-id="(.*?)"/)[1]; + const headers = { + "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", + 'Referer': url, + }; + const data = { + 'fileId': id + }; + + res = await client.post(`https://www.burstcloud.co/file/play-request/`, headers, data); + const videoUrl = res.body.match(/cdnUrl":"(.*?)"/)[1]; + return [{ + url: videoUrl, + originalUrl: videoUrl, + headers: { 'Referer': url.match(/.*?:\/\/.*?\//) }, + quality: '' + }]; +} + +_streamWishExtractor = streamWishExtractor; +streamWishExtractor = async (url) => { + return (await _streamWishExtractor(url, '')).map(v => { + v.quality = v.quality.slice(3, -1); + return v; + }); +} + +_voeExtractor = voeExtractor; +voeExtractor = async (url) => { + return (await _voeExtractor(url, '')).map(v => { + v.quality = v.quality.replace(/Voe: (\d+p?)/i, '$1'); + return v; + }); +} + +_mp4UploadExtractor = mp4UploadExtractor; +mp4UploadExtractor = async (url) => { + return (await _mp4UploadExtractor(url)).map(v => { + v.quality = v.quality.match(/\d+p/)?.[0] ?? ''; + return v; + }); +} + +_yourUploadExtractor = yourUploadExtractor; +yourUploadExtractor = async (url) => { + return (await _yourUploadExtractor(url)) + .filter(v => !v.url.includes('/novideo')) + .map(v => { + v.quality = ''; + return v; + }); +} + +_streamTapeExtractor = streamTapeExtractor; +streamTapeExtractor = async (url) => { + return await _streamTapeExtractor(url, ''); +} + +_sendVidExtractor = sendVidExtractor; +sendVidExtractor = async (url) => { + let res = await new Client().get(url); + var videoUrl, quality; + try { + videoUrl = res.body.match(/og:video" content="(.*?\.mp4.*?)"/)[1]; + quality = res.body.match(/og:video:height" content="(.*?)"/)?.[1]; + quality = quality ? quality + 'p' : ''; + } catch (error) { + + } + if (!videoUrl) { + return _sendVidExtractor(url, null, ''); + } + return [{url: videoUrl, originalUrl: videoUrl, quality: quality, headers: null}]; +} + +async function extractAny(url, method, lang, type, host) { + const m = extractAny.methods[method]; + return (!m) ? [] : (await m(url)).map(v => { + v.quality = v.quality ? `${lang} ${type} ${v.quality} ${host}` : `${lang} ${type} ${host}`; + return v; + }); +}; + +extractAny.methods = { + 'amazon': amazonExtractor, + 'burstcloud': burstcloudExtractor, + 'doodstream': doodExtractor, + 'filemoon': filemoonExtractor, + 'mixdrop': mixdropExtractor, + 'mp4upload': mp4UploadExtractor, + 'okru': okruExtractor, + 'sendvid': sendVidExtractor, + 'streamtape': streamTapeExtractor, + 'streamwish': vidHideExtractor, + 'vidguard': vidGuardExtractor, + 'vidhide': vidHideExtractor, + 'vidoza': vidozaExtractor, + 'voe': voeExtractor, + 'yourupload': yourUploadExtractor +}; + +async function m3u8Extractor(url, headers = null) { + // https://developer.apple.com/documentation/http-live-streaming/creating-a-multivariant-playlist + // https://developer.apple.com/documentation/http-live-streaming/adding-alternate-media-to-a-playlist + // define attribute lists + const streamAttributes = [ + ['avg_bandwidth', /AVERAGE-BANDWIDTH=(\d+)/], + ['bandwidth', /\bBANDWIDTH=(\d+)/], + ['resolution', /\bRESOLUTION=([\dx]+)/], + ['framerate', /\bFRAME-RATE=([\d\.]+)/], + ['codecs', /\bCODECS="(.*?)"/], + ['video', /\bVIDEO="(.*?)"/], + ['audio', /\bAUDIO="(.*?)"/], + ['subtitles', /\bSUBTITLES="(.*?)"/], + ['captions', /\bCLOSED-CAPTIONS="(.*?)"/] + ]; + const mediaAttributes = [ + ['type', /\bTYPE=([\w-]*)/], + ['group', /\bGROUP-ID="(.*?)"/], + ['lang', /\bLANGUAGE="(.*?)"/], + ['name', /\bNAME="(.*?)"/], + ['autoselect', /\bAUTOSELECT=(\w*)/], + ['default', /\bDEFAULT=(\w*)/], + ['instream-id', /\bINSTREAM-ID="(.*?)"/], + ['assoc-lang', /\bASSOC-LANGUAGE="(.*?)"/], + ['channels', /\bCHANNELS="(.*?)"/], + ['uri', /\bURI="(.*?)"/] + ]; + const streams = [], videos = {}, audios = {}, subtitles = {}, captions = {}; + const dict = { 'VIDEO': videos, 'AUDIO': audios, 'SUBTITLES': subtitles, 'CLOSED-CAPTIONS': captions }; + + const res = await new Client().get(url, headers); + const text = res.body; + + // collect media + for (const match of text.matchAll(/#EXT-X-MEDIA:(.*)/g)) { + const info = match[1], medium = {}; + for (const attr of mediaAttributes) { + const m = info.match(attr[1]); + medium[attr[0]] = m ? m[1] : null; + } + + const type = medium.type; + delete medium.type; + const group = medium.group; + delete medium.group; + + const typedict = dict[type]; + if (typedict[group] == undefined) + typedict[group] = []; + typedict[group].push(medium); + } + + // collect streams + for (const match of text.matchAll(/#EXT-X-STREAM-INF:(.*)\s*(.*)/g)) { + const info = match[1], stream = { 'url': absUrl(match[2], url) }; + for (const attr of streamAttributes) { + const m = info.match(attr[1]); + stream[attr[0]] = m ? m[1] : null; + } + + stream['video'] = videos[stream.video] ?? null; + stream['audio'] = audios[stream.audio] ?? null; + stream['subtitles'] = subtitles[stream.subtitles] ?? null; + stream['captions'] = captions[stream.captions] ?? null; + + // format resolution or bandwidth + let quality; + if (stream.resolution) { + quality = stream.resolution.match(/x(\d+)/)[1] + 'p'; + } else { + quality = (parseInt(stream.avg_bandwidth ?? stream.bandwidth) / 1000000) + 'Mb/s' + } + + // add stream to list + const subs = stream.subtitles?.map((s) => { + return { file: s.uri, label: s.name }; + }); + const auds = stream.audio?.map((a) => { + return { file: a.uri, label: a.name }; + }); + streams.push({ + url: stream.url, + quality: quality, + originalUrl: stream.url, + headers: headers, + subtitles: subs ?? null, + audios: auds ?? null + }); + } + return streams.length ? streams : [{ + url: url, + quality: '', + originalUrl: url, + headers: headers, + subtitles: null, + audios: null + }]; +} + +async function jwplayerExtractor(text, headers) { + // https://docs.jwplayer.com/players/reference/playlists + const getsetup = /setup\(({[\s\S]*?})\)/; + const getsources = /sources:\s*(\[[\s\S]*?\])/; + const gettracks = /tracks:\s*(\[[\s\S]*?\])/; + const unpacked = unpackJs(text); + + const videos = [], subtitles = []; + + const data = eval('(' + (getsetup.exec(text) || getsetup.exec(unpacked))?.[1] + ')'); + + if (data){ + var sources = data.sources; + var tracks = data.tracks; + } else { + var sources = eval('(' + (getsources.exec(text) || getsources.exec(unpacked))?.[1] + ')'); + var tracks = eval('(' + (gettracks.exec(text) || gettracks.exec(unpacked))?.[1] + ')'); + } + for (t of tracks) { + if (t.type == "captions") { + subtitles.push({file: t.file, label: t.label}); + } + } + for (s of sources) { + if (s.file.includes('master.m3u8')) { + videos.push(...(await m3u8Extractor(s.file, headers))); + } else if (s.file.includes('.mpd')) { + + } else { + videos.push({url: s.file, originalUrl: s.file, quality: '', headers: headers}); + } + } + return videos.map(v => { + v.subtitles = subtitles; + return v; + }); +} + +function sortVideos(videos) { + const pref = new SharedPreferences(); + const getres = RegExp('(\\d+)p?', 'i'); + const lang = RegExp(pref.get('lang'), 'i'); + const type = RegExp(pref.get('type'), 'i'); + const res = RegExp(getres.exec(pref.get('res'))[1], 'i'); + const host = RegExp(pref.get('host'), 'i'); + + let getScore = (q, hasRes) => { + const bLang = lang.test(q), bType = type.test(q), bRes = res.test(q), bHost = host.test(q); + if (hasRes) { + return bLang * (8 + bType * (4 + bRes * (2 + bHost * 1))); + } else { + return bLang * (8 + bType * (4 + (bHost * 3))); + } + } + + return videos.sort((a, b) => { + const resA = getres.exec(a.quality)?.[1]; + const resB = getres.exec(b.quality)?.[1]; + const score = getScore(b.quality, resB) - getScore(a.quality, resA); + + if (score) return score; + + const qA = resA ? a.quality.replace(resA, (9999 - parseInt(resA)).toString()) : a.quality; + const qB = resA ? b.quality.replace(resB, (9999 - parseInt(resB)).toString()) : b.quality; + + return qA.localeCompare(qB); + }); +} + +Uint8Array.fromBase64 = function (b64) { + // [00,01,02,03,04,05,06,07,08,\t,\n,0b,0c,\r,0e,0f,10,11,12,13,14,15,16,17,18,19,1a,1b,1c,1d,1e,1f,' ', !, ", #, $, %, &, ', (, ), *, +,',', -, ., /, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, :, ;, <,'=', >, ?, @,A,B,C,D,E,F,G,H,I,J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, [, \, ], ^, _, `, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, {, |, }, ~,7f] + const m = [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, 62, -1, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, 63, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1] + let data = [], val = 0, bits = -8 + for (const c of b64) { + let n = m[c.charCodeAt(0)]; + if (n == -1) break; + val = (val << 6) + n; + bits += 6; + for (; bits >= 0; bits -= 8) + data.push((val >> bits) & 0xFF); + } + return new Uint8Array(data); +} + +Uint8Array.prototype.toBase64 = function () { + const m = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' + let b64 = '', val = 0, bits = -6; + for (const b of this) { + val = (val << 8) + b; + bits += 8; + while (bits >= 0) { + b64 += m[(val >> bits) & 0x3F]; + bits -= 6; + } + } + if (bits > -6) + b64 += m[(val << -bits) & 0x3F]; + return b64 + ['', '', '==', '='][b64.length % 4]; +} + +Uint8Array.prototype.decode = function (encoding = 'utf-8') { + encoding = encoding.toLowerCase(); + if (encoding == 'utf-8') { + return decodeUTF8(this); + } + return null; +} + +String.prototype.encode = function (encoding = 'utf-8') { + encoding = encoding.toLowerCase(); + if (encoding == 'utf-8') { + return encodeUTF8(this); + } + return null; +} + +String.decode = function (data, encoding = 'utf-8') { + encoding = encoding.toLowerCase(); + if (encoding == 'utf-8') { + return decodeUTF8(data); + } + return null; +} + +function decodeUTF8(data) { + const codes = []; + for (let i = 0; i < data.length;) { + const c = data[i++]; + const len = (c > 0xBF) + (c > 0xDF) + (c > 0xEF); + let val = c & (0xFF >> (len + 1)); + for (const end = i + len; i < end; i++) { + val = (val << 6) + (data[i] & 0x3F); + } + codes.push(val); + } + return String.fromCharCode(...codes); +} + +function encodeUTF8(string) { + const data = []; + for (const c of string) { + const code = c.charCodeAt(0); + const len = (code > 0x7F) + (code > 0x7FF) + (code > 0xFFFF); + let bits = len * 6; + + data.push((len ? ~(0xFF >> len + 1) : (0)) + (code >> bits)); + while (bits > 0) { + data.push(0x80 + ((code >> (bits -= 6)) & 0x3F)) + } + } + return new Uint8Array(data); +} + +function getRandomString(length) { + const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"; + let result = ""; + for (let i = 0; i < length; i++) { + const random = Math.floor(Math.random() * 61); + result += chars[random]; + } + return result; +} + +function absUrl(url, base) { + if (url.search(/^\w+:\/\//) == 0) { + return url; + } else if (url.startsWith('/')) { + return base.slice(0, base.lastIndexOf('/')) + url; + } else { + return base.slice(0, base.lastIndexOf('/') + 1) + url; + } +} \ No newline at end of file diff --git a/javascript/anime/src/zh/wogg.js b/javascript/anime/src/zh/wogg.js new file mode 100644 index 00000000..20112134 --- /dev/null +++ b/javascript/anime/src/zh/wogg.js @@ -0,0 +1,218 @@ +const mangayomiSources = [{ + "name": "玩偶哥哥", + "lang": "zh", + "baseUrl": "https://www.wogg.net", + "apiUrl": "", + "iconUrl": "https://imgsrc.baidu.com/forum/pic/item/4b90f603738da977d5da660af651f8198618e31f.jpg", + "typeSource": "single", + "isManga": false, + "isNsfw": false, + "version": "0.0.2", + "dateFormat": "", + "dateFormatLocale": "", + "pkgPath": "anime/src/zh/wogg.js" +}]; +class DefaultExtension extends MProvider { + patternQuark = /(https:\/\/pan\.quark\.cn\/s\/[^"]+)/; + patternUc = /(https:\/\/drive\.uc\.cn\/s\/[^"]+)/; + getHeaders(url) { + throw new Error("getHeaders not implemented"); + } + async getPopular(page) { + const baseUrl = new SharedPreferences().get("url"); + const response = await new Client({ 'useDartHttpClient': true }).get(baseUrl, { "Referer": baseUrl }); + const elements = new Document(response.body).select("div.module-item"); + const list = []; + for (const element of elements) { + let oneA = element.selectFirst('.module-item-cover .module-item-pic a'); + const name = oneA.attr("title"); + const imageUrl = element.selectFirst(".module-item-cover .module-item-pic img").attr("data-src"); + const link = oneA.attr("href"); + list.push({ name, imageUrl, link }); + } + return { + list: list, + hasNextPage: false + } + } + async getLatestUpdates(page) { + const baseUrl = new SharedPreferences().get("url"); + const response = await new Client({ 'useDartHttpClient': true }).get(baseUrl + `/vodshow/1--------${page}---.html`, { "Referer": baseUrl }); + const elements = new Document(response.body).select("div.module-item"); + const list = []; + for (const element of elements) { + let oneA = element.selectFirst('.module-item-cover .module-item-pic a'); + const name = oneA.attr("title"); + const imageUrl = element.selectFirst(".module-item-cover .module-item-pic img").attr("data-src"); + const link = oneA.attr("href"); + list.push({ name, imageUrl, link }); + } + return { + list: list, + hasNextPage: true + } + } + async search(query, page, filters) { + const baseUrl = new SharedPreferences().get("url"); + if (query == "") { + var categories; + for (const filter of filters) { + if (filter["type"] == "categories") { + categories = filter["values"][filter["state"]]["value"]; + } + } + const response = await new Client({ 'useDartHttpClient': true }).get(baseUrl + `/vodshow/${categories}--------${page}---.html`, { "Referer": baseUrl }); + const elements = new Document(response.body).select("div.module-item"); + const list = []; + for (const element of elements) { + let oneA = element.selectFirst('.module-item-cover .module-item-pic a'); + const name = oneA.attr("title"); + const imageUrl = element.selectFirst(".module-item-cover .module-item-pic img").attr("data-src"); + const link = oneA.attr("href"); + list.push({ name, imageUrl, link }); + } + return { + list: list, + hasNextPage: true + } + } else { + const response = await new Client({ 'useDartHttpClient': true }).get(baseUrl + `/vodsearch/${query}----------${page}---.html`, { "Referer": baseUrl }); + const elements = new Document(response.body).select(".module-search-item"); + const list = []; + for (const element of elements) { + let oneA = element.selectFirst('.video-info .video-info-header a'); + const name = oneA.attr("title"); + const imageUrl = element.selectFirst(".video-cover .module-item-cover .module-item-pic img").attr("data-src"); + const link = oneA.attr("href"); + list.push({ name, imageUrl, link }); + } + return { + list: list, + hasNextPage: true + } + } + } + async getDetail(url) { + const baseUrl = new SharedPreferences().get("url"); + const response = await new Client({ 'useDartHttpClient': true }).get(baseUrl + url, { "Referer": baseUrl }); + const document = new Document(response.body); + const imageUrl = document.selectFirst("div.video-cover .module-item-cover .module-item-pic img").attr("data-src"); + const name = document.selectFirst("div.video-info .video-info-header h1").text; + const description = document.selectFirst("div.video-info .video-info-content").text.replace("[收起部分]", "").replace("[展开全部]", ""); + const type_name = "电影"; + let quark_share_url_list = [], uc_share_url_list = [] + const share_url_list = document.select("div.module-row-one .module-row-info") + .map(e => { + const url = e.selectFirst(".module-row-title p").text; + const quarkMatches = url.match(this.patternQuark); + + if (quarkMatches && quarkMatches[1]) { + quark_share_url_list.push(quarkMatches[1]); + } + const ucMatches = url.match(this.patternUc); + if (ucMatches && ucMatches[1]) { + uc_share_url_list.push(ucMatches[1]); + } + return null; + }) + .filter(url => url !== null); + let quark_episodes = await quarkFilesExtractor(quark_share_url_list, new SharedPreferences().get("quarkCookie")); + let uc_episodes = await ucFilesExtractor(uc_share_url_list, new SharedPreferences().get("ucCookie")); + let episodes = [...quark_episodes, ...uc_episodes]; + return { + name, imageUrl, description, episodes + }; + } + // For anime episode video list + async getVideoList(url) { + const videos = []; + const parts = url.split('++'); + const type = parts[0].toLowerCase(); + + let vids; + if (type === 'quark') { + let cookie = new SharedPreferences().get("quarkCookie"); + if (cookie == "") { + throw new Error("请先在本扩展设置中填写夸克Cookies, 需要夸克VIP账号 \n Please fill in the Quark Cookies in this extension settings first, you need a Quark VIP account"); + } else { + vids = await quarkVideosExtractor(url, cookie); + } + } else if (type === 'uc') { + let cookie = new SharedPreferences().get("ucCookie"); + if (cookie == "") { + throw new Error("请先在本扩展设置中填写UC云盘Cookies \n Please fill in the UC Cloud Cookies in this extension settings first"); + } else { + vids = await ucVideosExtractor(url, cookie); + } + } else { + throw new Error("不支持的链接类型"); + } + + for (const vid of vids) { + videos.push(vid); + } + return videos; + } + getFilterList() { + return [{ + type: "categories", + name: "影片類型", + type_name: "SelectFilter", + values: [ + { type_name: "SelectOption", value: "1", name: "电影" }, + { type_name: "SelectOption", value: "2", name: "剧集" }, + { type_name: "SelectOption", value: "3", name: "动漫" }, + { type_name: "SelectOption", value: "4", name: "综艺" }, + { type_name: "SelectOption", value: "5", name: "音乐" }, + { type_name: "SelectOption", value: "6", name: "短剧" }, + { type_name: "SelectOption", value: "44", name: "臻彩视界" } + ] + }]; + } + getSourcePreferences() { + return [ + { + "key": "quarkCookie", + "editTextPreference": { + "title": "夸克Cookies", + "summary": "填写获取到的夸克Cookies", + "value": "", + "dialogTitle": "Cookies", + "dialogMessage": "", + } + }, + { + "key": "ucCookie", + "editTextPreference": { + "title": "UC云盘Cookies", + "summary": "填写获取到的UC云盘Cookies", + "value": "", + "dialogTitle": "Cookies", + "dialogMessage": "", + } + }, + { + "key": "url", + "listPreference": { + "title": "Website Url", + "summary": "", + "valueIndex": 0, + "entries": [ + "wogg.net", + "wogg.xxooo.cf", + "wogg.888484.xyz", + "wogg.bf", + "wogg.333232.xyz" + ], + "entryValues": [ + "https://www.wogg.net", + "https://wogg.xxooo.cf", + "https://wogg.888484.xyz", + "https://www.wogg.bf", + "https://wogg.333232.xyz" + ], + } + } + ]; + } +} diff --git a/javascript/anime/src/zh/yydsys.js b/javascript/anime/src/zh/yydsys.js new file mode 100644 index 00000000..bcfc74f7 --- /dev/null +++ b/javascript/anime/src/zh/yydsys.js @@ -0,0 +1,211 @@ +const mangayomiSources = [{ + "name": "多多影音", + "lang": "zh", + "baseUrl": "https://tv.yydsys.top", + "apiUrl": "", + "iconUrl": "https://tv.yydsys.top/template/DYXS2/static/picture/logo.png", + "typeSource": "single", + "isManga": false, + "isNsfw": false, + "version": "0.0.2", + "dateFormat": "", + "dateFormatLocale": "", + "pkgPath": "anime/src/zh/yydsys.js" +}]; +class DefaultExtension extends MProvider { + patternQuark = /(https:\/\/pan\.quark\.cn\/s\/[^"]+)/; + patternUc = /(https:\/\/drive\.uc\.cn\/s\/[^"]+)/; + getHeaders(url) { + throw new Error("getHeaders not implemented"); + } + async getPopular(page) { + const baseUrl = new SharedPreferences().get("url"); + const response = await new Client({ 'useDartHttpClient': true }).get(baseUrl, { "Referer": baseUrl }); + const elements = new Document(response.body).select("div.module-item"); + const list = []; + for (const element of elements) { + let oneA = element.selectFirst('.module-item-cover .module-item-pic a'); + const name = oneA.attr("title"); + const imageUrl = element.selectFirst(".module-item-cover .module-item-pic img").attr("data-src"); + const link = oneA.attr("href"); + list.push({ name, imageUrl, link }); + } + return { + list: list, + hasNextPage: false + } + } + async getLatestUpdates(page) { + const baseUrl = new SharedPreferences().get("url"); + const response = await new Client({ 'useDartHttpClient': true }).get(baseUrl + `/index.php/vod/show/id/1/page/${page}.html`, { "Referer": baseUrl }); + const elements = new Document(response.body).select("div.module-item"); + const list = []; + for (const element of elements) { + let oneA = element.selectFirst('.module-item-cover .module-item-pic a'); + const name = oneA.attr("title"); + const imageUrl = element.selectFirst(".module-item-cover .module-item-pic img").attr("data-src"); + const link = oneA.attr("href"); + list.push({ name, imageUrl, link }); + } + return { + list: list, + hasNextPage: true + } + } + async search(query, page, filters) { + const baseUrl = new SharedPreferences().get("url"); + if (query == "") { + var categories; + for (const filter of filters) { + if (filter["type"] == "categories") { + categories = filter["values"][filter["state"]]["value"]; + } + } + const response = await new Client({ 'useDartHttpClient': true }).get(baseUrl + `/index.php/vod/show/id/${categories}/page/${page}.html`, { "Referer": baseUrl }); + const elements = new Document(response.body).select("div.module-item"); + const list = []; + for (const element of elements) { + let oneA = element.selectFirst('.module-item-cover .module-item-pic a'); + const name = oneA.attr("title"); + const imageUrl = element.selectFirst(".module-item-cover .module-item-pic img").attr("data-src"); + const link = oneA.attr("href"); + list.push({ name, imageUrl, link }); + } + return { + list: list, + hasNextPage: true + } + } else { + const response = await new Client({ 'useDartHttpClient': true }).get(baseUrl + `/index.php/vod/search/page/${page}/wd/${query}.html`, { "Referer": baseUrl }); + const elements = new Document(response.body).select(".module-search-item"); + const list = []; + for (const element of elements) { + let oneA = element.selectFirst('.video-info .video-info-header a'); + const name = oneA.attr("title"); + const imageUrl = element.selectFirst(".video-cover .module-item-cover .module-item-pic img").attr("data-src"); + const link = oneA.attr("href"); + list.push({ name, imageUrl, link }); + } + return { + list: list, + hasNextPage: true + } + } + } + async getDetail(url) { + const baseUrl = new SharedPreferences().get("url"); + const response = await new Client({ 'useDartHttpClient': true }).get(baseUrl + url, { "Referer": baseUrl }); + const document = new Document(response.body); + const imageUrl = document.selectFirst("div.video-cover .module-item-cover .module-item-pic img").attr("data-src"); + const name = document.selectFirst("div.video-info .video-info-header h1").text; + const description = document.selectFirst("div.video-info .video-info-content").text.replace("[收起部分]", "").replace("[展开全部]", ""); + const type_name = "电影"; + let quark_share_url_list = [], uc_share_url_list = [] + const share_url_list = document.select("div.module-row-one .module-row-info") + .map(e => { + const url = e.selectFirst(".module-row-title p").text; + const quarkMatches = url.match(this.patternQuark); + + if (quarkMatches && quarkMatches[1]) { + quark_share_url_list.push(quarkMatches[1]); + } + const ucMatches = url.match(this.patternUc); + if (ucMatches && ucMatches[1]) { + uc_share_url_list.push(ucMatches[1]); + } + return null; + }) + .filter(url => url !== null); + let quark_episodes = await quarkFilesExtractor(quark_share_url_list, new SharedPreferences().get("quarkCookie")); + let uc_episodes = await ucFilesExtractor(uc_share_url_list, new SharedPreferences().get("ucCookie")); + let episodes = [...quark_episodes, ...uc_episodes]; + return { + name, imageUrl, description, episodes + }; + } + // For anime episode video list + async getVideoList(url) { + const videos = []; + const parts = url.split('++'); + const type = parts[0].toLowerCase(); + + let vids; + if (type === 'quark') { + let cookie = new SharedPreferences().get("quarkCookie"); + if (cookie == "") { + throw new Error("请先在本扩展设置中填写夸克Cookies, 需要夸克VIP账号 \n Please fill in the Quark Cookies in this extension settings first, you need a Quark VIP account"); + } else { + vids = await quarkVideosExtractor(url, cookie); + } + } else if (type === 'uc') { + let cookie = new SharedPreferences().get("ucCookie"); + if (cookie == "") { + throw new Error("请先在本扩展设置中填写UC云盘Cookies \n Please fill in the UC Cloud Cookies in this extension settings first"); + } else { + vids = await ucVideosExtractor(url, cookie); + } + } else { + throw new Error("不支持的链接类型"); + } + + for (const vid of vids) { + videos.push(vid); + } + return videos; + } + getFilterList() { + return [{ + type: "categories", + name: "影片類型", + type_name: "SelectFilter", + values: [ + { type_name: "SelectOption", value: "1", name: "电影" }, + { type_name: "SelectOption", value: "2", name: "剧集" }, + { type_name: "SelectOption", value: "4", name: "动漫" }, + { type_name: "SelectOption", value: "3", name: "综艺" }, + { type_name: "SelectOption", value: "5", name: "短剧" }, + { type_name: "SelectOption", value: "20", name: "纪录片" } + ] + }]; + } + getSourcePreferences() { + return [ + { + "key": "quarkCookie", + "editTextPreference": { + "title": "夸克Cookies", + "summary": "填写获取到的夸克Cookies", + "value": "", + "dialogTitle": "Cookies", + "dialogMessage": "", + } + }, + { + "key": "ucCookie", + "editTextPreference": { + "title": "UC云盘Cookies", + "summary": "填写获取到的UC云盘Cookies", + "value": "", + "dialogTitle": "Cookies", + "dialogMessage": "", + } + }, + { + "key": "url", + "listPreference": { + "title": "Website Url", + "summary": "", + "valueIndex": 0, + "entries": [ + "tv.yydsys.top", + "tv.yydsys.cc", + ], + "entryValues": [ + "https://tv.yydsys.top", + "https://tv.yydsys.cc", + ], + } + } + ]; + } +} diff --git a/javascript/icon/all.netflixmirror.png b/javascript/icon/all.netflixmirror.png new file mode 100644 index 0000000000000000000000000000000000000000..8731c37da0f58dafa70f2da194b6176b9911a467 GIT binary patch literal 13305 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 DfJv_& literal 0 HcmV?d00001 diff --git a/dart/manga/multisrc/mangareader/src/asurascans/icon.png b/javascript/icon/en.asurascans.png similarity index 100% rename from dart/manga/multisrc/mangareader/src/asurascans/icon.png rename to javascript/icon/en.asurascans.png diff --git a/javascript/manga/src/all/mangafire.js b/javascript/manga/src/all/mangafire.js new file mode 100644 index 00000000..c3befa4d --- /dev/null +++ b/javascript/manga/src/all/mangafire.js @@ -0,0 +1,526 @@ +const mangayomiSources = [{ + "name": "Mangafire", + "langs": ["en", "ja", "fr", "es", "es-la", "pt", "pt-br"], + "baseUrl": "https://mangafire.to", + "apiUrl": "", + "iconUrl": "https://mangafire.to/assets/sites/mangafire/favicon.png?v3", + "typeSource": "single", + "isManga": true, + "version": "0.1.2", + "dateFormat": "", + "dateFormatLocale": "", + "pkgPath": "manga/src/all/mangafire.js" +}]; + +class DefaultExtension extends MProvider { + mangaListFromPage(res) { + const doc = new Document(res.body); + const elements = doc.select("div.unit"); + const list = []; + + for (const element of elements){ + const name = element.selectFirst("div.info > a").text; + const imageUrl = element.selectFirst("img").getSrc; + const link = element.selectFirst("a").getHref; + list.push({name, imageUrl, link}); + } + + const hasNextPage = doc.selectFirst("li.page-item.active + li").text != ""; + return { "list": list, "hasNextPage": hasNextPage }; + } + + statusFromString(status){ + return { + "Releasing": 0, + "Completed": 1, + "On_Hiatus": 2, + "Discontinued": 3, + "Unrealeased": 4, + }[status] ?? 5; + } + + parseDate(date) { + const months = { + "jan": "01", "feb": "02", "mar": "03", "apr": "04", "may": "05", "jun": "06", "jul": "07", "aug": "08", "sep": "09", "oct": "10", "nov": "11", "dec": "12" + }; + date = date.toLowerCase().replace(",", "").split(" "); + + if (!(date[0] in months)) { + return String(new Date().valueOf()) + } + + date[0] = months[date[0]]; + date = [date[2], date[0], date[1]]; + date = date.join("-"); + return String(new Date(date).valueOf()); + } + + async getPopular(page) { + console.log(`${this.source.baseUrl}/filter?keyword=&language=${this.source.lang}&sort=trending&page=${page}`); + const res = await new Client().get(`${this.source.baseUrl}/filter?keyword=&language=${this.source.lang}&sort=trending&page=${page}`); + return this.mangaListFromPage(res); + } + + async getLatestUpdates(page) { + const res = await new Client().get(`${this.source.baseUrl}/filter?keyword=&language=${this.source.lang}&sort=recently_updated&page=${page}`); + return this.mangaListFromPage(res); + } + + async search(query, page, filters) { + query = query.trim().replaceAll(/\ +/g, "+"); + let url = `${this.source.baseUrl}/filter?keyword=${query}`; + + // Search sometimes failed because filters were empty. I experienced this mostly on android... + if (!filters || filters.length == 0) { + const res = await new Client().get(`${url}&language=${this.source.lang}&page=${page}`); + return this.mangaListFromPage(res); + } + + for (const filter of filters[0].state) { + if (filter.state == true) + url += `&type%5B%5D=${filter.value}`; + } + + for (const filter of filters[1].state) { + if (filter.state == 1) + url += `&genre%5B%5D=${filter.value}`; + else if (filter.state == 2) + url += `&genre%5B%5D=-${filter.value}`; + } + + // &genre_mode=and + + for (const filter of filters[2].state) { + if (filter.state == true) + url += `&status%5B%5D=${filter.value}`; + } + + url += `&language=${this.source.lang}`; + url += `&minchap=${filters[3].values[filters[3].state].value}`; + url += `&sort=${filters[4].values[filters[4].state].value}`; + + const res = await new Client().get(`${url}&page=${page}`); + return this.mangaListFromPage(res); + } + + async getDetail(url) { + // get urls + const id = url.split(".").pop(); + const infoUrl = this.source.baseUrl + url; + const chapterUrl = this.source.baseUrl + `/ajax/read/${id}/chapter/${this.source.lang}`; + const detail = {}; + + // request + const idRes = await new Client().get(chapterUrl); + const idDoc = new Document(JSON.parse(idRes.body).result.html); + const infoRes = await new Client().get(infoUrl); + const infoDoc = new Document(infoRes.body); + + // extract info + const info = infoDoc.selectFirst("div.info"); + const sidebar = infoDoc.select("aside.sidebar div.meta div"); + detail.name = info.selectFirst("h1").text; + detail.status = this.statusFromString(info.selectFirst("p").text); + detail.imageUrl = infoDoc.selectFirst("div.poster img").getSrc; + detail.author = sidebar[0].selectFirst("a").text; + detail.description = infoDoc.selectFirst("div#synopsis").text.trim(); + detail.genre = sidebar[2].select("a"); + detail.genre.forEach((e, i) => { + detail.genre[i] = e.text; + }); + + // get chapter + const ids = idDoc.select("a"); + const chapRes = await new Client().get(this.source.baseUrl + `/ajax/manga/${id}/chapter/${this.source.lang}`); + const chapDoc = new Document(JSON.parse(chapRes.body).result); + const chapElements = chapDoc.selectFirst(".scroll-sm").children; + detail.chapters = []; + for (let i = 0; i < ids.length; i++) { + const name = ids[i].text; + const id = ids[i].attr("data-id"); + const url = this.source.baseUrl + `/ajax/read/chapter/${id}`; + let dateUpload; + try { + dateUpload = this.parseDate(chapElements[i].selectFirst("span + span").text); + } catch (_) { + dateUpload = null + } + + detail.chapters.push({ name, url, dateUpload }); + } + return detail; + } + + // For manga chapter pages + async getPageList(url) { + const res = await new Client().get(url); + const data = JSON.parse(res.body); + const pages = []; + data.result.images.forEach(img => { + pages.push(img[0]); + }); + return pages; + } + + getFilterList() { + return [ + { + type_name: "GroupFilter", + name: "Type", + state: [ + { + type_name: "CheckBox", + name: "Manga", + value: "manga" + }, + { + type_name: "CheckBox", + name: "One-Shot", + value: "one_shot" + }, + { + type_name: "CheckBox", + name: "Doujinshi", + value: "doujinshi" + }, + { + type_name: "CheckBox", + name: "Novel", + value: "novel" + }, + { + type_name: "CheckBox", + name: "Manhwa", + value: "manhwa" + }, + { + type_name: "CheckBox", + name: "Manhua", + value: "manhua" + } + ] + }, + { + type_name: "GroupFilter", + name: "Genre", + state: [ + { + type_name: "TriState", + name: "Action", + value: "1" + }, + { + type_name: "TriState", + name: "Adventure", + value: "78" + }, + { + type_name: "TriState", + name: "Avant Garde", + value: "3" + }, + { + type_name: "TriState", + name: "Boys Love", + value: "4" + }, + { + type_name: "TriState", + name: "Comedy", + value: "5" + }, + { + type_name: "TriState", + name: "Demons", + value: "77" + }, + { + type_name: "TriState", + name: "Drama", + value: "6" + }, + { + type_name: "TriState", + name: "Ecchi", + value: "7" + }, + { + type_name: "TriState", + name: "Fantasy", + value: "79" + }, + { + type_name: "TriState", + name: "Girls Love", + value: "9" + }, + { + type_name: "TriState", + name: "Gourmet", + value: "10" + }, + { + type_name: "TriState", + name: "Harem", + value: "11" + }, + { + type_name: "TriState", + name: "Horror", + value: "530" + }, + { + type_name: "TriState", + name: "Isekai", + value: "13" + }, + { + type_name: "TriState", + name: "Iyashikei", + value: "531" + }, + { + type_name: "TriState", + name: "Josei", + value: "15" + }, + { + type_name: "TriState", + name: "Kids", + value: "532" + }, + { + type_name: "TriState", + name: "Magic", + value: "539" + }, + { + type_name: "TriState", + name: "Mahou Shoujo", + value: "533" + }, + { + type_name: "TriState", + name: "Martial Arts", + value: "534" + }, + { + type_name: "TriState", + name: "Mecha", + value: "19" + }, + { + type_name: "TriState", + name: "Military", + value: "535" + }, + { + type_name: "TriState", + name: "Music", + value: "21" + }, + { + type_name: "TriState", + name: "Mystery", + value: "22" + }, + { + type_name: "TriState", + name: "Parody", + value: "23" + }, + { + type_name: "TriState", + name: "Psychological", + value: "536" + }, + { + type_name: "TriState", + name: "Reverse Harem", + value: "25" + }, + { + type_name: "TriState", + name: "Romance", + value: "26" + }, + { + type_name: "TriState", + name: "School", + value: "73" + }, + { + type_name: "TriState", + name: "Sci-Fi", + value: "28" + }, + { + type_name: "TriState", + name: "Seinen", + value: "537" + }, + { + type_name: "TriState", + name: "Shoujo", + value: "30" + }, + { + type_name: "TriState", + name: "Shounen", + value: "31" + }, + { + type_name: "TriState", + name: "Slice of Life", + value: "538" + }, + { + type_name: "TriState", + name: "Space", + value: "33" + }, + { + type_name: "TriState", + name: "Sports", + value: "34" + }, + { + type_name: "TriState", + name: "SuperPower", + value: "75" + }, + { + type_name: "TriState", + name: "Supernatural", + value: "76" + }, + { + type_name: "TriState", + name: "Suspense", + value: "37" + }, + { + type_name: "TriState", + name: "Thriller", + value: "38" + }, + { + type_name: "TriState", + name: "Vampire", + value: "39" + } + ] + }, + { + type_name: "GroupFilter", + name: "Status", + state: [ + { + type_name: "CheckBox", + name: "Releasing", + value: "releasing" + }, + { + type_name: "CheckBox", + name: "Completed", + value: "completed" + }, + { + type_name: "CheckBox", + name: "Hiatus", + value: "on_hiatus" + }, + { + type_name: "CheckBox", + name: "Discontinued", + value: "discontinued" + }, + { + type_name: "CheckBox", + name: "Not Yet Published", + value: "info" + } + ] + }, + { + type_name: "SelectFilter", + type: "length", + name: "Length", + values: [ + { + type_name: "SelectOption", + name: ">= 1 chapters", + value: "1" + }, + { + type_name: "SelectOption", + name: ">= 3 chapters", + value: "3" + }, + { + type_name: "SelectOption", + name: ">= 5 chapters", + value: "5" + }, + { + type_name: "SelectOption", + name: ">= 10 chapters", + value: "10" + }, + { + type_name: "SelectOption", + name: ">= 20 chapters", + value: "20" + }, + { + type_name: "SelectOption", + name: ">= 30 chapters", + value: "30" + }, + { + type_name: "SelectOption", + name: ">= 50 chapters", + value: "50" + } + ], + }, + { + type_name: "SelectFilter", + type: "sort", + name: "Sort", + state: 3, + values: [ + { + type_name: "SelectOption", + name: "Added", + value: "recently_added" + }, + { + type_name: "SelectOption", + name: "Updated", + value: "recently_updated" + }, + { + type_name: "SelectOption", + name: "Trending", + value: "trending" + }, + { + type_name: "SelectOption", + name: "Most Relevance", + value: "most_relevance" + }, + { + type_name: "SelectOption", + name: "Name", + value: "title_az" + } + ], + } + ]; + } + + getSourcePreferences() { + throw new Error("getSourcePreferences not implemented"); + } +} diff --git a/javascript/manga/src/en/asurascans.js b/javascript/manga/src/en/asurascans.js new file mode 100644 index 00000000..a95af2d5 --- /dev/null +++ b/javascript/manga/src/en/asurascans.js @@ -0,0 +1,149 @@ +const mangayomiSources = [{ + "id": 524070078, + "name": "Asura Scans", + "lang": "en", + "baseUrl": "https://asuracomic.net", + "apiUrl": "", + "iconUrl": "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/en.asurascans.png", + "typeSource": "single", + "isManga": true, + "version": "0.1.65", + "dateFormat": "", + "dateFormatLocale": "", + "pkgPath": "manga/src/en/asurascans.js" +}]; + +class DefaultExtension extends MProvider { + getHeaders(url) { + return { + Referer: this.source.baseUrl + }; + } + mangaListFromPage(res) { + const doc = new Document(res.body); + const mangaElements = doc.select("div.grid > a[href]"); + const list = []; + for (const element of mangaElements) { + const name = element.selectFirst("span.block").text; + const imageUrl = element.selectFirst("img").getSrc; + const link = element.getHref; + list.push({ name, imageUrl, link }); + } + const hasNextPage = doc.selectFirst("a.flex.bg-themecolor:contains(Next)").text != ""; + return { "list": list, hasNextPage }; + } + toStatus(status) { + if (status == "Ongoing") + return 0; + else if (status == "Completed") + return 1; + else if (status == "Hiatus") + return 2; + else if (status == "Dropped") + return 3; + else + return 5; + } + parseDate(date) { + const months = { + "january": "01", "february": "02", "march": "03", "april": "04", + "may": "05", "june": "06", "july": "07", "august": "08", + "september": "09", "october": "10", "november": "11", "december": "12" + }; + date = date.toLowerCase().replace(/(st|nd|rd|th)/g, "").split(" "); + if (!(date[0] in months)) { + return String(new Date().valueOf()); + } + date[0] = months[date[0]]; + const formattedDate = `${date[2]}-${date[0]}-${date[1].padStart(2, "0")}`; // Format YYYY-MM-DD + return String(new Date(formattedDate).valueOf()); + } + + async getPopular(page) { + const baseUrl = new SharedPreferences().get("overrideBaseUrl1"); + const res = await new Client().get(`${baseUrl}/series?name=&status=-1&types=-1&order=rating&page=${page}`); + return this.mangaListFromPage(res); + } + + async getLatestUpdates(page) { + const baseUrl = new SharedPreferences().get("overrideBaseUrl1"); + const res = await new Client().get(`${baseUrl}/series?genres=&status=-1&types=-1&order=update&page=${page}`); + return this.mangaListFromPage(res); + } + async search(query, page, filters) { + const baseUrl = new SharedPreferences().get("overrideBaseUrl1"); + const res = await new Client().get(`${baseUrl}/series?name=${query}&page=${page}`); + return this.mangaListFromPage(res); + } + + async getDetail(url) { + const baseUrl = new SharedPreferences().get("overrideBaseUrl1"); + const res = await new Client().get(baseUrl + "/" + url); + const doc = new Document(res.body); + const imageUrl = doc.selectFirst("img[alt=poster]")?.getSrc; + const description = doc.selectFirst("span.font-medium.text-sm")?.text.trim(); + const author = doc.selectFirst("h3:contains('Author')").nextElementSibling.text.trim(); + const artist = doc.selectFirst("h3:contains('Artist')").nextElementSibling.text.trim(); + const status = this.toStatus(doc.selectFirst("h3:contains('Status')").nextElementSibling.text.trim()); + const genre = doc.select("div[class^=space] > div.flex > button.text-white") + .map((el) => el.text.trim()); + const chapters = []; + const chapterElements = doc.select("div.scrollbar-thumb-themecolor > div.group"); + for (const element of chapterElements) { + const url = element.selectFirst("a").getHref; + const chNumber = element.selectFirst("h3 > a").text; + const chTitle = element.select("h3 > a > span").map((span) => span.text.trim()).join(" ").trim(); + const name = chTitle == "" ? chNumber : `${chNumber} - ${chTitle}`; + + let dateUpload; + try { + const dateText = element.selectFirst("h3 + h3").text.trim(); + const cleanDateText = dateText.replace(/(\d+)(st|nd|rd|th)/, "$1"); + dateUpload = this.parseDate(cleanDateText); + } catch (_) { + dateUpload = null + } + chapters.push({ name, url, dateUpload }); + } + return { + imageUrl, + description, + genre, + author, + artist, + status, + chapters + }; + } + + + async getPageList(url) { + const baseUrl = new SharedPreferences().get("overrideBaseUrl1"); + const res = await new Client().get(baseUrl + "/series/" + url); + const scriptData = new Document(res.body).select("script:contains(self.__next_f.push)").map((e) => e.text.substringAfter("\"").substringBeforeLast("\"")).join(""); + console.log(scriptData); + const match = scriptData.match(/\\"pages\\":(\[.*?])/); + if (!match) { + throw new Error("Failed to find chapter pages"); + } + const pagesData = match[1]; + + const pageList = JSON.parse(pagesData.replace(/\\(.)/g, "$1")) + .sort((a, b) => a.order - b.order); + return pageList; + } + + getSourcePreferences() { + return [{ + "key": "overrideBaseUrl1", + "editTextPreference": { + "title": "Override BaseUrl", + "summary": "https://asuracomic.net", + "value": "https://asuracomic.net", + "dialogTitle": "Override BaseUrl", + "dialogMessage": "", + } + }]; + } + +} \ No newline at end of file diff --git a/model/source.dart b/model/source.dart index 84d3a218..666469fa 100644 --- a/model/source.dart +++ b/model/source.dart @@ -63,9 +63,10 @@ class Source { dateFormatLocale = json['dateFormatLocale'] ?? ""; hasCloudflare = json['hasCloudflare'] ?? false; iconUrl = json['iconUrl'] ?? ""; - id = (json['id'] ?? sourceCodeLang == 0 - ? 'mangayomi-"${json['lang'] ?? ""}"."${json['name'] ?? ""}"' - : 'mangayomi-js-"${json['lang'] ?? ""}"."${json['name'] ?? ""}"') + id = (json['id'] ?? + (sourceCodeLang == 0 + ? 'mangayomi-"${json['lang'] ?? ""}"."${json['name'] ?? ""}"' + : 'mangayomi-js-"${json['lang'] ?? ""}"."${json['name'] ?? ""}"')) .hashCode; isFullData = json['isFullData'] ?? false; itemType = json['itemType'] ?? ItemType.manga; diff --git a/source_generator.dart b/source_generator.dart index 1ee65660..21944e78 100644 --- a/source_generator.dart +++ b/source_generator.dart @@ -65,19 +65,31 @@ List _searchJsSources(Directory dir) { if (entity is Directory) { sourceList.addAll(_searchJsSources(entity)); } else if (entity is File && entity.path.endsWith('.js')) { - final RegExp regex = RegExp( - r'const\s+mangayomiSources\s*=\s*(\[.*?\]);', + final regex = RegExp(r'const\s+mangayomiSources\s*=\s*(\[.*?\]);', dotAll: true); final defaultSource = Source(); - Match? match = regex.firstMatch(entity.readAsStringSync()); + final match = regex.firstMatch(entity.readAsStringSync()); if (match != null) { - sourceList.addAll((jsonDecode(match.group(1)!) as List) - .map((e) => Source.fromJson(e) - ..sourceCodeLanguage = 1 - ..appMinVerReq = defaultSource.appMinVerReq - ..sourceCodeUrl = - "https://raw.githubusercontent.com/Schnitzel5/mangayomi-extensions/$branchName/javascript/${e["pkgPath"] ?? e["pkgName"]}") - .toList()); + for (var sourceJson in jsonDecode(match.group(1)!) as List) { + final langs = sourceJson["langs"] as List?; + Source source = Source.fromJson(sourceJson) + ..sourceCodeLanguage = 1 + ..appMinVerReq = defaultSource.appMinVerReq + ..sourceCodeUrl = + "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/javascript/${sourceJson["pkgPath"] ?? sourceJson["pkgName"]}"; + if (sourceJson["id"] != null) { + source = source..id = int.tryParse("${sourceJson["id"]}"); + } + if (langs?.isNotEmpty ?? false) { + for (var lang in langs!) { + sourceList.add(Source.fromJson(source.toJson()) + ..lang = lang + ..id = 'mangayomi-js-"$lang"."${source.name}"'.hashCode); + } + } else { + sourceList.add(source); + } + } } } } From 01a08177e151afb5459fb42a7de9c541d2feae0b Mon Sep 17 00:00:00 2001 From: Schnitzel5 Date: Mon, 25 Nov 2024 23:00:07 +0100 Subject: [PATCH 3/6] add novel support --- dart/anime/src/es/animeonlineninja/source.dart | 2 +- dart/anime/src/fr/anizone/source.dart | 2 +- javascript/anime/src/all/netflixmirror.js | 2 +- javascript/anime/src/de/serienstream.js | 2 +- javascript/anime/src/es/animefenix.js | 2 +- javascript/anime/src/es/jkanime.js | 2 +- javascript/anime/src/es/tioanime.js | 2 +- javascript/anime/src/zh/wogg.js | 2 +- javascript/anime/src/zh/yydsys.js | 2 +- javascript/manga/src/all/mangafire.js | 2 +- javascript/manga/src/en/asurascans.js | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/dart/anime/src/es/animeonlineninja/source.dart b/dart/anime/src/es/animeonlineninja/source.dart index edc46c89..a71f0972 100644 --- a/dart/anime/src/es/animeonlineninja/source.dart +++ b/dart/anime/src/es/animeonlineninja/source.dart @@ -13,4 +13,4 @@ Source _animeonlineninjaSource = Source( "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/es/animeonlineninja/icon.png", sourceCodeUrl: _animeonlineninjaSourceCodeUrl, version: _animeonlineninjaVersion, - isManga: false); + itemType: ItemType.anime); diff --git a/dart/anime/src/fr/anizone/source.dart b/dart/anime/src/fr/anizone/source.dart index 4caf9537..3c1fa693 100644 --- a/dart/anime/src/fr/anizone/source.dart +++ b/dart/anime/src/fr/anizone/source.dart @@ -13,4 +13,4 @@ Source _aniZoneSource = Source( "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/fr/anizone/icon.png", sourceCodeUrl: _aniZoneSourceCodeUrl, version: _aniZoneVersion, - isManga: false); + itemType: ItemType.anime); diff --git a/javascript/anime/src/all/netflixmirror.js b/javascript/anime/src/all/netflixmirror.js index 3fa88c48..3682a89e 100644 --- a/javascript/anime/src/all/netflixmirror.js +++ b/javascript/anime/src/all/netflixmirror.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/all.netflixmirror.png", "typeSource": "single", - "isManga": false, + "itemType": "anime", "version": "0.0.45", "dateFormat": "", "dateFormatLocale": "", diff --git a/javascript/anime/src/de/serienstream.js b/javascript/anime/src/de/serienstream.js index 64dca94c..dadf7804 100644 --- a/javascript/anime/src/de/serienstream.js +++ b/javascript/anime/src/de/serienstream.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "https://s.to/favicon.ico", "typeSource": "single", - "isManga": false, + "itemType": "anime", "isNsfw": false, "version": "0.0.2", "dateFormat": "", diff --git a/javascript/anime/src/es/animefenix.js b/javascript/anime/src/es/animefenix.js index df82d147..f1271867 100644 --- a/javascript/anime/src/es/animefenix.js +++ b/javascript/anime/src/es/animefenix.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "https://www3.animefenix.tv/themes/fenix-neo/images/AveFenix.png", "typeSource": "single", - "isManga": false, + "itemType": "anime", "version": "0.1.0", "dateFormat": "", "dateFormatLocale": "", diff --git a/javascript/anime/src/es/jkanime.js b/javascript/anime/src/es/jkanime.js index a1ab1bf9..d2a104c4 100644 --- a/javascript/anime/src/es/jkanime.js +++ b/javascript/anime/src/es/jkanime.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "https://cdn.jkdesu.com/assets2/css/img/favicon.ico", "typeSource": "single", - "isManga": false, + "itemType": "anime", "version": "0.1.0", "dateFormat": "", "dateFormatLocale": "", diff --git a/javascript/anime/src/es/tioanime.js b/javascript/anime/src/es/tioanime.js index 729e30a2..438ba219 100644 --- a/javascript/anime/src/es/tioanime.js +++ b/javascript/anime/src/es/tioanime.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "https://tioanime.com/assets/img/tio_fb.jpg", "typeSource": "single", - "isManga": false, + "itemType": "anime", "version": "0.1.0", "dateFormat": "", "dateFormatLocale": "", diff --git a/javascript/anime/src/zh/wogg.js b/javascript/anime/src/zh/wogg.js index 20112134..c9498854 100644 --- a/javascript/anime/src/zh/wogg.js +++ b/javascript/anime/src/zh/wogg.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "https://imgsrc.baidu.com/forum/pic/item/4b90f603738da977d5da660af651f8198618e31f.jpg", "typeSource": "single", - "isManga": false, + "itemType": "anime", "isNsfw": false, "version": "0.0.2", "dateFormat": "", diff --git a/javascript/anime/src/zh/yydsys.js b/javascript/anime/src/zh/yydsys.js index bcfc74f7..37f8f812 100644 --- a/javascript/anime/src/zh/yydsys.js +++ b/javascript/anime/src/zh/yydsys.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "https://tv.yydsys.top/template/DYXS2/static/picture/logo.png", "typeSource": "single", - "isManga": false, + "itemType": "anime", "isNsfw": false, "version": "0.0.2", "dateFormat": "", diff --git a/javascript/manga/src/all/mangafire.js b/javascript/manga/src/all/mangafire.js index c3befa4d..2ddaaf92 100644 --- a/javascript/manga/src/all/mangafire.js +++ b/javascript/manga/src/all/mangafire.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "https://mangafire.to/assets/sites/mangafire/favicon.png?v3", "typeSource": "single", - "isManga": true, + "itemType": "anime", "version": "0.1.2", "dateFormat": "", "dateFormatLocale": "", diff --git a/javascript/manga/src/en/asurascans.js b/javascript/manga/src/en/asurascans.js index a95af2d5..e9a7c4c3 100644 --- a/javascript/manga/src/en/asurascans.js +++ b/javascript/manga/src/en/asurascans.js @@ -6,7 +6,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/en.asurascans.png", "typeSource": "single", - "isManga": true, + "itemType": "anime", "version": "0.1.65", "dateFormat": "", "dateFormatLocale": "", From 6ce207c3751af3b91c36e84cae5353d2dd39de8f Mon Sep 17 00:00:00 2001 From: Schnitzel5 Date: Mon, 25 Nov 2024 23:03:39 +0100 Subject: [PATCH 4/6] fix --- model/source.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/model/source.dart b/model/source.dart index 666469fa..deffb84f 100644 --- a/model/source.dart +++ b/model/source.dart @@ -69,7 +69,7 @@ class Source { : 'mangayomi-js-"${json['lang'] ?? ""}"."${json['name'] ?? ""}"')) .hashCode; isFullData = json['isFullData'] ?? false; - itemType = json['itemType'] ?? ItemType.manga; + itemType = ItemType.values[json['itemType'] ?? 0]; isNsfw = json['isNsfw'] ?? false; lang = json['lang'] ?? ""; name = json['name'] ?? ""; From aa7cca7162567d9db05555520ac342fe35dcdbc0 Mon Sep 17 00:00:00 2001 From: Schnitzel5 Date: Mon, 25 Nov 2024 23:06:37 +0100 Subject: [PATCH 5/6] fix --- model/source.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/model/source.dart b/model/source.dart index deffb84f..94b2b4c6 100644 --- a/model/source.dart +++ b/model/source.dart @@ -95,7 +95,7 @@ class Source { "sourceCodeUrl": sourceCodeUrl, "apiUrl": apiUrl, "version": version, - "itemType": itemType, + "itemType": itemType?.index ?? 0, "isFullData": isFullData, "appMinVerReq": appMinVerReq, "additionalParams": additionalParams, From f69fd3695e9fa2873b3d6eb7cdb74f3d2b1540a6 Mon Sep 17 00:00:00 2001 From: Schnitzel5 Date: Wed, 27 Nov 2024 15:11:25 +0100 Subject: [PATCH 6/6] fixed error --- javascript/anime/src/all/netflixmirror.js | 2 +- javascript/anime/src/de/aniworld.js | 2 +- javascript/anime/src/de/serienstream.js | 2 +- javascript/anime/src/en/allanime.js | 2 +- javascript/anime/src/es/animefenix.js | 2 +- javascript/anime/src/es/animeflv.js | 2 +- javascript/anime/src/es/jkanime.js | 2 +- javascript/anime/src/es/tioanime.js | 2 +- javascript/anime/src/zh/360zy.js | 2 +- javascript/anime/src/zh/ffzy.js | 2 +- javascript/anime/src/zh/huaweiba.js | 2 +- javascript/anime/src/zh/jisuzy.js | 2 +- javascript/anime/src/zh/mikan.js | 2 +- javascript/anime/src/zh/tiankongzy.js | 2 +- javascript/anime/src/zh/wogg.js | 2 +- javascript/anime/src/zh/yhdm.js | 2 +- javascript/anime/src/zh/yydsys.js | 2 +- javascript/manga/src/all/mangafire.js | 2 +- javascript/manga/src/en/asurascans.js | 2 +- javascript/manga/src/zh/77mh.js | 2 +- javascript/manga/src/zh/copymanga.js | 2 +- javascript/manga/src/zh/dmzj.js | 2 +- javascript/manga/src/zh/manhuadb.js | 2 +- javascript/manga/src/zh/manhuagui.js | 2 +- 24 files changed, 24 insertions(+), 24 deletions(-) diff --git a/javascript/anime/src/all/netflixmirror.js b/javascript/anime/src/all/netflixmirror.js index 3682a89e..732f902d 100644 --- a/javascript/anime/src/all/netflixmirror.js +++ b/javascript/anime/src/all/netflixmirror.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/all.netflixmirror.png", "typeSource": "single", - "itemType": "anime", + "itemType": 1, "version": "0.0.45", "dateFormat": "", "dateFormatLocale": "", diff --git a/javascript/anime/src/de/aniworld.js b/javascript/anime/src/de/aniworld.js index 09a63c7c..4b1d1dd6 100644 --- a/javascript/anime/src/de/aniworld.js +++ b/javascript/anime/src/de/aniworld.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/de.aniworld.png", "typeSource": "single", - "itemType": "anime", + "itemType": 1, "isNsfw": false, "version": "0.0.28", "dateFormat": "", diff --git a/javascript/anime/src/de/serienstream.js b/javascript/anime/src/de/serienstream.js index dadf7804..8ec23f50 100644 --- a/javascript/anime/src/de/serienstream.js +++ b/javascript/anime/src/de/serienstream.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "https://s.to/favicon.ico", "typeSource": "single", - "itemType": "anime", + "itemType": 1, "isNsfw": false, "version": "0.0.2", "dateFormat": "", diff --git a/javascript/anime/src/en/allanime.js b/javascript/anime/src/en/allanime.js index a69deb4b..f1af692d 100644 --- a/javascript/anime/src/en/allanime.js +++ b/javascript/anime/src/en/allanime.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "https://api.allanime.day/api", "iconUrl": "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/en.allanime.png", "typeSource": "single", - "itemType": "anime", + "itemType": 1, "isNsfw": false, "version": "0.0.35", "dateFormat": "", diff --git a/javascript/anime/src/es/animefenix.js b/javascript/anime/src/es/animefenix.js index f1271867..c0694628 100644 --- a/javascript/anime/src/es/animefenix.js +++ b/javascript/anime/src/es/animefenix.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "https://www3.animefenix.tv/themes/fenix-neo/images/AveFenix.png", "typeSource": "single", - "itemType": "anime", + "itemType": 1, "version": "0.1.0", "dateFormat": "", "dateFormatLocale": "", diff --git a/javascript/anime/src/es/animeflv.js b/javascript/anime/src/es/animeflv.js index cd59da2f..0a3a7eda 100644 --- a/javascript/anime/src/es/animeflv.js +++ b/javascript/anime/src/es/animeflv.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/es.animeflv.png", "typeSource": "single", - "itemType": "anime", + "itemType": 1, "isNsfw": false, "version": "0.0.1", "dateFormat": "", diff --git a/javascript/anime/src/es/jkanime.js b/javascript/anime/src/es/jkanime.js index d2a104c4..f09ba708 100644 --- a/javascript/anime/src/es/jkanime.js +++ b/javascript/anime/src/es/jkanime.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "https://cdn.jkdesu.com/assets2/css/img/favicon.ico", "typeSource": "single", - "itemType": "anime", + "itemType": 1, "version": "0.1.0", "dateFormat": "", "dateFormatLocale": "", diff --git a/javascript/anime/src/es/tioanime.js b/javascript/anime/src/es/tioanime.js index 438ba219..d1a0dfcf 100644 --- a/javascript/anime/src/es/tioanime.js +++ b/javascript/anime/src/es/tioanime.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "https://tioanime.com/assets/img/tio_fb.jpg", "typeSource": "single", - "itemType": "anime", + "itemType": 1, "version": "0.1.0", "dateFormat": "", "dateFormatLocale": "", diff --git a/javascript/anime/src/zh/360zy.js b/javascript/anime/src/zh/360zy.js index 0ecceaeb..4ee378f5 100644 --- a/javascript/anime/src/zh/360zy.js +++ b/javascript/anime/src/zh/360zy.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "https://360zy.com/favicon.ico", "typeSource": "single", - "itemType": "anime", + "itemType": 1, "isNsfw": false, "version": "0.0.1", "dateFormat": "", diff --git a/javascript/anime/src/zh/ffzy.js b/javascript/anime/src/zh/ffzy.js index 65ab73d1..dbd79752 100644 --- a/javascript/anime/src/zh/ffzy.js +++ b/javascript/anime/src/zh/ffzy.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "http://ffzy.tv/template/default/img/favicon.png", "typeSource": "single", - "itemType": "anime", + "itemType": 1, "isNsfw": false, "version": "0.0.1", "dateFormat": "", diff --git a/javascript/anime/src/zh/huaweiba.js b/javascript/anime/src/zh/huaweiba.js index 56ea0744..3f109ba3 100644 --- a/javascript/anime/src/zh/huaweiba.js +++ b/javascript/anime/src/zh/huaweiba.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "https://huaweiba.live/template/ziyuan/images/logo2.png", "typeSource": "single", - "itemType": "anime", + "itemType": 1, "isNsfw": false, "version": "0.0.1", "dateFormat": "", diff --git a/javascript/anime/src/zh/jisuzy.js b/javascript/anime/src/zh/jisuzy.js index e3ce912b..0c4f0fb8 100644 --- a/javascript/anime/src/zh/jisuzy.js +++ b/javascript/anime/src/zh/jisuzy.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "https://www.jisuzy.com/template/default/images/site_logo.png", "typeSource": "single", - "itemType": "anime", + "itemType": 1, "isNsfw": false, "version": "0.0.1", "dateFormat": "", diff --git a/javascript/anime/src/zh/mikan.js b/javascript/anime/src/zh/mikan.js index fc5d122e..e7e65b51 100644 --- a/javascript/anime/src/zh/mikan.js +++ b/javascript/anime/src/zh/mikan.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "https://mikanime.tv/images/mikan-pic.png", "typeSource": "torrent", - "itemType": "anime", + "itemType": 1, "isNsfw": false, "version": "0.0.15", "dateFormat": "", diff --git a/javascript/anime/src/zh/tiankongzy.js b/javascript/anime/src/zh/tiankongzy.js index eb23c9a4..06d0906d 100644 --- a/javascript/anime/src/zh/tiankongzy.js +++ b/javascript/anime/src/zh/tiankongzy.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "https://api.tiankongapi.com/template/v10012/images/logo.jpg", "typeSource": "single", - "itemType": "anime", + "itemType": 1, "isNsfw": false, "version": "0.0.1", "dateFormat": "", diff --git a/javascript/anime/src/zh/wogg.js b/javascript/anime/src/zh/wogg.js index c9498854..ab606811 100644 --- a/javascript/anime/src/zh/wogg.js +++ b/javascript/anime/src/zh/wogg.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "https://imgsrc.baidu.com/forum/pic/item/4b90f603738da977d5da660af651f8198618e31f.jpg", "typeSource": "single", - "itemType": "anime", + "itemType": 1, "isNsfw": false, "version": "0.0.2", "dateFormat": "", diff --git a/javascript/anime/src/zh/yhdm.js b/javascript/anime/src/zh/yhdm.js index d8c615db..e720af67 100644 --- a/javascript/anime/src/zh/yhdm.js +++ b/javascript/anime/src/zh/yhdm.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "http://www.iyinghua.io/js/20180601/favicon.ico", "typeSource": "single", - "itemType": "anime", + "itemType": 1, "isNsfw": false, "version": "0.0.15", "dateFormat": "", diff --git a/javascript/anime/src/zh/yydsys.js b/javascript/anime/src/zh/yydsys.js index 37f8f812..40787d71 100644 --- a/javascript/anime/src/zh/yydsys.js +++ b/javascript/anime/src/zh/yydsys.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "https://tv.yydsys.top/template/DYXS2/static/picture/logo.png", "typeSource": "single", - "itemType": "anime", + "itemType": 1, "isNsfw": false, "version": "0.0.2", "dateFormat": "", diff --git a/javascript/manga/src/all/mangafire.js b/javascript/manga/src/all/mangafire.js index 2ddaaf92..5dda18ea 100644 --- a/javascript/manga/src/all/mangafire.js +++ b/javascript/manga/src/all/mangafire.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "https://mangafire.to/assets/sites/mangafire/favicon.png?v3", "typeSource": "single", - "itemType": "anime", + "itemType": 0, "version": "0.1.2", "dateFormat": "", "dateFormatLocale": "", diff --git a/javascript/manga/src/en/asurascans.js b/javascript/manga/src/en/asurascans.js index e9a7c4c3..357aa80d 100644 --- a/javascript/manga/src/en/asurascans.js +++ b/javascript/manga/src/en/asurascans.js @@ -6,7 +6,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/en.asurascans.png", "typeSource": "single", - "itemType": "anime", + "itemType": 0, "version": "0.1.65", "dateFormat": "", "dateFormatLocale": "", diff --git a/javascript/manga/src/zh/77mh.js b/javascript/manga/src/zh/77mh.js index 6f6fbda4..2030e666 100644 --- a/javascript/manga/src/zh/77mh.js +++ b/javascript/manga/src/zh/77mh.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "https://www.77mh.nl/favicon.ico", "typeSource": "single", - "itemType": "manga", + "itemType": 0, "isNsfw": false, "version": "0.0.25", "apiUrl": "", diff --git a/javascript/manga/src/zh/copymanga.js b/javascript/manga/src/zh/copymanga.js index aa11dd73..0393af8b 100644 --- a/javascript/manga/src/zh/copymanga.js +++ b/javascript/manga/src/zh/copymanga.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "https://api.mangacopy.com", "iconUrl": "https://hi77-overseas.mangafuna.xyz/static/free.ico", "typeSource": "single", - "itemType": "manga", + "itemType": 0, "isNsfw": false, "version": "0.0.2", "dateFormat": "", diff --git a/javascript/manga/src/zh/dmzj.js b/javascript/manga/src/zh/dmzj.js index 064c7934..da76ad2c 100644 --- a/javascript/manga/src/zh/dmzj.js +++ b/javascript/manga/src/zh/dmzj.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "https://www.dmzj.com/_nuxt/logo_dmzj.1c94014a.png", "typeSource": "single", - "itemType": "manga", + "itemType": 0, "isNsfw": false, "version": "0.0.25", "dateFormat": "", diff --git a/javascript/manga/src/zh/manhuadb.js b/javascript/manga/src/zh/manhuadb.js index ad52caf7..b66cf33d 100644 --- a/javascript/manga/src/zh/manhuadb.js +++ b/javascript/manga/src/zh/manhuadb.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/zh.manhuadb.png", "typeSource": "single", - "itemType": "manga", + "itemType": 0, "isNsfw": false, "version": "0.0.25", "dateFormat": "", diff --git a/javascript/manga/src/zh/manhuagui.js b/javascript/manga/src/zh/manhuagui.js index 44bb2e73..94e30518 100644 --- a/javascript/manga/src/zh/manhuagui.js +++ b/javascript/manga/src/zh/manhuagui.js @@ -5,7 +5,7 @@ const mangayomiSources = [{ "apiUrl": "", "iconUrl": "https://www.manhuagui.com/favicon.ico", "typeSource": "single", - "itemType": "manga", + "itemType": 0, "isNsfw": false, "version": "0.0.25", "dateFormat": "",