diff --git a/lib/modules/webview/webview.dart b/lib/modules/webview/webview.dart index 1dc0e2f9..e7e6524f 100644 --- a/lib/modules/webview/webview.dart +++ b/lib/modules/webview/webview.dart @@ -161,7 +161,7 @@ class _MangaWebViewState extends ConsumerState { await InAppBrowser.openWithSystemBrowser( url: WebUri.uri(Uri.parse(_url))); } else if (value == 3) { - CookieManager.instance().getAllCookies(); + CookieManager.instance().deleteAllCookies(); } }), ], diff --git a/lib/services/http_service/cloudflare/providers/cookie_providers.dart b/lib/services/http_service/cloudflare/providers/cookie_providers.dart index a664cc86..29444a17 100644 --- a/lib/services/http_service/cloudflare/providers/cookie_providers.dart +++ b/lib/services/http_service/cloudflare/providers/cookie_providers.dart @@ -10,10 +10,11 @@ class CookieState extends _$CookieState { final cookieList = isar.settings .getSync(227)! .cookiesList! - .where((element) => element.source == source); + .where((element) => element.source == source) + .toList(); String cookie = ""; if (cookieList.isNotEmpty) { - cookie = cookieList.first.cookie!; + cookie = cookieList.first.cookie!.toString(); } return cookie; } @@ -26,6 +27,7 @@ class CookieState extends _$CookieState { cookieList.add(cookie); } } + cookieList.add(Cookie() ..source = source ..cookie = newCookie); diff --git a/lib/sources/source_list.dart b/lib/sources/source_list.dart index 824194ff..8550b5a6 100644 --- a/lib/sources/source_list.dart +++ b/lib/sources/source_list.dart @@ -6,10 +6,11 @@ import 'package:mangayomi/sources/src/fr/japscan/japscan_source.dart'; import 'package:mangayomi/sources/multisrc/mangathemesia/mangathemesia_source_list.dart'; import 'package:mangayomi/sources/multisrc/mmrcms/mmrcms_source_list.dart'; import 'package:mangayomi/sources/multisrc/madara/madara_source_list.dart'; +import 'package:mangayomi/sources/src/fr/mangakawaii/mangakawaii_source.dart'; List get sourcesList => _sourcesList; List _sourcesList = [ mangahereSource, - // mangakawaiiSource, + mangakawaiiSource, ...mangathemesiaSourcesList, ...comickSourcesList, ...mmrcmsSourcesList, diff --git a/lib/sources/src/fr/japscan/src/japscan.dart b/lib/sources/src/fr/japscan/src/japscan.dart index 5f4a9e11..f315698b 100644 --- a/lib/sources/src/fr/japscan/src/japscan.dart +++ b/lib/sources/src/fr/japscan/src/japscan.dart @@ -30,7 +30,7 @@ class Japscan extends MangaYomiServices { RegExp exp = RegExp(r'src="([^"]+)"'); String? srcValue = exp.firstMatch(images[0])?.group(1); - manga.imageUrl = '${getMangaBaseUrl(source)}l$srcValue'; + manga.imageUrl = '${getMangaBaseUrl(source)}$srcValue'; if (dom.querySelectorAll('.col-7 > p').isNotEmpty) { final stat = dom @@ -90,7 +90,7 @@ class Japscan extends MangaYomiServices { RegExp exp = RegExp(r'href="([^"]+)"'); String? srcValue = exp.firstMatch(ok)?.group(1); - chapterUrl.add('${getMangaBaseUrl(source)}l$srcValue'); + chapterUrl.add('${getMangaBaseUrl(source)}$srcValue'); } final chapterTitlee = @@ -118,7 +118,7 @@ class Japscan extends MangaYomiServices { required int page, required AutoDisposeFutureProviderRef ref}) async { final dom = await ref.watch(httpGetProvider( - url: "${getMangaBaseUrl(source)}l/", source: source, resDom: true) + url: "${getMangaBaseUrl(source)}/", source: source, resDom: true) .future) as Document?; if (dom!.querySelectorAll('#top_mangas_week > ul > li ').isNotEmpty) { final urls = dom @@ -127,7 +127,7 @@ class Japscan extends MangaYomiServices { .map((e) => e.attributes['href']) .toList(); for (var ok in urls) { - url.add("${getMangaBaseUrl(source)}l$ok"); + url.add("${getMangaBaseUrl(source)}$ok"); } name = dom .querySelectorAll( @@ -199,7 +199,7 @@ class Japscan extends MangaYomiServices { Match? match = regex.firstMatch(response!); String zjsurl = match!.group(1)!; baseUrl = response; - zjsUrl = "${getMangaBaseUrl(chapter.manga.value!.source!)}l/zjs/$zjsurl"; + zjsUrl = "${getMangaBaseUrl(chapter.manga.value!.source!)}/zjs/$zjsurl"; zjs(ref); await Future.doWhile(() async { await Future.delayed(const Duration(seconds: 1)); @@ -264,7 +264,7 @@ class Japscan extends MangaYomiServices { required int page, required AutoDisposeFutureProviderRef ref}) async { final dom = await ref.watch(httpGetProvider( - url: "${getMangaBaseUrl(source)}l/", source: source, resDom: true) + url: "${getMangaBaseUrl(source)}/", source: source, resDom: true) .future) as Document?; if (dom! .querySelectorAll( @@ -277,7 +277,7 @@ class Japscan extends MangaYomiServices { .map((e) => e.attributes['href']) .toList(); for (var ok in urls) { - url.add("${getMangaBaseUrl(source)}l$ok"); + url.add("${getMangaBaseUrl(source)}$ok"); } name = dom diff --git a/lib/sources/src/fr/mangakawaii/mangakawaii_source.dart b/lib/sources/src/fr/mangakawaii/mangakawaii_source.dart index dcd7b9e0..31c7566f 100644 --- a/lib/sources/src/fr/mangakawaii/mangakawaii_source.dart +++ b/lib/sources/src/fr/mangakawaii/mangakawaii_source.dart @@ -8,4 +8,5 @@ Source _mangakawaiiSource = Source( typeSource: TypeSource.single, logoUrl: 'https://www.mangakawaii.io/assets/img/logo.png', dateFormat: "dd.MM.yyyy", + isCloudflare: true, dateFormatLocale: "en_US"); diff --git a/lib/sources/src/fr/mangakawaii/src/mangakawaii.dart b/lib/sources/src/fr/mangakawaii/src/mangakawaii.dart index 3d652880..d6393b0f 100644 --- a/lib/sources/src/fr/mangakawaii/src/mangakawaii.dart +++ b/lib/sources/src/fr/mangakawaii/src/mangakawaii.dart @@ -141,8 +141,9 @@ class MangaKawaii extends MangaYomiServices { .querySelectorAll('a > div > div.hot-manga__item-name') .map((e) => e.innerHtml) .toList(); - for (var i = 0; i < name.length; i++) { - image.add(""); + for (var ur in url) { + image.add( + "https://cdn.mangakawaii.pics/uploads$ur/cover/cover_250x350.jpg"); } } return mangaRes(); @@ -155,7 +156,7 @@ class MangaKawaii extends MangaYomiServices { required AutoDisposeFutureProviderRef ref}) async { final dom = await ref.watch(httpGetProvider( url: - 'https://www.mangakawaii.io/search?query=${query.trim()}&search_type=manga', + 'https://www.mangakawaii.io/search?query=${query.trim()}&search_type=manga&page=1', source: source, resDom: true) .future) as Document?; diff --git a/lib/utils/headers.dart b/lib/utils/headers.dart index 9b507e9d..3ea5a35c 100644 --- a/lib/utils/headers.dart +++ b/lib/utils/headers.dart @@ -11,33 +11,26 @@ Map headers(HeadersRef ref, {String source = ""}) { source = source.toLowerCase(); final cookie = ref.watch(cookieStateProvider(source)); final userAgent = isar.settings.getSync(227)!.userAgent!; - return source == 'mangakawaii' - ? { - 'Referer': 'https://www.mangakawaii.io/', - 'User-Agent': - 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/8\$userAgentRandomizer1.0.4\$userAgentRandomizer3.1\$userAgentRandomizer2 Safari/537.36', - 'Accept-Language': 'fr' - } - : source == 'mangahere' - ? {"Referer": "${getMangaBaseUrl(source)}/", "Cookie": "isAdult=1"} - : source == 'comick' - ? { - 'Referer': "${getMangaBaseUrl(source)}/", - 'User-Agent': 'Tachiyomi $userAgent' - } - : source == "japscan" - ? { - 'User-Agent': userAgent, - 'Referer': "${getMangaBaseUrl(source)}/", - "Cookie": cookie - } - : source == 'sushiscan' - ? { - 'User-Agent': userAgent, - 'Referer': "${getMangaBaseUrl(source)}/", - "Cookie": cookie - } - : getMangaTypeSource(source) == TypeSource.madara - ? {"Referer": "${getMangaBaseUrl(source)}/"} - : {}; + final baseUrl = getMangaBaseUrl(source); + return getMangaTypeSource(source) == TypeSource.madara + ? {"Referer": "$baseUrl/"} + : switch (source) { + "mangakawaii" => { + 'Referer': '$baseUrl/', + 'User-Agent': userAgent, + 'Accept-Language': 'fr' + }, + "mangahere" => {"Referer": "$baseUrl/", "Cookie": "isAdult=1"}, + "japscan" => { + 'User-Agent': userAgent, + 'Referer': "$baseUrl/", + "Cookie": cookie + }, + "sushiscan" => { + 'User-Agent': userAgent, + 'Referer': "$baseUrl/", + "Cookie": cookie + }, + _ => {}, + }; }