fix(ar/animeblkom): Fix video extractor + add new domain (#2633)

This commit is contained in:
Claudemirovsky 2023-12-11 09:58:10 -03:00 committed by GitHub
parent a24cafd923
commit 3c08ce6c2f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 10 deletions

View File

@ -7,14 +7,13 @@ ext {
extName = 'أنمي بالكوم' extName = 'أنمي بالكوم'
pkgNameSuffix = 'ar.animeblkom' pkgNameSuffix = 'ar.animeblkom'
extClass = '.AnimeBlkom' extClass = '.AnimeBlkom'
extVersionCode = 15 extVersionCode = 16
libVersion = '13' libVersion = '13'
} }
dependencies { dependencies {
implementation(project(':lib-mp4upload-extractor')) implementation(project(':lib-mp4upload-extractor'))
implementation(project(":lib-okru-extractor")) implementation(project(":lib-okru-extractor"))
implementation("dev.datlag.jsunpacker:jsunpacker:1.0.1")
} }
apply from: "$rootDir/common.gradle" apply from: "$rootDir/common.gradle"

View File

@ -146,16 +146,19 @@ class AnimeBlkom : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
} }
} }
private val okruExtractor by lazy { OkruExtractor(client) }
private val mp4uploadExtractor by lazy { Mp4uploadExtractor(client) }
private fun extractVideos(element: Element): List<Video> { private fun extractVideos(element: Element): List<Video> {
val url = element.attr("data-src").replace("http://", "https://") val url = element.attr("data-src").replace("http://", "https://")
return when { return when {
"new.vid4up" in url -> { ".vid4up" in url || "Blkom" in element.text() -> {
val urlResponse = client.newCall(GET(url, headers)) val videoDoc = client.newCall(GET(url, headers)).execute()
.execute().asJsoup() .use { it.asJsoup() }
urlResponse.select(videoListSelector()).map(::videoFromElement) videoDoc.select(videoListSelector()).map(::videoFromElement)
} }
"ok.ru" in url -> OkruExtractor(client).videosFromUrl(url) "ok.ru" in url -> okruExtractor.videosFromUrl(url)
"mp4upload" in url -> Mp4uploadExtractor(client).videosFromUrl(url, headers) "mp4upload" in url -> mp4uploadExtractor.videosFromUrl(url, headers)
else -> emptyList() else -> emptyList()
} }
} }
@ -164,7 +167,7 @@ class AnimeBlkom : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
override fun videoFromElement(element: Element): Video { override fun videoFromElement(element: Element): Video {
val videoUrl = element.attr("src") val videoUrl = element.attr("src")
return Video(videoUrl, "Blkbom - " + element.attr("label"), videoUrl, headers = headers) return Video(videoUrl, "Blkom - " + element.attr("label"), videoUrl, headers)
} }
override fun videoUrlParse(document: Document) = throw Exception("not used") override fun videoUrlParse(document: Document) = throw Exception("not used")
@ -243,7 +246,7 @@ class AnimeBlkom : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
private const val PREF_DOMAIN_KEY = "pref_domain_key" private const val PREF_DOMAIN_KEY = "pref_domain_key"
private const val PREF_DOMAIN_TITLE = "Preferred domain" private const val PREF_DOMAIN_TITLE = "Preferred domain"
private const val PREF_DOMAIN_DEFAULT = "https://animeblkom.net" private const val PREF_DOMAIN_DEFAULT = "https://animeblkom.net"
private val PREF_DOMAIN_ENTRIES = arrayOf("animeblkom.net", "blkom.com") private val PREF_DOMAIN_ENTRIES = arrayOf("animeblkom.net", "animeblkom.tv", "blkom.com")
private val PREF_DOMAIN_VALUES by lazy { private val PREF_DOMAIN_VALUES by lazy {
PREF_DOMAIN_ENTRIES.map { "https://$it" }.toTypedArray() PREF_DOMAIN_ENTRIES.map { "https://$it" }.toTypedArray()
} }