diff --git a/app/src/main/assets/help/ruleHelp.md b/app/src/main/assets/help/ruleHelp.md index e6c1643a4..70a15f762 100644 --- a/app/src/main/assets/help/ruleHelp.md +++ b/app/src/main/assets/help/ruleHelp.md @@ -152,5 +152,4 @@ let options = { ``` * 购买操作 -> 返回购买链接,可直接填写链接或者JavaScript -> 可用变量 book chapter java(不支持AnalyzeRule函数) source \ No newline at end of file +> 返回购买链接(自动打开浏览器),可直接填写链接或者JavaScript \ No newline at end of file diff --git a/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt b/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt index 7fcab742b..46699f4e2 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt @@ -36,6 +36,7 @@ import io.legado.app.lib.dialogs.selector import io.legado.app.lib.theme.accentColor import io.legado.app.model.ReadAloud import io.legado.app.model.ReadBook +import io.legado.app.model.analyzeRule.AnalyzeRule import io.legado.app.receiver.TimeBatteryReceiver import io.legado.app.service.BaseReadAloudService import io.legado.app.ui.about.AppLogDialog @@ -962,31 +963,34 @@ class ReadBookActivity : BaseReadBookActivity(), } override fun payAction() { - Coroutine.async(this) { - val book = ReadBook.book ?: throw NoStackTraceException("no book") - val chapter = appDb.bookChapterDao.getChapter(book.bookUrl, ReadBook.durChapterIndex) - ?: throw NoStackTraceException("no chapter") - val source = ReadBook.bookSource ?: throw NoStackTraceException("no book source") - val payAction = source.getContentRule().payAction - if (payAction.isNullOrEmpty()) { - throw NoStackTraceException("no pay action") - } - JsUtils.evalJs(payAction) { - it["java"] = source - it["source"] = source - it["book"] = book - it["chapter"] = chapter - } - }.onSuccess { - if (it.isNotBlank()) { - startActivity { - putExtra("title", getString(R.string.chapter_pay)) - putExtra("url", it) - IntentData.put(it, ReadBook.bookSource?.getHeaderMap(true)) + val book = ReadBook.book ?: throw NoStackTraceException("no book") + val chapter = appDb.bookChapterDao.getChapter(book.bookUrl, ReadBook.durChapterIndex) + ?: throw NoStackTraceException("no chapter") + val source = ReadBook.bookSource ?: throw NoStackTraceException("no book source") + val payAction = source.getContentRule().payAction + if (payAction.isNullOrEmpty()) { + throw NoStackTraceException("no pay action") + } + alert(R.string.pay_chapter) { + setMessage(chapter.title) + yesButton { + Coroutine.async { + val analyzeRule = AnalyzeRule(book, source).setBaseUrl(chapter.url) + analyzeRule.chapter = chapter + analyzeRule.evalJS(payAction).toString() + }.onSuccess { + if (it.isNotBlank()) { + startActivity { + putExtra("title", getString(R.string.chapter_pay)) + putExtra("url", it) + IntentData.put(it, ReadBook.bookSource?.getHeaderMap(true)) + } + } + }.onError { + toastOnUi(it.localizedMessage) } } - }.onError { - toastOnUi(it.localizedMessage) + noButton() } } diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index c94c43ea5..2ca55c008 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -1010,4 +1010,5 @@ 选中所选区间 返回时提示放入书架 阅读未放入书架的书籍在返回时提示放入书架 + 购买章节 diff --git a/app/src/main/res/values-ja-rJP/strings.xml b/app/src/main/res/values-ja-rJP/strings.xml index 0fa495693..5b2fa2020 100644 --- a/app/src/main/res/values-ja-rJP/strings.xml +++ b/app/src/main/res/values-ja-rJP/strings.xml @@ -1013,4 +1013,5 @@ 选中所选区间 返回时提示放入书架 阅读未放入书架的书籍在返回时提示放入书架 + 购买章节 diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 3ad76156f..b198285eb 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -1013,4 +1013,5 @@ 选中所选区间 返回时提示放入书架 阅读未放入书架的书籍在返回时提示放入书架 + 购买章节 diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml index 9948080db..18fdd52e2 100644 --- a/app/src/main/res/values-zh-rHK/strings.xml +++ b/app/src/main/res/values-zh-rHK/strings.xml @@ -1010,4 +1010,5 @@ 选中所选区间 返回时提示放入书架 阅读未放入书架的书籍在返回时提示放入书架 + 购买章节 diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index cc6801538..694ecb576 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -1012,4 +1012,5 @@ 选中所选区间 返回时提示放入书架 阅读未放入书架的书籍在返回时提示放入书架 + 购买章节 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d64ef8432..3b436c78a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1013,4 +1013,5 @@ 选中所选区间 返回时提示放入书架 阅读未放入书架的书籍在返回时提示放入书架 + 购买章节