diff --git a/src/en/ask4movie/build.gradle b/src/en/ask4movie/build.gradle index 795ceb4e5..fa11b5eea 100644 --- a/src/en/ask4movie/build.gradle +++ b/src/en/ask4movie/build.gradle @@ -6,7 +6,7 @@ ext { extName = 'Ask4Movie' pkgNameSuffix = 'en.ask4movie' extClass = '.Ask4Movie' - extVersionCode = 2 + extVersionCode = 3 libVersion = '13' } diff --git a/src/en/ask4movie/src/eu/kanade/tachiyomi/animeextension/en/ask4movie/Ask4Movie.kt b/src/en/ask4movie/src/eu/kanade/tachiyomi/animeextension/en/ask4movie/Ask4Movie.kt index add3ad656..41300d04f 100644 --- a/src/en/ask4movie/src/eu/kanade/tachiyomi/animeextension/en/ask4movie/Ask4Movie.kt +++ b/src/en/ask4movie/src/eu/kanade/tachiyomi/animeextension/en/ask4movie/Ask4Movie.kt @@ -645,7 +645,14 @@ class Ask4Movie : ConfigurableAnimeSource, ParsedAnimeHttpSource() { val bodyString = client.newCall( GET(season.select("div.top-item a").attr("href")) ).execute().body!!.string() - val episodeUrlList = episodeListFromSeason(bodyString).reversed() + val document = Jsoup.parse(bodyString) + + val episodeUrlList = if (document.selectFirst("ul.group-links-list") == null) { + episodeListFromSeason(bodyString).reversed() + } else { + episodeListFromList(document).reversed() + } + for (ep in episodeUrlList) { val episode = SEpisode.create() episode.name = ep.name @@ -673,6 +680,18 @@ class Ask4Movie : ConfigurableAnimeSource, ParsedAnimeHttpSource() { return episodeList } + private fun episodeListFromList(document: Document): List { + val seasonNumber = document.selectFirst("div.top-bar-video > a.video-title").text() + .substringAfterLast("(").substringBeforeLast(")") + + return document.select("ul.group-links-list > li").map { + EpisodeUrl( + "$seasonNumber Episode ${it.selectFirst("a").text()}", + it.selectFirst("a").attr("data-embed-src") + ) + } + } + // https://github.com/recloudstream/cloudstream-extensions/blob/master/Ask4Movie/src/main/kotlin/com/lagradost/Ask4MovieProvider.kt private fun episodeListFromSeason(bodyString: String): List { var soup = Jsoup.parse(bodyString) @@ -681,6 +700,7 @@ class Ask4Movie : ConfigurableAnimeSource, ParsedAnimeHttpSource() { val episodeList = mutableListOf() // Get Episodes + val playlistDoc = client.newCall(GET(iframeUrl)).execute().asJsoup() val episodeRegex = Regex("""([^\n\t]+) S(\d+).E(\d+)""") diff --git a/src/en/ask4movie/src/eu/kanade/tachiyomi/animeextension/en/ask4movie/extractors/FilemoonExtractor.kt b/src/en/ask4movie/src/eu/kanade/tachiyomi/animeextension/en/ask4movie/extractors/FilemoonExtractor.kt index 3d61495ff..52414521f 100644 --- a/src/en/ask4movie/src/eu/kanade/tachiyomi/animeextension/en/ask4movie/extractors/FilemoonExtractor.kt +++ b/src/en/ask4movie/src/eu/kanade/tachiyomi/animeextension/en/ask4movie/extractors/FilemoonExtractor.kt @@ -19,27 +19,46 @@ data class CaptionElement( class FilemoonExtractor(private val client: OkHttpClient) { fun videoFromUrl(url: String): List