优化
This commit is contained in:
@@ -10,13 +10,18 @@ import android.os.Build
|
||||
import com.github.liuyueyi.quick.transfer.ChineseUtils
|
||||
import com.github.liuyueyi.quick.transfer.constants.TransType
|
||||
import com.jeremyliao.liveeventbus.LiveEventBus
|
||||
import com.script.rhino.RhinoScriptEngine
|
||||
import io.legado.app.base.AppContextWrapper
|
||||
import io.legado.app.constant.AppConst.channelIdDownload
|
||||
import io.legado.app.constant.AppConst.channelIdReadAloud
|
||||
import io.legado.app.constant.AppConst.channelIdWeb
|
||||
import io.legado.app.constant.PreferKey
|
||||
import io.legado.app.data.appDb
|
||||
import io.legado.app.help.*
|
||||
import io.legado.app.help.AppWebDav
|
||||
import io.legado.app.help.CrashHandler
|
||||
import io.legado.app.help.DefaultData
|
||||
import io.legado.app.help.LifecycleHelp
|
||||
import io.legado.app.help.RuleBigDataHelp
|
||||
import io.legado.app.help.book.BookHelp
|
||||
import io.legado.app.help.config.AppConfig
|
||||
import io.legado.app.help.config.ThemeConfig.applyDayNight
|
||||
@@ -36,6 +41,7 @@ class App : Application() {
|
||||
|
||||
override fun onCreate() {
|
||||
super.onCreate()
|
||||
RhinoScriptEngine
|
||||
oldConfig = Configuration(resources.configuration)
|
||||
CrashHandler(this)
|
||||
//预下载Cronet so
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package io.legado.app.data.entities
|
||||
|
||||
import cn.hutool.crypto.symmetric.AES
|
||||
import com.script.SimpleBindings
|
||||
import com.script.rhino.RhinoScriptEngine
|
||||
import io.legado.app.constant.AppConst
|
||||
import io.legado.app.constant.AppLog
|
||||
import io.legado.app.data.entities.rule.RowUi
|
||||
@@ -10,9 +12,6 @@ import io.legado.app.help.config.AppConfig
|
||||
import io.legado.app.help.http.CookieStore
|
||||
import io.legado.app.model.SharedJsScope
|
||||
import io.legado.app.rhino.Bindings
|
||||
import io.legado.app.rhino.Rhino
|
||||
import io.legado.app.rhino.evaluate
|
||||
import io.legado.app.rhino.putBindings
|
||||
import io.legado.app.utils.*
|
||||
import org.intellij.lang.annotations.Language
|
||||
import org.mozilla.javascript.Scriptable
|
||||
@@ -237,14 +236,15 @@ interface BaseSource : JsExtensions {
|
||||
bindings["baseUrl"] = getKey()
|
||||
bindings["cookie"] = CookieStore
|
||||
bindings["cache"] = CacheManager
|
||||
return Rhino.use {
|
||||
val scope = initStandardObjects()
|
||||
scope.putBindings(bindings)
|
||||
getShareScope()?.let {
|
||||
scope.prototype = it
|
||||
}
|
||||
evaluate(scope, jsStr)
|
||||
}
|
||||
// return Rhino.use {
|
||||
// val scope = initStandardObjects()
|
||||
// scope.putBindings(bindings)
|
||||
// getShareScope()?.let {
|
||||
// scope.prototype = it
|
||||
// }
|
||||
// evaluate(scope, jsStr)
|
||||
// }
|
||||
return RhinoScriptEngine.eval(jsStr, SimpleBindings(bindings))
|
||||
}
|
||||
|
||||
fun getShareScope(): Scriptable? {
|
||||
|
||||
@@ -2,6 +2,8 @@ package io.legado.app.model.analyzeRule
|
||||
|
||||
import android.text.TextUtils
|
||||
import androidx.annotation.Keep
|
||||
import com.script.SimpleBindings
|
||||
import com.script.rhino.RhinoScriptEngine
|
||||
import io.legado.app.constant.AppPattern.JS_PATTERN
|
||||
import io.legado.app.data.entities.*
|
||||
import io.legado.app.help.CacheManager
|
||||
@@ -9,9 +11,6 @@ import io.legado.app.help.JsExtensions
|
||||
import io.legado.app.help.http.CookieStore
|
||||
import io.legado.app.model.webBook.WebBook
|
||||
import io.legado.app.rhino.Bindings
|
||||
import io.legado.app.rhino.Rhino
|
||||
import io.legado.app.rhino.evaluate
|
||||
import io.legado.app.rhino.putBindings
|
||||
import io.legado.app.utils.*
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import kotlinx.coroutines.withTimeout
|
||||
@@ -695,14 +694,15 @@ class AnalyzeRule(
|
||||
bindings["title"] = chapter?.title
|
||||
bindings["src"] = content
|
||||
bindings["nextChapterUrl"] = nextChapterUrl
|
||||
return Rhino.use {
|
||||
val scope = initStandardObjects()
|
||||
scope.putBindings(bindings)
|
||||
source?.getShareScope()?.let {
|
||||
scope.prototype = it
|
||||
}
|
||||
evaluate(scope, jsStr)
|
||||
}
|
||||
// return Rhino.use {
|
||||
// val scope = initStandardObjects()
|
||||
// scope.putBindings(bindings)
|
||||
// source?.getShareScope()?.let {
|
||||
// scope.prototype = it
|
||||
// }
|
||||
// evaluate(scope, jsStr)
|
||||
// }
|
||||
return RhinoScriptEngine.eval(jsStr, SimpleBindings(bindings))
|
||||
}
|
||||
|
||||
override fun getSource(): BaseSource? {
|
||||
|
||||
@@ -5,6 +5,8 @@ import android.util.Base64
|
||||
import androidx.annotation.Keep
|
||||
import cn.hutool.core.util.HexUtil
|
||||
import com.bumptech.glide.load.model.GlideUrl
|
||||
import com.script.SimpleBindings
|
||||
import com.script.rhino.RhinoScriptEngine
|
||||
import io.legado.app.constant.AppConst.UA_NAME
|
||||
import io.legado.app.constant.AppPattern
|
||||
import io.legado.app.constant.AppPattern.JS_PATTERN
|
||||
@@ -19,9 +21,6 @@ import io.legado.app.help.config.AppConfig
|
||||
import io.legado.app.help.glide.GlideHeaders
|
||||
import io.legado.app.help.http.*
|
||||
import io.legado.app.rhino.Bindings
|
||||
import io.legado.app.rhino.Rhino
|
||||
import io.legado.app.rhino.evaluate
|
||||
import io.legado.app.rhino.putBindings
|
||||
import io.legado.app.utils.*
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.runBlocking
|
||||
@@ -267,14 +266,15 @@ class AnalyzeUrl(
|
||||
bindings["book"] = ruleData as? Book
|
||||
bindings["source"] = source
|
||||
bindings["result"] = result
|
||||
return Rhino.use {
|
||||
val scope = initStandardObjects()
|
||||
scope.putBindings(bindings)
|
||||
source?.getShareScope()?.let {
|
||||
scope.prototype = it
|
||||
}
|
||||
evaluate(scope, jsStr)
|
||||
}
|
||||
// return Rhino.use {
|
||||
// val scope = initStandardObjects()
|
||||
// scope.putBindings(bindings)
|
||||
// source?.getShareScope()?.let {
|
||||
// scope.prototype = it
|
||||
// }
|
||||
// evaluate(scope, jsStr)
|
||||
// }
|
||||
return RhinoScriptEngine.eval(jsStr, SimpleBindings(bindings))
|
||||
}
|
||||
|
||||
fun put(key: String, value: String): String {
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
package io.legado.app.rhino
|
||||
|
||||
import com.script.RhinoContextFactory
|
||||
import org.mozilla.javascript.Context
|
||||
import org.mozilla.javascript.ContextFactory
|
||||
import org.mozilla.javascript.Undefined
|
||||
import org.mozilla.javascript.Wrapper
|
||||
|
||||
@@ -25,19 +23,18 @@ object Rhino {
|
||||
return if (result1 is Undefined) null else result1
|
||||
}
|
||||
|
||||
init {
|
||||
ContextFactory.initGlobal(object : RhinoContextFactory() {
|
||||
|
||||
override fun makeContext(): Context {
|
||||
val cx = super.makeContext()
|
||||
cx.languageVersion = 200
|
||||
cx.optimizationLevel = -1
|
||||
cx.setClassShutter(RhinoClassShutter)
|
||||
//cx.wrapFactory = RhinoWrapFactory
|
||||
return cx
|
||||
}
|
||||
|
||||
})
|
||||
}
|
||||
// init {
|
||||
// ContextFactory.initGlobal(object : RhinoContextFactory() {
|
||||
//
|
||||
// override fun makeContext(): Context {
|
||||
// val cx = super.makeContext()
|
||||
// cx.languageVersion = 200
|
||||
// cx.optimizationLevel = -1
|
||||
// cx.setClassShutter(RhinoClassShutter)
|
||||
// return cx
|
||||
// }
|
||||
//
|
||||
// })
|
||||
// }
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user