Fix popular page showing filtered results

This commit is contained in:
Samuel Martins
2024-04-14 10:50:04 +02:00
parent 79b11bf080
commit 1cb1d81dda

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