Reorganize folders

This commit is contained in:
kodjomoustapha
2024-03-28 11:13:42 +01:00
parent abdc9cab62
commit 67109cdbbc
565 changed files with 988 additions and 1863 deletions

View File

@@ -0,0 +1,26 @@
import '../../model/source.dart';
import 'multisrc/heancms/sources.dart';
import 'multisrc/madara/sources.dart';
import 'multisrc/mangabox/sources.dart';
import 'multisrc/mangareader/sources.dart';
import 'multisrc/mmrcms/sources.dart';
import 'multisrc/nepnep/sources.dart';
import 'src/all/batoto/sources.dart';
import 'src/all/comick/sources.dart';
import 'src/all/mangadex/sources.dart';
import 'src/all/nhentai/sources.dart';
import 'src/en/mangahere/source.dart';
List<Source> dartMangasourceList = [
...madaraSourcesList,
...comickSourcesList,
...mangaDexSourcesList,
...mangareaderSourcesList,
...mmrcmsSourcesList,
...heancmsSourcesList,
mangahereSource,
...nepnepSourcesList,
...mangaboxSourcesList,
...batotoSourcesList,
...nhentaiSourcesList
];

View File

@@ -0,0 +1,246 @@
import 'package:mangayomi/bridge_lib.dart';
import 'dart:convert';
class HeanCms extends MProvider {
HeanCms({required this.source});
MSource source;
final Client client = Client(source);
@override
Future<MPages> getPopular(int page) async {
final headers = getHeader(source.baseUrl);
String res = "";
if (!useNewQueryEndpoint(source.name)) {
final url = "${source.apiUrl}/series/querysearch";
final body = {
"page": page,
"order": "desc",
"order_by": "total_views",
"series_status": "Ongoing",
"series_type": "Comic"
};
res = (await client.post(Uri.parse(url), headers: headers, body: body))
.body;
} else {
final newEndpointUrl =
"${source.apiUrl}/query/?page=$page&query_string=&series_status=All&order=desc&orderBy=total_views&perPage=12&tags_ids=[]&series_type=Comic";
res =
(await client.get(Uri.parse(newEndpointUrl), headers: headers)).body;
}
return mMangaRes(res);
}
@override
Future<MPages> getLatestUpdates(int page) async {
final headers = getHeader(source.baseUrl);
String res = "";
if (!useNewQueryEndpoint(source.name)) {
final url = "${source.apiUrl}/series/querysearch";
final body = {
"page": page,
"order": "desc",
"order_by": "latest",
"series_status": "Ongoing",
"series_type": "Comic"
};
res = (await client.post(Uri.parse(url), headers: headers, body: body))
.body;
} else {
final newEndpointUrl =
"${source.apiUrl}/query/?page=$page&query_string=&series_status=All&order=desc&orderBy=latest&perPage=12&tags_ids=[]&series_type=Comic";
res =
(await client.get(Uri.parse(newEndpointUrl), headers: headers)).body;
}
return mMangaRes(res);
}
@override
Future<MPages> search(String query, int page, FilterList filterList) async {
final headers = getHeader(source.baseUrl);
String res = "";
if (!useNewQueryEndpoint(source.source)) {
final url = "${source.apiUrl}/series/search";
final body = {"term": query};
res = (await client.post(Uri.parse(url), headers: headers, body: body))
.body;
} else {
final newEndpointUrl =
"${source.apiUrl}/query/?page=$page&query_string=$query&series_status=All&order=desc&orderBy=total_views&perPage=12&tags_ids=[]&series_type=Comic";
res =
(await client.get(Uri.parse(newEndpointUrl), headers: headers)).body;
}
return mMangaRes(res);
}
@override
Future<MManga> getDetail(String url) async {
MManga manga = MManga();
String currentSlug = substringAfterLast(url, "/");
final headers = getHeader(source.baseUrl);
final res = (await client.get(
Uri.parse("${source.apiUrl}/series/$currentSlug"),
headers: headers))
.body;
manga.author = getMapValue(res, "author");
manga.description = getMapValue(res, "description");
manga.genre = jsonPathToString(res, r"$.tags[*].name", "._").split("._");
List<String> chapterTitles = [];
List<String> chapterUrls = [];
List<String> chapterDates = [];
if (!useNewQueryEndpoint(source.name)) {
for (var chapter in json.decode(res)["chapters"]) {
final chapterName = chapter["chapter_name"];
final chapterSlug = chapter["chapter_slug"];
final chapterId = chapter["id"];
final createdAt = chapter["created_at"];
chapterUrls.add("/series/$currentSlug/$chapterSlug#$chapterId");
chapterTitles.add(chapterName);
chapterDates.add(createdAt);
}
} else {
final seasons = json.decode(res)["seasons"].first;
for (var chapter in seasons["chapters"]) {
final chapterName = chapter["chapter_name"];
final chapterSlug = chapter["chapter_slug"];
final chapterId = chapter["id"];
final createdAt = chapter["created_at"];
chapterUrls.add("/series/$currentSlug/$chapterSlug#$chapterId");
chapterTitles.add(chapterName);
chapterDates.add(createdAt);
}
}
final dateUploads =
parseDates(chapterDates, source.dateFormat, source.dateFormatLocale);
List<MChapter>? chaptersList = [];
for (var i = 0; i < chapterTitles.length; i++) {
MChapter chapter = MChapter();
chapter.name = chapterTitles[i];
chapter.url = chapterUrls[i];
chapter.dateUpload = dateUploads[i];
chaptersList.add(chapter);
}
if (!useNewQueryEndpoint(source.name)) {
chaptersList = chaptersList.reversed.toList();
}
manga.chapters = chaptersList;
return manga;
}
@override
Future<List<String>> getPageList(String url) async {
final headers = getHeader(source.baseUrl);
String res = "".toString();
if (!useslugStrategy(source.name)) {
String chapterId = substringAfter(url, '#');
res = (await client.get(
Uri.parse("${source.apiUrl}/series/chapter/$chapterId"),
headers: headers))
.body;
} else {
res = (await client.get(Uri.parse("${source.baseUrl}$url"),
headers: headers))
.body;
List<String> pageUrls = [];
var imagesRes = parseHtml(res)
.selectFirst("div.min-h-screen > div.container > p.items-center")
.innerHtml;
pageUrls = xpath(imagesRes, '//img/@src');
pageUrls.addAll(xpath(imagesRes, '//img/@data-src'));
return pageUrls.where((e) => e.isNotEmpty).toList();
}
final pages = jsonPathToList(res, r"$.content.images[*]", 0);
List<String> pageUrls = [];
for (var u in pages) {
final url = u.replaceAll('"', "");
if (url.startsWith("http")) {
pageUrls.add(url);
} else {
pageUrls.add("${source.apiUrl}/$url");
}
}
return pageUrls;
}
MPages mMangaRes(String res) {
bool hasNextPage = true;
List<MManga> mangaList = [];
List<String> names = [];
List<String> urls = [];
List<String> images = [];
if (res.startsWith("{")) {
for (var a in json.decode(res)["data"]) {
String thumbnail = a["thumbnail"];
if (thumbnail.startsWith("https://")) {
images.add(thumbnail);
} else {
images.add("${source.apiUrl}/cover/$thumbnail");
}
names.add(a["title"]);
final seriesSlug = a["series_slug"];
urls.add("/series/$seriesSlug");
}
} else {
for (var a in json.decode(res)) {
String thumbnail = a["thumbnail"];
if (thumbnail.startsWith("https://")) {
images.add(thumbnail);
} else {
images.add("${source.apiUrl}/cover/$thumbnail");
}
names.add(a["title"]);
final seriesSlug = a["series_slug"];
urls.add("/series/$seriesSlug");
}
hasNextPage = false;
}
for (var i = 0; i < names.length; i++) {
MManga manga = MManga();
manga.name = names[i];
manga.imageUrl = images[i];
manga.link = urls[i];
mangaList.add(manga);
}
return MPages(mangaList, hasNextPage);
}
bool useNewQueryEndpoint(String sourceName) {
List<String> sources = [
"YugenMangas",
"Perf Scan",
"Reaper Scans",
"OmegaScans"
];
return sources.contains(sourceName);
}
bool useslugStrategy(String sourceName) {
List<String> sources = [
"YugenMangas",
"Reaper Scans",
"Perf Scan",
"OmegaScans"
];
return sources.contains(sourceName);
}
}
Map<String, String> getHeader(String url) {
final headers = {'Origin': url, 'Referer': '$url/'};
return headers;
}
HeanCms main(MSource source) {
return HeanCms(source: source);
}

