rewrite func getCookie and add func cacheFile

This commit is contained in:
Xwite
2022-01-04 15:24:18 +08:00
parent 51c16a1efc
commit 4bdc15c0a7
3 changed files with 35 additions and 13 deletions
@@ -8,6 +8,7 @@ import io.legado.app.constant.AppConst
import io.legado.app.constant.AppConst.dateFormat
import io.legado.app.data.entities.BaseSource
import io.legado.app.help.http.*
import io.legado.app.help.CacheManager
import io.legado.app.model.Debug
import io.legado.app.model.analyzeRule.AnalyzeUrl
import io.legado.app.model.analyzeRule.QueryTTF
@@ -125,6 +126,26 @@ interface JsExtensions {
}
}
/**
* 缓存网络文件
* @param url 网络文件的链接
* @param saveTime 缓存时间,单位:秒
* @return 返回缓存后的文件内容
*/
fun cacheFile(url: String): String? {
return cacheFile(url, 0)
}
fun cacheFile(url: String, saveTime: Int = 0): String? {
val key = md5Encode16(url)
val _cache = CacheManager.get(key)
val value = ajax(url) ?: ""
if(_cache.isNullOrBlank()) {
CacheManager.put(key, value as Any, saveTime)
}
return _cache
}
/**
* 实现16进制字符串转文件
* @param content 需要转成文件的16进制字符串
@@ -174,19 +195,6 @@ interface JsExtensions {
.execute()
}
/**
*js实现读取cookie
*/
fun getCookie(tag: String, key: String? = null): String {
val cookie = CookieStore.getCookie(tag)
val cookieMap = CookieStore.cookieToMap(cookie)
return if (key != null) {
cookieMap[key] ?: ""
} else {
cookie
}
}
/**
* js实现解码,不能删
*/
@@ -34,6 +34,12 @@ object CookieStore : CookieManager {
val cookieBean = appDb.cookieDao.get(NetworkUtils.getSubDomain(url))
return cookieBean?.cookie ?: ""
}
fun getKey(url: String, key: String): String {
val cookie = getCookie(url)
val cookieMap = cookieToMap(cookie)
return cookieMap[key] ?: ""
}
override fun removeCookie(url: String) {
appDb.cookieDao.delete(NetworkUtils.getSubDomain(url))