This commit is contained in:
kodjomoustapha
2023-12-20 16:35:01 +01:00
parent 792c7dd9a6
commit 48c1bc618f
280 changed files with 635 additions and 715 deletions

View File

@@ -286,27 +286,44 @@ final String htmlString = '''
print(xpathRes.first); // https://github.com/kodjodevf
```
`String` querySelector(`String html`, {`required String selector`}, {`required int typeElement`},{`required String attributes`})
```bash
if typeElement == 0 // return querySelector text
if typeElement == 1 // return querySelector innerHtml
if typeElement == 2 // return querySelector outerHtml
if typeElement == 3 // return querySelector attributes
```
### DOM selector
`List<String>` querySelectorAll(`String html`, {`required String selector`}, {`required int typeElement`},{`required String attributes`}, {`required int typeRegExp`})
Example:
```bash
if typeRegExp == 0 you can use :
if typeElement == 0 // return list querySelector text
if typeElement == 1 // return list querySelector innerHtml
if typeElement == 2 // return list querySelector outerHtml
if typeElement == 3 // return list querySelector attributes
else
if typeRegExp == 1 // return list of element of href that match
if typeRegExp == 2 // return list of element of src that match
if typeRegExp == 3 // return list of element of datasrc that match
if typeRegExp == 4 // return list of element of img that match
```
final String htmlString = '''
<html lang="en">
<body>
<div><a href='https://github.com/kodjodevf'>author</a></div>
<div class="head">div head</div>
<div class="container">
<table>
<tbody>
<tr>
<td id="td1" class="first1">1</td>
<td id="td2" class="first1">2</td>
<td id="td3" class="first2">3</td>
<td id="td4" class="first2 form">4</td>
<td id="td5" class="second1">one</td>
<td id="td6" class="second1">two</td>
<td id="td7" class="second2">three</td>
<td id="td8" class="second2">four</td>
</tr>
</tbody>
</table>
</div>
<div class="end">end</div>
</body>
</html>
''';
MDocument document = parseHtml(htmlString);
print(document.selecFirst("a").attr("href")); // https://github.com/kodjodevf
print(document.selecFirst("td").text); // 1
See [`MDocument` model](https://github.com/kodjodevf/mangayomi/blob/main/lib/eval/model/document.dart) and [`MElement` model](https://github.com/kodjodevf/mangayomi/blob/main/lib/eval/model/element.dart) to see aivable methods.
```
### String utils

View File

@@ -1,10 +1,10 @@
import '../../../model/source.dart';
import 'src/frenchanime/frenchanime-v0.0.1.dart';
import 'src/frenchanime/frenchanime.dart';
import 'src/wiflix/wiflix.dart';
const _datalifeengineVersion = "0.0.1";
const _datalifeengineVersion = "0.0.15";
const _datalifeengineSourceCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/anime/multisrc/datalifeengine/datalifeengine-v$_datalifeengineVersion.dart";
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/multisrc/datalifeengine/datalifeengine.dart";
List<Source> get datalifeengineSourcesList => _datalifeengineSourcesList;
List<Source> _datalifeengineSourcesList = [

View File

@@ -9,5 +9,5 @@ Source _frenchanimeSource = Source(
typeSource: "datalifeengine",
isManga: false,
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/anime/multisrc/datalifeengine/src/frenchanime/icon.png",
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/multisrc/datalifeengine/src/frenchanime/icon.png",
);

View File

@@ -9,5 +9,5 @@ Source _wiflixSource = Source(
typeSource: "datalifeengine",
isManga: false,
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/anime/multisrc/datalifeengine/src/wiflix/icon.png",
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/multisrc/datalifeengine/src/wiflix/icon.png",
);

View File

@@ -2,9 +2,9 @@ import '../../../model/source.dart';
import 'src/dopebox/dopebox.dart';
import 'src/sflix/sflix.dart';
const _dopeflixVersion = "0.0.25";
const _dopeflixVersion = "0.0.3";
const _dopeflixSourceCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/anime/multisrc/dopeflix/dopeflix-v$_dopeflixVersion.dart";
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/multisrc/dopeflix/dopeflix.dart";
List<Source> get dopeflixSourcesList => _dopeflixSourcesList;
List<Source> _dopeflixSourcesList = [

View File

@@ -9,5 +9,5 @@ Source _dopeboxSource = Source(
typeSource: "dopeflix",
isManga: false,
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/anime/multisrc/dopeflix/src/dopebox/icon.png",
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/multisrc/dopeflix/src/dopebox/icon.png",
);

View File

@@ -9,5 +9,5 @@ Source _sflixSource = Source(
typeSource: "dopeflix",
isManga: false,
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/anime/multisrc/dopeflix/src/sflix/icon.png",
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/multisrc/dopeflix/src/sflix/icon.png",
);

View File

@@ -2,9 +2,9 @@ import '../../../model/source.dart';
import 'src/aniwatch/aniwatch.dart';
import 'src/kaido/kaido.dart';
const _zorothemeVersion = "0.0.6";
const _zorothemeVersion = "0.0.65";
const _zorothemeSourceCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/anime/multisrc/zorotheme/zorotheme-v$_zorothemeVersion.dart";
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/multisrc/zorotheme/zorotheme.dart";
List<Source> get zorothemeSourcesList => _zorothemeSourcesList;
List<Source> _zorothemeSourcesList = [

View File

@@ -9,5 +9,5 @@ Source _aniwatchSource = Source(
lang: "en",
typeSource: "zorotheme",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/anime/multisrc/zorotheme/src/aniwatch/icon.png",
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/multisrc/zorotheme/src/aniwatch/icon.png",
);

View File

@@ -9,5 +9,5 @@ Source _kaidoSource = Source(
isManga: false,
typeSource: "zorotheme",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/anime/multisrc/zorotheme/src/kaido/icon.png",
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/multisrc/zorotheme/src/kaido/icon.png",
);

View File

@@ -1,16 +1,16 @@
import '../../../../model/source.dart';
Source get okanimeSource => _okanimeSource;
const _okanimeVersion = "0.0.35";
const _okanimeVersion = "0.0.4";
const _okanimeSourceCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/anime/src/ar/okanime/okanime-v$_okanimeVersion.dart";
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/src/ar/okanime/okanime.dart";
Source _okanimeSource = Source(
name: "Okanime",
baseUrl: "https://www.okanime.xyz",
lang: "ar",
typeSource: "single",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/anime/src/ar/okanime/icon.png",
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/src/ar/okanime/icon.png",
sourceCodeUrl: _okanimeSourceCodeUrl,
version: _okanimeVersion,
isManga: false);

View File

@@ -1,16 +1,16 @@
import '../../../../model/source.dart';
Source get aniwave => _aniwave;
const _aniwaveVersion = "0.0.25";
const _aniwaveVersion = "0.0.3";
const _aniwaveCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/anime/src/en/aniwave/aniwave-v$_aniwaveVersion.dart";
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/src/en/aniwave/aniwave.dart";
Source _aniwave = Source(
name: "Aniwave",
baseUrl: "https://aniwave.to",
lang: "en",
typeSource: "single",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/anime/src/en/aniwave/icon.png",
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/src/en/aniwave/icon.png",
sourceCodeUrl: _aniwaveCodeUrl,
version: _aniwaveVersion,
isManga: false);

View File

@@ -1,16 +1,16 @@
import '../../../../model/source.dart';
Source get gogoanimeSource => _gogoanimeSource;
const _gogoanimeVersion = "0.0.55";
const _gogoanimeVersion = "0.0.6";
const _gogoanimeSourceCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/anime/src/en/gogoanime/gogoanime-v$_gogoanimeVersion.dart";
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/src/en/gogoanime/gogoanime.dart";
Source _gogoanimeSource = Source(
name: "Gogoanime",
baseUrl: "https://gogoanime3.net",
lang: "en",
typeSource: "single",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/anime/src/en/gogoanime/icon.png",
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/src/en/gogoanime/icon.png",
sourceCodeUrl: _gogoanimeSourceCodeUrl,
version: _gogoanimeVersion,
isManga: false);

View File

@@ -1,16 +1,16 @@
import '../../../../model/source.dart';
Source get kisskhSource => _kisskhSource;
const _kisskhVersion = "0.0.4";
const _kisskhVersion = "0.0.45";
const _kisskhSourceCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/anime/src/en/kisskh/kisskh-v$_kisskhVersion.dart";
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/src/en/kisskh/kisskh.dart";
Source _kisskhSource = Source(
name: "KissKH",
baseUrl: "https://kisskh.co",
lang: "en",
typeSource: "single",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/anime/src/en/kisskh/icon.png",
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/src/en/kisskh/icon.png",
sourceCodeUrl: _kisskhSourceCodeUrl,
version: _kisskhVersion,
isManga: false);

View File

@@ -1,16 +1,16 @@
import '../../../../model/source.dart';
Source get uhdmoviesSource => _uhdmoviesSource;
const _uhdmoviesVersion = "0.0.15";
const _uhdmoviesVersion = "0.0.2";
const _uhdmoviesSourceCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/anime/src/en/uhdmovies/uhdmovies-v$_uhdmoviesVersion.dart";
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/src/en/uhdmovies/uhdmovies.dart";
Source _uhdmoviesSource = Source(
name: "UHD Movies",
baseUrl: "https://uhdmovies.zip",
lang: "en",
typeSource: "single",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/anime/src/en/uhdmovies/icon.png",
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/src/en/uhdmovies/icon.png",
sourceCodeUrl: _uhdmoviesSourceCodeUrl,
version: _uhdmoviesVersion,
isManga: false);

View File

@@ -1,16 +1,16 @@
import '../../../../model/source.dart';
Source get animesultraSource => _animesultraSource;
const _animesultraVersion = "0.0.45";
const _animesultraVersion = "0.0.5";
const _animesultraSourceCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/anime/src/fr/animesultra/animesultra-v$_animesultraVersion.dart";
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/src/fr/animesultra/animesultra.dart";
Source _animesultraSource = Source(
name: "AnimesUltra",
baseUrl: "https://ww.animesultra.net",
lang: "fr",
typeSource: "single",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/anime/src/fr/animesultra/icon.png",
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/src/fr/animesultra/icon.png",
sourceCodeUrl: _animesultraSourceCodeUrl,
version: _animesultraVersion,
isManga: false,

View File

@@ -1,9 +1,9 @@
import '../../../../model/source.dart';
Source get franimeSource => _franimeSource;
const _franimeVersion = "0.0.5";
const _franimeVersion = "0.0.55";
const _franimeSourceCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/anime/src/fr/franime/franime-v$_franimeVersion.dart";
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/src/fr/franime/franime.dart";
Source _franimeSource = Source(
name: "FrAnime",
baseUrl: "https://franime.fr",
@@ -11,7 +11,7 @@ Source _franimeSource = Source(
lang: "fr",
typeSource: "single",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/anime/src/fr/franime/icon.png",
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/src/fr/franime/icon.png",
sourceCodeUrl: _franimeSourceCodeUrl,
version: _franimeVersion,
isManga: false,

View File

@@ -1,16 +1,16 @@
import '../../../../model/source.dart';
Source get otakufr => _otakufr;
const otakufrVersion = "0.0.55";
const otakufrVersion = "0.0.6";
const otakufrCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/anime/src/fr/otakufr/otakufr-v$otakufrVersion.dart";
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/src/fr/otakufr/otakufr.dart";
Source _otakufr = Source(
name: "OtakuFr",
baseUrl: "https://otakufr.co",
lang: "fr",
typeSource: "single",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/anime/src/fr/otakufr/icon.png",
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/src/fr/otakufr/icon.png",
sourceCodeUrl: otakufrCodeUrl,
version: otakufrVersion,
isManga: false,

View File

@@ -1,16 +1,16 @@
import '../../../../model/source.dart';
Source get nimegami => _nimegami;
const _nimegamiVersion = "0.0.3";
const _nimegamiVersion = "0.0.35";
const _nimegamiCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/anime/src/id/nimegami/nimegami-v$_nimegamiVersion.dart";
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/src/id/nimegami/nimegami.dart";
Source _nimegami = Source(
name: "NimeGami",
baseUrl: "https://nimegami.id",
lang: "id",
typeSource: "single",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/anime/src/id/nimegami/icon.png",
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/src/id/nimegami/icon.png",
sourceCodeUrl: _nimegamiCodeUrl,
version: _nimegamiVersion,
isManga: false);

View File

@@ -1,16 +1,16 @@
import '../../../../model/source.dart';
Source get oploverz => _oploverz;
const _oploverzVersion = "0.0.25";
const _oploverzVersion = "0.0.3";
const _oploverzCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/anime/src/id/oploverz/oploverz-v$_oploverzVersion.dart";
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/src/id/oploverz/oploverz.dart";
Source _oploverz = Source(
name: "Oploverz",
baseUrl: "https://oploverz.red",
lang: "id",
typeSource: "single",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/anime/src/id/oploverz/icon.png",
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/src/id/oploverz/icon.png",
sourceCodeUrl: _oploverzCodeUrl,
version: _oploverzVersion,
isManga: false);

View File

@@ -1,16 +1,16 @@
import '../../../../model/source.dart';
Source get otakudesu => _otakudesu;
const _otakudesuVersion = "0.0.3";
const _otakudesuVersion = "0.0.35";
const _otakudesuCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/anime/src/id/otakudesu/otakudesu-v$_otakudesuVersion.dart";
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/src/id/otakudesu/otakudesu.dart";
Source _otakudesu = Source(
name: "OtakuDesu",
baseUrl: "https://otakudesu.cam",
lang: "id",
typeSource: "single",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/anime/src/id/otakudesu/icon.png",
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/src/id/otakudesu/icon.png",
sourceCodeUrl: _otakudesuCodeUrl,
version: _otakudesuVersion,
isManga: false);

View File

@@ -1,16 +1,16 @@
import '../../../../model/source.dart';
Source get animesaturn => _animesaturn;
const _animesaturnVersion = "0.0.15";
const _animesaturnVersion = "0.0.2";
const _animesaturnCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/anime/src/it/animesaturn/animesaturn-v$_animesaturnVersion.dart";
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/src/it/animesaturn/animesaturn.dart";
Source _animesaturn = Source(
name: "AnimeSaturn",
baseUrl: "https://www.animesaturn.tv",
lang: "it",
typeSource: "single",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/anime/src/it/animesaturn/icon.png",
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/anime/src/it/animesaturn/icon.png",
sourceCodeUrl: _animesaturnCodeUrl,
version: _animesaturnVersion,
isManga: false);

File diff suppressed because one or more lines are too long

View File

@@ -3,9 +3,9 @@ import 'src/yugenmangas/yugenmangas.dart';
import 'src/omegascans/omegascans.dart';
import 'src/perfscan/perfscan.dart';
const heancmsVersion = "0.0.45";
const heancmsVersion = "0.0.5";
const heancmsSourceCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/heancms/heancms-v$heancmsVersion.dart";
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/heancms/heancms.dart";
List<Source> get heancmsSourcesList => _heancmsSourcesList;
List<Source> _heancmsSourcesList = [

View File

@@ -10,7 +10,7 @@ Source _omegascansSource = Source(
isNsfw: true,
typeSource: "heancms",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/heancms/src/omegascans/icon.png",
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/heancms/src/omegascans/icon.png",
dateFormat: "yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ",
dateFormatLocale: "en",
);

View File

@@ -9,7 +9,7 @@ Source _perfscanSource = Source(
lang: "fr",
typeSource: "heancms",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/heancms/src/perfscan/icon.png",
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/heancms/src/perfscan/icon.png",
dateFormat: "yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ",
dateFormatLocale: "en",
);

View File

@@ -10,7 +10,7 @@ Source _yugenmangasSource = Source(
isNsfw: true,
typeSource: "heancms",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/heancms/src/yugenmangas/icon.png",
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/heancms/src/yugenmangas/icon.png",
dateFormat: "yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ",
dateFormatLocale: "en",
);

View File

@@ -1,402 +0,0 @@
import 'package:mangayomi/bridge_lib.dart';
import 'dart:convert';
class Madara extends MProvider {
Madara();
@override
Future<MPages> getPopular(MSource source, int page) async {
final url = "${source.baseUrl}/manga/page/$page/?m_orderby=views";
final data = {"url": url, "sourceId": source.id};
final res = await http('GET', json.encode(data));
List<MManga> mangaList = [];
final urls = xpath(res, '//*[@class^="post-title"]/h3/a/@href');
final names = xpath(res, '//*[@id^="manga-item"]/a/@title');
var images = xpath(res, '//*[@id^="manga-item"]/a/img/@data-src');
if (images.isEmpty) {
images = xpath(res, '//*[@id^="manga-item"]/a/img/@data-lazy-src');
if (images.isEmpty) {
images = xpath(res, '//*[@id^="manga-item"]/a/img/@srcset');
if (images.isEmpty) {
images = xpath(res, '//*[@id^="manga-item"]/a/img/@src');
}
}
}
for (var i = 0; i < names.length; i++) {
MManga manga = MManga();
manga.name = names[i];
manga.imageUrl = substringBefore(images[i], " ");
manga.link = urls[i];
mangaList.add(manga);
}
return MPages(mangaList, true);
}
@override
Future<MPages> getLatestUpdates(MSource source, int page) async {
final url = "${source.baseUrl}/manga/page/$page/?m_orderby=latest";
final data = {"url": url, "sourceId": source.id};
final res = await http('GET', json.encode(data));
List<MManga> mangaList = [];
final urls = xpath(res, '//*[@class^="post-title"]/h3/a/@href');
final names = xpath(res, '//*[@id^="manga-item"]/a/@title');
var images = xpath(res, '//*[@id^="manga-item"]/a/img/@data-src');
if (images.isEmpty) {
images = xpath(res, '//*[@id^="manga-item"]/a/img/@data-lazy-src');
if (images.isEmpty) {
images = xpath(res, '//*[@id^="manga-item"]/a/img/@srcset');
if (images.isEmpty) {
images = xpath(res, '//*[@id^="manga-item"]/a/img/@src');
}
}
}
for (var i = 0; i < names.length; i++) {
MManga manga = MManga();
manga.name = names[i];
manga.imageUrl = substringBefore(images[i], " ");
manga.link = urls[i];
mangaList.add(manga);
}
return MPages(mangaList, true);
}
@override
Future<MPages> search(
MSource source, String query, int page, FilterList filterList) async {
final filters = filterList.filters;
String url = "${source.baseUrl}/?s=$query&post_type=wp-manga";
for (var filter in filters) {
if (filter.type == "AuthorFilter") {
if (filter.state.isNotEmpty) {
url += "${ll(url)}author=${Uri.encodeComponent(filter.state)}";
}
} else if (filter.type == "ArtistFilter") {
if (filter.state.isNotEmpty) {
url += "${ll(url)}artist=${Uri.encodeComponent(filter.state)}";
}
} else if (filter.type == "YearFilter") {
if (filter.state.isNotEmpty) {
url += "${ll(url)}release=${Uri.encodeComponent(filter.state)}";
}
} else if (filter.type == "StatusFilter") {
final status = (filter.state as List).where((e) => e.state).toList();
if (status.isNotEmpty) {
for (var st in status) {
url += "${ll(url)}status[]=${st.value},";
}
}
} else if (filter.type == "OrderByFilter") {
if (filter.state != 0) {
final order = filter.values[filter.state].value;
url += "${ll(url)}m_orderby=$order";
}
} else if (filter.type == "AdultContentFilter") {
final ctn = filter.values[filter.state].value;
if (ctn.isNotEmpty) {
url += "${ll(url)}adult=$ctn";
}
} else if (filter.type == "GenreListFilter") {
final genres = (filter.state as List).where((e) => e.state).toList();
if (genres.isNotEmpty) {
for (var genre in genres) {
url += "${ll(url)}genre[]=${genre.value},";
}
}
}
}
final data = {"url": url, "sourceId": source.id};
final res = await http('GET', json.encode(data));
List<MManga> mangaList = [];
final urls = xpath(res, '//*[@class^="tab-thumb c-image-hover"]/a/@href');
final names = xpath(res, '//*[@class^="tab-thumb c-image-hover"]/a/@title');
var images =
xpath(res, '//*[@class^="tab-thumb c-image-hover"]/a/img/@data-src');
if (images.isEmpty) {
images = xpath(
res, '//*[@class^="tab-thumb c-image-hover"]/a/img/@data-lazy-src');
if (images.isEmpty) {
images =
xpath(res, '//*[@class^="tab-thumb c-image-hover"]/a/img/@srcset');
if (images.isEmpty) {
images =
xpath(res, '//*[@class^="tab-thumb c-image-hover"]/a/img/@src');
}
}
}
for (var i = 0; i < names.length; i++) {
MManga manga = MManga();
manga.name = names[i];
manga.imageUrl = substringBefore(images[i], " ");
manga.link = urls[i];
mangaList.add(manga);
}
return MPages(mangaList, true);
}
@override
Future<MManga> getDetail(MSource source, String url) async {
final statusList = [
{
"OnGoing": 0,
"Продолжается": 0,
"Updating": 0,
"Em Lançamento": 0,
"Em lançamento": 0,
"Em andamento": 0,
"Em Andamento": 0,
"En cours": 0,
"Ativo": 0,
"Lançando": 0,
"Đang Tiến Hành": 0,
"Devam Ediyor": 0,
"Devam ediyor": 0,
"In Corso": 0,
"In Arrivo": 0,
"مستمرة": 0,
"مستمر": 0,
"En Curso": 0,
"En curso": 0,
"Emision": 0,
"En marcha": 0,
"Publicandose": 0,
"En emision": 0,
"连载中": 0,
"Completed": 1,
"Completo": 1,
"Completado": 1,
"Concluído": 1,
"Concluido": 1,
"Finalizado": 1,
"Terminé": 1,
"Hoàn Thành": 1,
"مكتملة": 1,
"مكتمل": 1,
"已完结": 1,
"On Hold": 2,
"Pausado": 2,
"En espera": 2,
"Canceled": 3,
"Cancelado": 3,
}
];
MManga manga = MManga();
String res = "";
final datas = {"url": url, "sourceId": source.id};
res = await http('GET', json.encode(datas));
final author = querySelectorAll(res,
selector: "div.author-content > a",
typeElement: 0,
attributes: "",
typeRegExp: 0);
if (author.isNotEmpty) {
manga.author = author.first;
}
final description = querySelectorAll(res,
selector:
"div.description-summary div.summary__content, div.summary_content div.post-content_item > h5 + div, div.summary_content div.manga-excerpt, div.sinopsis div.contenedor, .description-summary > p",
typeElement: 0,
attributes: "",
typeRegExp: 0);
if (description.isNotEmpty) {
manga.description = description.first;
}
final imageUrl = querySelectorAll(res,
selector: "div.summary_image img",
typeElement: 2,
attributes: "",
typeRegExp: 2);
if (imageUrl.isNotEmpty) {
manga.imageUrl = imageUrl.first;
}
String mangaId = "";
final id = querySelectorAll(res,
selector: "div[id^=manga-chapters-holder]",
typeElement: 3,
attributes: "data-id",
typeRegExp: 0);
if (id.isNotEmpty) {
mangaId = id.first;
}
final status = querySelectorAll(res,
selector: "div.summary-content",
typeElement: 0,
attributes: "",
typeRegExp: 0);
if (status.isNotEmpty) {
manga.status = parseStatus(status.last, statusList);
}
manga.genre = querySelectorAll(res,
selector: "div.genres-content a",
typeElement: 0,
attributes: "",
typeRegExp: 0);
final baseUrl = "${source.baseUrl}/";
final headers = {
"Referer": baseUrl,
"Content-Type": "application/x-www-form-urlencoded",
"X-Requested-With": "XMLHttpRequest"
};
final urll =
"${baseUrl}wp-admin/admin-ajax.php?action=manga_get_chapters&manga=$mangaId";
final datasP = {"url": urll, "headers": headers, "sourceId": source.id};
res = await http('POST', json.encode(datasP));
print("datasP");
if (res == "error" || mangaId.isEmpty) {
final urlP = "${url}ajax/chapters";
final datasP = {"url": urlP, "headers": headers, "sourceId": source.id};
res = await http('POST', json.encode(datasP));
}
var chapUrls = xpath(res, '//li[@class^="wp-manga-chapter"]/a/@href');
var chaptersNames = xpath(res, '//li[@class^="wp-manga-chapter"]/a/text()');
var dateF = xpath(res, '//li[@class^="wp-manga-chapter"]/span/i/text()');
if (dateF.isEmpty) {
final resWebview = await getHtmlViaWebview(
url, "//*[@id='manga-chapters-holder']/div[2]/div/ul/li/a/@href");
chapUrls = xpath(resWebview,
"//*[@id='manga-chapters-holder']/div[2]/div/ul/li/a/@href");
chaptersNames = xpath(resWebview,
"//*[@id='manga-chapters-holder']/div[2]/div/ul/li/a/text()");
dateF = xpath(resWebview,
"//*[@id='manga-chapters-holder']/div[2]/div/ul/li/span/i/text()");
}
List<String> dateUploads = [];
if (source.dateFormat.isNotEmpty) {
dateUploads =
parseDates(dateF, source.dateFormat, source.dateFormatLocale);
if (dateF.length < chaptersNames.length) {
final length = chaptersNames.length - dateF.length;
String date = "${DateTime.now().millisecondsSinceEpoch}";
for (var i = 0; i < length - 1; i++) {
date += "--..${DateTime.now().millisecondsSinceEpoch}";
}
final dateFF =
parseDates(dateF, source.dateFormat, source.dateFormatLocale);
List<String> chapterDate = date.split('--..');
for (var date in dateFF) {
chapterDate.add(date);
}
dateUploads = chapterDate;
}
}
List<MChapter>? chaptersList = [];
for (var i = 0; i < chaptersNames.length; i++) {
MChapter chapter = MChapter();
chapter.name = chaptersNames[i];
chapter.url = chapUrls[i];
if (source.dateFormat.isNotEmpty) chapter.dateUpload = dateUploads[i];
chaptersList.add(chapter);
}
manga.chapters = chaptersList;
return manga;
}
@override
Future<List<String>> getPageList(MSource source, String url) async {
final datas = {"url": url, "sourceId": source.id};
final res = await http('GET', json.encode(datas));
final pagesSelectorRes = querySelectorAll(res,
selector:
"div.page-break, li.blocks-gallery-item, .reading-content, .text-left img",
typeElement: 1,
attributes: "",
typeRegExp: 0)
.first;
final imgs = querySelectorAll(pagesSelectorRes,
selector: "img", typeElement: 2, attributes: "", typeRegExp: 2);
List<String> pageUrls = [];
if (imgs.length == 1) {
final pages = querySelectorAll(res,
selector: "#single-pager",
typeElement: 2,
attributes: "",
typeRegExp: 0)
.first;
final pagesNumber = querySelectorAll(pages,
selector: "option", typeElement: 2, attributes: "", typeRegExp: 0);
for (var i = 0; i < pagesNumber.length; i++) {
final val = i + 1;
if (i.toString().length == 1) {
pageUrls.add(querySelectorAll(pagesSelectorRes,
selector: "img",
typeElement: 2,
attributes: "",
typeRegExp: 2)
.first
.replaceAll("01", '0$val'));
} else {
pageUrls.add(querySelectorAll(pagesSelectorRes,
selector: "img",
typeElement: 2,
attributes: "",
typeRegExp: 2)
.first
.replaceAll("01", val.toString()));
}
}
} else {
return imgs;
}
return pageUrls;
}
@override
List<dynamic> getFilterList(MSource source) {
return [
TextFilter("AuthorFilter", "Author"),
TextFilter("ArtistFilter", "Artist"),
TextFilter("YearFilter", "Year of Released"),
GroupFilter("StatusFilter", "Status", [
CheckBoxFilter("Completed", "end"),
CheckBoxFilter("Ongoing", "on-going"),
CheckBoxFilter("Canceled", "canceled"),
CheckBoxFilter("On Hold", "on-hold"),
]),
SelectFilter("OrderByFilter", "Order By", 0, [
SelectFilterOption("Relevance", ""),
SelectFilterOption("Latest", "latest"),
SelectFilterOption("A-Z", "alphabet"),
SelectFilterOption("Rating", "rating"),
SelectFilterOption("Trending", "trending"),
SelectFilterOption("Most Views", "views"),
SelectFilterOption("New", "new-manga"),
]),
SelectFilter("AdultContentFilter", "Adult Content", 0, [
SelectFilterOption("All", ""),
SelectFilterOption("None", "0"),
SelectFilterOption("Only", "1"),
])
];
}
String ll(String url) {
if (url.contains("?")) {
return "&";
}
return "?";
}
}
Madara main() {
return Madara();
}

View File

@@ -0,0 +1,303 @@
import 'package:mangayomi/bridge_lib.dart';
import 'dart:convert';
class Madara extends MProvider {
Madara();
@override
Future<MPages> getPopular(MSource source, int page) async {
final url = "${source.baseUrl}/manga/page/$page/?m_orderby=views";
final data = {"url": url, "sourceId": source.id};
final res = await http('GET', json.encode(data));
final document = parseHtml(res);
return mangaFromElements(document.select("div.page-item-detail"));
}
@override
Future<MPages> getLatestUpdates(MSource source, int page) async {
final url = "${source.baseUrl}/manga/page/$page/?m_orderby=latest";
final data = {"url": url, "sourceId": source.id};
final res = await http('GET', json.encode(data));
final document = parseHtml(res);
return mangaFromElements(document.select("div.page-item-detail"));
}
@override
Future<MPages> search(
MSource source, String query, int page, FilterList filterList) async {
final filters = filterList.filters;
String url = "${source.baseUrl}/?s=$query&post_type=wp-manga";
for (var filter in filters) {
if (filter.type == "AuthorFilter") {
if (filter.state.isNotEmpty) {
url += "${ll(url)}author=${Uri.encodeComponent(filter.state)}";
}
} else if (filter.type == "ArtistFilter") {
if (filter.state.isNotEmpty) {
url += "${ll(url)}artist=${Uri.encodeComponent(filter.state)}";
}
} else if (filter.type == "YearFilter") {
if (filter.state.isNotEmpty) {
url += "${ll(url)}release=${Uri.encodeComponent(filter.state)}";
}
} else if (filter.type == "StatusFilter") {
final status = (filter.state as List).where((e) => e.state).toList();
if (status.isNotEmpty) {
for (var st in status) {
url += "${ll(url)}status[]=${st.value},";
}
}
} else if (filter.type == "OrderByFilter") {
if (filter.state != 0) {
final order = filter.values[filter.state].value;
url += "${ll(url)}m_orderby=$order";
}
} else if (filter.type == "AdultContentFilter") {
final ctn = filter.values[filter.state].value;
if (ctn.isNotEmpty) {
url += "${ll(url)}adult=$ctn";
}
} else if (filter.type == "GenreListFilter") {
final genres = (filter.state as List).where((e) => e.state).toList();
if (genres.isNotEmpty) {
for (var genre in genres) {
url += "${ll(url)}genre[]=${genre.value},";
}
}
}
}
final data = {"url": url, "sourceId": source.id};
final res = await http('GET', json.encode(data));
final document = parseHtml(res);
return mangaFromElements(document.select("div.c-tabs-item__content"));
}
@override
Future<MManga> getDetail(MSource source, String url) async {
final statusList = [
{
"OnGoing": 0,
"Продолжается": 0,
"Updating": 0,
"Em Lançamento": 0,
"Em lançamento": 0,
"Em andamento": 0,
"Em Andamento": 0,
"En cours": 0,
"Ativo": 0,
"Lançando": 0,
"Đang Tiến Hành": 0,
"Devam Ediyor": 0,
"Devam ediyor": 0,
"In Corso": 0,
"In Arrivo": 0,
"مستمرة": 0,
"مستمر": 0,
"En Curso": 0,
"En curso": 0,
"Emision": 0,
"En marcha": 0,
"Publicandose": 0,
"En emision": 0,
"连载中": 0,
"Completed": 1,
"Completo": 1,
"Completado": 1,
"Concluído": 1,
"Concluido": 1,
"Finalizado": 1,
"Terminé": 1,
"Hoàn Thành": 1,
"مكتملة": 1,
"مكتمل": 1,
"已完结": 1,
"On Hold": 2,
"Pausado": 2,
"En espera": 2,
"Canceled": 3,
"Cancelado": 3,
}
];
MManga manga = MManga();
String res = "";
final datas = {"url": url, "sourceId": source.id};
res = await http('GET', json.encode(datas));
final document = parseHtml(res);
manga.author = document.selectFirst("div.author-content > a")?.text ?? "";
manga.description = document
.selectFirst(
"div.description-summary div.summary__content, div.summary_content div.post-content_item > h5 + div, div.summary_content div.manga-excerpt, div.sinopsis div.contenedor, .description-summary > p")
?.text ??
"";
final imageElement = document.selectFirst("div.summary_image img");
final image = imageElement?.attr("data-src") ??
imageElement?.attr("data-lazy-src") ??
imageElement?.attr("srcset") ??
imageElement?.getSrc;
if (image != null) {
manga.imageUrl = image;
}
final id = document
.selectFirst("div[id^=manga-chapters-holder]")
?.attr("data-id") ??
"";
String mangaId = "";
if (id.isNotEmpty) {
mangaId = id;
}
final status = document.selectFirst("div.summary-content")?.text ?? "";
manga.status = parseStatus(status, statusList);
manga.genre =
document.select("div.genres-content a")?.map((e) => e.text).toList() ??
[];
final baseUrl = "${source.baseUrl}/";
final headers = {
"Referer": baseUrl,
"Content-Type": "application/x-www-form-urlencoded",
"X-Requested-With": "XMLHttpRequest"
};
final urll =
"${baseUrl}wp-admin/admin-ajax.php?action=manga_get_chapters&manga=$mangaId";
final datasP = {"url": urll, "headers": headers, "sourceId": source.id};
res = await http('POST', json.encode(datasP));
if (res == "error" || mangaId.isEmpty) {
final urlP = "${url}ajax/chapters";
final datasP = {"url": urlP, "headers": headers, "sourceId": source.id};
res = await http('POST', json.encode(datasP));
}
List<MChapter> chaptersList =
parseHtml(res).select('li.wp-manga-chapter').map((MElement e) {
String date = "";
List<MElement>? dateEList = e
.select('img')
?.where((MElement e) => !(e.className.contains("thumb")))
.toList();
if (dateEList != null && dateEList.isNotEmpty) {
final dateE = (dateEList.first as MElement).attr("alt");
if (dateE != null) {
date = parseDates([dateE], source.dateFormat, source.dateFormatLocale)
.first;
}
}
if (date.isEmpty) {
final dateE = e.selectFirst('span a')?.attr("title");
if (dateE != null) {
date = parseDates([dateE], source.dateFormat, source.dateFormatLocale)
.first;
}
}
if (date.isEmpty) {
final dateE = e.selectFirst('span.chapter-release-date')?.text;
if (dateE != null) {
date = parseDates([dateE], source.dateFormat, source.dateFormatLocale)
.first;
}
}
MChapter chapter = MChapter();
chapter.name = e.selectFirst('a').text;
chapter.url = e.selectFirst('a').getHref;
if (source.dateFormat.isNotEmpty) chapter.dateUpload = date;
return chapter;
}).toList();
manga.chapters = chaptersList;
return manga;
}
@override
Future<List<String>> getPageList(MSource source, String url) async {
final datas = {"url": url, "sourceId": source.id};
final res = await http('GET', json.encode(datas));
final document = parseHtml(res);
final pageElement = document.selectFirst(
"div.page-break, li.blocks-gallery-item, .reading-content, .text-left img");
List<String> imgs = pageElement.select("img").map((e) => e.getSrc).toList();
List<String> pageUrls = [];
if (imgs.length == 1) {
final pagesNumber =
document.selectFirst("#single-pager").select("option");
for (var i = 0; i < pagesNumber.length; i++) {
final val = i + 1;
if (i.toString().length == 1) {
pageUrls.add(imgs.first.replaceAll("01", '0$val'));
} else {
pageUrls.add(imgs.first.replaceAll("01", val.toString()));
}
}
} else {
return imgs;
}
return pageUrls;
}
MPages mangaFromElements(List<MElement> elements) {
List<MManga> mangaList = [];
for (var i = 0; i < elements.length; i++) {
final postTitle = elements[i].selectFirst("div.post-title a");
final imageElement = elements[i].selectFirst("img");
final image = imageElement?.attr("data-src") ??
imageElement?.attr("data-lazy-src") ??
imageElement?.attr("srcset") ??
imageElement?.getSrc ??
"";
MManga manga = MManga();
manga.name = postTitle.text;
manga.imageUrl = substringBefore(image, " ");
manga.link = postTitle.getHref;
mangaList.add(manga);
}
return MPages(mangaList, true);
}
@override
List<dynamic> getFilterList(MSource source) {
return [
TextFilter("AuthorFilter", "Author"),
TextFilter("ArtistFilter", "Artist"),
TextFilter("YearFilter", "Year of Released"),
GroupFilter("StatusFilter", "Status", [
CheckBoxFilter("Completed", "end"),
CheckBoxFilter("Ongoing", "on-going"),
CheckBoxFilter("Canceled", "canceled"),
CheckBoxFilter("On Hold", "on-hold"),
]),
SelectFilter("OrderByFilter", "Order By", 0, [
SelectFilterOption("Relevance", ""),
SelectFilterOption("Latest", "latest"),
SelectFilterOption("A-Z", "alphabet"),
SelectFilterOption("Rating", "rating"),
SelectFilterOption("Trending", "trending"),
SelectFilterOption("Most Views", "views"),
SelectFilterOption("New", "new-manga"),
]),
SelectFilter("AdultContentFilter", "Adult Content", 0, [
SelectFilterOption("All", ""),
SelectFilterOption("None", "0"),
SelectFilterOption("Only", "1"),
])
];
}
String ll(String url) {
if (url.contains("?")) {
return "&";
}
return "?";
}
}
Madara main() {
return Madara();
}

View File

@@ -164,9 +164,9 @@ import 'src/comicarab/comicarab.dart';
import 'src/manga3asq/manga3asq.dart';
import 'src/bakamh/bakamh.dart';
const madaraVersion = "0.0.5";
const madaraVersion = "0.0.55";
const madaraSourceCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/madara-v$madaraVersion.dart";
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/madara.dart";
List<Source> get madaraSourcesList => _madaraSourcesList;
List<Source> _madaraSourcesList = [

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "en",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/adultwebtoon/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/adultwebtoon/icon.png",
dateFormat:"MMMM dd, yyyy",
dateFormatLocale:"en_us",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "pt-BR",
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/akumanotenshi/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/akumanotenshi/icon.png",
dateFormat:"dd/MM/yyyy",
dateFormatLocale:"pt-br",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "tr",
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/anikiga/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/anikiga/icon.png",
dateFormat:"d MMMMM yyyy",
dateFormatLocale:"tr",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "es",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/apollcomics/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/apollcomics/icon.png",
dateFormat:"dd MMMM, yyyy",
dateFormatLocale:"es",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "es",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/apolltoons/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/apolltoons/icon.png",
dateFormat:"dd MMMMM, yyyy",
dateFormatLocale:"es",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "tr",
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/araznovel/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/araznovel/icon.png",
dateFormat:"d MMMM yyyy",
dateFormatLocale:"en",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "pt-BR",
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/arthurscan/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/arthurscan/icon.png",
dateFormat:"MMMMM dd, yyyy",
dateFormatLocale:"pt-br",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "fr",
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/astralmanga/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/astralmanga/icon.png",
dateFormat:"dd/mm/yyyy",
dateFormatLocale:"fr",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "en",
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/asurascansus/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/asurascansus/icon.png",
dateFormat:"MMMM dd, yyyy",
dateFormatLocale:"en_us",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "zh",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/bakamh/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/bakamh/icon.png",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "en",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/bananamanga/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/bananamanga/icon.png",
dateFormat:"MMMM dd, yyyy",
dateFormatLocale:"en_us",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "es",
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/barmanga/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/barmanga/icon.png",
dateFormat:"MM/dd/yyyy",
dateFormatLocale:"es",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "ru",
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/bestmanga/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/bestmanga/icon.png",
dateFormat:"dd.MM.yyyy",
dateFormatLocale:"ru",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "id",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/birdtoon/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/birdtoon/icon.png",
dateFormat:"MMMM dd, yyyy",
dateFormatLocale:"en_us",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "pt-BR",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/cerisescans/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/cerisescans/icon.png",
dateFormat:"dd 'de' MMMMM 'de' yyyy",
dateFormatLocale:"pt-br",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "en",
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/chibimanga/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/chibimanga/icon.png",
dateFormat:"MMMM dd, yyyy",
dateFormatLocale:"en_us",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "tr",
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/clovermanga/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/clovermanga/icon.png",
dateFormat:"MMMM dd, yyyy",
dateFormatLocale:"tr",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "es",
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/cocorip/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/cocorip/icon.png",
dateFormat:"dd/MM/yyyy",
dateFormatLocale:"es",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "en",
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/coffeemanga/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/coffeemanga/icon.png",
dateFormat:"MMMM dd, yyyy",
dateFormatLocale:"en_us",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "ar",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/comicarab/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/comicarab/icon.png",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "all",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/comicznetv2/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/comicznetv2/icon.png",
dateFormat:"MMMM dd, yyyy",
dateFormatLocale:"en_us",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "en",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/decadencescans/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/decadencescans/icon.png",
dateFormat:"MMMM dd, yyyy",
dateFormatLocale:"en_us",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "pt-BR",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/dessertscan/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/dessertscan/icon.png",
dateFormat:"dd/MM/yyyy",
dateFormatLocale:"pt-br",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "th",
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/doodmanga/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/doodmanga/icon.png",
dateFormat:"dd MMMMM yyyy",
dateFormatLocale:"th",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "en",
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/elitemanga/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/elitemanga/icon.png",
dateFormat:"MMMM dd, yyyy",
dateFormatLocale:"en_us",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "es",
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/emperorscan/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/emperorscan/icon.png",
dateFormat:"MMMM dd, yyyy",
dateFormatLocale:"es",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "tr",
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/evascans/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/evascans/icon.png",
dateFormat:"MMM d, yyy",
dateFormatLocale:"tr",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "en",
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/factmanga/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/factmanga/icon.png",
dateFormat:"MMMM dd, yyyy",
dateFormatLocale:"en_us",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "ar",
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/falconmanga/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/falconmanga/icon.png",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "pt-br",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/finalscans/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/finalscans/icon.png",
dateFormat:"MMMM d, yyyy",
dateFormatLocale:"pt-br",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "en",
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/firstkissdashmanga/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/firstkissdashmanga/icon.png",
dateFormat:"MMMM dd, yyyy",
dateFormatLocale:"en_us",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "en",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/firstmanhwa/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/firstmanhwa/icon.png",
dateFormat:"MMMM dd, yyyy",
dateFormatLocale:"en_us",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "en",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/flextapescans/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/flextapescans/icon.png",
dateFormat:"MM/dd/yyy",
dateFormatLocale:"en",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "en",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/freemanga/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/freemanga/icon.png",
dateFormat:"MMMM dd, yyyy",
dateFormatLocale:"en_us",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "en",
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/freemangatop/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/freemangatop/icon.png",
dateFormat:"MMMM dd, yyyy",
dateFormatLocale:"en_us",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "fr",
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/frscan/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/frscan/icon.png",
dateFormat:"MMMM d, yyyy",
dateFormatLocale:"fr",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "pt-BR",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/ghostscan/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/ghostscan/icon.png",
dateFormat:"dd 'de' MMMMM 'de' yyyy",
dateFormatLocale:"pt-br",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "en",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/girlslovemanga/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/girlslovemanga/icon.png",
dateFormat:"MMMM dd, yyyy",
dateFormatLocale:"en_us",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "tr",
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/glorymanga/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/glorymanga/icon.png",
dateFormat:"dd/MM/yyy",
dateFormatLocale:"tr",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "pt-BR",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/gooffansub/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/gooffansub/icon.png",
dateFormat:"dd/MM/yyy",
dateFormatLocale:"pt-br",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "en",
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/harimanga/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/harimanga/icon.png",
dateFormat:"MMMM dd, yyyy",
dateFormatLocale:"en_us",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "en",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/hentai3z/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/hentai3z/icon.png",
dateFormat:"MMMM dd, yyyy",
dateFormatLocale:"en_us",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "vi",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/hentaicube/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/hentaicube/icon.png",
dateFormat:"dd/MM/yyyy",
dateFormatLocale:"vi",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "en",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/hentaimanga/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/hentaimanga/icon.png",
dateFormat:"MMM d, yyyy",
dateFormatLocale:"en_us",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "pt-BR",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/hentaiteca/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/hentaiteca/icon.png",
dateFormat:"MMMMM dd, yyyy",
dateFormatLocale:"pt-br",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "en",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/hentaiwebtoon/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/hentaiwebtoon/icon.png",
dateFormat:"MMMM dd, yyyy",
dateFormatLocale:"en_us",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "en",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/hentaixcomic/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/hentaixcomic/icon.png",
dateFormat:"MMM d, yyyy",
dateFormatLocale:"en_us",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "en",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/hentaixyuri/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/hentaixyuri/icon.png",
dateFormat:"MMM d, yyyy",
dateFormatLocale:"en_us",
);

View File

@@ -9,5 +9,5 @@ Source _hentaizoneSource = Source(
isNsfw: true,
typeSource: "madara",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/hentaizone/icon.png",
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/hentaizone/icon.png",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "pt-BR",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/hipercool/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/hipercool/icon.png",
dateFormat:"MMMM dd, yyyy",
dateFormatLocale:"en_us",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "en",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/hiperdex/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/hiperdex/icon.png",
dateFormat:"MMMM dd, yyyy",
dateFormatLocale:"en_us",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "en",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/hm2d/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/hm2d/icon.png",
dateFormat:"MMM d, yyyy",
dateFormatLocale:"en_us",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "en",
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/immortalupdates/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/immortalupdates/icon.png",
dateFormat:"MMMM dd, yyyy",
dateFormatLocale:"en_us",
);

View File

@@ -8,7 +8,7 @@ import '../../../../../model/source.dart';
lang: "pt-BR",
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/manga/multisrc/madara/src/imperioscans/icon.png",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/multisrc/madara/src/imperioscans/icon.png",
dateFormat:"dd/MM/yyyy",
dateFormatLocale:"pt-br",
);

Some files were not shown because too many files have changed in this diff Show More