View File

@@ -0,0 +1,22 @@
import '../../../../model/source.dart';
import 'src/yugenmangas/yugenmangas.dart';
import 'src/omegascans/omegascans.dart';
import 'src/perfscan/perfscan.dart';
const heancmsVersion = "0.0.75";
const heancmsSourceCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/heancms/heancms.dart";
List<Source> get heancmsSourcesList => _heancmsSourcesList;
List<Source> _heancmsSourcesList = [
//YugenMangas (ES)
yugenmangasSource,
//OmegaScans (EN)
omegascansSource,
//Perf Scan (FR)
perfscanSource,
]
.map((e) => e
..sourceCodeUrl = heancmsSourceCodeUrl
..version = heancmsVersion)
.toList();

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

View File

@@ -0,0 +1,16 @@
import '../../../../../../model/source.dart';
Source get omegascansSource => _omegascansSource;
Source _omegascansSource = Source(
name: "OmegaScans",
baseUrl: "https://omegascans.org",
apiUrl: "https://api.omegascans.org",
lang: "en",
isNsfw: true,
typeSource: "heancms",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/heancms/src/omegascans/icon.png",
dateFormat: "yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ",
dateFormatLocale: "en",
);

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

View File

@@ -0,0 +1,15 @@
import '../../../../../../model/source.dart';
Source get perfscanSource => _perfscanSource;
Source _perfscanSource = Source(
name: "Perf Scan",
baseUrl: "https://perf-scan.fr",
apiUrl: "https://api.perf-scan.fr",
lang: "fr",
typeSource: "heancms",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/heancms/src/perfscan/icon.png",
dateFormat: "yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ",
dateFormatLocale: "en",
);

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@@ -0,0 +1,16 @@
import '../../../../../../model/source.dart';
Source get yugenmangasSource => _yugenmangasSource;
Source _yugenmangasSource = Source(
name: "YugenMangas",
baseUrl: "https://yugenmangas.lat",
apiUrl: "https://api.yugenmangas.net",
lang: "es",
isNsfw: true,
typeSource: "heancms",
iconUrl:
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/heancms/src/yugenmangas/icon.png",
dateFormat: "yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ",
dateFormatLocale: "en",
);

View File

