Reorganize folders
26
dart/manga/manga_source_list.dart
Normal 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
|
||||
];
|
||||
246
dart/manga/multisrc/heancms/heancms.dart
Normal 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);
|
||||
}
|
||||
22
dart/manga/multisrc/heancms/sources.dart
Normal 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();
|
||||
BIN
dart/manga/multisrc/heancms/src/omegascans/icon.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
16
dart/manga/multisrc/heancms/src/omegascans/omegascans.dart
Normal 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",
|
||||
);
|
||||
BIN
dart/manga/multisrc/heancms/src/perfscan/icon.png
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
15
dart/manga/multisrc/heancms/src/perfscan/perfscan.dart
Normal 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",
|
||||
);
|
||||
BIN
dart/manga/multisrc/heancms/src/yugenmangas/icon.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
16
dart/manga/multisrc/heancms/src/yugenmangas/yugenmangas.dart
Normal 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",
|
||||
);
|
||||
318
dart/manga/multisrc/madara/madara.dart
Normal 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);
|
||||
}
|
||||
505
dart/manga/multisrc/madara/sources.dart
Normal 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();
|
||||
@@ -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",
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/adultwebtoon/icon.png
Normal file
|
After Width: | Height: | Size: 4.7 KiB |
@@ -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",
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/akumanotenshi/icon.png
Normal file
|
After Width: | Height: | Size: 3.0 KiB |
14
dart/manga/multisrc/madara/src/anikiga/anikiga.dart
Normal 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",
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/anikiga/icon.png
Normal file
|
After Width: | Height: | Size: 6.1 KiB |
14
dart/manga/multisrc/madara/src/apollcomics/apollcomics.dart
Normal 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",
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/apollcomics/icon.png
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
14
dart/manga/multisrc/madara/src/apolltoons/apolltoons.dart
Normal 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",
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/apolltoons/icon.png
Normal file
|
After Width: | Height: | Size: 6.1 KiB |
14
dart/manga/multisrc/madara/src/araznovel/araznovel.dart
Normal 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",
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/araznovel/icon.png
Normal file
|
After Width: | Height: | Size: 8.0 KiB |
14
dart/manga/multisrc/madara/src/arthurscan/arthurscan.dart
Normal 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",
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/arthurscan/icon.png
Normal file
|
After Width: | Height: | Size: 6.8 KiB |
14
dart/manga/multisrc/madara/src/astralmanga/astralmanga.dart
Normal 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",
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/astralmanga/icon.png
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
@@ -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",
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/asurascansus/icon.png
Normal file
|
After Width: | Height: | Size: 6.2 KiB |
14
dart/manga/multisrc/madara/src/bakamh/bakamh.dart
Normal 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",
|
||||
|
||||
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/bakamh/icon.png
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
14
dart/manga/multisrc/madara/src/bananamanga/bananamanga.dart
Normal 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",
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/bananamanga/icon.png
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
14
dart/manga/multisrc/madara/src/barmanga/barmanga.dart
Normal 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",
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/barmanga/icon.png
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
14
dart/manga/multisrc/madara/src/bestmanga/bestmanga.dart
Normal 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",
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/bestmanga/icon.png
Normal file
|
After Width: | Height: | Size: 9.4 KiB |
14
dart/manga/multisrc/madara/src/birdtoon/birdtoon.dart
Normal 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",
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/birdtoon/icon.png
Normal file
|
After Width: | Height: | Size: 5.3 KiB |
14
dart/manga/multisrc/madara/src/cerisescans/cerisescans.dart
Normal 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",
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/cerisescans/icon.png
Normal file
|
After Width: | Height: | Size: 3.5 KiB |
14
dart/manga/multisrc/madara/src/chibimanga/chibimanga.dart
Normal 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",
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/chibimanga/icon.png
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
14
dart/manga/multisrc/madara/src/clovermanga/clovermanga.dart
Normal 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",
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/clovermanga/icon.png
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
14
dart/manga/multisrc/madara/src/cocorip/cocorip.dart
Normal 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",
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/cocorip/icon.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
14
dart/manga/multisrc/madara/src/coffeemanga/coffeemanga.dart
Normal 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",
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/coffeemanga/icon.png
Normal file
|
After Width: | Height: | Size: 4.9 KiB |
14
dart/manga/multisrc/madara/src/comicarab/comicarab.dart
Normal 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",
|
||||
|
||||
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/comicarab/icon.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
14
dart/manga/multisrc/madara/src/comicznetv2/comicznetv2.dart
Normal 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",
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/comicznetv2/icon.png
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
@@ -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",
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/decadencescans/icon.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
14
dart/manga/multisrc/madara/src/dessertscan/dessertscan.dart
Normal 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",
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/dessertscan/icon.png
Normal file
|
After Width: | Height: | Size: 3.0 KiB |
14
dart/manga/multisrc/madara/src/doodmanga/doodmanga.dart
Normal 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",
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/doodmanga/icon.png
Normal file
|
After Width: | Height: | Size: 3.8 KiB |
14
dart/manga/multisrc/madara/src/elitemanga/elitemanga.dart
Normal 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",
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/elitemanga/icon.png
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
14
dart/manga/multisrc/madara/src/emperorscan/emperorscan.dart
Normal 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",
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/emperorscan/icon.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
14
dart/manga/multisrc/madara/src/evascans/evascans.dart
Normal 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",
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/evascans/icon.png
Normal file
|
After Width: | Height: | Size: 7.8 KiB |
14
dart/manga/multisrc/madara/src/factmanga/factmanga.dart
Normal 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",
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/factmanga/icon.png
Normal file
|
After Width: | Height: | Size: 5.4 KiB |
14
dart/manga/multisrc/madara/src/falconmanga/falconmanga.dart
Normal 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",
|
||||
|
||||
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/falconmanga/icon.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
14
dart/manga/multisrc/madara/src/finalscans/finalscans.dart
Normal 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",
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/finalscans/icon.png
Normal file
|
After Width: | Height: | Size: 9.1 KiB |
@@ -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",
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/firstkissdashmanga/icon.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
14
dart/manga/multisrc/madara/src/firstmanhwa/firstmanhwa.dart
Normal 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",
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/firstmanhwa/icon.png
Normal file
|
After Width: | Height: | Size: 5.4 KiB |
@@ -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",
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/flextapescans/icon.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
14
dart/manga/multisrc/madara/src/freemanga/freemanga.dart
Normal 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",
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/freemanga/icon.png
Normal file
|
After Width: | Height: | Size: 5.1 KiB |
@@ -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",
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/freemangatop/icon.png
Normal file
|
After Width: | Height: | Size: 3.0 KiB |
14
dart/manga/multisrc/madara/src/frscan/frscan.dart
Normal 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",
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/frscan/icon.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
14
dart/manga/multisrc/madara/src/ghostscan/ghostscan.dart
Normal 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",
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/ghostscan/icon.png
Normal file
|
After Width: | Height: | Size: 3.0 KiB |
@@ -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",
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/girlslovemanga/icon.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
14
dart/manga/multisrc/madara/src/glorymanga/glorymanga.dart
Normal 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",
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/glorymanga/icon.png
Normal file
|
After Width: | Height: | Size: 6.7 KiB |
14
dart/manga/multisrc/madara/src/gooffansub/gooffansub.dart
Normal 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",
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/gooffansub/icon.png
Normal file
|
After Width: | Height: | Size: 7.9 KiB |
14
dart/manga/multisrc/madara/src/harimanga/harimanga.dart
Normal 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",
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/harimanga/icon.png
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
14
dart/manga/multisrc/madara/src/hentai3z/hentai3z.dart
Normal 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",
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/hentai3z/icon.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
14
dart/manga/multisrc/madara/src/hentaicube/hentaicube.dart
Normal 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",
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/hentaicube/icon.png
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
14
dart/manga/multisrc/madara/src/hentaimanga/hentaimanga.dart
Normal 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",
|
||||
);
|
||||
BIN
dart/manga/multisrc/madara/src/hentaimanga/icon.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
14
dart/manga/multisrc/madara/src/hentaiteca/hentaiteca.dart
Normal 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",
|
||||
);
|
||||