pull/48/head
Celeter 6 years ago
parent a978467944
commit 6b420d80e2
  1. 23
      app/src/main/java/io/legado/app/help/storage/OldRule.kt
  2. 1
      app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeRule.kt
  3. 2
      app/src/main/java/io/legado/app/model/webbook/BookChapterList.kt
  4. 11
      app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditActivity.kt
  5. 2
      app/src/main/java/io/legado/app/ui/main/my/MyFragment.kt
  6. 2
      app/src/main/java/io/legado/app/ui/main/rss/RssFragment.kt
  7. 7
      app/src/main/res/menu/main_rss.xml
  8. 4
      app/src/main/res/values/strings.xml
  9. 9
      app/src/main/res/xml/pref_main.xml

@ -91,17 +91,16 @@ object OldRule {
return source
}
private fun toNewUrls(oldUrl: String?): String? {
if (oldUrl == null) return null
if (!oldUrl.contains("\n") && !oldUrl.contains("&&"))
return toNewUrl(oldUrl)
private fun toNewUrls(oldUrls: String?): String? {
if (oldUrls == null) return null
if (!oldUrls.contains("\n") && !oldUrls.contains("&&"))
return toNewUrl(oldUrls)
val urls = oldUrl.split("(&&|\n)+".toRegex())
var newUrl = ""
for (url in urls) {
newUrl += toNewUrl(url)?.replace("\\n\\s*".toRegex(),"") + "\n"
}
return newUrl
val urls = oldUrls.split("(&&|\n)+".toRegex())
val newUrls = urls.map {
toNewUrl(it)?.replace("\n\\s*".toRegex(),"")
}.joinToString("\n")
return newUrls
}
private fun toNewUrl(oldUrl: String?): String? {
@ -133,8 +132,8 @@ object OldRule {
url = url.replace("{", "<").replace("}", ">")
url = url.replace("searchKey", "{{key}}")
url = url.replace("<searchPage([-+]1)>".toRegex(), "{{page$1}}")
.replace("searchPage([-+]1)".toRegex(), "{{page$1}}")
.replace("searchPage", "{{page}}")
.replace("searchPage([-+]1)".toRegex(), "{{page$1}}")
.replace("searchPage", "{{page}}")
for ((index, item) in jsList.withIndex()) {
url = url.replace("$$index", item.replace("searchKey", "key").replace("searchPage", "page"))
}

@ -15,7 +15,6 @@ import javax.script.SimpleBindings
import kotlin.collections.HashMap
import java.text.SimpleDateFormat
/**
* Created by REFGD.
* 统一解析接口

@ -179,6 +179,8 @@ object BookChapterList {
SourceDebug.printLog(bookSource.bookSourceUrl, "${chapterList[0].title}", printLog)
SourceDebug.printLog(bookSource.bookSourceUrl, "┌获取首章链接", printLog)
SourceDebug.printLog(bookSource.bookSourceUrl, "${chapterList[0].url}", printLog)
SourceDebug.printLog(bookSource.bookSourceUrl, "┌获取首章信息", printLog)
SourceDebug.printLog(bookSource.bookSourceUrl, "${chapterList[0].tag}", printLog)
}
return ChapterData(chapterList, nextUrlList)
}

@ -4,7 +4,9 @@ import android.app.Activity
import android.content.ClipData
import android.content.ClipboardManager
import android.content.Context
import android.content.Intent
import android.graphics.Rect
import android.net.Uri
import android.os.Bundle
import android.view.Gravity
import android.view.Menu
@ -85,6 +87,15 @@ class BookSourceEditActivity :
}
}
R.id.menu_paste_source -> viewModel.pasteSource { upRecyclerView(it) }
R.id.menu_rule_summary -> {
try {
val intent = Intent(Intent.ACTION_VIEW)
intent.data = Uri.parse(getString(R.string.source_rule_url))
startActivity(intent)
} catch (e: Exception) {
toast(R.string.can_not_open)
}
}
}
return super.onCompatOptionsItemSelected(item)
}

@ -26,6 +26,7 @@ import io.legado.app.utils.LogUtils
import io.legado.app.utils.startActivity
import kotlinx.android.synthetic.main.view_title_bar.*
import org.jetbrains.anko.startActivity
import io.legado.app.ui.rss.source.manage.RssSourceActivity
class MyFragment : BaseFragment(R.layout.fragment_my_config) {
@ -93,6 +94,7 @@ class MyFragment : BaseFragment(R.layout.fragment_my_config) {
override fun onPreferenceTreeClick(preference: Preference?): Boolean {
when (preference?.key) {
"bookSourceManage" -> context?.startActivity<BookSourceActivity>()
"RssSourceManage" -> context?.startActivity<RssSourceActivity>()
"replaceManage" -> context?.startActivity<ReplaceRuleActivity>()
"setting" -> context?.startActivity<ConfigActivity>(
Pair("configType", ConfigViewModel.TYPE_CONFIG)

@ -12,7 +12,6 @@ import io.legado.app.base.BaseFragment
import io.legado.app.data.entities.RssSource
import io.legado.app.lib.theme.ATH
import io.legado.app.ui.rss.article.RssArticlesActivity
import io.legado.app.ui.rss.source.manage.RssSourceActivity
import io.legado.app.utils.startActivity
import kotlinx.android.synthetic.main.fragment_rss.*
import kotlinx.android.synthetic.main.view_title_bar.*
@ -35,7 +34,6 @@ class RssFragment : BaseFragment(R.layout.fragment_rss),
override fun onCompatOptionsItemSelected(item: MenuItem) {
super.onCompatOptionsItemSelected(item)
when (item.itemId) {
R.id.menu_rss_config -> startActivity<RssSourceActivity>()
R.id.menu_rss_star -> {
}
}

@ -9,11 +9,4 @@
android:icon="@drawable/ic_star"
app:showAsAction="always" />
<item
android:id="@+id/menu_rss_config"
android:title="@string/setting"
android:icon="@drawable/ic_settings"
app:showAsAction="always"
tools:ignore="AlwaysShowAction" />
</menu>

@ -382,8 +382,8 @@
<string name="rule_chapter_list">目录列表规则(chapterList)</string>
<string name="rule_chapter_name">章节名称规则(ChapterName)</string>
<string name="rule_chapter_url">章节URL规则(chapterUrl)</string>
<string name="rule_is_vip">是否VIP(isVip)</string>
<string name="rule_update_time">更新时间(updateTime)</string>
<string name="rule_is_vip">VIP标识(isVip)</string>
<string name="rule_update_time">章节信息(ChapterInfo)</string>
<string name="rule_book_content">正文规则(content)</string>
<string name="rule_next_content">正文下一页URL规则(nextContentUrl)</string>
<string name="rule_web_js">webJs</string>

@ -7,6 +7,11 @@
android:title="书源管理"
app:iconSpaceReserved="false" />
<androidx.preference.Preference
android:key="RssSourceManage"
android:title="订阅管理"
app:iconSpaceReserved="false" />
<androidx.preference.Preference
android:key="replaceManage"
android:title="替换净化"
@ -15,7 +20,7 @@
<io.legado.app.lib.theme.prefs.ATESwitchPreference
android:defaultValue="false"
android:key="isNightTheme"
android:title="暗色主题"
android:title="夜间模式"
app:iconSpaceReserved="false" />
<io.legado.app.lib.theme.prefs.ATESwitchPreference
@ -31,7 +36,7 @@
<androidx.preference.Preference
android:key="web_dav_setting"
android:summary="通过WebDav云备份"
android:title="云备份设置"
android:title="账号同步"
app:iconSpaceReserved="false" />
<androidx.preference.Preference

Loading…
Cancel
Save