fix(ar/animeblkom): Add runCatching
to avoid player errors (#1929)
This commit is contained in:
@ -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'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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")
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user