From bf73f84b717ca36a336d0bf8afb61d3819708a4a Mon Sep 17 00:00:00 2001 From: HapeLee <63206378+HapeLee@users.noreply.github.com> Date: Thu, 2 Jul 2026 23:33:52 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=B8=BB=E9=A1=B5=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E5=8A=A0=E8=BD=BD=E8=BF=9B=E6=90=9C=E7=B4=A2=E4=B9=A6=E7=B1=8D?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/legado/app/data/repository/ExploreRepository.kt | 6 ++++++ .../io/legado/app/domain/gateway/ExploreBooksGateway.kt | 1 + .../io/legado/app/domain/usecase/ExploreBooksUseCase.kt | 5 ++++- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/io/legado/app/data/repository/ExploreRepository.kt b/app/src/main/java/io/legado/app/data/repository/ExploreRepository.kt index d0319b656..ec78103cd 100644 --- a/app/src/main/java/io/legado/app/data/repository/ExploreRepository.kt +++ b/app/src/main/java/io/legado/app/data/repository/ExploreRepository.kt @@ -85,6 +85,12 @@ class ExploreRepositoryImpl( return WebBook.exploreBookSuspend(bookSource, url, page, key = key, isSearch = key != null) } + override suspend fun saveSearchBooks(books: List) { + if (books.isNotEmpty()) { + appDb.searchBookDao.insert(books) + } + } + override suspend fun getSourceExploreKinds(sourceUrl: String): List = withContext(IO) { val source = appDb.bookSourceDao.getBookSource(sourceUrl) return@withContext source?.exploreKinds() ?: emptyList() diff --git a/app/src/main/java/io/legado/app/domain/gateway/ExploreBooksGateway.kt b/app/src/main/java/io/legado/app/domain/gateway/ExploreBooksGateway.kt index d1229e15e..dee0e372a 100644 --- a/app/src/main/java/io/legado/app/domain/gateway/ExploreBooksGateway.kt +++ b/app/src/main/java/io/legado/app/domain/gateway/ExploreBooksGateway.kt @@ -11,4 +11,5 @@ interface ExploreBooksGateway { page: Int, key: String? = null ): List + suspend fun saveSearchBooks(books: List) } diff --git a/app/src/main/java/io/legado/app/domain/usecase/ExploreBooksUseCase.kt b/app/src/main/java/io/legado/app/domain/usecase/ExploreBooksUseCase.kt index fb234ddd9..1d97ff0cd 100644 --- a/app/src/main/java/io/legado/app/domain/usecase/ExploreBooksUseCase.kt +++ b/app/src/main/java/io/legado/app/domain/usecase/ExploreBooksUseCase.kt @@ -26,6 +26,7 @@ class ExploreBooksUseCase( ): ExploreResult = withContext(Dispatchers.IO) { val request = resolveRequest(sourceUrl, moduleUrl, args, key) val books = gateway.exploreBooks(request.source, request.url, page, key = key) + if (books.isNotEmpty()) gateway.saveSearchBooks(books) ExploreResult(request.url, books) } @@ -47,7 +48,9 @@ class ExploreBooksUseCase( if (next.isEmpty()) break books = (books + next) } - books.take(MAX_RANKING_BOOKS) + val result = books.take(MAX_RANKING_BOOKS) + if (result.isNotEmpty()) gateway.saveSearchBooks(result) + result } private suspend fun resolveRequest(