From 6863c8a8ec1ea37f15ad0e7833f9719b6dba592d Mon Sep 17 00:00:00 2001 From: kodjomoustapha <107993382+kodjodevf@users.noreply.github.com> Date: Tue, 13 Aug 2024 10:12:07 +0100 Subject: [PATCH] fix #77 --- dart/anime/src/en/aniwave/aniwave.dart | 24 ++++++++++++++++++++++-- dart/anime/src/en/aniwave/source.dart | 2 +- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/dart/anime/src/en/aniwave/aniwave.dart b/dart/anime/src/en/aniwave/aniwave.dart index bd989823..e2045109 100644 --- a/dart/anime/src/en/aniwave/aniwave.dart +++ b/dart/anime/src/en/aniwave/aniwave.dart @@ -104,8 +104,28 @@ class Aniwave extends MProvider { final statusList = [ {"Releasing": 0, "Completed": 1} ]; - final res = (await client.get(Uri.parse("$baseUrl$url"))).body; - MManga anime = MManga(); + final response = + await Client(source, json.encode({"followRedirects": false})) + .get(Uri.parse("$baseUrl$url")); + String res = response.body; + if (getMapValue(json.encode(response.headers), "location") + .contains("/filter?keyword=")) { + res = (await Client().get(Uri.parse("$baseUrl$url"))).body; + final animeUrls = parseHtml(res) + .selectFirst("div.ani.items > div.item") + .select("a[href]") + .where((MElement element) => (element.getHref as String) + .startsWith("${substringBefore(url, ".")}.")) + .toList(); + if (animeUrls.isNotEmpty) { + res = (await client.get(Uri.parse("$baseUrl${animeUrls[0].getHref}"))) + .body; + } else { + throw "Anime url not found"; + } + } + + var anime = MManga(); final status = xpath(res, '//div[contains(text(),"Status")]/span/text()'); if (status.isNotEmpty) { anime.status = parseStatus(status.first, statusList); diff --git a/dart/anime/src/en/aniwave/source.dart b/dart/anime/src/en/aniwave/source.dart index 4d36ee34..334dc201 100644 --- a/dart/anime/src/en/aniwave/source.dart +++ b/dart/anime/src/en/aniwave/source.dart @@ -1,7 +1,7 @@ import '../../../../../model/source.dart'; Source get aniwave => _aniwave; -const _aniwaveVersion = "0.0.85"; +const _aniwaveVersion = "0.0.9"; const _aniwaveCodeUrl = "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/en/aniwave/aniwave.dart"; Source _aniwave = Source(