Merge pull request #2 from SamuelBMartins/bugfix/library_filter

Fix library filter and remove filters from Popular tab
This commit is contained in:
ThePromidius
2024-04-14 14:33:56 +02:00
committed by GitHub

View File

@@ -163,11 +163,10 @@ class Kavita(private val suffix: String = "") : ConfigurableSource, UnmeteredSou
}
}
override fun popularMangaRequest(page: Int): Request {
private fun prepareRequest(page: Int, payload: String): Request {
if (!isLogged) {
doLogin()
}
val payload = buildFilterBody(currentFilter)
return POST(
"$apiUrl/series/all-v2?pageNumber=$page&pageSize=20",
headersBuilder().build(),
@@ -175,19 +174,16 @@ class Kavita(private val suffix: String = "") : ConfigurableSource, UnmeteredSou
)
}
override fun latestUpdatesRequest(page: Int): Request {
if (!isLogged) {
doLogin()
override fun popularMangaRequest(page: Int): Request {
return prepareRequest(page, buildFilterBody(MetadataPayload()))
}
// Hardcode exclude epubs
override fun latestUpdatesRequest(page: Int): Request {
val filter = FilterV2Dto(sortOptions = SortOptions(SortFieldEnum.LastChapterAdded.type, false))
filter.statements.add(FilterStatementDto(FilterComparison.NotContains.type, FilterField.Formats.type, "3"))
val payload = json.encodeToJsonElement(filter).toString()
return POST(
"$apiUrl/series/all-v2?pageNumber=$page&pageSize=20",
headersBuilder().build(),
payload.toRequestBody(JSON_MEDIA_TYPE),
)
return prepareRequest(page, payload)
}
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
@@ -219,11 +215,7 @@ class Kavita(private val suffix: String = "") : ConfigurableSource, UnmeteredSou
decoded_filter.statements.add(FilterStatementDto(FilterComparison.NotContains.type, FilterField.Formats.type, "3"))
// Make request with selected filters
return POST(
"$apiUrl/series/all-v2?pageNumber=$page&pageSize=20",
headersBuilder().build(),
json.encodeToJsonElement(decoded_filter).toString().toRequestBody(JSON_MEDIA_TYPE),
)
return prepareRequest(page, json.encodeToJsonElement(decoded_filter).toString())
} else {
Log.e(LOG_TAG, "Failed to decode SmartFilter: ${it.code}\n" + it.message)
throw IOException(helper.intl["version_exceptions_smart_filter"])
@@ -426,8 +418,7 @@ class Kavita(private val suffix: String = "") : ConfigurableSource, UnmeteredSou
}
}
newFilter.seriesNameQuery = query
currentFilter = newFilter
return popularMangaRequest(page)
return prepareRequest(page, buildFilterBody(newFilter))
}
/*
@@ -556,8 +547,6 @@ class Kavita(private val suffix: String = "") : ConfigurableSource, UnmeteredSou
* FILTERING
**/
private var currentFilter: MetadataPayload = MetadataPayload()
/** Some variable names already exist. im not good at naming add Meta suffix */
private var genresListMeta = emptyList<MetadataGenres>()
private var tagsListMeta = emptyList<MetadataTag>()
@@ -1176,7 +1165,7 @@ class Kavita(private val suffix: String = "") : ConfigurableSource, UnmeteredSou
}
}
// libraries
client.newCall(GET("$apiUrl/Library", headersBuilder().build()))
client.newCall(GET("$apiUrl/Library/libraries", headersBuilder().build()))
.execute().use { response ->
libraryListMeta = try {
response.body.use { json.decodeFromString(it.string()) }