|
@@ -1,12 +1,14 @@
|
|
|
package io.legado.app.ui.association
|
|
package io.legado.app.ui.association
|
|
|
|
|
|
|
|
import android.app.Application
|
|
import android.app.Application
|
|
|
|
|
+import android.util.Base64
|
|
|
import androidx.core.net.toUri
|
|
import androidx.core.net.toUri
|
|
|
import androidx.lifecycle.MutableLiveData
|
|
import androidx.lifecycle.MutableLiveData
|
|
|
import io.legado.app.R
|
|
import io.legado.app.R
|
|
|
import io.legado.app.base.BaseViewModel
|
|
import io.legado.app.base.BaseViewModel
|
|
|
import io.legado.app.constant.AppConst
|
|
import io.legado.app.constant.AppConst
|
|
|
import io.legado.app.constant.AppLog
|
|
import io.legado.app.constant.AppLog
|
|
|
|
|
+import io.legado.app.constant.AppPattern
|
|
|
import io.legado.app.data.appDb
|
|
import io.legado.app.data.appDb
|
|
|
import io.legado.app.data.entities.HttpTTS
|
|
import io.legado.app.data.entities.HttpTTS
|
|
|
import io.legado.app.exception.NoStackTraceException
|
|
import io.legado.app.exception.NoStackTraceException
|
|
@@ -15,6 +17,7 @@ import io.legado.app.help.http.newCallResponseBody
|
|
|
import io.legado.app.help.http.okHttpClient
|
|
import io.legado.app.help.http.okHttpClient
|
|
|
import io.legado.app.help.http.text
|
|
import io.legado.app.help.http.text
|
|
|
import io.legado.app.utils.isAbsUrl
|
|
import io.legado.app.utils.isAbsUrl
|
|
|
|
|
+import io.legado.app.utils.isDataUrl
|
|
|
import io.legado.app.utils.isJsonArray
|
|
import io.legado.app.utils.isJsonArray
|
|
|
import io.legado.app.utils.isJsonObject
|
|
import io.legado.app.utils.isJsonObject
|
|
|
import io.legado.app.utils.isUri
|
|
import io.legado.app.utils.isUri
|
|
@@ -86,6 +89,11 @@ class ImportHttpTtsViewModel(app: Application) : BaseViewModel(app) {
|
|
|
text.isJsonArray() -> HttpTTS.fromJsonArray(text).getOrThrow().let { items ->
|
|
text.isJsonArray() -> HttpTTS.fromJsonArray(text).getOrThrow().let { items ->
|
|
|
allSources.addAll(items)
|
|
allSources.addAll(items)
|
|
|
}
|
|
}
|
|
|
|
|
+ text.isDataUrl() -> {
|
|
|
|
|
+ val data = AppPattern.dataUriRegex.find(text)?.groupValues?.getOrNull(1)
|
|
|
|
|
+ ?: throw NoStackTraceException(context.getString(R.string.wrong_format))
|
|
|
|
|
+ importSourceAwait(Base64.decode(data, Base64.DEFAULT).toString(Charsets.UTF_8))
|
|
|
|
|
+ }
|
|
|
text.isAbsUrl() -> {
|
|
text.isAbsUrl() -> {
|
|
|
importSourceUrl(text)
|
|
importSourceUrl(text)
|
|
|
}
|
|
}
|
|
@@ -120,4 +128,4 @@ class ImportHttpTtsViewModel(app: Application) : BaseViewModel(app) {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-}
|
|
|
|
|
|
|
+}
|