From 850edcedbc036c795f0d42cd315548c7f938e744 Mon Sep 17 00:00:00 2001 From: gedoor Date: Sun, 5 Sep 2021 16:37:21 +0800 Subject: [PATCH 1/8] =?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/help/BookSourceAnalyzer.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/java/io/legado/app/help/BookSourceAnalyzer.kt b/app/src/main/java/io/legado/app/help/BookSourceAnalyzer.kt index bb325f9bf..e4062247d 100644 --- a/app/src/main/java/io/legado/app/help/BookSourceAnalyzer.kt +++ b/app/src/main/java/io/legado/app/help/BookSourceAnalyzer.kt @@ -99,6 +99,7 @@ object BookSourceAnalyzer { source.customOrder = sourceAny.customOrder source.enabled = sourceAny.enabled source.enabledExplore = sourceAny.enabledExplore + source.concurrentRate = sourceAny.concurrentRate source.header = sourceAny.header source.loginUrl = when (sourceAny.loginUrl) { null -> null @@ -155,6 +156,7 @@ object BookSourceAnalyzer { var customOrder: Int = 0, // 手动排序编号 var enabled: Boolean = true, // 是否启用 var enabledExplore: Boolean = true, // 启用发现 + var concurrentRate: String?, var header: String? = null, // 请求头 var loginUrl: Any? = null, // 登录规则 var loginUi: List? = null, //登录UI From d4da19e5d2ac789631589564be8589bdacacc3fb Mon Sep 17 00:00:00 2001 From: gedoor Date: Sun, 5 Sep 2021 18:00:51 +0800 Subject: [PATCH 2/8] =?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/model/analyzeRule/AnalyzeRule.kt | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeRule.kt b/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeRule.kt index 3407c3c0b..d088deac5 100644 --- a/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeRule.kt +++ b/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeRule.kt @@ -453,18 +453,6 @@ class AnalyzeRule( } else -> ruleStr } - if (mode != Mode.Js) { - //非js规则才需要继续处理 - initNonJsRule() - } - } - - /** - * 处理非js规则,js不做处理 - * js里面的{{}}规则可以留到下次处理 - * 一些url需要实时更新参数可以再内嵌套{{}},{{}}会访问时才处理 - */ - private fun initNonJsRule() { //分离put rule = splitPutRule(rule, putMap) //@get,{{ }}, 拆分 From 18bd3e6f00c65c19c746452e4fc5d947be9a2b88 Mon Sep 17 00:00:00 2001 From: gedoor Date: Sun, 5 Sep 2021 18:20:10 +0800 Subject: [PATCH 3/8] =?UTF-8?q?rss=E8=B0=83=E8=AF=95=E7=95=8C=E9=9D=A2?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/assets/updateLog.md | 7 +++---- .../app/ui/book/source/debug/BookSourceDebugActivity.kt | 6 ++++-- app/src/main/res/layout/activity_source_debug.xml | 1 + 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/app/src/main/assets/updateLog.md b/app/src/main/assets/updateLog.md index 25c6d6a52..f165a73f8 100644 --- a/app/src/main/assets/updateLog.md +++ b/app/src/main/assets/updateLog.md @@ -15,10 +15,9 @@ **2021/09/05** 1. 采用exoPlayer播放音频,支持更多格式 -2. js规则内的@get,@put,{{}},不再在拆分时替换,都有对应的java函数,可以留着解析url时实时运算 -3. 替换不再阻塞 -4. 修复详情页初始化:规则bug -5. 书源内的并发率生效,两种格式 +2. 替换不再阻塞 +3. 修复详情页初始化:规则bug +4. 书源内的并发率生效,两种格式 * 时间 格式: 如 500, 访问间隔500毫秒 * 次数/时间 格式: 如 5/60000, 每分钟最多访问5次 diff --git a/app/src/main/java/io/legado/app/ui/book/source/debug/BookSourceDebugActivity.kt b/app/src/main/java/io/legado/app/ui/book/source/debug/BookSourceDebugActivity.kt index a7b775f5a..e926b11e9 100644 --- a/app/src/main/java/io/legado/app/ui/book/source/debug/BookSourceDebugActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/source/debug/BookSourceDebugActivity.kt @@ -25,7 +25,9 @@ class BookSourceDebugActivity : VMBaseActivity() private lateinit var adapter: BookSourceDebugAdapter - private lateinit var searchView: SearchView + private val searchView: SearchView by lazy { + binding.titleBar.findViewById(R.id.search_view) + } private val qrCodeResult = registerForActivityResult(QrCodeResult()) { it?.let { startSearch(it) @@ -33,7 +35,6 @@ class BookSourceDebugActivity : VMBaseActivity openOrCloseHelp(hasFocus) } + openOrCloseHelp(true) } @SuppressLint("SetTextI18n") diff --git a/app/src/main/res/layout/activity_source_debug.xml b/app/src/main/res/layout/activity_source_debug.xml index 3dfb93d53..4061274ec 100644 --- a/app/src/main/res/layout/activity_source_debug.xml +++ b/app/src/main/res/layout/activity_source_debug.xml @@ -39,6 +39,7 @@ android:id="@+id/help" android:layout_width="match_parent" android:layout_height="wrap_content" + android:visibility="gone" app:layout_constraintTop_toBottomOf="@+id/title_bar"> Date: Sun, 5 Sep 2021 18:23:53 +0800 Subject: [PATCH 4/8] =?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/model/analyzeRule/AnalyzeUrl.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeUrl.kt b/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeUrl.kt index 476de1532..7ef656a80 100644 --- a/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeUrl.kt +++ b/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeUrl.kt @@ -25,6 +25,7 @@ import kotlin.collections.HashMap * Created by GKF on 2018/1/24. * 搜索URL规则解析 */ +@Suppress("unused") @Keep @SuppressLint("DefaultLocale") class AnalyzeUrl( From 58d00f331c3b5155b58a5e3ab9ab4ac82031bac8 Mon Sep 17 00:00:00 2001 From: gedoor Date: Sun, 5 Sep 2021 18:26:22 +0800 Subject: [PATCH 5/8] =?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/help/BookSourceAnalyzer.kt | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/io/legado/app/help/BookSourceAnalyzer.kt b/app/src/main/java/io/legado/app/help/BookSourceAnalyzer.kt index e4062247d..1132a6774 100644 --- a/app/src/main/java/io/legado/app/help/BookSourceAnalyzer.kt +++ b/app/src/main/java/io/legado/app/help/BookSourceAnalyzer.kt @@ -156,22 +156,22 @@ object BookSourceAnalyzer { var customOrder: Int = 0, // 手动排序编号 var enabled: Boolean = true, // 是否启用 var enabledExplore: Boolean = true, // 启用发现 - var concurrentRate: String?, + var concurrentRate: String? = null, // 并发率 var header: String? = null, // 请求头 - var loginUrl: Any? = null, // 登录规则 - var loginUi: List? = null, //登录UI + var loginUrl: Any? = null, // 登录规则 + var loginUi: List? = null, // 登录UI var loginCheckJs: String? = null, //登录检测js - var bookSourceComment: String? = "", //书源注释 + var bookSourceComment: String? = "", //书源注释 var lastUpdateTime: Long = 0, // 最后更新时间,用于排序 var respondTime: Long = 180000L, // 响应时间,用于排序 var weight: Int = 0, // 智能排序的权重 var exploreUrl: String? = null, // 发现url - var ruleExplore: Any? = null, // 发现规则 + var ruleExplore: Any? = null, // 发现规则 var searchUrl: String? = null, // 搜索url - var ruleSearch: Any? = null, // 搜索规则 - var ruleBookInfo: Any? = null, // 书籍信息页规则 - var ruleToc: Any? = null, // 目录页规则 - var ruleContent: Any? = null // 正文页规则 + var ruleSearch: Any? = null, // 搜索规则 + var ruleBookInfo: Any? = null, // 书籍信息页规则 + var ruleToc: Any? = null, // 目录页规则 + var ruleContent: Any? = null // 正文页规则 ) // default规则适配 From 48f2ec7ec2e2926579a02b19ae49182af15281cc Mon Sep 17 00:00:00 2001 From: gedoor Date: Sun, 5 Sep 2021 20:23:56 +0800 Subject: [PATCH 6/8] =?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/ui/book/source/edit/BookSourceEditViewModel.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditViewModel.kt b/app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditViewModel.kt index c56c74527..c023b4d47 100644 --- a/app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditViewModel.kt @@ -54,7 +54,10 @@ class BookSourceEditViewModel(application: Application) : BaseViewModel(applicat fun pasteSource(onSuccess: (source: BookSource) -> Unit) { execute(context = Dispatchers.Main) { - context.getClipText()?.let { text -> + val text = context.getClipText() + if (text.isNullOrBlank()) { + error("剪贴板为空") + } else { importSource(text, onSuccess) } }.onError { From fd8932e85b59647a95f21f5bc1c6285981ee17a7 Mon Sep 17 00:00:00 2001 From: gedoor Date: Sun, 5 Sep 2021 20:32:06 +0800 Subject: [PATCH 7/8] =?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/assets/updateLog.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/assets/updateLog.md b/app/src/main/assets/updateLog.md index f165a73f8..67e0ad1c2 100644 --- a/app/src/main/assets/updateLog.md +++ b/app/src/main/assets/updateLog.md @@ -20,6 +20,8 @@ 4. 书源内的并发率生效,两种格式 * 时间 格式: 如 500, 访问间隔500毫秒 * 次数/时间 格式: 如 5/60000, 每分钟最多访问5次 + +5. 其它bug修复 **2021/09/01** From 3c5ab64f2c4a0a9a67c41bbf0abce739bf2391ab Mon Sep 17 00:00:00 2001 From: gedoor Date: Sun, 5 Sep 2021 21:58:18 +0800 Subject: [PATCH 8/8] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/legado/app/help/JsExtensions.kt | 4 +- .../java/io/legado/app/model/CacheBook.kt | 108 +++++++++++------- .../main/java/io/legado/app/model/ReadBook.kt | 2 +- .../app/model/analyzeRule/AnalyzeUrl.kt | 44 ++++--- .../io/legado/app/service/AudioPlayService.kt | 5 +- .../io/legado/app/ui/main/MainViewModel.kt | 5 +- .../legado/app/ui/rss/read/ReadRssActivity.kt | 2 +- .../app/ui/rss/read/ReadRssViewModel.kt | 1 - 8 files changed, 101 insertions(+), 70 deletions(-) diff --git a/app/src/main/java/io/legado/app/help/JsExtensions.kt b/app/src/main/java/io/legado/app/help/JsExtensions.kt index 93a8ec98f..7a5fb5fcb 100644 --- a/app/src/main/java/io/legado/app/help/JsExtensions.kt +++ b/app/src/main/java/io/legado/app/help/JsExtensions.kt @@ -82,7 +82,7 @@ interface JsExtensions { }.onFailure { it.printStackTrace() }.getOrElse { - StrResponse(analyzeUrl.url, it.localizedMessage) + StrResponse(analyzeUrl.getDirectUrl(), it.localizedMessage) } } } @@ -96,7 +96,7 @@ interface JsExtensions { }.onFailure { it.printStackTrace() }.getOrElse { - StrResponse(analyzeUrl.url, it.localizedMessage) + StrResponse(analyzeUrl.getDirectUrl(), it.localizedMessage) } } } diff --git a/app/src/main/java/io/legado/app/model/CacheBook.kt b/app/src/main/java/io/legado/app/model/CacheBook.kt index 1b34170ee..baffe0f84 100644 --- a/app/src/main/java/io/legado/app/model/CacheBook.kt +++ b/app/src/main/java/io/legado/app/model/CacheBook.kt @@ -3,6 +3,7 @@ package io.legado.app.model import android.content.Context import io.legado.app.R import io.legado.app.constant.IntentAction +import io.legado.app.data.appDb import io.legado.app.data.entities.Book import io.legado.app.data.entities.BookChapter import io.legado.app.data.entities.BookSource @@ -12,67 +13,91 @@ import io.legado.app.utils.msg import io.legado.app.utils.startService import kotlinx.coroutines.CoroutineScope import splitties.init.appCtx -import java.util.concurrent.ConcurrentHashMap import java.util.concurrent.CopyOnWriteArraySet -object CacheBook { - val logs = arrayListOf() - private val downloadMap = ConcurrentHashMap>() +class CacheBook(val bookSource: BookSource, val book: Book) { - fun addLog(log: String?) { - log ?: return - synchronized(this) { - if (logs.size > 1000) { - logs.removeAt(0) + companion object { + + val logs = arrayListOf() + private val cacheBookMap = hashMapOf() + + fun get(bookUrl: String): CacheBook? { + var cacheBook = cacheBookMap[bookUrl] + if (cacheBook != null) { + return cacheBook } - logs.add(log) + val book = appDb.bookDao.getBook(bookUrl) ?: return null + val bookSource = appDb.bookSourceDao.getBookSource(book.origin) ?: return null + cacheBook = CacheBook(bookSource, book) + cacheBookMap[bookUrl] = cacheBook + return cacheBook } - } - fun start(context: Context, bookUrl: String, start: Int, end: Int) { - context.startService { - action = IntentAction.start - putExtra("bookUrl", bookUrl) - putExtra("start", start) - putExtra("end", end) + fun get(bookSource: BookSource, book: Book): CacheBook { + var cacheBook = cacheBookMap[book.bookUrl] + if (cacheBook != null) { + return cacheBook + } + cacheBook = CacheBook(bookSource, book) + cacheBookMap[book.bookUrl] = cacheBook + return cacheBook } - } - fun remove(context: Context, bookUrl: String) { - context.startService { - action = IntentAction.remove - putExtra("bookUrl", bookUrl) + fun addLog(log: String?) { + log ?: return + synchronized(this) { + if (logs.size > 1000) { + logs.removeAt(0) + } + logs.add(log) + } } - } - fun stop(context: Context) { - context.startService { - action = IntentAction.stop + fun start(context: Context, bookUrl: String, start: Int, end: Int) { + context.startService { + action = IntentAction.start + putExtra("bookUrl", bookUrl) + putExtra("start", start) + putExtra("end", end) + } } - } - fun downloadCount(): Int { - var count = 0 - downloadMap.forEach { - count += it.value.size + fun remove(context: Context, bookUrl: String) { + context.startService { + action = IntentAction.remove + putExtra("bookUrl", bookUrl) + } } - return count + + fun stop(context: Context) { + context.startService { + action = IntentAction.stop + } + } + + val downloadCount: Int + get() { + var count = 0 + cacheBookMap.forEach { + count += it.value.downloadSet.size + } + return count + } + } + val downloadSet = CopyOnWriteArraySet() + fun download( scope: CoroutineScope, - bookSource: BookSource, - book: Book, chapter: BookChapter, resetPageOffset: Boolean = false ) { - if (downloadMap[book.bookUrl]?.contains(chapter.index) == true) { + if (downloadSet.contains(chapter.index)) { return } - if (downloadMap[book.bookUrl] == null) { - downloadMap[book.bookUrl] = CopyOnWriteArraySet() - } - downloadMap[book.bookUrl]?.add(chapter.index) + downloadSet.add(chapter.index) WebBook.getContent(scope, bookSource, book, chapter) .onSuccess { content -> if (ReadBook.book?.bookUrl == book.bookUrl) { @@ -93,10 +118,7 @@ object CacheBook { ) } }.onFinally { - downloadMap[book.bookUrl]?.remove(chapter.index) - if (downloadMap[book.bookUrl].isNullOrEmpty()) { - downloadMap.remove(book.bookUrl) - } + downloadSet.remove(chapter.index) ReadBook.removeLoading(chapter.index) } } diff --git a/app/src/main/java/io/legado/app/model/ReadBook.kt b/app/src/main/java/io/legado/app/model/ReadBook.kt index 2c75ed3dd..eb5aea66d 100644 --- a/app/src/main/java/io/legado/app/model/ReadBook.kt +++ b/app/src/main/java/io/legado/app/model/ReadBook.kt @@ -295,7 +295,7 @@ object ReadBook : CoroutineScope by MainScope() { val book = book val bookSource = bookSource if (book != null && bookSource != null) { - CacheBook.download(scope, bookSource, book, chapter) + CacheBook.get(bookSource, book).download(scope, chapter) } else if (book != null) { contentLoadFinish( book, chapter, "没有书源", resetPageOffset = resetPageOffset diff --git a/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeUrl.kt b/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeUrl.kt index 7ef656a80..43fbfe5a3 100644 --- a/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeUrl.kt +++ b/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeUrl.kt @@ -35,7 +35,6 @@ class AnalyzeUrl( val speakText: String? = null, val speakSpeed: Int? = null, var baseUrl: String = "", - var useWebView: Boolean = false, val book: BaseBook? = null, val chapter: BookChapter? = null, private val ruleData: RuleDataInterface? = null, @@ -48,17 +47,18 @@ class AnalyzeUrl( private val accessTime = hashMapOf() } - var url: String = "" val headerMap = HashMap() var body: String? = null var type: String? = null - private lateinit var urlHasQuery: String + private var url: String = "" private var queryStr: String? = null private val fieldMap = LinkedHashMap() private var charset: String? = null private var method = RequestMethod.GET private var proxy: String? = null private var retry: Int = 0 + private var useWebView: Boolean = false + private var webJs: String? = null init { val urlMatcher = paramPattern.matcher(baseUrl) @@ -141,12 +141,13 @@ class AnalyzeUrl( */ private fun initUrl() { //replaceKeyPageJs已经替换掉额外内容,此处url是基础形式,可以直接切首个‘,’之前字符串。 val urlMatcher = paramPattern.matcher(ruleUrl) - urlHasQuery = if (urlMatcher.find()) ruleUrl.substring(0, urlMatcher.start()) else ruleUrl - url = NetworkUtils.getAbsoluteURL(baseUrl, urlHasQuery) + val urlNoOption = + if (urlMatcher.find()) ruleUrl.substring(0, urlMatcher.start()) else ruleUrl + url = NetworkUtils.getAbsoluteURL(baseUrl, urlNoOption) NetworkUtils.getBaseUrl(url)?.let { baseUrl = it } - if (urlHasQuery.length != ruleUrl.length) { + if (urlNoOption.length != ruleUrl.length) { GSON.fromJsonObject(ruleUrl.substring(urlMatcher.end()))?.let { option -> option.method?.let { if (it.equals("POST", true)) method = RequestMethod.POST @@ -171,6 +172,7 @@ class AnalyzeUrl( useWebView = true } } + webJs = option.webJs option.js?.let { evalJS(it) } @@ -183,21 +185,21 @@ class AnalyzeUrl( } when (method) { RequestMethod.GET -> { - if (!useWebView) { - val pos = url.indexOf('?') - if (pos != -1) { - analyzeFields(url.substring(pos + 1)) - url = url.substring(0, pos) - } - } - } - RequestMethod.POST -> { - body?.let { + val pos = url.indexOf('?') + if (pos != -1) { + analyzeFields(url.substring(pos + 1)) + url = url.substring(0, pos) + } else body?.let { if (!it.isJson()) { analyzeFields(it) } } } + RequestMethod.POST -> body?.let { + if (!it.isJson()) { + analyzeFields(it) + } + } } } @@ -416,7 +418,14 @@ class AnalyzeUrl( headerMap.forEach { (key, value) -> headers.addHeader(key, value) } - return GlideUrl(urlHasQuery, headers.build()) + return GlideUrl(getDirectUrl(), headers.build()) + } + + fun getDirectUrl(): String { + val qs = fieldMap.map { + "${it.key}=${it.value}" + } + return "$url?${qs.joinToString("&")}" } fun getUserAgent(): String { @@ -431,6 +440,7 @@ class AnalyzeUrl( val method: String?, val charset: String?, val webView: Any?, + val webJs: String?, val headers: Any?, val body: Any?, val type: String?, diff --git a/app/src/main/java/io/legado/app/service/AudioPlayService.kt b/app/src/main/java/io/legado/app/service/AudioPlayService.kt index b0e60648e..4cf4d3248 100644 --- a/app/src/main/java/io/legado/app/service/AudioPlayService.kt +++ b/app/src/main/java/io/legado/app/service/AudioPlayService.kt @@ -131,10 +131,9 @@ class AudioPlayService : BaseService(), AnalyzeUrl( url, headerMapF = AudioPlay.headers(), - source = AudioPlay.bookSource, - useWebView = true + source = AudioPlay.bookSource ) - val uri = Uri.parse(analyzeUrl.url) + val uri = Uri.parse(analyzeUrl.getDirectUrl()) val dataSourceFactory = OkHttpDataSource.Factory(okHttpClient) .setDefaultRequestProperties(analyzeUrl.headerMap) val mediaSource = ExoPlayerHelper diff --git a/app/src/main/java/io/legado/app/ui/main/MainViewModel.kt b/app/src/main/java/io/legado/app/ui/main/MainViewModel.kt index ac6bda9e7..113027b3a 100644 --- a/app/src/main/java/io/legado/app/ui/main/MainViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/main/MainViewModel.kt @@ -118,8 +118,9 @@ class MainViewModel(application: Application) : BaseViewModel(application) { if (!BookHelp.hasContent(book, chapter)) { var addToCache = false while (!addToCache) { - if (CacheBook.downloadCount() < 10) { - CacheBook.download(this, bookSource, book, chapter) + val cacheBook = CacheBook.get(bookSource, book) + if (CacheBook.downloadCount < 10) { + cacheBook.download(this, chapter) addToCache = true } else { delay(100) diff --git a/app/src/main/java/io/legado/app/ui/rss/read/ReadRssActivity.kt b/app/src/main/java/io/legado/app/ui/rss/read/ReadRssActivity.kt index 64448eb51..c8e12c6dd 100644 --- a/app/src/main/java/io/legado/app/ui/rss/read/ReadRssActivity.kt +++ b/app/src/main/java/io/legado/app/ui/rss/read/ReadRssActivity.kt @@ -193,7 +193,7 @@ class ReadRssActivity : VMBaseActivity } viewModel.urlLiveData.observe(this) { upJavaScriptEnable() - binding.webView.loadUrl(it.url, it.headerMap) + binding.webView.loadUrl(it.getDirectUrl(), it.headerMap) } } diff --git a/app/src/main/java/io/legado/app/ui/rss/read/ReadRssViewModel.kt b/app/src/main/java/io/legado/app/ui/rss/read/ReadRssViewModel.kt index 1badb5706..171bb55b9 100644 --- a/app/src/main/java/io/legado/app/ui/rss/read/ReadRssViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/rss/read/ReadRssViewModel.kt @@ -84,7 +84,6 @@ class ReadRssViewModel(application: Application) : BaseViewModel(application), val analyzeUrl = AnalyzeUrl( ruleUrl = url, baseUrl = baseUrl, - useWebView = true, headerMapF = rssSource?.getHeaderMap() ) urlLiveData.postValue(analyzeUrl)