Skip to content

Commit

Permalink
Add CloudstreamConfigurationProvider (#5)
Browse files Browse the repository at this point in the history
  • Loading branch information
Luna712 authored Jan 6, 2025
1 parent ca2ec09 commit e9e202f
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 25 deletions.
Original file line number Diff line number Diff line change
@@ -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)
}
}
Original file line number Diff line number Diff line change
@@ -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))
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down

0 comments on commit e9e202f

Please sign in to comment.