Fix link loading repos

This commit is contained in:
Blatzar 2022-08-14 22:39:51 +02:00
parent 8162e48b92
commit bb2385fef3
3 changed files with 40 additions and 17 deletions

View File

@ -83,6 +83,21 @@
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="cloudstreamapp" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="cloudstreamrepo" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="cs.repo"
android:pathPrefix="/"

View File

@ -84,6 +84,7 @@ import kotlin.reflect.KClass
import com.lagradost.cloudstream3.plugins.PluginManager
import com.lagradost.cloudstream3.plugins.RepositoryManager
import com.lagradost.cloudstream3.plugins.RepositoryManager.PREBUILT_REPOSITORIES
import com.lagradost.cloudstream3.syncproviders.AccountManager.Companion.appStringRepo
import com.lagradost.cloudstream3.ui.settings.extensions.RepositoryData
import com.lagradost.cloudstream3.utils.Coroutines.main
@ -328,6 +329,25 @@ class MainActivity : AppCompatActivity(), ColorPickerDialogListener {
super.onNewIntent(intent)
}
private fun loadRepo(url: String) {
ioSafe {
val repo = RepositoryManager.parseRepository(url) ?: return@ioSafe
RepositoryManager.addRepository(
RepositoryData(
repo.name,
url
)
)
main {
showToast(
this@MainActivity,
getString(R.string.player_loaded_subtitles, repo.name),
Toast.LENGTH_LONG
)
}
}
}
private fun handleAppIntent(intent: Intent?) {
if (intent == null) return
val str = intent.dataString
@ -336,23 +356,7 @@ class MainActivity : AppCompatActivity(), ColorPickerDialogListener {
if (str.startsWith("https://cs.repo")) {
val realUrl = "https://" + str.substringAfter("?")
println("Repository url: $realUrl")
val activity = this
ioSafe {
val repo = RepositoryManager.parseRepository(realUrl) ?: return@ioSafe
RepositoryManager.addRepository(
RepositoryData(
repo.name,
realUrl
)
)
main {
showToast(
activity,
getString(R.string.player_loaded_subtitles, repo.name),
Toast.LENGTH_LONG
)
}
}
loadRepo(realUrl)
} else if (str.contains(appString)) {
for (api in OAuth2Apis) {
if (str.contains("/${api.redirectUrl}")) {
@ -382,6 +386,9 @@ class MainActivity : AppCompatActivity(), ColorPickerDialogListener {
}
}
}
} else if (str.contains(appStringRepo)) {
val url = str.replaceFirst(appStringRepo, "https")
loadRepo(url)
} else {
if (str.startsWith(DOWNLOAD_NAVIGATE_TO)) {
this.navigate(R.id.navigation_downloads)

View File

@ -42,6 +42,7 @@ abstract class AccountManager(private val defIndex: Int) : AuthAPI {
)
const val appString = "cloudstreamapp"
const val appStringRepo = "cloudstreamrepo"
val unixTime: Long
get() = System.currentTimeMillis() / 1000L