diff --git a/app/src/main/java/io/legado/app/help/CacheManager.kt b/app/src/main/java/io/legado/app/help/CacheManager.kt index 60627ee35..3b5d89bdb 100644 --- a/app/src/main/java/io/legado/app/help/CacheManager.kt +++ b/app/src/main/java/io/legado/app/help/CacheManager.kt @@ -28,6 +28,10 @@ object CacheManager { } } + fun putString2File(key: String, value: String, saveTime: Int = 0) { + ACache.get(appCtx).put(key, value, saveTime) + } + fun get(key: String): String? { return appDb.cacheDao.get(key, System.currentTimeMillis()) } @@ -52,6 +56,10 @@ object CacheManager { return ACache.get(appCtx).getAsBinary(key) } + fun getString(key: String): String? { + return ACache.get(appCtx).getAsString(key) + } + fun getQueryTTF(key: String): QueryTTF? { val cache = queryTTFMap[key] ?: return null if (cache.first == 0L || cache.first > System.currentTimeMillis()) { 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 adde0e962..69a21ae79 100644 --- a/app/src/main/java/io/legado/app/help/JsExtensions.kt +++ b/app/src/main/java/io/legado/app/help/JsExtensions.kt @@ -138,15 +138,14 @@ interface JsExtensions { * @param saveTime 缓存时间,单位:秒 * @return 返回缓存后的文件内容 */ - fun cacheFile(url: String, saveTime: Int = 0): String? { - val key = md5Encode16(url) - val cache = ACache.get(appCtx).getAsString(key) + fun cacheFile(urlStr: String, saveTime: Int = 0): String? { + val key = md5Encode16(urlStr) + val cache = CacheManager.getString(key) if(cache.isNullOrBlank()) { - log("首次下载${url}...") - val value = ajax(url) ?: "" - if (saveTime == 0) { - ACache.get(appCtx).put(key, value) - } else ACache.get(appCtx).put(key, value, saveTime) + log("首次下载 ${urlStr}") + val value = ajax(urlStr) ?: return null + CacheManager.putString2File(key, value, saveTime) + return value } return cache } diff --git a/app/src/main/java/io/legado/app/utils/ACache.kt b/app/src/main/java/io/legado/app/utils/ACache.kt index 11b448aa6..b900095c3 100644 --- a/app/src/main/java/io/legado/app/utils/ACache.kt +++ b/app/src/main/java/io/legado/app/utils/ACache.kt @@ -109,7 +109,7 @@ class ACache private constructor(cacheDir: File, max_size: Long, max_count: Int) * @param saveTime 保存的时间,单位:秒 */ fun put(key: String, value: String, saveTime: Int) { - put(key, Utils.newStringWithDateInfo(saveTime, value)) + if (saveTime == 0) put(key, value) else put(key, Utils.newStringWithDateInfo(saveTime, value)) } /** @@ -245,7 +245,7 @@ class ACache private constructor(cacheDir: File, max_size: Long, max_count: Int) * @param saveTime 保存的时间,单位:秒 */ fun put(key: String, value: ByteArray, saveTime: Int) { - put(key, Utils.newByteArrayWithDateInfo(saveTime, value)) + if (saveTime == 0) put(key, value) else put(key, Utils.newByteArrayWithDateInfo(saveTime, value)) } /**