pull/32/head
kunfei 5 years ago
parent 2e66fad37e
commit 2f141c8ff8
  1. 47
      app/src/main/java/io/legado/app/help/storage/OldRule.kt

@ -0,0 +1,47 @@
package io.legado.app.help.storage
import io.legado.app.utils.GSON
import java.util.regex.Pattern
object OldRule {
private val headerPattern = Pattern.compile("@Header:\\{.+?\\}", Pattern.CASE_INSENSITIVE)
private val jsPattern = Pattern.compile("\\{\\{.+?\\}\\}", Pattern.CASE_INSENSITIVE)
fun toNewUrl(oldUrl: String): String {
val map = HashMap<String, String>()
var url = oldUrl
var mather = headerPattern.matcher(url)
if (mather.find()) {
val header = mather.group()
url = url.replace(header, "")
map["headers"] = header.substring(8)
}
var urlList = url.split("|")
url = urlList[0]
if (urlList.size > 1) {
map["charset"] = urlList[1].split("=")[1]
}
mather = jsPattern.matcher(url)
val jsList = arrayListOf<String>()
while (mather.find()) {
jsList.add(mather.group())
url = url.replace(jsList.last(), "$${jsList.size - 1}")
}
url = url.replace("{", "<").replace("}", ">")
url = url.replace("searchKey", "{{key}}")
url = url.replace("searchPage", "{{page}}")
for ((index, item) in jsList.withIndex()) {
url = url.replace("$$index", item.replace("searchKey", "key").replace("searchPage", "page"))
}
urlList = url.split("@")
url = urlList[0]
if (urlList.size > 1) {
map["method"] = "POST"
map["body"] = urlList[1]
}
if (map.size > 0) {
url += "," + GSON.toJson(map)
}
return url
}
}
Loading…
Cancel
Save