diff --git a/app/src/main/java/io/legado/app/help/storage/OldRule.kt b/app/src/main/java/io/legado/app/help/storage/OldRule.kt index 0c8b09755..d887c66fd 100644 --- a/app/src/main/java/io/legado/app/help/storage/OldRule.kt +++ b/app/src/main/java/io/legado/app/help/storage/OldRule.kt @@ -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("".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")) } diff --git a/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeRule.kt b/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeRule.kt index 7d67a0c90..2afc68e47 100644 --- a/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeRule.kt +++ b/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeRule.kt @@ -15,7 +15,6 @@ import javax.script.SimpleBindings import kotlin.collections.HashMap import java.text.SimpleDateFormat - /** * Created by REFGD. * 统一解析接口 diff --git a/app/src/main/java/io/legado/app/model/webbook/BookChapterList.kt b/app/src/main/java/io/legado/app/model/webbook/BookChapterList.kt index 437fe303a..021833ec7 100644 --- a/app/src/main/java/io/legado/app/model/webbook/BookChapterList.kt +++ b/app/src/main/java/io/legado/app/model/webbook/BookChapterList.kt @@ -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) } diff --git a/app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditActivity.kt b/app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditActivity.kt index 761dcf337..cb0a90b46 100644 --- a/app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditActivity.kt @@ -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) } diff --git a/app/src/main/java/io/legado/app/ui/main/my/MyFragment.kt b/app/src/main/java/io/legado/app/ui/main/my/MyFragment.kt index b2747f97e..29e5a45c2 100644 --- a/app/src/main/java/io/legado/app/ui/main/my/MyFragment.kt +++ b/app/src/main/java/io/legado/app/ui/main/my/MyFragment.kt @@ -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() + "RssSourceManage" -> context?.startActivity() "replaceManage" -> context?.startActivity() "setting" -> context?.startActivity( Pair("configType", ConfigViewModel.TYPE_CONFIG) diff --git a/app/src/main/java/io/legado/app/ui/main/rss/RssFragment.kt b/app/src/main/java/io/legado/app/ui/main/rss/RssFragment.kt index 13ac93c20..c5e846f66 100644 --- a/app/src/main/java/io/legado/app/ui/main/rss/RssFragment.kt +++ b/app/src/main/java/io/legado/app/ui/main/rss/RssFragment.kt @@ -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() R.id.menu_rss_star -> { } } diff --git a/app/src/main/res/menu/main_rss.xml b/app/src/main/res/menu/main_rss.xml index 4403621bd..a35f531cc 100644 --- a/app/src/main/res/menu/main_rss.xml +++ b/app/src/main/res/menu/main_rss.xml @@ -9,11 +9,4 @@ android:icon="@drawable/ic_star" app:showAsAction="always" /> - - \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f402dda09..4ad5325b4 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -382,8 +382,8 @@ 目录列表规则(chapterList) 章节名称规则(ChapterName) 章节URL规则(chapterUrl) - 是否VIP(isVip) - 更新时间(updateTime) + VIP标识(isVip) + 章节信息(ChapterInfo) 正文规则(content) 正文下一页URL规则(nextContentUrl) webJs diff --git a/app/src/main/res/xml/pref_main.xml b/app/src/main/res/xml/pref_main.xml index cf9f19b53..7a9c773e3 100644 --- a/app/src/main/res/xml/pref_main.xml +++ b/app/src/main/res/xml/pref_main.xml @@ -7,6 +7,11 @@ android:title="书源管理" app:iconSpaceReserved="false" /> + +