This commit is contained in:
Horis
2024-11-15 10:57:20 +08:00
parent 267f0b97f6
commit afa9ac2e97
@@ -13,7 +13,11 @@ import io.legado.app.help.SymmetricCryptoAndroid
import io.legado.app.help.config.AppConfig import io.legado.app.help.config.AppConfig
import io.legado.app.help.http.CookieStore import io.legado.app.help.http.CookieStore
import io.legado.app.model.SharedJsScope import io.legado.app.model.SharedJsScope
import io.legado.app.utils.* import io.legado.app.utils.GSON
import io.legado.app.utils.fromJsonArray
import io.legado.app.utils.fromJsonObject
import io.legado.app.utils.has
import io.legado.app.utils.printOnDebug
import org.intellij.lang.annotations.Language import org.intellij.lang.annotations.Language
import org.mozilla.javascript.Scriptable import org.mozilla.javascript.Scriptable
@@ -99,19 +103,13 @@ interface BaseSource : JsExtensions {
*/ */
fun getHeaderMap(hasLoginHeader: Boolean = false) = HashMap<String, String>().apply { fun getHeaderMap(hasLoginHeader: Boolean = false) = HashMap<String, String>().apply {
header?.let { header?.let {
val savedHeader = it val json = when {
header = null it.startsWith("@js:", true) -> evalJS(it.substring(4)).toString()
val json = try { it.startsWith("<js>", true) -> evalJS(
when { it.substring(4, it.lastIndexOf("<"))
it.startsWith("@js:", true) -> evalJS(it.substring(4)).toString() ).toString()
it.startsWith("<js>", true) -> evalJS(
it.substring(4, it.lastIndexOf("<"))
).toString()
else -> it else -> it
}
} finally {
header = savedHeader
} }
GSON.fromJsonObject<Map<String, String>>(json).getOrNull()?.let { map -> GSON.fromJsonObject<Map<String, String>>(json).getOrNull()?.let { map ->
putAll(map) putAll(map)