Merge pull request #295 from xMohnad/manga/madara

Manga/madara
This commit is contained in:
Moustapha Kodjo Amadou
2025-06-25 18:40:58 +01:00
committed by GitHub
100 changed files with 295 additions and 736 deletions

View File

@@ -8,33 +8,56 @@ class Madara extends MProvider {
final Client client = Client();
MPages mangaFromElements(List<MElement> elements) {
List<MManga> mangaList = [];
for (final el in elements) {
final postTitle = el.selectFirst(
"div.post-title a:not(:has(span.manga-title-badges))",
);
final image = extractImageUrl(el.selectFirst("img"));
MManga manga = MManga();
manga.name = postTitle.text;
manga.imageUrl = substringBefore(image, " ");
manga.link = postTitle.getHref;
mangaList.add(manga);
}
return MPages(mangaList, true);
}
@override
Future<MPages> getPopular(int page) async {
final res = (await client.get(
Uri.parse(
"${source.baseUrl}/${getMangaSubString()}/page/$page/?m_orderby=views",
"${getBaseUrl()}/${getMangaSubString()}/page/$page/?m_orderby=views",
),
)).body;
final document = parseHtml(res);
return mangaFromElements(document.select("div.page-item-detail"));
return mangaFromElements(
document.select("div.page-item-detail, div.manga__item"),
);
}
@override
Future<MPages> getLatestUpdates(int page) async {
final res = (await client.get(
Uri.parse(
"${source.baseUrl}/${getMangaSubString()}/page/$page/?m_orderby=latest",
"${getBaseUrl()}/${getMangaSubString()}/page/$page/?m_orderby=latest",
),
)).body;
final document = parseHtml(res);
return mangaFromElements(document.select("div.page-item-detail"));
return mangaFromElements(
document.select("div.page-item-detail, div.manga__item"),
);
}
@override
Future<MPages> search(String query, int page, FilterList filterList) async {
final filters = filterList.filters;
String url = "${source.baseUrl}/?s=$query&post_type=wp-manga";
String url = "${getBaseUrl()}/?s=$query&post_type=wp-manga";
for (var filter in filters) {
if (filter.type == "AuthorFilter") {
@@ -121,6 +144,7 @@ class Madara extends MProvider {
Future<MManga> getDetail(String url) async {
final statusList = [
{
// Ongoing
"OnGoing": 0,
"Продолжается": 0,
"Updating": 0,
@@ -129,38 +153,77 @@ class Madara extends MProvider {
"Em andamento": 0,
"Em Andamento": 0,
"En cours": 0,
"En Cours": 0,
"En cours de publication": 0,
"Ativo": 0,
"Lançando": 0,
"Đang Tiến Hành": 0,
"Devam Ediyor": 0,
"Devam ediyor": 0,
"Devam Ediyo": 0,
"Devam Eden": 0,
"In Corso": 0,
"In Arrivo": 0,
"مستمرة": 0,
"مستمر": 0,
"En Curso": 0,
"En curso": 0,
"Curso": 0,
"Emision": 0,
"En marcha": 0,
"Publicandose": 0,
"Publicándose": 0,
"En emision": 0,
"连载中": 0,
"Đang làm": 0,
"Em postagem": 0,
"Em progresso": 0,
"Em curso": 0,
"Atualizações Semanais": 0,
// Completed
"Completed": 1,
"Completo": 1,
"Completado": 1,
"Concluído": 1,
"Concluido": 1,
"Finalizado": 1,
"Achevé": 1,
"Terminé": 1,
"Complété": 1,
"Hoàn Thành": 1,
"Tamamlandı": 1,
"Tamamlanan": 1,
"Đã hoàn thành": 1,
"Завершено": 1,
"مكتملة": 1,
"مكتمل": 1,
"已完结": 1,
// On Hold
"On Hold": 2,
"Pausado": 2,
"En espera": 2,
"Durduruldu": 2,
"Beklemede": 2,
"Đang chờ": 2,
"متوقف": 2,
"En Pause": 2,
"Заморожено": 2,
"En attente": 2,
// Canceled
"Canceled": 3,
"Cancelado": 3,
"İptal Edildi": 3,
"Güncel": 3,
"Đã hủy": 3,
"ملغي": 3,
"Abandonné": 3,
"Заброшено": 3,
"Annulé": 3,
// Publishing Finished 4
},
];
MManga manga = MManga();
@@ -169,20 +232,28 @@ class Madara extends MProvider {
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 descriptionElement = document.select(
"div.description-summary div.summary__content, div.summary_content div.post-content_item > h5 + div, div.summary_content div.manga-excerpt, .manga-summary, div.c-page__content div.modal-contenido",
);
if (descriptionElement.isNotEmpty) {
final paragraphs = descriptionElement
.expand((e) => e.select("p"))
.toList();
if (paragraphs.isNotEmpty &&
paragraphs.any((p) => p.text.trim().isNotEmpty)) {
manga.description = paragraphs
.map((p) => p.text.replaceAll("<br>", "\n").trim())
.join("\n\n");
} else {
manga.description = descriptionElement
.map((e) => e.text.trim())
.join("\n\n");
}
}
final imageElement = document.selectFirst("div.summary_image img");
manga.imageUrl =
imageElement?.attr("data-src") ??
imageElement?.attr("data-lazy-src") ??
imageElement?.attr("srcset")?.split(" ")?.first ??
imageElement?.getSrc;
manga.imageUrl = extractImageUrl(imageElement);
final id =
document
@@ -193,13 +264,20 @@ class Madara extends MProvider {
if (id.isNotEmpty) {
mangaId = id;
}
final status = document.selectFirst("div.summary-content")?.text ?? "";
final status =
document
.selectFirst(
".summary-content > .tags-content, div.summary-content, div.summary-heading:contains(Status) + div",
)
?.text ??
"";
manga.status = parseStatus(status, statusList);
manga.genre =
document.select("div.genres-content a")?.map((e) => e.text).toList() ??
[];
final baseUrl = "${source.baseUrl}/";
final baseUrl = "${getBaseUrl()}/";
final headers = {"Referer": baseUrl, "X-Requested-With": "XMLHttpRequest"};
final oldXhrChaptersRequest = await client.post(
@@ -235,30 +313,83 @@ class Madara extends MProvider {
final res = (await client.get(Uri.parse(url)));
final document = parseHtml(res.body);
final pageElements = document.select(
"div.page-break, li.blocks-gallery-item, .reading-content .text-left:not(:has(.blocks-gallery-item)) img",
);
List<String> imgs = [];
for (var element in pageElements) {
try {
final imgElement = element.selectFirst("img");
final img =
imgElement.attr("src") ??
imgElement.attr("data-src") ??
imgElement.attr("data-lazy-src") ??
imgElement.attr("srcset");
imgs.add(img);
} catch (_) {}
var images = getImagesFromPage(document);
if (images.length == 1) {
images = buildPageUrls(images, document);
}
List<String> pageUrls = [];
return images.isNotEmpty ? images : parseProtectorImage(document);
}
if (imgs.length == 1) {
List<String> getImagesFromPage(MDocument doc) {
final elements = doc.select(
"div.page-break img, li.blocks-gallery-item img, .reading-content .text-left:not(:has(.blocks-gallery-item)) img",
);
return elements.map((e) => extractImageUrl(e)?.trim()).toList();
}
List<String> parseProtectorImage(Document doc) {
final protectorData = doc.selectFirst(chapterProtectorSelector)?.innerHtml;
if (protectorData == null) return [];
final password = getPasswordFromProtector(protectorData);
final chapterDataStr = getChapterDataStr(protectorData);
if (chapterDataStr == null || password == null) return [];
final decryptedText = decryptChapterData(chapterDataStr, password);
if (decryptedText == null) return [];
return List<String>.from(jsonDecode(jsonDecode(decryptedText)));
}
// Extract password
String? getPasswordFromProtector(String protectorData) {
final regex = RegExp(r"wpmangaprotectornonce='(.*?)';");
final match = regex.firstMatch(protectorData);
return match != null ? match.group(1) : null;
}
// Extract encrypted chapter string
String? getChapterDataStr(String protectorData) {
final regex = RegExp(r"chapter_data='(.*?)';");
final match = regex.firstMatch(protectorData);
return match != null ? match.group(1)!.replaceAll(r"\/", "/") : null;
}
// Decrypt AES encrypted string
String? decryptChapterData(String chapterDataStr, String password) {
try {
final Map<String, dynamic> chapterData = jsonDecode(chapterDataStr);
final salt = _hexToBytes(chapterData["s"]);
final ct = base64Decode(chapterData["ct"]);
// Prefix with 'Salted__' and salt
final completeCipher = Uint8List.fromList([
...utf8.encode('Salted__'),
...salt,
...ct,
]);
// Encode completeCipher again to base64
final base64Cipher = base64Encode(completeCipher);
// Decrypt
final decrypted = decryptAESCryptoJS(base64Cipher, password);
return decrypted;
} catch (e) {
print("Error decrypting chapter data: $e");
return null;
}
}
List<String> buildPageUrls(List<String> imgs, MDocument document) {
List<String> pageUrls = [];
final pagesNumber = document
.selectFirst("#single-pager")
.select("option")
.length;
final imgUrl = imgs.first;
for (var i = 0; i < pagesNumber; i++) {
final val = i + 1;
@@ -268,32 +399,17 @@ class Madara extends MProvider {
pageUrls.add(imgUrl.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);
// Convert hex string to bytes
List<int> _hexToBytes(String hex) {
final List<int> result = [];
for (var i = 0; i < hex.length; i += 2) {
result.add(int.parse(hex.substring(i, i + 2), radix: 16));
}
return MPages(mangaList, true);
return result;
}
@override
@@ -325,6 +441,53 @@ class Madara extends MProvider {
];
}
@override
List<dynamic> getSourcePreferences() {
return [
EditTextPreference(
key: "domain_url",
title: getTitleByLang(source.lang),
summary: "",
value: source.baseUrl,
dialogTitle: "URL",
dialogMessage: "",
),
];
}
String getBaseUrl() {
final baseUrl = getPreferenceValue(source.id, "domain_url")?.trim();
if (baseUrl == null || baseUrl.isEmpty) {
return source.baseUrl;
}
return baseUrl.endsWith("/")
? baseUrl.substring(0, baseUrl.length - 1)
: baseUrl;
}
String getTitleByLang(String? lang) {
const titles = {
'ar': 'تحرير الرابط',
'en': 'Edit URL',
'fr': 'Modifier lURL',
'es': 'Editar URL',
'de': 'URL bearbeiten',
'tr': 'URLyi düzenle',
'ru': 'Редактировать URL',
'id': 'Edit URL',
'pt': 'Editar URL',
'it': 'Modifica URL',
'ja': 'URLを編集',
'zh': '编辑网址',
'ko': 'URL 편집',
'fa': 'ویرایش نشانی',
};
return titles[lang?.toLowerCase()] ?? titles['en']!;
}
String ll(String url) {
if (url.contains("?")) {
return "&";
@@ -332,9 +495,27 @@ class Madara extends MProvider {
return "?";
}
String? extractImageUrl(Element? imageElement) {
if (imageElement == null) return "";
return imageElement.attr("data-src") ??
imageElement.attr("data-lazy-src") ??
imageElement.attr("srcset")?.split(" ")?.first ??
imageElement.getSrc ??
"";
}
String getMangaSubString() {
const worksSources = {"Olaoe", "Mangax Core"};
return worksSources.contains(source.name) ? "works" : "manga";
const sourceTypeMap = {
"Olaoe": "works",
"Mangax Core": "works",
"Azora": "series",
"Manga Crab": "series",
"KlikManga": "series",
"Hwago": "komik",
};
return sourceTypeMap[source.name] ?? "manga";
}
}

View File

@@ -1,6 +1,5 @@
import '../../../../model/source.dart';
import 'src/en/firstkissdashmanga/firstkissdashmanga.dart';
import 'src/en/manhwaworld/manhwaworld.dart';
import 'src/pt/akumanotenshi/akumanotenshi.dart';
import 'src/tr/anikiga/anikiga.dart';
import 'src/tr/araznovel/araznovel.dart';
@@ -9,7 +8,6 @@ import 'src/fr/astralmanga/astralmanga.dart';
import 'src/en/asurascansus/asurascansus.dart';
import 'src/es/barmanga/barmanga.dart';
import 'src/ru/bestmanga/bestmanga.dart';
import 'src/en/chibimanga/chibimanga.dart';
import 'src/tr/clovermanga/clovermanga.dart';
import 'src/es/cocorip/cocorip.dart';
import 'src/en/coffeemanga/coffeemanga.dart';
@@ -17,12 +15,9 @@ import 'src/th/doodmanga/doodmanga.dart';
import 'src/en/elitemanga/elitemanga.dart';
import 'src/es/emperorscan/emperorscan.dart';
import 'src/tr/evascans/evascans.dart';
import 'src/fr/frscan/frscan.dart';
import 'src/en/factmanga/factmanga.dart';
import 'src/en/freemangatop/freemangatop.dart';
import 'src/tr/glorymanga/glorymanga.dart';
import 'src/en/harimanga/harimanga.dart';
import 'src/en/immortalupdates/immortalupdates.dart';
import 'src/pt/imperioscans/imperioscans.dart';
import 'src/es/inmortalscan/inmortalscan.dart';
import 'src/en/isekaiscanmanga/isekaiscanmanga.dart';
@@ -30,70 +25,54 @@ import 'src/en/jimanga/jimanga.dart';
import 'src/en/ksgroupscans/ksgroupscans.dart';
import 'src/pt/kakuseiproject/kakuseiproject.dart';
import 'src/pt/kamisamaexplorer/kamisamaexplorer.dart';
import 'src/en/komikchan/komikchan.dart';
import 'src/en/lhtranslation/lhtranslation.dart';
import 'src/pt/ladyestelarscan/ladyestelarscan.dart';
import 'src/en/leviatanscans/leviatanscans.dart';
import 'src/en/luffymanga/luffymanga.dart';
import 'src/pt/maidscan/maidscan.dart';
import 'src/tr/mangadiyari/mangadiyari.dart';
import 'src/es/mangafenix/mangafenix.dart';
import 'src/en/mangagalaxy/mangagalaxy.dart';
import 'src/en/mangaread/mangaread.dart';
import 'src/en/mangatxgg/mangatxgg.dart';
import 'src/en/mangaweebs/mangaweebs.dart';
import 'src/tr/mangasehri/mangasehri.dart';
import 'src/en/mangatxunoriginal/mangatxunoriginal.dart';
import 'src/en/mangaclash/mangaclash.dart';
import 'src/en/mangafreakonline/mangafreakonline.dart';
import 'src/en/mangagreat/mangagreat.dart';
import 'src/en/mangakomi/mangakomi.dart';
import 'src/en/mangareadorg/mangareadorg.dart';
import 'src/en/mangarolls/mangarolls.dart';
import 'src/en/mangatyrant/mangatyrant.dart';
import 'src/en/mangaus/mangaus.dart';
import 'src/en/mangasushi/mangasushi.dart';
import 'src/pt/mangananquim/mangananquim.dart';
import 'src/en/manhuaes/manhuaes.dart';
import 'src/en/manhuaus/manhuaus.dart';
import 'src/en/manhuazone/manhuazone.dart';
import 'src/en/manhwaclan/manhwaclan.dart';
import 'src/en/manhwafull/manhwafull.dart';
import 'src/es/mantrazscan/mantrazscan.dart';
import 'src/pt/momonohanascan/momonohanascan.dart';
import 'src/es/monarcamanga/monarcamanga.dart';
import 'src/pt/moonwitchinlove/moonwitchinlove.dart';
import 'src/th/nekopostco/nekopostco.dart';
import 'src/ar/nijitranslations/nijitranslations.dart';
import 'src/fr/pantheonscan/pantheonscan.dart';
import 'src/id/pojokmanga/pojokmanga.dart';
import 'src/pt/projetoscanlator/projetoscanlator.dart';
import 'src/pt/mangasoverall/mangasoverall.dart';
import 'src/es/ragnarokscanlation/ragnarokscanlation.dart';
import 'src/pt/rainbowfairyscan/rainbowfairyscan.dart';
import 'src/pt/randomscan/randomscan.dart';
import 'src/fr/readergen/readergen.dart';
import 'src/es/richtoscan/richtoscan.dart';
import 'src/es/rightdarkscan/rightdarkscan.dart';
import 'src/en/rio2manga/rio2manga.dart';
import 'src/tr/romantikmanga/romantikmanga.dart';
import 'src/en/s2manga/s2manga.dart';
import 'src/es/samuraiscan/samuraiscan.dart';
import 'src/es/scambertraslator/scambertraslator.dart';
import 'src/fr/scantradvf/scantradvf.dart';
import 'src/fr/shadowtrad/shadowtrad.dart';
import 'src/en/shibamanga/shibamanga.dart';
import 'src/pt/sinensis/sinensis.dart';
import 'src/pt/sweettimescan/sweettimescan.dart';
import 'src/pt/tatakaescan/tatakaescan.dart';
import 'src/es/taurusfansub/taurusfansub.dart';
import 'src/fr/thebeginningaftertheend/thebeginningaftertheend.dart';
import 'src/tr/tortugaceviri/tortugaceviri.dart';
import 'src/pt/wickedwitchscan/wickedwitchscan.dart';
import 'src/pt/winterscan/winterscan.dart';
import 'src/pt/wonderlandscan/wonderlandscan.dart';
import 'src/pt/yuriverso/yuriverso.dart';
import 'src/ar/manga3asq/manga3asq.dart';
import 'src/ar/azora/azora.dart';
import 'src/ar/detectiveconanar/detectiveconanar.dart';
import 'src/ar/mangaxcore/mangaxcore.dart';
import 'src/all/grabberzone/grabberzone.dart';
@@ -106,13 +85,8 @@ import 'src/ar/mangastarz/mangastarz.dart';
import 'src/ar/olaoe/olaoe.dart';
import 'src/ar/rocksmanga/rocksmanga.dart';
import 'src/en/dragontea/dragontea.dart';
import 'src/en/globalbloging/globalbloging.dart';
import 'src/en/manga347/manga347.dart';
import 'src/en/mangaeffect/mangaeffect.dart';
import 'src/en/mangafastcom/mangafastcom.dart';
import 'src/en/mangaleveling/mangaleveling.dart';
import 'src/en/neatmanga/neatmanga.dart';
import 'src/en/nvmanga/nvmanga.dart';
import 'src/en/pmscans/pmscans.dart';
import 'src/en/readmanhua/readmanhua.dart';
import 'src/en/stonescape/stonescape.dart';
@@ -120,13 +94,10 @@ import 'src/en/tappytoonnet/tappytoonnet.dart';
import 'src/en/zinmanganet/zinmanganet.dart';
import 'src/es/bokugentranslation/bokugentranslation.dart';
import 'src/es/daprob/daprob.dart';
import 'src/es/demanhuas/demanhuas.dart';
import 'src/es/herenscan/herenscan.dart';
import 'src/es/housemangas/housemangas.dart';
import 'src/es/infrafandub/infrafandub.dart';
import 'src/es/inmoralnofansub/inmoralnofansub.dart';
import 'src/es/jeazscans/jeazscans.dart';
import 'src/es/jobsibe/jobsibe.dart';
import 'src/es/lmtos/lmtos.dart';
import 'src/es/legendsnofansub/legendsnofansub.dart';
import 'src/es/mangacrab/mangacrab.dart';
import 'src/es/mangasnosekai/mangasnosekai.dart';
@@ -135,18 +106,14 @@ import 'src/es/mhscans/mhscans.dart';
import 'src/es/noblessetranslations/noblessetranslations.dart';
import 'src/es/princediciones/princediciones.dart';
import 'src/es/sapphirescan/sapphirescan.dart';
import 'src/es/tresdaosscan/tresdaosscan.dart';
import 'src/es/unitoon/unitoon.dart';
import 'src/fr/mangascantrad/mangascantrad.dart';
import 'src/fr/mangasoriginesfr/mangasoriginesfr.dart';
import 'src/fr/raijinscans/raijinscans.dart';
import 'src/en/reaperscans/reaperscans.dart';
import 'src/fr/softepsilonscan/softepsilonscan.dart';
import 'src/id/hwago/hwago.dart';
import 'src/id/klikmanga/klikmanga.dart';
import 'src/id/komikuzan/komikuzan.dart';
import 'src/id/mgkomik/mgkomik.dart';
import 'src/id/siimanga/siimanga.dart';
import 'src/id/yubikiri/yubikiri.dart';
import 'src/pl/mangahona/mangahona.dart';
import 'src/pt/alonescanlator/alonescanlator.dart';
@@ -160,11 +127,9 @@ import 'src/pt/leitordemanga/leitordemanga.dart';
import 'src/pt/lscans/lscans.dart';
import 'src/pt/lunarscan/lunarscan.dart';
import 'src/pt/minitwoscan/minitwoscan.dart';
import 'src/pt/nexoscans/nexoscans.dart';
import 'src/pt/ninjascan/ninjascan.dart';
import 'src/pt/onepieceteca/onepieceteca.dart';
import 'src/pt/prismascans/prismascans.dart';
import 'src/pt/sussyscan/sussyscan.dart';
import 'src/th/kingsmanga/kingsmanga.dart';
import 'src/th/mangadeemak/mangadeemak.dart';
import 'src/th/manhuabug/manhuabug.dart';
@@ -184,7 +149,7 @@ import 'src/tr/ruyamanga/ruyamanga.dart';
import 'src/tr/turkcemangaoku/turkcemangaoku.dart';
import 'src/tr/webtoonhatti/webtoonhatti.dart';
const madaraVersion = "0.1.2";
const madaraVersion = "0.1.3";
const madaraSourceCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/madara.dart";
@@ -193,8 +158,6 @@ List<Source> _madaraSourcesList =
[
//1st Kiss-Manga (unoriginal) (EN)
firstkissdashmangaSource,
//AQUA Scans (EN)
manhwaworldSource,
//Akuma no Tenshi (PT-BR)
akumanotenshiSource,
//Anikiga (TR)
@@ -211,8 +174,6 @@ List<Source> _madaraSourcesList =
barmangaSource,
//BestManga (RU)
bestmangaSource,
//Chibi Manga (EN)
chibimangaSource,
//Clover Manga (TR)
clovermangaSource,
//Coco Rip (ES)
@@ -227,18 +188,12 @@ List<Source> _madaraSourcesList =
emperorscanSource,
//EvaScans (TR)
evascansSource,
//FR-Scan (FR)
frscanSource,
//FactManga (EN)
factmangaSource,
//FreeMangaTop (EN)
freemangatopSource,
//Glory Manga (TR)
glorymangaSource,
//Harimanga (EN)
harimangaSource,
//Immortal Updates (EN)
immortalupdatesSource,
//Império Scans (PT-BR)
imperioscansSource,
//Inmortal Scan (ES)
@@ -253,56 +208,36 @@ List<Source> _madaraSourcesList =
kakuseiprojectSource,
//Kami Sama Explorer (PT-BR)
kamisamaexplorerSource,
//Komik Chan (EN)
komikchanSource,
//LHTranslation (EN)
lhtranslationSource,
//Lady Estelar Scan (PT-BR)
ladyestelarscanSource,
//Leviatan Scans (EN)
leviatanscansSource,
//Luffy Manga (EN)
luffymangaSource,
//Maid Scan (PT-BR)
maidscanSource,
//Manga Diyari (TR)
mangadiyariSource,
//Manga Fenix (ES)
mangafenixSource,
//Manga Galaxy (EN)
mangagalaxySource,
//Manga Read (EN)
mangareadSource,
//Manga Tx.gg (unoriginal) (EN)
mangatxggSource,
//Manga Weebs (EN)
mangaweebsSource,
//Manga Şehri (TR)
mangasehriSource,
//Manga-TX (EN)
mangatxunoriginalSource,
//MangaClash (EN)
mangaclashSource,
//MangaFreak.online (EN)
mangafreakonlineSource,
//MangaGreat (EN)
mangagreatSource,
//MangaKomi (EN)
mangakomiSource,
//MangaRead.org (EN)
mangareadorgSource,
//MangaRolls (EN)
mangarollsSource,
//MangaTyrant (EN)
mangatyrantSource,
//MangaUS (EN)
mangausSource,
//Mangasushi (EN)
mangasushiSource,
//Mangá Nanquim (PT-BR)
mangananquimSource,
//Manhua ES (EN)
manhuaesSource,
//ManhuaUS (EN)
manhuausSource,
//ManhuaZone (EN)
@@ -315,8 +250,6 @@ List<Source> _madaraSourcesList =
mantrazscanSource,
//Momo no Hana Scan (PT-BR)
momonohanascanSource,
//MonarcaManga (ES)
monarcamangaSource,
//Moon Witch In Love (PT-BR)
moonwitchinloveSource,
//NekoPost.co (unoriginal) (TH)
@@ -327,8 +260,6 @@ List<Source> _madaraSourcesList =
pantheonscanSource,
//Pojok Manga (ID)
pojokmangaSource,
//Projeto Scanlator (PT-BR)
projetoscanlatorSource,
//ROG Mangás (PT-BR)
mangasoverallSource,
//Ragnarok Scanlation (ES)
@@ -337,26 +268,18 @@ List<Source> _madaraSourcesList =
rainbowfairyscanSource,
//Random Scan (PT-BR)
randomscanSource,
//ReaderGen (FR)
readergenSource,
//RichtoScan (ES)
richtoscanSource,
//Rightdark Scan (ES)
rightdarkscanSource,
//Rio2 Manga (EN)
rio2mangaSource,
//Romantik Manga (TR)
romantikmangaSource,
//S2Manga (EN)
s2mangaSource,
//SamuraiScan (ES)
samuraiscanSource,
//ScamberTraslator (ES)
scambertraslatorSource,
//Scantrad-VF (FR)
scantradvfSource,
//Shadowtrad (FR)
shadowtradSource,
//Shiba Manga (EN)
shibamangaSource,
//Sinensis Scan (PT-BR)
@@ -367,8 +290,6 @@ List<Source> _madaraSourcesList =
tatakaescanSource,
//Taurus Fansub (ES)
taurusfansubSource,
//The Beginning After The End (FR)
thebeginningaftertheendSource,
//Tortuga Ceviri (TR)
tortugaceviriSource,
//Wicked Witch Scan (PT-BR)
@@ -381,6 +302,8 @@ List<Source> _madaraSourcesList =
yuriversoSource,
//مانجا العاشق (AR)
manga3asqSource,
// Azora (AR)
azoraSource,
//Mangax Core (AR)
mangaxcoreSource,
//Grabber Zone (ALL)
@@ -405,20 +328,10 @@ List<Source> _madaraSourcesList =
detectiveconanarSource,
//DragonTea (EN)
dragonteaSource,
//Global Bloging (EN)
globalblogingSource,
//Manga347 (EN)
manga347Source,
//MangaEffect (EN)
mangaeffectSource,
//Manga-fast.com (EN)
mangafastcomSource,
//Manga Leveling (EN)
mangalevelingSource,
//NeatManga (EN)
neatmangaSource,
//NvManga (EN)
nvmangaSource,
//PMScans (EN)
pmscansSource,
//ReadManhua (EN)
@@ -433,52 +346,36 @@ List<Source> _madaraSourcesList =
bokugentranslationSource,
//DapRob (ES)
daprobSource,
//DeManhuas (ES)
demanhuasSource,
//HerenScan (ES)
herenscanSource,
//HouseMangas (ES)
housemangasSource,
//InfraFandub (ES)
infrafandubSource,
//Inmoral No Fansub (ES)
inmoralnofansubSource,
//JeazScans (ES)
jeazscansSource,
//Jobsibe (ES)
jobsibeSource,
//Lmtos (ES)
lmtosSource,
//LegnMangas (ES)
legendsnofansubSource,
//Manga Crab (ES)
mangacrabSource,
//MMFenix (ES)
mangafenixSource,
//Mangas No Sekai (ES)
mangasnosekaiSource,
//Manhua Online (ES)
manhuaonlineSource,
//MHScans (ES)
mhscansSource,
//Visormonarca (ES)
monarcamangaSource,
//Noblesse Translations (ES)
noblessetranslationsSource,
//Prince Ediciones (ES)
princedicionesSource,
//SapphireScan (ES)
sapphirescanSource,
//Tres Daos Scan (ES)
tresdaosscanSource,
//Unitoon (ES)
unitoonSource,
//Manga-Scantrad (FR)
mangascantradSource,
//Mangas-Origines.fr (FR)
mangasoriginesfrSource,
//Raijin Scans (FR)
raijinscansSource,
//Reaper Scans (EN)
reaperscansSource,
//Soft Epsilon Scan (FR)
softepsilonscanSource,
//Hwago (ID)
@@ -489,8 +386,6 @@ List<Source> _madaraSourcesList =
komikuzanSource,
//MG Komik (ID)
mgkomikSource,
//Siimanga (ID)
siimangaSource,
//Yubikiri (ID)
yubikiriSource,
//MangaHoNa (PL)
@@ -519,16 +414,12 @@ List<Source> _madaraSourcesList =
lunarscanSource,
//MiniTwo Scan (PT-BR)
minitwoscanSource,
//Nexo Scans (PT-BR)
nexoscansSource,
//Ninja Scan (PT-BR)
ninjascanSource,
//One Piece TECA (PT-BR)
onepiecetecaSource,
//Demon Sect (PT-BR)
prismascansSource,
//Sussy Scan (PT-BR)
sussyscanSource,
//Kings-Manga (TH)
kingsmangaSource,
//MangaDeemak (TH)

View File

@@ -0,0 +1,13 @@
import '../../../../../../../model/source.dart';
Source get azoraSource => _azoraSource;
Source _azoraSource = Source(
name: "Azora",
baseUrl: "https://azoramoon.com",
lang: "ar",
typeSource: "madara",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/ar/azora/icon.png",
);

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -1,15 +0,0 @@
import '../../../../../../../model/source.dart';
Source get chibimangaSource => _chibimangaSource;
Source _chibimangaSource = Source(
name: "Chibi Manga",
baseUrl: "https://www.cmreader.info",
lang: "en",
typeSource: "madara",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/en/chibimanga/icon.png",
dateFormat: "MMMM dd, yyyy",
dateFormatLocale: "en_us",
);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

View File

@@ -1,15 +0,0 @@
import '../../../../../../../model/source.dart';
Source get factmangaSource => _factmangaSource;
Source _factmangaSource = Source(
name: "FactManga",
baseUrl: "https://factmanga.com",
lang: "en",
typeSource: "madara",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/en/factmanga/icon.png",
dateFormat: "MMMM dd, yyyy",
dateFormatLocale: "en_us",
);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

View File

@@ -4,7 +4,7 @@ Source get firstkissdashmangaSource => _firstkissdashmangaSource;
Source _firstkissdashmangaSource = Source(
name: "1st Kiss-Manga (unoriginal)",
baseUrl: "https://1stkiss-manga.com",
baseUrl: "https://1stkissmanga.org",
lang: "en",
typeSource: "madara",

View File

@@ -1,14 +0,0 @@
import '../../../../../../../model/source.dart';
Source get globalblogingSource => _globalblogingSource;
Source _globalblogingSource = Source(
name: "Global Bloging",
baseUrl: "https://globalbloging.com",
lang: "en",
isNsfw: false,
typeSource: "madara",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/en/globalbloging/icon.png",
dateFormat: "dd MMMM yyyy",
dateFormatLocale: "en_us",
);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.8 KiB

View File

@@ -4,7 +4,7 @@ Source get harimangaSource => _harimangaSource;
Source _harimangaSource = Source(
name: "Harimanga",
baseUrl: "https://harimanga.com",
baseUrl: "https://harimanga.me",
lang: "en",
typeSource: "madara",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

View File

@@ -1,15 +0,0 @@
import '../../../../../../../model/source.dart';
Source get immortalupdatesSource => _immortalupdatesSource;
Source _immortalupdatesSource = Source(
name: "Immortal Updates",
baseUrl: "https://immortalupdates.com",
lang: "en",
typeSource: "madara",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/en/immortalupdates/icon.png",
dateFormat: "MMMM dd, yyyy",
dateFormatLocale: "en_us",
);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -1,15 +0,0 @@
import '../../../../../../../model/source.dart';
Source get komikchanSource => _komikchanSource;
Source _komikchanSource = Source(
name: "Komik Chan",
baseUrl: "https://komikchan.com",
lang: "en",
typeSource: "madara",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/en/komikchan/icon.png",
dateFormat: "MMMM dd, yyyy",
dateFormatLocale: "en_us",
);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

View File

@@ -1,15 +0,0 @@
import '../../../../../../../model/source.dart';
Source get luffymangaSource => _luffymangaSource;
Source _luffymangaSource = Source(
name: "Luffy Manga",
baseUrl: "https://luffymanga.com",
lang: "en",
typeSource: "madara",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/en/luffymanga/icon.png",
dateFormat: "MMMM dd, yyyy",
dateFormatLocale: "en_us",
);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

View File

@@ -1,14 +0,0 @@
import '../../../../../../../model/source.dart';
Source get manga347Source => _manga347Source;
Source _manga347Source = Source(
name: "Manga347",
baseUrl: "https://manga347.com",
lang: "en",
isNsfw: false,
typeSource: "madara",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/en/manga347/icon.png",
dateFormat: "d MMM, yyyy",
dateFormatLocale: "en_us",
);

View File

@@ -4,7 +4,7 @@ Source get mangaclashSource => _mangaclashSource;
Source _mangaclashSource = Source(
name: "MangaClash",
baseUrl: "https://mangaclash.com",
baseUrl: "https://toonclash.com",
lang: "en",
typeSource: "madara",

View File

@@ -3,7 +3,7 @@ import '../../../../../../../model/source.dart';
Source get mangaeffectSource => _mangaeffectSource;
Source _mangaeffectSource = Source(
name: "MangaEffect",
baseUrl: "https://mangaeffect.com",
baseUrl: "https://www.mangaread.org",
lang: "en",
isNsfw: false,
typeSource: "madara",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

View File

@@ -1,14 +0,0 @@
import '../../../../../../../model/source.dart';
Source get mangafastcomSource => _mangafastcomSource;
Source _mangafastcomSource = Source(
name: "Manga-fast.com",
baseUrl: "https://manga-fast.com",
lang: "en",
isNsfw: false,
typeSource: "madara",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/en/mangafastcom/icon.png",
dateFormat: "d MMMM'،' yyyy",
dateFormatLocale: "en_us",
);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.0 KiB

View File

@@ -1,15 +0,0 @@
import '../../../../../../../model/source.dart';
Source get mangagreatSource => _mangagreatSource;
Source _mangagreatSource = Source(
name: "MangaGreat",
baseUrl: "https://mangagreat.com",
lang: "en",
typeSource: "madara",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/en/mangagreat/icon.png",
dateFormat: "MMMM dd, yyyy",
dateFormatLocale: "en_us",
);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

View File

@@ -1,15 +0,0 @@
import '../../../../../../../model/source.dart';
Source get mangarollsSource => _mangarollsSource;
Source _mangarollsSource = Source(
name: "MangaRolls",
baseUrl: "https://mangarolls.com",
lang: "en",
typeSource: "madara",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/en/mangarolls/icon.png",
dateFormat: "MMMM dd, yyyy",
dateFormatLocale: "en_us",
);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

View File

@@ -1,15 +0,0 @@
import '../../../../../../../model/source.dart';
Source get mangatxunoriginalSource => _mangatxunoriginalSource;
Source _mangatxunoriginalSource = Source(
name: "Manga-TX",
baseUrl: "https://manga-tx.com",
lang: "en",
typeSource: "madara",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/en/mangatxunoriginal/icon.png",
dateFormat: "MMM d, yyyy",
dateFormatLocale: "en_us",
);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

View File

@@ -1,15 +0,0 @@
import '../../../../../../../model/source.dart';
Source get mangausSource => _mangausSource;
Source _mangausSource = Source(
name: "MangaUS",
baseUrl: "https://mangaus.xyz",
lang: "en",
typeSource: "madara",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/en/mangaus/icon.png",
dateFormat: "MMMM dd, yyyy",
dateFormatLocale: "en_us",
);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

View File

@@ -1,15 +0,0 @@
import '../../../../../../../model/source.dart';
Source get mangaweebsSource => _mangaweebsSource;
Source _mangaweebsSource = Source(
name: "Manga Weebs",
baseUrl: "https://mangaweebs.in",
lang: "en",
typeSource: "madara",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/en/mangaweebs/icon.png",
dateFormat: "dd MMMM HH:mm",
dateFormatLocale: "en_us",
);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

View File

@@ -1,15 +0,0 @@
import '../../../../../../../model/source.dart';
Source get manhuaesSource => _manhuaesSource;
Source _manhuaesSource = Source(
name: "Manhua ES",
baseUrl: "https://manhuaaz.com",
lang: "en",
typeSource: "madara",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/en/manhuaes/icon.png",
dateFormat: "MMMM dd, yyyy",
dateFormatLocale: "en_us",
);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

View File

@@ -1,15 +0,0 @@
import '../../../../../../../model/source.dart';
Source get manhwaworldSource => _manhwaworldSource;
Source _manhwaworldSource = Source(
name: "AQUA Scans",
baseUrl: "https://aquascans.com",
lang: "en",
typeSource: "madara",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/en/manhwaworld/icon.png",
dateFormat: "MMMM dd, yyyy",
dateFormatLocale: "en_us",
);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

View File

@@ -1,14 +0,0 @@
import '../../../../../../../model/source.dart';
Source get neatmangaSource => _neatmangaSource;
Source _neatmangaSource = Source(
name: "NeatManga",
baseUrl: "https://neatmanga.com",
lang: "en",
isNsfw: false,
typeSource: "madara",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/en/neatmanga/icon.png",
dateFormat: "dd MMM yyyy",
dateFormatLocale: "en_us",
);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -1,14 +0,0 @@
import '../../../../../../../model/source.dart';
Source get nvmangaSource => _nvmangaSource;
Source _nvmangaSource = Source(
name: "NvManga",
baseUrl: "https://nvmanga.com",
lang: "en",
isNsfw: false,
typeSource: "madara",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/en/nvmanga/icon.png",
dateFormat: "dd/MM/yyyy",
dateFormatLocale: "en",
);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

View File

@@ -1,14 +0,0 @@
import '../../../../../../../model/source.dart';
Source get reaperscansSource => _reaperscansSource;
Source _reaperscansSource = Source(
name: "Reaper Scans",
baseUrl: "https://reaperscans.com",
lang: "en",
isNsfw: false,
typeSource: "madara",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/en/reaperscans/icon.png",
dateFormat: "dd/MM/yyyy",
dateFormatLocale: "en_us",
);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

View File

@@ -1,15 +0,0 @@
import '../../../../../../../model/source.dart';
Source get rio2mangaSource => _rio2mangaSource;
Source _rio2mangaSource = Source(
name: "Rio2 Manga",
baseUrl: "https://rio2manga.com",
lang: "en",
typeSource: "madara",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/en/rio2manga/icon.png",
dateFormat: "MMMM dd, yyyy",
dateFormatLocale: "en_us",
);

View File

@@ -4,7 +4,7 @@ Source get s2mangaSource => _s2mangaSource;
Source _s2mangaSource = Source(
name: "S2Manga",
baseUrl: "https://www.s2manga.com",
baseUrl: "https://s2manga.com",
lang: "en",
typeSource: "madara",

View File

@@ -3,7 +3,7 @@ import '../../../../../../../model/source.dart';
Source get zinmanganetSource => _zinmanganetSource;
Source _zinmanganetSource = Source(
name: "Zinmanga.net",
baseUrl: "https://zinmanga.net",
baseUrl: "https://www.zinmanga.net",
lang: "en",
isNsfw: false,
typeSource: "madara",

View File

@@ -4,7 +4,7 @@ Source get barmangaSource => _barmangaSource;
Source _barmangaSource = Source(
name: "BarManga",
baseUrl: "https://barmanga.com",
baseUrl: "https://archiviumbar.com",
lang: "es",
typeSource: "madara",

View File

@@ -1,14 +0,0 @@
import '../../../../../../../model/source.dart';
Source get demanhuasSource => _demanhuasSource;
Source _demanhuasSource = Source(
name: "DeManhuas",
baseUrl: "https://demanhuas.com",
lang: "es",
isNsfw: false,
typeSource: "madara",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/es/demanhuas/icon.png",
dateFormat: "MMMM d, yyyy",
dateFormatLocale: "es",
);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

View File

@@ -4,7 +4,7 @@ Source get emperorscanSource => _emperorscanSource;
Source _emperorscanSource = Source(
name: "Emperor Scan",
baseUrl: "https://emperorscan.com",
baseUrl: "https://emperorscan.mundoalterno.org",
lang: "es",
typeSource: "madara",

View File

@@ -1,14 +0,0 @@
import '../../../../../../../model/source.dart';
Source get housemangasSource => _housemangasSource;
Source _housemangasSource = Source(
name: "HouseMangas",
baseUrl: "https://housemangas.com",
lang: "es",
isNsfw: false,
typeSource: "madara",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/es/housemangas/icon.png",
dateFormat: "MMMM dd, yyyy",
dateFormatLocale: "es",
);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

View File

@@ -1,14 +0,0 @@
import '../../../../../../../model/source.dart';
Source get inmoralnofansubSource => _inmoralnofansubSource;
Source _inmoralnofansubSource = Source(
name: "Inmoral No Fansub",
baseUrl: "https://inmoralnofansub.xyz",
lang: "es",
isNsfw: false,
typeSource: "madara",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/es/inmoralnofansub/icon.png",
dateFormat: "dd/MM/yyyy",
dateFormatLocale: "es",
);

View File

@@ -4,7 +4,7 @@ Source get inmortalscanSource => _inmortalscanSource;
Source _inmortalscanSource = Source(
name: "Inmortal Scan",
baseUrl: "https://manga.mundodrama.site",
baseUrl: "https://scaninmortal.com",
lang: "es",
typeSource: "madara",

View File

@@ -3,7 +3,7 @@ import '../../../../../../../model/source.dart';
Source get jeazscansSource => _jeazscansSource;
Source _jeazscansSource = Source(
name: "JeazScans",
baseUrl: "https://jeazscansv2.com",
baseUrl: "https://lectorhub.j5z.xyz",
lang: "es",
isNsfw: false,
typeSource: "madara",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -1,14 +1,14 @@
import '../../../../../../../model/source.dart';
Source get jobsibeSource => _jobsibeSource;
Source _jobsibeSource = Source(
name: "Jobsibe",
baseUrl: "https://jobsibe.com",
Source get lmtosSource => _lmtosSource;
Source _lmtosSource = Source(
name: "Lmtos",
baseUrl: "https://www.lmtos.com",
lang: "es",
isNsfw: false,
typeSource: "madara",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/es/jobsibe/icon.png",
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/es/lmtos/icon.png",
dateFormat: "MMMM d, yyyy",
dateFormatLocale: "es",
);

View File

@@ -3,7 +3,7 @@ import '../../../../../../../model/source.dart';
Source get mangacrabSource => _mangacrabSource;
Source _mangacrabSource = Source(
name: "Manga Crab",
baseUrl: "https://visorcrab.com",
baseUrl: "https://mangacrab.org",
lang: "es",
isNsfw: false,
typeSource: "madara",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

View File

@@ -1,15 +0,0 @@
import '../../../../../../../model/source.dart';
Source get mangafenixSource => _mangafenixSource;
Source _mangafenixSource = Source(
name: "Manga Fenix",
baseUrl: "https://manhua-fenix.com",
lang: "es",
typeSource: "madara",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/es/mangafenix/icon.png",
dateFormat: "dd MMMM, yyyy",
dateFormatLocale: "es",
);

View File

@@ -3,7 +3,7 @@ import '../../../../../../../model/source.dart';
Source get mhscansSource => _mhscansSource;
Source _mhscansSource = Source(
name: "MHScans",
baseUrl: "https://lectormh.com",
baseUrl: "https://twobluescans.com",
lang: "es",
isNsfw: false,
typeSource: "madara",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

View File

@@ -1,15 +0,0 @@
import '../../../../../../../model/source.dart';
Source get monarcamangaSource => _monarcamangaSource;
Source _monarcamangaSource = Source(
name: "MonarcaManga",
baseUrl: "https://monarcamanga.com",
lang: "es",
typeSource: "madara",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/es/monarcamanga/icon.png",
dateFormat: "MMM d, yyy",
dateFormatLocale: "es",
);

View File

@@ -4,7 +4,7 @@ Source get ragnarokscanlationSource => _ragnarokscanlationSource;
Source _ragnarokscanlationSource = Source(
name: "Ragnarok Scanlation",
baseUrl: "https://ragnarokscanlation.com",
baseUrl: "https://ragnarokscanlation.org",
lang: "es",
typeSource: "madara",

View File

@@ -4,7 +4,7 @@ Source get richtoscanSource => _richtoscanSource;
Source _richtoscanSource = Source(
name: "RichtoScan",
baseUrl: "https://richtoscan.com",
baseUrl: "https://r1.richtoon.top",
lang: "es",
typeSource: "madara",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

View File

@@ -1,15 +0,0 @@
import '../../../../../../../model/source.dart';
Source get scambertraslatorSource => _scambertraslatorSource;
Source _scambertraslatorSource = Source(
name: "ScamberTraslator",
baseUrl: "https://scambertraslator.com",
lang: "es",
typeSource: "madara",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/es/scambertraslator/icon.png",
dateFormat: "dd/MM/yyyy",
dateFormatLocale: "es",
);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

View File

@@ -1,14 +0,0 @@
import '../../../../../../../model/source.dart';
Source get tresdaosscanSource => _tresdaosscanSource;
Source _tresdaosscanSource = Source(
name: "Tres Daos Scan",
baseUrl: "https://tresdaos.com",
lang: "es",
isNsfw: false,
typeSource: "madara",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/es/tresdaosscan/icon.png",
dateFormat: "MMMM dd, yyyy",
dateFormatLocale: "es",
);

View File

@@ -1,15 +0,0 @@
import '../../../../../../../model/source.dart';
Source get frscanSource => _frscanSource;
Source _frscanSource = Source(
name: "FR-Scan",
baseUrl: "https://fr-scan.com",
lang: "fr",
typeSource: "madara",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/fr/frscan/icon.png",
dateFormat: "MMMM d, yyyy",
dateFormatLocale: "fr",
);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

View File

@@ -1,14 +0,0 @@
import '../../../../../../../model/source.dart';
Source get raijinscansSource => _raijinscansSource;
Source _raijinscansSource = Source(
name: "Raijin Scans",
baseUrl: "https://raijinscans.com",
lang: "fr",
isNsfw: false,
typeSource: "madara",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/fr/raijinscans/icon.png",
dateFormat: "dd/MM/yyyy",
dateFormatLocale: "fr",
);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

View File

@@ -1,15 +0,0 @@
import '../../../../../../../model/source.dart';
Source get readergenSource => _readergenSource;
Source _readergenSource = Source(
name: "ReaderGen",
baseUrl: "https://fr.readergen.fr",
lang: "fr",
typeSource: "madara",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/fr/readergen/icon.png",
dateFormat: "MMMM dd, yyyy",
dateFormatLocale: "en_us",
);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

View File

@@ -1,15 +0,0 @@
import '../../../../../../../model/source.dart';
Source get shadowtradSource => _shadowtradSource;
Source _shadowtradSource = Source(
name: "Shadowtrad",
baseUrl: "https://shadowtrad.net",
lang: "fr",
typeSource: "madara",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/fr/shadowtrad/icon.png",
dateFormat: "MMMM dd, yyyy",
dateFormatLocale: "fr",
);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

View File

@@ -1,15 +0,0 @@
import '../../../../../../../model/source.dart';
Source get thebeginningaftertheendSource => _thebeginningaftertheendSource;
Source _thebeginningaftertheendSource = Source(
name: "The Beginning After The End",
baseUrl: "https://www.thebeginningaftertheend.fr",
lang: "fr",
typeSource: "madara",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/fr/thebeginningaftertheend/icon.png",
dateFormat: "MMMMM dd, yyyy",
dateFormatLocale: "fr",
);

View File

@@ -3,7 +3,7 @@ import '../../../../../../../model/source.dart';
Source get hwagoSource => _hwagoSource;
Source _hwagoSource = Source(
name: "Hwago",
baseUrl: "https://hwago.org",
baseUrl: "https://hwago01.xyz",
lang: "id",
isNsfw: false,
typeSource: "madara",

View File

@@ -3,7 +3,7 @@ import '../../../../../../../model/source.dart';
Source get klikmangaSource => _klikmangaSource;
Source _klikmangaSource = Source(
name: "KlikManga",
baseUrl: "https://klikmanga.id",
baseUrl: "https://klikmanga.org",
lang: "id",
isNsfw: false,
typeSource: "madara",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

View File

@@ -1,14 +0,0 @@
import '../../../../../../../model/source.dart';
Source get siimangaSource => _siimangaSource;
Source _siimangaSource = Source(
name: "Siimanga",
baseUrl: "https://siimanga.cyou",
lang: "id",
isNsfw: false,
typeSource: "madara",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/id/siimanga/icon.png",
dateFormat: "d MMMM",
dateFormatLocale: "en",
);

View File

@@ -4,7 +4,7 @@ Source get kakuseiprojectSource => _kakuseiprojectSource;
Source _kakuseiprojectSource = Source(
name: "Kakusei Project",
baseUrl: "https://kakuseiproject.com.br",
baseUrl: "https://kakuseiproject.com",
lang: "pt-BR",
typeSource: "madara",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

View File

@@ -1,15 +0,0 @@
import '../../../../../../../model/source.dart';
Source get maidscanSource => _maidscanSource;
Source _maidscanSource = Source(
name: "Maid Scan",
baseUrl: "https://maidscan.com.br",
lang: "pt-BR",
typeSource: "madara",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/pt/maidscan/icon.png",
dateFormat: "dd 'de' MMMMM 'de' yyyy",
dateFormatLocale: "pt-br",
);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

View File

@@ -1,14 +0,0 @@
import '../../../../../../../model/source.dart';
Source get nexoscansSource => _nexoscansSource;
Source _nexoscansSource = Source(
name: "Nexo Scans",
baseUrl: "https://nexoscans.net",
lang: "pt-br",
isNsfw: false,
typeSource: "madara",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/pt/nexoscans/icon.png",
dateFormat: "dd/MM/yyyy",
dateFormatLocale: "en_us",
);

View File

@@ -3,7 +3,7 @@ import '../../../../../../../model/source.dart';
Source get prismascansSource => _prismascansSource;
Source _prismascansSource = Source(
name: "Demon Sect",
baseUrl: "https://dsectcomics.org",
baseUrl: "https://seitacelestial.com",
lang: "pt-br",
isNsfw: false,
typeSource: "madara",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -1,15 +0,0 @@
import '../../../../../../../model/source.dart';
Source get projetoscanlatorSource => _projetoscanlatorSource;
Source _projetoscanlatorSource = Source(
name: "Projeto Scanlator",
baseUrl: "https://projetoscanlator.com",
lang: "pt-BR",
typeSource: "madara",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/pt/projetoscanlator/icon.png",
dateFormat: "dd/MM/yyyy",
dateFormatLocale: "pt-br",
);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.7 KiB

View File

@@ -1,14 +0,0 @@
import '../../../../../../../model/source.dart';
Source get sussyscanSource => _sussyscanSource;
Source _sussyscanSource = Source(
name: "Sussy Scan",
baseUrl: "https://sussyscan.com",
lang: "pt-br",
isNsfw: false,
typeSource: "madara",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/dart/manga/multisrc/madara/src/pt/sussyscan/icon.png",
dateFormat: "MMMM dd, yyyy",
dateFormatLocale: "pt-br",
);

View File

@@ -4,7 +4,7 @@ Source get araznovelSource => _araznovelSource;
Source _araznovelSource = Source(
name: "ArazNovel",
baseUrl: "https://www.araznovel.com",
baseUrl: "https://araznovel.com",
lang: "tr",
typeSource: "madara",

View File

@@ -3,7 +3,7 @@ import '../../../../../../../model/source.dart';
Source get atikrostSource => _atikrostSource;
Source _atikrostSource = Source(
name: "Atikrost",
baseUrl: "https://www.atikrost.com",
baseUrl: "https://www.mangaoku.org",
lang: "tr",
isNsfw: false,
typeSource: "madara",

View File

@@ -4,7 +4,7 @@ Source get clovermangaSource => _clovermangaSource;
Source _clovermangaSource = Source(
name: "Clover Manga",
baseUrl: "https://clover-manga.com",
baseUrl: "https://webtoonhatti.me",
lang: "tr",
typeSource: "madara",