From a50ca5406898bd92e69f28e0316e148291b5c451 Mon Sep 17 00:00:00 2001 From: Xwite <1797350009@qq.com> Date: Sat, 25 Mar 2023 11:34:10 +0800 Subject: [PATCH] =?UTF-8?q?fix(js/java.cacheFile):=20=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E5=87=BA=E9=94=99=E6=97=B6=E4=BF=9D=E5=AD=98=E7=B1=BB=E5=87=BA?= =?UTF-8?q?=E9=94=99=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/legado/app/help/JsExtensions.kt | 25 +++++++++++-------- .../main/java/io/legado/app/utils/UrlUtil.kt | 1 + 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/io/legado/app/help/JsExtensions.kt b/app/src/main/java/io/legado/app/help/JsExtensions.kt index fa8d61388..01015d7c0 100644 --- a/app/src/main/java/io/legado/app/help/JsExtensions.kt +++ b/app/src/main/java/io/legado/app/help/JsExtensions.kt @@ -195,16 +195,17 @@ interface JsExtensions : JsEncodeUtils { * 缓存以文本方式保存的文件 如.js .txt等 * @param saveTime 缓存时间,单位:秒 */ - fun cacheFile(urlStr: String, saveTime: Int): String? { + fun cacheFile(urlStr: String, saveTime: Int): String { val key = md5Encode16(urlStr) - val cache = CacheManager.getFile(key) - if (cache.isNullOrBlank()) { - log("首次下载 $urlStr") - val value = ajax(urlStr) ?: return null - CacheManager.putFile(key, value, saveTime) - return value + val cahcePath = CacheManager.get(key) + return if (cache.isNullOrBlank()) { + val path = downloadFile(urlStr) + log("首次下载 $urlStr >> $path") + CacheManager.put(key, path, saveTime) + readTxtFile(path) + } else { + readTxtFile(cahcePath) } - return cache } /** @@ -224,12 +225,12 @@ interface JsExtensions : JsEncodeUtils { /** * 下载文件 - * @param url 下载地址:可带参数type,文件后缀,不带默认zip + * @param url 下载地址:可带参数type * @return 下载的文件相对路径 */ fun downloadFile(url: String): String { val analyzeUrl = AnalyzeUrl(url, source = getSource()) - val type = analyzeUrl.type ?: "zip" + val type = UrlUtil.getSuffix(url, analyzeUrl.type) val path = FileUtils.getPath( File(FileUtils.getCachePath()), "${MD5Utils.md5Encode16(url)}.${type}" @@ -250,6 +251,10 @@ interface JsExtensions : JsEncodeUtils { * @param url 通过url里的参数来判断文件类型 * @return 相对路径 */ + @Deprecated( + "Depreted", + ReplaceWith("downloadFile(url: String)") + ) fun downloadFile(content: String, url: String): String { val type = AnalyzeUrl(url, source = getSource()).type ?: return "" val path = FileUtils.getPath( diff --git a/app/src/main/java/io/legado/app/utils/UrlUtil.kt b/app/src/main/java/io/legado/app/utils/UrlUtil.kt index 91438bc5c..3214c12a9 100644 --- a/app/src/main/java/io/legado/app/utils/UrlUtil.kt +++ b/app/src/main/java/io/legado/app/utils/UrlUtil.kt @@ -142,6 +142,7 @@ object UrlUtil { ) { path.substringAfterLast("/") } else { + AppLog.put("getFileNameFromPath: Unexpected file suffix: $suffix") null } }