Explorar el Código

Merge remote-tracking branch 'origin/master'

kunfei hace 3 años
padre
commit
ef6698ab61

+ 39 - 0
app/src/test/java/io/legado/app/JsTest.kt → app/src/androidTest/java/io/legado/app/JsTest.kt

@@ -34,6 +34,7 @@ class JsTest {
         val jsMap = "$=result;id=$.id;id"
         val jsMap = "$=result;id=$.id;id"
         val result = SCRIPT_ENGINE.eval(jsMap, bindings)?.toString()
         val result = SCRIPT_ENGINE.eval(jsMap, bindings)?.toString()
         Assert.assertEquals("3242532321", result)
         Assert.assertEquals("3242532321", result)
+        @Language("js")
         val jsMap1 = """result.get("id")"""
         val jsMap1 = """result.get("id")"""
         val result1 = SCRIPT_ENGINE.eval(jsMap1, bindings)?.toString()
         val result1 = SCRIPT_ENGINE.eval(jsMap1, bindings)?.toString()
         Assert.assertEquals("3242532321", result1)
         Assert.assertEquals("3242532321", result1)
@@ -95,4 +96,42 @@ class JsTest {
         Assert.assertEquals(result, ",。!?……;:")
         Assert.assertEquals(result, ",。!?……;:")
     }
     }
 
 
+    @Test
+    fun testPackages() {
+        @Language("js")
+        val js = """
+            var accessKeyId = '1111';
+            var accessKeySecret = '2222';
+            var timestamp = '3333';
+            var aly = new JavaImporter(Packages.javax.crypto.Mac, Packages.javax.crypto.spec.SecretKeySpec, Packages.javax.xml.bind.DatatypeConverter, Packages.java.net.URLEncoder, Packages.java.lang.String, Packages.android.util.Base64);
+            with (aly) {
+                function percentEncode(value) {
+                    return URLEncoder.encode(value, "UTF-8").replace("+", "%20")
+                        .replace("*", "%2A").replace("%7E", "~")
+                }
+            
+                function sign(stringToSign, accessKeySecret) {
+                    var mac = Mac.getInstance('HmacSHA1');
+                    mac.init(new SecretKeySpec(String(accessKeySecret + '&').getBytes("UTF-8"), "HmacSHA1"));
+                    var signData = mac.doFinal(String(stringToSign).getBytes("UTF-8"));
+                    var signBase64 = Base64.encodeToString(signData, Base64.NO_WRAP);
+                    var signUrlEncode = percentEncode(signBase64);
+                    return signUrlEncode;
+                }
+            }
+            var query = 'AccessKeyId=' + accessKeyId + '&Action=CreateToken&Format=JSON&RegionId=cn-shanghai&SignatureMethod=HMAC-SHA1&SignatureNonce=' + "xxccrr" + '&SignatureVersion=1.0&Timestamp=' + percentEncode(timestamp) + '&Version=2019-02-28';
+            var signStr = sign('GET&' + percentEncode('/') + '&' + percentEncode(query), accessKeySecret);
+            var queryStringWithSign = "Signature=" + signStr + "&" + query;
+            queryStringWithSign
+        """.trimIndent()
+        SCRIPT_ENGINE.eval(js)
+        @Language("js")
+        val js1 = """
+            var returnData = new Packages.io.legado.app.api.ReturnData()
+            returnData.getErrorMsg()
+        """.trimIndent()
+        val result1 = SCRIPT_ENGINE.eval(js1)
+        Assert.assertEquals(result1, "未知错误,请联系开发者!")
+    }
+
 }
 }

+ 3 - 1
app/src/main/assets/updateLog.md

@@ -11,7 +11,7 @@
 * 正文出现缺字漏字、内容缺失、排版错乱等情况,有可能是净化规则或简繁转换出现问题。
 * 正文出现缺字漏字、内容缺失、排版错乱等情况,有可能是净化规则或简繁转换出现问题。
 * 漫画源看书显示乱码,**阅读与其他软件的源并不通用**,请导入阅读的支持的漫画源!
 * 漫画源看书显示乱码,**阅读与其他软件的源并不通用**,请导入阅读的支持的漫画源!
 
 
-**2023/03/24**
+**2023/03/28**
 
 
 * 更新cronet: 111.0.5563.115
 * 更新cronet: 111.0.5563.115
 * 更新rhino: 1.7.14-2
 * 更新rhino: 1.7.14-2
@@ -23,6 +23,8 @@
 {bookId: 1}
 {bookId: 1}
 https://www.example.com/book/{{result.bookId}}
 https://www.example.com/book/{{result.bookId}}
 ```
 ```
+
+* 书架整理搜索支持分类和简介
 * 其中一些更新由 Xwite, Horis提供
 * 其中一些更新由 Xwite, Horis提供
 
 
 **2023/03/21**
 **2023/03/21**