Merge remote-tracking branch 'upstream/master'

pull/1121/head
github-actions 3 years ago
commit 40fe1be4a7
  1. 4
      app/src/main/assets/updateLog.md
  2. 51
      app/src/main/java/io/legado/app/help/JsExtensions.kt

@ -8,6 +8,10 @@
* 正文出现缺字漏字、内容缺失、排版错乱等情况,有可能是净化规则出现问题。先关闭替换净化并刷新,再观察是否正常。如果正常说明净化规则存在误杀,如果关闭后仍然出现相关问题,请点击源链接查看原文与正文是否相同,如果不同,再进行反馈。 * 正文出现缺字漏字、内容缺失、排版错乱等情况,有可能是净化规则出现问题。先关闭替换净化并刷新,再观察是否正常。如果正常说明净化规则存在误杀,如果关闭后仍然出现相关问题,请点击源链接查看原文与正文是否相同,如果不同,再进行反馈。
* 漫画源看书显示乱码,**阅读与其他软件的源并不通用**,请导入阅读的支持的漫画源! * 漫画源看书显示乱码,**阅读与其他软件的源并不通用**,请导入阅读的支持的漫画源!
**2021/07/16**
1. js扩展函数添加删除本地文件方法
2. js扩展函数对于文件的读写删操作都是相对路径,只能操作阅读缓存内的文件,/android/data/{package}/cache/...
**2021/07/15** **2021/07/15**
1. 添加js函数来修复开启js沙箱后某些书源失效。by ag2s20150909 1. 添加js函数来修复开启js沙箱后某些书源失效。by ag2s20150909
```kotlin ```kotlin

@ -23,6 +23,11 @@ import java.util.*
import java.util.zip.ZipEntry import java.util.zip.ZipEntry
import java.util.zip.ZipInputStream import java.util.zip.ZipInputStream
/**
* js扩展类, 在js中通过java变量调用
* 所有对于文件的读写删操作都是相对路径,只能操作阅读缓存内的文件
* /android/data/{package}/cache/...
*/
@Keep @Keep
@Suppress("unused") @Suppress("unused")
interface JsExtensions { interface JsExtensions {
@ -253,20 +258,51 @@ interface JsExtensions {
} }
/** /**
* 读取本地文件 * 获取本地文件
* @param path 相对路径
* @return File
*/ */
fun readFile(path: String): ByteArray { fun getFile(path: String): File {
return File(path).readBytes() val cachePath = appCtx.eCacheDir.path
val aPath = if (path.startsWith(File.separator)) {
cachePath + path
} else {
cachePath + File.separator + path
}
return File(aPath)
}
fun readFile(path: String): ByteArray? {
val file = getFile(path)
if (file.exists()) {
return file.readBytes()
}
return null
} }
fun readTxtFile(path: String): String { fun readTxtFile(path: String): String {
val f = File(path) val file = getFile(path)
val charsetName = EncodingDetect.getEncode(f) if (file.exists()) {
return String(f.readBytes(), charset(charsetName)) val charsetName = EncodingDetect.getEncode(file)
return String(file.readBytes(), charset(charsetName))
}
return ""
} }
fun readTxtFile(path: String, charsetName: String): String { fun readTxtFile(path: String, charsetName: String): String {
return String(File(path).readBytes(), charset(charsetName)) val file = getFile(path)
if (file.exists()) {
return String(file.readBytes(), charset(charsetName))
}
return ""
}
/**
* 删除本地文件
*/
fun deleteFile(path: String) {
val file = getFile(path)
FileUtils.delete(file)
} }
/** /**
@ -405,7 +441,6 @@ interface JsExtensions {
transformation: String, transformation: String,
iv: String iv: String
): ByteArray? { ): ByteArray? {
return EncoderUtils.decryptAES( return EncoderUtils.decryptAES(
data = str.encodeToByteArray(), data = str.encodeToByteArray(),
key = key.encodeToByteArray(), key = key.encodeToByteArray(),

Loading…
Cancel
Save