fix(fr/animesama): Various fixes (#2023)
* Popular category parser * Voice preference selection * NSFW status
This commit is contained in:
@ -8,9 +8,9 @@ ext {
|
||||
extName = 'Anime-Sama'
|
||||
pkgNameSuffix = 'fr.animesama'
|
||||
extClass = '.AnimeSama'
|
||||
extVersionCode = 2
|
||||
extVersionCode = 3
|
||||
libVersion = 13
|
||||
containsNsfw = true
|
||||
containsNsfw = false
|
||||
}
|
||||
|
||||
dependencies {
|
||||
|
@ -50,15 +50,18 @@ class AnimeSama : ConfigurableAnimeSource, AnimeHttpSource() {
|
||||
|
||||
// ============================== Popular ===============================
|
||||
override fun popularAnimeParse(response: Response): AnimesPage {
|
||||
val animes = response.asJsoup()
|
||||
val seasons = animes.select("h2:contains(les classiques) + .scrollBarStyled > div").flatMap {
|
||||
val animeUrl = it.getElementsByTag("a").attr("href")
|
||||
val doc = response.body.string()
|
||||
val page = response.request.url.fragment?.toInt() ?: 0
|
||||
val regex = Regex("^\\s*carteClassique\\(\\s*.*?\\s*,\\s*\"(.*?)\".*\\)", RegexOption.MULTILINE)
|
||||
val chunks = regex.findAll(doc).chunked(5).toList()
|
||||
val seasons = chunks.getOrNull(page - 1)?.flatMap {
|
||||
val animeUrl = "$baseUrl/catalogue/${it.groupValues[1]}"
|
||||
fetchAnimeSeasons(animeUrl)
|
||||
}
|
||||
return AnimesPage(seasons, false)
|
||||
}?.toList() ?: emptyList()
|
||||
return AnimesPage(seasons, page < chunks.size)
|
||||
}
|
||||
|
||||
override fun popularAnimeRequest(page: Int): Request = GET(baseUrl)
|
||||
override fun popularAnimeRequest(page: Int): Request = GET("$baseUrl/#$page")
|
||||
|
||||
// =============================== Latest ===============================
|
||||
override fun latestUpdatesParse(response: Response): AnimesPage {
|
||||
@ -144,9 +147,8 @@ class AnimeSama : ConfigurableAnimeSource, AnimeHttpSource() {
|
||||
|
||||
return this.sortedWith(
|
||||
compareBy(
|
||||
{ it.quality.contains(voices) },
|
||||
{ it.quality.contains(voices, true) },
|
||||
{ it.quality.contains(quality) },
|
||||
{ Regex("""(\d+)p""").find(it.quality)?.groupValues?.get(1)?.toIntOrNull() ?: 0 },
|
||||
),
|
||||
).reversed()
|
||||
}
|
||||
|
Reference in New Issue
Block a user