From e9e202f75d858cce8ecec3461a9e89ec48934249 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 5 Jan 2025 19:17:07 -0700 Subject: [PATCH] Add CloudstreamConfigurationProvider (#5) --- .../configuration/ApkConfigurationProvider.kt | 26 +------------ .../CloudstreamConfigurationProvider.kt | 37 +++++++++++++++++++ .../gradle/configuration/Configurations.kt | 5 ++- 3 files changed, 43 insertions(+), 25 deletions(-) create mode 100644 src/main/kotlin/com/lagradost/cloudstream3/gradle/configuration/CloudstreamConfigurationProvider.kt diff --git a/src/main/kotlin/com/lagradost/cloudstream3/gradle/configuration/ApkConfigurationProvider.kt b/src/main/kotlin/com/lagradost/cloudstream3/gradle/configuration/ApkConfigurationProvider.kt index c507f33..81c78a4 100644 --- a/src/main/kotlin/com/lagradost/cloudstream3/gradle/configuration/ApkConfigurationProvider.kt +++ b/src/main/kotlin/com/lagradost/cloudstream3/gradle/configuration/ApkConfigurationProvider.kt @@ -1,37 +1,15 @@ package com.lagradost.cloudstream3.gradle.configuration -import com.lagradost.cloudstream3.gradle.ApkInfo -import com.lagradost.cloudstream3.gradle.createProgressLogger -import com.lagradost.cloudstream3.gradle.download -import com.lagradost.cloudstream3.gradle.getCloudstream -import groovy.json.JsonSlurper import org.gradle.api.Project import org.gradle.api.artifacts.Dependency -import java.lang.Integer.parseInt -import java.net.URL -import java.nio.file.Files +// Deprecated, use CloudstreamConfigurationProvider class ApkConfigurationProvider : IConfigurationProvider { override val name: String get() = "apk" override fun provide(project: Project, dependency: Dependency) { - val extension = project.extensions.getCloudstream() - if (extension.apkinfo == null) { - extension.apkinfo = ApkInfo(extension, dependency.version ?: "pre-release") - } - val apkinfo = extension.apkinfo!! - - apkinfo.cache.mkdirs() - - if (!apkinfo.jarFile.exists()) { - project.logger.lifecycle("Fetching JAR") - - val url = URL("${apkinfo.urlPrefix}/classes.jar") - url.download(apkinfo.jarFile, createProgressLogger(project, "Download JAR")) - } - - project.dependencies.add("compileOnly", project.files(apkinfo.jarFile)) + CloudstreamConfigurationProvider().provide(project, dependency) } } \ No newline at end of file diff --git a/src/main/kotlin/com/lagradost/cloudstream3/gradle/configuration/CloudstreamConfigurationProvider.kt b/src/main/kotlin/com/lagradost/cloudstream3/gradle/configuration/CloudstreamConfigurationProvider.kt new file mode 100644 index 0000000..e8927eb --- /dev/null +++ b/src/main/kotlin/com/lagradost/cloudstream3/gradle/configuration/CloudstreamConfigurationProvider.kt @@ -0,0 +1,37 @@ +package com.lagradost.cloudstream3.gradle.configuration + +import com.lagradost.cloudstream3.gradle.ApkInfo +import com.lagradost.cloudstream3.gradle.createProgressLogger +import com.lagradost.cloudstream3.gradle.download +import com.lagradost.cloudstream3.gradle.getCloudstream +import groovy.json.JsonSlurper +import org.gradle.api.Project +import org.gradle.api.artifacts.Dependency +import java.lang.Integer.parseInt +import java.net.URI +import java.nio.file.Files + +class CloudstreamConfigurationProvider : IConfigurationProvider { + + override val name: String + get() = "cloudstream" + + override fun provide(project: Project, dependency: Dependency) { + val extension = project.extensions.getCloudstream() + if (extension.apkinfo == null) { + extension.apkinfo = ApkInfo(extension, dependency.version ?: "pre-release") + } + val apkinfo = extension.apkinfo!! + + apkinfo.cache.mkdirs() + + if (!apkinfo.jarFile.exists()) { + project.logger.lifecycle("Fetching JAR") + + val url = URI("${apkinfo.urlPrefix}/classes.jar").toURL() + url.download(apkinfo.jarFile, createProgressLogger(project, "Download JAR")) + } + + project.dependencies.add("compileOnly", project.files(apkinfo.jarFile)) + } +} \ No newline at end of file diff --git a/src/main/kotlin/com/lagradost/cloudstream3/gradle/configuration/Configurations.kt b/src/main/kotlin/com/lagradost/cloudstream3/gradle/configuration/Configurations.kt index 4a90c28..c99d116 100644 --- a/src/main/kotlin/com/lagradost/cloudstream3/gradle/configuration/Configurations.kt +++ b/src/main/kotlin/com/lagradost/cloudstream3/gradle/configuration/Configurations.kt @@ -3,7 +3,10 @@ package com.lagradost.cloudstream3.gradle.configuration import org.gradle.api.Project fun registerConfigurations(project: Project) { - val providers = arrayOf(ApkConfigurationProvider()) + val providers = arrayOf( + ApkConfigurationProvider(), + CloudstreamConfigurationProvider() + ) for (provider in providers) { project.configurations.register(provider.name) {