[animeowl] fix: Quality preference match #880

Open
khaled-0 wants to merge 2 commits from khaled-0/patch-1 into main
3 changed files with 14 additions and 6 deletions

View file

@ -1,7 +1,7 @@
ext { ext {
extName = 'AnimeOwl' extName = 'AnimeOwl'
extClass = '.AnimeOwl' extClass = '.AnimeOwl'
extVersionCode = 23 extVersionCode = 24
} }
apply from: "$rootDir/common.gradle" apply from: "$rootDir/common.gradle"

View file

@ -129,7 +129,7 @@ class AnimeOwl : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
val document = response.asJsoup() val document = response.asJsoup()
val sub = document.select("#anime-cover-sub-content .episode-node").mapIndexed { idx, it -> val sub = document.select("#anime-cover-sub-content .episode-node").mapIndexed { idx, it ->
EpisodeResponse.Episode( EpisodeResponse.Episode(
id = it.attr("title").toDoubleOrNull(), id = idx.toDouble(),
episodeIndex = idx.toString(), episodeIndex = idx.toString(),
name = it.attr("title"), name = it.attr("title"),
lang = "Sub", lang = "Sub",
@ -138,7 +138,7 @@ class AnimeOwl : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
} }
val dub = document.select("#anime-cover-dub-content .episode-node").mapIndexed { idx, it -> val dub = document.select("#anime-cover-dub-content .episode-node").mapIndexed { idx, it ->
EpisodeResponse.Episode( EpisodeResponse.Episode(
id = it.attr("title").toDoubleOrNull(), id = idx.toDouble(),
episodeIndex = idx.toString(), episodeIndex = idx.toString(),
name = it.attr("title"), name = it.attr("title"),
lang = "Dub", lang = "Dub",
@ -301,6 +301,6 @@ class AnimeOwl : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
private const val PREF_QUALITY_KEY = "preferred_quality" private const val PREF_QUALITY_KEY = "preferred_quality"
private const val PREF_QUALITY_TITLE = "Preferred quality" private const val PREF_QUALITY_TITLE = "Preferred quality"
private const val PREF_QUALITY_DEFAULT = "1080p" private const val PREF_QUALITY_DEFAULT = "1080p"
private val PREF_QUALITY_LIST = arrayOf("1080p", "720p", "480p", "360p") private val PREF_QUALITY_LIST = arrayOf("2K", "1080p", "720p", "480p", "360p")
} }
} }

View file

@ -48,8 +48,13 @@ class OwlExtractor(private val client: OkHttpClient, private val baseUrl: String
luffy.forEach { stream -> luffy.forEach { stream ->
cuong-tran commented 2025-04-11 10:21:39 -05:00 (Migrated from github.com)

wouldn't this only add an extra "p" to the video's title? What does it fix? What was the issue?

wouldn't this only add an extra "p" to the video's title? What does it fix? What was the issue?
khaled-0 commented 2025-04-11 10:39:46 -05:00 (Migrated from github.com)

No this is the 480p 1080p quality. The download isn't picking 1080p as the prefered quality. that's the issue

however there's a new 2K option which should also be added and accounted for.
This commit would fix the prefered quality issue as I've tested. however there's another bug that the page 2 of the extension doesn't load.

No this is the 480p 1080p quality. The download isn't picking 1080p as the prefered quality. that's the issue however there's a new 2K option which should also be added and accounted for. This commit would fix the prefered quality issue as I've tested. however there's another bug that the page 2 of the extension doesn't load.
noRedirectClient.newCall(GET("${stream.url}$jwt")).execute() noRedirectClient.newCall(GET("${stream.url}$jwt")).execute()
.use { it.headers["Location"] }?.let { .use { it.headers["Location"] }?.let {
val resolution = when {
stream.resolution?.endsWith("0") == true -> "${stream.resolution}p"
else -> stream.resolution
}
videoList.add( videoList.add(
Video(it, "${link.lang} Luffy:${stream.resolution}", it), Video(it, "${link.lang} Luffy:${resolution ?: "Unknown"}", it),
) )
} }
} }
@ -83,7 +88,10 @@ class OwlExtractor(private val client: OkHttpClient, private val baseUrl: String
return client.newCall(GET(url)).execute().let { it -> return client.newCall(GET(url)).execute().let { it ->
if (it.isSuccessful) { if (it.isSuccessful) {
it.parseAs<Stream>().url.let { it.parseAs<Stream>().url.let {
playlistUtils.extractFromHls(it, videoNameGen = { qty -> "$lang $server:$qty" }) playlistUtils.extractFromHls(
it,
videoNameGen = { qty -> "$lang $server:$qty" },
)
} }
} else { } else {
emptyList() emptyList()