@@ -0,0 +1,318 @@
import 'package:mangayomi/bridge_lib.dart';
import 'dart:convert';
class Madara extends MProvider {
Madara({required this.source});
MSource source;
final Client client = Client(source);
@override
Future<MPages> getPopular(int page) async {
final res = (await client.get(
Uri.parse("${source.baseUrl}/manga/page/$page/?m_orderby=views")))
.body;
final document = parseHtml(res);
return mangaFromElements(document.select("div.page-item-detail"));
}
@override
Future<MPages> getLatestUpdates(int page) async {
final res = (await client.get(
Uri.parse("${source.baseUrl}/manga/page/$page/?m_orderby=latest")))
.body;
final document = parseHtml(res);
return mangaFromElements(document.select("div.page-item-detail"));
}
@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";
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 res = (await client.get(Uri.parse(url))).body;
final document = parseHtml(res);
return mangaFromElements(document.select("div.c-tabs-item__content"));
}
List<MChapter> getChapters(MDocument chapDoc) {
List<MChapter> chapters = [];
for (MElement element in chapDoc.select("li.wp-manga-chapter") ?? []) {
var ch = element.selectFirst("a");
if (ch != null) {
var url = ch.attr("href");
if (url != null && url.isNotEmpty) {
url = substringBefore(url, "?style=paged");
if (url.endsWith("?style=paged")) {
url = url + "?style=paged";
}
var chapter = MChapter();
chapter.url = url;
chapter.name = ch.text;
if (source.dateFormat.isNotEmpty) {
var chd = element.selectFirst("span.chapter-release-date");
if (chd != null && chd.text.isNotEmpty) {
var dates = parseDates(
[chd.text], source.dateFormat, source.dateFormatLocale);
chapter.dateUpload = dates[0];
} else {
chapter.dateUpload =
DateTime.now().millisecondsSinceEpoch.toString();
}
}
chapters.add(chapter);
}
}
}
return chapters;
}
@override
Future<MManga> getDetail(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 = "";
res = (await client.get(Uri.parse(url))).body;
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");
var image = imageElement?.attr("src") ??
imageElement?.attr("data-src") ??
imageElement?.attr("data-lazy-src") ??
imageElement?.attr("srcset");
if (image != null) {
if (image.contains("dflazy")) {
image = imageElement?.attr("data-src") ??
imageElement?.attr("data-src") ??
imageElement?.attr("data-lazy-src") ??
imageElement?.attr("srcset");
}
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, "X-Requested-With": "XMLHttpRequest"};
final oldXhrChaptersRequest = await client.post(
Uri.parse("${baseUrl}wp-admin/admin-ajax.php"),
headers: headers,
body: {"action": "manga_get_chapters", "manga": mangaId});
if (oldXhrChaptersRequest.statusCode == 400) {
res = (await client.post(Uri.parse("${url}ajax/chapters"),
headers: headers))
.body;
} else {
res = oldXhrChaptersRequest.body;
}
MDocument chapDoc = parseHtml(res);
manga.chapters = getChapters(chapDoc);
if (manga.chapters.isEmpty) {
res = (await client.post(Uri.parse("${url}ajax/chapters"),
headers: headers))
.body;
chapDoc = parseHtml(res);
manga.chapters = getChapters(chapDoc);
}
return manga;
}
@override
Future<List<String>> getPageList(String url) async {
final res = (await client.get(Uri.parse(url))).body;
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").length;
final imgUrl = pageElement.selectFirst("img").getSrc;
for (var i = 0; i < pagesNumber; i++) {
final val = i + 1;
if (i.toString().length == 1) {
pageUrls.add(imgUrl.replaceAll("01", '0$val'));
} else {
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);
}
return MPages(mangaList, true);
}
@override
List<dynamic> getFilterList() {
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(MSource source) {
return Madara(source: source);
}

View File

@@ -0,0 +1,505 @@
import '../../../../model/source.dart';
import 'src/firstkissdashmanga/firstkissdashmanga.dart';
import 'src/firstmanhwa/firstmanhwa.dart';
import 'src/manhwaworld/manhwaworld.dart';
import 'src/adultwebtoon/adultwebtoon.dart';
import 'src/akumanotenshi/akumanotenshi.dart';
import 'src/anikiga/anikiga.dart';
import 'src/apollcomics/apollcomics.dart';
import 'src/apolltoons/apolltoons.dart';
import 'src/araznovel/araznovel.dart';
import 'src/arthurscan/arthurscan.dart';
import 'src/astralmanga/astralmanga.dart';
import 'src/asurascansus/asurascansus.dart';
import 'src/bananamanga/bananamanga.dart';
import 'src/barmanga/barmanga.dart';
import 'src/bestmanga/bestmanga.dart';
import 'src/birdtoon/birdtoon.dart';
import 'src/cerisescans/cerisescans.dart';
import 'src/chibimanga/chibimanga.dart';
import 'src/clovermanga/clovermanga.dart';
import 'src/cocorip/cocorip.dart';
import 'src/coffeemanga/coffeemanga.dart';
import 'src/comicznetv2/comicznetv2.dart';
import 'src/decadencescans/decadencescans.dart';
import 'src/dessertscan/dessertscan.dart';
import 'src/doodmanga/doodmanga.dart';
import 'src/elitemanga/elitemanga.dart';
import 'src/emperorscan/emperorscan.dart';
import 'src/evascans/evascans.dart';
import 'src/frscan/frscan.dart';
import 'src/factmanga/factmanga.dart';
import 'src/finalscans/finalscans.dart';
import 'src/flextapescans/flextapescans.dart';
import 'src/freemanga/freemanga.dart';
import 'src/freemangatop/freemangatop.dart';
import 'src/ghostscan/ghostscan.dart';
import 'src/girlslovemanga/girlslovemanga.dart';
import 'src/glorymanga/glorymanga.dart';
import 'src/gooffansub/gooffansub.dart';
import 'src/hm2d/hm2d.dart';
import 'src/harimanga/harimanga.dart';
import 'src/hentaicube/hentaicube.dart';
import 'src/hentaimanga/hentaimanga.dart';
import 'src/hentaiteca/hentaiteca.dart';
import 'src/hentai3z/hentai3z.dart';
import 'src/hentaiwebtoon/hentaiwebtoon.dart';
import 'src/hentaixcomic/hentaixcomic.dart';
import 'src/hentaixyuri/hentaixyuri.dart';
import 'src/hentaizone/hentaizone.dart';
import 'src/hipercool/hipercool.dart';
import 'src/hiperdex/hiperdex.dart';
import 'src/immortalupdates/immortalupdates.dart';
import 'src/imperioscans/imperioscans.dart';
import 'src/inmortalscan/inmortalscan.dart';
import 'src/isekaiscanmanga/isekaiscanmanga.dart';
import 'src/jiangzaitoon/jiangzaitoon.dart';
import 'src/jimanga/jimanga.dart';
import 'src/ksgroupscans/ksgroupscans.dart';
import 'src/kakuseiproject/kakuseiproject.dart';
import 'src/kamisamaexplorer/kamisamaexplorer.dart';
import 'src/komikchan/komikchan.dart';
import 'src/lhtranslation/lhtranslation.dart';
import 'src/ladyestelarscan/ladyestelarscan.dart';
import 'src/leviatanscans/leviatanscans.dart';
import 'src/linkstartscan/linkstartscan.dart';
import 'src/lolicon/lolicon.dart';
import 'src/luffymanga/luffymanga.dart';
import 'src/maidscan/maidscan.dart';
import 'src/manga18h/manga18h.dart';
import 'src/mangabee/mangabee.dart';
import 'src/mangadistrict/mangadistrict.dart';
import 'src/mangadiyari/mangadiyari.dart';
import 'src/mangafenix/mangafenix.dart';
import 'src/mangagalaxy/mangagalaxy.dart';
import 'src/mangaqueencom/mangaqueencom.dart';
import 'src/mangaread/mangaread.dart';
import 'src/mangatxgg/mangatxgg.dart';
import 'src/mangaweebs/mangaweebs.dart';
import 'src/mangasehri/mangasehri.dart';
import 'src/mangatxunoriginal/mangatxunoriginal.dart';
import 'src/mangaclash/mangaclash.dart';
import 'src/mangafreakonline/mangafreakonline.dart';
import 'src/mangagoyaoi/mangagoyaoi.dart';
import 'src/mangagreat/mangagreat.dart';
import 'src/mangakomi/mangakomi.dart';
import 'src/mangaowlone/mangaowlone.dart';
import 'src/mangapure/mangapure.dart';
import 'src/mangareadorg/mangareadorg.dart';
import 'src/mangarolls/mangarolls.dart';
import 'src/mangarubycom/mangarubycom.dart';
import 'src/mangatyrant/mangatyrant.dart';
import 'src/mangaus/mangaus.dart';
import 'src/mangaland/mangaland.dart';
import 'src/mangaryu/mangaryu.dart';
import 'src/mangasorigines/mangasorigines.dart';
import 'src/mangasushi/mangasushi.dart';
import 'src/mangaxico/mangaxico.dart';
import 'src/mangananquim/mangananquim.dart';
import 'src/manhuaes/manhuaes.dart';
import 'src/manhuazonghe/manhuazonghe.dart';
import 'src/manhuaus/manhuaus.dart';
import 'src/manhuazone/manhuazone.dart';
import 'src/manhwa18app/manhwa18app.dart';
import 'src/manhwa18org/manhwa18org.dart';
import 'src/manhwa68/manhwa68.dart';
import 'src/manhwaclan/manhwaclan.dart';
import 'src/manhwamanhua/manhwamanhua.dart';
import 'src/manhwanew/manhwanew.dart';
import 'src/manhwafull/manhwafull.dart';
import 'src/manhwahentaime/manhwahentaime.dart';
import 'src/mantrazscan/mantrazscan.dart';
import 'src/milftoon/milftoon.dart';
import 'src/momonohanascan/momonohanascan.dart';
import 'src/monarcamanga/monarcamanga.dart';
import 'src/moonwitchinlove/moonwitchinlove.dart';
import 'src/moonloversscan/moonloversscan.dart';
import 'src/murimscan/murimscan.dart';
import 'src/nekopostco/nekopostco.dart';
import 'src/nijitranslations/nijitranslations.dart';
import 'src/novelcrow/novelcrow.dart';
import 'src/pantheonscan/pantheonscan.dart';
import 'src/pawmanga/pawmanga.dart';
import 'src/pinkseaunicorn/pinkseaunicorn.dart';
import 'src/pojokmanga/pojokmanga.dart';
import 'src/portalyaoi/portalyaoi.dart';
import 'src/prismahentais/prismahentais.dart';
import 'src/projetoscanlator/projetoscanlator.dart';
import 'src/mangasoverall/mangasoverall.dart';
import 'src/ragnarokscanlation/ragnarokscanlation.dart';
import 'src/rainbowfairyscan/rainbowfairyscan.dart';
import 'src/randomscan/randomscan.dart';
import 'src/readergen/readergen.dart';
import 'src/richtoscan/richtoscan.dart';
import 'src/rightdarkscan/rightdarkscan.dart';
import 'src/rio2manga/rio2manga.dart';
import 'src/romantikmanga/romantikmanga.dart';
import 'src/s2manga/s2manga.dart';
import 'src/samuraiscan/samuraiscan.dart';
import 'src/scambertraslator/scambertraslator.dart';
import 'src/scantradvf/scantradvf.dart';
import 'src/shadowtrad/shadowtrad.dart';
import 'src/shibamanga/shibamanga.dart';
import 'src/sinensis/sinensis.dart';
import 'src/sweettimescan/sweettimescan.dart';
import 'src/taberumangas/taberumangas.dart';
import 'src/tankouhentai/tankouhentai.dart';
import 'src/tatakaescan/tatakaescan.dart';
import 'src/taurusfansub/taurusfansub.dart';
import 'src/thebeginningaftertheend/thebeginningaftertheend.dart';
import 'src/toonizy/toonizy.dart';
import 'src/tortugaceviri/tortugaceviri.dart';
import 'src/valkyriescan/valkyriescan.dart';
import 'src/vermanhwas/vermanhwas.dart';
import 'src/vinmanga/vinmanga.dart';
import 'src/wickedwitchscan/wickedwitchscan.dart';
import 'src/winterscan/winterscan.dart';
import 'src/wonderlandscan/wonderlandscan.dart';
import 'src/yanpfansub/yanpfansub.dart';
import 'src/yaoicomics/yaoicomics.dart';
import 'src/yuriverso/yuriverso.dart';
import 'src/zeroscan/zeroscan.dart';
import 'src/falconmanga/falconmanga.dart';
import 'src/comicarab/comicarab.dart';
import 'src/manga3asq/manga3asq.dart';
import 'src/bakamh/bakamh.dart';
const madaraVersion = "0.0.95";
const madaraSourceCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/madara.dart";
List<Source> get madaraSourcesList => _madaraSourcesList;
List<Source> _madaraSourcesList = [
//1st Kiss-Manga (unoriginal) (EN)
firstkissdashmangaSource,
//1st Manhwa (EN)
firstmanhwaSource,
//AQUA Scans (EN)
manhwaworldSource,
//Adult Webtoon (EN)
adultwebtoonSource,
//Akuma no Tenshi (PT-BR)
akumanotenshiSource,
//Anikiga (TR)
anikigaSource,
//ApollComics (ES)
apollcomicsSource,
//Apolltoons (ES)
apolltoonsSource,
//ArazNovel (TR)
araznovelSource,
//Arthur Scan (PT-BR)
arthurscanSource,
//AstralManga (FR)
astralmangaSource,
//Asura Scans.us (unoriginal) (EN)
asurascansusSource,
//Banana Manga (EN)
bananamangaSource,
//BarManga (ES)
barmangaSource,
//BestManga (RU)
bestmangaSource,
//BirdToon (ID)
birdtoonSource,
//Cerise Scan (PT-BR)
cerisescansSource,
//Chibi Manga (EN)
chibimangaSource,
//Clover Manga (TR)
clovermangaSource,
//Coco Rip (ES)
cocoripSource,
//Coffee Manga (EN)
coffeemangaSource,
//Comicz.net v2 (ALL)
comicznetv2Source,
//Decadence Scans (EN)
decadencescansSource,
//Dessert Scan (PT-BR)
dessertscanSource,
//Doodmanga (TH)
doodmangaSource,
//Elite Manga (EN)
elitemangaSource,
//Emperor Scan (ES)
emperorscanSource,
//EvaScans (TR)
evascansSource,
//FR-Scan (FR)
frscanSource,
//FactManga (EN)
factmangaSource,
//Final Scans (PT-BR)
finalscansSource,
//Flex Tape Scans (EN)
flextapescansSource,
//Free Manga (EN)
freemangaSource,
//FreeMangaTop (EN)
freemangatopSource,
//Ghost Scan (PT-BR)
ghostscanSource,
//Girls Love Manga! (EN)
girlslovemangaSource,
//Glory Manga (TR)
glorymangaSource,
//Goof Fansub (PT-BR)
gooffansubSource,
//HM2D (EN)
hm2dSource,
//Harimanga (EN)
harimangaSource,
//Hentai CB (VI)
hentaicubeSource,
//Hentai Manga (EN)
hentaimangaSource,
//Hentai Teca (PT-BR)
hentaitecaSource,
//Hentai3z (EN)
hentai3zSource,
//HentaiWebtoon (EN)
hentaiwebtoonSource,
//HentaiXComic (EN)
hentaixcomicSource,
//HentaiXYuri (EN)
hentaixyuriSource,
//HentaiZone (FR)
hentaizoneSource,
//HipercooL (PT-BR)
hipercoolSource,
//Hiperdex (EN)
hiperdexSource,
//Immortal Updates (EN)
immortalupdatesSource,
//Império Scans (PT-BR)
imperioscansSource,
//Inmortal Scan (ES)
inmortalscanSource,
//IsekaiScanManga (unoriginal) (EN)
isekaiscanmangaSource,
//Jiangzaitoon (TR)
jiangzaitoonSource,
//Jimanga (EN)
jimangaSource,
//KSGroupScans (EN)
ksgroupscansSource,
//Kakusei Project (PT-BR)
kakuseiprojectSource,
//Kami Sama Explorer (PT-BR)
kamisamaexplorerSource,
//Komik Chan (EN)
komikchanSource,
//LHTranslation (EN)
lhtranslationSource,
//Lady Estelar Scan (PT-BR)
ladyestelarscanSource,
//Leviatan Scans (EN)
leviatanscansSource,
//Link Start Scan (PT-BR)
linkstartscanSource,
//Lolicon (EN)
loliconSource,
//Luffy Manga (EN)
luffymangaSource,
//Maid Scan (PT-BR)
maidscanSource,
//Manga 18h (EN)
manga18hSource,
//Manga Bee (EN)
mangabeeSource,
//Manga District (EN)
mangadistrictSource,
//Manga Diyari (TR)
mangadiyariSource,
//Manga Fenix (ES)
mangafenixSource,
//Manga Galaxy (EN)
mangagalaxySource,
//Manga Queen.com (EN)
mangaqueencomSource,
//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,
//MangaGo Yaoi (EN)
mangagoyaoiSource,
//MangaGreat (EN)
mangagreatSource,
//MangaKomi (EN)
mangakomiSource,
//MangaOwl.one (unoriginal) (EN)
mangaowloneSource,
//MangaPure (EN)
mangapureSource,
//MangaRead.org (EN)
mangareadorgSource,
//MangaRolls (EN)
mangarollsSource,
//MangaRuby.com (EN)
mangarubycomSource,
//MangaTyrant (EN)
mangatyrantSource,
//MangaUS (EN)
mangausSource,
//Mangaland (ES)
mangalandSource,
//Mangaryu (EN)
mangaryuSource,
//Mangas Origines (FR)
mangasoriginesSource,
//Mangasushi (EN)
mangasushiSource,
//Mangaxico (ES)
mangaxicoSource,
//Mangá Nanquim (PT-BR)
mangananquimSource,
//Manhua ES (EN)
manhuaesSource,
//Manhua Zonghe (EN)
manhuazongheSource,
//ManhuaUS (EN)
manhuausSource,
//ManhuaZone (EN)
manhuazoneSource,
//Manhwa18.app (EN)
manhwa18appSource,
//Manhwa18.org (EN)
manhwa18orgSource,
//Manhwa68 (EN)
manhwa68Source,
//ManhwaClan (EN)
manhwaclanSource,
//ManhwaManhua (EN)
manhwamanhuaSource,
//ManhwaNew (EN)
manhwanewSource,
//Manhwafull (EN)
manhwafullSource,
//Manhwahentai.me (EN)
manhwahentaimeSource,
//Mantraz Scan (ES)
mantrazscanSource,
//Milftoon (EN)
milftoonSource,
//Momo no Hana Scan (PT-BR)
momonohanascanSource,
//MonarcaManga (ES)
monarcamangaSource,
//Moon Witch In Love (PT-BR)
moonwitchinloveSource,
//MoonLovers Scan (PT-BR)
moonloversscanSource,
//MurimScan (EN)
murimscanSource,
//NekoPost.co (unoriginal) (TH)
nekopostcoSource,
//Niji Translations (AR)
nijitranslationsSource,
//NovelCrow (EN)
novelcrowSource,
//Pantheon Scan (FR)
pantheonscanSource,
//Paw Manga (EN)
pawmangaSource,
//Pink Sea Unicorn (PT-BR)
pinkseaunicornSource,
//Pojok Manga (ID)
pojokmangaSource,
//Portal Yaoi (PT-BR)
portalyaoiSource,
//Prisma Hentais (PT-BR)
prismahentaisSource,
//Projeto Scanlator (PT-BR)
projetoscanlatorSource,
//ROG Mangás (PT-BR)
mangasoverallSource,
//Ragnarok Scanlation (ES)
ragnarokscanlationSource,
//Rainbow Fairy Scan (PT-BR)
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)
sinensisSource,
//Sweet Time Scan (PT-BR)
sweettimescanSource,
//Taberu Mangás (PT-BR)
taberumangasSource,
//Tankou Hentai (PT-BR)
tankouhentaiSource,
//Tatakae Scan (PT-BR)
tatakaescanSource,
//Taurus Fansub (ES)
taurusfansubSource,
//The Beginning After The End (FR)
thebeginningaftertheendSource,
//Toonizy (EN)
toonizySource,
//Tortuga Ceviri (TR)
tortugaceviriSource,
//Valkyrie Scan (PT-BR)
valkyriescanSource,
//Ver Manhwas (ES)
vermanhwasSource,
//VinManga (EN)
vinmangaSource,
//Wicked Witch Scan (PT-BR)
wickedwitchscanSource,
//Winter Scan (PT-BR)
winterscanSource,
//Wonderland Scan (PT-BR)
wonderlandscanSource,
//YANP Fansub (PT-BR)
yanpfansubSource,
//Yaoi Comics (PT-BR)
yaoicomicsSource,
//Yuri Verso (PT-BR)
yuriversoSource,
//Zero Scan (PT-BR)
zeroscanSource,
//فالكون مانجا (AR)
falconmangaSource,
//كوميك العرب (AR)
comicarabSource,
//مانجا العاشق (AR)
manga3asqSource,
//巴卡漫画 (ZH)
bakamhSource
]
.map((e) => e
..sourceCodeUrl = madaraSourceCodeUrl
..version = madaraVersion)
.toList();

