From cb9289dc14f7659c1311f30bf32027c3080a4a2e Mon Sep 17 00:00:00 2001 From: Xwite <1797350009@qq.com> Date: Fri, 21 Jan 2022 12:59:49 +0800 Subject: [PATCH 1/4] =?UTF-8?q?fix:=E6=90=9C=E7=B4=A2=E8=B7=B3=E8=BD=AC?= =?UTF-8?q?=E4=B8=BA=E8=AF=A6=E6=83=85=E9=A1=B5=E9=93=BE=E6=8E=A5=20?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E4=B9=A6=E6=BA=90=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/io/legado/app/service/CheckSourceService.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/io/legado/app/service/CheckSourceService.kt b/app/src/main/java/io/legado/app/service/CheckSourceService.kt index f4f592ed7..ceb4a9993 100644 --- a/app/src/main/java/io/legado/app/service/CheckSourceService.kt +++ b/app/src/main/java/io/legado/app/service/CheckSourceService.kt @@ -133,7 +133,10 @@ class CheckSourceService : BaseService() { } books = WebBook.exploreBookAwait(this, source, url) } - val book = WebBook.getBookInfoAwait(this, source, books.first().toBook()) + var book = books.first().toBook() + if (book.tocUrl.isBlank()) { + book = WebBook.getBookInfoAwait(this, source, book) + } val toc = WebBook.getChapterListAwait(this, source, book) val nextChapterUrl = toc.getOrNull(1)?.url ?: toc.first().url val content = WebBook.getContentAwait( From cfb921df4da74c67dc1a710dfe7667b0df3b4a10 Mon Sep 17 00:00:00 2001 From: Xwite <1797350009@qq.com> Date: Fri, 21 Jan 2022 20:58:50 +0800 Subject: [PATCH 2/4] =?UTF-8?q?1.=E6=A0=A1=E9=AA=8C=E4=B9=A6=E6=BA=90:?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=E4=B8=BA=E7=A9=BA=E6=97=B6=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=88=86=E7=BB=84=EF=BC=9B2.=E4=BC=98=E5=8C=96=E4=B9=A6?= =?UTF-8?q?=E6=BA=90=E5=88=86=E7=BB=84=E7=AE=A1=E7=90=86=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/legado/app/data/entities/BookSource.kt | 12 ++++------ .../legado/app/service/CheckSourceService.kt | 1 + .../book/source/manage/BookSourceViewModel.kt | 24 ++++--------------- 3 files changed, 10 insertions(+), 27 deletions(-) diff --git a/app/src/main/java/io/legado/app/data/entities/BookSource.kt b/app/src/main/java/io/legado/app/data/entities/BookSource.kt index 12cf72bb9..db4fedb1f 100644 --- a/app/src/main/java/io/legado/app/data/entities/BookSource.kt +++ b/app/src/main/java/io/legado/app/data/entities/BookSource.kt @@ -3,6 +3,7 @@ package io.legado.app.data.entities import android.os.Parcelable import android.text.TextUtils import androidx.room.* +import io.legado.app.constant.AppPattern import io.legado.app.constant.BookType import io.legado.app.data.entities.rule.* import io.legado.app.help.SourceAnalyzer @@ -118,17 +119,14 @@ data class BookSource( fun getContentRule() = ruleContent ?: ContentRule() fun addGroup(group: String) { - bookSourceGroup?.let { - if (!it.contains(group)) { - bookSourceGroup = "$it,$group" - } - } ?: let { - bookSourceGroup = group + bookSourceGroup?.splitNotBlank(AppPattern.splitGroupRegex)?.toHashSet()?.let { + it.add(group) + bookSourceGroup = TextUtils.join(",", it) } } fun removeGroup(group: String) { - bookSourceGroup?.splitNotBlank("[,;,;]".toRegex())?.toHashSet()?.let { + bookSourceGroup?.splitNotBlank(AppPattern.splitGroupRegex)?.toHashSet()?.let { it.remove(group) bookSourceGroup = TextUtils.join(",", it) } diff --git a/app/src/main/java/io/legado/app/service/CheckSourceService.kt b/app/src/main/java/io/legado/app/service/CheckSourceService.kt index ceb4a9993..13a1695fa 100644 --- a/app/src/main/java/io/legado/app/service/CheckSourceService.kt +++ b/app/src/main/java/io/legado/app/service/CheckSourceService.kt @@ -120,6 +120,7 @@ class CheckSourceService : BaseService() { } var books = WebBook.searchBookAwait(this, source, searchWord) if (books.isEmpty()) { + source.addGroup("搜索为空") val exs = source.exploreKinds var url: String? = null for (ex in exs) { diff --git a/app/src/main/java/io/legado/app/ui/book/source/manage/BookSourceViewModel.kt b/app/src/main/java/io/legado/app/ui/book/source/manage/BookSourceViewModel.kt index bacacf4f4..ea3c1c4dc 100644 --- a/app/src/main/java/io/legado/app/ui/book/source/manage/BookSourceViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/book/source/manage/BookSourceViewModel.kt @@ -94,16 +94,8 @@ class BookSourceViewModel(application: Application) : BaseViewModel(application) execute { val list = arrayListOf() sources.forEach { source -> - val newGroupList = arrayListOf() - source.bookSourceGroup?.splitNotBlank(AppPattern.splitGroupRegex)?.forEach { - newGroupList.add(it) - } - groups.splitNotBlank(",", ";", ",").forEach { - newGroupList.add(it) - } - val lh = LinkedHashSet(newGroupList) - val newGroup = ArrayList(lh).joinToString(separator = ",") - list.add(source.copy(bookSourceGroup = newGroup)) + source.addGroup(groups) + list.add(source) } appDb.bookSourceDao.update(*list.toTypedArray()) } @@ -113,16 +105,8 @@ class BookSourceViewModel(application: Application) : BaseViewModel(application) execute { val list = arrayListOf() sources.forEach { source -> - val newGroupList = arrayListOf() - source.bookSourceGroup?.splitNotBlank(AppPattern.splitGroupRegex)?.forEach { - newGroupList.add(it) - } - groups.splitNotBlank(",", ";", ",").forEach { - newGroupList.remove(it) - } - val lh = LinkedHashSet(newGroupList) - val newGroup = ArrayList(lh).joinToString(separator = ",") - list.add(source.copy(bookSourceGroup = newGroup)) + source.removeGroup(groups) + list.add(source) } appDb.bookSourceDao.update(*list.toTypedArray()) } From 463684faf22dcabd9f3fba3a0298644183ce532d Mon Sep 17 00:00:00 2001 From: Xwite <1797350009@qq.com> Date: Fri, 21 Jan 2022 22:00:51 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E6=90=9C=E7=B4=A2=E9=80=9A=E8=BF=87?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E7=A7=BB=E9=99=A4=E5=88=86=E7=BB=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/io/legado/app/service/CheckSourceService.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/io/legado/app/service/CheckSourceService.kt b/app/src/main/java/io/legado/app/service/CheckSourceService.kt index 13a1695fa..123d9bb04 100644 --- a/app/src/main/java/io/legado/app/service/CheckSourceService.kt +++ b/app/src/main/java/io/legado/app/service/CheckSourceService.kt @@ -120,7 +120,7 @@ class CheckSourceService : BaseService() { } var books = WebBook.searchBookAwait(this, source, searchWord) if (books.isEmpty()) { - source.addGroup("搜索为空") + source.addGroup("搜索失效") val exs = source.exploreKinds var url: String? = null for (ex in exs) { @@ -134,6 +134,7 @@ class CheckSourceService : BaseService() { } books = WebBook.exploreBookAwait(this, source, url) } + source.removeGroup("搜索失效") var book = books.first().toBook() if (book.tocUrl.isBlank()) { book = WebBook.getBookInfoAwait(this, source, book) From 3ee4560d798aaccf395415ebf6a285b17134746f Mon Sep 17 00:00:00 2001 From: Xwite <1797350009@qq.com> Date: Fri, 21 Jan 2022 22:07:52 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/io/legado/app/service/CheckSourceService.kt | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/src/main/java/io/legado/app/service/CheckSourceService.kt b/app/src/main/java/io/legado/app/service/CheckSourceService.kt index 123d9bb04..bce12d231 100644 --- a/app/src/main/java/io/legado/app/service/CheckSourceService.kt +++ b/app/src/main/java/io/legado/app/service/CheckSourceService.kt @@ -160,8 +160,6 @@ class CheckSourceService : BaseService() { "Error: ${it.localizedMessage} \n\n" + "${source.bookSourceComment}" } Debug.updateFinalMessage(source.bookSourceUrl, "失败:${it.localizedMessage}") - source.respondTime = Debug.getRespondTime(source.bookSourceUrl) - appDb.bookSourceDao.update(source) }.onSuccess(searchCoroutine) { source.removeGroup("失效") source.bookSourceComment = source.bookSourceComment @@ -170,9 +168,9 @@ class CheckSourceService : BaseService() { it.startsWith("Error: ") }?.joinToString("\n") Debug.updateFinalMessage(source.bookSourceUrl, "成功") + }.onFinally(searchCoroutine) { source.respondTime = Debug.getRespondTime(source.bookSourceUrl) appDb.bookSourceDao.update(source) - }.onFinally(searchCoroutine) { onNext(source.bookSourceUrl, source.bookSourceName) } }