优化
Some checks failed
Test Build / prepare (push) Waiting to run
Test Build / build (app, release) (push) Blocked by required conditions
Test Build / build (app, releaseA) (push) Blocked by required conditions
Test Build / prerelease (push) Blocked by required conditions
Test Build / lanzou (push) Blocked by required conditions
Test Build / test_Branch (push) Blocked by required conditions
Test Build / telegram (push) Blocked by required conditions
closeStaleIssue / stale (push) Has been cancelled

This commit is contained in:
Horis
2025-03-25 23:00:19 +08:00
parent 450065aec9
commit 4af4644ea1
13 changed files with 21 additions and 23 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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<String, String>()
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"

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -1296,9 +1296,11 @@ class ReadBookActivity : BaseReadBookActivity(),
}.onSuccess(IO) {
if (it.isAbsUrl()) {
startActivity<WebViewActivity> {
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()) {
//购买成功后刷新目录

View File

@@ -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

View File

@@ -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) {

View File

@@ -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() {

View File

@@ -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) {

View File

@@ -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

View File

@@ -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