优化
This commit is contained in:
@@ -28,7 +28,7 @@ import io.legado.app.utils.getFile
|
|||||||
import io.legado.app.utils.isContentScheme
|
import io.legado.app.utils.isContentScheme
|
||||||
import io.legado.app.utils.onEachParallel
|
import io.legado.app.utils.onEachParallel
|
||||||
import io.legado.app.utils.postEvent
|
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.Dispatchers.IO
|
||||||
import kotlinx.coroutines.coroutineScope
|
import kotlinx.coroutines.coroutineScope
|
||||||
import kotlinx.coroutines.ensureActive
|
import kotlinx.coroutines.ensureActive
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import io.legado.app.exception.NoStackTraceException
|
|||||||
import io.legado.app.model.ReadManga
|
import io.legado.app.model.ReadManga
|
||||||
import io.legado.app.model.analyzeRule.AnalyzeUrl
|
import io.legado.app.model.analyzeRule.AnalyzeUrl
|
||||||
import io.legado.app.utils.ImageUtils
|
import io.legado.app.utils.ImageUtils
|
||||||
import io.legado.app.utils.runScriptWithContext
|
import com.script.rhino.runScriptWithContext
|
||||||
import kotlinx.coroutines.Job
|
import kotlinx.coroutines.Job
|
||||||
import java.io.InputStream
|
import java.io.InputStream
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ import io.legado.app.help.source.SourceHelp
|
|||||||
import io.legado.app.model.ReadManga
|
import io.legado.app.model.ReadManga
|
||||||
import io.legado.app.utils.ImageUtils
|
import io.legado.app.utils.ImageUtils
|
||||||
import io.legado.app.utils.isWifiConnect
|
import io.legado.app.utils.isWifiConnect
|
||||||
import io.legado.app.utils.runScriptWithContext
|
import com.script.rhino.runScriptWithContext
|
||||||
import kotlinx.coroutines.Job
|
import kotlinx.coroutines.Job
|
||||||
import okhttp3.Call
|
import okhttp3.Call
|
||||||
import okhttp3.Request
|
import okhttp3.Request
|
||||||
@@ -63,8 +63,10 @@ class OkHttpStreamFetcher(
|
|||||||
val headerMap = HashMap<String, String>()
|
val headerMap = HashMap<String, String>()
|
||||||
options.get(OkHttpModelLoader.sourceOriginOption)?.let { sourceUrl ->
|
options.get(OkHttpModelLoader.sourceOriginOption)?.let { sourceUrl ->
|
||||||
source = SourceHelp.getSource(sourceUrl)
|
source = SourceHelp.getSource(sourceUrl)
|
||||||
source?.getHeaderMap(true)?.let {
|
runScriptWithContext(coroutineContext) {
|
||||||
headerMap.putAll(it)
|
source?.getHeaderMap(true)?.let {
|
||||||
|
headerMap.putAll(it)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (source?.enabledCookieJar == true) {
|
if (source?.enabledCookieJar == true) {
|
||||||
headerMap[cookieJarHeader] = "1"
|
headerMap[cookieJarHeader] = "1"
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import io.legado.app.utils.MD5Utils
|
|||||||
import io.legado.app.utils.fromJsonArray
|
import io.legado.app.utils.fromJsonArray
|
||||||
import io.legado.app.utils.isJsonArray
|
import io.legado.app.utils.isJsonArray
|
||||||
import io.legado.app.utils.printOnDebug
|
import io.legado.app.utils.printOnDebug
|
||||||
import io.legado.app.utils.runScriptWithContext
|
import com.script.rhino.runScriptWithContext
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.sync.Mutex
|
import kotlinx.coroutines.sync.Mutex
|
||||||
import kotlinx.coroutines.sync.withLock
|
import kotlinx.coroutines.sync.withLock
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import io.legado.app.data.entities.RssSource
|
|||||||
import io.legado.app.utils.ACache
|
import io.legado.app.utils.ACache
|
||||||
import io.legado.app.utils.MD5Utils
|
import io.legado.app.utils.MD5Utils
|
||||||
import io.legado.app.utils.NetworkUtils
|
import io.legado.app.utils.NetworkUtils
|
||||||
import io.legado.app.utils.runScriptWithContext
|
import com.script.rhino.runScriptWithContext
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.withContext
|
import kotlinx.coroutines.withContext
|
||||||
|
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ import io.legado.app.utils.isJson
|
|||||||
import io.legado.app.utils.isJsonArray
|
import io.legado.app.utils.isJsonArray
|
||||||
import io.legado.app.utils.isJsonObject
|
import io.legado.app.utils.isJsonObject
|
||||||
import io.legado.app.utils.isXml
|
import io.legado.app.utils.isXml
|
||||||
import io.legado.app.utils.runScriptWithContext
|
import com.script.rhino.runScriptWithContext
|
||||||
import io.legado.app.utils.splitNotBlank
|
import io.legado.app.utils.splitNotBlank
|
||||||
import kotlinx.coroutines.runBlocking
|
import kotlinx.coroutines.runBlocking
|
||||||
import okhttp3.MediaType.Companion.toMediaType
|
import okhttp3.MediaType.Companion.toMediaType
|
||||||
|
|||||||
@@ -1296,9 +1296,11 @@ class ReadBookActivity : BaseReadBookActivity(),
|
|||||||
}.onSuccess(IO) {
|
}.onSuccess(IO) {
|
||||||
if (it.isAbsUrl()) {
|
if (it.isAbsUrl()) {
|
||||||
startActivity<WebViewActivity> {
|
startActivity<WebViewActivity> {
|
||||||
|
val bookSource = ReadBook.bookSource
|
||||||
putExtra("title", getString(R.string.chapter_pay))
|
putExtra("title", getString(R.string.chapter_pay))
|
||||||
putExtra("url", it)
|
putExtra("url", it)
|
||||||
putExtra("sourceOrigin", ReadBook.bookSource?.bookSourceUrl)
|
putExtra("sourceOrigin", bookSource?.bookSourceUrl)
|
||||||
|
putExtra("sourceName", bookSource?.bookSourceName)
|
||||||
}
|
}
|
||||||
} else if (it.isTrue()) {
|
} else if (it.isTrue()) {
|
||||||
//购买成功后刷新目录
|
//购买成功后刷新目录
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ import io.legado.app.utils.dpToPx
|
|||||||
import io.legado.app.utils.isAbsUrl
|
import io.legado.app.utils.isAbsUrl
|
||||||
import io.legado.app.utils.openUrl
|
import io.legado.app.utils.openUrl
|
||||||
import io.legado.app.utils.printOnDebug
|
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.setLayout
|
||||||
import io.legado.app.utils.showDialogFragment
|
import io.legado.app.utils.showDialogFragment
|
||||||
import io.legado.app.utils.toastOnUi
|
import io.legado.app.utils.toastOnUi
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import io.legado.app.base.BaseViewModel
|
|||||||
import io.legado.app.data.appDb
|
import io.legado.app.data.appDb
|
||||||
import io.legado.app.data.entities.BaseSource
|
import io.legado.app.data.entities.BaseSource
|
||||||
import io.legado.app.exception.NoStackTraceException
|
import io.legado.app.exception.NoStackTraceException
|
||||||
import io.legado.app.utils.runScriptWithContext
|
import com.script.rhino.runScriptWithContext
|
||||||
import io.legado.app.utils.toastOnUi
|
import io.legado.app.utils.toastOnUi
|
||||||
|
|
||||||
class SourceLoginViewModel(application: Application) : BaseViewModel(application) {
|
class SourceLoginViewModel(application: Application) : BaseViewModel(application) {
|
||||||
|
|||||||
@@ -16,7 +16,6 @@ import android.webkit.WebSettings
|
|||||||
import android.webkit.WebView
|
import android.webkit.WebView
|
||||||
import android.webkit.WebViewClient
|
import android.webkit.WebViewClient
|
||||||
import androidx.fragment.app.activityViewModels
|
import androidx.fragment.app.activityViewModels
|
||||||
import androidx.lifecycle.lifecycleScope
|
|
||||||
import io.legado.app.R
|
import io.legado.app.R
|
||||||
import io.legado.app.base.BaseFragment
|
import io.legado.app.base.BaseFragment
|
||||||
import io.legado.app.constant.AppConst
|
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.openUrl
|
||||||
import io.legado.app.utils.snackbar
|
import io.legado.app.utils.snackbar
|
||||||
import io.legado.app.utils.viewbindingdelegate.viewBinding
|
import io.legado.app.utils.viewbindingdelegate.viewBinding
|
||||||
import kotlinx.coroutines.launch
|
|
||||||
|
|
||||||
class WebViewLoginFragment : BaseFragment(R.layout.fragment_web_view_login) {
|
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) {
|
private fun loadUrl(source: BaseSource) {
|
||||||
lifecycleScope.launch {
|
val loginUrl = source.loginUrl ?: return
|
||||||
val loginUrl = source.loginUrl ?: return@launch
|
val absoluteUrl = NetworkUtils.getAbsoluteURL(source.getKey(), loginUrl)
|
||||||
val absoluteUrl = NetworkUtils.getAbsoluteURL(source.getKey(), loginUrl)
|
binding.webView.loadUrl(absoluteUrl, viewModel.headerMap)
|
||||||
binding.webView.loadUrl(absoluteUrl, viewModel.headerMap)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onDestroy() {
|
override fun onDestroy() {
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import android.app.Application
|
|||||||
import io.legado.app.base.BaseViewModel
|
import io.legado.app.base.BaseViewModel
|
||||||
import io.legado.app.data.appDb
|
import io.legado.app.data.appDb
|
||||||
import io.legado.app.data.entities.RssSource
|
import io.legado.app.data.entities.RssSource
|
||||||
import io.legado.app.utils.runScriptWithContext
|
import com.script.rhino.runScriptWithContext
|
||||||
import io.legado.app.utils.toastOnUi
|
import io.legado.app.utils.toastOnUi
|
||||||
|
|
||||||
class RssViewModel(application: Application) : BaseViewModel(application) {
|
class RssViewModel(application: Application) : BaseViewModel(application) {
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ import io.legado.app.help.http.newCallResponseBody
|
|||||||
import io.legado.app.help.http.okHttpClient
|
import io.legado.app.help.http.okHttpClient
|
||||||
import io.legado.app.model.analyzeRule.AnalyzeUrl
|
import io.legado.app.model.analyzeRule.AnalyzeUrl
|
||||||
import io.legado.app.model.rss.Rss
|
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.toastOnUi
|
||||||
import io.legado.app.utils.writeBytes
|
import io.legado.app.utils.writeBytes
|
||||||
import kotlinx.coroutines.Dispatchers.IO
|
import kotlinx.coroutines.Dispatchers.IO
|
||||||
|
|||||||
@@ -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.CoroutineScope
|
||||||
import kotlinx.coroutines.runBlocking
|
import kotlinx.coroutines.runBlocking
|
||||||
import kotlinx.coroutines.supervisorScope
|
import kotlinx.coroutines.supervisorScope
|
||||||
|
|||||||
Reference in New Issue
Block a user