pull/37/head
kunfei 5 years ago
parent 0a6685c55d
commit aede1cd826
  1. 28
      app/src/main/java/io/legado/app/ui/rss/read/ReadRssViewModel.kt

@ -5,6 +5,9 @@ import android.content.Intent
import androidx.lifecycle.MutableLiveData
import io.legado.app.App
import io.legado.app.base.BaseViewModel
import io.legado.app.data.entities.RssArticle
import io.legado.app.model.analyzeRule.AnalyzeRule
import io.legado.app.model.analyzeRule.AnalyzeUrl
class ReadRssViewModel(application: Application) : BaseViewModel(application) {
@ -18,6 +21,17 @@ class ReadRssViewModel(application: Application) : BaseViewModel(application) {
if (rssArticle != null) {
if (!rssArticle.description.isNullOrBlank()) {
contentLiveData.postValue(rssArticle.description)
} else {
App.db.rssSourceDao().getByKey(rssArticle.origin)?.let { source ->
val ruleContent = source.ruleContent
if (!ruleContent.isNullOrBlank()) {
loadContent(rssArticle, ruleContent)
} else {
urlLiveData.postValue(rssArticle.link)
}
} ?: let {
urlLiveData.postValue(rssArticle.link)
}
}
}
}
@ -25,4 +39,18 @@ class ReadRssViewModel(application: Application) : BaseViewModel(application) {
}
private fun loadContent(rssArticle: RssArticle, ruleContent: String) {
execute {
rssArticle.link?.let {
AnalyzeUrl(it).getResponseAsync().await().body()?.let { body ->
AnalyzeRule().apply {
setContent(body)
getString(ruleContent)?.let { content ->
contentLiveData.postValue(content)
}
}
}
}
}
}
}
Loading…
Cancel
Save