View File

@@ -0,0 +1,14 @@
import '../../../../../../model/source.dart';
Source get adultwebtoonSource => _adultwebtoonSource;
Source _adultwebtoonSource = Source(
name: "Adult Webtoon",
baseUrl: "https://adultwebtoon.com",
lang: "en",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/adultwebtoon/icon.png",
dateFormat:"MMMM dd, yyyy",
dateFormatLocale:"en_us",
);

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

View File

@@ -0,0 +1,14 @@
import '../../../../../../model/source.dart';
Source get akumanotenshiSource => _akumanotenshiSource;
Source _akumanotenshiSource = Source(
name: "Akuma no Tenshi",
baseUrl: "https://akumanotenshi.com",
lang: "pt-BR",
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/akumanotenshi/icon.png",
dateFormat:"dd/MM/yyyy",
dateFormatLocale:"pt-br",
);

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@@ -0,0 +1,14 @@
import '../../../../../../model/source.dart';
Source get anikigaSource => _anikigaSource;
Source _anikigaSource = Source(
name: "Anikiga",
baseUrl: "https://anikiga.com",
lang: "tr",
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/anikiga/icon.png",
dateFormat:"d MMMMM yyyy",
dateFormatLocale:"tr",
);

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

View File

@@ -0,0 +1,14 @@
import '../../../../../../model/source.dart';
Source get apollcomicsSource => _apollcomicsSource;
Source _apollcomicsSource = Source(
name: "ApollComics",
baseUrl: "https://apollcomics.xyz",
lang: "es",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/apollcomics/icon.png",
dateFormat:"dd MMMM, yyyy",
dateFormatLocale:"es",
);

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@@ -0,0 +1,14 @@
import '../../../../../../model/source.dart';
Source get apolltoonsSource => _apolltoonsSource;
Source _apolltoonsSource = Source(
name: "Apolltoons",
baseUrl: "https://apolltoons.xyz",
lang: "es",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/apolltoons/icon.png",
dateFormat:"dd MMMMM, yyyy",
dateFormatLocale:"es",
);

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

