fix(AnalyzeUrl): analyzeFields

pull/2370/head
Xwite 2 years ago committed by GitHub
parent e92b5d395d
commit 93151737ae
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 19
      app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeUrl.kt

@ -211,24 +211,29 @@ class AnalyzeUrl(
}
/**
* 解析QueryMap
* 解析QueryMap <key>=<value>
* name=
* name=name
* name=<BASE64> eg name=bmFtZQ==
*/
private fun analyzeFields(fieldsTxt: String) {
queryStr = fieldsTxt
val queryS = fieldsTxt.splitNotBlank("&")
for (query in queryS) {
val queryM = query.splitNotBlank("=")
val value = if (queryM.size > 1) queryM[1] else ""
val separator = query.indexOf("=")
if (separator == -1) continue
val value = query.slice(separator + 1)
val key = query.slice(0, separator)
if (charset.isNullOrEmpty()) {
if (NetworkUtils.hasUrlEncoded(value)) {
fieldMap[queryM[0]] = value
fieldMap[key] = value
} else {
fieldMap[queryM[0]] = URLEncoder.encode(value, "UTF-8")
fieldMap[key] = URLEncoder.encode(value, "UTF-8")
}
} else if (charset == "escape") {
fieldMap[queryM[0]] = EncoderUtils.escape(value)
fieldMap[key] = EncoderUtils.escape(value)
} else {
fieldMap[queryM[0]] = URLEncoder.encode(value, charset)
fieldMap[key] = URLEncoder.encode(value, charset)
}
}
}

Loading…
Cancel
Save