Animeworld: Add server preference (#1641)

* Add server preference

* Remove comments
This commit is contained in:
Secozzi 2023-05-24 20:38:40 +02:00 committed by GitHub
parent 0aa92d6d74
commit 6bfd1da57c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 28 additions and 18 deletions

View File

@ -6,7 +6,7 @@ ext {
extName = 'ANIMEWORLD.tv' extName = 'ANIMEWORLD.tv'
pkgNameSuffix = 'it.animeworld' pkgNameSuffix = 'it.animeworld'
extClass = '.ANIMEWORLD' extClass = '.ANIMEWORLD'
extVersionCode = 25 extVersionCode = 26
libVersion = '13' libVersion = '13'
} }

View File

@ -193,21 +193,15 @@ class ANIMEWORLD : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
override fun videoUrlParse(document: Document) = throw Exception("not used") override fun videoUrlParse(document: Document) = throw Exception("not used")
override fun List<Video>.sort(): List<Video> { override fun List<Video>.sort(): List<Video> {
val quality = preferences.getString("preferred_quality", null) val quality = preferences.getString("preferred_quality", "1080")!!
if (quality != null) { val server = preferences.getString("preferred_server", "Animeworld server")!!
val newList = mutableListOf<Video>()
var preferred = 0 return sortedWith(
for (video in this) { compareBy(
if (video.quality.contains(quality)) { { it.quality.lowercase().contains(server.lowercase()) },
newList.add(preferred, video) { it.quality.lowercase().contains(quality.lowercase()) },
preferred++ ),
} else { ).reversed()
newList.add(video)
}
}
return newList
}
return this
} }
// search // search
@ -530,8 +524,8 @@ class ANIMEWORLD : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
val videoQualityPref = ListPreference(screen.context).apply { val videoQualityPref = ListPreference(screen.context).apply {
key = "preferred_quality" key = "preferred_quality"
title = "Preferred quality" title = "Preferred quality"
entries = arrayOf("1080p", "720p", "480p", "360p", "Doodstream", "StreamTape") entries = arrayOf("1080p", "720p", "480p", "360p")
entryValues = arrayOf("1080", "720", "480", "360", "Doodstream", "StreamTape") entryValues = arrayOf("1080", "720", "480", "360")
setDefaultValue("1080") setDefaultValue("1080")
summary = "%s" summary = "%s"
@ -542,7 +536,23 @@ class ANIMEWORLD : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
preferences.edit().putString(key, entry).commit() preferences.edit().putString(key, entry).commit()
} }
} }
val serverPref = ListPreference(screen.context).apply {
key = "preferred_server"
title = "Preferred server"
entries = arrayOf("Animeworld server", "FileMoon", "StreamHide", "StreamSB", "Doodstream", "StreamTape")
entryValues = arrayOf("Animeworld server", "FileMoon", "StreamHide", "StreamSB", "Doodstream", "StreamTape")
setDefaultValue("Animeworld server")
summary = "%s"
setOnPreferenceChangeListener { _, newValue ->
val selected = newValue as String
val index = findIndexOfValue(selected)
val entry = entryValues[index] as String
preferences.edit().putString(key, entry).commit()
}
}
screen.addPreference(videoQualityPref) screen.addPreference(videoQualityPref)
screen.addPreference(serverPref)
} }
// Utilities // Utilities