View File

@@ -0,0 +1,14 @@
import '../../../../../../model/source.dart';
Source get araznovelSource => _araznovelSource;
Source _araznovelSource = Source(
name: "ArazNovel",
baseUrl: "https://www.araznovel.com",
lang: "tr",
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/araznovel/icon.png",
dateFormat:"d MMMM yyyy",
dateFormatLocale:"en",
);

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

View File

@@ -0,0 +1,14 @@
import '../../../../../../model/source.dart';
Source get astralmangaSource => _astralmangaSource;
Source _astralmangaSource = Source(
name: "AstralManga",
baseUrl: "https://astral-manga.fr",
lang: "fr",
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/astralmanga/icon.png",
dateFormat:"dd/mm/yyyy",
dateFormatLocale:"fr",
);

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

View File

@@ -0,0 +1,14 @@
import '../../../../../../model/source.dart';
Source get asurascansusSource => _asurascansusSource;
Source _asurascansusSource = Source(
name: "Asura Scans.us (unoriginal)",
baseUrl: "https://asurascans.us",
lang: "en",
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/asurascansus/icon.png",
dateFormat:"MMMM dd, yyyy",
dateFormatLocale:"en_us",
);

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

@@ -0,0 +1,14 @@
import '../../../../../../model/source.dart';
Source get bakamhSource => _bakamhSource;
Source _bakamhSource = Source(
name: "巴卡漫画",
baseUrl: "https://bakamh.com",
lang: "zh",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/bakamh/icon.png",
);

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@@ -0,0 +1,14 @@
import '../../../../../../model/source.dart';
Source get bananamangaSource => _bananamangaSource;
Source _bananamangaSource = Source(
name: "Banana Manga",
baseUrl: "https://bananamanga.net",
lang: "en",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/bananamanga/icon.png",
dateFormat:"MMMM dd, yyyy",
dateFormatLocale:"en_us",
);

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

