添加通用封面规则
This commit is contained in:
@@ -80,7 +80,7 @@ object BookCover {
|
||||
)
|
||||
val res = analyzeUrl.getStrResponseAwait()
|
||||
val analyzeRule = AnalyzeRule(book)
|
||||
analyzeRule.setContent(res.body, config.searchUrl)
|
||||
analyzeRule.setContent(res.body)
|
||||
analyzeRule.setRedirectUrl(res.url)
|
||||
return analyzeRule.getString(config.coverRule, isUrl = true)
|
||||
}
|
||||
@@ -91,6 +91,11 @@ object BookCover {
|
||||
CacheManager.put(coverRuleConfigKey, json)
|
||||
}
|
||||
|
||||
fun delCoverRuleConfig() {
|
||||
CacheManager.delete(coverRuleConfigKey)
|
||||
coverRuleConfig = DefaultData.coverRuleConfig
|
||||
}
|
||||
|
||||
data class CoverRuleConfig(
|
||||
var searchUrl: String,
|
||||
var coverRule: String,
|
||||
|
||||
@@ -83,6 +83,7 @@ class CoverConfigFragment : BasePreferenceFragment(),
|
||||
@SuppressLint("PrivateResource")
|
||||
override fun onPreferenceTreeClick(preference: Preference): Boolean {
|
||||
when (preference.key) {
|
||||
"coverRule" -> showDialogFragment(CoverRuleConfigDialog())
|
||||
PreferKey.defaultCover ->
|
||||
if (getPrefString(preference.key).isNullOrEmpty()) {
|
||||
selectImage.launch(requestCodeCover)
|
||||
|
||||
@@ -2,13 +2,47 @@ package io.legado.app.ui.config
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import io.legado.app.R
|
||||
import io.legado.app.base.BaseDialogFragment
|
||||
import io.legado.app.databinding.DialogCoverRuleConfigBinding
|
||||
import io.legado.app.model.BookCover
|
||||
import io.legado.app.utils.setLayout
|
||||
import io.legado.app.utils.toastOnUi
|
||||
import io.legado.app.utils.viewbindingdelegate.viewBinding
|
||||
import splitties.views.onClick
|
||||
|
||||
class CoverRuleConfigDialog : BaseDialogFragment(R.layout.dialog_cover_rule_config) {
|
||||
|
||||
override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) {
|
||||
val binding by viewBinding(DialogCoverRuleConfigBinding::bind)
|
||||
|
||||
override fun onStart() {
|
||||
super.onStart()
|
||||
setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
|
||||
}
|
||||
|
||||
override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) {
|
||||
binding.editSearchUrl.setText(BookCover.coverRuleConfig.searchUrl)
|
||||
binding.editCoverUrlRule.setText(BookCover.coverRuleConfig.coverRule)
|
||||
binding.tvCancel.onClick {
|
||||
dismissAllowingStateLoss()
|
||||
}
|
||||
binding.tvOk.onClick {
|
||||
val searchUrl = binding.editSearchUrl.text?.toString()
|
||||
val coverRule = binding.editCoverUrlRule.text?.toString()
|
||||
if (searchUrl.isNullOrBlank() || coverRule.isNullOrBlank()) {
|
||||
toastOnUi("搜索url和cover规则不能为空")
|
||||
} else {
|
||||
BookCover.CoverRuleConfig(searchUrl, coverRule).let { config ->
|
||||
BookCover.saveCoverRuleConfig(config)
|
||||
}
|
||||
dismissAllowingStateLoss()
|
||||
}
|
||||
}
|
||||
binding.tvFooterLeft.onClick {
|
||||
BookCover.delCoverRuleConfig()
|
||||
dismissAllowingStateLoss()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -19,7 +19,7 @@ class DirectLinkUploadConfig : BaseDialogFragment(R.layout.dialog_direct_link_up
|
||||
|
||||
override fun onStart() {
|
||||
super.onStart()
|
||||
setLayout(0.9f, ViewGroup.LayoutParams.WRAP_CONTENT)
|
||||
setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
|
||||
}
|
||||
|
||||
override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) {
|
||||
|
||||
Reference in New Issue
Block a user