Desu (RU): fix search encoding, add headers (#8979)

* Desu (RU): fix search encoding

* Desu (RU): add headers everywhere

* Desu (RU): bump
This commit is contained in:
Vetle Ledaal 2025-05-30 03:40:33 +02:00 committed by Draff
parent df9a8029d3
commit 40f3502d10
Signed by: Draff
GPG Key ID: E8A89F3211677653
2 changed files with 13 additions and 9 deletions

View File

@ -1,7 +1,8 @@
ext { ext {
extName = 'Desu' extName = 'Desu'
extClass = '.Desu' extClass = '.Desu'
extVersionCode = 27 extVersionCode = 28
isNsfw = true
} }
apply from: "$rootDir/common.gradle" apply from: "$rootDir/common.gradle"

View File

@ -139,22 +139,25 @@ class Desu : ConfigurableSource, HttpSource() {
} }
override fun popularMangaRequest(page: Int) = override fun popularMangaRequest(page: Int) =
GET("$baseUrl$API_URL/?limit=50&order=popular&page=$page") GET("$baseUrl$API_URL/?limit=50&order=popular&page=$page", headers)
override fun popularMangaParse(response: Response) = searchMangaParse(response) override fun popularMangaParse(response: Response) = searchMangaParse(response)
override fun latestUpdatesRequest(page: Int) = override fun latestUpdatesRequest(page: Int) =
GET("$baseUrl$API_URL/?limit=50&order=updated&page=$page") GET("$baseUrl$API_URL/?limit=50&order=updated&page=$page", headers)
override fun latestUpdatesParse(response: Response): MangasPage = searchMangaParse(response) override fun latestUpdatesParse(response: Response): MangasPage = searchMangaParse(response)
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
var url = "$baseUrl$API_URL/?limit=20&page=$page" val url = "$baseUrl$API_URL/".toHttpUrl().newBuilder()
.addQueryParameter("limit", "20")
.addQueryParameter("page", page.toString())
val types = mutableListOf<Type>() val types = mutableListOf<Type>()
val genres = mutableListOf<Genre>() val genres = mutableListOf<Genre>()
(if (filters.isEmpty()) getFilterList() else filters).forEach { filter -> (if (filters.isEmpty()) getFilterList() else filters).forEach { filter ->
when (filter) { when (filter) {
is OrderBy -> url += "&order=" + arrayOf("popular", "updated", "name")[filter.state] is OrderBy -> url.addQueryParameter("order", arrayOf("popular", "updated", "name")[filter.state])
is TypeList -> filter.state.forEach { type -> if (type.state) types.add(type) } is TypeList -> filter.state.forEach { type -> if (type.state) types.add(type) }
is GenreList -> filter.state.forEach { genre -> if (genre.state) genres.add(genre) } is GenreList -> filter.state.forEach { genre -> if (genre.state) genres.add(genre) }
else -> {} else -> {}
@ -162,15 +165,15 @@ class Desu : ConfigurableSource, HttpSource() {
} }
if (types.isNotEmpty()) { if (types.isNotEmpty()) {
url += "&kinds=" + types.joinToString(",") { it.id } url.addQueryParameter("kinds", types.joinToString(",") { it.id })
} }
if (genres.isNotEmpty()) { if (genres.isNotEmpty()) {
url += "&genres=" + genres.joinToString(",") { it.id } url.addQueryParameter("genres", genres.joinToString(",") { it.id })
} }
if (query.isNotEmpty()) { if (query.isNotEmpty()) {
url += "&search=$query" url.addQueryParameter("search", query)
} }
return GET(url) return GET(url.build(), headers)
} }
override fun searchMangaParse(response: Response): MangasPage { override fun searchMangaParse(response: Response): MangasPage {