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