View File

@@ -0,0 +1,14 @@
import '../../../../../../model/source.dart';
Source get bestmangaSource => _bestmangaSource;
Source _bestmangaSource = Source(
name: "BestManga",
baseUrl: "https://bestmanga.club",
lang: "ru",
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/bestmanga/icon.png",
dateFormat:"dd.MM.yyyy",
dateFormatLocale:"ru",
);

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

View File

@@ -0,0 +1,14 @@
import '../../../../../../model/source.dart';
Source get birdtoonSource => _birdtoonSource;
Source _birdtoonSource = Source(
name: "BirdToon",
baseUrl: "https://birdtoon.net",
lang: "id",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/birdtoon/icon.png",
dateFormat:"MMMM dd, yyyy",
dateFormatLocale:"en_us",
);

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@@ -0,0 +1,14 @@
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/chibimanga/icon.png",
dateFormat:"MMMM dd, yyyy",
dateFormatLocale:"en_us",
);

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@@ -0,0 +1,14 @@
import '../../../../../../model/source.dart';
Source get clovermangaSource => _clovermangaSource;
Source _clovermangaSource = Source(
name: "Clover Manga",
baseUrl: "https://clover-manga.com",
lang: "tr",
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/clovermanga/icon.png",
dateFormat:"MMMM dd, yyyy",
dateFormatLocale:"tr",
);

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

View File

@@ -0,0 +1,14 @@
import '../../../../../../model/source.dart';
Source get comicarabSource => _comicarabSource;
Source _comicarabSource = Source(
name: "كوميك العرب",
baseUrl: "https://comicarab.com",
lang: "ar",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/comicarab/icon.png",
);

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

@@ -0,0 +1,14 @@
import '../../../../../../model/source.dart';
Source get comicznetv2Source => _comicznetv2Source;
Source _comicznetv2Source = Source(
name: "Comicz.net v2",
baseUrl: "https://v2.comiz.net",
lang: "all",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/comicznetv2/icon.png",
dateFormat:"MMMM dd, yyyy",
dateFormatLocale:"en_us",
);

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

@@ -0,0 +1,14 @@
import '../../../../../../model/source.dart';
Source get decadencescansSource => _decadencescansSource;
Source _decadencescansSource = Source(
name: "Decadence Scans",
baseUrl: "https://reader.decadencescans.com",
lang: "en",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/decadencescans/icon.png",
dateFormat:"MMMM dd, yyyy",
dateFormatLocale:"en_us",
);

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -0,0 +1,14 @@
import '../../../../../../model/source.dart';
Source get dessertscanSource => _dessertscanSource;
Source _dessertscanSource = Source(
name: "Dessert Scan",
baseUrl: "https://cabaredowatame.site",
lang: "pt-BR",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/dessertscan/icon.png",
dateFormat:"dd/MM/yyyy",
dateFormatLocale:"pt-br",
);

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@@ -0,0 +1,14 @@
import '../../../../../../model/source.dart';
Source get doodmangaSource => _doodmangaSource;
Source _doodmangaSource = Source(
name: "Doodmanga",
baseUrl: "https://www.doodmanga.com",
lang: "th",
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/doodmanga/icon.png",
dateFormat:"dd MMMMM yyyy",
dateFormatLocale:"th",
);

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

View File

