pull/525/head
gedoor 5 years ago
parent 3ce65b1eea
commit a682875ac6
  1. 44
      app/src/main/assets/help/ruleHelp.md
  2. 15
      app/src/main/assets/updateLog.md
  3. 36
      app/src/main/java/io/legado/app/help/LocalConfig.kt
  4. 14
      app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditActivity.kt
  5. 14
      app/src/main/java/io/legado/app/ui/rss/source/edit/RssSourceEditActivity.kt

@ -4,20 +4,40 @@
* [订阅源帮助文档](https://alanskycn.gitee.io/teachme/Rule/rss.html)
* 规则标志, {{......}}内使用规则必须有明显的规则标志,没有规则标志当作js执行
* @@ 默认规则,直接写时可以省略@@
* @XPath: xpath规则,直接写时以//开头可省略@XPath
* @Json: json规则,直接写时以$.开头可省略@Json
* : regex规则,不可省略,只可以用在书籍列表和目录列表
```
@@ 默认规则,直接写时可以省略@@
@XPath: xpath规则,直接写时以//开头可省略@XPath
@Json: json规则,直接写时以$.开头可省略@Json
: regex规则,不可省略,只可以用在书籍列表和目录列表
```
* 请求头,支持http代理,socks4 socks5代理设置
```
socks5代理
{
"proxy":"socks5://127.0.0.1:1080"
}
http代理
{
"proxy":"http://127.0.0.1:1080"
}
支持代理服务器验证
{
"proxy":"socks5://127.0.0.1:1080@用户名@密码"
}
注意:这些请求头是无意义的,会被忽略掉
```
* js 变量和函数
* java 变量-当前类
* baseUrl 变量-当前url,String
* result 变量-上一步的结果
* book 变量-书籍类,方法见 io.legado.app.data.entities.Book
* cookie 变量-cookie操作类,方法见 io.legado.app.help.http.CookieStore
* cache 变量-缓存操作类,方法见 io.legado.app.help.CacheManager
* chapter 变量-当前目录类,方法见 io.legado.app.data.entities.BookChapter
* title 变量-当前标题,String
```
java 变量-当前类
baseUrl 变量-当前url,String
result 变量-上一步的结果
book 变量-书籍类,方法见 io.legado.app.data.entities.Book
cookie 变量-cookie操作类,方法见 io.legado.app.help.http.CookieStore
cache 变量-缓存操作类,方法见 io.legado.app.help.CacheManager
chapter 变量-当前目录类,方法见 io.legado.app.data.entities.BookChapter
title 变量-当前标题,String
```
## 部分js对象属性说明
上述js变量与函数中,一些js的对象属性用的频率较高,在此列举。方便写源的时候快速翻阅。

@ -239,21 +239,6 @@ getTxtInFolder(unzipPath: String): String
**功能介绍**
* 修改订阅中自动添加style的情景<br>
订阅源的内容规则中存在`<style>``style=`
* 请求头,支持http代理,socks4 socks5代理设置 by [10bits](https://github.com/10bits)
```
socks5代理
{
"proxy":"socks5://127.0.0.1:1080"
}
http代理
{
"proxy":"http://127.0.0.1:1080"
}
支持代理服务器验证
{
"proxy":"socks5://127.0.0.1:1080@用户名@密码"
}
注意:这些请求头是无意义的,会被忽略掉
```
* 对于搜索重定向的源,可以使用此方法获得重定向后的url
```

@ -28,9 +28,13 @@ object LocalConfig {
}
@Suppress("SameParameterValue")
private fun isLastVersion(lastVersion: Int, versionKey: String, firstOpenKey: String): Boolean {
private fun isLastVersion(
lastVersion: Int,
versionKey: String,
firstOpenKey: String? = null
): Boolean {
var version = localConfig.getInt(versionKey, 0)
if (version == 0) {
if (version == 0 && firstOpenKey != null) {
if (!localConfig.getBoolean(firstOpenKey, true)) {
version = 1
}
@ -42,23 +46,21 @@ object LocalConfig {
return true
}
val readHelpVersionIsLast: Boolean by lazy {
isLastVersion(1, "readHelpVersion", "firstRead")
}
val readHelpVersionIsLast: Boolean
get() = isLastVersion(1, "readHelpVersion", "firstRead")
val backupHelpVersionIsLast: Boolean by lazy {
isLastVersion(1, "backupHelpVersion", "firstBackup")
}
val backupHelpVersionIsLast: Boolean
get() = isLastVersion(1, "backupHelpVersion", "firstBackup")
val readMenuHelpVersionIsLast: Boolean by lazy {
isLastVersion(1, "readMenuHelpVersion", "firstReadMenu")
}
val readMenuHelpVersionIsLast: Boolean
get() = isLastVersion(1, "readMenuHelpVersion", "firstReadMenu")
val bookSourcesHelpVersionIsLast: Boolean by lazy {
isLastVersion(1, "bookSourceHelpVersion", "firstOpenBookSources")
}
val bookSourcesHelpVersionIsLast: Boolean
get() = isLastVersion(1, "bookSourceHelpVersion", "firstOpenBookSources")
val debugHelpVersionIsLast: Boolean by lazy {
isLastVersion(1, "debugHelpVersion", "firstOpenDebug")
}
val debugHelpVersionIsLast: Boolean
get() = isLastVersion(1, "debugHelpVersion")
val ruleHelpVersionIsLast: Boolean
get() = isLastVersion(1, "ruleHelpVersion")
}

@ -19,6 +19,7 @@ import io.legado.app.constant.AppConst
import io.legado.app.data.entities.BookSource
import io.legado.app.data.entities.rule.*
import io.legado.app.databinding.ActivityBookSourceEditBinding
import io.legado.app.help.LocalConfig
import io.legado.app.lib.dialogs.alert
import io.legado.app.lib.theme.ATH
import io.legado.app.lib.theme.backgroundColor
@ -64,6 +65,13 @@ class BookSourceEditActivity :
}
}
override fun onPostCreate(savedInstanceState: Bundle?) {
super.onPostCreate(savedInstanceState)
if (!LocalConfig.ruleHelpVersionIsLast) {
showRuleHelp()
}
}
override fun onCompatCreateOptionsMenu(menu: Menu): Boolean {
menuInflater.inflate(R.menu.source_edit, menu)
return super.onCompatCreateOptionsMenu(menu)
@ -392,15 +400,15 @@ class BookSourceEditActivity :
selector(getString(R.string.help), items) { _, index ->
when (index) {
0 -> insertText(AppConst.urlOption)
1 -> showSourceHelp()
1 -> showRuleHelp()
2 -> showRegexHelp()
3 -> FilePicker.selectFile(this, selectPathRequestCode)
}
}
}
private fun showSourceHelp() {
val mdText = String(assets.open("help/sourceHelp.md").readBytes())
private fun showRuleHelp() {
val mdText = String(assets.open("help/ruleHelp.md").readBytes())
TextDialog.show(supportFragmentManager, mdText, TextDialog.MD)
}

@ -16,6 +16,7 @@ import io.legado.app.base.VMBaseActivity
import io.legado.app.constant.AppConst
import io.legado.app.data.entities.RssSource
import io.legado.app.databinding.ActivityRssSourceEditBinding
import io.legado.app.help.LocalConfig
import io.legado.app.lib.dialogs.alert
import io.legado.app.lib.theme.ATH
import io.legado.app.ui.qrcode.QrCodeActivity
@ -54,6 +55,13 @@ class RssSourceEditActivity :
}
}
override fun onPostCreate(savedInstanceState: Bundle?) {
super.onPostCreate(savedInstanceState)
if (!LocalConfig.ruleHelpVersionIsLast) {
showRuleHelp()
}
}
override fun finish() {
val source = getRssSource()
if (!source.equal(viewModel.rssSource)) {
@ -205,14 +213,14 @@ class RssSourceEditActivity :
selector(getString(R.string.help), items) { _, index ->
when (index) {
0 -> insertText(AppConst.urlOption)
1 -> showSourceHelp()
1 -> showRuleHelp()
2 -> showRegexHelp()
}
}
}
private fun showSourceHelp() {
val mdText = String(assets.open("help/sourceHelp.md").readBytes())
private fun showRuleHelp() {
val mdText = String(assets.open("help/ruleHelp.md").readBytes())
TextDialog.show(supportFragmentManager, mdText, TextDialog.MD)
}

Loading…
Cancel
Save