diff --git a/app/src/main/java/org/matrix/chromext/script/Parser.kt b/app/src/main/java/org/matrix/chromext/script/Parser.kt index 8893514..4b4fa1b 100644 --- a/app/src/main/java/org/matrix/chromext/script/Parser.kt +++ b/app/src/main/java/org/matrix/chromext/script/Parser.kt @@ -1,5 +1,7 @@ package org.matrix.chromext.script +import android.net.Uri +import android.util.Base64 import java.net.HttpURLConnection import java.net.URL import kotlin.text.Regex @@ -80,6 +82,16 @@ fun parseScript(input: String, storage: String? = null): Script? { } private fun downloadLib(libUrl: String): String { + if (libUrl.startsWith("data:")) { + val chunks = libUrl.split(",").toMutableList() + val type = chunks.removeFirst() + val data = Uri.decode(chunks.joinToString("")) + if (type.endsWith("base64")) { + return Base64.decode(data, Base64.DEFAULT).toString() + } else { + return data + } + } val url = URL(libUrl) val connection = url.openConnection() as HttpURLConnection return connection.inputStream.bufferedReader().use { it.readText() }