rm factorio mod portal client (it was moved to buildSrc)

This commit is contained in:
Adam 2022-06-19 10:38:05 +02:00
parent 2f921179c4
commit 1c310272c6
4 changed files with 0 additions and 275 deletions

View file

@ -1,45 +0,0 @@
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
dev.adamko.kafkatorio.lang.`kotlin-jvm`
kotlin("plugin.serialization")
`java-gradle-plugin`
}
dependencies {
implementation(platform(projects.modules.versionsPlatform))
// implementation(gradleKotlinDsl())
implementation(libs.kotlinx.serialization.core)
implementation(libs.kotlinx.serialization.json)
implementation(libs.kotlinx.cli)
implementation(libs.kotlinx.coroutines.core)
// implementation(libs.bundles.http4k)
// implementation(libs.http4k.format.kotlinx)
// implementation(libs.skrapeit)
implementation(libs.okio.core)
implementation(libs.semver)
implementation(libs.ktor.clientAuth)
implementation(libs.ktor.clientContentNegotiation)
implementation(libs.ktor.clientCore)
implementation(libs.ktor.clientEncoding)
implementation(libs.ktor.clientLogging)
implementation(libs.ktor.clientCIO)
implementation(libs.ktor.clientResources)
implementation(libs.ktor.serializationKotlinxJson)
}
tasks.withType<KotlinCompile>().configureEach {
kotlinOptions.freeCompilerArgs += listOf(
"-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi",
"-opt-in=kotlinx.coroutines.FlowPreview",
)
}

View file

@ -1,107 +0,0 @@
package dev.adamko.kafkatorio
//import dev.adamko.kafkatorio.processor.serdes.KXS.asPrettyJsonString
//import dev.adamko.kafkatorio.processor.serdes.jsonMapper
//import it.skrape.core.htmlDocument
//import it.skrape.selects.html5.input
//import kotlinx.serialization.json.JsonObject
//import kotlinx.serialization.json.jsonObject
//import org.http4k.client.OkHttp
//import org.http4k.core.HttpHandler
//import org.http4k.core.Method
//import org.http4k.core.Request
//import org.http4k.core.Response
//import org.http4k.core.body.form
//import org.http4k.core.cookie.Cookie
//import org.http4k.core.cookie.cookie
//import org.http4k.core.cookie.cookies
//import org.http4k.core.then
//import org.http4k.filter.ClientFilters
//
//
///*
// * * https://github.com/shanemadden/factorio-mod-portal-publish/blob/master/entrypoint.sh
// * * https://github.com/nicolas-lang/factorio-create-release-action/blob/master/entrypoint.py
// * * https://github.com/nicolas-lang/factorio-create-release-action/blob/master/factorioModPortal.py
// * * https://github.com/justarandomgeek/vscode-factoriomod-debug/blob/master/src/ModPackageProvider.ts#L530
// *
// *
// */
//internal class FactorioModPortalClient(
// private val appProps: ApplicationProperties = ApplicationProperties(),
// private val loginFormUrl: String = "https://factorio.com/login?mods=1",
// private val loginUrl: String = "https://factorio.com/login",
//) {
//
// private val client: HttpHandler =
// ClientFilters.FollowRedirects()
// .then(OkHttp())
//
// private val csrfCookie: Cookie by lazy { fetchCsrfToken() }
// private val sessionCookie: Cookie by lazy { login() }
//
//
// private fun fetchCsrfToken(): Cookie {
//
// val request = Request(Method.GET, loginFormUrl)
// val response: Response = client(request)
//
// val csrfToken = htmlDocument(response.bodyString()) {
// input {
// withId = csrfTokenName
// withAttribute = "name" to csrfTokenName
// findFirst { attribute("value") }
// }
// }
//
// println("csrfToken: $csrfToken")
// return Cookie(csrfTokenName, csrfToken)
// }
//
//
// private fun login(): Cookie {
//
// val loginRequest = Request(Method.POST, loginUrl)
// .header("Referer", loginFormUrl)
//// .cookie(csrfCookie)
// .form("csrf_token", csrfCookie.value)
// .form("username_or_email", appProps.factorioModPortalUsername)
// .form("password", appProps.factorioModPortalPassword.use { it })
// .form("next_url", "/profile")
//
// val loginResponse = client(loginRequest)
//
// println(loginResponse.bodyString())
//
// val sessionCookie = loginResponse.cookies()
// .first { it.name == "session" && it.domain == ".factorio.com" }
//
// println("sessionCookie: $sessionCookie")
//
// return sessionCookie
// }
//
// fun getModInfo(modName: String): JsonObject {
// val response = client(
// Request(Method.GET, "https://mods.factorio.com/api/mods/${modName}/full")
// .cookie(csrfCookie)
// .cookie(sessionCookie)
// )
// return jsonMapper.parseToJsonElement(response.bodyString()).jsonObject
// }
//
// fun fetchModUploadToken(modName: String): String {
// val response = client(
// Request(Method.GET, "https://mods.factorio.com/mod/${modName}/edit")
// .cookie(csrfCookie)
// .cookie(sessionCookie)
// )
//
// return response.bodyString()
// }
//
// companion object {
// private const val csrfTokenName = "csrf_token"
// }
//
//}

