This commit is contained in:
kodjomoustapha
2024-02-08 21:09:13 +01:00
parent 66e8230032
commit b6ecffc737
7 changed files with 83 additions and 124 deletions

View File

@@ -8,19 +8,20 @@ class DopeFlix extends MProvider {
final Client client = Client(source);
@override
String get baseUrl => getPreferenceValue(source.id, "preferred_domain");
@override
Future<MPages> 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<MPages> 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<MManga> 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<MPages> 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<MManga> 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<List<MVideo>> 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 "&";

View File

@@ -8,18 +8,21 @@ class Aniwave extends MProvider {
final Client client = Client(source);
@override
String get baseUrl => getPreferenceValue(source.id, "preferred_domain1");
@override
Future<MPages> 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<MPages> 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<MPages> 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<MChapter>? 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<MVideo> a = [];
@@ -633,10 +634,6 @@ class Aniwave extends MProvider {
];
}
String preferenceBaseUrl(int sourceId) {
return getPreferenceValue(sourceId, "preferred_domain1");
}
List<String> preferenceHosterSelection(int sourceId) {
return getPreferenceValue(sourceId, "hoster_selection");
}

View File

@@ -8,11 +8,14 @@ class DramaCool extends MProvider {
final Client client = Client(source);
@override
String get baseUrl => getPreferenceValue(source.id, "overrideBaseUrl");
@override
Future<MPages> 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<MPages> 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<MPages> 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<List<MVideo>> 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<MElement> elements, bool hasNextPage) {
List<MManga> animeList = [];
for (var element in elements) {

View File

@@ -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<MPages> 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<MManga> 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<List<MVideo>> 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<String> preferenceHosterSelection(int sourceId) {
return getPreferenceValue(sourceId, "hoster_selection");
}

View File

@@ -11,11 +11,12 @@ class UHDMovies extends MProvider {
@override
bool get supportsLatest => false;
@override
String get baseUrl => getPreferenceValue(source.id, "pref_domain");
@override
Future<MPages> 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<MPages> 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<MManga> 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<List<MVideo>> extractVideos(String url) async {
List<MVideo> videos = [];
for (int type = 1; type < 3; type++) {

View File

@@ -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<MPages> 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<MManga> 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<List<MVideo>> 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<MVideo> videos = [];
@@ -164,10 +162,6 @@ class YoMovies extends MProvider {
return videos;
}
String preferenceBaseUrl(int sourceId) {
return getPreferenceValue(sourceId, "overrideBaseUrl");
}
MPages animeFromElement(List<MElement> elements, bool hasNextPage) {
List<MManga> animeList = [];
for (var element in elements) {

View File

@@ -8,21 +8,21 @@ class Filma24 extends MProvider {
final Client client = Client(source);
@override
String get baseUrl => getPreferenceValue(source.id, "pref_domain");
@override
Future<MPages> 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<MPages> 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<dynamic> getFilterList() {
return [