@@ -0,0 +1,14 @@
import '../../../../../../model/source.dart';
Source get emperorscanSource => _emperorscanSource;
Source _emperorscanSource = Source(
name: "Emperor Scan",
baseUrl: "https://emperorscan.com",
lang: "es",
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/emperorscan/icon.png",
dateFormat:"MMMM dd, yyyy",
dateFormatLocale:"es",
);

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -0,0 +1,14 @@
import '../../../../../../model/source.dart';
Source get evascansSource => _evascansSource;
Source _evascansSource = Source(
name: "EvaScans",
baseUrl: "https://evascans.com",
lang: "tr",
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/evascans/icon.png",
dateFormat:"MMM d, yyy",
dateFormatLocale:"tr",
);

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

View File

@@ -0,0 +1,14 @@
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/factmanga/icon.png",
dateFormat:"MMMM dd, yyyy",
dateFormatLocale:"en_us",
);

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

View File

@@ -0,0 +1,14 @@
import '../../../../../../model/source.dart';
Source get falconmangaSource => _falconmangaSource;
Source _falconmangaSource = Source(
name: "فالكون مانجا",
baseUrl: "https://falconmanga.com",
lang: "ar",
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/falconmanga/icon.png",
);

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -0,0 +1,14 @@
import '../../../../../../model/source.dart';
Source get finalscansSource => _finalscansSource;
Source _finalscansSource = Source(
name: "Final Scans",
baseUrl: "https://finalscans.com",
lang: "pt-br",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/finalscans/icon.png",
dateFormat:"MMMM d, yyyy",
dateFormatLocale:"pt-br",
);

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

View File

@@ -0,0 +1,14 @@
import '../../../../../../model/source.dart';
Source get firstkissdashmangaSource => _firstkissdashmangaSource;
Source _firstkissdashmangaSource = Source(
name: "1st Kiss-Manga (unoriginal)",
baseUrl: "https://1stkiss-manga.com",
lang: "en",
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/firstkissdashmanga/icon.png",
dateFormat:"MMMM dd, yyyy",
dateFormatLocale:"en_us",
);

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -0,0 +1,14 @@
import '../../../../../../model/source.dart';
Source get firstmanhwaSource => _firstmanhwaSource;
Source _firstmanhwaSource = Source(
name: "1st Manhwa",
baseUrl: "https://1stmanhwa.com",
lang: "en",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/firstmanhwa/icon.png",
dateFormat:"MMMM dd, yyyy",
dateFormatLocale:"en_us",
);

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

View File

@@ -0,0 +1,14 @@
import '../../../../../../model/source.dart';
Source get flextapescansSource => _flextapescansSource;
Source _flextapescansSource = Source(
name: "Flex Tape Scans",
baseUrl: "https://flextapescans.com",
lang: "en",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/flextapescans/icon.png",
dateFormat:"MM/dd/yyy",
dateFormatLocale:"en",
);

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

@@ -0,0 +1,14 @@
import '../../../../../../model/source.dart';
Source get freemangaSource => _freemangaSource;
Source _freemangaSource = Source(
name: "Free Manga",
baseUrl: "https://freemanga.me",
lang: "en",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/freemanga/icon.png",
dateFormat:"MMMM dd, yyyy",
dateFormatLocale:"en_us",
);

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@@ -0,0 +1,14 @@
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/frscan/icon.png",
dateFormat:"MMMM d, yyyy",
dateFormatLocale:"fr",
);

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@@ -0,0 +1,14 @@
import '../../../../../../model/source.dart';
Source get girlslovemangaSource => _girlslovemangaSource;
Source _girlslovemangaSource = Source(
name: "Girls Love Manga!",
baseUrl: "https://glmanga.com",
lang: "en",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/girlslovemanga/icon.png",
dateFormat:"MMMM dd, yyyy",
dateFormatLocale:"en_us",
);

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -0,0 +1,14 @@
import '../../../../../../model/source.dart';
Source get glorymangaSource => _glorymangaSource;
Source _glorymangaSource = Source(
name: "Glory Manga",
baseUrl: "https://glorymanga.com",
lang: "tr",
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/glorymanga/icon.png",
dateFormat:"dd/MM/yyy",
dateFormatLocale:"tr",
);

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

View File

@@ -0,0 +1,14 @@
import '../../../../../../model/source.dart';
Source get gooffansubSource => _gooffansubSource;
Source _gooffansubSource = Source(
name: "Goof Fansub",
baseUrl: "https://gooffansub.com",
lang: "pt-BR",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/gooffansub/icon.png",
dateFormat:"dd/MM/yyy",
dateFormatLocale:"pt-br",
);

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -0,0 +1,14 @@
import '../../../../../../model/source.dart';
Source get hentaicubeSource => _hentaicubeSource;
Source _hentaicubeSource = Source(
name: "Hentai CB",
baseUrl: "https://hentaicube.net",
lang: "vi",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/hentaicube/icon.png",
dateFormat:"dd/MM/yyyy",
dateFormatLocale:"vi",
);

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

@@ -0,0 +1,14 @@
import '../../../../../../model/source.dart';
Source get hentaimangaSource => _hentaimangaSource;
Source _hentaimangaSource = Source(
name: "Hentai Manga",
baseUrl: "https://hentaimanga.me",
lang: "en",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/hentaimanga/icon.png",
dateFormat:"MMM d, yyyy",
dateFormatLocale:"en_us",
);

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -0,0 +1,14 @@
import '../../../../../../model/source.dart';
Source get hentaitecaSource => _hentaitecaSource;
Source _hentaitecaSource = Source(
name: "Hentai Teca",
baseUrl: "https://hentaiteca.net",
lang: "pt-BR",
isNsfw:true,
typeSource: "madara",
iconUrl:"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/multisrc/madara/src/hentaiteca/icon.png",
dateFormat:"MMMMM dd, yyyy",
dateFormatLocale:"pt-br",
);

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