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" /> <category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="cloudstreamapp" /> <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 <data
android:host="cs.repo" android:host="cs.repo"
android:pathPrefix="/" android:pathPrefix="/"

View file

@ -84,6 +84,7 @@ import kotlin.reflect.KClass
import com.lagradost.cloudstream3.plugins.PluginManager import com.lagradost.cloudstream3.plugins.PluginManager
import com.lagradost.cloudstream3.plugins.RepositoryManager import com.lagradost.cloudstream3.plugins.RepositoryManager
import com.lagradost.cloudstream3.plugins.RepositoryManager.PREBUILT_REPOSITORIES 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.ui.settings.extensions.RepositoryData
import com.lagradost.cloudstream3.utils.Coroutines.main import com.lagradost.cloudstream3.utils.Coroutines.main
@ -328,6 +329,25 @@ class MainActivity : AppCompatActivity(), ColorPickerDialogListener {
super.onNewIntent(intent) 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?) { private fun handleAppIntent(intent: Intent?) {
if (intent == null) return if (intent == null) return
val str = intent.dataString val str = intent.dataString
@ -336,23 +356,7 @@ class MainActivity : AppCompatActivity(), ColorPickerDialogListener {
if (str.startsWith("https://cs.repo")) { if (str.startsWith("https://cs.repo")) {
val realUrl = "https://" + str.substringAfter("?") val realUrl = "https://" + str.substringAfter("?")
println("Repository url: $realUrl") println("Repository url: $realUrl")
val activity = this loadRepo(realUrl)
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
)
}
}
} else if (str.contains(appString)) { } else if (str.contains(appString)) {
for (api in OAuth2Apis) { for (api in OAuth2Apis) {
if (str.contains("/${api.redirectUrl}")) { 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 { } else {
if (str.startsWith(DOWNLOAD_NAVIGATE_TO)) { if (str.startsWith(DOWNLOAD_NAVIGATE_TO)) {
this.navigate(R.id.navigation_downloads) 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 appString = "cloudstreamapp"
const val appStringRepo = "cloudstreamrepo"
val unixTime: Long val unixTime: Long
get() = System.currentTimeMillis() / 1000L get() = System.currentTimeMillis() / 1000L