mirror of
https://github.com/kodjodevf/mangayomi-extensions.git
synced 2026-02-14 10:51:17 +00:00
fix Anime-Sama
This commit is contained in:
@@ -34,8 +34,8 @@ class AnimeSama extends MProvider {
|
|||||||
.where((MElement e) =>
|
.where((MElement e) =>
|
||||||
e.outerHtml.toLowerCase().contains("derniers épisodes ajoutés"))
|
e.outerHtml.toLowerCase().contains("derniers épisodes ajoutés"))
|
||||||
.toList();
|
.toList();
|
||||||
final seasonElements = (latest.first.nextElementSibling as MElement)
|
final seasonElements = (latest.first.parent.nextElementSibling as MElement)
|
||||||
.select(".scrollBarStyled > div")
|
.select("div")
|
||||||
.toList();
|
.toList();
|
||||||
List<MManga> seasons = [];
|
List<MManga> seasons = [];
|
||||||
for (var seasonElement in seasonElements) {
|
for (var seasonElement in seasonElements) {
|
||||||
@@ -128,13 +128,22 @@ class AnimeSama extends MProvider {
|
|||||||
List<MChapter>? episodesList = [];
|
List<MChapter>? episodesList = [];
|
||||||
for (var episodeNumber = 0; episodeNumber < maxLength; episodeNumber++) {
|
for (var episodeNumber = 0; episodeNumber < maxLength; episodeNumber++) {
|
||||||
List<String> langs = [];
|
List<String> langs = [];
|
||||||
|
bool isVf = false;
|
||||||
|
int iVostfr = 0;
|
||||||
|
int iVf = 0;
|
||||||
List<Map<String, dynamic>> players = [];
|
List<Map<String, dynamic>> players = [];
|
||||||
for (var playerListt in playersList) {
|
for (var playerList in playersList) {
|
||||||
for (var player in playerListt["players"]) {
|
for (var player in playerList["players"]) {
|
||||||
if (player.length > episodeNumber) {
|
if (player.length > episodeNumber) {
|
||||||
langs.add(playerListt["lang"]);
|
isVf = playerList["lang"] == "vf";
|
||||||
players.add(
|
if ((isVf && iVf < 2) || (!isVf && iVostfr < 2)) {
|
||||||
{"lang": playerListt["lang"], "player": player[episodeNumber]});
|
var lang = playerList["lang"];
|
||||||
|
if (!langs.contains(lang)) {
|
||||||
|
langs.add(lang);
|
||||||
|
}
|
||||||
|
players.add({"lang": lang, "player": player[episodeNumber]});
|
||||||
|
isVf ? iVf++ : iVostfr++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -162,8 +171,8 @@ class AnimeSama extends MProvider {
|
|||||||
List<MVideo> a = [];
|
List<MVideo> a = [];
|
||||||
if (playerUrl.contains("sendvid")) {
|
if (playerUrl.contains("sendvid")) {
|
||||||
a = await sendVidExtractorr(playerUrl, "$lang ");
|
a = await sendVidExtractorr(playerUrl, "$lang ");
|
||||||
} else if (playerUrl.contains("sibnet.ru")) {
|
} else if (playerUrl.contains("vidmoly")) {
|
||||||
a = await sibnetExtractor(playerUrl, lang);
|
a = await vidmolyExtractor(playerUrl, lang);
|
||||||
}
|
}
|
||||||
videos.addAll(a);
|
videos.addAll(a);
|
||||||
}
|
}
|
||||||
@@ -171,6 +180,41 @@ class AnimeSama extends MProvider {
|
|||||||
return sortVideos(videos, source.id);
|
return sortVideos(videos, source.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Future<List<MVideo>> vidmolyExtractor(String url, String lang) async {
|
||||||
|
final headers = {
|
||||||
|
'Referer': 'https://vidmoly.to',
|
||||||
|
};
|
||||||
|
List<MVideo> videos = [];
|
||||||
|
final playListUrlResponse = (await client.get(Uri.parse(url))).body;
|
||||||
|
final playlistUrl =
|
||||||
|
RegExp(r'file:"(\S+?)"').firstMatch(playListUrlResponse)?.group(1) ??
|
||||||
|
"";
|
||||||
|
if (playlistUrl.isEmpty) return [];
|
||||||
|
final masterPlaylistRes =
|
||||||
|
await client.get(Uri.parse(playlistUrl), headers: headers);
|
||||||
|
|
||||||
|
if (masterPlaylistRes.statusCode == 200) {
|
||||||
|
for (var it
|
||||||
|
in substringAfter(masterPlaylistRes.body, "#EXT-X-STREAM-INF:")
|
||||||
|
.split("#EXT-X-STREAM-INF:")) {
|
||||||
|
final quality =
|
||||||
|
"${substringBefore(substringBefore(substringAfter(substringAfter(it, "RESOLUTION="), "x"), ","), "\n")}p";
|
||||||
|
|
||||||
|
String videoUrl = substringBefore(substringAfter(it, "\n"), "\n");
|
||||||
|
|
||||||
|
MVideo video = MVideo();
|
||||||
|
video
|
||||||
|
..url = videoUrl
|
||||||
|
..originalUrl = videoUrl
|
||||||
|
..quality = "$lang Vidmoly $quality"
|
||||||
|
..headers = headers;
|
||||||
|
videos.add(video);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return videos;
|
||||||
|
}
|
||||||
|
|
||||||
Future<List<MVideo>> sendVidExtractorr(String url, String prefix) async {
|
Future<List<MVideo>> sendVidExtractorr(String url, String prefix) async {
|
||||||
final res = (await client.get(Uri.parse(url))).body;
|
final res = (await client.get(Uri.parse(url))).body;
|
||||||
final document = parseHtml(res);
|
final document = parseHtml(res);
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import '../../../../../model/source.dart';
|
import '../../../../../model/source.dart';
|
||||||
|
|
||||||
Source get animesamaSource => _animesama;
|
Source get animesamaSource => _animesama;
|
||||||
const animesamaVersion = "0.0.3";
|
const animesamaVersion = "0.0.4";
|
||||||
const animesamaCodeUrl =
|
const animesamaCodeUrl =
|
||||||
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/fr/animesama/animesama.dart";
|
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/fr/animesama/animesama.dart";
|
||||||
Source _animesama = Source(
|
Source _animesama = Source(
|
||||||
|
|||||||
Reference in New Issue
Block a user