diff --git a/anime/multisrc/dopeflix/dopeflix.dart b/anime/multisrc/dopeflix/dopeflix.dart index 632fdb25..53047b9b 100644 --- a/anime/multisrc/dopeflix/dopeflix.dart +++ b/anime/multisrc/dopeflix/dopeflix.dart @@ -8,19 +8,20 @@ class DopeFlix extends MProvider { final Client client = Client(source); + @override + String get baseUrl => getPreferenceValue(source.id, "preferred_domain"); + @override Future getPopular(int page) async { final res = (await client.get(Uri.parse( - "${preferenceBaseUrl(source.id)}/${getPreferenceValue(source.id, "preferred_popular_page")}?page=$page"))) + "$baseUrl/${getPreferenceValue(source.id, "preferred_popular_page")}?page=$page"))) .body; return parseAnimeList(res); } @override Future getLatestUpdates(int page) async { - final res = - (await client.get(Uri.parse("${preferenceBaseUrl(source.id)}/home"))) - .body; + final res = (await client.get(Uri.parse("$baseUrl/home"))).body; List animeList = []; final path = '//section[contains(text(),"${getPreferenceValue(source.id, "preferred_latest_page")}")]/div/div[@class="film_list-wrap"]/div[@class="flw-item"]/div[@class="film-poster"]'; @@ -41,7 +42,7 @@ class DopeFlix extends MProvider { @override Future search(String query, int page, FilterList filterList) async { final filters = filterList.filters; - String url = "${preferenceBaseUrl(source.id)}"; + String url = "$baseUrl"; if (query.isNotEmpty) { url += "/search/${query.replaceAll(" ", "-")}?page=$page"; @@ -84,9 +85,7 @@ class DopeFlix extends MProvider { @override Future getDetail(String url) async { url = getUrlWithoutDomain(url); - final res = - (await client.get(Uri.parse("${preferenceBaseUrl(source.id)}$url"))) - .body; + final res = (await client.get(Uri.parse("$baseUrl$url"))).body; MManga anime = MManga(); final description = xpath(res, '//div[@class="description"]/text()'); if (description.isNotEmpty) { @@ -104,12 +103,11 @@ class DopeFlix extends MProvider { if (dataType == "1") { MChapter episode = MChapter(); episode.name = "Movie"; - episode.url = "${preferenceBaseUrl(source.id)}/ajax/movie/episodes/$id"; + episode.url = "$baseUrl/ajax/movie/episodes/$id"; episodesList.add(episode); } else { - final resS = (await client.get(Uri.parse( - "${preferenceBaseUrl(source.id)}/ajax/v2/tv/seasons/$id"))) - .body; + final resS = + (await client.get(Uri.parse("$baseUrl/ajax/v2/tv/seasons/$id"))).body; final seasonIds = xpath(resS, '//a[@class="dropdown-item ss-item"]/@data-id'); @@ -119,8 +117,8 @@ class DopeFlix extends MProvider { final seasonId = seasonIds[i]; final seasonName = seasonNames[i]; - final html = (await client.get(Uri.parse( - "${preferenceBaseUrl(source.id)}/ajax/v2/season/episodes/$seasonId"))) + final html = (await client + .get(Uri.parse("$baseUrl/ajax/v2/season/episodes/$seasonId"))) .body; final epsHtmls = parseHtml(html).select("div.eps-item"); @@ -135,8 +133,7 @@ class DopeFlix extends MProvider { final epName = xpath(epHtml, '//h3[@class="film-name"]/text()').first; MChapter episode = MChapter(); episode.name = "$seasonName $epNum $epName"; - episode.url = - "${preferenceBaseUrl(source.id)}/ajax/v2/episode/servers/$episodeId"; + episode.url = "$baseUrl/ajax/v2/episode/servers/$episodeId"; episodesList.add(episode); } } @@ -148,9 +145,7 @@ class DopeFlix extends MProvider { @override Future> getVideoList(String url) async { url = getUrlWithoutDomain(url); - final res = - (await client.get(Uri.parse("${preferenceBaseUrl(source.id)}/$url"))) - .body; + final res = (await client.get(Uri.parse("$baseUrl/$url"))).body; final vidsHtmls = parseHtml(res).select("ul.fss-list a.btn-play"); @@ -159,9 +154,8 @@ class DopeFlix extends MProvider { final vidHtml = vidH.outerHtml; final id = xpath(vidHtml, '//a/@data-id').first; final name = xpath(vidHtml, '//span/text()').first; - final resSource = (await client.get( - Uri.parse("${preferenceBaseUrl(source.id)}/ajax/sources/$id"))) - .body; + final resSource = + (await client.get(Uri.parse("$baseUrl/ajax/sources/$id"))).body; final vidUrl = substringBefore(substringAfter(resSource, "\"link\":\""), "\""); @@ -531,10 +525,6 @@ class DopeFlix extends MProvider { return subs; } - String preferenceBaseUrl(int sourceId) { - return getPreferenceValue(sourceId, "preferred_domain"); - } - String ll(String url) { if (url.contains("?")) { return "&"; diff --git a/anime/src/en/aniwave/aniwave.dart b/anime/src/en/aniwave/aniwave.dart index b73ea0ef..ebe4886b 100644 --- a/anime/src/en/aniwave/aniwave.dart +++ b/anime/src/en/aniwave/aniwave.dart @@ -8,18 +8,21 @@ class Aniwave extends MProvider { final Client client = Client(source); + @override + String get baseUrl => getPreferenceValue(source.id, "preferred_domain1"); + @override Future getPopular(int page) async { - final res = (await client.get(Uri.parse( - "${preferenceBaseUrl(source.id)}/filter?sort=trending&page=$page"))) + final res = (await client + .get(Uri.parse("$baseUrl/filter?sort=trending&page=$page"))) .body; return parseAnimeList(res); } @override Future getLatestUpdates(int page) async { - final res = (await client.get(Uri.parse( - "${preferenceBaseUrl(source.id)}/filter?sort=recently_updated&page=$page"))) + final res = (await client + .get(Uri.parse("$baseUrl/filter?sort=recently_updated&page=$page"))) .body; return parseAnimeList(res); } @@ -27,7 +30,7 @@ class Aniwave extends MProvider { @override Future search(String query, int page, FilterList filterList) async { final filters = filterList.filters; - String url = "${preferenceBaseUrl(source.id)}/filter?keyword=$query"; + String url = "$baseUrl/filter?keyword=$query"; for (var filter in filters) { if (filter.type == "OrderFilter") { @@ -101,9 +104,7 @@ class Aniwave extends MProvider { final statusList = [ {"Releasing": 0, "Completed": 1} ]; - final res = - (await client.get(Uri.parse("${preferenceBaseUrl(source.id)}$url"))) - .body; + final res = (await client.get(Uri.parse("$baseUrl$url"))).body; MManga anime = MManga(); final status = xpath(res, '//div[contains(text(),"Status")]/span/text()'); if (status.isNotEmpty) { @@ -124,9 +125,9 @@ class Aniwave extends MProvider { final encrypt = vrfEncrypt(id); final vrf = "vrf=${Uri.encodeComponent(encrypt)}"; - final resEp = (await client.get(Uri.parse( - "${preferenceBaseUrl(source.id)}/ajax/episode/list/$id?$vrf"))) - .body; + final resEp = + (await client.get(Uri.parse("$baseUrl/ajax/episode/list/$id?$vrf"))) + .body; final html = json.decode(resEp)["result"]; List? episodesList = []; @@ -173,9 +174,9 @@ class Aniwave extends MProvider { final ids = substringBefore(url, "&"); final encrypt = vrfEncrypt(ids); final vrf = "vrf=${Uri.encodeComponent(encrypt)}"; - final res = (await client.get(Uri.parse( - "${preferenceBaseUrl(source.id)}/ajax/server/list/$ids?$vrf"))) - .body; + final res = + (await client.get(Uri.parse("$baseUrl/ajax/server/list/$ids?$vrf"))) + .body; final html = json.decode(res)["result"]; final vidsHtmls = parseHtml(html).select("div.servers > div"); @@ -190,9 +191,9 @@ class Aniwave extends MProvider { final encrypt = vrfEncrypt(serverId); final vrf = "vrf=${Uri.encodeComponent(encrypt)}"; - final res = (await client.get(Uri.parse( - "${preferenceBaseUrl(source.id)}/ajax/server/$serverId?$vrf"))) - .body; + final res = + (await client.get(Uri.parse("$baseUrl/ajax/server/$serverId?$vrf"))) + .body; final status = json.decode(res)["status"]; if (status == 200) { List a = []; @@ -633,10 +634,6 @@ class Aniwave extends MProvider { ]; } - String preferenceBaseUrl(int sourceId) { - return getPreferenceValue(sourceId, "preferred_domain1"); - } - List preferenceHosterSelection(int sourceId) { return getPreferenceValue(sourceId, "hoster_selection"); } diff --git a/anime/src/en/dramacool/dramacool.dart b/anime/src/en/dramacool/dramacool.dart index 52185bb8..2bf01042 100644 --- a/anime/src/en/dramacool/dramacool.dart +++ b/anime/src/en/dramacool/dramacool.dart @@ -8,11 +8,14 @@ class DramaCool extends MProvider { final Client client = Client(source); + @override + String get baseUrl => getPreferenceValue(source.id, "overrideBaseUrl"); + @override Future getPopular(int page) async { - final res = (await client.get(Uri.parse( - "${preferenceBaseUrl(source.id)}/most-popular-drama?page=$page"))) - .body; + final res = + (await client.get(Uri.parse("$baseUrl/most-popular-drama?page=$page"))) + .body; final document = parseHtml(res); return animeFromElement(document.select("ul.list-episode-item li a"), document.selectFirst("li.next a")?.attr("href") != null); @@ -20,9 +23,9 @@ class DramaCool extends MProvider { @override Future getLatestUpdates(int page) async { - final res = (await client.get(Uri.parse( - "${preferenceBaseUrl(source.id)}/recently-added?page=$page"))) - .body; + final res = + (await client.get(Uri.parse("$baseUrl/recently-added?page=$page"))) + .body; final document = parseHtml(res); return animeFromElement(document.select("ul.switch-block a"), document.selectFirst("li.next a")?.attr("href") != null); @@ -30,8 +33,8 @@ class DramaCool extends MProvider { @override Future search(String query, int page, FilterList filterList) async { - final res = (await client.get(Uri.parse( - "${preferenceBaseUrl(source.id)}/search?keyword=$query&page=$page"))) + final res = (await client + .get(Uri.parse("$baseUrl/search?keyword=$query&page=$page"))) .body; final document = parseHtml(res); return animeFromElement(document.select("ul.list-episode-item li a"), @@ -45,16 +48,12 @@ class DramaCool extends MProvider { ]; url = getUrlWithoutDomain(url); if (url.contains("-episode-") && url.endsWith(".html")) { - final res = - (await client.get(Uri.parse("${preferenceBaseUrl(source.id)}$url"))) - .body; + final res = (await client.get(Uri.parse("$baseUrl$url"))).body; url = parseHtml(res).selectFirst("div.category a").attr("href"); } url = getUrlWithoutDomain(url); - final res = - (await client.get(Uri.parse("${preferenceBaseUrl(source.id)}$url"))) - .body; + final res = (await client.get(Uri.parse("$baseUrl$url"))).body; final document = parseHtml(res); MManga anime = MManga(); anime.description = document @@ -104,9 +103,7 @@ class DramaCool extends MProvider { Future> getVideoList(String url) async { url = getUrlWithoutDomain(url); - final res = - (await client.get(Uri.parse("${preferenceBaseUrl(source.id)}$url"))) - .body; + final res = (await client.get(Uri.parse("$baseUrl$url"))).body; final document = parseHtml(res); String iframeUrl = document.selectFirst("iframe")?.getSrc ?? ""; if (iframeUrl.isEmpty) return []; @@ -166,10 +163,6 @@ class DramaCool extends MProvider { ]; } - String preferenceBaseUrl(int sourceId) { - return getPreferenceValue(sourceId, "overrideBaseUrl"); - } - MPages animeFromElement(List elements, bool hasNextPage) { List animeList = []; for (var element in elements) { diff --git a/anime/src/en/gogoanime/gogoanime.dart b/anime/src/en/gogoanime/gogoanime.dart index 18225920..ea178617 100644 --- a/anime/src/en/gogoanime/gogoanime.dart +++ b/anime/src/en/gogoanime/gogoanime.dart @@ -8,11 +8,14 @@ class GogoAnime extends MProvider { final Client client = Client(source); + @override + String get baseUrl => + getPreferenceValue(source.id, "override_baseurl_v${source.id}"); + @override Future getPopular(int page) async { - final res = (await client.get(Uri.parse( - "${preferenceBaseUrl(source.id)}/popular.html?page=$page"))) - .body; + final res = + (await client.get(Uri.parse("$baseUrl/popular.html?page=$page"))).body; List animeList = []; final urls = xpath(res, '//*[@class="img"]/a/@href'); @@ -132,15 +135,14 @@ class GogoAnime extends MProvider { } } if (genre.isNotEmpty) { - url = "${preferenceBaseUrl(source.id)}/genre/$genre?page=$page"; + url = "$baseUrl/genre/$genre?page=$page"; } else if (recent.isNotEmpty) { url = "https://ajax.gogo-load.com/ajax/page-recent-release.html?page=$page&type=$recent"; } else if (season.isNotEmpty) { - url = "${preferenceBaseUrl(source.id)}/$season?page=$page"; + url = "$baseUrl/$season?page=$page"; } else { - url = - "${preferenceBaseUrl(source.id)}/filter.html?keyword=$query$filterStr&page=$page"; + url = "$baseUrl/filter.html?keyword=$query$filterStr&page=$page"; } final res = (await client.get(Uri.parse(url))).body; @@ -167,9 +169,7 @@ class GogoAnime extends MProvider { {"Ongoing": 0, "Completed": 1} ]; - final res = - (await client.get(Uri.parse("${preferenceBaseUrl(source.id)}$url"))) - .body; + final res = (await client.get(Uri.parse("$baseUrl$url"))).body; MManga anime = MManga(); final status = xpath( res, '//*[@class="anime_info_body_bg"]/p[@class="type"][5]/text()') @@ -214,9 +214,7 @@ class GogoAnime extends MProvider { @override Future> getVideoList(String url) async { - final res = - (await client.get(Uri.parse("${preferenceBaseUrl(source.id)}$url"))) - .body; + final res = (await client.get(Uri.parse("$baseUrl$url"))).body; final serverUrls = xpath(res, '//*[@class="anime_muti_link"]/ul/li/a/@data-video'); final serverNames = @@ -1101,10 +1099,6 @@ class GogoAnime extends MProvider { ]; } - String preferenceBaseUrl(int sourceId) { - return getPreferenceValue(sourceId, "override_baseurl_v$sourceId"); - } - List preferenceHosterSelection(int sourceId) { return getPreferenceValue(sourceId, "hoster_selection"); } diff --git a/anime/src/en/uhdmovies/uhdmovies.dart b/anime/src/en/uhdmovies/uhdmovies.dart index b2ff10c9..cda96779 100644 --- a/anime/src/en/uhdmovies/uhdmovies.dart +++ b/anime/src/en/uhdmovies/uhdmovies.dart @@ -11,11 +11,12 @@ class UHDMovies extends MProvider { @override bool get supportsLatest => false; + @override + String get baseUrl => getPreferenceValue(source.id, "pref_domain"); + @override Future getPopular(int page) async { - final res = (await client - .get(Uri.parse("${preferenceBaseUrl(source.id)}/page/$page"))) - .body; + final res = (await client.get(Uri.parse("$baseUrl/page/$page"))).body; return animeFromElement(res); } @@ -26,8 +27,8 @@ class UHDMovies extends MProvider { @override Future search(String query, int page, FilterList filterList) async { - final res = (await client.get(Uri.parse( - "${preferenceBaseUrl(source.id)}/page/$page/?s=${query.replaceAll(" ", "+")}"))) + final res = (await client.get( + Uri.parse("$baseUrl/page/$page/?s=${query.replaceAll(" ", "+")}"))) .body; return animeFromElement(res); } @@ -35,9 +36,7 @@ class UHDMovies extends MProvider { @override Future getDetail(String url) async { url = getUrlWithoutDomain(url); - final res = - (await client.get(Uri.parse("${preferenceBaseUrl(source.id)}${url}"))) - .body; + final res = (await client.get(Uri.parse("$baseUrl${url}"))).body; MManga anime = MManga(); final description = xpath(res, '//pre/span/text()'); if (description.isNotEmpty) { @@ -137,10 +136,6 @@ class UHDMovies extends MProvider { ]; } - String preferenceBaseUrl(int sourceId) { - return getPreferenceValue(sourceId, "pref_domain"); - } - Future> extractVideos(String url) async { List videos = []; for (int type = 1; type < 3; type++) { diff --git a/anime/src/hi/yomovies/yomovies.dart b/anime/src/hi/yomovies/yomovies.dart index 2be71c38..fe1299f5 100644 --- a/anime/src/hi/yomovies/yomovies.dart +++ b/anime/src/hi/yomovies/yomovies.dart @@ -8,6 +8,9 @@ class YoMovies extends MProvider { final Client client = Client(source); + @override + String get baseUrl => getPreferenceValue(source.id, "overrideBaseUrl"); + @override bool get supportsLatest => false; @@ -15,9 +18,8 @@ class YoMovies extends MProvider { Future getPopular(int page) async { String pageNu = page == 1 ? "" : "page/$page/"; - final res = (await client.get(Uri.parse( - "${preferenceBaseUrl(source.id)}/most-favorites/$pageNu"))) - .body; + final res = + (await client.get(Uri.parse("$baseUrl/most-favorites/$pageNu"))).body; final document = parseHtml(res); return animeFromElement( document.select("div.movies-list > div.ml-item"), @@ -36,7 +38,7 @@ class YoMovies extends MProvider { String url = ""; String pageNu = page == 1 ? "" : "/page/$page"; if (query.isNotEmpty) { - url = "${preferenceBaseUrl(source.id)}$pageNu/?s=$query"; + url = "$baseUrl$pageNu/?s=$query"; } else { for (var filter in filters) { if (filter.type.isNotEmpty) { @@ -46,7 +48,7 @@ class YoMovies extends MProvider { } } } - url = "${preferenceBaseUrl(source.id)}$url$pageNu"; + url = "$baseUrl$url$pageNu"; } final res = (await client.get(Uri.parse(url))).body; final document = parseHtml(res); @@ -60,9 +62,7 @@ class YoMovies extends MProvider { Future getDetail(String url) async { url = getUrlWithoutDomain(url); - final res = - (await client.get(Uri.parse("${preferenceBaseUrl(source.id)}$url"))) - .body; + final res = (await client.get(Uri.parse("$baseUrl$url"))).body; final document = parseHtml(res); MManga anime = MManga(); var infoElement = document.selectFirst("div.mvi-content"); @@ -99,9 +99,7 @@ class YoMovies extends MProvider { @override Future> getVideoList(String url) async { url = getUrlWithoutDomain(url); - final res = - (await client.get(Uri.parse("${preferenceBaseUrl(source.id)}$url"))) - .body; + final res = (await client.get(Uri.parse("$baseUrl$url"))).body; final document = parseHtml(res); final serverElements = document.select("div.movieplay > iframe"); List videos = []; @@ -164,10 +162,6 @@ class YoMovies extends MProvider { return videos; } - String preferenceBaseUrl(int sourceId) { - return getPreferenceValue(sourceId, "overrideBaseUrl"); - } - MPages animeFromElement(List elements, bool hasNextPage) { List animeList = []; for (var element in elements) { diff --git a/anime/src/sq/filma24/filma24.dart b/anime/src/sq/filma24/filma24.dart index 8741b209..e717b520 100644 --- a/anime/src/sq/filma24/filma24.dart +++ b/anime/src/sq/filma24/filma24.dart @@ -8,21 +8,21 @@ class Filma24 extends MProvider { final Client client = Client(source); + @override + String get baseUrl => getPreferenceValue(source.id, "pref_domain"); + @override Future getPopular(int page) async { String pageNu = page == 1 ? "" : "/page/$page/"; - final res = - (await client.get(Uri.parse("${preferenceBaseUrl(source.id)}$pageNu"))) - .body; + final res = (await client.get(Uri.parse("$baseUrl$pageNu"))).body; return animeFromRes(res); } @override Future getLatestUpdates(int page) async { String pageNu = page == 1 ? "" : "page/$page/"; - final res = (await client.get( - Uri.parse("${preferenceBaseUrl(source.id)}/$pageNu?sort=trendy"))) - .body; + final res = + (await client.get(Uri.parse("$baseUrl/$pageNu?sort=trendy"))).body; return animeFromRes(res); } @@ -32,7 +32,7 @@ class Filma24 extends MProvider { String url = ""; String pageNu = page == 1 ? "" : "page/$page/"; if (query.isNotEmpty) { - url += "${preferenceBaseUrl(source.id)}/search/$query/"; + url += "$baseUrl/search/$query/"; } else { for (var filter in filters) { if (filter.type == "ReleaseFilter") { @@ -47,7 +47,7 @@ class Filma24 extends MProvider { } } } - url = "${preferenceBaseUrl(source.id)}$url"; + url = "$baseUrl$url"; } url += pageNu; @@ -131,10 +131,6 @@ class Filma24 extends MProvider { ]; } - String preferenceBaseUrl(int sourceId) { - return getPreferenceValue(sourceId, "pref_domain"); - } - @override List getFilterList() { return [