Mangadex: Add use custom user agent

This commit is contained in:
kodjomoustapha
2024-08-20 18:10:54 +01:00
parent 65ca992f07
commit 20dbeed246
2 changed files with 26 additions and 10 deletions

View File

@@ -8,12 +8,15 @@ class MangaDex extends MProvider {
final Client client = Client(source);
@override
Map<String, String> get headers =>
{"user-agent": getPreferenceValue(source.id, "custom_user_agent")};
@override
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;
final res = (await client.get(Uri.parse(url), headers: headers)).body;
return mangaRes(res);
}
@@ -22,7 +25,7 @@ class MangaDex extends MProvider {
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";
final ress = (await client.get(Uri.parse(url))).body;
final ress = (await client.get(Uri.parse(url), headers: headers)).body;
final mangaIds =
jsonPathToString(ress, r'$.data[*].relationships[*].id', '.--')
.split('.--');
@@ -32,7 +35,7 @@ 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;
final res = (await client.get(Uri.parse(newUrl), headers: headers)).body;
return mangaRes(res);
}
@@ -140,7 +143,7 @@ class MangaDex extends MProvider {
}
}
final res = (await client.get(Uri.parse(url))).body;
final res = (await client.get(Uri.parse(url), headers: headers)).body;
return mangaRes(res);
}
@@ -150,8 +153,10 @@ class MangaDex extends MProvider {
{"ongoing": 0, "completed": 1, "hiatus": 2, "cancelled": 3}
];
final res = (await client.get(Uri.parse(
"https://api.mangadex.org$url?includes[]=cover_art&includes[]=author&includes[]=artist")))
final res = (await client.get(
Uri.parse(
"https://api.mangadex.org$url?includes[]=cover_art&includes[]=author&includes[]=artist"),
headers: headers))
.body;
MManga manga = MManga();
manga.author = jsonPathToString(
@@ -224,8 +229,9 @@ class MangaDex extends MProvider {
@override
Future<List<String>> getPageList(String url) async {
final res = (await client
.get(Uri.parse("https://api.mangadex.org/at-home/server/$url")))
final res = (await client.get(
Uri.parse("https://api.mangadex.org/at-home/server/$url"),
headers: headers))
.body;
final host = getMapValue(res, "baseUrl");
@@ -322,7 +328,7 @@ class MangaDex extends MProvider {
String mangaId, int offset, String lang, int sourceId) async {
final url =
'https://api.mangadex.org/manga/$mangaId/feed?limit=500&offset=$offset&includes[]=user&includes[]=scanlation_group&order[volume]=desc&order[chapter]=desc&translatedLanguage[]=$lang&includeFuturePublishAt=0&includeEmptyPages=0${preferenceContentRating(sourceId)}';
final res = (await client.get(Uri.parse(url))).body;
final res = (await client.get(Uri.parse(url), headers: headers)).body;
return res;
}
@@ -553,6 +559,16 @@ class MangaDex extends MProvider {
"originalLanguage[]=ko"
],
values: []),
EditTextPreference(
key: "custom_user_agent",
title: "Set custom User-Agent",
summary: "",
value:
"Dalvik/2.1.0 (Linux; U; Android 14; 22081212UG Build/UKQ1.230917.001)",
dialogTitle: "Set custom User-Agent",
dialogMessage: "Specify a custom user agent",
text:
"Dalvik/2.1.0 (Linux; U; Android 14; 22081212UG Build/UKQ1.230917.001)"),
];
}

View File

@@ -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.75";
const _mangadexVersion = "0.0.8";
const _mangadexSourceCodeUrl =
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/src/all/mangadex/mangadex.dart";
String _iconUrl =