Nine: Fix sorting and filter masterplaylist (#1349)

and fix some warnings
This commit is contained in:
Samfun75
2023-03-02 09:37:22 +03:00
committed by GitHub
parent 319d072a34
commit 01560e50e4
2 changed files with 9 additions and 6 deletions

View File

@ -6,7 +6,7 @@ ext {
extName = '9anime' extName = '9anime'
pkgNameSuffix = 'en.nineanime' pkgNameSuffix = 'en.nineanime'
extClass = '.NineAnime' extClass = '.NineAnime'
extVersionCode = 32 extVersionCode = 33
libVersion = '13' libVersion = '13'
} }

View File

@ -153,7 +153,7 @@ class NineAnime : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
// add alternative name to anime description // add alternative name to anime description
val altName = "Other name(s): " val altName = "Other name(s): "
document.select("h1.title").attr("data-jp")?.let { document.select("h1.title").attr("data-jp").let {
if (it.isBlank().not()) { if (it.isBlank().not()) {
anime.description = when { anime.description = when {
anime.description.isNullOrBlank() -> altName + it anime.description.isNullOrBlank() -> altName + it
@ -227,7 +227,7 @@ class NineAnime : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
ids.getOrNull(0)?.let { subId -> ids.getOrNull(0)?.let { subId ->
document.select("li[data-ep-id=$subId]").map { serverElement -> document.select("li[data-ep-id=$subId]").map { serverElement ->
val server = serverElement.text().let { val server = serverElement.text().let {
if (it == "Vidstream") "vizcloud" else it?.lowercase() ?: "vizcloud" if (it == "Vidstream") "vizcloud" else it.lowercase()
} }
servers.add(Triple("Sub", subId, server)) servers.add(Triple("Sub", subId, server))
} }
@ -235,7 +235,7 @@ class NineAnime : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
ids.getOrNull(1)?.let { dubId -> ids.getOrNull(1)?.let { dubId ->
document.select("li[data-ep-id=$dubId]").map { serverElement -> document.select("li[data-ep-id=$dubId]").map { serverElement ->
val server = serverElement.text().let { val server = serverElement.text().let {
if (it == "Vidstream") "vizcloud" else it?.lowercase() ?: "vizcloud" if (it == "Vidstream") "vizcloud" else it.lowercase()
} }
servers.add(Triple("Dub", dubId, server)) servers.add(Triple("Dub", dubId, server))
} }
@ -285,7 +285,9 @@ class NineAnime : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
val embedLink = parsed.embedURL ?: parsed.headers.referer val embedLink = parsed.embedURL ?: parsed.headers.referer
when (server.third) { when (server.third) {
"vizcloud" -> { "vizcloud" -> {
parsed.sources?.map { source -> parsed.sources?.filter {
if (it.quality.isNullOrBlank()) true else it.quality == "auto"
}?.map { source ->
val playlist = client.newCall(GET(source.url)).execute() val playlist = client.newCall(GET(source.url)).execute()
videoList.addAll( videoList.addAll(
parseVizPlaylist( parseVizPlaylist(
@ -332,7 +334,7 @@ class NineAnime : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
return this.sortedWith( return this.sortedWith(
compareByDescending<Video> { it.quality.contains(quality) } compareByDescending<Video> { it.quality.contains(quality) }
.thenBy { it.quality.contains(lang) }, .thenByDescending { it.quality.contains(lang) },
) )
} }
@ -363,6 +365,7 @@ class NineAnime : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
val url: String, val url: String,
@SerialName("isM3U8") @SerialName("isM3U8")
val hls: Boolean, val hls: Boolean,
val quality: String? = null,
) )
} }