Merge pull request #106 from Celeter/master

加了反转义,修复一个null被转成"null"的问题
pull/111/head
kunfei 5 years ago committed by GitHub
commit da21c5fde8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 12
      app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeByJSoup.kt
  2. 12
      app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeRule.kt
  3. 11
      app/src/main/java/io/legado/app/ui/rss/read/ReadRssActivity.kt
  4. 2
      app/src/main/java/io/legado/app/ui/rss/read/ReadRssViewModel.kt

@ -359,8 +359,7 @@ class AnalyzeByJSoup {
try {
when (lastRule) {
"text" -> for (element in elements) {
val text = element.text()
textS.add(text)
textS.add(element.text())
}
"textNodes" -> for (element in elements) {
val tn = arrayListOf<String>()
@ -373,12 +372,15 @@ class AnalyzeByJSoup {
}
textS.add(join("\n", tn))
}
"ownText", "html" -> {
elements.select("script").remove()
"ownText" -> for (element in elements) {
textS.add(element.ownText())
}
"html" -> {
elements.select("script, style").remove()
val html = elements.html()
textS.add(html)
}
"all" -> textS.add(elements.html())
"all" -> textS.add(elements.outerHtml())
else -> for (element in elements) {
val url = element.attr(lastRule)
if (!isEmpty(url) && !textS.contains(url)) {

@ -8,6 +8,7 @@ import io.legado.app.data.entities.BaseBook
import io.legado.app.data.entities.BookChapter
import io.legado.app.help.JsExtensions
import io.legado.app.utils.*
import org.jsoup.nodes.Entities
import org.mozilla.javascript.NativeObject
import java.util.*
import java.util.regex.Pattern
@ -206,7 +207,7 @@ class AnalyzeRule(var book: BaseBook? = null) : JsExtensions {
else -> sourceRule.rule
}
}
if (sourceRule.replaceRegex.isNotEmpty()) {
if ((result != null) && sourceRule.replaceRegex.isNotEmpty()) {
result = replaceRegex(result.toString(), sourceRule)
}
}
@ -214,10 +215,15 @@ class AnalyzeRule(var book: BaseBook? = null) : JsExtensions {
}
}
if (result == null) result = ""
val str = try {
Entities.unescape(result.toString())
} catch (e: Exception) {
result.toString()
}
if (isUrl) {
return NetworkUtils.getAbsoluteURL(baseUrl, result.toString()) ?: ""
return NetworkUtils.getAbsoluteURL(baseUrl, str) ?: ""
}
return result.toString()
return str
}
/**

@ -77,15 +77,10 @@ class ReadRssActivity : VMBaseActivity<ReadRssViewModel>(R.layout.activity_rss_r
val url = NetworkUtils.getAbsoluteURL(it.origin, it.link)
val html = viewModel.clHtml(content)
if (viewModel.rssSource?.loadWithBaseUrl == true) {
webView.loadDataWithBaseURL(
url,
html,
"text/html",
"utf-8",
url
)//不想用baseUrl进else
webView.loadDataWithBaseURL(url, html, "text/html", "utf-8", url)//不想用baseUrl进else
} else {
webView.loadData(html, "text/html;charset=utf-8", "utf-8")//经测试可以解决中文乱码
//webView.loadData(html, "text/html;charset=utf-8", "utf-8")//经测试可以解决中文乱码
webView.loadDataWithBaseURL(null, html, "text/html;charset=utf-8", "utf-8", url)
}
}
})

@ -86,7 +86,7 @@ class ReadRssViewModel(application: Application) : BaseViewModel(application),
}
fun clHtml(content: String): String {
return if (content.contains("<style>|style=".toRegex())) {
return if (content.contains("<style>".toRegex())) {
content
} else {
"""

Loading…
Cancel
Save