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 { ext {
extName = 'Komga' extName = 'Komga'
extClass = '.KomgaFactory' extClass = '.KomgaFactory'
extVersionCode = 62 extVersionCode = 63
} }
apply from: "$rootDir/common.gradle" apply from: "$rootDir/common.gradle"

View File

@ -134,7 +134,12 @@ open class Komga(private val suffix: String = "") : ConfigurableSource, Unmetere
else -> "series" 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 filterList = filters.ifEmpty { getFilterList() }
val defaultLibraries = defaultLibraries 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 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 { override fun mangaDetailsParse(response: Response): SManga {
return if (response.isFromReadList()) { return if (response.isFromReadList()) {
@ -254,7 +259,7 @@ open class Komga(private val suffix: String = "") : ConfigurableSource, Unmetere
.sortedByDescending { it.chapter_number } .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> { override fun pageListParse(response: Response): List<Page> {
val pages = response.parseAs<List<PageDto>>() val pages = response.parseAs<List<PageDto>>()
@ -467,17 +472,17 @@ open class Komga(private val suffix: String = "") : ConfigurableSource, Unmetere
scope.launch { scope.launch {
try { try {
libraries = client.newCall(GET("$baseUrl/api/v1/libraries")).await().parseAs() libraries = client.newCall(GET("$baseUrl/api/v1/libraries", headers)).await().parseAs()
collections = client collections = client
.newCall(GET("$baseUrl/api/v1/collections?unpaged=true")) .newCall(GET("$baseUrl/api/v1/collections?unpaged=true", headers))
.await() .await()
.parseAs<PageWrapperDto<CollectionDto>>() .parseAs<PageWrapperDto<CollectionDto>>()
.content .content
genres = client.newCall(GET("$baseUrl/api/v1/genres")).await().parseAs() genres = client.newCall(GET("$baseUrl/api/v1/genres", headers)).await().parseAs()
tags = client.newCall(GET("$baseUrl/api/v1/tags")).await().parseAs() tags = client.newCall(GET("$baseUrl/api/v1/tags", headers)).await().parseAs()
publishers = client.newCall(GET("$baseUrl/api/v1/publishers")).await().parseAs() publishers = client.newCall(GET("$baseUrl/api/v1/publishers", headers)).await().parseAs()
authors = client authors = client
.newCall(GET("$baseUrl/api/v1/authors")) .newCall(GET("$baseUrl/api/v1/authors", headers))
.await() .await()
.parseAs<List<AuthorDto>>() .parseAs<List<AuthorDto>>()
.groupBy { it.role } .groupBy { it.role }