View file

@ -1,83 +0,0 @@
package dev.adamko.kafkatorio
//import javax.inject.Inject
//import kotlinx.coroutines.runBlocking
//import kotlinx.serialization.json.Json
//import net.swiftzer.semver.SemVer
//import okio.FileSystem
//import okio.Path.Companion.toOkioPath
//import okio.Path.Companion.toPath
//import okio.openZip
//import org.gradle.api.DefaultTask
//import org.gradle.api.file.RegularFileProperty
//import org.gradle.api.model.ObjectFactory
//import org.gradle.api.provider.Property
//import org.gradle.api.provider.ProviderFactory
//import org.gradle.api.tasks.Input
//import org.gradle.api.tasks.InputFile
//import org.gradle.api.tasks.TaskAction
//import org.gradle.kotlin.dsl.property
//
//
//abstract class FactorioModPortalPublishTask @Inject constructor(
// objects: ObjectFactory,
// providers: ProviderFactory,
//) : DefaultTask() {
//
// @get:InputFile
// abstract val distributionZip: RegularFileProperty
//
// @get:Input
// abstract val modVersion: Property<String>
//
// @get:Input
// abstract val modName: Property<String>
//
// @get:Input
// abstract val factorioVersion: Property<String>
//
// /** Bearer API key */
// @get:Input
// val portalApiKey: Property<String> = objects.property<String>().convention(
// providers.gradleProperty("FACTORIO_MOD_PORTAL_API_KEY")
// )
//
// @get:Input
// val portalUploadEndpoint: Property<String> = objects.property<String>()
// .convention("https://mods.factorio.com/api/v2/mods/releases/init_upload")
//
//
// @TaskAction
// fun deploy() = runBlocking {
// val modVersion = SemVer.parse(modVersion.get())
//
// val portalUploadEndpoint = portalUploadEndpoint.get()
// val modName = modName.get()
// val portalApiKey = portalApiKey.get()
// val distributionZip = distributionZip.get().asFile
//
// }
//
// private fun validateInfoJson() {
// val modVersion = modVersion.get()
// val factorioVersion = factorioVersion.get()
//
// val distributionZip = distributionZip.get().asFile.toOkioPath()
//
// val zipContents = FileSystem.SYSTEM.openZip(distributionZip)
//
// val infoJson = zipContents.read("info.json".toPath()) {
// generateSequence { readUtf8Line() }
// }.joinToString("\n")
//
// val info: FactorioModInfo = Json.decodeFromString(FactorioModInfo.serializer(), infoJson)
//
// require(info.version == modVersion) {
// "mod version mismatch, ${info.version} vs $modVersion "
// }
//
// require(info.factorioVersion == factorioVersion) {
// "Factorio version mismatch, ${info.factorioVersion} vs $factorioVersion "
// }
// }
//}

View file

@ -1,40 +0,0 @@
package dev.adamko.kafkatorio
//
//import java.io.File
//import kotlinx.cli.ArgParser
//import kotlinx.cli.ArgType
//import kotlinx.cli.required
//import kotlinx.coroutines.runBlocking
//
//fun main(args: Array<String>) = runBlocking {
// val parser = ArgParser("example")
//
// val distributionZip: File by parser.option(FileArg).required()
// val modName: String by parser.option(ArgType.String).required()
// val portalApiKey: String by parser.option(ArgType.String).required()
// val portalUploadEndpoint: String by parser.option(ArgType.String).required()
//
// parser.parse(args)
//
// val client = FactorioModPortalPublishClient(
// distributionZip,
// modName,
// portalApiKey,
// portalUploadEndpoint,
// )
//
// client.uploadMod()
//}
//
//
//object FileArg : ArgType<File>(true) {
// override val description: kotlin.String
// get() = "{ File }"
//
// override fun convert(value: kotlin.String, name: kotlin.String): File {
// return File(value).also {
// require(it.exists()) { "${it.canonicalPath} does not exist" }
// require(it.isFile) { "${it.canonicalPath} is not a file" }
// }
// }
//}