Merge pull request #19 from WebDitto/pt/animeplayer

fix(pt/animeplayer): Fixed video list for pt/AnimePlayer
This commit is contained in:
almightyhak 2024-07-01 16:11:37 +07:00 committed by GitHub
commit fe97a3ed89
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 27 additions and 23 deletions

View file

@ -3,7 +3,7 @@ ext {
extClass = '.AnimePlayer' extClass = '.AnimePlayer'
themePkg = 'dooplay' themePkg = 'dooplay'
baseUrl = 'https://animeplayer.com.br' baseUrl = 'https://animeplayer.com.br'
overrideVersionCode = 3 overrideVersionCode = 4
isNsfw = true isNsfw = true
} }

View file

@ -47,29 +47,14 @@ class AnimePlayer : DooPlay(
} }
// ============================== Episodes ============================== // ============================== Episodes ==============================
override fun episodeListParse(response: Response): List<SEpisode> { override fun episodeListParse(response: Response) = super.episodeListParse(response).reversed()
val doc = getRealAnimeDoc(response.asJsoup())
val seasonList = doc.select(seasonListSelector)
return if (seasonList.size < 1) {
SEpisode.create().apply {
setUrlWithoutDomain(doc.location())
episode_number = 1F
name = episodeMovieText
}.let(::listOf)
} else {
seasonList.flatMap(::getSeasonEpisodes)
}
}
override fun getSeasonEpisodes(season: Element): List<SEpisode> { override fun getSeasonEpisodes(season: Element): List<SEpisode> {
val seasonName = season.selectFirst("span.title")!!.text() val seasonName = season.selectFirst("span.title")!!.text()
return season.select(episodeListSelector()).mapNotNull { element -> return season.select(episodeListSelector()).mapNotNull { element ->
try { runCatching {
episodeFromElement(element, seasonName) episodeFromElement(element, seasonName)
} catch (e: Throwable) { }.onFailure { it.printStackTrace() }.getOrNull()
e.printStackTrace()
null
}
} }
} }
@ -91,17 +76,36 @@ class AnimePlayer : DooPlay(
override val prefQualityValues = arrayOf("360p", "720p") override val prefQualityValues = arrayOf("360p", "720p")
override val prefQualityEntries = prefQualityValues override val prefQualityEntries = prefQualityValues
private val bloggerExtractor by lazy { BloggerExtractor(client) }
override fun videoListParse(response: Response): List<Video> { override fun videoListParse(response: Response): List<Video> {
val playerUrl = response.asJsoup() val document = response.asJsoup()
val playerUrl = document
.selectFirst("div.playex iframe") .selectFirst("div.playex iframe")
?.absUrl("src") ?.absUrl("src")
?.toHttpUrlOrNull() ?.toHttpUrlOrNull()
?: return emptyList() ?: return emptyList()
val quality = document
.selectFirst("span.qualityx")
?.text()
?.substringAfterLast(" ")
?: "Default"
val url = playerUrl.queryParameter("link") ?: playerUrl.toString() val url = playerUrl.queryParameter("link") ?: playerUrl.toString()
return bloggerExtractor.videosFromUrl(url, headers) return getVideosFromURL(url, quality)
}
private val bloggerExtractor by lazy { BloggerExtractor(client) }
private fun getVideosFromURL(url: String, quality: String): List<Video> {
return when {
"cdn.animeson.com.br" in url -> {
listOf(
Video(url, quality, url, headers),
)
}
"blogger.com" in url -> bloggerExtractor.videosFromUrl(url, headers)
else -> emptyList()
}
} }
// ============================== Filters =============================== // ============================== Filters ===============================