mirror of
https://github.com/kodjodevf/mangayomi-extensions.git
synced 2026-02-15 03:10:59 +00:00
Catch http error response
This commit is contained in:
@@ -3,33 +3,28 @@ import 'package:bridge_lib/bridge_lib.dart';
|
||||
|
||||
searchManga(MManga manga) async {
|
||||
final headers = getHeader(manga.baseUrl);
|
||||
|
||||
String res = "".toString();
|
||||
MHttpResponse response = MHttpResponse();
|
||||
if (!useNewQueryEndpoint(manga.source)) {
|
||||
final url = "${manga.apiUrl}/series/search";
|
||||
final body = {"term": manga.query};
|
||||
final data = {"url": url, "headers": headers, "body": body};
|
||||
res = await MBridge.http('POST', json.encode(data));
|
||||
if (res.isEmpty) {
|
||||
return manga;
|
||||
}
|
||||
response = await MBridge.http('POST', json.encode(data));
|
||||
} else {
|
||||
final newEndpointUrl =
|
||||
"${manga.apiUrl}/query/?page=${manga.page}&query_string=${manga.query}&series_status=All&order=desc&orderBy=total_views&perPage=12&tags_ids=[]&series_type=Comic";
|
||||
|
||||
final newEndpointData = {"url": newEndpointUrl, "headers": headers};
|
||||
res = await MBridge.http('GET', json.encode(newEndpointData));
|
||||
if (res.isEmpty) {
|
||||
return manga;
|
||||
}
|
||||
response = await MBridge.http('GET', json.encode(newEndpointData));
|
||||
}
|
||||
|
||||
return MMangaRes(res, manga);
|
||||
if (response.hasError) {
|
||||
return response;
|
||||
}
|
||||
return mMangaRes(response, manga);
|
||||
}
|
||||
|
||||
getPopularManga(MManga manga) async {
|
||||
final headers = getHeader(manga.baseUrl);
|
||||
String res = "".toString();
|
||||
MHttpResponse response = MHttpResponse();
|
||||
if (!useNewQueryEndpoint(manga.source)) {
|
||||
final url = "${manga.apiUrl}/series/querysearch";
|
||||
print(url);
|
||||
@@ -47,8 +42,7 @@ getPopularManga(MManga manga) async {
|
||||
"sourceId": manga.sourceId,
|
||||
"body": body
|
||||
};
|
||||
|
||||
res = await MBridge.http('POST', json.encode(data));
|
||||
response = await MBridge.http('POST', json.encode(data));
|
||||
} else {
|
||||
final newEndpointUrl =
|
||||
"${manga.apiUrl}/query/?page=${manga.page}&query_string=&series_status=All&order=desc&orderBy=total_views&perPage=12&tags_ids=[]&series_type=Comic";
|
||||
@@ -58,17 +52,14 @@ getPopularManga(MManga manga) async {
|
||||
"headers": headers,
|
||||
"sourceId": manga.sourceId
|
||||
};
|
||||
res = await MBridge.http('GET', json.encode(newEndpointData));
|
||||
response = await MBridge.http('GET', json.encode(newEndpointData));
|
||||
}
|
||||
if (res.isEmpty) {
|
||||
return manga;
|
||||
}
|
||||
return MMangaRes(res, manga);
|
||||
return mMangaRes(response, manga);
|
||||
}
|
||||
|
||||
getLatestUpdatesManga(MManga manga) async {
|
||||
final headers = getHeader(manga.baseUrl);
|
||||
String res = "".toString();
|
||||
MHttpResponse response = MHttpResponse();
|
||||
if (!useNewQueryEndpoint(manga.source)) {
|
||||
final url = "${manga.apiUrl}/series/querysearch";
|
||||
final body = {
|
||||
@@ -84,20 +75,16 @@ getLatestUpdatesManga(MManga manga) async {
|
||||
"sourceId": manga.sourceId,
|
||||
"body": body
|
||||
};
|
||||
res = await MBridge.http('POST', json.encode(data));
|
||||
response = await MBridge.http('POST', json.encode(data));
|
||||
} else {
|
||||
final newEndpointUrl =
|
||||
"${manga.apiUrl}/query/?page=${manga.page}&query_string=&series_status=All&order=desc&orderBy=latest&perPage=12&tags_ids=[]&series_type=Comic";
|
||||
|
||||
final newEndpointData = {"url": newEndpointUrl, "headers": headers};
|
||||
res = await MBridge.http('GET', json.encode(newEndpointData));
|
||||
print(res);
|
||||
response = await MBridge.http('GET', json.encode(newEndpointData));
|
||||
}
|
||||
|
||||
if (res.isEmpty) {
|
||||
return manga;
|
||||
}
|
||||
return MMangaRes(res, manga);
|
||||
return mMangaRes(response, manga);
|
||||
}
|
||||
|
||||
getMangaDetail(MManga manga) async {
|
||||
@@ -105,11 +92,11 @@ getMangaDetail(MManga manga) async {
|
||||
final headers = getHeader(manga.baseUrl);
|
||||
final url = "${manga.apiUrl}/series/$currentSlug";
|
||||
final data = {"url": url, "headers": headers};
|
||||
final res = await MBridge.http('GET', json.encode(data));
|
||||
if (res.isEmpty) {
|
||||
return manga;
|
||||
final response = await MBridge.http('GET', json.encode(data));
|
||||
if (response.hasError) {
|
||||
return response;
|
||||
}
|
||||
print("${manga.apiUrl}/series/$currentSlug");
|
||||
String res = response.body;
|
||||
manga.author = MBridge.getMapValue(res, "author");
|
||||
|
||||
manga.description = MBridge.getMapValue(res, "description");
|
||||
@@ -159,18 +146,24 @@ getMangaDetail(MManga manga) async {
|
||||
}
|
||||
|
||||
getChapterPages(MManga manga) async {
|
||||
String res = "".toString();
|
||||
MHttpResponse response = MHttpResponse();
|
||||
final headers = getHeader(manga.baseUrl);
|
||||
|
||||
String res = "".toString();
|
||||
if (!useslugStrategy(manga.source)) {
|
||||
String chapterId = MBridge.substringAfter(manga.link, '#');
|
||||
|
||||
final url = "${manga.apiUrl}/series/chapter/$chapterId";
|
||||
final data = {"url": url, "headers": headers};
|
||||
res = await MBridge.http('GET', json.encode(data));
|
||||
response = await MBridge.http('GET', json.encode(data));
|
||||
res = response.body;
|
||||
} else {
|
||||
final url = "${manga.baseUrl}${manga.link}";
|
||||
final data = {"url": url, "headers": headers};
|
||||
res = await MBridge.http('GET', json.encode(data));
|
||||
response = await MBridge.http('GET', json.encode(data));
|
||||
if (response.hasError) {
|
||||
return response;
|
||||
}
|
||||
res = response.body;
|
||||
List<String> pageUrls = [];
|
||||
var imagesRes = MBridge.querySelectorAll(res,
|
||||
selector: "div.min-h-screen > div.container > p.items-center",
|
||||
@@ -183,9 +176,8 @@ getChapterPages(MManga manga) async {
|
||||
|
||||
return pageUrls.where((e) => e.isNotEmpty).toList();
|
||||
}
|
||||
|
||||
if (res.isEmpty) {
|
||||
return [];
|
||||
if (response.hasError) {
|
||||
return response;
|
||||
}
|
||||
final pages = MBridge.jsonPathToList(res, r"$.content.images[*]", 0);
|
||||
List<String> pageUrls = [];
|
||||
@@ -220,11 +212,11 @@ bool useslugStrategy(String sourceName) {
|
||||
return sources.contains(sourceName);
|
||||
}
|
||||
|
||||
MManga MMangaRes(String res, MManga manga) {
|
||||
MManga mMangaRes(MHttpResponse response, MManga manga) {
|
||||
String res = response.body;
|
||||
List<String> names = [];
|
||||
List<String> urls = [];
|
||||
List<String> images = [];
|
||||
|
||||
if (res.startsWith("{")) {
|
||||
for (var a in json.decode(res)["data"]) {
|
||||
String thumbnail = a["thumbnail"];
|
||||
|
||||
Reference in New Issue
Block a user