From 4142f28822772a9eb145c3532075812479fd5829 Mon Sep 17 00:00:00 2001 From: FooIbar <118464521+FooIbar@users.noreply.github.com> Date: Sat, 2 Mar 2024 19:21:15 +0800 Subject: [PATCH] Fix simple language generation for favorites --- .../kotlin/com/hippo/ehviewer/client/EhEngine.kt | 7 +++++++ .../hippo/ehviewer/client/parser/GalleryApiParser.kt | 1 - .../ehviewer/client/parser/GalleryListParser.kt | 12 +----------- 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/client/EhEngine.kt b/app/src/main/kotlin/com/hippo/ehviewer/client/EhEngine.kt index 989c2b0c7..c9e156bed 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/client/EhEngine.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/client/EhEngine.kt @@ -20,6 +20,7 @@ import arrow.core.left import arrow.core.right import arrow.fx.coroutines.parMap import arrow.fx.coroutines.parZip +import com.hippo.ehviewer.EhDB import com.hippo.ehviewer.R import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.data.BaseGalleryInfo @@ -436,6 +437,12 @@ object EhEngine { val needApi = filter && needTags() && !hasTags || Settings.showGalleryPages.value && !hasPages || hasRated if (needApi) fillGalleryListByApi(this@fillInfo, url) if (filter) removeAllSuspend { filterUploader(it) || filterTag(it) || filterTagNamespace(it) } + forEach { + if (it.favoriteSlot == GalleryInfo.NOT_FAVORITED && EhDB.containLocalFavorites(it.gid)) { + it.favoriteSlot = GalleryInfo.LOCAL_FAVORITED + } + it.generateSLang() + } } suspend fun addFavorites(galleryList: List>, dstCat: Int) { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/client/parser/GalleryApiParser.kt b/app/src/main/kotlin/com/hippo/ehviewer/client/parser/GalleryApiParser.kt index ab7e6869b..969c86eec 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/client/parser/GalleryApiParser.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/client/parser/GalleryApiParser.kt @@ -38,7 +38,6 @@ object GalleryApiParser { rating = item.rating simpleTags = item.tags pages = item.pages - generateSLang() } } } diff --git a/app/src/main/kotlin/com/hippo/ehviewer/client/parser/GalleryListParser.kt b/app/src/main/kotlin/com/hippo/ehviewer/client/parser/GalleryListParser.kt index a52dbd2a9..8c23c0adb 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/client/parser/GalleryListParser.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/client/parser/GalleryListParser.kt @@ -1,26 +1,16 @@ package com.hippo.ehviewer.client.parser -import com.hippo.ehviewer.EhDB import com.hippo.ehviewer.client.data.BaseGalleryInfo -import com.hippo.ehviewer.client.data.GalleryInfo.Companion.LOCAL_FAVORITED -import com.hippo.ehviewer.client.data.GalleryInfo.Companion.NOT_FAVORITED import com.hippo.ehviewer.client.exception.ParseException import java.nio.ByteBuffer import kotlinx.serialization.Serializable import moe.tarsin.coroutines.runSuspendCatching object GalleryListParser { - suspend fun parse(body: ByteBuffer) = runSuspendCatching { + fun parse(body: ByteBuffer) = runSuspendCatching { unmarshalParsingAs(body, ::parseGalleryInfoList) }.getOrElse { throw ParseException("Can't parse gallery list", it) - }.apply { - galleryInfoList.onEach { - if (it.favoriteSlot == NOT_FAVORITED && EhDB.containLocalFavorites(it.gid)) { - it.favoriteSlot = LOCAL_FAVORITED - } - it.generateSLang() - } } val emptyResult = GalleryListResult(null, null, arrayListOf())