From 4c35f6ffa5a5e6abe185d51398dd633b1a850377 Mon Sep 17 00:00:00 2001 From: Fallah Andy Prakasa Date: Wed, 19 Feb 2025 22:50:37 +0700 Subject: [PATCH] fix(anime): fixing get video list otakudesu --- dart/anime/src/id/otakudesu/otakudesu.dart | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/dart/anime/src/id/otakudesu/otakudesu.dart b/dart/anime/src/id/otakudesu/otakudesu.dart index c9269896..aaadc436 100644 --- a/dart/anime/src/id/otakudesu/otakudesu.dart +++ b/dart/anime/src/id/otakudesu/otakudesu.dart @@ -123,8 +123,8 @@ class OtakuDesu extends MProvider { "action": action })) .body; - final html = utf8.decode( - base64Url.decode(substringBefore(substringAfter(res, ":\""), '"'))); + final resJson = json.decode(res); + final html = utf8.decode(base64Url.decode(resJson["data"])); String url = xpath(html, '//iframe/@src').first; if (url.contains("yourupload")) { final id = substringBefore(substringAfter(url, "id="), "&"); @@ -136,10 +136,10 @@ class OtakuDesu extends MProvider { final response = (await Client().get(Uri.parse(url))); final res = response.body; final script = - xpath(res, '//script[contains(text(), "sources")]/text()').first; - final videoUrl = substringBefore( - substringAfter(substringAfter(script, "sources:[{"), "file':'"), - "'"); + xpath(res, '//script[contains(text(), "file")]/text()').first; + final regex = RegExp(r'file:"(https?://[^"]+)"'); + final match = regex.firstMatch(script); + final videoUrl = match.group(1); if (videoUrl.endsWith(".mp4")) { MVideo video = MVideo(); video