mirror of
https://github.com/gedoor/legado.git
synced 2025-08-10 00:52:30 +00:00
优化
This commit is contained in:
@@ -12,27 +12,27 @@ private fun RssSource.getSortUrlsKey(): String {
|
||||
return MD5Utils.md5Encode(sourceUrl + sortUrl)
|
||||
}
|
||||
|
||||
suspend fun RssSource.sortUrls(): List<Pair<String, String>> =
|
||||
arrayListOf<Pair<String, String>>().apply {
|
||||
suspend fun RssSource.sortUrls(): List<Pair<String, String>> {
|
||||
return arrayListOf<Pair<String, String>>().apply {
|
||||
val sortUrlsKey = getSortUrlsKey()
|
||||
withContext(Dispatchers.IO) {
|
||||
kotlin.runCatching {
|
||||
var a = sortUrl
|
||||
var str = sortUrl
|
||||
if (sortUrl?.startsWith("<js>", false) == true
|
||||
|| sortUrl?.startsWith("@js:", false) == true
|
||||
) {
|
||||
a = aCache.getAsString(sortUrlsKey) ?: ""
|
||||
if (a.isBlank()) {
|
||||
str = aCache.getAsString(sortUrlsKey)
|
||||
if (str.isNullOrBlank()) {
|
||||
val jsStr = if (sortUrl!!.startsWith("@")) {
|
||||
sortUrl!!.substring(4)
|
||||
} else {
|
||||
sortUrl!!.substring(4, sortUrl!!.lastIndexOf("<"))
|
||||
}
|
||||
a = evalJS(jsStr).toString()
|
||||
aCache.put(sortUrlsKey, a)
|
||||
str = evalJS(jsStr).toString()
|
||||
aCache.put(sortUrlsKey, str)
|
||||
}
|
||||
}
|
||||
a?.split("(&&|\n)+".toRegex())?.forEach { c ->
|
||||
str?.split("(&&|\n)+".toRegex())?.forEach { c ->
|
||||
val d = c.split("::")
|
||||
if (d.size > 1)
|
||||
add(Pair(d[0], d[1]))
|
||||
@@ -43,6 +43,7 @@ suspend fun RssSource.sortUrls(): List<Pair<String, String>> =
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
suspend fun RssSource.removeSortCache() {
|
||||
withContext(Dispatchers.IO) {
|
||||
|
||||
Reference in New Issue
Block a user