From c87bff2f4d3aa22dc9e5026464d4f145d91e9c57 Mon Sep 17 00:00:00 2001 From: kunfei Date: Sun, 16 Jul 2023 17:11:09 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/legado/app/ui/main/rss/RssViewModel.kt | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/io/legado/app/ui/main/rss/RssViewModel.kt b/app/src/main/java/io/legado/app/ui/main/rss/RssViewModel.kt index fe0bad699..d134a82bc 100644 --- a/app/src/main/java/io/legado/app/ui/main/rss/RssViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/main/rss/RssViewModel.kt @@ -43,22 +43,25 @@ class RssViewModel(application: Application) : BaseViewModel(application) { fun getSingleUrl(rssSource: RssSource, onSuccess: (url: String) -> Unit) { execute { - val url = rssSource.sortUrl - if (!url.isNullOrBlank()) { - if (url.startsWith("", false) - || url.startsWith("@js:", false) + var sortUrl = rssSource.sortUrl + if (!sortUrl.isNullOrBlank()) { + if (sortUrl.startsWith("", false) + || sortUrl.startsWith("@js:", false) ) { - val jsStr = if (url.startsWith("@")) { - url.substring(4) + val jsStr = if (sortUrl.startsWith("@")) { + sortUrl.substring(4) } else { - url.substring(4, url.lastIndexOf("<")) + sortUrl.substring(4, sortUrl.lastIndexOf("<")) } val result = rssSource.evalJS(jsStr)?.toString() if (!result.isNullOrBlank()) { - return@execute result + sortUrl = result } + } + if (sortUrl.contains("::")) { + return@execute sortUrl.split("::")[1] } else { - return@execute url + return@execute sortUrl } } rssSource.sourceUrl