Komga: encode search, add headers everywhere (#8702)

This commit is contained in:
Vetle Ledaal 2025-05-03 17:15:37 +02:00 committed by Draff
parent 06c8247f12
commit aad47bab3c
No known key found for this signature in database
GPG Key ID: E8A89F3211677653
2 changed files with 15 additions and 10 deletions

View File

@ -1,7 +1,7 @@
ext {
extName = 'Komga'
extClass = '.KomgaFactory'
extVersionCode = 62
extVersionCode = 63
}
apply from: "$rootDir/common.gradle"

View File

@ -134,7 +134,12 @@ open class Komga(private val suffix: String = "") : ConfigurableSource, Unmetere
else -> "series"
}
val url = "$baseUrl/api/v1/$type?search=$query&page=${page - 1}&deleted=false".toHttpUrl().newBuilder()
val url = "$baseUrl/api/v1".toHttpUrl().newBuilder()
.addPathSegments(type)
.addQueryParameter("search", query)
.addQueryParameter("page", (page - 1).toString())
.addQueryParameter("deleted", "false")
val filterList = filters.ifEmpty { getFilterList() }
val defaultLibraries = defaultLibraries
@ -183,7 +188,7 @@ open class Komga(private val suffix: String = "") : ConfigurableSource, Unmetere
override fun getMangaUrl(manga: SManga) = manga.url.replace("/api/v1", "")
override fun mangaDetailsRequest(manga: SManga) = GET(manga.url)
override fun mangaDetailsRequest(manga: SManga) = GET(manga.url, headers)
override fun mangaDetailsParse(response: Response): SManga {
return if (response.isFromReadList()) {
@ -254,7 +259,7 @@ open class Komga(private val suffix: String = "") : ConfigurableSource, Unmetere
.sortedByDescending { it.chapter_number }
}
override fun pageListRequest(chapter: SChapter) = GET("${chapter.url}/pages")
override fun pageListRequest(chapter: SChapter) = GET("${chapter.url}/pages", headers)
override fun pageListParse(response: Response): List<Page> {
val pages = response.parseAs<List<PageDto>>()
@ -467,17 +472,17 @@ open class Komga(private val suffix: String = "") : ConfigurableSource, Unmetere
scope.launch {
try {
libraries = client.newCall(GET("$baseUrl/api/v1/libraries")).await().parseAs()
libraries = client.newCall(GET("$baseUrl/api/v1/libraries", headers)).await().parseAs()
collections = client
.newCall(GET("$baseUrl/api/v1/collections?unpaged=true"))
.newCall(GET("$baseUrl/api/v1/collections?unpaged=true", headers))
.await()
.parseAs<PageWrapperDto<CollectionDto>>()
.content
genres = client.newCall(GET("$baseUrl/api/v1/genres")).await().parseAs()
tags = client.newCall(GET("$baseUrl/api/v1/tags")).await().parseAs()
publishers = client.newCall(GET("$baseUrl/api/v1/publishers")).await().parseAs()
genres = client.newCall(GET("$baseUrl/api/v1/genres", headers)).await().parseAs()
tags = client.newCall(GET("$baseUrl/api/v1/tags", headers)).await().parseAs()
publishers = client.newCall(GET("$baseUrl/api/v1/publishers", headers)).await().parseAs()
authors = client
.newCall(GET("$baseUrl/api/v1/authors"))
.newCall(GET("$baseUrl/api/v1/authors", headers))
.await()
.parseAs<List<AuthorDto>>()
.groupBy { it.role }