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

View file

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

View file

@ -90,11 +90,12 @@ abstract class BaseSourcePagingSource(
// SY <-- // SY <--
val manga = mangasPage.mangas val manga = mangasPage.mangas
.map { it.toDomainManga(source!!.id) }
.filter { seenManga.add(it.url) }
/* KMK --> .let { networkToLocalManga(it) } KMK <-- */
// SY --> // 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 <-- // SY <--
return LoadResult.Page( return LoadResult.Page(