diff --git a/anime_index.json b/anime_index.json index bcd1435..93ebcc1 100644 --- a/anime_index.json +++ b/anime_index.json @@ -1 +1 @@ -[{"name":"Gogoanime","id":1061885186,"baseUrl":"https://anitaku.to","lang":"en","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/en/gogoanime/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/en/gogoanime/gogoanime.dart","apiUrl":"","version":"0.1.15","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"FrAnime","id":870016579,"baseUrl":"https://franime.fr","lang":"fr","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/fr/franime/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/fr/franime/franime.dart","apiUrl":"https://api.franime.fr","version":"0.0.75","isManga":false,"isFullData":true,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"OtakuFr","id":828939690,"baseUrl":"https://otakufr.cc","lang":"fr","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/fr/otakufr/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/fr/otakufr/otakufr.dart","apiUrl":"","version":"0.0.95","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"AnimesUltra","id":1050779985,"baseUrl":"https://w2.animesultra.net","lang":"fr","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/fr/animesultra/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/fr/animesultra/animesultra.dart","apiUrl":"","version":"0.0.75","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"HiAnime","id":814067600,"baseUrl":"https://hianime.to","lang":"en","typeSource":"zorotheme","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/multisrc/zorotheme/src/hianime/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/multisrc/zorotheme/zorotheme.dart","apiUrl":"","version":"0.0.95","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Kaido.to","id":961999573,"baseUrl":"https://kaido.to","lang":"en","typeSource":"zorotheme","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/multisrc/zorotheme/src/kaido/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/multisrc/zorotheme/zorotheme.dart","apiUrl":"","version":"0.0.95","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"KissKH","id":614402273,"baseUrl":"https://kisskh.co","lang":"en","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/en/kisskh/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/en/kisskh/kisskh.dart","apiUrl":"","version":"0.0.6","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Okanime","id":816422873,"baseUrl":"https://www.okanime.xyz","lang":"ar","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/ar/okanime/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/ar/okanime/okanime.dart","apiUrl":"","version":"0.0.55","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"OtakuDesu","id":857966631,"baseUrl":"https://otakudesu.cloud","lang":"id","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/id/otakudesu/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/id/otakudesu/otakudesu.dart","apiUrl":"","version":"0.0.55","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"NimeGami","id":228390212,"baseUrl":"https://nimegami.id","lang":"id","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/id/nimegami/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/id/nimegami/nimegami.dart","apiUrl":"","version":"0.0.55","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Oploverz","id":354763978,"baseUrl":"https://oploverz.gold","lang":"id","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/id/oploverz/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/id/oploverz/oploverz.dart","apiUrl":"","version":"0.0.5","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"DopeBox","id":640189912,"baseUrl":"https://dopebox.to","lang":"en","typeSource":"dopeflix","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/multisrc/dopeflix/src/dopebox/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/multisrc/dopeflix/dopeflix.dart","apiUrl":"","version":"0.0.55","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"SFlix","id":372182741,"baseUrl":"https://sflix.to","lang":"en","typeSource":"dopeflix","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/multisrc/dopeflix/src/sflix/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/multisrc/dopeflix/dopeflix.dart","apiUrl":"","version":"0.0.55","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"AnimeSaturn","id":817602961,"baseUrl":"https://www.animesaturn.cx","lang":"it","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/it/animesaturn/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/it/animesaturn/animesaturn.dart","apiUrl":"","version":"0.0.4","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"UHD Movies","id":412887556,"baseUrl":"https://uhdmovies.fans","lang":"en","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/en/uhdmovies/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/en/uhdmovies/uhdmovies.dart","apiUrl":"","version":"0.0.45","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"French Anime","id":419375321,"baseUrl":"https://french-anime.com","lang":"fr","typeSource":"datalifeengine","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/multisrc/datalifeengine/src/frenchanime/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/multisrc/datalifeengine/datalifeengine.dart","apiUrl":"","version":"0.0.6","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Wiflix","id":1054910447,"baseUrl":"https://wiflix-hd.vip","lang":"fr","typeSource":"datalifeengine","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/multisrc/datalifeengine/src/wiflix/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/multisrc/datalifeengine/datalifeengine.dart","apiUrl":"","version":"0.0.6","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Filma24","id":892266880,"baseUrl":"https://www.filma24.pl","lang":"sq","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/sq/filma24/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/sq/filma24/filma24.dart","apiUrl":"","version":"0.0.35","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"DramaCool","id":331292187,"baseUrl":"https://dramacool.pa","lang":"en","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/en/dramacool/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/en/dramacool/dramacool.dart","apiUrl":"","version":"0.0.25","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"YoMovies","id":537166091,"baseUrl":"https://yomovies.boo","lang":"hi","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/hi/yomovies/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/hi/yomovies/yomovies.dart","apiUrl":"","version":"0.0.25","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Anime-Sama","id":32228290,"baseUrl":"https://anime-sama.fr","lang":"fr","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/fr/animesama/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/fr/animesama/animesama.dart","apiUrl":"","version":"0.0.3","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"9AnimeTv","id":957331416,"baseUrl":"https://9animetv.to","lang":"en","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/en/nineanimetv/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/en/nineanimetv/nineanimetv.dart","apiUrl":"","version":"0.0.4","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"AnimeWorld India","id":529552861,"baseUrl":"https://anime-world.in","lang":"all","typeSource":"multiple","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/all/animeworldindia/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/all/animeworldindia/animeworldindia.dart","apiUrl":"","version":"0.0.3","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"AnimeWorld India","id":298117146,"baseUrl":"https://anime-world.in","lang":"en","typeSource":"multiple","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/all/animeworldindia/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/all/animeworldindia/animeworldindia.dart","apiUrl":"","version":"0.0.3","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"AnimeWorld India","id":953375665,"baseUrl":"https://anime-world.in","lang":"bn","typeSource":"multiple","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/all/animeworldindia/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/all/animeworldindia/animeworldindia.dart","apiUrl":"","version":"0.0.3","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"AnimeWorld India","id":788028349,"baseUrl":"https://anime-world.in","lang":"hi","typeSource":"multiple","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/all/animeworldindia/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/all/animeworldindia/animeworldindia.dart","apiUrl":"","version":"0.0.3","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"AnimeWorld India","id":486955727,"baseUrl":"https://anime-world.in","lang":"ja","typeSource":"multiple","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/all/animeworldindia/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/all/animeworldindia/animeworldindia.dart","apiUrl":"","version":"0.0.3","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"AnimeWorld India","id":571428165,"baseUrl":"https://anime-world.in","lang":"ml","typeSource":"multiple","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/all/animeworldindia/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/all/animeworldindia/animeworldindia.dart","apiUrl":"","version":"0.0.3","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"AnimeWorld India","id":976578551,"baseUrl":"https://anime-world.in","lang":"mr","typeSource":"multiple","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/all/animeworldindia/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/all/animeworldindia/animeworldindia.dart","apiUrl":"","version":"0.0.3","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"AnimeWorld India","id":908421454,"baseUrl":"https://anime-world.in","lang":"ta","typeSource":"multiple","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/all/animeworldindia/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/all/animeworldindia/animeworldindia.dart","apiUrl":"","version":"0.0.3","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"AnimeWorld India","id":619885111,"baseUrl":"https://anime-world.in","lang":"te","typeSource":"multiple","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/all/animeworldindia/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/all/animeworldindia/animeworldindia.dart","apiUrl":"","version":"0.0.3","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Nyaa","id":204272987,"baseUrl":"https://nyaa.si","lang":"all","typeSource":"torrent","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/all/nyaa/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/all/nyaa/nyaa.dart","apiUrl":"","version":"0.0.2","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"AnimePahe","id":534387145,"baseUrl":"https://www.animepahe.ru","lang":"en","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/en/animepahe/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/en/animepahe/animepahe.dart","apiUrl":"","version":"0.0.4","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"AnimeToast","id":922522471,"baseUrl":"https://animetoast.cc","lang":"de","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/de/animetoast/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/de/animetoast/animetoast.dart","apiUrl":"","version":"0.0.2","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"AnimesVision","id":182512102,"baseUrl":"https://animes.vision","lang":"pt-br","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/pt/animesvision/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/pt/animesvision/animesvision.dart","apiUrl":"","version":"0.0.15","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"diziWatch","id":585912766,"baseUrl":"https://diziwatch.net","lang":"tr","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/tr/diziwatch/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/tr/diziwatch/diziwatch.dart","apiUrl":"","version":"0.0.1","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"AniZone","id":525728745,"baseUrl":"https://v1.animesz.xyz","lang":"fr","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/fr/anizone/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/fr/anizone/anizone.dart","apiUrl":"","version":"0.0.2","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"AnimeOnline.Ninja","id":802700084,"baseUrl":"https://ww3.animeonline.ninja","lang":"es","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/es/animeonlineninja/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/es/animeonlineninja/animeonlineninja.dart","apiUrl":"","version":"0.0.3","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"AnimeWorld","id":368490446,"baseUrl":"https://www.animeworld.so","lang":"it","typeSource":"single","iconUrl":"https://i.postimg.cc/RFRGfBvP/FVLyB1I.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/anime/src/it/animeworld.js","apiUrl":"","version":"0.0.12","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"SerienStream","id":178264452,"baseUrl":"https://s.to","lang":"de","typeSource":"single","iconUrl":"https://s.to/favicon.ico","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/anime/src/de/serienstream.js","apiUrl":"","version":"0.0.2","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"AniWorld","id":746621198,"baseUrl":"https://aniworld.to","lang":"de","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/de.aniworld.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/anime/src/de/aniworld.js","apiUrl":"","version":"0.3.1","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"AnimeFénix","id":750391210,"baseUrl":"https://www3.animefenix.tv","lang":"es","typeSource":"single","iconUrl":"https://www3.animefenix.tv/themes/fenix-neo/images/AveFenix.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/anime/src/es/animefenix.js","apiUrl":"","version":"0.1.13","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"AnimeFLV","id":32554550,"baseUrl":"https://www3.animeflv.net","lang":"es","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/es.animeflv.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/anime/src/es/animeflv.js","apiUrl":"","version":"0.0.1","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"JKAnime","id":1018721463,"baseUrl":"https://jkanime.net","lang":"es","typeSource":"single","iconUrl":"https://cdn.jkanime.net/logo_jk.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/anime/src/es/jkanime.js","apiUrl":"","version":"0.1.13","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"TioAnime","id":156757473,"baseUrl":"https://tioanime.com","lang":"es","typeSource":"single","iconUrl":"https://tioanime.com/assets/img/tio_fb.jpg","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/anime/src/es/tioanime.js","apiUrl":"","version":"0.1.12","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"非凡资源","id":797525486,"baseUrl":"http://ffzy.tv","lang":"zh","typeSource":"single","iconUrl":"http://ffzy.tv/template/default/img/favicon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/anime/src/zh/ffzy.js","apiUrl":"","version":"0.0.1","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"樱花动漫","id":781484038,"baseUrl":"http://www.iyinghua.io","lang":"zh","typeSource":"single","iconUrl":"http://www.iyinghua.io/js/20180601/favicon.ico","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/anime/src/zh/yhdm.js","apiUrl":"","version":"0.0.15","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"360资源","id":750729164,"baseUrl":"https://360zy.com","lang":"zh","typeSource":"single","iconUrl":"https://360zy.com/favicon.ico","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/anime/src/zh/360zy.js","apiUrl":"","version":"0.0.1","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"极速资源","id":593630482,"baseUrl":"https://wwww.jisuzy.com","lang":"zh","typeSource":"single","iconUrl":"https://www.jisuzy.com/template/default/images/site_logo.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/anime/src/zh/jisuzy.js","apiUrl":"","version":"0.0.1","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"天空资源网","id":967317255,"baseUrl":"https://tiankongzy.com","lang":"zh","typeSource":"single","iconUrl":"https://api.tiankongapi.com/template/v10012/images/logo.jpg","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/anime/src/zh/tiankongzy.js","apiUrl":"","version":"0.0.1","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"玩偶哥哥","id":14810567,"baseUrl":"https://www.wogg.net","lang":"zh","typeSource":"single","iconUrl":"https://imgsrc.baidu.com/forum/pic/item/4b90f603738da977d5da660af651f8198618e31f.jpg","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/anime/src/zh/wogg.js","apiUrl":"","version":"0.0.2","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"多多影音","id":400189518,"baseUrl":"https://tv.yydsys.top","lang":"zh","typeSource":"single","iconUrl":"https://tv.yydsys.top/template/DYXS2/static/picture/logo.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/anime/src/zh/yydsys.js","apiUrl":"","version":"0.0.2","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"华为吧资源","id":790593517,"baseUrl":"https://huaweiba.live","lang":"zh","typeSource":"single","iconUrl":"https://huaweiba.live/template/ziyuan/images/logo2.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/anime/src/zh/huaweiba.js","apiUrl":"","version":"0.0.1","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"蜜柑计划","id":1032743453,"baseUrl":"https://mikanime.tv","lang":"zh","typeSource":"torrent","iconUrl":"https://mikanime.tv/images/mikan-pic.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/anime/src/zh/mikan.js","apiUrl":"","version":"0.0.15","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"AllAnime","id":558217176,"baseUrl":"https://allanime.to","lang":"en","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/en.allanime.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/anime/src/en/allanime.js","apiUrl":"https://api.allanime.day/api","version":"0.0.35","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"NetflixMirror","id":446414301,"baseUrl":"https://iosmirror.cc","lang":"all","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/all.netflixmirror.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/anime/src/all/netflixmirror.js","apiUrl":"","version":"0.0.45","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1}] \ No newline at end of file +[{"name":"Gogoanime","id":1061885186,"baseUrl":"https://anitaku.to","lang":"en","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/en/gogoanime/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/en/gogoanime/gogoanime.dart","apiUrl":"","version":"0.1.15","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"FrAnime","id":870016579,"baseUrl":"https://franime.fr","lang":"fr","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/fr/franime/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/fr/franime/franime.dart","apiUrl":"https://api.franime.fr","version":"0.0.75","isManga":false,"isFullData":true,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"OtakuFr","id":828939690,"baseUrl":"https://otakufr.cc","lang":"fr","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/fr/otakufr/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/fr/otakufr/otakufr.dart","apiUrl":"","version":"0.0.95","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"AnimesUltra","id":1050779985,"baseUrl":"https://w2.animesultra.net","lang":"fr","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/fr/animesultra/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/fr/animesultra/animesultra.dart","apiUrl":"","version":"0.0.75","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"HiAnime","id":814067600,"baseUrl":"https://hianime.to","lang":"en","typeSource":"zorotheme","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/multisrc/zorotheme/src/hianime/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/multisrc/zorotheme/zorotheme.dart","apiUrl":"","version":"0.0.95","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Kaido.to","id":961999573,"baseUrl":"https://kaido.to","lang":"en","typeSource":"zorotheme","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/multisrc/zorotheme/src/kaido/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/multisrc/zorotheme/zorotheme.dart","apiUrl":"","version":"0.0.95","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"KissKH","id":614402273,"baseUrl":"https://kisskh.co","lang":"en","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/en/kisskh/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/en/kisskh/kisskh.dart","apiUrl":"","version":"0.0.6","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Okanime","id":816422873,"baseUrl":"https://www.okanime.xyz","lang":"ar","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/ar/okanime/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/ar/okanime/okanime.dart","apiUrl":"","version":"0.0.55","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"OtakuDesu","id":857966631,"baseUrl":"https://otakudesu.cloud","lang":"id","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/id/otakudesu/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/id/otakudesu/otakudesu.dart","apiUrl":"","version":"0.0.55","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"NimeGami","id":228390212,"baseUrl":"https://nimegami.id","lang":"id","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/id/nimegami/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/id/nimegami/nimegami.dart","apiUrl":"","version":"0.0.55","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Oploverz","id":354763978,"baseUrl":"https://oploverz.gold","lang":"id","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/id/oploverz/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/id/oploverz/oploverz.dart","apiUrl":"","version":"0.0.5","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"DopeBox","id":640189912,"baseUrl":"https://dopebox.to","lang":"en","typeSource":"dopeflix","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/multisrc/dopeflix/src/dopebox/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/multisrc/dopeflix/dopeflix.dart","apiUrl":"","version":"0.0.55","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"SFlix","id":372182741,"baseUrl":"https://sflix.to","lang":"en","typeSource":"dopeflix","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/multisrc/dopeflix/src/sflix/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/multisrc/dopeflix/dopeflix.dart","apiUrl":"","version":"0.0.55","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"AnimeSaturn","id":817602961,"baseUrl":"https://www.animesaturn.cx","lang":"it","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/it/animesaturn/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/it/animesaturn/animesaturn.dart","apiUrl":"","version":"0.0.4","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"UHD Movies","id":412887556,"baseUrl":"https://uhdmovies.fans","lang":"en","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/en/uhdmovies/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/en/uhdmovies/uhdmovies.dart","apiUrl":"","version":"0.0.45","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"French Anime","id":419375321,"baseUrl":"https://french-anime.com","lang":"fr","typeSource":"datalifeengine","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/multisrc/datalifeengine/src/frenchanime/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/multisrc/datalifeengine/datalifeengine.dart","apiUrl":"","version":"0.0.6","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Wiflix","id":1054910447,"baseUrl":"https://wiflix-hd.vip","lang":"fr","typeSource":"datalifeengine","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/multisrc/datalifeengine/src/wiflix/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/multisrc/datalifeengine/datalifeengine.dart","apiUrl":"","version":"0.0.6","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Filma24","id":892266880,"baseUrl":"https://www.filma24.pl","lang":"sq","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/sq/filma24/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/sq/filma24/filma24.dart","apiUrl":"","version":"0.0.35","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"DramaCool","id":331292187,"baseUrl":"https://dramacool.pa","lang":"en","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/en/dramacool/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/en/dramacool/dramacool.dart","apiUrl":"","version":"0.0.25","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"YoMovies","id":537166091,"baseUrl":"https://yomovies.boo","lang":"hi","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/hi/yomovies/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/hi/yomovies/yomovies.dart","apiUrl":"","version":"0.0.25","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Anime-Sama","id":32228290,"baseUrl":"https://anime-sama.fr","lang":"fr","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/fr/animesama/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/fr/animesama/animesama.dart","apiUrl":"","version":"0.0.3","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"9AnimeTv","id":957331416,"baseUrl":"https://9animetv.to","lang":"en","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/en/nineanimetv/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/en/nineanimetv/nineanimetv.dart","apiUrl":"","version":"0.0.4","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"AnimeWorld India","id":529552861,"baseUrl":"https://anime-world.in","lang":"all","typeSource":"multiple","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/all/animeworldindia/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/all/animeworldindia/animeworldindia.dart","apiUrl":"","version":"0.0.3","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"AnimeWorld India","id":298117146,"baseUrl":"https://anime-world.in","lang":"en","typeSource":"multiple","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/all/animeworldindia/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/all/animeworldindia/animeworldindia.dart","apiUrl":"","version":"0.0.3","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"AnimeWorld India","id":953375665,"baseUrl":"https://anime-world.in","lang":"bn","typeSource":"multiple","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/all/animeworldindia/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/all/animeworldindia/animeworldindia.dart","apiUrl":"","version":"0.0.3","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"AnimeWorld India","id":788028349,"baseUrl":"https://anime-world.in","lang":"hi","typeSource":"multiple","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/all/animeworldindia/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/all/animeworldindia/animeworldindia.dart","apiUrl":"","version":"0.0.3","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"AnimeWorld India","id":486955727,"baseUrl":"https://anime-world.in","lang":"ja","typeSource":"multiple","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/all/animeworldindia/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/all/animeworldindia/animeworldindia.dart","apiUrl":"","version":"0.0.3","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"AnimeWorld India","id":571428165,"baseUrl":"https://anime-world.in","lang":"ml","typeSource":"multiple","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/all/animeworldindia/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/all/animeworldindia/animeworldindia.dart","apiUrl":"","version":"0.0.3","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"AnimeWorld India","id":976578551,"baseUrl":"https://anime-world.in","lang":"mr","typeSource":"multiple","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/all/animeworldindia/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/all/animeworldindia/animeworldindia.dart","apiUrl":"","version":"0.0.3","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"AnimeWorld India","id":908421454,"baseUrl":"https://anime-world.in","lang":"ta","typeSource":"multiple","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/all/animeworldindia/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/all/animeworldindia/animeworldindia.dart","apiUrl":"","version":"0.0.3","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"AnimeWorld India","id":619885111,"baseUrl":"https://anime-world.in","lang":"te","typeSource":"multiple","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/all/animeworldindia/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/all/animeworldindia/animeworldindia.dart","apiUrl":"","version":"0.0.3","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"Nyaa","id":204272987,"baseUrl":"https://nyaa.si","lang":"all","typeSource":"torrent","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/all/nyaa/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/all/nyaa/nyaa.dart","apiUrl":"","version":"0.0.2","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"AnimePahe","id":534387145,"baseUrl":"https://www.animepahe.ru","lang":"en","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/en/animepahe/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/en/animepahe/animepahe.dart","apiUrl":"","version":"0.0.4","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"AnimeToast","id":922522471,"baseUrl":"https://animetoast.cc","lang":"de","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/de/animetoast/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/de/animetoast/animetoast.dart","apiUrl":"","version":"0.0.2","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"AnimesVision","id":182512102,"baseUrl":"https://animes.vision","lang":"pt-br","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/pt/animesvision/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/pt/animesvision/animesvision.dart","apiUrl":"","version":"0.0.15","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"diziWatch","id":585912766,"baseUrl":"https://diziwatch.net","lang":"tr","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/tr/diziwatch/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/tr/diziwatch/diziwatch.dart","apiUrl":"","version":"0.0.1","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"AniZone","id":525728745,"baseUrl":"https://v1.animesz.xyz","lang":"fr","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/fr/anizone/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/fr/anizone/anizone.dart","apiUrl":"","version":"0.0.2","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"AnimeOnline.Ninja","id":802700084,"baseUrl":"https://ww3.animeonline.ninja","lang":"es","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/es/animeonlineninja/icon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/anime/src/es/animeonlineninja/animeonlineninja.dart","apiUrl":"","version":"0.0.3","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":0},{"name":"AnimeWorld","id":368490446,"baseUrl":"https://www.animeworld.so","lang":"it","typeSource":"single","iconUrl":"https://i.postimg.cc/RFRGfBvP/FVLyB1I.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/anime/src/it/animeworld.js","apiUrl":"","version":"0.0.11","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"SerienStream","id":178264452,"baseUrl":"https://s.to","lang":"de","typeSource":"single","iconUrl":"https://s.to/favicon.ico","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/anime/src/de/serienstream.js","apiUrl":"","version":"0.0.2","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"AniWorld","id":746621198,"baseUrl":"https://aniworld.to","lang":"de","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/de.aniworld.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/anime/src/de/aniworld.js","apiUrl":"","version":"0.3.0","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"AnimeFénix","id":750391210,"baseUrl":"https://www3.animefenix.tv","lang":"es","typeSource":"single","iconUrl":"https://www3.animefenix.tv/themes/fenix-neo/images/AveFenix.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/anime/src/es/animefenix.js","apiUrl":"","version":"0.1.12","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"AnimeFLV","id":32554550,"baseUrl":"https://www3.animeflv.net","lang":"es","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/es.animeflv.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/anime/src/es/animeflv.js","apiUrl":"","version":"0.0.1","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"JKAnime","id":1018721463,"baseUrl":"https://jkanime.net","lang":"es","typeSource":"single","iconUrl":"https://cdn.jkanime.net/logo_jk.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/anime/src/es/jkanime.js","apiUrl":"","version":"0.1.12","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"TioAnime","id":156757473,"baseUrl":"https://tioanime.com","lang":"es","typeSource":"single","iconUrl":"https://tioanime.com/assets/img/tio_fb.jpg","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/anime/src/es/tioanime.js","apiUrl":"","version":"0.1.11","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"非凡资源","id":797525486,"baseUrl":"http://ffzy.tv","lang":"zh","typeSource":"single","iconUrl":"http://ffzy.tv/template/default/img/favicon.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/anime/src/zh/ffzy.js","apiUrl":"","version":"0.0.1","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"樱花动漫","id":781484038,"baseUrl":"http://www.iyinghua.io","lang":"zh","typeSource":"single","iconUrl":"http://www.iyinghua.io/js/20180601/favicon.ico","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/anime/src/zh/yhdm.js","apiUrl":"","version":"0.0.15","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"360资源","id":750729164,"baseUrl":"https://360zy.com","lang":"zh","typeSource":"single","iconUrl":"https://360zy.com/favicon.ico","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/anime/src/zh/360zy.js","apiUrl":"","version":"0.0.1","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"极速资源","id":593630482,"baseUrl":"https://wwww.jisuzy.com","lang":"zh","typeSource":"single","iconUrl":"https://www.jisuzy.com/template/default/images/site_logo.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/anime/src/zh/jisuzy.js","apiUrl":"","version":"0.0.1","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"天空资源网","id":967317255,"baseUrl":"https://tiankongzy.com","lang":"zh","typeSource":"single","iconUrl":"https://api.tiankongapi.com/template/v10012/images/logo.jpg","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/anime/src/zh/tiankongzy.js","apiUrl":"","version":"0.0.1","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"玩偶哥哥","id":14810567,"baseUrl":"https://www.wogg.net","lang":"zh","typeSource":"single","iconUrl":"https://imgsrc.baidu.com/forum/pic/item/4b90f603738da977d5da660af651f8198618e31f.jpg","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/anime/src/zh/wogg.js","apiUrl":"","version":"0.0.2","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"多多影音","id":400189518,"baseUrl":"https://tv.yydsys.top","lang":"zh","typeSource":"single","iconUrl":"https://tv.yydsys.top/template/DYXS2/static/picture/logo.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/anime/src/zh/yydsys.js","apiUrl":"","version":"0.0.2","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"华为吧资源","id":790593517,"baseUrl":"https://huaweiba.live","lang":"zh","typeSource":"single","iconUrl":"https://huaweiba.live/template/ziyuan/images/logo2.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/anime/src/zh/huaweiba.js","apiUrl":"","version":"0.0.1","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"蜜柑计划","id":1032743453,"baseUrl":"https://mikanime.tv","lang":"zh","typeSource":"torrent","iconUrl":"https://mikanime.tv/images/mikan-pic.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/anime/src/zh/mikan.js","apiUrl":"","version":"0.0.15","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"AllAnime","id":558217176,"baseUrl":"https://allanime.to","lang":"en","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/en.allanime.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/anime/src/en/allanime.js","apiUrl":"https://api.allanime.day/api","version":"0.0.35","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1},{"name":"NetflixMirror","id":446414301,"baseUrl":"https://iosmirror.cc","lang":"all","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/all.netflixmirror.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/anime/src/all/netflixmirror.js","apiUrl":"","version":"0.0.45","isManga":false,"isFullData":false,"appMinVerReq":"0.2.0","additionalParams":"","sourceCodeLanguage":1}] \ No newline at end of file diff --git a/javascript/anime/src/de/aniworld.js b/javascript/anime/src/de/aniworld.js index ae60b0e..2032e28 100644 --- a/javascript/anime/src/de/aniworld.js +++ b/javascript/anime/src/de/aniworld.js @@ -7,7 +7,7 @@ const mangayomiSources = [{ "typeSource": "single", "isManga": false, "isNsfw": false, - "version": "0.3.1", + "version": "0.3.0", "dateFormat": "", "dateFormatLocale": "", "pkgPath": "anime/src/de/aniworld.js" @@ -136,20 +136,17 @@ class DefaultExtension extends MProvider { let promises = []; const videos = []; - const preferences = new SharedPreferences(); - const hostFilter = preferences.get("host_filter"); - const langFilter = preferences.get("lang_filter"); - const redirectsElements = document.select("ul.row li"); + const hostFilter = new SharedPreferences().get("host_filter"); const dartClient = new Client({ 'useDartHttpClient': true, "followRedirects": false }); for (const element of redirectsElements) { - const langkey = element.attr("data-lang-key"); - const lang = (langkey == 1 || langkey == 3) ? 'Deutscher' : 'Englischer'; - const type = (langkey == 1) ? 'Dub' : 'Sub'; const host = element.selectFirst("a h4").text; - if (hostFilter.includes(host) && langFilter.includes(`${lang} ${type}`)) { + if (hostFilter.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; @@ -169,14 +166,7 @@ class DefaultExtension extends MProvider { const languageValues = ['Deutscher', 'Englischer']; const types = ['Dub', 'Sub']; const resolutions = ['1080p', '720p', '480p']; - const hosts = ['Doodstream', 'Filemoon', 'Luluvdo', 'SpeedFiles', 'Streamtape', 'Vidoza', 'VOE']; - const languageFilters = []; - - for (const lang of languageValues) { - for (const type of types) { - languageFilters.push(`${lang} ${type}`); - } - } + const hosts = ['Doodstream', 'Filemoon', 'SpeedFiles', 'Streamtape', 'Vidoza', 'VOE']; return [ { @@ -219,21 +209,11 @@ class DefaultExtension extends MProvider { entryValues: hosts } }, - { - key: "lang_filter", - multiSelectListPreference: { - title: "Sprachen auswählen", - summary: "Wähle aus welche Sprachen dir angezeigt werden sollen. Weniger streams zu laden beschleunigt den Start der Videos.", - entries: languageFilters, - entryValues: languageFilters, - values: languageFilters - } - }, { key: "host_filter", multiSelectListPreference: { title: "Hoster auswählen", - summary: "Wähle aus welche Hoster dir angezeigt werden sollen. Weniger streams zu laden beschleunigt den Start der Videos.", + summary: "Wähle aus welche Hoster dir angezeigt werden sollen. Weniger hoster zu laden beschleunigt den Start der Videos.", entries: hosts, entryValues: hosts, values: hosts @@ -245,7 +225,7 @@ class DefaultExtension extends MProvider { /*************************************************************************************************** * -* mangayomi-js-helpers v1.2 +* mangayomi-js-helpers v1.1 * * # Video Extractors * - vidGuardExtractor @@ -257,7 +237,6 @@ class DefaultExtension extends MProvider { * - filemoonExtractor * - mixdropExtractor * - speedfilesExtractor -* - luluvdoExtractor * - burstcloudExtractor (not working, see description) * * # Video Extractor Wrappers @@ -384,20 +363,15 @@ async function vidHideExtractor(url) { } async function filemoonExtractor(url, headers) { - headers = headers ?? {}; - 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'; - delete headers['user-agent']; - let res = await new Client().get(url, headers); 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', - 'User-Agent': headers['User-Agent'] + 'Accept-Language': 'de,en-US;q=0.7,en;q=0.3' }); } - return await jwplayerExtractor(res.body, headers); + return await jwplayerExtractor(res.body); } async function mixdropExtractor(url) { @@ -452,14 +426,6 @@ async function speedfilesExtractor(url) { return [{url: videoUrl, originalUrl: videoUrl, quality: '', headers: null}]; } -async function luluvdoExtractor(url) { - const client = new Client(); - const match = url.match(/(.*?:\/\/.*?)\/.*\/(.*)/); - const headers = {'user-agent': 'Mangayomi'}; - const res = await client.get(`${match[1]}/dl?op=embed&file_code=${match[2]}`, headers); - return await jwplayerExtractor(res.body, headers); -} - /** Does not work: Client always sets 'charset=utf-8' in Content-Type. */ async function burstcloudExtractor(url) { let client = new Client(); @@ -561,7 +527,6 @@ extractAny.methods = { 'burstcloud': burstcloudExtractor, 'doodstream': doodExtractor, 'filemoon': filemoonExtractor, - 'luluvdo': luluvdoExtractor, 'mixdrop': mixdropExtractor, 'mp4upload': mp4UploadExtractor, 'okru': okruExtractor, @@ -613,10 +578,6 @@ async function m3u8Extractor(url, headers = null) { const res = await new Client().get(url, headers); const text = res.body; - if (res.statusCode != 200) { - return []; - } - // collect media for (const match of text.matchAll(/#EXT-X-MEDIA:(.*)/g)) { const info = match[1], medium = {}; diff --git a/javascript/anime/src/es/animefenix.js b/javascript/anime/src/es/animefenix.js index 659dd57..2d6dc69 100644 --- a/javascript/anime/src/es/animefenix.js +++ b/javascript/anime/src/es/animefenix.js @@ -6,7 +6,7 @@ const mangayomiSources = [{ "iconUrl": "https://www3.animefenix.tv/themes/fenix-neo/images/AveFenix.png", "typeSource": "single", "isManga": false, - "version": "0.1.13", + "version": "0.1.12", "dateFormat": "", "dateFormatLocale": "", "pkgPath": "anime/src/es/animefenix.js" @@ -293,7 +293,7 @@ class DefaultExtension extends MProvider { /*************************************************************************************************** * -* mangayomi-js-helpers v1.2 +* mangayomi-js-helpers v1.1 * * # Video Extractors * - vidGuardExtractor @@ -305,7 +305,6 @@ class DefaultExtension extends MProvider { * - filemoonExtractor * - mixdropExtractor * - speedfilesExtractor -* - luluvdoExtractor * - burstcloudExtractor (not working, see description) * * # Video Extractor Wrappers @@ -432,20 +431,15 @@ async function vidHideExtractor(url) { } async function filemoonExtractor(url, headers) { - headers = headers ?? {}; - 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'; - delete headers['user-agent']; - let res = await new Client().get(url, headers); 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', - 'User-Agent': headers['User-Agent'] + 'Accept-Language': 'de,en-US;q=0.7,en;q=0.3' }); } - return await jwplayerExtractor(res.body, headers); + return await jwplayerExtractor(res.body); } async function mixdropExtractor(url) { @@ -500,14 +494,6 @@ async function speedfilesExtractor(url) { return [{url: videoUrl, originalUrl: videoUrl, quality: '', headers: null}]; } -async function luluvdoExtractor(url) { - const client = new Client(); - const match = url.match(/(.*?:\/\/.*?)\/.*\/(.*)/); - const headers = {'user-agent': 'Mangayomi'}; - const res = await client.get(`${match[1]}/dl?op=embed&file_code=${match[2]}`, headers); - return await jwplayerExtractor(res.body, headers); -} - /** Does not work: Client always sets 'charset=utf-8' in Content-Type. */ async function burstcloudExtractor(url) { let client = new Client(); @@ -609,7 +595,6 @@ extractAny.methods = { 'burstcloud': burstcloudExtractor, 'doodstream': doodExtractor, 'filemoon': filemoonExtractor, - 'luluvdo': luluvdoExtractor, 'mixdrop': mixdropExtractor, 'mp4upload': mp4UploadExtractor, 'okru': okruExtractor, @@ -661,10 +646,6 @@ async function m3u8Extractor(url, headers = null) { const res = await new Client().get(url, headers); const text = res.body; - if (res.statusCode != 200) { - return []; - } - // collect media for (const match of text.matchAll(/#EXT-X-MEDIA:(.*)/g)) { const info = match[1], medium = {}; diff --git a/javascript/anime/src/es/jkanime.js b/javascript/anime/src/es/jkanime.js index 0806650..cc07039 100644 --- a/javascript/anime/src/es/jkanime.js +++ b/javascript/anime/src/es/jkanime.js @@ -6,7 +6,7 @@ const mangayomiSources = [{ "iconUrl": "https://cdn.jkanime.net/logo_jk.png", "typeSource": "single", "isManga": false, - "version": "0.1.13", + "version": "0.1.12", "dateFormat": "", "dateFormatLocale": "", "pkgPath": "anime/src/es/jkanime.js" @@ -388,7 +388,7 @@ class DefaultExtension extends MProvider { /*************************************************************************************************** * -* mangayomi-js-helpers v1.2 +* mangayomi-js-helpers v1.1 * * # Video Extractors * - vidGuardExtractor @@ -400,7 +400,6 @@ class DefaultExtension extends MProvider { * - filemoonExtractor * - mixdropExtractor * - speedfilesExtractor -* - luluvdoExtractor * - burstcloudExtractor (not working, see description) * * # Video Extractor Wrappers @@ -527,20 +526,15 @@ async function vidHideExtractor(url) { } async function filemoonExtractor(url, headers) { - headers = headers ?? {}; - 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'; - delete headers['user-agent']; - let res = await new Client().get(url, headers); 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', - 'User-Agent': headers['User-Agent'] + 'Accept-Language': 'de,en-US;q=0.7,en;q=0.3' }); } - return await jwplayerExtractor(res.body, headers); + return await jwplayerExtractor(res.body); } async function mixdropExtractor(url) { @@ -595,14 +589,6 @@ async function speedfilesExtractor(url) { return [{url: videoUrl, originalUrl: videoUrl, quality: '', headers: null}]; } -async function luluvdoExtractor(url) { - const client = new Client(); - const match = url.match(/(.*?:\/\/.*?)\/.*\/(.*)/); - const headers = {'user-agent': 'Mangayomi'}; - const res = await client.get(`${match[1]}/dl?op=embed&file_code=${match[2]}`, headers); - return await jwplayerExtractor(res.body, headers); -} - /** Does not work: Client always sets 'charset=utf-8' in Content-Type. */ async function burstcloudExtractor(url) { let client = new Client(); @@ -704,7 +690,6 @@ extractAny.methods = { 'burstcloud': burstcloudExtractor, 'doodstream': doodExtractor, 'filemoon': filemoonExtractor, - 'luluvdo': luluvdoExtractor, 'mixdrop': mixdropExtractor, 'mp4upload': mp4UploadExtractor, 'okru': okruExtractor, @@ -756,10 +741,6 @@ async function m3u8Extractor(url, headers = null) { const res = await new Client().get(url, headers); const text = res.body; - if (res.statusCode != 200) { - return []; - } - // collect media for (const match of text.matchAll(/#EXT-X-MEDIA:(.*)/g)) { const info = match[1], medium = {}; diff --git a/javascript/anime/src/es/tioanime.js b/javascript/anime/src/es/tioanime.js index dfdf059..14beccb 100644 --- a/javascript/anime/src/es/tioanime.js +++ b/javascript/anime/src/es/tioanime.js @@ -6,7 +6,7 @@ const mangayomiSources = [{ "iconUrl": "https://tioanime.com/assets/img/tio_fb.jpg", "typeSource": "single", "isManga": false, - "version": "0.1.12", + "version": "0.1.11", "dateFormat": "", "dateFormatLocale": "", "pkgPath": "anime/src/es/tioanime.js" @@ -158,7 +158,7 @@ class DefaultExtension extends MProvider { /*************************************************************************************************** * -* mangayomi-js-helpers v1.2 +* mangayomi-js-helpers v1.1 * * # Video Extractors * - vidGuardExtractor @@ -170,7 +170,6 @@ class DefaultExtension extends MProvider { * - filemoonExtractor * - mixdropExtractor * - speedfilesExtractor -* - luluvdoExtractor * - burstcloudExtractor (not working, see description) * * # Video Extractor Wrappers @@ -297,20 +296,15 @@ async function vidHideExtractor(url) { } async function filemoonExtractor(url, headers) { - headers = headers ?? {}; - 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'; - delete headers['user-agent']; - let res = await new Client().get(url, headers); 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', - 'User-Agent': headers['User-Agent'] + 'Accept-Language': 'de,en-US;q=0.7,en;q=0.3' }); } - return await jwplayerExtractor(res.body, headers); + return await jwplayerExtractor(res.body); } async function mixdropExtractor(url) { @@ -365,14 +359,6 @@ async function speedfilesExtractor(url) { return [{url: videoUrl, originalUrl: videoUrl, quality: '', headers: null}]; } -async function luluvdoExtractor(url) { - const client = new Client(); - const match = url.match(/(.*?:\/\/.*?)\/.*\/(.*)/); - const headers = {'user-agent': 'Mangayomi'}; - const res = await client.get(`${match[1]}/dl?op=embed&file_code=${match[2]}`, headers); - return await jwplayerExtractor(res.body, headers); -} - /** Does not work: Client always sets 'charset=utf-8' in Content-Type. */ async function burstcloudExtractor(url) { let client = new Client(); @@ -474,7 +460,6 @@ extractAny.methods = { 'burstcloud': burstcloudExtractor, 'doodstream': doodExtractor, 'filemoon': filemoonExtractor, - 'luluvdo': luluvdoExtractor, 'mixdrop': mixdropExtractor, 'mp4upload': mp4UploadExtractor, 'okru': okruExtractor, @@ -526,10 +511,6 @@ async function m3u8Extractor(url, headers = null) { const res = await new Client().get(url, headers); const text = res.body; - if (res.statusCode != 200) { - return []; - } - // collect media for (const match of text.matchAll(/#EXT-X-MEDIA:(.*)/g)) { const info = match[1], medium = {}; diff --git a/javascript/anime/src/it/animeworld.js b/javascript/anime/src/it/animeworld.js index a73df28..47fedf3 100644 --- a/javascript/anime/src/it/animeworld.js +++ b/javascript/anime/src/it/animeworld.js @@ -6,7 +6,7 @@ const mangayomiSources = [{ "iconUrl": "https://i.postimg.cc/RFRGfBvP/FVLyB1I.png", "typeSource": "single", "isManga": false, - "version": "0.0.12", + "version": "0.0.11", "dateFormat": "", "dateFormatLocale": "", "pkgPath": "anime/src/it/animeworld.js" @@ -314,7 +314,7 @@ class DefaultExtension extends MProvider { /*************************************************************************************************** * -* mangayomi-js-helpers v1.2 +* mangayomi-js-helpers v1.1 * * # Video Extractors * - vidGuardExtractor @@ -326,7 +326,6 @@ class DefaultExtension extends MProvider { * - filemoonExtractor * - mixdropExtractor * - speedfilesExtractor -* - luluvdoExtractor * - burstcloudExtractor (not working, see description) * * # Video Extractor Wrappers @@ -453,20 +452,15 @@ async function vidHideExtractor(url) { } async function filemoonExtractor(url, headers) { - headers = headers ?? {}; - 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'; - delete headers['user-agent']; - let res = await new Client().get(url, headers); 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', - 'User-Agent': headers['User-Agent'] + 'Accept-Language': 'de,en-US;q=0.7,en;q=0.3' }); } - return await jwplayerExtractor(res.body, headers); + return await jwplayerExtractor(res.body); } async function mixdropExtractor(url) { @@ -521,14 +515,6 @@ async function speedfilesExtractor(url) { return [{url: videoUrl, originalUrl: videoUrl, quality: '', headers: null}]; } -async function luluvdoExtractor(url) { - const client = new Client(); - const match = url.match(/(.*?:\/\/.*?)\/.*\/(.*)/); - const headers = {'user-agent': 'Mangayomi'}; - const res = await client.get(`${match[1]}/dl?op=embed&file_code=${match[2]}`, headers); - return await jwplayerExtractor(res.body, headers); -} - /** Does not work: Client always sets 'charset=utf-8' in Content-Type. */ async function burstcloudExtractor(url) { let client = new Client(); @@ -630,7 +616,6 @@ extractAny.methods = { 'burstcloud': burstcloudExtractor, 'doodstream': doodExtractor, 'filemoon': filemoonExtractor, - 'luluvdo': luluvdoExtractor, 'mixdrop': mixdropExtractor, 'mp4upload': mp4UploadExtractor, 'okru': okruExtractor, @@ -682,10 +667,6 @@ async function m3u8Extractor(url, headers = null) { const res = await new Client().get(url, headers); const text = res.body; - if (res.statusCode != 200) { - return []; - } - // collect media for (const match of text.matchAll(/#EXT-X-MEDIA:(.*)/g)) { const info = match[1], medium = {}; diff --git a/javascript/manga/src/ru/mangalib.js b/javascript/manga/src/ru/mangalib.js new file mode 100644 index 0000000..d3fd688 --- /dev/null +++ b/javascript/manga/src/ru/mangalib.js @@ -0,0 +1,371 @@ +const mangayomiSources = [{ + "name": "Mangalib", + "lang": 'ru', + "baseUrl": "https://mangalib.org/ru", + "apiUrl": "https://api.mangalib.me/api", + "iconUrl": "https://mangalib.org/static/images/logo/ml/icon-180.png", + "typeSource": "single", + "isManga": true, + "isNsfw": true, + "version": "0.0.1", + "dateFormat": "", + "dateFormatLocale": "", + "pkgPath": "manga/src/ru/mangalib.js" +}]; + +// filters: https://api.mangalib.me/api/constants?fields[]=genres&fields[]=tags&fields[]=types&fields[]=scanlateStatus&fields[]=status&fields[]=format&fields[]=ageRestriction +// directory: https://api.mangalib.me/api/manga?q=encodeURIComponent(query)&sort_by=(|chap_count|views|rate_avg|releaseDate|last_chapter_at|created_at|name|rus_name)&sort_type=(|asc)&page=2 +// details: https://api.mangalib.me/api/manga/34466--jeonjijeog-dogja-sijeom_?fields[]=chap_count&fields[]=summary&fields[]=genres&fields[]=authors&fields[]=artists +// chapters: https://api.mangalib.me/api/manga/34466--jeonjijeog-dogja-sijeom_/chapters +// pages: https://api.mangalib.me/api/manga/34466--jeonjijeog-dogja-sijeom_/chapter?number=147&volume=1 +// image servers: https://api.mangalib.me/api/constants?fields[]=imageServers +class DefaultExtension extends MProvider { + constructor () { + super(); + this.client = new Client(); + this.apiHeaders = { + 'accept': '*/*', + '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'}; + this.getFilterUrl = this.source.apiUrl + '/constants?fields[]=genres&fields[]=tags&fields[]=types&fields[]=scanlateStatus&fields[]=status&fields[]=format&fields[]=ageRestriction'; + } + parseStatus(status) { + return { + "Онгоинг": 0, + "Завершён": 1, + "Приостановлен": 2, + "Выпуск прекращён": 3, + "Анонс": 4 + }[status] ?? 5; + } + async parseMangaList(url) { + const res = await this.client.get(url, this.apiHeaders); + const json = JSON.parse(res.body); + let mangas = json.data.map(manga => ({ + name: manga.rus_name, + imageUrl: manga.cover.default, + link: manga.slug_url + })); + return { "list": mangas, "hasNextPage": json.meta.has_next_page }; + } + async getPopular(page) { + return await this.parseMangaList(this.source.apiUrl + `/manga?page=${page}`); + } + async getLatestUpdates(page) { + return await this.parseMangaList(this.source.apiUrl + `/manga?page=${page}&sort_by=last_chapter_at`); + } + async search(query, page, filters) { + let url = `${this.source.apiUrl}/manga?q=${encodeURIComponent(query)}` + // Search sometimes failed because filters were empty. I experienced this mostly on android... + if (!filters || filters.length == 0) { + return await this.parseMangaList(url + `&page=${page}`); + } + for (const filter of filters[0].state) { + if (filter.state == true) + url += `&types[]=${filter.value}`; + } + for (const filter of filters[1].state) { + if (filter.state == true) + url += `&caution[]=${filter.value}`; + } + + const minChapF = filters[2].state[0]; + const maxChapF = filters[2].state[1]; + const minChap = minChapF.values[minChapF.state].value; + const maxChap = maxChapF.values[maxChapF.state].value; + url += minChap ? `&chap_count_min=${minChap}` : ''; + url += maxChap ? `&chap_count_max=${maxChap}` : ''; + + const minYearF = filters[3].state[0]; + const maxYearF = filters[3].state[1]; + const minYear = minYearF.values[minYearF.state].value; + const maxYear = maxYearF.values[maxYearF.state].value; + url += minYear ? `&year_min=${minYear}` : ''; + url += maxYear ? `&year_max=${maxYear}` : ''; + + for (const filter of filters[4].state) { + if (filter.state == 1) + url += `&genres[]=${filter.value}`; + else if (filter.state == 2) + url += `&genres_exclude[]=${filter.value}`; + } + for (const filter of filters[5].state) { + if (filter.state == true) + url += `&status[]=${filter.value}`; + } + for (const filter of filters[6].state) { + if (filter.state == true) + url += `&scanlate_status[]=${filter.value}`; + } + for (const filter of filters[7].state) { + if (filter.state == 1) + url += `&format[]=${filter.value}`; + else if (filter.state == 2) + url += `&format_exclude[]=${filter.value}`; + } + const sortVal = filters[8].values[filters[8].state.index].value; + const sortType = filters[8].state.ascending ? 'asc' : ''; + url += sortVal ? `&sort_by=${sortVal}` : ''; + url += sortType ? `&sort_type=${sortType}` : ''; + + return await this.parseMangaList(url + `&page=${page}`); + } + async getDetail(url) { + const infoRes = await this.client.get(`${this.source.apiUrl}/manga/${url}?fields[]=chap_count&fields[]=summary&fields[]=genres&fields[]=authors&fields[]=artists`, this.apiHeaders); + const chapterRes = await this.client.get(`${this.source.apiUrl}/manga/${url}/chapters`, this.apiHeaders); + + const info = JSON.parse(infoRes.body).data; + const chapters = JSON.parse(chapterRes.body).data; + const chapterBaseUrl = `${this.source.apiUrl}/manga/${url}/chapter`; + + return { + name: info.name, + imageUrl: info.cover.default, + author: info.authors.map(x => x.name).join(', '), + artist: info.artists.map(x => x.name).join(', '), + status: this.parseStatus(info.status.label), + description: info.summary, + genre: info.genres.map(x => x.name), + chapters: chapters.map(c => ({ + name: `Том ${c.volume} Глава ${c.number}` + (c.name ? `: ${c.name}` : ''), + url: `${chapterBaseUrl}?number=${c.number}&volume=${c.volume}`, + dateUpload: new Date(c.branches[0].created_at).valueOf().toString(), + scanlator: c.branches[0].teams.map(x => x.name).join(', ') + })).reverse() + }; + } + // For manga chapter pages + async getPageList(url) { + const serverId = new SharedPreferences().get('imageServer'); + + let res = await this.client.get(`${this.source.apiUrl}/constants?fields[]=imageServers`, this.apiHeaders); + const imageServers = JSON.parse(res.body).data.imageServers; + const imageServer = imageServers.find(x => x.id == serverId).url; + + res = await this.client.get(url, this.apiHeaders); + const chapter = JSON.parse(res.body).data; + return chapter.pages.map(img => ({url: imageServer + img.url, headers: this.apiHeaders})); + } + getFilterList() { + const chapterCounts = ['1','5','10','20','30','40','50','100','200','500','1000','2000','5000','10000'].map(x => [x, x]); + const years = [...range(1980, new Date().getFullYear() + 1, -1), ...range(1930, 1971, -10)].map(x => { + x = x.toString(); + return [x, x]; + }); + return [ + { + type_name: "GroupFilter", + type: "type", + name: "Тип", + state: [ + ["Манга", 1], + ["OEL-манга", 4], + ["Манхва", 5], + ["Маньхуа", 6], + ["Руманга", 8], + ["Комикс", 9] + ].map(x => ({ type_name: 'CheckBox', name: x[0], value: `${x[1]}` })) + }, + { + type_name: "GroupFilter", + type: "age_restriction", + name: "возрастной рейтинг", + state: [ + ["Нет", 0], + ["6+", 1], + ["12+", 2], + ["16+", 3], + ["18+", 4] + ].map(x => ({ type_name: 'CheckBox', name: x[0], value: `${x[1]}` })) + }, + { + type_name: "GroupFilter", + type: "chapter_count", + name: "Количество глав", + state: [ + { + type_name: "SelectFilter", + type: "chap_count_min", + name: "от", + state: 0, + values: [['от', ''], ...chapterCounts].map(x => ({ type_name: 'SelectOption', name: x[0], value: x[1] })) + }, + { + type_name: "SelectFilter", + type: "chap_count_max", + name: "до", + state: 0, + values: [['до', ''], ...chapterCounts].map(x => ({ type_name: 'SelectOption', name: x[0], value: x[1] })) + } + ] + }, + { + type_name: "GroupFilter", + type: "years", + name: "Год выпуска", + state: [ + { + type_name: "SelectFilter", + type: "year_min", + name: "от", + state: 0, + values: [['от', ''], ...years].map(x => ({ type_name: 'SelectOption', name: x[0], value: x[1] })) + }, + { + type_name: "SelectFilter", + type: "year_max", + name: "до", + state: 0, + values: [['до', ''], ...years].map(x => ({ type_name: 'SelectOption', name: x[0], value: x[1] })) + } + ] + }, + { + type_name: "GroupFilter", + type: "genre", + name: "Жанры", + state: [ + ["Арт", 32, false], + ["Безумие", 91, false], + ["Боевик", 34, false], + ["Боевые искусства", 35, false], + ["Вампиры", 36, false], + ["Военное", 89, false], + ["Гарем", 37, false], + ["Гендерная интрига", 38, false], + ["Героическое фэнтези", 39, false], + ["Демоны", 81, false], + ["Детектив", 40, false], + ["Детское", 88, false], + ["Драма", 43, false], + ["Игра", 44, false], + ["Исекай", 79, false], + ["История", 45, false], + ["Киберпанк", 46, false], + ["Кодомо", 76, false], + ["Комедия", 47, false], + ["Космос", 83, false], + ["Магия", 85, false], + ["Махо-сёдзё", 48, false], + ["Машины", 90, false], + ["Меха", 49, false], + ["Мистика", 50, false], + ["Музыка", 80, false], + ["Научная фантастика", 51, false], + ["Омегаверс", 77, false], + ["Пародия", 86, false], + ["Повседневность", 52, false], + ["Полиция", 82, false], + ["Постапокалиптика", 53, false], + ["Приключения", 54, false], + ["Психология", 55, false], + ["Романтика", 56, false], + ["Самурайский боевик", 57, false], + ["Сверхъестественное", 58, false], + ["Сёдзё", 59, false], + ["Сёдзё-ай", 60, false], + ["Сёнэн-ай", 62, true], + ["Спорт", 63, false], + ["Супер сила", 87, false], + ["Сэйнэн", 64, false], + ["Трагедия", 65, false], + ["Триллер", 66, false], + ["Ужасы", 67, false], + ["Фантастика", 68, false], + ["Фэнтези", 69, false], + ["Хентай", 84, false], + ["Эротика", 71, true], + ["Этти", 72, false] + ].map(x => ({ type_name: 'TriState', name: x[0], value: `${x[1]}` })) + }, + { + type_name: "GroupFilter", + type: "status", + name: "Статус титула", + state: [ + ["Онгоинг", 1], + ["Завершён", 2], + ["Анонс", 3], + ["Приостановлен", 4], + ["Выпуск прекращён", 5] + ].map(x => ({ type_name: 'CheckBox', name: x[0], value: `${x[1]}` })) + }, + { + type_name: "GroupFilter", + type: "translation_status", + name: "Статус перевода", + state: [ + ["Продолжается", 1], + ["Завершён", 2], + ["Заморожен", 3], + ["Заброшен", 4] + ].map(x => ({ type_name: 'CheckBox', name: x[0], value: `${x[1]}` })) + }, + { + type_name: "GroupFilter", + type: "format", + name: "Формат выпуска", + state: [ + ["4-кома (Ёнкома)", 1], + ["Сборник", 2], + ["Додзинси", 3], + ["В цвете", 4], + ["Сингл", 5], + ["Веб", 6], + ["Вебтун", 7] + ].map(x => ({ type_name: 'TriState', name: x[0], value: `${x[1]}` })) + }, + { + type_name: "SortFilter", + type: "sort", + name: "Сортировать", + state: { + type_name: "SortState", + index: 0, + ascending: false + }, + values: [ + ['По популярности', ''], + ['По рейтингу', 'rate_avg'], + ['По просмотрам', 'views'], + ['Количество глав', 'chap_count'], + ['дата релиза', 'releaseDate'], + ['дата обновления', 'last_chapter_at'], + ['дата добавления', 'created_at'], + ['По названию (A-Z)', 'name'], + ['По названию (A-Я)', 'rus_name'] + ].map(x => ({ type_name: 'SelectOption', name: x[0], value: x[1] })) + } + ]; + } + getSourcePreferences() { + const imageServers = ['Первый', 'Второй', 'Сжатия', 'Скачивание', 'Crop pages']; + const imageServerValuess = ['main', 'secondary', 'compress', 'download', 'crop']; + return [ + { + key: 'imageServer', + listPreference: { + title: 'Image Server', + summary: '', + valueIndex: 0, + entries: imageServers, + entryValues: imageServerValuess + } + } + ]; + } +} + +function range (first, last, step) { + if (last <= first) + return []; + if (!step) { + step = 1; + } + if (!last) { + last = first; + first = 0; + } + const start = step > 0 ? first : last - 1; + let length = Math.ceil((last - first) / Math.abs(step)); + return Array.from(new Array(length), (x, i) => start + i * step); +} \ No newline at end of file