pull/2314/head
kunfei 2 years ago
parent 6e28c60491
commit 8ede13f6aa
  1. 17
      app/src/main/java/io/legado/app/help/source/RssSourceExtensions.kt

@ -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) {

Loading…
Cancel
Save