From 4af4644ea1430841599be70ac15e0e1ec1c7d37c Mon Sep 17 00:00:00 2001 From: Horis <8674809+821938089@users.noreply.github.com> Date: Tue, 25 Mar 2025 23:00:19 +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 --- app/src/main/java/io/legado/app/help/book/BookHelp.kt | 2 +- .../io/legado/app/help/glide/LegadoDataUrlLoader.kt | 2 +- .../io/legado/app/help/glide/OkHttpStreamFetcher.kt | 8 +++++--- .../io/legado/app/help/source/BookSourceExtensions.kt | 2 +- .../io/legado/app/help/source/RssSourceExtensions.kt | 2 +- .../java/io/legado/app/model/analyzeRule/AnalyzeUrl.kt | 2 +- .../io/legado/app/ui/book/read/ReadBookActivity.kt | 4 +++- .../java/io/legado/app/ui/login/SourceLoginDialog.kt | 2 +- .../io/legado/app/ui/login/SourceLoginViewModel.kt | 2 +- .../io/legado/app/ui/login/WebViewLoginFragment.kt | 10 +++------- .../java/io/legado/app/ui/main/rss/RssViewModel.kt | 2 +- .../java/io/legado/app/ui/rss/read/ReadRssViewModel.kt | 2 +- .../src/main/java/com/script/rhino/RhinoExtensions.kt | 4 +--- 13 files changed, 21 insertions(+), 23 deletions(-) diff --git a/app/src/main/java/io/legado/app/help/book/BookHelp.kt b/app/src/main/java/io/legado/app/help/book/BookHelp.kt index f2587aec9..c9dd19cbe 100644 --- a/app/src/main/java/io/legado/app/help/book/BookHelp.kt +++ b/app/src/main/java/io/legado/app/help/book/BookHelp.kt @@ -28,7 +28,7 @@ import io.legado.app.utils.getFile import io.legado.app.utils.isContentScheme import io.legado.app.utils.onEachParallel import io.legado.app.utils.postEvent -import io.legado.app.utils.runScriptWithContext +import com.script.rhino.runScriptWithContext import kotlinx.coroutines.Dispatchers.IO import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.ensureActive diff --git a/app/src/main/java/io/legado/app/help/glide/LegadoDataUrlLoader.kt b/app/src/main/java/io/legado/app/help/glide/LegadoDataUrlLoader.kt index d089704be..a7e14be07 100644 --- a/app/src/main/java/io/legado/app/help/glide/LegadoDataUrlLoader.kt +++ b/app/src/main/java/io/legado/app/help/glide/LegadoDataUrlLoader.kt @@ -12,7 +12,7 @@ import io.legado.app.exception.NoStackTraceException import io.legado.app.model.ReadManga import io.legado.app.model.analyzeRule.AnalyzeUrl import io.legado.app.utils.ImageUtils -import io.legado.app.utils.runScriptWithContext +import com.script.rhino.runScriptWithContext import kotlinx.coroutines.Job import java.io.InputStream diff --git a/app/src/main/java/io/legado/app/help/glide/OkHttpStreamFetcher.kt b/app/src/main/java/io/legado/app/help/glide/OkHttpStreamFetcher.kt index d602807a2..b984d8fc7 100644 --- a/app/src/main/java/io/legado/app/help/glide/OkHttpStreamFetcher.kt +++ b/app/src/main/java/io/legado/app/help/glide/OkHttpStreamFetcher.kt @@ -17,7 +17,7 @@ import io.legado.app.help.source.SourceHelp import io.legado.app.model.ReadManga import io.legado.app.utils.ImageUtils import io.legado.app.utils.isWifiConnect -import io.legado.app.utils.runScriptWithContext +import com.script.rhino.runScriptWithContext import kotlinx.coroutines.Job import okhttp3.Call import okhttp3.Request @@ -63,8 +63,10 @@ class OkHttpStreamFetcher( val headerMap = HashMap() options.get(OkHttpModelLoader.sourceOriginOption)?.let { sourceUrl -> source = SourceHelp.getSource(sourceUrl) - source?.getHeaderMap(true)?.let { - headerMap.putAll(it) + runScriptWithContext(coroutineContext) { + source?.getHeaderMap(true)?.let { + headerMap.putAll(it) + } } if (source?.enabledCookieJar == true) { headerMap[cookieJarHeader] = "1" diff --git a/app/src/main/java/io/legado/app/help/source/BookSourceExtensions.kt b/app/src/main/java/io/legado/app/help/source/BookSourceExtensions.kt index 8ead82d4e..eda0978df 100644 --- a/app/src/main/java/io/legado/app/help/source/BookSourceExtensions.kt +++ b/app/src/main/java/io/legado/app/help/source/BookSourceExtensions.kt @@ -11,7 +11,7 @@ import io.legado.app.utils.MD5Utils import io.legado.app.utils.fromJsonArray import io.legado.app.utils.isJsonArray import io.legado.app.utils.printOnDebug -import io.legado.app.utils.runScriptWithContext +import com.script.rhino.runScriptWithContext import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.sync.Mutex import kotlinx.coroutines.sync.withLock diff --git a/app/src/main/java/io/legado/app/help/source/RssSourceExtensions.kt b/app/src/main/java/io/legado/app/help/source/RssSourceExtensions.kt index beecad74a..230b6f72a 100644 --- a/app/src/main/java/io/legado/app/help/source/RssSourceExtensions.kt +++ b/app/src/main/java/io/legado/app/help/source/RssSourceExtensions.kt @@ -4,7 +4,7 @@ import io.legado.app.data.entities.RssSource import io.legado.app.utils.ACache import io.legado.app.utils.MD5Utils import io.legado.app.utils.NetworkUtils -import io.legado.app.utils.runScriptWithContext +import com.script.rhino.runScriptWithContext import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext 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 336558be7..4e50df2f6 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 @@ -45,7 +45,7 @@ import io.legado.app.utils.isJson import io.legado.app.utils.isJsonArray import io.legado.app.utils.isJsonObject import io.legado.app.utils.isXml -import io.legado.app.utils.runScriptWithContext +import com.script.rhino.runScriptWithContext import io.legado.app.utils.splitNotBlank import kotlinx.coroutines.runBlocking import okhttp3.MediaType.Companion.toMediaType diff --git a/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt b/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt index a51a25856..1ad8aee62 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt @@ -1296,9 +1296,11 @@ class ReadBookActivity : BaseReadBookActivity(), }.onSuccess(IO) { if (it.isAbsUrl()) { startActivity { + val bookSource = ReadBook.bookSource putExtra("title", getString(R.string.chapter_pay)) putExtra("url", it) - putExtra("sourceOrigin", ReadBook.bookSource?.bookSourceUrl) + putExtra("sourceOrigin", bookSource?.bookSourceUrl) + putExtra("sourceName", bookSource?.bookSourceName) } } else if (it.isTrue()) { //购买成功后刷新目录 diff --git a/app/src/main/java/io/legado/app/ui/login/SourceLoginDialog.kt b/app/src/main/java/io/legado/app/ui/login/SourceLoginDialog.kt index dc7326651..b01a0f38f 100644 --- a/app/src/main/java/io/legado/app/ui/login/SourceLoginDialog.kt +++ b/app/src/main/java/io/legado/app/ui/login/SourceLoginDialog.kt @@ -25,7 +25,7 @@ import io.legado.app.utils.dpToPx import io.legado.app.utils.isAbsUrl import io.legado.app.utils.openUrl import io.legado.app.utils.printOnDebug -import io.legado.app.utils.runScriptWithContext +import com.script.rhino.runScriptWithContext import io.legado.app.utils.setLayout import io.legado.app.utils.showDialogFragment import io.legado.app.utils.toastOnUi diff --git a/app/src/main/java/io/legado/app/ui/login/SourceLoginViewModel.kt b/app/src/main/java/io/legado/app/ui/login/SourceLoginViewModel.kt index 0774407b4..b0870c6bc 100644 --- a/app/src/main/java/io/legado/app/ui/login/SourceLoginViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/login/SourceLoginViewModel.kt @@ -6,7 +6,7 @@ import io.legado.app.base.BaseViewModel import io.legado.app.data.appDb import io.legado.app.data.entities.BaseSource import io.legado.app.exception.NoStackTraceException -import io.legado.app.utils.runScriptWithContext +import com.script.rhino.runScriptWithContext import io.legado.app.utils.toastOnUi class SourceLoginViewModel(application: Application) : BaseViewModel(application) { diff --git a/app/src/main/java/io/legado/app/ui/login/WebViewLoginFragment.kt b/app/src/main/java/io/legado/app/ui/login/WebViewLoginFragment.kt index ece7a5bcb..70ebdd227 100644 --- a/app/src/main/java/io/legado/app/ui/login/WebViewLoginFragment.kt +++ b/app/src/main/java/io/legado/app/ui/login/WebViewLoginFragment.kt @@ -16,7 +16,6 @@ import android.webkit.WebSettings import android.webkit.WebView import android.webkit.WebViewClient import androidx.fragment.app.activityViewModels -import androidx.lifecycle.lifecycleScope import io.legado.app.R import io.legado.app.base.BaseFragment import io.legado.app.constant.AppConst @@ -30,7 +29,6 @@ import io.legado.app.utils.longSnackbar import io.legado.app.utils.openUrl import io.legado.app.utils.snackbar import io.legado.app.utils.viewbindingdelegate.viewBinding -import kotlinx.coroutines.launch class WebViewLoginFragment : BaseFragment(R.layout.fragment_web_view_login) { @@ -146,11 +144,9 @@ class WebViewLoginFragment : BaseFragment(R.layout.fragment_web_view_login) { } private fun loadUrl(source: BaseSource) { - lifecycleScope.launch { - val loginUrl = source.loginUrl ?: return@launch - val absoluteUrl = NetworkUtils.getAbsoluteURL(source.getKey(), loginUrl) - binding.webView.loadUrl(absoluteUrl, viewModel.headerMap) - } + val loginUrl = source.loginUrl ?: return + val absoluteUrl = NetworkUtils.getAbsoluteURL(source.getKey(), loginUrl) + binding.webView.loadUrl(absoluteUrl, viewModel.headerMap) } override fun onDestroy() { 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 c033459ed..f8495caae 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 @@ -4,7 +4,7 @@ import android.app.Application import io.legado.app.base.BaseViewModel import io.legado.app.data.appDb import io.legado.app.data.entities.RssSource -import io.legado.app.utils.runScriptWithContext +import com.script.rhino.runScriptWithContext import io.legado.app.utils.toastOnUi class RssViewModel(application: Application) : BaseViewModel(application) { 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 bb5395722..5c6766056 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 @@ -21,7 +21,7 @@ import io.legado.app.help.http.newCallResponseBody import io.legado.app.help.http.okHttpClient import io.legado.app.model.analyzeRule.AnalyzeUrl import io.legado.app.model.rss.Rss -import io.legado.app.utils.runScriptWithContext +import com.script.rhino.runScriptWithContext import io.legado.app.utils.toastOnUi import io.legado.app.utils.writeBytes import kotlinx.coroutines.Dispatchers.IO diff --git a/modules/rhino/src/main/java/com/script/rhino/RhinoExtensions.kt b/modules/rhino/src/main/java/com/script/rhino/RhinoExtensions.kt index 4097956a1..112443ba7 100644 --- a/modules/rhino/src/main/java/com/script/rhino/RhinoExtensions.kt +++ b/modules/rhino/src/main/java/com/script/rhino/RhinoExtensions.kt @@ -1,7 +1,5 @@ -package io.legado.app.utils +package com.script.rhino -import com.script.rhino.RhinoContext -import com.script.rhino.RhinoScriptEngine import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.runBlocking import kotlinx.coroutines.supervisorScope