mirror of
https://github.com/kodjodevf/mangayomi-extensions.git
synced 2026-02-14 19:01:15 +00:00
Refactor
This commit is contained in:
@@ -2,27 +2,28 @@ import 'package:mangayomi/bridge_lib.dart';
|
||||
import 'dart:convert';
|
||||
|
||||
class Batoto extends MProvider {
|
||||
Batoto();
|
||||
Batoto({required this.source});
|
||||
|
||||
final Client client = Client();
|
||||
MSource source;
|
||||
|
||||
final Client client = Client(source);
|
||||
|
||||
@override
|
||||
Future<MPages> getPopular(MSource source, int page) async {
|
||||
Future<MPages> getPopular(int page) async {
|
||||
final res = await client.get(Uri.parse(
|
||||
"${preferenceMirror(source.id)}/browse?${lang(source.lang)}&sort=views_a&page=$page"));
|
||||
return mangaElementM(res.body, source);
|
||||
return mangaElementM(res.body);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<MPages> getLatestUpdates(MSource source, int page) async {
|
||||
Future<MPages> getLatestUpdates(int page) async {
|
||||
final res = await client.get(Uri.parse(
|
||||
"${preferenceMirror(source.id)}/browse?${lang(source.lang)}&sort=update&page=$page"));
|
||||
return mangaElementM(res.body, source);
|
||||
return mangaElementM(res.body);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<MPages> search(
|
||||
MSource source, String query, int page, FilterList filterList) async {
|
||||
Future<MPages> search(String query, int page, FilterList filterList) async {
|
||||
final filters = filterList.filters;
|
||||
String url = "";
|
||||
String min = "";
|
||||
@@ -99,11 +100,11 @@ class Batoto extends MProvider {
|
||||
}
|
||||
|
||||
final res = await client.get(Uri.parse(url));
|
||||
return mangaElementM(res.body, source);
|
||||
return mangaElementM(res.body);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<MManga> getDetail(MSource source, String url) async {
|
||||
Future<MManga> getDetail(String url) async {
|
||||
final statusList = [
|
||||
{"Ongoing": 0, "Completed": 1, "Cancelled": 3, "Hiatus": 2}
|
||||
];
|
||||
@@ -161,7 +162,7 @@ class Batoto extends MProvider {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<List<String>> getPageList(MSource source, String url) async {
|
||||
Future<List<String>> getPageList(String url) async {
|
||||
final res =
|
||||
(await client.get(Uri.parse("${preferenceMirror(source.id)}$url")))
|
||||
.body;
|
||||
@@ -190,7 +191,7 @@ class Batoto extends MProvider {
|
||||
return pagesUrl;
|
||||
}
|
||||
|
||||
MPages mangaElementM(String res, MSource source) async {
|
||||
MPages mangaElementM(String res) async {
|
||||
final lang = source.lang.replaceAll("-", "_");
|
||||
|
||||
final mangaElements = parseHtml(res).select("div#series-list div.col");
|
||||
@@ -230,7 +231,7 @@ class Batoto extends MProvider {
|
||||
}
|
||||
|
||||
@override
|
||||
List<dynamic> getFilterList(MSource source) {
|
||||
List<dynamic> getFilterList() {
|
||||
return [
|
||||
SelectFilter("LetterFilter", "Letter matching mode (Slow)", 0, [
|
||||
SelectFilterOption("Disabled", "disabled"),
|
||||
@@ -1622,7 +1623,7 @@ class Batoto extends MProvider {
|
||||
}
|
||||
|
||||
@override
|
||||
List<dynamic> getSourcePreferences(MSource source) {
|
||||
List<dynamic> getSourcePreferences() {
|
||||
return [
|
||||
ListPreference(
|
||||
key: "mirror",
|
||||
@@ -1667,6 +1668,6 @@ class Batoto extends MProvider {
|
||||
}
|
||||
}
|
||||
|
||||
Batoto main() {
|
||||
return Batoto();
|
||||
Batoto main(MSource source) {
|
||||
return Batoto(source: source);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import '../../../../model/source.dart';
|
||||
|
||||
const _batotoVersion = "0.0.6";
|
||||
const _batotoVersion = "0.0.65";
|
||||
const _batotoSourceCodeUrl =
|
||||
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/src/all/batoto/batoto.dart";
|
||||
|
||||
|
||||
@@ -2,12 +2,14 @@ import 'package:mangayomi/bridge_lib.dart';
|
||||
import 'dart:convert';
|
||||
|
||||
class ComickFun extends MProvider {
|
||||
ComickFun();
|
||||
ComickFun({required this.source});
|
||||
|
||||
final Client client = Client();
|
||||
MSource source;
|
||||
|
||||
final Client client = Client(source);
|
||||
|
||||
@override
|
||||
Future<MPages> getPopular(MSource source, int page) async {
|
||||
Future<MPages> getPopular(int page) async {
|
||||
final res = (await client.get(
|
||||
Uri.parse(
|
||||
"${source.apiUrl}/v1.0/search?sort=follow&page=$page&tachiyomi=true"),
|
||||
@@ -17,7 +19,7 @@ class ComickFun extends MProvider {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<MPages> getLatestUpdates(MSource source, int page) async {
|
||||
Future<MPages> getLatestUpdates(int page) async {
|
||||
final res = (await client.get(
|
||||
Uri.parse(
|
||||
"${source.apiUrl}/v1.0/search?sort=uploaded&page=$page&tachiyomi=true"),
|
||||
@@ -27,8 +29,7 @@ class ComickFun extends MProvider {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<MPages> search(
|
||||
MSource source, String query, int page, FilterList filterList) async {
|
||||
Future<MPages> search(String query, int page, FilterList filterList) async {
|
||||
final filters = filterList.filters;
|
||||
String url = "";
|
||||
if (query.isNotEmpty) {
|
||||
@@ -112,7 +113,7 @@ class ComickFun extends MProvider {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<MManga> getDetail(MSource source, String url) async {
|
||||
Future<MManga> getDetail(String url) async {
|
||||
final statusList = [
|
||||
{"1": 0, "2": 1, "3": 3, "4": 2}
|
||||
];
|
||||
@@ -187,7 +188,7 @@ class ComickFun extends MProvider {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<List<String>> getPageList(MSource source, String url) async {
|
||||
Future<List<String>> getPageList(String url) async {
|
||||
final res = (await client.get(
|
||||
Uri.parse("${source.apiUrl}/chapter/$url?tachiyomi=true"),
|
||||
headers: getHeader(url)))
|
||||
@@ -224,7 +225,7 @@ class ComickFun extends MProvider {
|
||||
}
|
||||
|
||||
@override
|
||||
List<dynamic> getFilterList(MSource source) {
|
||||
List<dynamic> getFilterList() {
|
||||
return [
|
||||
HeaderFilter("The filter is ignored when using text search."),
|
||||
GroupFilter("GenreFilter", "Genre", [
|
||||
@@ -652,6 +653,6 @@ Map<String, String> getHeader(String url) {
|
||||
return headers;
|
||||
}
|
||||
|
||||
ComickFun main() {
|
||||
return ComickFun();
|
||||
ComickFun main(MSource source) {
|
||||
return ComickFun(source: source);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import '../../../../model/source.dart';
|
||||
|
||||
const _comickVersion = "0.0.6";
|
||||
const _comickVersion = "0.0.65";
|
||||
const _comickSourceCodeUrl =
|
||||
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/src/all/comick/comick.dart";
|
||||
|
||||
|
||||
@@ -2,21 +2,23 @@ import 'package:mangayomi/bridge_lib.dart';
|
||||
import 'dart:convert';
|
||||
|
||||
class MangaDex extends MProvider {
|
||||
MangaDex();
|
||||
MangaDex({required this.source});
|
||||
|
||||
final Client client = Client();
|
||||
MSource source;
|
||||
|
||||
final Client client = Client(source);
|
||||
|
||||
@override
|
||||
Future<MPages> getPopular(MSource source, int page) async {
|
||||
Future<MPages> getPopular(int page) async {
|
||||
page = (20 * (page - 1));
|
||||
final url =
|
||||
"https://api.mangadex.org/manga?limit=20&offset=$page&availableTranslatedLanguage[]=${source.lang}&includes[]=cover_art${preferenceContentRating(source.id)}${preferenceOriginalLanguages(source.id)}&order[followedCount]=desc";
|
||||
final res = (await client.get(Uri.parse(url))).body;
|
||||
return mangaRes(res, source);
|
||||
return mangaRes(res);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<MPages> getLatestUpdates(MSource source, int page) async {
|
||||
Future<MPages> getLatestUpdates(int page) async {
|
||||
page = (20 * (page - 1));
|
||||
final url =
|
||||
"https://api.mangadex.org/chapter?limit=20&offset=$page&translatedLanguage[]=${source.lang}&includeFutureUpdates=0&order[publishAt]=desc&includeFuturePublishAt=0&includeEmptyPages=0";
|
||||
@@ -31,12 +33,11 @@ class MangaDex extends MProvider {
|
||||
final newUrl =
|
||||
"https://api.mangadex.org/manga?includes[]=cover_art&limit=${mangaIds.length}${preferenceContentRating(source.id)}${preferenceOriginalLanguages(source.id)}$mangaIdss";
|
||||
final res = (await client.get(Uri.parse(newUrl))).body;
|
||||
return mangaRes(res, source);
|
||||
return mangaRes(res);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<MPages> search(
|
||||
MSource source, String query, int page, FilterList filterList) async {
|
||||
Future<MPages> search(String query, int page, FilterList filterList) async {
|
||||
page = (20 * (page - 1));
|
||||
final filters = filterList.filters;
|
||||
String url = "";
|
||||
@@ -140,11 +141,11 @@ class MangaDex extends MProvider {
|
||||
}
|
||||
|
||||
final res = (await client.get(Uri.parse(url))).body;
|
||||
return mangaRes(res, source);
|
||||
return mangaRes(res);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<MManga> getDetail(MSource source, String url) async {
|
||||
Future<MManga> getDetail(String url) async {
|
||||
final statusList = [
|
||||
{"ongoing": 0, "completed": 1, "hiatus": 2, "cancelled": 3}
|
||||
];
|
||||
@@ -222,7 +223,7 @@ class MangaDex extends MProvider {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<List<String>> getPageList(MSource source, String url) async {
|
||||
Future<List<String>> getPageList(String url) async {
|
||||
final res = (await client
|
||||
.get(Uri.parse("https://api.mangadex.org/at-home/server/$url")))
|
||||
.body;
|
||||
@@ -235,7 +236,7 @@ class MangaDex extends MProvider {
|
||||
return chapterDatas.map((e) => "$host/data/$hash/$e").toList();
|
||||
}
|
||||
|
||||
MPages mangaRes(String res, MSource source) {
|
||||
MPages mangaRes(String res) {
|
||||
final datasRes = getMapValue(res, "data", encode: true);
|
||||
|
||||
final resJson = json.decode(datasRes) as List;
|
||||
@@ -362,7 +363,7 @@ class MangaDex extends MProvider {
|
||||
}
|
||||
|
||||
@override
|
||||
List<dynamic> getFilterList(MSource source) {
|
||||
List<dynamic> getFilterList() {
|
||||
return [
|
||||
CheckBoxFilter(
|
||||
"Has available chapters", "", "HasAvailableChaptersFilter"),
|
||||
@@ -505,7 +506,7 @@ class MangaDex extends MProvider {
|
||||
}
|
||||
|
||||
@override
|
||||
List<dynamic> getSourcePreferences(MSource source) {
|
||||
List<dynamic> getSourcePreferences() {
|
||||
return [
|
||||
ListPreference(
|
||||
key: "cover_quality",
|
||||
@@ -589,6 +590,6 @@ class MangaDex extends MProvider {
|
||||
}
|
||||
}
|
||||
|
||||
MangaDex main() {
|
||||
return MangaDex();
|
||||
MangaDex main(MSource source) {
|
||||
return MangaDex(source: source);
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ import '../../../../model/source.dart';
|
||||
const _apiUrl = 'https://api.mangadex.org';
|
||||
const _baseUrl = 'https://mangadex.org';
|
||||
const _isNsfw = true;
|
||||
const _mangadexVersion = "0.0.65";
|
||||
const _mangadexVersion = "0.0.7";
|
||||
const _mangadexSourceCodeUrl =
|
||||
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/src/all/mangadex/mangadex.dart";
|
||||
String _iconUrl =
|
||||
|
||||
@@ -2,12 +2,14 @@ import 'package:mangayomi/bridge_lib.dart';
|
||||
import 'dart:convert';
|
||||
|
||||
class MangaHere extends MProvider {
|
||||
MangaHere();
|
||||
MangaHere({required this.source});
|
||||
|
||||
final Client client = Client();
|
||||
MSource source;
|
||||
|
||||
final Client client = Client(source);
|
||||
|
||||
@override
|
||||
Future<MPages> getPopular(MSource source, int page) async {
|
||||
Future<MPages> getPopular(int page) async {
|
||||
final res = (await client.get(
|
||||
Uri.parse("${source.baseUrl}/directory/$page.htm"),
|
||||
headers: getHeader(source.baseUrl)))
|
||||
@@ -33,7 +35,7 @@ class MangaHere extends MProvider {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<MPages> getLatestUpdates(MSource source, int page) async {
|
||||
Future<MPages> getLatestUpdates(int page) async {
|
||||
final res = (await client.get(
|
||||
Uri.parse("${source.baseUrl}/directory/$page.htm?latest"),
|
||||
headers: getHeader(source.baseUrl)))
|
||||
@@ -59,8 +61,7 @@ class MangaHere extends MProvider {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<MPages> search(
|
||||
MSource source, String query, int page, FilterList filterList) async {
|
||||
Future<MPages> search(String query, int page, FilterList filterList) async {
|
||||
final filters = filterList.filters;
|
||||
String url = "${source.baseUrl}/search";
|
||||
|
||||
@@ -130,7 +131,7 @@ class MangaHere extends MProvider {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<MManga> getDetail(MSource source, String url) async {
|
||||
Future<MManga> getDetail(String url) async {
|
||||
final statusList = [
|
||||
{"Ongoing": 0, "Completed": 1}
|
||||
];
|
||||
@@ -168,7 +169,7 @@ class MangaHere extends MProvider {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<List<String>> getPageList(MSource source, String url) async {
|
||||
Future<List<String>> getPageList(String url) async {
|
||||
final headers = getHeader(source.baseUrl);
|
||||
final urll = "${source.baseUrl}$url";
|
||||
final res = (await client.get(Uri.parse(urll), headers: headers)).body;
|
||||
@@ -259,7 +260,7 @@ class MangaHere extends MProvider {
|
||||
}
|
||||
|
||||
@override
|
||||
List<dynamic> getFilterList(MSource source) {
|
||||
List<dynamic> getFilterList() {
|
||||
return [
|
||||
SelectFilter("TypeList", "Type", 1, [
|
||||
SelectFilterOption("American Manga", "5"),
|
||||
@@ -335,6 +336,6 @@ Map<String, String> getHeader(String url) {
|
||||
return headers;
|
||||
}
|
||||
|
||||
MangaHere main() {
|
||||
return MangaHere();
|
||||
MangaHere main(MSource source) {
|
||||
return MangaHere(source: source);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import '../../../../model/source.dart';
|
||||
|
||||
Source get mangahereSource => _mangahereSource;
|
||||
const _mangahereVersion = "0.0.6";
|
||||
const _mangahereVersion = "0.0.65";
|
||||
const _mangahereSourceCodeUrl =
|
||||
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/manga/src/en/mangahere/mangahere.dart";
|
||||
Source _mangahereSource = Source(
|
||||
|
||||
Reference in New Issue
Block a user