Merge branch 'main' into novel/annasarchive

This commit is contained in:
Moustapha Kodjo Amadou
2025-05-10 11:56:41 +01:00
committed by GitHub
69 changed files with 139 additions and 118 deletions

View File

@@ -6,10 +6,7 @@ class DataLifeEngine extends MProvider {
MSource source;
final Client client = Client(
source,
json.encode({"useDartHttpClient": true}),
);
final Client client = Client();
@override
bool get supportsLatest => false;

View File

@@ -2,7 +2,7 @@ import '../../../../model/source.dart';
import 'src/frenchanime/frenchanime.dart';
import 'src/wiflix/wiflix.dart';
const _datalifeengineVersion = "0.0.6";
const _datalifeengineVersion = "0.0.65";
const _datalifeengineSourceCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/multisrc/datalifeengine/datalifeengine.dart";

View File

@@ -6,7 +6,7 @@ class DopeFlix extends MProvider {
MSource source;
final Client client = Client(source);
final Client client = Client();
@override
String get baseUrl => getPreferenceValue(source.id, "preferred_domain");

View File

@@ -2,7 +2,7 @@ import '../../../../model/source.dart';
import 'src/dopebox/dopebox.dart';
import 'src/sflix/sflix.dart';
const _dopeflixVersion = "0.0.55";
const _dopeflixVersion = "0.0.6";
const _dopeflixSourceCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/multisrc/dopeflix/dopeflix.dart";

View File

@@ -2,7 +2,7 @@ import '../../../../model/source.dart';
import 'src/hianime/hianime.dart';
import 'src/kaido/kaido.dart';
const _zorothemeVersion = "0.1.6";
const _zorothemeVersion = "0.1.65";
const _zorothemeSourceCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/multisrc/zorotheme/zorotheme.dart";

View File

@@ -6,7 +6,7 @@ class ZoroTheme extends MProvider {
MSource source;
final Client client = Client(source);
final Client client = Client();
@override
Future<MPages> getPopular(int page) async {

View File

@@ -6,7 +6,7 @@ class AnimeWorldIndia extends MProvider {
MSource source;
final Client client = Client(source);
final Client client = Client();
@override
Future<MPages> getPopular(int page) async {

View File

@@ -1,6 +1,6 @@
import '../../../../../model/source.dart';
const _animeworldindiaVersion = "0.0.3";
const _animeworldindiaVersion = "0.0.35";
const _animeworldindiaSourceCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/all/animeworldindia/animeworldindia.dart";

View File

@@ -5,7 +5,7 @@ class Nyaa extends MProvider {
MSource source;
final Client client = Client(source);
final Client client = Client();
@override
Future<MPages> getPopular(int page) async {

View File

@@ -1,6 +1,6 @@
import '../../../../../model/source.dart';
const _nyaaVersion = "0.0.25";
const _nyaaVersion = "0.0.3";
const _nyaaSourceCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/all/nyaa/nyaa.dart";

View File

@@ -6,7 +6,7 @@ class OkAnime extends MProvider {
MSource source;
final Client client = Client(source);
final Client client = Client();
@override
Future<MPages> getPopular(int page) async {

View File

@@ -1,7 +1,7 @@
import '../../../../../model/source.dart';
Source get okanimeSource => _okanimeSource;
const _okanimeVersion = "0.0.55";
const _okanimeVersion = "0.0.6";
const _okanimeSourceCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/ar/okanime/okanime.dart";
Source _okanimeSource = Source(

View File

@@ -5,7 +5,7 @@ class AnimeToast extends MProvider {
MSource source;
final Client client = Client(source);
final Client client = Client();
@override
bool get supportsLatest => false;

View File

@@ -1,7 +1,7 @@
import '../../../../../model/source.dart';
Source get animetoast => _animetoast;
const _animetoastVersion = "0.0.2";
const _animetoastVersion = "0.0.25";
const _animetoastCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/de/animetoast/animetoast.dart";
Source _animetoast = Source(

View File

@@ -7,7 +7,7 @@ class AnimePahe extends MProvider {
final MSource source;
final Client client = Client(source);
final Client client = Client();
@override
String get baseUrl => getPreferenceValue(source.id, "preferred_domain");

View File

@@ -1,7 +1,7 @@
import '../../../../../model/source.dart';
Source get animepaheSource => _animepaheSource;
const _animepaheVersion = "0.0.5";
const _animepaheVersion = "0.0.55";
const _animepaheSourceCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/en/animepahe/animepahe.dart";
Source _animepaheSource = Source(

View File

@@ -6,7 +6,7 @@ class GogoAnime extends MProvider {
MSource source;
final Client client = Client(source);
final Client client = Client();
@override
String get baseUrl =>

View File

@@ -1,7 +1,7 @@
import '../../../../../model/source.dart';
Source get gogoanimeSource => _gogoanimeSource;
const _gogoanimeVersion = "0.1.15";
const _gogoanimeVersion = "0.1.2";
const _gogoanimeSourceCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/en/gogoanime/gogoanime.dart";
Source _gogoanimeSource = Source(

View File

@@ -6,7 +6,7 @@ class KissKh extends MProvider {
MSource source;
final Client client = Client(source);
final Client client = Client();
@override
Future<MPages> getPopular(int page) async {

View File

@@ -1,7 +1,7 @@
import '../../../../../model/source.dart';
Source get kisskhSource => _kisskhSource;
const _kisskhVersion = "0.0.65";
const _kisskhVersion = "0.0.7";
const _kisskhSourceCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/en/kisskh/kisskh.dart";
Source _kisskhSource = Source(

View File

@@ -6,7 +6,7 @@ class NineAnimeTv extends MProvider {
MSource source;
final Client client = Client(source);
final Client client = Client();
@override
Future<MPages> getPopular(int page) async {

View File

@@ -1,7 +1,7 @@
import '../../../../../model/source.dart';
Source get nineanimetv => _nineanimetv;
const _nineanimetvVersion = "0.0.5";
const _nineanimetvVersion = "0.0.55";
const _nineanimetvCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/en/nineanimetv/nineanimetv.dart";
Source _nineanimetv = Source(

View File

@@ -1,7 +1,7 @@
import '../../../../../model/source.dart';
Source get uhdmoviesSource => _uhdmoviesSource;
const _uhdmoviesVersion = "0.0.45";
const _uhdmoviesVersion = "0.0.5";
const _uhdmoviesSourceCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/en/uhdmovies/uhdmovies.dart";
Source _uhdmoviesSource = Source(

View File

@@ -6,7 +6,7 @@ class UHDMovies extends MProvider {
MSource source;
final Client client = Client(source);
final Client client = Client();
@override
bool get supportsLatest => false;

View File

@@ -3,7 +3,7 @@
import '../../../../../model/source.dart';
Source get vumetoSource => _vumetoSource;
const _vumetoVersion = "0.0.5";
const _vumetoVersion = "0.0.55";
const _vumetoSourceCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/en/vumeto/vumeto.dart";
Source _vumetoSource = Source(

View File

@@ -6,7 +6,7 @@ class Vumeto extends MProvider {
MSource source;
final Client client = Client(source);
final Client client = Client();
@override
bool get supportsLatest => true;
@@ -99,21 +99,30 @@ class Vumeto extends MProvider {
final resp = await client.get(uri, headers);
final document = parseHtml(resp.body);
final description = document.selectFirst("meta[name='description']").attr("content") ?? '';
final description =
document.selectFirst("meta[name='description']").attr("content") ?? '';
MStatus status = MStatus.unknown;
final statusStart = resp.body.indexOf(":", resp.body.indexOf("\\\"status\\\""));
final statusStart = resp.body.indexOf(
":",
resp.body.indexOf("\\\"status\\\""),
);
final statusEnd = resp.body.indexOf("\\\",", statusStart);
if (statusStart != -1 && statusEnd != -1) {
final rawStatus = resp.body.substring(statusStart + 1, statusEnd);
status = parseStatus(rawStatus.replaceAll("\\\"", ""), statusList);
}
final genresStart = resp.body.indexOf("[", resp.body.indexOf("\\\"genres\\\":"));
final genresStart = resp.body.indexOf(
"[",
resp.body.indexOf("\\\"genres\\\":"),
);
final genresEnd = resp.body.indexOf("]", genresStart);
var genres = [];
if (genresStart != -1 && genresEnd != -1) {
final genreLinks = resp.body.substring(genresStart + 1, genresEnd).split(",");
final genreLinks = resp.body
.substring(genresStart + 1, genresEnd)
.split(",");
genres = genreLinks.map((String e) => e.replaceAll("\\\"", "")).toList();
}

View File

@@ -6,7 +6,7 @@ class AnimeOnlineNinja extends MProvider {
MSource source;
final Client client = Client(source);
final Client client = Client();
@override
bool get supportsLatest => false;

View File

@@ -1,7 +1,7 @@
import '../../../../../model/source.dart';
Source get animeonlineninjaSource => _animeonlineninjaSource;
const _animeonlineninjaVersion = "0.0.3";
const _animeonlineninjaVersion = "0.0.35";
const _animeonlineninjaSourceCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/es/animeonlineninja/animeonlineninja.dart";
Source _animeonlineninjaSource = Source(

View File

@@ -6,7 +6,7 @@ class AnimeSama extends MProvider {
MSource source;
final Client client = Client(source);
final Client client = Client();
@override
Future<MPages> getPopular(int page) async {

View File

@@ -1,7 +1,7 @@
import '../../../../../model/source.dart';
Source get animesamaSource => _animesama;
const animesamaVersion = "0.0.4";
const animesamaVersion = "0.0.45";
const animesamaCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/fr/animesama/animesama.dart";
Source _animesama = Source(

View File

@@ -6,7 +6,7 @@ class AnimesUltra extends MProvider {
MSource source;
final Client client = Client(source);
final Client client = Client();
@override
String get baseUrl => source.baseUrl;

View File

@@ -1,7 +1,7 @@
import '../../../../../model/source.dart';
Source get animesultraSource => _animesultraSource;
const _animesultraVersion = "0.0.75";
const _animesultraVersion = "0.0.8";
const _animesultraSourceCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/fr/animesultra/animesultra.dart";
Source _animesultraSource = Source(

View File

@@ -5,7 +5,7 @@ class AniZone extends MProvider {
AniZone({required this.source});
final MSource source;
final Client client = Client(source);
final Client client = Client();
// Constants for the xpath
static const String urlXpath =
@@ -53,15 +53,6 @@ class AniZone extends MProvider {
Future<MPages> search(String query, int page, FilterList filterList) async {
String baseUrl = "${source.baseUrl}/filter?keyword=$query";
Map<String, List<String>> filterMap = {
"type": [],
"status": [],
"season": [],
"lang": [],
"genre": [],
};
// Regroupement des filtres avec une logique générique
final filterHandlers = {
"TypeFilter": "type",
"LanguageFilter": "lang",
@@ -70,23 +61,30 @@ class AniZone extends MProvider {
"GenreFilter": "genre",
};
final activeFilterParams = <String, String>{};
for (var filter in filterList.filters) {
if (filterHandlers.containsKey(filter.type)) {
var key = filterHandlers[filter.type]!;
for (var stateItem in filter.state as List) {
if (stateItem.state == true) {
filterMap[key]?.add(stateItem.value as String);
}
final paramKey = filterHandlers[filter.type];
if (paramKey != null && filter.state is List) {
final selectedValues =
(filter.state as List)
.where((item) {
return item.state == true && item.value != null;
})
.map((item) => item.value as String)
.toList();
if (selectedValues.isNotEmpty) {
activeFilterParams[paramKey] = selectedValues.join("%2C");
}
}
}
//add filters to the url dynamically
for (var entry in filterMap.entries) {
List<String> values = entry.value;
if (values.isNotEmpty) {
baseUrl += '&${entry.key}=${values.join("%2C")}';
}
if (activeFilterParams.isNotEmpty) {
final queryString = activeFilterParams.entries
.map((entry) => '${Uri.encodeComponent(entry.key)}=${entry.value}')
.join('&');
baseUrl += '&$queryString';
}
return _getMangaList("$baseUrl&page=$page");

View File

@@ -1,7 +1,7 @@
import '../../../../../model/source.dart';
Source get aniZoneSource => _aniZoneSource;
const _aniZoneVersion = "0.0.2";
const _aniZoneVersion = "0.0.3";
const _aniZoneSourceCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/fr/anizone/anizone.dart";
Source _aniZoneSource = Source(

View File

@@ -6,7 +6,7 @@ class FrAnime extends MProvider {
MSource source;
final Client client = Client(source);
final Client client = Client();
@override
Future<MPages> getPopular(int page) async {

View File

@@ -1,7 +1,7 @@
import '../../../../../model/source.dart';
Source get franimeSource => _franimeSource;
const _franimeVersion = "0.0.75";
const _franimeVersion = "0.0.8";
const _franimeSourceCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/fr/franime/franime.dart";
Source _franimeSource = Source(

View File

@@ -6,7 +6,7 @@ class OtakuFr extends MProvider {
MSource source;
final Client client = Client(source);
final Client client = Client();
@override
String get baseUrl => getPreferenceValue(source.id, "overrideBaseUrl");

View File

@@ -1,7 +1,7 @@
import '../../../../../model/source.dart';
Source get otakufr => _otakufr;
const otakufrVersion = "0.0.95";
const otakufrVersion = "0.1.0";
const otakufrCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/fr/otakufr/otakufr.dart";
Source _otakufr = Source(

View File

@@ -1,7 +1,7 @@
import '../../../../../model/source.dart';
Source get yomoviesSource => _yomoviesSource;
const _yomoviesVersion = "0.0.25";
const _yomoviesVersion = "0.0.3";
const _yomoviesSourceCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/hi/yomovies/yomovies.dart";
Source _yomoviesSource = Source(

View File

@@ -6,7 +6,7 @@ class YoMovies extends MProvider {
MSource source;
final Client client = Client(source);
final Client client = Client();
@override
String get baseUrl => getPreferenceValue(source.id, "overrideBaseUrl");

View File

@@ -6,7 +6,7 @@ class NimeGami extends MProvider {
MSource source;
final Client client = Client(source);
final Client client = Client();
@override
Future<MPages> getPopular(int page) async {

View File

@@ -1,7 +1,7 @@
import '../../../../../model/source.dart';
Source get nimegami => _nimegami;
const _nimegamiVersion = "0.0.55";
const _nimegamiVersion = "0.0.6";
const _nimegamiCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/id/nimegami/nimegami.dart";
Source _nimegami = Source(

View File

@@ -6,7 +6,7 @@ class OploVerz extends MProvider {
MSource source;
final Client client = Client(source);
final Client client = Client();
@override
Future<MPages> getPopular(int page) async {

View File

@@ -1,7 +1,7 @@
import '../../../../../model/source.dart';
Source get oploverz => _oploverz;
const _oploverzVersion = "0.0.5";
const _oploverzVersion = "0.0.55";
const _oploverzCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/id/oploverz/oploverz.dart";
Source _oploverz = Source(

View File

@@ -6,7 +6,7 @@ class OtakuDesu extends MProvider {
MSource source;
final Client client = Client(source);
final Client client = Client();
@override
String get baseUrl => getPreferenceValue(source.id, "overrideBaseUrl");

View File

@@ -1,7 +1,7 @@
import '../../../../../model/source.dart';
Source get otakudesu => _otakudesu;
const _otakudesuVersion = "0.0.56";
const _otakudesuVersion = "0.0.6";
const _otakudesuCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/id/otakudesu/otakudesu.dart";
Source _otakudesu = Source(

View File

@@ -6,7 +6,7 @@ class AnimeSaturn extends MProvider {
MSource source;
final Client client = Client(source);
final Client client = Client();
@override
Future<MPages> getPopular(int page) async {

View File

@@ -1,7 +1,7 @@
import '../../../../../model/source.dart';
Source get animesaturn => _animesaturn;
const _animesaturnVersion = "0.0.5";
const _animesaturnVersion = "0.0.55";
const _animesaturnCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/it/animesaturn/animesaturn.dart";
Source _animesaturn = Source(

View File

@@ -6,7 +6,7 @@ class AnimesVision extends MProvider {
MSource source;
final Client client = Client(source);
final Client client = Client();
@override
String get baseUrl => source.baseUrl;

View File

@@ -1,7 +1,7 @@
import '../../../../../model/source.dart';
Source get animesvision => _animesvision;
const _animesvisionVersion = "0.0.15";
const _animesvisionVersion = "0.0.2";
const _animesvisionCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/pt/animesvision/animesvision.dart";
Source _animesvision = Source(

View File

@@ -6,16 +6,12 @@ class Filma24 extends MProvider {
MSource source;
final Client client = Client(
source,
json.encode({"useDartHttpClient": true}),
);
@override
String get baseUrl => getPreferenceValue(source.id, "pref_domain_new");
@override
Future<MPages> getPopular(int page) async {
final client = Client(source, json.encode({"useDartHttpClient": true}));
String pageNu = page == 1 ? "" : "/page/$page/";
final res = (await client.get(Uri.parse("$baseUrl$pageNu"))).body;
return animeFromRes(res);
@@ -23,6 +19,7 @@ class Filma24 extends MProvider {
@override
Future<MPages> getLatestUpdates(int page) async {
final client = Client(source, json.encode({"useDartHttpClient": true}));
String pageNu = page == 1 ? "" : "page/$page/";
final res =
(await client.get(Uri.parse("$baseUrl/$pageNu?sort=trendy"))).body;
@@ -31,6 +28,7 @@ class Filma24 extends MProvider {
@override
Future<MPages> search(String query, int page, FilterList filterList) async {
final client = Client(source, json.encode({"useDartHttpClient": true}));
final filters = filterList.filters;
String url = "";
String pageNu = page == 1 ? "" : "page/$page/";
@@ -61,6 +59,7 @@ class Filma24 extends MProvider {
@override
Future<MManga> getDetail(String url) async {
final client = Client(source, json.encode({"useDartHttpClient": true}));
List<MChapter>? episodesList = [];
if (!url.contains("seriale")) {
MChapter episode = MChapter();
@@ -91,6 +90,7 @@ class Filma24 extends MProvider {
@override
Future<List<MVideo>> getVideoList(String url) async {
final client = Client(source, json.encode({"useDartHttpClient": true}));
final res = (await client.get(Uri.parse(url))).body;
List<MVideo> videos = [];
final serverUrls = xpath(res, '//*[@class="player"]/div[1]/a/@href');
@@ -195,6 +195,7 @@ class Filma24 extends MProvider {
}
Future<List<MVideo>> vidmolyExtractor(String url) async {
final client = Client(source, json.encode({"useDartHttpClient": true}));
final headers = {'Referer': 'https://vidmoly.to'};
List<MVideo> videos = [];
final playListUrlResponse = (await client.get(Uri.parse(url))).body;
@@ -231,6 +232,7 @@ class Filma24 extends MProvider {
}
Future<List<MVideo>> oneuploadExtractor(String url) async {
final client = Client(source, json.encode({"useDartHttpClient": true}));
List<MVideo> videos = [];
final playListUrlResponse = (await client.get(Uri.parse(url))).body;
final playlistUrl =
@@ -258,6 +260,7 @@ class Filma24 extends MProvider {
}
Future<List<MVideo>> uqloadExtractor(String url) async {
final client = Client(source, json.encode({"useDartHttpClient": true}));
final res = (await client.get(Uri.parse(url))).body;
final js = xpath(res, '//script[contains(text(), "sources:")]/text()');
if (js.isEmpty) {

View File

@@ -1,7 +1,7 @@
import '../../../../../model/source.dart';
Source get filma24 => _filma24;
const _filma24Version = "0.0.45";
const _filma24Version = "0.0.5";
const _filma24CodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/sq/filma24/filma24.dart";
Source _filma24 = Source(

View File

@@ -6,7 +6,7 @@ class DiziWatch extends MProvider {
MSource source;
final Client client = Client(source);
final Client client = Client();
@override
bool get supportsLatest => true;

View File

@@ -1,7 +1,7 @@
import '../../../../../model/source.dart';
Source get diziwatchSource => _diziwatchSource;
const _diziwatchVersion = "0.0.1";
const _diziwatchVersion = "0.0.15";
const _diziwatchSourceCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/tr/diziwatch/diziwatch.dart";
Source _diziwatchSource = Source(

View File

@@ -6,7 +6,7 @@ class Madara extends MProvider {
MSource source;
final Client client = Client(source);
final Client client = Client();
@override
Future<MPages> getPopular(int page) async {

View File

@@ -1,12 +1,11 @@
import 'package:mangayomi/bridge_lib.dart';
class MangaBox extends MProvider {
MangaBox({required this.source});
MSource source;
final Client client = Client(source);
final Client client = Client();
@override
Future<MPages> getPopular(int page) async {
@@ -34,11 +33,8 @@ class MangaBox extends MProvider {
String url = "";
if (query.isNotEmpty) {
url = "${source.baseUrl}/${simpleQueryPath(source.name, page, query)}";
} else {
String genre = "all";
String sort = "latest";
String status = "all";
@@ -52,11 +48,15 @@ class MangaBox extends MProvider {
status = filter.values[filter.state].value;
}
}
url = "${source.baseUrl}/genre/$genre?type=$sort&state=$status&page=$page";
url =
"${source.baseUrl}/genre/$genre?type=$sort&state=$status&page=$page";
}
final res = (await client.get(Uri.parse(url), headers: getHeader(source.baseUrl),)).body;
final res =
(await client.get(
Uri.parse(url),
headers: getHeader(source.baseUrl),
)).body;
List<MManga> mangaList = [];
List<String> urls = [];
@@ -110,10 +110,11 @@ class MangaBox extends MProvider {
{"Ongoing": 0, "Completed": 1},
];
MManga manga = MManga();
final res = (await client.get(
Uri.parse(url),
headers: getHeader(source.baseUrl),
)).body;
final res =
(await client.get(
Uri.parse(url),
headers: getHeader(source.baseUrl),
)).body;
final document = parseHtml(res);
manga.author =
document.xpathFirst(
@@ -189,7 +190,11 @@ class MangaBox extends MProvider {
@override
Future<List<String>> getPageList(String url) async {
final res = (await client.get(Uri.parse(url), headers: getHeader(source.baseUrl),)).body;
final res =
(await client.get(
Uri.parse(url),
headers: getHeader(source.baseUrl),
)).body;
List<String> pageUrls = [];
final urls = xpath(
res,
@@ -361,9 +366,10 @@ class MangaBox extends MProvider {
Map<String, String> getHeader(String url) {
final Map<String, String> headers = {
"Referer": "$url/",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36",
};
"Referer": "$url/",
"User-Agent":
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36",
};
return headers;
}

View File

@@ -4,7 +4,7 @@ import 'src/mangairo/mangaeiro.dart';
import 'src/mangakakalot/mangakakalot.dart';
import 'src/manganato/manganato.dart';
const mangaboxVersion = "0.0.65";
const mangaboxVersion = "0.0.7";
const mangaboxSourceCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/mangabox/mangabox.dart";

View File

@@ -6,7 +6,7 @@ class MangaReader extends MProvider {
MSource source;
final Client client = Client(source);
final Client client = Client();
@override
String get baseUrl => getPreferenceValue(source.id, "override_baseurl");

View File

@@ -93,7 +93,7 @@ import 'src/shijiescans/shijiescans.dart';
import 'src/summertoon/summertoon.dart';
import 'src/zenithscans/zenithscans.dart';
const mangareaderVersion = "0.1.6";
const mangareaderVersion = "0.1.65";
const mangareaderSourceCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/mangareader/mangareader.dart";

View File

@@ -6,7 +6,7 @@ class MMRCMS extends MProvider {
MSource source;
final Client client = Client(source);
final Client client = Client();
@override
Future<MPages> getPopular(int page) async {

View File

@@ -8,7 +8,7 @@ import 'src/readcomicsonline/readcomicsonline.dart';
import 'src/lelscanvf/lelscanvf.dart';
import 'src/mangafr/mangafr.dart';
const mmrcmsVersion = "0.0.65";
const mmrcmsVersion = "0.0.7";
const mmrcmsSourceCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/mmrcms/mmrcms.dart";

View File

@@ -6,7 +6,7 @@ class NepNep extends MProvider {
MSource source;
final Client client = Client(source);
final Client client = Client();
@override
Future<MPages> getPopular(int page) async {

View File

@@ -3,7 +3,7 @@ import '../../../../model/source.dart';
import 'src/mangasee/mangasee.dart';
import 'src/mangalife/mangalife.dart';
const nepnepVersion = "0.0.65";
const nepnepVersion = "0.0.7";
const nepnepSourceCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/nepnep/nepnep.dart";

View File

@@ -6,7 +6,7 @@ class MangaHere extends MProvider {
MSource source;
final Client client = Client(source);
final Client client = Client();
@override
Future<MPages> getPopular(int page) async {

View File

@@ -1,7 +1,7 @@
import '../../../../../model/source.dart';
Source get mangahereSource => _mangahereSource;
const _mangahereVersion = "0.0.7";
const _mangahereVersion = "0.0.75";
const _mangahereSourceCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/src/en/mangahere/mangahere.dart";
Source _mangahereSource = Source(

File diff suppressed because one or more lines are too long

View File

@@ -7,7 +7,7 @@ const mangayomiSources = [{
"typeSource": "single",
"itemType": 1,
"isNsfw": false,
"version": "0.3.7",
"version": "0.3.8",
"dateFormat": "",
"dateFormatLocale": "",
"pkgPath": "anime/src/de/aniworld.js"
@@ -122,7 +122,11 @@ class DefaultExtension extends MProvider {
.filter(e => e.outerHtml.includes("Produzent:"));
let author = "";
if (produzent.length > 0) {
author = produzent[0].select("li").map(e => e.text).join(", ");
author = produzent[0]
.select("li")
.map((e) => e.text)
.filter((text) => !/^\s\&\s\d+\sweitere$/.test(text))
.join(", ");
}
const seasonsElements = document.select("#stream > ul:nth-child(1) > li > a");
// Use asyncPool to limit concurrency while processing seasons

View File

@@ -7,7 +7,7 @@ const mangayomiSources = [{
"typeSource": "single",
"itemType": 1,
"isNsfw": false,
"version": "0.0.8",
"version": "0.0.9",
"dateFormat": "",
"dateFormatLocale": "",
"pkgPath": "anime/src/de/serienstream.js"
@@ -122,7 +122,11 @@ class DefaultExtension extends MProvider {
.filter(e => e.outerHtml.includes("Produzent:"));
let author = "";
if (produzent.length > 0) {
author = produzent[0].select("li").map(e => e.text).join(", ");
author = produzent[0]
.select("li")
.map((e) => e.text)
.filter((text) => !/^\s\&\s\d+\sweitere$/.test(text))
.join(", ");
}
const seasonsElements = document.select("#stream > ul:nth-child(1) > li > a");
// Use asyncPool to limit concurrency while processing seasons

View File

@@ -1 +1 @@
[{"name":"Wordrain69","id":422341482,"baseUrl":"https://wordrain69.com","lang":"en","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/en.wordrain69.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/novel/src/en/wordrain69.js","apiUrl":"","version":"0.0.3","isManga":false,"itemType":2,"isFullData":false,"appMinVerReq":"0.5.0","additionalParams":"","sourceCodeLanguage":1,"notes":""},{"name":"Novel Updates","id":413730324,"baseUrl":"https://www.novelupdates.com","lang":"en","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/en.novelupdates.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":true,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/novel/src/en/novelupdates.js","apiUrl":"","version":"0.0.4","isManga":false,"itemType":2,"isFullData":false,"appMinVerReq":"0.5.0","additionalParams":"","sourceCodeLanguage":1,"notes":"This extension requires you to login to view the chapters!"},{"name":"Anna's Archive","id":620172119,"baseUrl":"https://annas-archive.org","lang":"en","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/all.annasarchive.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":true,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/novel/src/all/annasarchive.js","apiUrl":"","version":"0.0.1","isManga":false,"itemType":2,"isFullData":false,"appMinVerReq":"0.5.0","additionalParams":"","sourceCodeLanguage":1,"notes":"EPUBs need to be downloaded to view chapters!"}]
[{"name":"Novel Updates","id":413730324,"baseUrl":"https://www.novelupdates.com","lang":"en","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/en.novelupdates.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":true,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/novel/src/en/novelupdates.js","apiUrl":"","version":"0.0.3","isManga":false,"itemType":2,"isFullData":false,"appMinVerReq":"0.5.0","additionalParams":"","sourceCodeLanguage":1},{"name":"Wordrain69","id":422341482,"baseUrl":"https://wordrain69.com","lang":"en","typeSource":"single","iconUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/en.wordrain69.png","dateFormat":"","dateFormatLocale":"","isNsfw":false,"hasCloudflare":false,"sourceCodeUrl":"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/novel/src/en/wordrain69.js","apiUrl":"","version":"0.0.3","isManga":false,"itemType":2,"isFullData":false,"appMinVerReq":"0.5.0","additionalParams":"","sourceCodeLanguage":1}]