mirror of
https://github.com/gedoor/legado.git
synced 2024-08-30 09:23:26 +08:00
更新js库
This commit is contained in:
parent
95efc4f4ec
commit
7c251e1905
@ -211,7 +211,8 @@ dependencies {
|
|||||||
implementation(project(path: ':epublib'))
|
implementation(project(path: ':epublib'))
|
||||||
|
|
||||||
//JS rhino
|
//JS rhino
|
||||||
implementation('com.github.gedoor:rhino-android:1.8')
|
//implementation('com.github.gedoor:rhino-android:1.8')
|
||||||
|
implementation(fileTree(dir: 'lib', include: ['*.jar', '*.aar']))
|
||||||
|
|
||||||
//网络
|
//网络
|
||||||
implementation('com.squareup.okhttp3:okhttp:4.9.3')
|
implementation('com.squareup.okhttp3:okhttp:4.9.3')
|
||||||
|
BIN
app/lib/rhino-1.7.13-1.jar
Normal file
BIN
app/lib/rhino-1.7.13-1.jar
Normal file
Binary file not shown.
@ -14,6 +14,19 @@
|
|||||||
**2022/04/21**
|
**2022/04/21**
|
||||||
|
|
||||||
* 修复一些bug
|
* 修复一些bug
|
||||||
|
* 更新js库
|
||||||
|
|
||||||
|
```
|
||||||
|
实现 ES6 Object.values Object.entries Object.fromEntries
|
||||||
|
实现 ES2017 Object.getOwnPropertyDescriptors
|
||||||
|
添加:支持“catch”中的可选变量绑定
|
||||||
|
添加:反单引号里`${}`语法支持(用于字符串连接)
|
||||||
|
添加:equals (==) 等号的支持
|
||||||
|
添加:NativeArray.subList()
|
||||||
|
添加:Object.hasOwn
|
||||||
|
修复:(for of)导出字符串 of前无空格导致语法错误问题
|
||||||
|
其他一些优化
|
||||||
|
```
|
||||||
|
|
||||||
**2022/04/17**
|
**2022/04/17**
|
||||||
|
|
||||||
|
@ -3,12 +3,11 @@ package io.legado.app.constant
|
|||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.content.pm.PackageManager
|
import android.content.pm.PackageManager
|
||||||
import android.provider.Settings
|
import android.provider.Settings
|
||||||
|
import com.script.javascript.RhinoScriptEngine
|
||||||
import io.legado.app.BuildConfig
|
import io.legado.app.BuildConfig
|
||||||
import io.legado.app.R
|
import io.legado.app.R
|
||||||
import splitties.init.appCtx
|
import splitties.init.appCtx
|
||||||
import java.text.SimpleDateFormat
|
import java.text.SimpleDateFormat
|
||||||
import javax.script.ScriptEngine
|
|
||||||
import javax.script.ScriptEngineManager
|
|
||||||
|
|
||||||
@SuppressLint("SimpleDateFormat")
|
@SuppressLint("SimpleDateFormat")
|
||||||
object AppConst {
|
object AppConst {
|
||||||
@ -23,8 +22,8 @@ object AppConst {
|
|||||||
|
|
||||||
const val MAX_THREAD = 9
|
const val MAX_THREAD = 9
|
||||||
|
|
||||||
val SCRIPT_ENGINE: ScriptEngine by lazy {
|
val SCRIPT_ENGINE: RhinoScriptEngine by lazy {
|
||||||
ScriptEngineManager().getEngineByName("rhino")
|
RhinoScriptEngine()
|
||||||
}
|
}
|
||||||
|
|
||||||
val timeFormat: SimpleDateFormat by lazy {
|
val timeFormat: SimpleDateFormat by lazy {
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package io.legado.app.data.entities
|
package io.legado.app.data.entities
|
||||||
|
|
||||||
import android.util.Base64
|
import android.util.Base64
|
||||||
|
import com.script.SimpleBindings
|
||||||
import io.legado.app.constant.AppConst
|
import io.legado.app.constant.AppConst
|
||||||
import io.legado.app.constant.AppLog
|
import io.legado.app.constant.AppLog
|
||||||
import io.legado.app.data.entities.rule.RowUi
|
import io.legado.app.data.entities.rule.RowUi
|
||||||
@ -9,7 +10,6 @@ import io.legado.app.help.JsExtensions
|
|||||||
import io.legado.app.help.config.AppConfig
|
import io.legado.app.help.config.AppConfig
|
||||||
import io.legado.app.help.http.CookieStore
|
import io.legado.app.help.http.CookieStore
|
||||||
import io.legado.app.utils.*
|
import io.legado.app.utils.*
|
||||||
import javax.script.SimpleBindings
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 可在js里调用,source.xxx()
|
* 可在js里调用,source.xxx()
|
||||||
|
@ -2,6 +2,7 @@ package io.legado.app.model.analyzeRule
|
|||||||
|
|
||||||
import android.text.TextUtils
|
import android.text.TextUtils
|
||||||
import androidx.annotation.Keep
|
import androidx.annotation.Keep
|
||||||
|
import com.script.SimpleBindings
|
||||||
import io.legado.app.constant.AppConst.SCRIPT_ENGINE
|
import io.legado.app.constant.AppConst.SCRIPT_ENGINE
|
||||||
import io.legado.app.constant.AppPattern.JS_PATTERN
|
import io.legado.app.constant.AppPattern.JS_PATTERN
|
||||||
import io.legado.app.data.entities.*
|
import io.legado.app.data.entities.*
|
||||||
@ -13,10 +14,8 @@ import io.legado.app.utils.*
|
|||||||
import kotlinx.coroutines.runBlocking
|
import kotlinx.coroutines.runBlocking
|
||||||
import org.jsoup.nodes.Entities
|
import org.jsoup.nodes.Entities
|
||||||
import org.mozilla.javascript.NativeObject
|
import org.mozilla.javascript.NativeObject
|
||||||
|
|
||||||
import java.net.URL
|
import java.net.URL
|
||||||
import java.util.regex.Pattern
|
import java.util.regex.Pattern
|
||||||
import javax.script.SimpleBindings
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 解析规则获取结果
|
* 解析规则获取结果
|
||||||
|
@ -5,6 +5,7 @@ import android.util.Base64
|
|||||||
import androidx.annotation.Keep
|
import androidx.annotation.Keep
|
||||||
import com.bumptech.glide.load.model.GlideUrl
|
import com.bumptech.glide.load.model.GlideUrl
|
||||||
import com.bumptech.glide.load.model.LazyHeaders
|
import com.bumptech.glide.load.model.LazyHeaders
|
||||||
|
import com.script.SimpleBindings
|
||||||
import io.legado.app.constant.AppConst.SCRIPT_ENGINE
|
import io.legado.app.constant.AppConst.SCRIPT_ENGINE
|
||||||
import io.legado.app.constant.AppConst.UA_NAME
|
import io.legado.app.constant.AppConst.UA_NAME
|
||||||
import io.legado.app.constant.AppPattern.JS_PATTERN
|
import io.legado.app.constant.AppPattern.JS_PATTERN
|
||||||
@ -24,7 +25,6 @@ import okhttp3.RequestBody.Companion.toRequestBody
|
|||||||
import okhttp3.Response
|
import okhttp3.Response
|
||||||
import java.net.URLEncoder
|
import java.net.URLEncoder
|
||||||
import java.util.regex.Pattern
|
import java.util.regex.Pattern
|
||||||
import javax.script.SimpleBindings
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by GKF on 2018/1/24.
|
* Created by GKF on 2018/1/24.
|
||||||
|
@ -2,6 +2,7 @@ package io.legado.app.model.localBook
|
|||||||
|
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import androidx.documentfile.provider.DocumentFile
|
import androidx.documentfile.provider.DocumentFile
|
||||||
|
import com.script.SimpleBindings
|
||||||
import io.legado.app.R
|
import io.legado.app.R
|
||||||
import io.legado.app.constant.AppConst
|
import io.legado.app.constant.AppConst
|
||||||
import io.legado.app.data.appDb
|
import io.legado.app.data.appDb
|
||||||
@ -17,7 +18,6 @@ import java.io.FileInputStream
|
|||||||
import java.io.FileNotFoundException
|
import java.io.FileNotFoundException
|
||||||
import java.io.InputStream
|
import java.io.InputStream
|
||||||
import java.util.regex.Pattern
|
import java.util.regex.Pattern
|
||||||
import javax.script.SimpleBindings
|
|
||||||
|
|
||||||
object LocalBook {
|
object LocalBook {
|
||||||
|
|
||||||
|
@ -2,6 +2,7 @@ package io.legado.app.service
|
|||||||
|
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import androidx.core.app.NotificationCompat
|
import androidx.core.app.NotificationCompat
|
||||||
|
import com.script.ScriptException
|
||||||
import io.legado.app.R
|
import io.legado.app.R
|
||||||
import io.legado.app.base.BaseService
|
import io.legado.app.base.BaseService
|
||||||
import io.legado.app.constant.AppConst
|
import io.legado.app.constant.AppConst
|
||||||
@ -28,7 +29,6 @@ import kotlinx.coroutines.asCoroutineDispatcher
|
|||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import org.mozilla.javascript.WrappedException
|
import org.mozilla.javascript.WrappedException
|
||||||
import java.util.concurrent.Executors
|
import java.util.concurrent.Executors
|
||||||
import javax.script.ScriptException
|
|
||||||
import kotlin.math.min
|
import kotlin.math.min
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -6,6 +6,7 @@ import com.google.android.exoplayer2.ExoPlayer
|
|||||||
import com.google.android.exoplayer2.MediaItem
|
import com.google.android.exoplayer2.MediaItem
|
||||||
import com.google.android.exoplayer2.PlaybackException
|
import com.google.android.exoplayer2.PlaybackException
|
||||||
import com.google.android.exoplayer2.Player
|
import com.google.android.exoplayer2.Player
|
||||||
|
import com.script.ScriptException
|
||||||
import io.legado.app.R
|
import io.legado.app.R
|
||||||
import io.legado.app.constant.AppLog
|
import io.legado.app.constant.AppLog
|
||||||
import io.legado.app.constant.AppPattern
|
import io.legado.app.constant.AppPattern
|
||||||
@ -25,7 +26,6 @@ import java.io.File
|
|||||||
import java.net.ConnectException
|
import java.net.ConnectException
|
||||||
import java.net.SocketTimeoutException
|
import java.net.SocketTimeoutException
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import javax.script.ScriptException
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 在线朗读
|
* 在线朗读
|
||||||
|
@ -9,6 +9,7 @@ import androidx.lifecycle.MutableLiveData
|
|||||||
import com.bumptech.glide.Glide
|
import com.bumptech.glide.Glide
|
||||||
import com.bumptech.glide.request.target.CustomTarget
|
import com.bumptech.glide.request.target.CustomTarget
|
||||||
import com.bumptech.glide.request.transition.Transition
|
import com.bumptech.glide.request.transition.Transition
|
||||||
|
import com.script.SimpleBindings
|
||||||
import io.legado.app.R
|
import io.legado.app.R
|
||||||
import io.legado.app.base.BaseViewModel
|
import io.legado.app.base.BaseViewModel
|
||||||
import io.legado.app.constant.AppConst
|
import io.legado.app.constant.AppConst
|
||||||
@ -33,7 +34,6 @@ import java.io.File
|
|||||||
import java.io.FileOutputStream
|
import java.io.FileOutputStream
|
||||||
import java.nio.charset.Charset
|
import java.nio.charset.Charset
|
||||||
import java.util.concurrent.ConcurrentHashMap
|
import java.util.concurrent.ConcurrentHashMap
|
||||||
import javax.script.SimpleBindings
|
|
||||||
|
|
||||||
|
|
||||||
class CacheViewModel(application: Application) : BaseViewModel(application) {
|
class CacheViewModel(application: Application) : BaseViewModel(application) {
|
||||||
|
@ -69,7 +69,7 @@ class WebViewActivity : VMBaseActivity<ActivityWebViewBinding, WebViewModel>() {
|
|||||||
return super.onCompatOptionsItemSelected(item)
|
return super.onCompatOptionsItemSelected(item)
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressLint("JavascriptInterface")
|
@SuppressLint("JavascriptInterface", "SetJavaScriptEnabled")
|
||||||
private fun initWebView(url: String, headerMap: HashMap<String, String>) {
|
private fun initWebView(url: String, headerMap: HashMap<String, String>) {
|
||||||
binding.webView.webChromeClient = CustomWebChromeClient()
|
binding.webView.webChromeClient = CustomWebChromeClient()
|
||||||
binding.webView.webViewClient = CustomWebViewClient()
|
binding.webView.webViewClient = CustomWebViewClient()
|
||||||
@ -100,11 +100,11 @@ class WebViewActivity : VMBaseActivity<ActivityWebViewBinding, WebViewModel>() {
|
|||||||
}
|
}
|
||||||
return@setOnLongClickListener false
|
return@setOnLongClickListener false
|
||||||
}
|
}
|
||||||
binding.webView.setDownloadListener { url, _, contentDisposition, _, _ ->
|
binding.webView.setDownloadListener { downloadUrl, _, contentDisposition, _, _ ->
|
||||||
var fileName = URLUtil.guessFileName(url, contentDisposition, null)
|
var fileName = URLUtil.guessFileName(downloadUrl, contentDisposition, null)
|
||||||
fileName = URLDecoder.decode(fileName, "UTF-8")
|
fileName = URLDecoder.decode(fileName, "UTF-8")
|
||||||
binding.llView.longSnackbar(fileName, getString(R.string.action_download)) {
|
binding.llView.longSnackbar(fileName, getString(R.string.action_download)) {
|
||||||
Download.start(this, url, fileName)
|
Download.start(this, downloadUrl, fileName)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -206,6 +206,7 @@ class WebViewActivity : VMBaseActivity<ActivityWebViewBinding, WebViewModel>() {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Deprecated("Deprecated in Java")
|
||||||
@Suppress("DEPRECATION")
|
@Suppress("DEPRECATION")
|
||||||
override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean {
|
override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean {
|
||||||
url?.let {
|
url?.let {
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
package io.legado.app.utils
|
package io.legado.app.utils
|
||||||
|
|
||||||
|
import com.script.SimpleBindings
|
||||||
import io.legado.app.constant.AppConst.SCRIPT_ENGINE
|
import io.legado.app.constant.AppConst.SCRIPT_ENGINE
|
||||||
import io.legado.app.constant.AppPattern.EXP_PATTERN
|
import io.legado.app.constant.AppPattern.EXP_PATTERN
|
||||||
import javax.script.SimpleBindings
|
|
||||||
|
|
||||||
object JsUtils {
|
object JsUtils {
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user