kunfei 3 سال پیش
والد
کامیت
c067f25524

+ 1 - 1
app/src/main/java/io/legado/app/help/JsExtensions.kt

@@ -855,7 +855,7 @@ interface JsExtensions : JsEncodeUtils {
         getSource()?.let {
         getSource()?.let {
             Debug.log(it.getKey(), msg.toString())
             Debug.log(it.getKey(), msg.toString())
         } ?: Debug.log(msg.toString())
         } ?: Debug.log(msg.toString())
-        AppLog.putDebug("书源调试输出:$msg")
+        AppLog.putDebug("源调试输出:$msg")
         return msg
         return msg
     }
     }
 
 

+ 6 - 22
app/src/main/java/io/legado/app/ui/rss/read/ReadRssActivity.kt

@@ -16,18 +16,15 @@ import io.legado.app.base.VMBaseActivity
 import io.legado.app.constant.AppConst
 import io.legado.app.constant.AppConst
 import io.legado.app.constant.AppConst.imagePathKey
 import io.legado.app.constant.AppConst.imagePathKey
 import io.legado.app.constant.AppLog
 import io.legado.app.constant.AppLog
-import io.legado.app.data.entities.BaseSource
+import io.legado.app.data.entities.RssSource
 import io.legado.app.databinding.ActivityRssReadBinding
 import io.legado.app.databinding.ActivityRssReadBinding
-import io.legado.app.help.JsExtensions
 import io.legado.app.help.config.AppConfig
 import io.legado.app.help.config.AppConfig
 import io.legado.app.lib.dialogs.SelectItem
 import io.legado.app.lib.dialogs.SelectItem
 import io.legado.app.lib.dialogs.selector
 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.primaryTextColor
 import io.legado.app.lib.theme.primaryTextColor
 import io.legado.app.model.Download
 import io.legado.app.model.Download
-import io.legado.app.ui.association.AddToBookshelfDialog
 import io.legado.app.ui.association.OnLineImportActivity
 import io.legado.app.ui.association.OnLineImportActivity
-import io.legado.app.ui.book.search.SearchActivity
 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
 import io.legado.app.utils.*
 import io.legado.app.utils.*
@@ -55,7 +52,11 @@ class ReadRssActivity : VMBaseActivity<ActivityRssReadBinding, ReadRssViewModel>
             viewModel.saveImage(it.value, uri)
             viewModel.saveImage(it.value, uri)
         }
         }
     }
     }
-    private val rssJsExtensions by lazy { RssJsExtensions() }
+    private val rssJsExtensions by lazy { RssJsExtensions(this) }
+
+    fun getSource(): RssSource? {
+        return viewModel.rssSource
+    }
 
 
     override fun onActivityCreated(savedInstanceState: Bundle?) {
     override fun onActivityCreated(savedInstanceState: Bundle?) {
         viewModel.upStarMenuData.observe(this) { upStarMenu() }
         viewModel.upStarMenuData.observe(this) { upStarMenu() }
@@ -453,21 +454,4 @@ class ReadRssActivity : VMBaseActivity<ActivityRssReadBinding, ReadRssViewModel>
 
 
     }
     }
 
 
-    @Suppress("unused")
-    private inner class RssJsExtensions : JsExtensions {
-
-        override fun getSource(): BaseSource? {
-            return viewModel.rssSource
-        }
-
-        fun searchBook(key: String) {
-            SearchActivity.start(this@ReadRssActivity, key)
-        }
-
-        fun addBook(bookUrl: String) {
-            showDialogFragment(AddToBookshelfDialog(bookUrl))
-        }
-
-    }
-
 }
 }

+ 24 - 0
app/src/main/java/io/legado/app/ui/rss/read/RssJsExtensions.kt

@@ -0,0 +1,24 @@
+package io.legado.app.ui.rss.read
+
+import io.legado.app.data.entities.BaseSource
+import io.legado.app.help.JsExtensions
+import io.legado.app.ui.association.AddToBookshelfDialog
+import io.legado.app.ui.book.search.SearchActivity
+import io.legado.app.utils.showDialogFragment
+
+@Suppress("unused")
+class RssJsExtensions(private val activity: ReadRssActivity) : JsExtensions {
+
+    override fun getSource(): BaseSource? {
+        return activity.getSource()
+    }
+
+    fun searchBook(key: String) {
+        SearchActivity.start(activity, key)
+    }
+
+    fun addBook(bookUrl: String) {
+        activity.showDialogFragment(AddToBookshelfDialog(bookUrl))
+    }
+
+}

+ 10 - 0
app/src/main/java/io/legado/app/utils/JsURL.kt

@@ -7,6 +7,9 @@ import java.net.URLDecoder
 class JsURL(url: String, baseUrl: String? = null) {
 class JsURL(url: String, baseUrl: String? = null) {
 
 
     val searchParams: Map<String, String>?
     val searchParams: Map<String, String>?
+    val host: String
+    val origin: String
+    val pathname: String
 
 
     init {
     init {
         val mUrl = if (!baseUrl.isNullOrEmpty()) {
         val mUrl = if (!baseUrl.isNullOrEmpty()) {
@@ -15,6 +18,13 @@ class JsURL(url: String, baseUrl: String? = null) {
         } else {
         } else {
             URL(url)
             URL(url)
         }
         }
+        host = mUrl.host
+        origin = if (mUrl.port > 0) {
+            "${mUrl.protocol}://$host:${mUrl}:${mUrl.port}"
+        } else {
+            "${mUrl.protocol}://$host:${mUrl}"
+        }
+        pathname = mUrl.path
         val query = mUrl.query
         val query = mUrl.query
         searchParams = query?.let { query ->
         searchParams = query?.let { query ->
             val map = hashMapOf<String, String>()
             val map = hashMapOf<String, String>()