fix(ar/animeblkom): Add runCatching to avoid player errors (#1929)

This commit is contained in:
adly98
2023-07-20 12:32:42 +03:00
committed by GitHub
parent 70b2b1406e
commit b49867fc4a
2 changed files with 16 additions and 14 deletions

View File

@ -5,7 +5,7 @@ ext {
extName = 'أنمي بالكوم' extName = 'أنمي بالكوم'
pkgNameSuffix = 'ar.animeblkom' pkgNameSuffix = 'ar.animeblkom'
extClass = '.AnimeBlkom' extClass = '.AnimeBlkom'
extVersionCode = 10 extVersionCode = 11
libVersion = '13' libVersion = '13'
} }

View File

@ -97,20 +97,22 @@ class AnimeBlkom : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
override fun videoListParse(response: Response): List<Video> { override fun videoListParse(response: Response): List<Video> {
val document = response.asJsoup() val document = response.asJsoup()
return document.select("span.server a").mapNotNull { return document.select("span.server a").mapNotNull {
val url = it.attr("data-src").replace("http://", "https://") runCatching { extractVideos(it) }.getOrElse { emptyList() }
when {
"new.vid4up" in url -> {
val urlResponse = client.newCall(GET(url, headers))
.execute().asJsoup()
urlResponse.select(videoListSelector()).map(::videoFromElement)
}
"ok.ru" in url -> OkruExtractor(client).videosFromUrl(url)
"mp4upload" in url -> Mp4uploadExtractor(client).videosFromUrl(url, headers)
else -> null
}
}.flatten() }.flatten()
} }
private fun extractVideos(element: Element): List<Video> {
val url = element.attr("data-src").replace("http://", "https://")
return when {
"new.vid4up" in url -> {
val urlResponse = client.newCall(GET(url, headers))
.execute().asJsoup()
urlResponse.select(videoListSelector()).map(::videoFromElement)
}
"ok.ru" in url -> OkruExtractor(client).videosFromUrl(url)
"mp4upload" in url -> Mp4uploadExtractor(client).videosFromUrl(url, headers)
else -> null
} ?: emptyList()
}
override fun videoListSelector() = "source" override fun videoListSelector() = "source"
override fun videoFromElement(element: Element): Video { override fun videoFromElement(element: Element): Video {
@ -168,7 +170,7 @@ class AnimeBlkom : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
} }
// =============================== Latest =============================== // =============================== Latest ===============================
override fun latestUpdatesNextPageSelector(): String? = throw Exception("Not used") override fun latestUpdatesNextPageSelector(): String = throw Exception("Not used")
override fun latestUpdatesFromElement(element: Element): SAnime = throw Exception("Not used") override fun latestUpdatesFromElement(element: Element): SAnime = throw Exception("Not used")