2022-08-04 11:30:09 +00:00
|
|
|
package com.lagradost.cloudstream3.gradle
|
2022-08-04 07:19:27 +00:00
|
|
|
|
|
|
|
import org.gradle.api.Project
|
|
|
|
import org.gradle.api.plugins.ExtensionContainer
|
|
|
|
import org.gradle.api.provider.Property
|
2022-08-06 16:47:25 +00:00
|
|
|
import org.gradle.api.provider.ListProperty
|
2022-08-04 07:19:27 +00:00
|
|
|
import javax.inject.Inject
|
|
|
|
|
|
|
|
abstract class CloudstreamExtension @Inject constructor(project: Project) {
|
|
|
|
val userCache = project.gradle.gradleUserHomeDir.resolve("caches").resolve("cloudstream")
|
|
|
|
|
2022-08-04 11:30:09 +00:00
|
|
|
var apkinfo: ApkInfo? = null
|
2022-08-04 07:52:23 +00:00
|
|
|
internal set
|
|
|
|
|
2022-08-06 10:00:02 +00:00
|
|
|
fun overrideUrlPrefix(url: String) {
|
2022-08-06 16:47:25 +00:00
|
|
|
if (apkinfo == null) {
|
|
|
|
apkinfo = ApkInfo(this, "pre-release")
|
|
|
|
}
|
2022-08-06 10:00:02 +00:00
|
|
|
apkinfo!!.urlPrefix = url
|
2022-08-04 09:06:07 +00:00
|
|
|
}
|
|
|
|
|
2022-08-04 07:52:23 +00:00
|
|
|
internal var pluginClassName: String? = null
|
2022-08-06 16:47:25 +00:00
|
|
|
|
2022-08-07 19:04:52 +00:00
|
|
|
val repositoryUrl: Property<String> = project.objects.property(String::class.java)
|
|
|
|
val description: Property<String> = project.objects.property(String::class.java)
|
2022-08-06 16:47:25 +00:00
|
|
|
val authors: ListProperty<String> = project.objects.listProperty(String::class.java)
|
2022-08-07 19:04:52 +00:00
|
|
|
val isAdult: Property<Boolean> = project.objects.property(Boolean::class.java)
|
|
|
|
val status: Property<Int> = project.objects.property(Int::class.java)
|
2022-08-04 07:19:27 +00:00
|
|
|
}
|
|
|
|
|
2022-08-04 11:30:09 +00:00
|
|
|
class ApkInfo(extension: CloudstreamExtension, release: String) {
|
2022-08-04 07:19:27 +00:00
|
|
|
val cache = extension.userCache.resolve("cloudstream")
|
|
|
|
|
2022-08-06 10:00:02 +00:00
|
|
|
var urlPrefix = "https://github.com/recloudstream/cloudstream/releases/download/${release}"
|
2022-08-04 09:06:07 +00:00
|
|
|
val jarFile = cache.resolve("cloudstream.jar")
|
2022-08-04 07:19:27 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
fun ExtensionContainer.getCloudstream(): CloudstreamExtension {
|
|
|
|
return getByName("cloudstream") as CloudstreamExtension
|
2022-08-04 07:52:23 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
fun ExtensionContainer.findCloudstream(): CloudstreamExtension? {
|
|
|
|
return findByName("cloudstream") as CloudstreamExtension?
|
2022-08-04 07:19:27 +00:00
|
|
|
}
|