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