fix(source-paging): correct mapping and filtering of manga with metadata

This commit is contained in:
Cuong-Tran 2025-05-14 13:57:06 +07:00
parent 85e3e383cb
commit 3f594fe4a4
No known key found for this signature in database
GPG key ID: 733AA7624B9315C2
3 changed files with 16 additions and 13 deletions

View file

@ -86,7 +86,6 @@ object MangaMapper {
coverLastModified: Long,
dateAdded: Long,
// SY -->
@Suppress("UNUSED_PARAMETER")
filteredScanlators: String?,
// SY <--
updateStrategy: UpdateStrategy,
@ -124,7 +123,7 @@ object MangaMapper {
coverLastModified,
dateAdded,
// SY -->
null,
filteredScanlators,
// SY <--
updateStrategy,
calculateInterval,
@ -193,7 +192,9 @@ object MangaMapper {
chapterFlags,
coverLastModified,
dateAdded,
// SY -->
filteredScanlators,
// SY <--
updateStrategy,
calculateInterval,
lastModifiedAt,

View file

@ -8,7 +8,9 @@ import exh.metadata.metadata.RaisedSearchMetadata
import mihon.domain.manga.model.toDomainManga
import tachiyomi.domain.manga.model.Manga
abstract class EHentaiPagingSource(override val source: CatalogueSource) : BaseSourcePagingSource(source) {
abstract class EHentaiPagingSource(
override val source: CatalogueSource,
) : BaseSourcePagingSource(source) {
override suspend fun getPageLoadResult(
params: LoadParams<Long>,
@ -18,12 +20,11 @@ abstract class EHentaiPagingSource(override val source: CatalogueSource) : BaseS
val metadata = mangasPage.mangasMetadata
val manga = mangasPage.mangas
.map { it.toDomainManga(source.id) }
.filter { seenManga.add(it.url) }
/* KMK --> .let { networkToLocalManga(it) } KMK <-- */
// SY -->
.mapIndexed { index, manga -> manga to metadata.getOrNull(index) }
// SY <--
.mapIndexed { index, sManga -> sManga.toDomainManga(source.id) to metadata.getOrNull(index) }
.filter { seenManga.add(it.first.url) }
// KMK -->
// .let { pairs -> pairs.zip(networkToLocalManga(pairs.map { it.first })).map { it.second to it.first.second } }
// KMK <--
return LoadResult.Page(
data = manga,

View file

@ -90,11 +90,12 @@ abstract class BaseSourcePagingSource(
// SY <--
val manga = mangasPage.mangas
.map { it.toDomainManga(source!!.id) }
.filter { seenManga.add(it.url) }
/* KMK --> .let { networkToLocalManga(it) } KMK <-- */
// SY -->
.mapIndexed { index, manga -> manga to metadata.getOrNull(index) }
.mapIndexed { index, sManga -> sManga.toDomainManga(source!!.id) to metadata.getOrNull(index) }
.filter { seenManga.add(it.first.url) }
// KMK -->
// .let { pairs -> pairs.zip(networkToLocalManga(pairs.map { it.first })).map { it.second to it.first.second } }
// KMK <--
// SY <--
return LoadResult.Page(