From 1195c6cd865679804d455da8b551f3a565d2c891 Mon Sep 17 00:00:00 2001 From: kodjomoustapha <107993382+kodjodevf@users.noreply.github.com> Date: Mon, 9 Dec 2024 12:21:14 +0100 Subject: [PATCH 1/2] AnimePahe: add cookie to headers --- dart/anime/src/en/animepahe/animepahe.dart | 34 +++++++++++++--------- dart/anime/src/en/animepahe/source.dart | 2 +- 2 files changed, 22 insertions(+), 14 deletions(-) diff --git a/dart/anime/src/en/animepahe/animepahe.dart b/dart/anime/src/en/animepahe/animepahe.dart index 189d6ada..262788ad 100644 --- a/dart/anime/src/en/animepahe/animepahe.dart +++ b/dart/anime/src/en/animepahe/animepahe.dart @@ -12,6 +12,9 @@ class AnimePahe extends MProvider { @override String get baseUrl => getPreferenceValue(source.id, "preferred_domain"); + @override + Map get headers => {'cookie': '__ddg1_=;__ddg2_=;'}; + @override Future getPopular(int page) async { return await getLatestUpdates(page); @@ -19,8 +22,9 @@ class AnimePahe extends MProvider { @override Future getLatestUpdates(int page) async { - final res = - (await client.get(Uri.parse("$baseUrl/api?m=airing&page=$page"))).body; + final res = (await client.get(Uri.parse("$baseUrl/api?m=airing&page=$page"), + headers: headers)) + .body; final jsonResult = json.decode(res); final hasNextPage = jsonResult["current_page"] < jsonResult["last_page"]; List animeList = []; @@ -37,9 +41,10 @@ class AnimePahe extends MProvider { @override Future search(String query, int page, FilterList filterList) async { - final res = - (await client.get(Uri.parse("$baseUrl/api?m=search&l=8&q=$query"))) - .body; + final res = (await client.get( + Uri.parse("$baseUrl/api?m=search&l=8&q=$query"), + headers: headers)) + .body; final jsonResult = json.decode(res); List animeList = []; for (var item in jsonResult["data"]) { @@ -61,9 +66,10 @@ class AnimePahe extends MProvider { final id = substringBefore(substringAfterLast(url, "?anime_id="), "&name="); final name = substringAfterLast(url, "&name="); final session = await getSession(name, id); - final res = - (await client.get(Uri.parse("$baseUrl/anime/$session?anime_id=$id"))) - .body; + final res = (await client.get( + Uri.parse("$baseUrl/anime/$session?anime_id=$id"), + headers: headers)) + .body; final document = parseHtml(res); final status = (document.xpathFirst('//div/p[contains(text(),"Status:")]/text()') ?? @@ -91,7 +97,7 @@ class AnimePahe extends MProvider { anime.description += "\n\n$synonyms"; } final epUrl = "$baseUrl/api?m=release&id=$session&sort=episode_desc&page=1"; - final resEp = (await client.get(Uri.parse(epUrl))).body; + final resEp = (await client.get(Uri.parse(epUrl), headers: headers)).body; final episodes = await recursivePages(epUrl, resEp, session); anime.chapters = episodes; @@ -114,15 +120,17 @@ class AnimePahe extends MProvider { } if (hasNextPage) { final newUrl = "${substringBeforeLast(url, "&page=")}&page=${page + 1}"; - final newRes = (await client.get(Uri.parse(newUrl))).body; + final newRes = + (await client.get(Uri.parse(newUrl), headers: headers)).body; animeList.addAll(await recursivePages(newUrl, newRes, session)); } return animeList; } Future getSession(String title, String animeId) async { - final res = - (await client.get(Uri.parse("$baseUrl/api?m=search&q=$title"))).body; + final res = (await client.get(Uri.parse("$baseUrl/api?m=search&q=$title"), + headers: headers)) + .body; return substringBefore( substringAfter( substringAfter(res, "\"id\":$animeId"), "\"session\":\""), @@ -134,7 +142,7 @@ class AnimePahe extends MProvider { //by default we use rhttp package but it does not support `followRedirects` //so setting `useDartHttpClient` to true allows us to use a Dart http package that supports `followRedirects` final client = Client(source, json.encode({"useDartHttpClient": true})); - final res = (await client.get(Uri.parse("$baseUrl$url"))); + final res = (await client.get(Uri.parse("$baseUrl$url"), headers: headers)); final document = parseHtml(res.body); final downloadLinks = document.select("div#pickDownload > a"); final buttons = document.select("div#resolutionMenu > button"); diff --git a/dart/anime/src/en/animepahe/source.dart b/dart/anime/src/en/animepahe/source.dart index 9a52802d..2c859425 100644 --- a/dart/anime/src/en/animepahe/source.dart +++ b/dart/anime/src/en/animepahe/source.dart @@ -1,7 +1,7 @@ import '../../../../../model/source.dart'; Source get animepaheSource => _animepaheSource; -const _animepaheVersion = "0.0.4"; +const _animepaheVersion = "0.0.45"; const _animepaheSourceCodeUrl = "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/en/animepahe/animepahe.dart"; Source _animepaheSource = Source( From f1d68deb060142b7da224209504fcc769d91aaac Mon Sep 17 00:00:00 2001 From: kodjomoustapha <107993382+kodjodevf@users.noreply.github.com> Date: Mon, 9 Dec 2024 14:06:39 +0100 Subject: [PATCH 2/2] Torrentio: do not show upcoming episodes --- javascript/anime/src/all/torrentio.js | 6 +++--- javascript/anime/src/all/torrentioanime.js | 6 ++---- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/javascript/anime/src/all/torrentio.js b/javascript/anime/src/all/torrentio.js index 0b2f1742..db8f404f 100644 --- a/javascript/anime/src/all/torrentio.js +++ b/javascript/anime/src/all/torrentio.js @@ -6,7 +6,7 @@ const mangayomiSources = [{ "iconUrl": "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/all.torrentio.png", "typeSource": "torrent", "isManga": false, - "version": "0.0.2", + "version": "0.0.25", "appMinVerReq": "0.3.8", "pkgPath": "anime/src/all/torrentio.js" }]; @@ -161,14 +161,14 @@ class DefaultExtension extends MProvider { case "show": const videos = meta.videos || []; return videos + .filter(video => (video.firstAired ? new Date(video.firstAired) : Date.now()) < Date.now()) .map(video => { - const firstAired = video.firstAired ? new Date(video.firstAired) : new Date(); + const firstAired = video.firstAired ? new Date(video.firstAired) : Date.now(); return { url: `/stream/series/${video.id}.json`, dateUpload: firstAired.valueOf().toString(), name: `S${(video.season || "").toString().trim()}:E${(video.number || "").toString()} - ${video.name || ""}`, - scanlator: firstAired > Date.now() ? "Upcoming" : "" }; }) .sort((a, b) => { diff --git a/javascript/anime/src/all/torrentioanime.js b/javascript/anime/src/all/torrentioanime.js index e04777ef..475f7947 100644 --- a/javascript/anime/src/all/torrentioanime.js +++ b/javascript/anime/src/all/torrentioanime.js @@ -6,7 +6,7 @@ const mangayomiSources = [{ "iconUrl": "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/all.torrentio.png", "typeSource": "torrent", "isManga": false, - "version": "0.0.15", + "version": "0.0.2", "appMinVerReq": "0.3.8", "pkgPath": "anime/src/all/torrentioanime.js" }]; @@ -247,10 +247,9 @@ class DefaultExtension extends MProvider { case "series": { const videos = episodeList.meta.videos; return videos - .filter(video => video.thumbnail !== null) + .filter(video => video.thumbnail !== null && ((video.released ? new Date(video.released) : Date.now()) < Date.now())) .map(video => { const releaseDate = video.released ? new Date(video.released) : Date.now(); - const upcoming = releaseDate > Date.now() ? "Upcoming" : ""; return { url: `/stream/series/${video.id}.json`, dateUpload: releaseDate.valueOf().toString(), @@ -258,7 +257,6 @@ class DefaultExtension extends MProvider { ?.replace(/^Episode /, "") ?.replace(/^\d+\s*/, "") ?.trim()}`, - scanlator: upcoming, }; }) .reverse();