This commit is contained in:
Horis
2023-07-13 11:47:41 +08:00
parent 5e80617d5e
commit bcaa10eae6
5 changed files with 66 additions and 5 deletions
@@ -28,6 +28,8 @@ import io.legado.app.lib.dialogs.selector
import io.legado.app.lib.theme.accentColor import io.legado.app.lib.theme.accentColor
import io.legado.app.lib.theme.backgroundColor import io.legado.app.lib.theme.backgroundColor
import io.legado.app.lib.theme.primaryColor import io.legado.app.lib.theme.primaryColor
import io.legado.app.ui.book.search.SearchActivity
import io.legado.app.ui.book.search.SearchScope
import io.legado.app.ui.book.source.debug.BookSourceDebugActivity import io.legado.app.ui.book.source.debug.BookSourceDebugActivity
import io.legado.app.ui.file.HandleFileContract import io.legado.app.ui.file.HandleFileContract
import io.legado.app.ui.login.SourceLoginActivity import io.legado.app.ui.login.SourceLoginActivity
@@ -119,11 +121,13 @@ class BookSourceEditActivity :
setResult(Activity.RESULT_OK) setResult(Activity.RESULT_OK)
finish() finish()
} }
R.id.menu_debug_source -> viewModel.save(getSource()) { source -> R.id.menu_debug_source -> viewModel.save(getSource()) { source ->
startActivity<BookSourceDebugActivity> { startActivity<BookSourceDebugActivity> {
putExtra("key", source.bookSourceUrl) putExtra("key", source.bookSourceUrl)
} }
} }
R.id.menu_clear_cookie -> viewModel.clearCookie(getSource().bookSourceUrl) R.id.menu_clear_cookie -> viewModel.clearCookie(getSource().bookSourceUrl)
R.id.menu_auto_complete -> viewModel.autoComplete = !viewModel.autoComplete R.id.menu_auto_complete -> viewModel.autoComplete = !viewModel.autoComplete
R.id.menu_copy_source -> sendToClip(GSON.toJson(getSource())) R.id.menu_copy_source -> sendToClip(GSON.toJson(getSource()))
@@ -135,6 +139,7 @@ class BookSourceEditActivity :
getString(R.string.share_book_source), getString(R.string.share_book_source),
ErrorCorrectionLevel.L ErrorCorrectionLevel.L
) )
R.id.menu_help -> showHelp("ruleHelp") R.id.menu_help -> showHelp("ruleHelp")
R.id.menu_login -> viewModel.save(getSource()) { source -> R.id.menu_login -> viewModel.save(getSource()) { source ->
startActivity<SourceLoginActivity> { startActivity<SourceLoginActivity> {
@@ -142,7 +147,14 @@ class BookSourceEditActivity :
putExtra("key", source.bookSourceUrl) putExtra("key", source.bookSourceUrl)
} }
} }
R.id.menu_set_source_variable -> setSourceVariable() R.id.menu_set_source_variable -> setSourceVariable()
R.id.menu_search -> viewModel.save(getSource()) { source ->
startActivity<SearchActivity> {
putExtra("searchScope", SearchScope(source).toString())
}
}
} }
return super.onCompatOptionsItemSelected(item) return super.onCompatOptionsItemSelected(item)
} }
@@ -387,20 +399,28 @@ class BookSourceEditActivity :
"bookList" -> searchRule.bookList = it.value "bookList" -> searchRule.bookList = it.value
"name" -> searchRule.name = "name" -> searchRule.name =
viewModel.ruleComplete(it.value, searchRule.bookList) viewModel.ruleComplete(it.value, searchRule.bookList)
"author" -> searchRule.author = "author" -> searchRule.author =
viewModel.ruleComplete(it.value, searchRule.bookList) viewModel.ruleComplete(it.value, searchRule.bookList)
"kind" -> searchRule.kind = "kind" -> searchRule.kind =
viewModel.ruleComplete(it.value, searchRule.bookList) viewModel.ruleComplete(it.value, searchRule.bookList)
"intro" -> searchRule.intro = "intro" -> searchRule.intro =
viewModel.ruleComplete(it.value, searchRule.bookList) viewModel.ruleComplete(it.value, searchRule.bookList)
"updateTime" -> searchRule.updateTime = "updateTime" -> searchRule.updateTime =
viewModel.ruleComplete(it.value, searchRule.bookList) viewModel.ruleComplete(it.value, searchRule.bookList)
"wordCount" -> searchRule.wordCount = "wordCount" -> searchRule.wordCount =
viewModel.ruleComplete(it.value, searchRule.bookList) viewModel.ruleComplete(it.value, searchRule.bookList)
"lastChapter" -> searchRule.lastChapter = "lastChapter" -> searchRule.lastChapter =
viewModel.ruleComplete(it.value, searchRule.bookList) viewModel.ruleComplete(it.value, searchRule.bookList)
"coverUrl" -> searchRule.coverUrl = "coverUrl" -> searchRule.coverUrl =
viewModel.ruleComplete(it.value, searchRule.bookList, 3) viewModel.ruleComplete(it.value, searchRule.bookList, 3)
"bookUrl" -> searchRule.bookUrl = "bookUrl" -> searchRule.bookUrl =
viewModel.ruleComplete(it.value, searchRule.bookList, 2) viewModel.ruleComplete(it.value, searchRule.bookList, 2)
} }
@@ -411,20 +431,28 @@ class BookSourceEditActivity :
"bookList" -> exploreRule.bookList = it.value "bookList" -> exploreRule.bookList = it.value
"name" -> exploreRule.name = "name" -> exploreRule.name =
viewModel.ruleComplete(it.value, exploreRule.bookList) viewModel.ruleComplete(it.value, exploreRule.bookList)
"author" -> exploreRule.author = "author" -> exploreRule.author =
viewModel.ruleComplete(it.value, exploreRule.bookList) viewModel.ruleComplete(it.value, exploreRule.bookList)
"kind" -> exploreRule.kind = "kind" -> exploreRule.kind =
viewModel.ruleComplete(it.value, exploreRule.bookList) viewModel.ruleComplete(it.value, exploreRule.bookList)
"intro" -> exploreRule.intro = "intro" -> exploreRule.intro =
viewModel.ruleComplete(it.value, exploreRule.bookList) viewModel.ruleComplete(it.value, exploreRule.bookList)
"updateTime" -> exploreRule.updateTime = "updateTime" -> exploreRule.updateTime =
viewModel.ruleComplete(it.value, exploreRule.bookList) viewModel.ruleComplete(it.value, exploreRule.bookList)
"wordCount" -> exploreRule.wordCount = "wordCount" -> exploreRule.wordCount =
viewModel.ruleComplete(it.value, exploreRule.bookList) viewModel.ruleComplete(it.value, exploreRule.bookList)
"lastChapter" -> exploreRule.lastChapter = "lastChapter" -> exploreRule.lastChapter =
viewModel.ruleComplete(it.value, exploreRule.bookList) viewModel.ruleComplete(it.value, exploreRule.bookList)
"coverUrl" -> exploreRule.coverUrl = "coverUrl" -> exploreRule.coverUrl =
viewModel.ruleComplete(it.value, exploreRule.bookList, 3) viewModel.ruleComplete(it.value, exploreRule.bookList, 3)
"bookUrl" -> exploreRule.bookUrl = "bookUrl" -> exploreRule.bookUrl =
viewModel.ruleComplete(it.value, exploreRule.bookList, 2) viewModel.ruleComplete(it.value, exploreRule.bookList, 2)
} }
@@ -435,20 +463,28 @@ class BookSourceEditActivity :
"name" -> bookInfoRule.name = viewModel.ruleComplete(it.value, bookInfoRule.init) "name" -> bookInfoRule.name = viewModel.ruleComplete(it.value, bookInfoRule.init)
"author" -> bookInfoRule.author = "author" -> bookInfoRule.author =
viewModel.ruleComplete(it.value, bookInfoRule.init) viewModel.ruleComplete(it.value, bookInfoRule.init)
"kind" -> bookInfoRule.kind = "kind" -> bookInfoRule.kind =
viewModel.ruleComplete(it.value, bookInfoRule.init) viewModel.ruleComplete(it.value, bookInfoRule.init)
"intro" -> bookInfoRule.intro = "intro" -> bookInfoRule.intro =
viewModel.ruleComplete(it.value, bookInfoRule.init) viewModel.ruleComplete(it.value, bookInfoRule.init)
"updateTime" -> bookInfoRule.updateTime = "updateTime" -> bookInfoRule.updateTime =
viewModel.ruleComplete(it.value, bookInfoRule.init) viewModel.ruleComplete(it.value, bookInfoRule.init)
"wordCount" -> bookInfoRule.wordCount = "wordCount" -> bookInfoRule.wordCount =
viewModel.ruleComplete(it.value, bookInfoRule.init) viewModel.ruleComplete(it.value, bookInfoRule.init)
"lastChapter" -> bookInfoRule.lastChapter = "lastChapter" -> bookInfoRule.lastChapter =
viewModel.ruleComplete(it.value, bookInfoRule.init) viewModel.ruleComplete(it.value, bookInfoRule.init)
"coverUrl" -> bookInfoRule.coverUrl = "coverUrl" -> bookInfoRule.coverUrl =
viewModel.ruleComplete(it.value, bookInfoRule.init, 3) viewModel.ruleComplete(it.value, bookInfoRule.init, 3)
"tocUrl" -> bookInfoRule.tocUrl = "tocUrl" -> bookInfoRule.tocUrl =
viewModel.ruleComplete(it.value, bookInfoRule.init, 2) viewModel.ruleComplete(it.value, bookInfoRule.init, 2)
"canReName" -> bookInfoRule.canReName = it.value "canReName" -> bookInfoRule.canReName = it.value
"downloadUrls" -> bookInfoRule.downloadUrls = "downloadUrls" -> bookInfoRule.downloadUrls =
viewModel.ruleComplete(it.value, bookInfoRule.init) viewModel.ruleComplete(it.value, bookInfoRule.init)
@@ -493,12 +529,16 @@ class BookSourceEditActivity :
"reviewUrl" -> reviewRule.reviewUrl = it.value "reviewUrl" -> reviewRule.reviewUrl = it.value
"avatarRule" -> reviewRule.avatarRule = "avatarRule" -> reviewRule.avatarRule =
viewModel.ruleComplete(it.value, reviewRule.reviewUrl, 3) viewModel.ruleComplete(it.value, reviewRule.reviewUrl, 3)
"contentRule" -> reviewRule.contentRule = "contentRule" -> reviewRule.contentRule =
viewModel.ruleComplete(it.value, reviewRule.reviewUrl) viewModel.ruleComplete(it.value, reviewRule.reviewUrl)
"postTimeRule" -> reviewRule.postTimeRule = "postTimeRule" -> reviewRule.postTimeRule =
viewModel.ruleComplete(it.value, reviewRule.reviewUrl) viewModel.ruleComplete(it.value, reviewRule.reviewUrl)
"reviewQuoteUrl" -> reviewRule.reviewQuoteUrl = "reviewQuoteUrl" -> reviewRule.reviewQuoteUrl =
viewModel.ruleComplete(it.value, reviewRule.reviewUrl, 2) viewModel.ruleComplete(it.value, reviewRule.reviewUrl, 2)
"voteUpUrl" -> reviewRule.voteUpUrl = it.value "voteUpUrl" -> reviewRule.voteUpUrl = it.value
"voteDownUrl" -> reviewRule.voteDownUrl = it.value "voteDownUrl" -> reviewRule.voteDownUrl = it.value
"postReviewUrl" -> reviewRule.postReviewUrl = it.value "postReviewUrl" -> reviewRule.postReviewUrl = it.value
@@ -541,6 +581,7 @@ class BookSourceEditActivity :
SelectItem("插入分组", "addGroup") SelectItem("插入分组", "addGroup")
) )
} }
else -> { else -> {
helpActions.add( helpActions.add(
SelectItem("选择文件", "selectFile") SelectItem("选择文件", "selectFile")
@@ -588,7 +629,8 @@ class BookSourceEditActivity :
private fun setSourceVariable() { private fun setSourceVariable() {
viewModel.save(getSource()) { source -> viewModel.save(getSource()) { source ->
launch { launch {
val comment = source.getDisplayVariableComment("源变量可在js中通过source.getVariable()获取") val comment =
source.getDisplayVariableComment("源变量可在js中通过source.getVariable()获取")
val variable = withContext(IO) { source.getVariable() } val variable = withContext(IO) { source.getVariable() }
showDialogFragment( showDialogFragment(
VariableDialog( VariableDialog(
@@ -164,6 +164,7 @@ class ExploreAdapter(context: Context, val callBack: CallBack) :
when (it.itemId) { when (it.itemId) {
R.id.menu_edit -> callBack.editSource(source.bookSourceUrl) R.id.menu_edit -> callBack.editSource(source.bookSourceUrl)
R.id.menu_top -> callBack.toTop(source) R.id.menu_top -> callBack.toTop(source)
R.id.menu_search -> callBack.searchBook(source)
R.id.menu_login -> context.startActivity<SourceLoginActivity> { R.id.menu_login -> context.startActivity<SourceLoginActivity> {
putExtra("type", "bookSource") putExtra("type", "bookSource")
putExtra("key", source.bookSourceUrl) putExtra("key", source.bookSourceUrl)
@@ -188,5 +189,6 @@ class ExploreAdapter(context: Context, val callBack: CallBack) :
fun editSource(sourceUrl: String) fun editSource(sourceUrl: String)
fun toTop(source: BookSource) fun toTop(source: BookSource)
fun deleteSource(source: BookSource) fun deleteSource(source: BookSource)
fun searchBook(bookSource: BookSource)
} }
} }
@@ -22,6 +22,8 @@ import io.legado.app.lib.dialogs.alert
import io.legado.app.lib.theme.primaryColor import io.legado.app.lib.theme.primaryColor
import io.legado.app.lib.theme.primaryTextColor import io.legado.app.lib.theme.primaryTextColor
import io.legado.app.ui.book.explore.ExploreShowActivity import io.legado.app.ui.book.explore.ExploreShowActivity
import io.legado.app.ui.book.search.SearchActivity
import io.legado.app.ui.book.search.SearchScope
import io.legado.app.ui.book.source.edit.BookSourceEditActivity import io.legado.app.ui.book.source.edit.BookSourceEditActivity
import io.legado.app.ui.main.MainActivity import io.legado.app.ui.main.MainActivity
import io.legado.app.ui.main.MainFragmentInterface import io.legado.app.ui.main.MainFragmentInterface
@@ -214,6 +216,12 @@ class ExploreFragment() : VMBaseFragment<ExploreViewModel>(R.layout.fragment_exp
} }
} }
override fun searchBook(bookSource: BookSource) {
startActivity<SearchActivity> {
putExtra("searchScope", SearchScope(bookSource).toString())
}
}
fun compressExplore() { fun compressExplore() {
if (!adapter.compressExplore()) { if (!adapter.compressExplore()) {
if (AppConfig.isEInkMode) { if (AppConfig.isEInkMode) {
+4
View File
@@ -13,6 +13,10 @@
android:id="@+id/menu_login" android:id="@+id/menu_login"
android:title="@string/login" /> android:title="@string/login" />
<item
android:id="@+id/menu_search"
android:title="@string/search" />
<item <item
android:id="@+id/menu_refresh" android:id="@+id/menu_refresh"
android:title="@string/refresh" /> android:title="@string/refresh" />
+8 -3
View File
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<menu xmlns:tools="http://schemas.android.com/tools" <menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="AlwaysShowAction"> tools:ignore="AlwaysShowAction">
<item <item
@@ -21,6 +21,11 @@
android:title="@string/login" android:title="@string/login"
app:showAsAction="never" /> app:showAsAction="never" />
<item
android:id="@+id/menu_search"
android:title="@string/search"
app:showAsAction="never" />
<item <item
android:id="@+id/menu_clear_cookie" android:id="@+id/menu_clear_cookie"
android:title="@string/cookie" android:title="@string/cookie"
@@ -28,8 +33,8 @@
<item <item
android:id="@+id/menu_auto_complete" android:id="@+id/menu_auto_complete"
android:title="@string/auto_complete"
android:checkable="true" android:checkable="true"
android:title="@string/auto_complete"
app:showAsAction="never" /> app:showAsAction="never" />
<item <item