WIP: (en/animeowl) Solving NumerFormat expection #757
2 changed files with 30 additions and 20 deletions
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'AnimeOwl'
|
||||
extClass = '.AnimeOwl'
|
||||
extVersionCode = 22
|
||||
extVersionCode = 23
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -44,8 +44,11 @@ class AnimeOwl : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
|
||||
override val supportsLatest = true
|
||||
|
||||
private val json: Json by injectLazy()
|
||||
|
||||
private val json: Json by lazy {
|
||||
Json {
|
||||
ignoreUnknownKeys = true
|
||||
coerceInputValues = true
|
||||
}
|
||||
private val preferences: SharedPreferences by lazy {
|
||||
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
|
||||
}
|
||||
|
@ -128,28 +131,35 @@ class AnimeOwl : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
override fun episodeListParse(response: Response): List<SEpisode> {
|
||||
val document = response.asJsoup()
|
||||
val sub = document.select("#anime-cover-sub-content .episode-node").mapIndexed { idx, it ->
|
||||
val episodeText = it.text().trim()
|
||||
val episodeNumber = episodeText.toDoubleOrNull() ?: (idx + 1).toDouble()
|
||||
|
||||
EpisodeResponse.Episode(
|
||||
id = it.text().toDouble(),
|
||||
id = episodeNumber,
|
||||
episodeIndex = idx.toString(),
|
||||
name = it.text(),
|
||||
name = episodeText,
|
||||
lang = "Sub",
|
||||
href = it.attr("abs:href"),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
val dub = document.select("#anime-cover-dub-content .episode-node").mapIndexed { idx, it ->
|
||||
val episodeText = it.text().trim()
|
||||
val episodeNumber = episodeText.toDoubleOrNull() ?: (idx + 1).toDouble()
|
||||
|
||||
EpisodeResponse.Episode(
|
||||
id = it.text().toDouble(),
|
||||
id = episodeNumber,
|
||||
episodeIndex = idx.toString(),
|
||||
name = it.text(),
|
||||
name = episodeText,
|
||||
lang = "Dub",
|
||||
href = it.attr("abs:href"),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
return listOf(sub, dub).flatten().groupBy { it.name }.map { (epNum, epList) ->
|
||||
SEpisode.create().apply {
|
||||
url = LinkData(epList.map { ep -> Link(ep.href!!, ep.lang!!) }).toJsonString()
|
||||
episode_number = epNum.toFloatOrNull() ?: 0F
|
||||
episode_number = epNum.filter { it.isDigit() || it == '.' }.toFloatOrNull() ?: 0F
|
||||
name = "Episode $epNum"
|
||||
}
|
||||
}.sortedByDescending { it.episode_number }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue