From 5132ebd716ef5174d11545f06ae01f571f6f2389 Mon Sep 17 00:00:00 2001 From: kodjomoustapha <107993382+kodjodevf@users.noreply.github.com> Date: Wed, 31 Jan 2024 13:32:53 +0100 Subject: [PATCH] Refactor --- CONTRIBUTING.md | 18 +++++----- .../datalifeengine/datalifeengine.dart | 33 ++++++++--------- anime/multisrc/datalifeengine/sources.dart | 2 +- anime/multisrc/dopeflix/dopeflix.dart | 25 ++++++------- anime/multisrc/dopeflix/sources.dart | 2 +- anime/multisrc/zorotheme/sources.dart | 2 +- anime/multisrc/zorotheme/zorotheme.dart | 25 ++++++------- .../all/animeworldindia/animeworldindia.dart | 35 +++++++++--------- anime/src/all/animeworldindia/sources.dart | 2 +- anime/src/all/nyaa/nyaa.dart | 36 ++++++++++--------- anime/src/all/nyaa/source.dart | 3 +- anime/src/ar/okanime/okanime.dart | 23 ++++++------ anime/src/ar/okanime/source.dart | 2 +- anime/src/de/aniflix/aniflix.dart | 35 +++++++++--------- anime/src/de/aniflix/source.dart | 2 +- anime/src/en/aniwave/aniwave.dart | 25 ++++++------- anime/src/en/aniwave/source.dart | 2 +- anime/src/en/dramacool/dramacool.dart | 23 ++++++------ anime/src/en/dramacool/source.dart | 2 +- anime/src/en/gogoanime/gogoanime.dart | 25 ++++++------- anime/src/en/gogoanime/source.dart | 2 +- anime/src/en/kisskh/kisskh.dart | 21 +++++------ anime/src/en/nineanimetv/nineanimetv.dart | 25 ++++++------- anime/src/en/nineanimetv/source.dart | 2 +- anime/src/en/uhdmovies/source.dart | 2 +- anime/src/en/uhdmovies/uhdmovies.dart | 23 ++++++------ anime/src/fr/animesama/animesama.dart | 25 ++++++------- anime/src/fr/animesama/source.dart | 2 +- anime/src/fr/animesultra/animesultra.dart | 21 +++++------ anime/src/fr/animesultra/source.dart | 2 +- anime/src/fr/franime/franime.dart | 21 +++++------ anime/src/fr/franime/source.dart | 2 +- anime/src/fr/otakufr/otakufr.dart | 25 ++++++------- anime/src/fr/otakufr/source.dart | 2 +- anime/src/hi/yomovies/yomovies.dart | 25 ++++++------- anime/src/id/nimegami/nimegami.dart | 21 +++++------ anime/src/id/nimegami/source.dart | 2 +- anime/src/id/oploverz/oploverz.dart | 21 +++++------ anime/src/id/oploverz/source.dart | 2 +- anime/src/id/otakudesu/otakudesu.dart | 21 +++++------ anime/src/id/otakudesu/source.dart | 2 +- anime/src/it/animesaturn/animesaturn.dart | 25 ++++++------- anime/src/it/animesaturn/source.dart | 2 +- anime/src/sq/filma24/filma24.dart | 25 ++++++------- anime/src/sq/filma24/source.dart | 2 +- index.json | 2 +- manga/multisrc/heancms/heancms.dart | 29 +++++++-------- manga/multisrc/heancms/sources.dart | 2 +- manga/multisrc/madara/madara.dart | 23 ++++++------ manga/multisrc/madara/sources.dart | 2 +- manga/multisrc/mangabox/mangabox.dart | 26 +++++++------- manga/multisrc/mangabox/sources.dart | 2 +- manga/multisrc/mangareader/mangareader.dart | 23 ++++++------ manga/multisrc/mangareader/sources.dart | 2 +- manga/multisrc/mmrcms/mmrcms.dart | 23 ++++++------ manga/multisrc/mmrcms/sources.dart | 2 +- manga/multisrc/nepnep/nepnep.dart | 23 ++++++------ manga/multisrc/nepnep/sources.dart | 2 +- manga/src/all/batoto/batoto.dart | 33 ++++++++--------- manga/src/all/batoto/sources.dart | 2 +- manga/src/all/comick/comick.dart | 23 ++++++------ manga/src/all/comick/sources.dart | 2 +- manga/src/all/mangadex/mangadex.dart | 33 ++++++++--------- manga/src/all/mangadex/sources.dart | 2 +- manga/src/en/mangahere/mangahere.dart | 23 ++++++------ manga/src/en/mangahere/source.dart | 2 +- model/source.dart | 2 +- 67 files changed, 482 insertions(+), 446 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index fe370910..080364b4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -60,50 +60,50 @@ class TestSource extends MProvider { bool get supportsLatest => true; @override - Future getPopular(MSource source, int page) async { + Future getPopular(int page) async { // TODO: implement } @override - Future getLatestUpdates(MSource source, int page) async { + Future getLatestUpdates(int page) async { // TODO: implement } @override Future search( - MSource source, String query, int page, FilterList filterList) async { + String query, int page, FilterList filterList) async { // TODO: implement } @override - Future getDetail(MSource source, String url) async { + Future getDetail(String url) async { // TODO: implement } // For anime episode video list @override - Future> getVideoList(MSource source, String url) async { + Future> getVideoList(String url) async { // TODO: implement } // For manga chapter pages @override - Future> getPageList(MSource source, String url) { + Future> getPageList(String url) { // TODO: implement } @override - List getFilterList(MSource source) { + List getFilterList() { // TODO: implement } @override - List getSourcePreferences(MSource source) { + List getSourcePreferences() { // TODO: implement } } -TestSource main() { +TestSource main(MSource source) { return TestSource(); } diff --git a/anime/multisrc/datalifeengine/datalifeengine.dart b/anime/multisrc/datalifeengine/datalifeengine.dart index 6151581e..471fb76f 100644 --- a/anime/multisrc/datalifeengine/datalifeengine.dart +++ b/anime/multisrc/datalifeengine/datalifeengine.dart @@ -2,29 +2,30 @@ import 'package:mangayomi/bridge_lib.dart'; import 'dart:convert'; class DataLifeEngine extends MProvider { - DataLifeEngine(); + DataLifeEngine({required this.source}); - final Client client = Client(); + MSource source; + + final Client client = Client(source); @override bool get supportsLatest => false; @override - Future getPopular(MSource source, int page) async { + Future getPopular(int page) async { final res = (await client .get(Uri.parse("${source.baseUrl}${getPath(source)}page/$page"))) .body; - return animeFromElement(res, source.baseUrl); + return animeFromElement(res); } @override - Future getLatestUpdates(MSource source, int page) async { + Future getLatestUpdates(int page) async { return MPages([], false); } @override - Future search( - MSource source, String query, int page, FilterList filterList) async { + Future search(String query, int page, FilterList filterList) async { final filters = filterList.filters; final baseUrl = source.baseUrl; String res = ""; @@ -65,11 +66,11 @@ class DataLifeEngine extends MProvider { res = (await client.get(Uri.parse(url))).body; } - return animeFromElement(res, baseUrl); + return animeFromElement(res); } @override - Future getDetail(MSource source, String url) async { + Future getDetail(String url) async { String res = (await client.get(Uri.parse(url))).body; MManga anime = MManga(); final description = xpath(res, '//span[@itemprop="description"]/text()'); @@ -116,7 +117,7 @@ class DataLifeEngine extends MProvider { } @override - Future> getVideoList(MSource source, String url) async { + Future> getVideoList(String url) async { List videos = []; final sUrls = url.split(','); for (var sUrl in sUrls) { @@ -143,7 +144,7 @@ class DataLifeEngine extends MProvider { return videos; } - MPages animeFromElement(String res, String baseUrl) { + MPages animeFromElement(String res) { final htmls = parseHtml(res).select("div#dle-content > div.mov"); List animeList = []; for (var h in htmls) { @@ -155,7 +156,7 @@ class DataLifeEngine extends MProvider { MManga anime = MManga(); anime.name = "$name ${season.isNotEmpty ? season.first.replaceAll("\n", " ") : ""}"; - anime.imageUrl = "$baseUrl$image"; + anime.imageUrl = "${source.baseUrl}$image"; anime.link = url; animeList.add(anime); } @@ -245,13 +246,13 @@ class DataLifeEngine extends MProvider { return [video]; } - String getPath(MSource source) { + String getPath() { if (source.name == "French Anime") return "/animes-vostfr/"; return "/serie-en-streaming/"; } @override - List getFilterList(MSource source) { + List getFilterList() { return [ HeaderFilter("La recherche de texte ignore les filtres"), if (source.name == "French Anime") @@ -326,6 +327,6 @@ class DataLifeEngine extends MProvider { } } -DataLifeEngine main() { - return DataLifeEngine(); +DataLifeEngine main(MSource source) { + return DataLifeEngine(source: source); } diff --git a/anime/multisrc/datalifeengine/sources.dart b/anime/multisrc/datalifeengine/sources.dart index af37a114..c1140aba 100644 --- a/anime/multisrc/datalifeengine/sources.dart +++ b/anime/multisrc/datalifeengine/sources.dart @@ -2,7 +2,7 @@ import '../../../model/source.dart'; import 'src/frenchanime/frenchanime.dart'; import 'src/wiflix/wiflix.dart'; -const _datalifeengineVersion = "0.0.25"; +const _datalifeengineVersion = "0.0.3"; const _datalifeengineSourceCodeUrl = "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/multisrc/datalifeengine/datalifeengine.dart"; diff --git a/anime/multisrc/dopeflix/dopeflix.dart b/anime/multisrc/dopeflix/dopeflix.dart index 2f389574..632fdb25 100644 --- a/anime/multisrc/dopeflix/dopeflix.dart +++ b/anime/multisrc/dopeflix/dopeflix.dart @@ -2,12 +2,14 @@ import 'package:mangayomi/bridge_lib.dart'; import 'dart:convert'; class DopeFlix extends MProvider { - DopeFlix(); + DopeFlix({required this.source}); - final Client client = Client(); + MSource source; + + final Client client = Client(source); @override - Future getPopular(MSource source, int page) async { + Future getPopular(int page) async { final res = (await client.get(Uri.parse( "${preferenceBaseUrl(source.id)}/${getPreferenceValue(source.id, "preferred_popular_page")}?page=$page"))) .body; @@ -15,7 +17,7 @@ class DopeFlix extends MProvider { } @override - Future getLatestUpdates(MSource source, int page) async { + Future getLatestUpdates(int page) async { final res = (await client.get(Uri.parse("${preferenceBaseUrl(source.id)}/home"))) .body; @@ -37,8 +39,7 @@ class DopeFlix extends MProvider { } @override - Future search( - MSource source, String query, int page, FilterList filterList) async { + Future search(String query, int page, FilterList filterList) async { final filters = filterList.filters; String url = "${preferenceBaseUrl(source.id)}"; @@ -81,7 +82,7 @@ class DopeFlix extends MProvider { } @override - Future getDetail(MSource source, String url) async { + Future getDetail(String url) async { url = getUrlWithoutDomain(url); final res = (await client.get(Uri.parse("${preferenceBaseUrl(source.id)}$url"))) @@ -145,7 +146,7 @@ class DopeFlix extends MProvider { } @override - Future> getVideoList(MSource source, String url) async { + Future> getVideoList(String url) async { url = getUrlWithoutDomain(url); final res = (await client.get(Uri.parse("${preferenceBaseUrl(source.id)}/$url"))) @@ -317,7 +318,7 @@ class DopeFlix extends MProvider { } @override - List getFilterList(MSource source) { + List getFilterList() { return [ SelectFilter("TypeFilter", "Type", 0, [ SelectFilterOption("All", "all"), @@ -413,7 +414,7 @@ class DopeFlix extends MProvider { } @override - List getSourcePreferences(MSource source) { + List getSourcePreferences() { return [ if (source.name == "DopeBox") ListPreference( @@ -542,6 +543,6 @@ class DopeFlix extends MProvider { } } -DopeFlix main() { - return DopeFlix(); +DopeFlix main(MSource source) { + return DopeFlix(source: source); } diff --git a/anime/multisrc/dopeflix/sources.dart b/anime/multisrc/dopeflix/sources.dart index c1e591e1..8581f0ae 100644 --- a/anime/multisrc/dopeflix/sources.dart +++ b/anime/multisrc/dopeflix/sources.dart @@ -2,7 +2,7 @@ import '../../../model/source.dart'; import 'src/dopebox/dopebox.dart'; import 'src/sflix/sflix.dart'; -const _dopeflixVersion = "0.0.35"; +const _dopeflixVersion = "0.0.4"; const _dopeflixSourceCodeUrl = "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/multisrc/dopeflix/dopeflix.dart"; diff --git a/anime/multisrc/zorotheme/sources.dart b/anime/multisrc/zorotheme/sources.dart index 5032053a..30c1552c 100644 --- a/anime/multisrc/zorotheme/sources.dart +++ b/anime/multisrc/zorotheme/sources.dart @@ -2,7 +2,7 @@ import '../../../model/source.dart'; import 'src/aniwatch/aniwatch.dart'; import 'src/kaido/kaido.dart'; -const _zorothemeVersion = "0.0.75"; +const _zorothemeVersion = "0.0.8"; const _zorothemeSourceCodeUrl = "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/multisrc/zorotheme/zorotheme.dart"; diff --git a/anime/multisrc/zorotheme/zorotheme.dart b/anime/multisrc/zorotheme/zorotheme.dart index d6a2544b..e997daae 100644 --- a/anime/multisrc/zorotheme/zorotheme.dart +++ b/anime/multisrc/zorotheme/zorotheme.dart @@ -2,12 +2,14 @@ import 'package:mangayomi/bridge_lib.dart'; import 'dart:convert'; class ZoroTheme extends MProvider { - ZoroTheme(); + ZoroTheme({required this.source}); - final Client client = Client(); + MSource source; + + final Client client = Client(source); @override - Future getPopular(MSource source, int page) async { + Future getPopular(int page) async { final res = (await client .get(Uri.parse("${source.baseUrl}/most-popular?page=$page"))) .body; @@ -16,7 +18,7 @@ class ZoroTheme extends MProvider { } @override - Future getLatestUpdates(MSource source, int page) async { + Future getLatestUpdates(int page) async { final res = (await client .get(Uri.parse("${source.baseUrl}/recently-updated?page=$page"))) .body; @@ -25,8 +27,7 @@ class ZoroTheme extends MProvider { } @override - Future search( - MSource source, String query, int page, FilterList filterList) async { + Future search(String query, int page, FilterList filterList) async { final filters = filterList.filters; String url = "${source.baseUrl}/"; @@ -119,7 +120,7 @@ class ZoroTheme extends MProvider { } @override - Future getDetail(MSource source, String url) async { + Future getDetail(String url) async { final statusList = [ {"Currently Airing": 0, "Finished Airing": 1} ]; @@ -170,7 +171,7 @@ class ZoroTheme extends MProvider { } @override - Future> getVideoList(MSource source, String url) async { + Future> getVideoList(String url) async { final id = substringAfterLast(url, '?ep='); final res = (await client.get( @@ -384,7 +385,7 @@ class ZoroTheme extends MProvider { ]; @override - List getFilterList(MSource source) { + List getFilterList() { return [ SelectFilter("TypeFilter", "Type", 0, [ SelectFilterOption("All", ""), @@ -518,7 +519,7 @@ class ZoroTheme extends MProvider { } @override - List getSourcePreferences(MSource source) { + List getSourcePreferences() { return [ ListPreference( key: "preferred_quality", @@ -606,6 +607,6 @@ class ZoroTheme extends MProvider { } } -ZoroTheme main() { - return ZoroTheme(); +ZoroTheme main(MSource source) { + return ZoroTheme(source: source); } diff --git a/anime/src/all/animeworldindia/animeworldindia.dart b/anime/src/all/animeworldindia/animeworldindia.dart index 7be85eef..078cd210 100644 --- a/anime/src/all/animeworldindia/animeworldindia.dart +++ b/anime/src/all/animeworldindia/animeworldindia.dart @@ -2,31 +2,32 @@ import 'package:mangayomi/bridge_lib.dart'; import 'dart:convert'; class AnimeWorldIndia extends MProvider { - AnimeWorldIndia(); + AnimeWorldIndia({required this.source}); - final Client client = Client(); + MSource source; + + final Client client = Client(source); @override - Future getPopular(MSource source, int page) async { + Future getPopular(int page) async { final res = (await client.get(Uri.parse( "${source.baseUrl}/advanced-search/page/$page/?s_lang=${source.lang}&s_orderby=viewed"))) .body; - return parseAnimeList(res, source.baseUrl); + return parseAnimeList(res); } @override - Future getLatestUpdates(MSource source, int page) async { + Future getLatestUpdates(int page) async { final res = (await client.get(Uri.parse( "${source.baseUrl}/advanced-search/page/$page/?s_lang=${source.lang}&s_orderby=update"))) .body; - return parseAnimeList(res, source.baseUrl); + return parseAnimeList(res); } @override - Future search( - MSource source, String query, int page, FilterList filterList) async { + Future search(String query, int page, FilterList filterList) async { final filters = filterList.filters; String url = "${source.baseUrl}/advanced-search/page/$page/?s_keyword=$query&s_lang=${source.lang}"; @@ -64,11 +65,11 @@ class AnimeWorldIndia extends MProvider { } final res = (await client.get(Uri.parse(url))).body; - return parseAnimeList(res, source.baseUrl); + return parseAnimeList(res); } @override - Future getDetail(MSource source, String url) async { + Future getDetail(String url) async { final res = (await client.get(Uri.parse(url))).body; MManga anime = MManga(); final document = parseHtml(res); @@ -143,7 +144,7 @@ class AnimeWorldIndia extends MProvider { } @override - Future> getVideoList(MSource source, String url) async { + Future> getVideoList(String url) async { final res = (await client.get(Uri.parse("${source.baseUrl}$url"))).body; var resJson = substringBefore( substringAfterLast(res, "\"players\":"), ",\"noplayer\":"); @@ -168,7 +169,7 @@ class AnimeWorldIndia extends MProvider { return sortVideos(videos, source.id); } - MPages parseAnimeList(String res, String baseUrl) { + MPages parseAnimeList(String res) { List animeList = []; final document = parseHtml(res); @@ -178,7 +179,7 @@ class AnimeWorldIndia extends MProvider { element.selectFirst("div.font-medium.line-clamp-2.mb-3").text; anime.link = element.selectFirst("a").getHref; anime.imageUrl = - "$baseUrl${getUrlWithoutDomain(element.selectFirst("img").getSrc)}"; + "${source.baseUrl}${getUrlWithoutDomain(element.selectFirst("img").getSrc)}"; animeList.add(anime); } final hasNextPage = xpath(res, @@ -244,7 +245,7 @@ class AnimeWorldIndia extends MProvider { } @override - List getFilterList(MSource source) { + List getFilterList() { return [ SelectFilter("TypeFilter", "Type", 0, [ SelectFilterOption("Any", "all"), @@ -343,7 +344,7 @@ class AnimeWorldIndia extends MProvider { } @override - List getSourcePreferences(MSource source) { + List getSourcePreferences() { return [ ListPreference( key: "preferred_quality", @@ -389,6 +390,6 @@ class AnimeWorldIndia extends MProvider { } } -AnimeWorldIndia main() { - return AnimeWorldIndia(); +AnimeWorldIndia main(MSource source) { + return AnimeWorldIndia(source: source); } diff --git a/anime/src/all/animeworldindia/sources.dart b/anime/src/all/animeworldindia/sources.dart index 840f095b..3a3fa68b 100644 --- a/anime/src/all/animeworldindia/sources.dart +++ b/anime/src/all/animeworldindia/sources.dart @@ -1,6 +1,6 @@ import '../../../../model/source.dart'; -const _animeworldindiaVersion = "0.0.15"; +const _animeworldindiaVersion = "0.0.2"; const _animeworldindiaSourceCodeUrl = "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/src/all/animeworldindia/animeworldindia.dart"; diff --git a/anime/src/all/nyaa/nyaa.dart b/anime/src/all/nyaa/nyaa.dart index 12d21692..00c25627 100644 --- a/anime/src/all/nyaa/nyaa.dart +++ b/anime/src/all/nyaa/nyaa.dart @@ -1,29 +1,30 @@ import 'package:mangayomi/bridge_lib.dart'; class Nyaa extends MProvider { - Nyaa(); + Nyaa({required this.source}); - final Client client = Client(); + MSource source; + + final Client client = Client(source); @override - Future getPopular(MSource source, int page) async { + Future getPopular(int page) async { final res = (await client.get(Uri.parse( "${source.baseUrl}/?f=0&c=${getPreferenceValue(source.id, "preferred_categorie_page")}&q=&s=downloads&o=desc&p=$page"))) .body; - return parseAnimeList(res, source.baseUrl); + return parseAnimeList(res); } @override - Future getLatestUpdates(MSource source, int page) async { + Future getLatestUpdates(int page) async { final res = (await client.get(Uri.parse( "${source.baseUrl}/?f=0&c=${getPreferenceValue(source.id, "preferred_categorie_page")}&q=$page"))) .body; - return parseAnimeList(res, source.baseUrl); + return parseAnimeList(res); } @override - Future search( - MSource source, String query, int page, FilterList filterList) async { + Future search(String query, int page, FilterList filterList) async { final filters = filterList.filters; String url = ""; url = @@ -36,11 +37,11 @@ class Nyaa extends MProvider { } } final res = (await client.get(Uri.parse(url))).body; - return parseAnimeList(res, source.baseUrl); + return parseAnimeList(res); } @override - Future getDetail(MSource source, String url) async { + Future getDetail(String url) async { MManga anime = MManga(); final res = (await client.get(Uri.parse(url))).body; final document = parseHtml(res); @@ -59,7 +60,7 @@ class Nyaa extends MProvider { } @override - List getFilterList(MSource source) { + List getFilterList() { return [ SortFilter("SortFilter", "Sort by", SortState(0, true), [ SelectFilterOption("None", ""), @@ -73,7 +74,7 @@ class Nyaa extends MProvider { } @override - List getSourcePreferences(MSource source) { + List getSourcePreferences() { return [ ListPreference( key: "preferred_categorie_page", @@ -85,7 +86,7 @@ class Nyaa extends MProvider { ]; } - MPages parseAnimeList(String res, String baseUrl) { + MPages parseAnimeList(String res) { List animeList = []; final document = parseHtml(res); @@ -94,7 +95,7 @@ class Nyaa extends MProvider { for (var value in values) { MManga anime = MManga(); anime.imageUrl = - "$baseUrl${getUrlWithoutDomain(value.selectFirst("td:nth-child(1) > a > img").getSrc)}"; + "${source.baseUrl}${getUrlWithoutDomain(value.selectFirst("td:nth-child(1) > a > img").getSrc)}"; MElement firstElement = value .select("td > a") .where((MElement e) => @@ -102,7 +103,8 @@ class Nyaa extends MProvider { !e.outerHtml.contains("#comments")) .toList() .first; - anime.link = "$baseUrl${getUrlWithoutDomain(firstElement.getHref)}"; + anime.link = + "${source.baseUrl}${getUrlWithoutDomain(firstElement.getHref)}"; anime.name = firstElement.attr("title"); animeList.add(anime); } @@ -121,6 +123,6 @@ class Nyaa extends MProvider { } } -Nyaa main() { - return Nyaa(); +Nyaa main(MSource source) { + return Nyaa(source: source); } diff --git a/anime/src/all/nyaa/source.dart b/anime/src/all/nyaa/source.dart index 6f15a2d5..69ab96ac 100644 --- a/anime/src/all/nyaa/source.dart +++ b/anime/src/all/nyaa/source.dart @@ -1,6 +1,6 @@ import '../../../../model/source.dart'; -const _nyaaVersion = "0.0.1"; +const _nyaaVersion = "0.0.15"; const _nyaaSourceCodeUrl = "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/src/all/nyaa/nyaa.dart"; @@ -16,5 +16,4 @@ Source _nyaaSource = Source( iconUrl: _iconUrl, version: _nyaaVersion, isManga: false, - appMinVerReq: "0.1.65", sourceCodeUrl: _nyaaSourceCodeUrl); diff --git a/anime/src/ar/okanime/okanime.dart b/anime/src/ar/okanime/okanime.dart index f0b7e412..470b02bd 100644 --- a/anime/src/ar/okanime/okanime.dart +++ b/anime/src/ar/okanime/okanime.dart @@ -2,12 +2,14 @@ import 'package:mangayomi/bridge_lib.dart'; import 'dart:convert'; class OkAnime extends MProvider { - OkAnime(); + OkAnime({required this.source}); - final Client client = Client(); + MSource source; + + final Client client = Client(source); @override - Future getPopular(MSource source, int page) async { + Future getPopular(int page) async { final res = (await client.get(Uri.parse(source.baseUrl))).body; List animeList = []; String path = @@ -27,7 +29,7 @@ class OkAnime extends MProvider { } @override - Future getLatestUpdates(MSource source, int page) async { + Future getLatestUpdates(int page) async { final res = (await client .get(Uri.parse("${source.baseUrl}/espisode-list?page=$page"))) .body; @@ -50,8 +52,7 @@ class OkAnime extends MProvider { } @override - Future search( - MSource source, String query, int page, FilterList filterList) async { + Future search(String query, int page, FilterList filterList) async { String url = "${source.baseUrl}/search/?s=$query"; if (page > 1) { url += "&page=$page"; @@ -78,7 +79,7 @@ class OkAnime extends MProvider { } @override - Future getDetail(MSource source, String url) async { + Future getDetail(String url) async { final statusList = [ {"يعرض الان": 0, "مكتمل": 1} ]; @@ -114,7 +115,7 @@ class OkAnime extends MProvider { } @override - Future> getVideoList(MSource source, String url) async { + Future> getVideoList(String url) async { final res = (await client.get(Uri.parse(url))).body; final urls = xpath(res, '//*[@id="streamlinks"]/a/@data-src'); final qualities = xpath(res, '//*[@id="streamlinks"]/a/span/text()'); @@ -143,7 +144,7 @@ class OkAnime extends MProvider { } @override - List getSourcePreferences(MSource source) { + List getSourcePreferences() { return [ ListPreference( key: "preferred_quality", @@ -217,6 +218,6 @@ class OkAnime extends MProvider { } } -OkAnime main() { - return OkAnime(); +OkAnime main(MSource source) { + return OkAnime(source: source); } diff --git a/anime/src/ar/okanime/source.dart b/anime/src/ar/okanime/source.dart index 51c0f828..57c779bd 100644 --- a/anime/src/ar/okanime/source.dart +++ b/anime/src/ar/okanime/source.dart @@ -1,7 +1,7 @@ import '../../../../model/source.dart'; Source get okanimeSource => _okanimeSource; -const _okanimeVersion = "0.0.45"; +const _okanimeVersion = "0.0.5"; const _okanimeSourceCodeUrl = "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/src/ar/okanime/okanime.dart"; Source _okanimeSource = Source( diff --git a/anime/src/de/aniflix/aniflix.dart b/anime/src/de/aniflix/aniflix.dart index da028625..3195d02b 100644 --- a/anime/src/de/aniflix/aniflix.dart +++ b/anime/src/de/aniflix/aniflix.dart @@ -2,23 +2,25 @@ import 'package:mangayomi/bridge_lib.dart'; import 'dart:convert'; class AniFlix extends MProvider { - AniFlix(); + AniFlix({required this.source}); - final Client client = Client(); + MSource source; + + final Client client = Client(source); @override - Future getPopular(MSource source, int page) async { + Future getPopular(int page) async { final headers = getHeader(source.baseUrl); final res = (await client.get( Uri.parse("${source.baseUrl}/api/show/new/${page - 1}"), headers: headers)) .body; - return parseAnimeList(res, source.baseUrl, true); + return parseAnimeList(res, true); } @override - Future getLatestUpdates(MSource source, int page) async { + Future getLatestUpdates(int page) async { final headers = getHeader(source.baseUrl); final res = (await client.get( Uri.parse("${source.baseUrl}/api/show/airing/${page - 1}"), @@ -50,17 +52,16 @@ class AniFlix extends MProvider { } @override - Future search( - MSource source, String query, int page, FilterList filterList) async { + Future search(String query, int page, FilterList filterList) async { final res = await client.post( Uri.parse("${source.baseUrl}/api/show/search"), headers: {'Referer': source.baseUrl}, body: {"search": query}); - return parseAnimeList(res.body, source.baseUrl, false); + return parseAnimeList(res.body, false); } @override - Future getDetail(MSource source, String url) async { + Future getDetail(String url) async { final res = (await client.get(Uri.parse("${source.baseUrl}$url"))).body; MManga anime = MManga(); final jsonRes = json.decode(res); @@ -117,7 +118,7 @@ class AniFlix extends MProvider { } @override - Future> getVideoList(MSource source, String url) async { + Future> getVideoList(String url) async { final res = (await client.get(Uri.parse("${source.baseUrl}$url"), headers: getHeader(source.baseUrl))) .body; @@ -147,15 +148,17 @@ class AniFlix extends MProvider { return sortVideos(videos, source.id); } - MPages parseAnimeList(String res, String baseUrl, bool hasNextPage) { + MPages parseAnimeList(String res, bool hasNextPage) { final datas = json.decode(res); List animeList = []; for (var data in datas) { MManga anime = MManga(); anime.name = data["name"]; - anime.imageUrl = "$baseUrl/storage/" + (data["cover_portrait"] ?? ""); - anime.link = getUrlWithoutDomain("$baseUrl/api/show/${data['url']}"); + anime.imageUrl = + "${source.baseUrl}/storage/" + (data["cover_portrait"] ?? ""); + anime.link = + getUrlWithoutDomain("${source.baseUrl}/api/show/${data['url']}"); anime.description = data["description"]; if (data["airing"] == 0) { anime.status = MStatus.completed; @@ -191,7 +194,7 @@ class AniFlix extends MProvider { } @override - List getSourcePreferences(MSource source) { + List getSourcePreferences() { return [ ListPreference( key: "preferred_hoster", @@ -232,6 +235,6 @@ Map getHeader(String url) { return {'Referer': url}; } -AniFlix main() { - return AniFlix(); +AniFlix main(MSource source) { + return AniFlix(source: source); } diff --git a/anime/src/de/aniflix/source.dart b/anime/src/de/aniflix/source.dart index 08516c9f..73d67c24 100644 --- a/anime/src/de/aniflix/source.dart +++ b/anime/src/de/aniflix/source.dart @@ -1,7 +1,7 @@ import '../../../../model/source.dart'; Source get aniflix => _aniflix; -const _aniflixVersion = "0.0.2"; +const _aniflixVersion = "0.0.25"; const _aniflixCodeUrl = "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/src/de/aniflix/aniflix.dart"; Source _aniflix = Source( diff --git a/anime/src/en/aniwave/aniwave.dart b/anime/src/en/aniwave/aniwave.dart index a7a0dde6..b73ea0ef 100644 --- a/anime/src/en/aniwave/aniwave.dart +++ b/anime/src/en/aniwave/aniwave.dart @@ -2,12 +2,14 @@ import 'package:mangayomi/bridge_lib.dart'; import 'dart:convert'; class Aniwave extends MProvider { - Aniwave(); + Aniwave({required this.source}); - final Client client = Client(); + MSource source; + + final Client client = Client(source); @override - Future getPopular(MSource source, int page) async { + Future getPopular(int page) async { final res = (await client.get(Uri.parse( "${preferenceBaseUrl(source.id)}/filter?sort=trending&page=$page"))) .body; @@ -15,7 +17,7 @@ class Aniwave extends MProvider { } @override - Future getLatestUpdates(MSource source, int page) async { + Future getLatestUpdates(int page) async { final res = (await client.get(Uri.parse( "${preferenceBaseUrl(source.id)}/filter?sort=recently_updated&page=$page"))) .body; @@ -23,8 +25,7 @@ class Aniwave extends MProvider { } @override - Future search( - MSource source, String query, int page, FilterList filterList) async { + Future search(String query, int page, FilterList filterList) async { final filters = filterList.filters; String url = "${preferenceBaseUrl(source.id)}/filter?keyword=$query"; @@ -96,7 +97,7 @@ class Aniwave extends MProvider { } @override - Future getDetail(MSource source, String url) async { + Future getDetail(String url) async { final statusList = [ {"Releasing": 0, "Completed": 1} ]; @@ -168,7 +169,7 @@ class Aniwave extends MProvider { } @override - Future> getVideoList(MSource source, String url) async { + Future> getVideoList(String url) async { final ids = substringBefore(url, "&"); final encrypt = vrfEncrypt(ids); final vrf = "vrf=${Uri.encodeComponent(encrypt)}"; @@ -412,7 +413,7 @@ class Aniwave extends MProvider { } @override - List getFilterList(MSource source) { + List getFilterList() { return [ SelectFilter("OrderFilter", "Sort order", 0, [ SelectFilterOption("Most relevance", "most_relevance"), @@ -545,7 +546,7 @@ class Aniwave extends MProvider { } @override - List getSourcePreferences(MSource source) { + List getSourcePreferences() { return [ ListPreference( key: "preferred_domain1", @@ -685,6 +686,6 @@ class Aniwave extends MProvider { } } -Aniwave main() { - return Aniwave(); +Aniwave main(MSource source) { + return Aniwave(source: source); } diff --git a/anime/src/en/aniwave/source.dart b/anime/src/en/aniwave/source.dart index a8255e73..2d2dad24 100644 --- a/anime/src/en/aniwave/source.dart +++ b/anime/src/en/aniwave/source.dart @@ -1,7 +1,7 @@ import '../../../../model/source.dart'; Source get aniwave => _aniwave; -const _aniwaveVersion = "0.0.55"; +const _aniwaveVersion = "0.0.6"; const _aniwaveCodeUrl = "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/src/en/aniwave/aniwave.dart"; Source _aniwave = Source( diff --git a/anime/src/en/dramacool/dramacool.dart b/anime/src/en/dramacool/dramacool.dart index 19274f84..52185bb8 100644 --- a/anime/src/en/dramacool/dramacool.dart +++ b/anime/src/en/dramacool/dramacool.dart @@ -2,12 +2,14 @@ import 'package:mangayomi/bridge_lib.dart'; import 'dart:convert'; class DramaCool extends MProvider { - DramaCool(); + DramaCool({required this.source}); - final Client client = Client(); + MSource source; + + final Client client = Client(source); @override - Future getPopular(MSource source, int page) async { + Future getPopular(int page) async { final res = (await client.get(Uri.parse( "${preferenceBaseUrl(source.id)}/most-popular-drama?page=$page"))) .body; @@ -17,7 +19,7 @@ class DramaCool extends MProvider { } @override - Future getLatestUpdates(MSource source, int page) async { + Future getLatestUpdates(int page) async { final res = (await client.get(Uri.parse( "${preferenceBaseUrl(source.id)}/recently-added?page=$page"))) .body; @@ -27,8 +29,7 @@ class DramaCool extends MProvider { } @override - Future search( - MSource source, String query, int page, FilterList filterList) async { + Future search(String query, int page, FilterList filterList) async { final res = (await client.get(Uri.parse( "${preferenceBaseUrl(source.id)}/search?keyword=$query&page=$page"))) .body; @@ -38,7 +39,7 @@ class DramaCool extends MProvider { } @override - Future getDetail(MSource source, String url) async { + Future getDetail(String url) async { final statusList = [ {"Ongoing": 0, "Completed": 1} ]; @@ -100,7 +101,7 @@ class DramaCool extends MProvider { } @override - Future> getVideoList(MSource source, String url) async { + Future> getVideoList(String url) async { url = getUrlWithoutDomain(url); final res = @@ -131,7 +132,7 @@ class DramaCool extends MProvider { } @override - List getSourcePreferences(MSource source) { + List getSourcePreferences() { return [ EditTextPreference( key: "overrideBaseUrl", @@ -211,6 +212,6 @@ class DramaCool extends MProvider { } } -DramaCool main() { - return DramaCool(); +DramaCool main(MSource source) { + return DramaCool(source: source); } diff --git a/anime/src/en/dramacool/source.dart b/anime/src/en/dramacool/source.dart index 8cab821b..89db770d 100644 --- a/anime/src/en/dramacool/source.dart +++ b/anime/src/en/dramacool/source.dart @@ -1,7 +1,7 @@ import '../../../../model/source.dart'; Source get dramacoolSource => _dramacoolSource; -const _dramacoolVersion = "0.0.15"; +const _dramacoolVersion = "0.0.2"; const _dramacoolSourceCodeUrl = "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/src/en/dramacool/dramacool.dart"; Source _dramacoolSource = Source( diff --git a/anime/src/en/gogoanime/gogoanime.dart b/anime/src/en/gogoanime/gogoanime.dart index b527c25e..18225920 100644 --- a/anime/src/en/gogoanime/gogoanime.dart +++ b/anime/src/en/gogoanime/gogoanime.dart @@ -2,12 +2,14 @@ import 'package:mangayomi/bridge_lib.dart'; import 'dart:convert'; class GogoAnime extends MProvider { - GogoAnime(); + GogoAnime({required this.source}); - final Client client = Client(); + MSource source; + + final Client client = Client(source); @override - Future getPopular(MSource source, int page) async { + Future getPopular(int page) async { final res = (await client.get(Uri.parse( "${preferenceBaseUrl(source.id)}/popular.html?page=$page"))) .body; @@ -29,7 +31,7 @@ class GogoAnime extends MProvider { } @override - Future getLatestUpdates(MSource source, int page) async { + Future getLatestUpdates(int page) async { final res = (await client.get(Uri.parse( "https://ajax.gogo-load.com/ajax/page-recent-release-ongoing.html?page=$page&type=1"))) .body; @@ -58,8 +60,7 @@ class GogoAnime extends MProvider { } @override - Future search( - MSource source, String query, int page, FilterList filterList) async { + Future search(String query, int page, FilterList filterList) async { final filters = filterList.filters; String filterStr = ""; String url = ""; @@ -161,7 +162,7 @@ class GogoAnime extends MProvider { } @override - Future getDetail(MSource source, String url) async { + Future getDetail(String url) async { final statusList = [ {"Ongoing": 0, "Completed": 1} ]; @@ -212,7 +213,7 @@ class GogoAnime extends MProvider { } @override - Future> getVideoList(MSource source, String url) async { + Future> getVideoList(String url) async { final res = (await client.get(Uri.parse("${preferenceBaseUrl(source.id)}$url"))) .body; @@ -248,7 +249,7 @@ class GogoAnime extends MProvider { } @override - List getFilterList(MSource source) { + List getFilterList() { return [ HeaderFilter("Advanced search"), GroupFilter("GenreFilter", "Genre", [ @@ -1030,7 +1031,7 @@ class GogoAnime extends MProvider { } @override - List getSourcePreferences(MSource source) { + List getSourcePreferences() { return [ EditTextPreference( key: "override_baseurl_v${source.id}", @@ -1137,6 +1138,6 @@ class GogoAnime extends MProvider { } } -GogoAnime main() { - return GogoAnime(); +GogoAnime main(MSource source) { + return GogoAnime(source: source); } diff --git a/anime/src/en/gogoanime/source.dart b/anime/src/en/gogoanime/source.dart index aec6e6ec..78fdaf6a 100644 --- a/anime/src/en/gogoanime/source.dart +++ b/anime/src/en/gogoanime/source.dart @@ -1,7 +1,7 @@ import '../../../../model/source.dart'; Source get gogoanimeSource => _gogoanimeSource; -const _gogoanimeVersion = "0.0.7"; +const _gogoanimeVersion = "0.0.75"; const _gogoanimeSourceCodeUrl = "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/src/en/gogoanime/gogoanime.dart"; Source _gogoanimeSource = Source( diff --git a/anime/src/en/kisskh/kisskh.dart b/anime/src/en/kisskh/kisskh.dart index 8c751c82..41ec1b35 100644 --- a/anime/src/en/kisskh/kisskh.dart +++ b/anime/src/en/kisskh/kisskh.dart @@ -2,12 +2,14 @@ import 'package:mangayomi/bridge_lib.dart'; import 'dart:convert'; class KissKh extends MProvider { - KissKh(); + KissKh({required this.source}); - final Client client = Client(); + MSource source; + + final Client client = Client(source); @override - Future getPopular(MSource source, int page) async { + Future getPopular(int page) async { final res = (await client.get(Uri.parse( "${source.baseUrl}/api/DramaList/List?page=$page&type=0&sub=0&country=0&status=0&order=1&pageSize=40"))) .body; @@ -30,7 +32,7 @@ class KissKh extends MProvider { } @override - Future getLatestUpdates(MSource source, int page) async { + Future getLatestUpdates(int page) async { final res = (await client.get(Uri.parse( "${source.baseUrl}/api/DramaList/List?page=$page&type=0&sub=0&country=0&status=0&order=12&pageSize=40"))) .body; @@ -54,8 +56,7 @@ class KissKh extends MProvider { } @override - Future search( - MSource source, String query, int page, FilterList filterList) async { + Future search(String query, int page, FilterList filterList) async { final res = (await client.get(Uri.parse( "${source.baseUrl}/api/DramaList/Search?q=$query&type=0"))) .body; @@ -73,7 +74,7 @@ class KissKh extends MProvider { } @override - Future getDetail(MSource source, String url) async { + Future getDetail(String url) async { final statusList = [ {"Ongoing": 0, "Completed": 1} ]; @@ -114,7 +115,7 @@ class KissKh extends MProvider { } @override - Future> getVideoList(MSource source, String url) async { + Future> getVideoList(String url) async { final res = (await client.get(Uri.parse(url))).body; final id = substringAfter(substringBefore(url, ".png"), "Episode/"); final jsonRes = json.decode(res); @@ -151,6 +152,6 @@ class KissKh extends MProvider { } } -KissKh main() { - return KissKh(); +KissKh main(MSource source) { + return KissKh(source: source); } diff --git a/anime/src/en/nineanimetv/nineanimetv.dart b/anime/src/en/nineanimetv/nineanimetv.dart index d58f7e3c..9ddd481f 100644 --- a/anime/src/en/nineanimetv/nineanimetv.dart +++ b/anime/src/en/nineanimetv/nineanimetv.dart @@ -2,12 +2,14 @@ import 'package:mangayomi/bridge_lib.dart'; import 'dart:convert'; class NineAnimeTv extends MProvider { - NineAnimeTv(); + NineAnimeTv({required this.source}); - final Client client = Client(); + MSource source; + + final Client client = Client(source); @override - Future getPopular(MSource source, int page) async { + Future getPopular(int page) async { final res = (await client .get(Uri.parse("${source.baseUrl}/filter?sort=all&page=$page"))) .body; @@ -15,7 +17,7 @@ class NineAnimeTv extends MProvider { } @override - Future getLatestUpdates(MSource source, int page) async { + Future getLatestUpdates(int page) async { final res = (await client.get(Uri.parse( "${source.baseUrl}/filter?sort=recently_updated&page=$page"))) .body; @@ -23,8 +25,7 @@ class NineAnimeTv extends MProvider { } @override - Future search( - MSource source, String query, int page, FilterList filterList) async { + Future search(String query, int page, FilterList filterList) async { final filters = filterList.filters; String url = "${source.baseUrl}/filter?keyword=$query"; @@ -113,7 +114,7 @@ class NineAnimeTv extends MProvider { } @override - Future getDetail(MSource source, String url) async { + Future getDetail(String url) async { final statusList = [ {"Currently Airing": 0, "Finished Airing": 1} ]; @@ -161,7 +162,7 @@ class NineAnimeTv extends MProvider { } @override - Future> getVideoList(MSource source, String url) async { + Future> getVideoList(String url) async { final res = (await client.get( Uri.parse("${source.baseUrl}/ajax/episode/servers?episodeId=$url"))) .body; @@ -346,7 +347,7 @@ class NineAnimeTv extends MProvider { } @override - List getFilterList(MSource source) { + List getFilterList() { return [ GroupFilter("GenreFilter", "Genre", [ CheckBoxFilter("Action", "1"), @@ -452,7 +453,7 @@ class NineAnimeTv extends MProvider { } @override - List getSourcePreferences(MSource source) { + List getSourcePreferences() { return [ ListPreference( key: "preferred_quality", @@ -540,6 +541,6 @@ class NineAnimeTv extends MProvider { } } -NineAnimeTv main() { - return NineAnimeTv(); +NineAnimeTv main(MSource source) { + return NineAnimeTv(source: source); } diff --git a/anime/src/en/nineanimetv/source.dart b/anime/src/en/nineanimetv/source.dart index 3ea44b5c..e361dcd2 100644 --- a/anime/src/en/nineanimetv/source.dart +++ b/anime/src/en/nineanimetv/source.dart @@ -1,7 +1,7 @@ import '../../../../model/source.dart'; Source get nineanimetv => _nineanimetv; -const _nineanimetvVersion = "0.0.2"; +const _nineanimetvVersion = "0.0.25"; const _nineanimetvCodeUrl = "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/src/en/nineanimetv/nineanimetv.dart"; Source _nineanimetv = Source( diff --git a/anime/src/en/uhdmovies/source.dart b/anime/src/en/uhdmovies/source.dart index 4a55e707..4292eb6f 100644 --- a/anime/src/en/uhdmovies/source.dart +++ b/anime/src/en/uhdmovies/source.dart @@ -1,7 +1,7 @@ import '../../../../model/source.dart'; Source get uhdmoviesSource => _uhdmoviesSource; -const _uhdmoviesVersion = "0.0.25"; +const _uhdmoviesVersion = "0.0.3"; const _uhdmoviesSourceCodeUrl = "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/src/en/uhdmovies/uhdmovies.dart"; Source _uhdmoviesSource = Source( diff --git a/anime/src/en/uhdmovies/uhdmovies.dart b/anime/src/en/uhdmovies/uhdmovies.dart index 354bde59..b2ff10c9 100644 --- a/anime/src/en/uhdmovies/uhdmovies.dart +++ b/anime/src/en/uhdmovies/uhdmovies.dart @@ -2,15 +2,17 @@ import 'package:mangayomi/bridge_lib.dart'; import 'dart:convert'; class UHDMovies extends MProvider { - UHDMovies(); + UHDMovies({required this.source}); - final Client client = Client(); + MSource source; + + final Client client = Client(source); @override bool get supportsLatest => false; @override - Future getPopular(MSource source, int page) async { + Future getPopular(int page) async { final res = (await client .get(Uri.parse("${preferenceBaseUrl(source.id)}/page/$page"))) .body; @@ -18,13 +20,12 @@ class UHDMovies extends MProvider { } @override - Future getLatestUpdates(MSource source, int page) async { + Future getLatestUpdates(int page) async { return MPages([], false); } @override - Future search( - MSource source, String query, int page, FilterList filterList) async { + Future search(String query, int page, FilterList filterList) async { final res = (await client.get(Uri.parse( "${preferenceBaseUrl(source.id)}/page/$page/?s=${query.replaceAll(" ", "+")}"))) .body; @@ -32,7 +33,7 @@ class UHDMovies extends MProvider { } @override - Future getDetail(MSource source, String url) async { + Future getDetail(String url) async { url = getUrlWithoutDomain(url); final res = (await client.get(Uri.parse("${preferenceBaseUrl(source.id)}${url}"))) @@ -117,13 +118,13 @@ class UHDMovies extends MProvider { } @override - Future> getVideoList(MSource source, String url) async { + Future> getVideoList(String url) async { final res = await getMediaUrl(url); return await extractVideos(res); } @override - List getSourcePreferences(MSource source) { + List getSourcePreferences() { return [ EditTextPreference( key: "pref_domain", @@ -233,6 +234,6 @@ class UHDMovies extends MProvider { } } -UHDMovies main() { - return UHDMovies(); +UHDMovies main(MSource source) { + return UHDMovies(source: source); } diff --git a/anime/src/fr/animesama/animesama.dart b/anime/src/fr/animesama/animesama.dart index aa59c97b..6cec6717 100644 --- a/anime/src/fr/animesama/animesama.dart +++ b/anime/src/fr/animesama/animesama.dart @@ -2,12 +2,14 @@ import 'package:mangayomi/bridge_lib.dart'; import 'dart:convert'; class AnimeSama extends MProvider { - AnimeSama(); + AnimeSama({required this.source}); - final Client client = Client(); + MSource source; + + final Client client = Client(source); @override - Future getPopular(MSource source, int page) async { + Future getPopular(int page) async { final doc = (await client.get(Uri.parse("${source.baseUrl}/#$page"))).body; final regex = RegExp(r"""^\s*carteClassique\(\s*.*?\s*,\s*"(.*?)".*\)""", multiLine: true); @@ -24,7 +26,7 @@ class AnimeSama extends MProvider { } @override - Future getLatestUpdates(MSource source, int page) async { + Future getLatestUpdates(int page) async { final res = (await client.get(Uri.parse(source.baseUrl))).body; var document = parseHtml(res); final latest = document @@ -44,8 +46,7 @@ class AnimeSama extends MProvider { } @override - Future search( - MSource source, String query, int page, FilterList filterList) async { + Future search(String query, int page, FilterList filterList) async { final filters = filterList.filters; final res = (await client .get(Uri.parse("${source.baseUrl}/catalogue/listing_all.php"))) @@ -104,7 +105,7 @@ class AnimeSama extends MProvider { } @override - Future getDetail(MSource source, String url) async { + Future getDetail(String url) async { var animeUrl = "${source.baseUrl}${substringBeforeLast(getUrlWithoutDomain(url), "/")}"; var movie = @@ -152,7 +153,7 @@ class AnimeSama extends MProvider { } @override - Future> getVideoList(MSource source, String url) async { + Future> getVideoList(String url) async { final players = json.decode(url); List videos = []; for (var player in players) { @@ -178,7 +179,7 @@ class AnimeSama extends MProvider { } @override - List getFilterList(MSource source) { + List getFilterList() { return [ GroupFilter("TypeFilter", "Type", [ CheckBoxFilter("Anime", "Anime"), @@ -218,7 +219,7 @@ class AnimeSama extends MProvider { } @override - List getSourcePreferences(MSource source) { + List getSourcePreferences() { return [ ListPreference( key: "preferred_quality", @@ -403,6 +404,6 @@ class AnimeSama extends MProvider { } } -AnimeSama main() { - return AnimeSama(); +AnimeSama main(MSource source) { + return AnimeSama(source: source); } diff --git a/anime/src/fr/animesama/source.dart b/anime/src/fr/animesama/source.dart index 3b324cb7..39bb1f9f 100644 --- a/anime/src/fr/animesama/source.dart +++ b/anime/src/fr/animesama/source.dart @@ -1,7 +1,7 @@ import '../../../../model/source.dart'; Source get animesamaSource => _animesama; -const animesamaVersion = "0.0.15"; +const animesamaVersion = "0.0.2"; const animesamaCodeUrl = "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/src/fr/animesama/animesama.dart"; Source _animesama = Source( diff --git a/anime/src/fr/animesultra/animesultra.dart b/anime/src/fr/animesultra/animesultra.dart index b49657dc..87447491 100644 --- a/anime/src/fr/animesultra/animesultra.dart +++ b/anime/src/fr/animesultra/animesultra.dart @@ -2,12 +2,14 @@ import 'package:mangayomi/bridge_lib.dart'; import 'dart:convert'; class AnimesUltra extends MProvider { - AnimesUltra(); + AnimesUltra({required this.source}); - final Client client = Client(); + MSource source; + + final Client client = Client(source); @override - Future getPopular(MSource source, int page) async { + Future getPopular(int page) async { final res = (await client.get(Uri.parse(source.baseUrl))).body; List animeList = []; @@ -30,7 +32,7 @@ class AnimesUltra extends MProvider { } @override - Future getLatestUpdates(MSource source, int page) async { + Future getLatestUpdates(int page) async { final res = (await client.get(Uri.parse(source.baseUrl))).body; List animeList = []; @@ -53,8 +55,7 @@ class AnimesUltra extends MProvider { } @override - Future search( - MSource source, String query, int page, FilterList filterList) async { + Future search(String query, int page, FilterList filterList) async { final res = (await client.get(Uri.parse(source.baseUrl))).body; List animeList = []; @@ -74,7 +75,7 @@ class AnimesUltra extends MProvider { } @override - Future getDetail(MSource source, String url) async { + Future getDetail(String url) async { final statusList = [ {"En cours": 0, "Terminé": 1} ]; @@ -116,7 +117,7 @@ class AnimesUltra extends MProvider { } @override - Future> getVideoList(MSource source, String url) async { + Future> getVideoList(String url) async { final resWebview = await getHtmlViaWebview( url, '//*[@class="ps__-list"]/div/@data-server-id'); @@ -152,6 +153,6 @@ class AnimesUltra extends MProvider { } } -AnimesUltra main() { - return AnimesUltra(); +AnimesUltra main(MSource source) { + return AnimesUltra(source: source); } diff --git a/anime/src/fr/animesultra/source.dart b/anime/src/fr/animesultra/source.dart index c016f3f7..7fef94ac 100644 --- a/anime/src/fr/animesultra/source.dart +++ b/anime/src/fr/animesultra/source.dart @@ -1,7 +1,7 @@ import '../../../../model/source.dart'; Source get animesultraSource => _animesultraSource; -const _animesultraVersion = "0.0.55"; +const _animesultraVersion = "0.0.6"; const _animesultraSourceCodeUrl = "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/src/fr/animesultra/animesultra.dart"; Source _animesultraSource = Source( diff --git a/anime/src/fr/franime/franime.dart b/anime/src/fr/franime/franime.dart index f5afb893..5c34b620 100644 --- a/anime/src/fr/franime/franime.dart +++ b/anime/src/fr/franime/franime.dart @@ -2,19 +2,21 @@ import 'package:mangayomi/bridge_lib.dart'; import 'dart:convert'; class FrAnime extends MProvider { - FrAnime(); + FrAnime({required this.source}); - final Client client = Client(); + MSource source; + + final Client client = Client(source); @override - Future getPopular(MSource source, int page) async { + Future getPopular(int page) async { final res = await dataBase(); return animeResList(res); } @override - Future getLatestUpdates(MSource source, int page) async { + Future getLatestUpdates(int page) async { final res = await dataBase(); List list = json.decode(res); @@ -22,15 +24,14 @@ class FrAnime extends MProvider { } @override - Future search( - MSource source, String query, int page, FilterList filterList) async { + Future search(String query, int page, FilterList filterList) async { final res = await dataBase(); return animeSeachFetch(res, query); } @override - Future getDetail(MSource source, String url) async { + Future getDetail(String url) async { MManga anime = MManga(); String language = "vo".toString(); if (url.contains("lang=")) { @@ -84,7 +85,7 @@ class FrAnime extends MProvider { } @override - Future> getVideoList(MSource source, String url) async { + Future> getVideoList(String url) async { String language = "vo"; String videoBaseUrl = "https://api.franime.fr/api/anime"; if (url.contains("lang=")) { @@ -336,6 +337,6 @@ class FrAnime extends MProvider { } } -FrAnime main() { - return FrAnime(); +FrAnime main(MSource source) { + return FrAnime(source: source); } diff --git a/anime/src/fr/franime/source.dart b/anime/src/fr/franime/source.dart index 96cdb250..d59a1175 100644 --- a/anime/src/fr/franime/source.dart +++ b/anime/src/fr/franime/source.dart @@ -1,7 +1,7 @@ import '../../../../model/source.dart'; Source get franimeSource => _franimeSource; -const _franimeVersion = "0.0.6"; +const _franimeVersion = "0.0.65"; const _franimeSourceCodeUrl = "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/src/fr/franime/franime.dart"; Source _franimeSource = Source( diff --git a/anime/src/fr/otakufr/otakufr.dart b/anime/src/fr/otakufr/otakufr.dart index e3d201c1..baed8147 100644 --- a/anime/src/fr/otakufr/otakufr.dart +++ b/anime/src/fr/otakufr/otakufr.dart @@ -2,12 +2,14 @@ import 'package:mangayomi/bridge_lib.dart'; import 'dart:convert'; class OtakuFr extends MProvider { - OtakuFr(); + OtakuFr({required this.source}); - final Client client = Client(); + MSource source; + + final Client client = Client(source); @override - Future getPopular(MSource source, int page) async { + Future getPopular(int page) async { final res = (await client.get(Uri.parse("${source.baseUrl}/en-cours/page/$page"))) .body; @@ -31,7 +33,7 @@ class OtakuFr extends MProvider { } @override - Future getLatestUpdates(MSource source, int page) async { + Future getLatestUpdates(int page) async { final res = (await client.get(Uri.parse("${source.baseUrl}/page/$page/"))).body; @@ -71,8 +73,7 @@ class OtakuFr extends MProvider { } @override - Future search( - MSource source, String query, int page, FilterList filterList) async { + Future search(String query, int page, FilterList filterList) async { final filters = filterList.filters; String url = ""; if (query.isNotEmpty) { @@ -117,7 +118,7 @@ class OtakuFr extends MProvider { } @override - Future getDetail(MSource source, String url) async { + Future getDetail(String url) async { final statusList = [ {"En cours": 0, "Terminé": 1} ]; @@ -171,7 +172,7 @@ class OtakuFr extends MProvider { } @override - Future> getVideoList(MSource source, String url) async { + Future> getVideoList(String url) async { final res = (await client.get(Uri.parse(url))).body; final servers = xpath(res, '//*[@id="nav-tabContent"]/div/iframe/@src'); @@ -220,7 +221,7 @@ class OtakuFr extends MProvider { } @override - List getFilterList(MSource source) { + List getFilterList() { return [ HeaderFilter("La recherche de texte ignore les filtres"), SelectFilter("GenreFilter", "Genre", 0, [ @@ -276,7 +277,7 @@ class OtakuFr extends MProvider { } @override - List getSourcePreferences(MSource source) { + List getSourcePreferences() { return [ ListPreference( key: "preferred_quality", @@ -436,6 +437,6 @@ class OtakuFr extends MProvider { } } -OtakuFr main() { - return OtakuFr(); +OtakuFr main(MSource source) { + return OtakuFr(source: source); } diff --git a/anime/src/fr/otakufr/source.dart b/anime/src/fr/otakufr/source.dart index 8ae61c87..ca1b5d2e 100644 --- a/anime/src/fr/otakufr/source.dart +++ b/anime/src/fr/otakufr/source.dart @@ -1,7 +1,7 @@ import '../../../../model/source.dart'; Source get otakufr => _otakufr; -const otakufrVersion = "0.0.7"; +const otakufrVersion = "0.0.75"; const otakufrCodeUrl = "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/src/fr/otakufr/otakufr.dart"; Source _otakufr = Source( diff --git a/anime/src/hi/yomovies/yomovies.dart b/anime/src/hi/yomovies/yomovies.dart index 4abe8380..2be71c38 100644 --- a/anime/src/hi/yomovies/yomovies.dart +++ b/anime/src/hi/yomovies/yomovies.dart @@ -2,15 +2,17 @@ import 'package:mangayomi/bridge_lib.dart'; import 'dart:convert'; class YoMovies extends MProvider { - YoMovies(); + YoMovies({required this.source}); - final Client client = Client(); + MSource source; + + final Client client = Client(source); @override bool get supportsLatest => false; @override - Future getPopular(MSource source, int page) async { + Future getPopular(int page) async { String pageNu = page == 1 ? "" : "page/$page/"; final res = (await client.get(Uri.parse( @@ -24,13 +26,12 @@ class YoMovies extends MProvider { } @override - Future getLatestUpdates(MSource source, int page) async { + Future getLatestUpdates(int page) async { return MPages([], false); } @override - Future search( - MSource source, String query, int page, FilterList filterList) async { + Future search(String query, int page, FilterList filterList) async { final filters = filterList.filters; String url = ""; String pageNu = page == 1 ? "" : "/page/$page"; @@ -56,7 +57,7 @@ class YoMovies extends MProvider { } @override - Future getDetail(MSource source, String url) async { + Future getDetail(String url) async { url = getUrlWithoutDomain(url); final res = @@ -96,7 +97,7 @@ class YoMovies extends MProvider { } @override - Future> getVideoList(MSource source, String url) async { + Future> getVideoList(String url) async { url = getUrlWithoutDomain(url); final res = (await client.get(Uri.parse("${preferenceBaseUrl(source.id)}$url"))) @@ -116,7 +117,7 @@ class YoMovies extends MProvider { } @override - List getSourcePreferences(MSource source) { + List getSourcePreferences() { return [ EditTextPreference( key: "overrideBaseUrl", @@ -209,7 +210,7 @@ class YoMovies extends MProvider { } @override - List getFilterList(MSource source) { + List getFilterList() { return [ HeaderFilter( "Note: Only one selection at a time works, and it ignores text search"), @@ -340,6 +341,6 @@ class YoMovies extends MProvider { } } -YoMovies main() { - return YoMovies(); +YoMovies main(MSource source) { + return YoMovies(source: source); } diff --git a/anime/src/id/nimegami/nimegami.dart b/anime/src/id/nimegami/nimegami.dart index 02c10383..c020f786 100644 --- a/anime/src/id/nimegami/nimegami.dart +++ b/anime/src/id/nimegami/nimegami.dart @@ -2,12 +2,14 @@ import 'package:mangayomi/bridge_lib.dart'; import 'dart:convert'; class NimeGami extends MProvider { - NimeGami(); + NimeGami({required this.source}); - final Client client = Client(); + MSource source; + + final Client client = Client(source); @override - Future getPopular(MSource source, int page) async { + Future getPopular(int page) async { final res = (await client.get(Uri.parse("${source.baseUrl}/page/$page"))).body; List animeList = []; @@ -27,7 +29,7 @@ class NimeGami extends MProvider { } @override - Future getLatestUpdates(MSource source, int page) async { + Future getLatestUpdates(int page) async { final res = (await client.get(Uri.parse("${source.baseUrl}/page/$page"))).body; List animeList = []; @@ -48,8 +50,7 @@ class NimeGami extends MProvider { } @override - Future search( - MSource source, String query, int page, FilterList filterList) async { + Future search(String query, int page, FilterList filterList) async { final res = (await client.get( Uri.parse("${source.baseUrl}/page/$page/?s=$query&post_type=post"))) .body; @@ -70,7 +71,7 @@ class NimeGami extends MProvider { } @override - Future getDetail(MSource source, String url) async { + Future getDetail(String url) async { final res = (await client.get(Uri.parse(url))).body; MManga anime = MManga(); final description = xpath(res, '//*[@id="Sinopsis"]/p/text()'); @@ -106,7 +107,7 @@ class NimeGami extends MProvider { } @override - Future> getVideoList(MSource source, String url) async { + Future> getVideoList(String url) async { final resJson = json.decode(url); final urls = resJson["urls"]; List videos = []; @@ -176,6 +177,6 @@ class NimeGami extends MProvider { } } -NimeGami main() { - return NimeGami(); +NimeGami main(MSource source) { + return NimeGami(source: source); } diff --git a/anime/src/id/nimegami/source.dart b/anime/src/id/nimegami/source.dart index 3ddb2afc..8f212ae0 100644 --- a/anime/src/id/nimegami/source.dart +++ b/anime/src/id/nimegami/source.dart @@ -1,7 +1,7 @@ import '../../../../model/source.dart'; Source get nimegami => _nimegami; -const _nimegamiVersion = "0.0.45"; +const _nimegamiVersion = "0.0.5"; const _nimegamiCodeUrl = "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/src/id/nimegami/nimegami.dart"; Source _nimegami = Source( diff --git a/anime/src/id/oploverz/oploverz.dart b/anime/src/id/oploverz/oploverz.dart index c814cdbc..48027e1c 100644 --- a/anime/src/id/oploverz/oploverz.dart +++ b/anime/src/id/oploverz/oploverz.dart @@ -2,12 +2,14 @@ import 'package:mangayomi/bridge_lib.dart'; import 'dart:convert'; class OploVerz extends MProvider { - OploVerz(); + OploVerz({required this.source}); - final Client client = Client(); + MSource source; + + final Client client = Client(source); @override - Future getPopular(MSource source, int page) async { + Future getPopular(int page) async { final res = (await client.get(Uri.parse( "${source.baseUrl}/anime-list/page/$page/?order=popular"))) .body; @@ -15,7 +17,7 @@ class OploVerz extends MProvider { } @override - Future getLatestUpdates(MSource source, int page) async { + Future getLatestUpdates(int page) async { final res = (await client.get( Uri.parse("${source.baseUrl}/anime-list/page/$page/?order=latest"))) .body; @@ -23,8 +25,7 @@ class OploVerz extends MProvider { } @override - Future search( - MSource source, String query, int page, FilterList filterList) async { + Future search(String query, int page, FilterList filterList) async { final res = (await client.get( Uri.parse("${source.baseUrl}/anime-list/page/$page/?title=$query"))) .body; @@ -32,7 +33,7 @@ class OploVerz extends MProvider { } @override - Future getDetail(MSource source, String url) async { + Future getDetail(String url) async { final statusList = [ {"ongoing": 0, "completed": 1} ]; @@ -67,7 +68,7 @@ class OploVerz extends MProvider { } @override - Future> getVideoList(MSource source, String url) async { + Future> getVideoList(String url) async { final res = (await client.get(Uri.parse(url))).body; final dataPost = xpath(res, '//*[@id="server"]/ul/li/div[contains(@id,"player-option")]/@data-post') @@ -147,6 +148,6 @@ class OploVerz extends MProvider { } } -OploVerz main() { - return OploVerz(); +OploVerz main(MSource source) { + return OploVerz(source: source); } diff --git a/anime/src/id/oploverz/source.dart b/anime/src/id/oploverz/source.dart index 49a2162d..d5517fc5 100644 --- a/anime/src/id/oploverz/source.dart +++ b/anime/src/id/oploverz/source.dart @@ -1,7 +1,7 @@ import '../../../../model/source.dart'; Source get oploverz => _oploverz; -const _oploverzVersion = "0.0.35"; +const _oploverzVersion = "0.0.4"; const _oploverzCodeUrl = "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/src/id/oploverz/oploverz.dart"; Source _oploverz = Source( diff --git a/anime/src/id/otakudesu/otakudesu.dart b/anime/src/id/otakudesu/otakudesu.dart index 042c9bf8..89f6574c 100644 --- a/anime/src/id/otakudesu/otakudesu.dart +++ b/anime/src/id/otakudesu/otakudesu.dart @@ -2,12 +2,14 @@ import 'package:mangayomi/bridge_lib.dart'; import 'dart:convert'; class OtakuDesu extends MProvider { - OtakuDesu(); + OtakuDesu({required this.source}); - final Client client = Client(); + MSource source; + + final Client client = Client(source); @override - Future getPopular(MSource source, int page) async { + Future getPopular(int page) async { final res = (await client .get(Uri.parse("${source.baseUrl}/complete-anime/page/$page"))) .body; @@ -15,7 +17,7 @@ class OtakuDesu extends MProvider { } @override - Future getLatestUpdates(MSource source, int page) async { + Future getLatestUpdates(int page) async { final res = (await client .get(Uri.parse("${source.baseUrl}/ongoing-anime/page/$page"))) .body; @@ -23,8 +25,7 @@ class OtakuDesu extends MProvider { } @override - Future search( - MSource source, String query, int page, FilterList filterList) async { + Future search(String query, int page, FilterList filterList) async { final res = (await client .get(Uri.parse("${source.baseUrl}/?s=$query&post_type=anime"))) .body; @@ -44,7 +45,7 @@ class OtakuDesu extends MProvider { } @override - Future getDetail(MSource source, String url) async { + Future getDetail(String url) async { final statusList = [ {"Ongoing": 0, "Completed": 1} ]; @@ -85,7 +86,7 @@ class OtakuDesu extends MProvider { } @override - Future> getVideoList(MSource source, String url) async { + Future> getVideoList(String url) async { List videos = []; final res = (await client.get(Uri.parse(url))).body; final script = @@ -186,6 +187,6 @@ class OtakuDesu extends MProvider { } } -OtakuDesu main() { - return OtakuDesu(); +OtakuDesu main(MSource source) { + return OtakuDesu(source: source); } diff --git a/anime/src/id/otakudesu/source.dart b/anime/src/id/otakudesu/source.dart index 797b7213..1ac9e214 100644 --- a/anime/src/id/otakudesu/source.dart +++ b/anime/src/id/otakudesu/source.dart @@ -1,7 +1,7 @@ import '../../../../model/source.dart'; Source get otakudesu => _otakudesu; -const _otakudesuVersion = "0.0.4"; +const _otakudesuVersion = "0.0.45"; const _otakudesuCodeUrl = "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/src/id/otakudesu/otakudesu.dart"; Source _otakudesu = Source( diff --git a/anime/src/it/animesaturn/animesaturn.dart b/anime/src/it/animesaturn/animesaturn.dart index 1853b7a5..0ce788db 100644 --- a/anime/src/it/animesaturn/animesaturn.dart +++ b/anime/src/it/animesaturn/animesaturn.dart @@ -2,12 +2,14 @@ import 'package:mangayomi/bridge_lib.dart'; import 'dart:convert'; class AnimeSaturn extends MProvider { - AnimeSaturn(); + AnimeSaturn({required this.source}); - final Client client = Client(); + MSource source; + + final Client client = Client(source); @override - Future getPopular(MSource source, int page) async { + Future getPopular(int page) async { final res = (await client .get(Uri.parse("${source.baseUrl}/animeincorso?page=$page"))) .body; @@ -34,7 +36,7 @@ class AnimeSaturn extends MProvider { } @override - Future getLatestUpdates(MSource source, int page) async { + Future getLatestUpdates(int page) async { final res = (await client.get(Uri.parse("${source.baseUrl}/newest?page=$page"))) .body; @@ -59,8 +61,7 @@ class AnimeSaturn extends MProvider { } @override - Future search( - MSource source, String query, int page, FilterList filterList) async { + Future search(String query, int page, FilterList filterList) async { final filters = filterList.filters; String url = ""; @@ -141,7 +142,7 @@ class AnimeSaturn extends MProvider { } @override - Future getDetail(MSource source, String url) async { + Future getDetail(String url) async { final statusList = [ {"In corso": 0, "Finito": 1} ]; @@ -192,7 +193,7 @@ class AnimeSaturn extends MProvider { } @override - Future> getVideoList(MSource source, String url) async { + Future> getVideoList(String url) async { final res = (await client.get(Uri.parse(url))).body; final urlVid = xpath(res, '//a[contains(@href,"/watch")]/@href').first; @@ -245,7 +246,7 @@ class AnimeSaturn extends MProvider { } @override - List getFilterList(MSource source) { + List getFilterList() { return [ HeaderFilter("Ricerca per titolo ignora i filtri e viceversa"), GroupFilter("GenreFilter", "Generi", [ @@ -313,7 +314,7 @@ class AnimeSaturn extends MProvider { } @override - List getSourcePreferences(MSource source) { + List getSourcePreferences() { return [ ListPreference( key: "preferred_quality", @@ -353,6 +354,6 @@ class AnimeSaturn extends MProvider { } } -AnimeSaturn main() { - return AnimeSaturn(); +AnimeSaturn main(MSource source) { + return AnimeSaturn(source: source); } diff --git a/anime/src/it/animesaturn/source.dart b/anime/src/it/animesaturn/source.dart index ec194499..c7b318c8 100644 --- a/anime/src/it/animesaturn/source.dart +++ b/anime/src/it/animesaturn/source.dart @@ -1,7 +1,7 @@ import '../../../../model/source.dart'; Source get animesaturn => _animesaturn; -const _animesaturnVersion = "0.0.25"; +const _animesaturnVersion = "0.0.3"; const _animesaturnCodeUrl = "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/src/it/animesaturn/animesaturn.dart"; Source _animesaturn = Source( diff --git a/anime/src/sq/filma24/filma24.dart b/anime/src/sq/filma24/filma24.dart index 83e8fb93..8741b209 100644 --- a/anime/src/sq/filma24/filma24.dart +++ b/anime/src/sq/filma24/filma24.dart @@ -2,12 +2,14 @@ import 'package:mangayomi/bridge_lib.dart'; import 'dart:convert'; class Filma24 extends MProvider { - Filma24(); + Filma24({required this.source}); - final Client client = Client(); + MSource source; + + final Client client = Client(source); @override - Future getPopular(MSource source, int page) async { + Future getPopular(int page) async { String pageNu = page == 1 ? "" : "/page/$page/"; final res = (await client.get(Uri.parse("${preferenceBaseUrl(source.id)}$pageNu"))) @@ -16,7 +18,7 @@ class Filma24 extends MProvider { } @override - Future getLatestUpdates(MSource source, int page) async { + Future getLatestUpdates(int page) async { String pageNu = page == 1 ? "" : "page/$page/"; final res = (await client.get( Uri.parse("${preferenceBaseUrl(source.id)}/$pageNu?sort=trendy"))) @@ -25,8 +27,7 @@ class Filma24 extends MProvider { } @override - Future search( - MSource source, String query, int page, FilterList filterList) async { + Future search(String query, int page, FilterList filterList) async { final filters = filterList.filters; String url = ""; String pageNu = page == 1 ? "" : "page/$page/"; @@ -56,7 +57,7 @@ class Filma24 extends MProvider { } @override - Future getDetail(MSource source, String url) async { + Future getDetail(String url) async { List? episodesList = []; if (!url.contains("seriale")) { MChapter episode = MChapter(); @@ -86,7 +87,7 @@ class Filma24 extends MProvider { } @override - Future> getVideoList(MSource source, String url) async { + Future> getVideoList(String url) async { final res = (await client.get(Uri.parse(url))).body; List videos = []; final serverUrls = xpath(res, '//*[@class="player"]/div[1]/a/@href'); @@ -117,7 +118,7 @@ class Filma24 extends MProvider { } @override - List getSourcePreferences(MSource source) { + List getSourcePreferences() { return [ EditTextPreference( key: "pref_domain", @@ -135,7 +136,7 @@ class Filma24 extends MProvider { } @override - List getFilterList(MSource source) { + List getFilterList() { return [ SelectFilter("ReleaseFilter", "Viti", 0, [ SelectFilterOption("