Compare commits

..

2 Commits

Author SHA1 Message Date
renovate[bot]
b1612c1c8c Merge 71e5cae674 into a61211e24a 2024-03-07 09:32:37 +00:00
renovate[bot]
71e5cae674 Update kt to v1.9.23 2024-03-07 09:32:33 +00:00
12 changed files with 82 additions and 127 deletions

View File

@@ -7,7 +7,7 @@ jobs:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- uses: actions/setup-java@v1 - uses: actions/setup-java@v1
with: with:
java-version: 17 java-version: 11
- name: Rewrite version - name: Rewrite version
run: | run: |
branch="`echo "${{ github.ref }}" | grep -o "[^/]*$"`" branch="`echo "${{ github.ref }}" | grep -o "[^/]*$"`"
@@ -16,6 +16,11 @@ jobs:
mv gradle.properties.tmp gradle.properties mv gradle.properties.tmp gradle.properties
- name: Build - name: Build
run: ./gradlew build run: ./gradlew build
- name: Publish to Gitea
continue-on-error: true
run: ./gradlew publishAllPublicationsToGiteaRepository
env:
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
- name: Publish - name: Publish
run: ./gradlew publishAllPublicationsToGithubPackagesRepository --no-parallel run: ./gradlew publishAllPublicationsToGithubPackagesRepository --no-parallel
continue-on-error: true continue-on-error: true

1
.gitignore vendored
View File

@@ -1,5 +1,4 @@
.idea .idea
.kotlin
out/* out/*
*.iml *.iml
target target

View File

@@ -1,24 +1,5 @@
# SauceNaoAPI Changelog # SauceNaoAPI Changelog
## 0.19.0
* Versions:
* `Kotlin`: `2.2.20`
* `Coroutines`: `1.10.2`
* `Serialization`: `1.9.0`
* `Ktor`: `3.3.0`
* `MicroUtils`: `0.26.5`
## 0.18.0
* Versions:
* `Kotlin`: `2.1.0`
* `Serialization`: `1.7.3`
* `Coroutines`: `1.9.0`
* `Ktor`: `3.0.2`
* `MicroUtils`: `0.23.2`
* `Klock`: `5.4.0`
## 0.17.2 ## 0.17.2
* Versions: * Versions:

View File

@@ -1,7 +1,7 @@
buildscript { buildscript {
repositories { repositories {
mavenCentral()
mavenLocal() mavenLocal()
mavenCentral()
} }
dependencies { dependencies {
@@ -14,7 +14,6 @@ buildscript {
plugins { plugins {
alias(libs.plugins.multiplatform) alias(libs.plugins.multiplatform)
alias(libs.plugins.serialization) alias(libs.plugins.serialization)
alias(libs.plugins.nmcp.aggregation)
} }
project.version = "$library_version" project.version = "$library_version"
@@ -24,16 +23,15 @@ apply from: "publish.gradle"
apply from: "github_release.gradle" apply from: "github_release.gradle"
repositories { repositories {
mavenCentral()
maven { url "https://nexus.inmo.dev/repository/maven-releases/" }
mavenLocal() mavenLocal()
mavenCentral()
} }
kotlin { kotlin {
jvm { jvm {
compilations.main { compilations.main {
kotlinOptions { kotlinOptions {
jvmTarget = "17" jvmTarget = "1.8"
} }
} }
} }
@@ -79,20 +77,7 @@ kotlin {
} }
} }
if ((project.hasProperty('SONATYPE_USER') || System.getenv('SONATYPE_USER') != null) && (project.hasProperty('SONATYPE_PASSWORD') || System.getenv('SONATYPE_PASSWORD') != null)) {
nmcpAggregation {
centralPortal {
username = project.hasProperty('SONATYPE_USER') ? project.property('SONATYPE_USER') : System.getenv('SONATYPE_USER')
password = project.hasProperty('SONATYPE_PASSWORD') ? project.property('SONATYPE_PASSWORD') : System.getenv('SONATYPE_PASSWORD')
validationTimeout = Duration.ofHours(4)
publishingType = System.getenv('PUBLISHING_TYPE') != "" ? System.getenv('PUBLISHING_TYPE') : "USER_MANAGED"
}
publishAllProjectsProbablyBreakingProjectIsolation()
}
}
java { java {
sourceCompatibility = JavaVersion.VERSION_17 sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_1_8
} }

View File

@@ -16,13 +16,13 @@ if (new File(projectDir, "secret.gradle").exists()) {
githubRelease { githubRelease {
token "${project.property('GITHUB_RELEASE_TOKEN')}" token "${project.property('GITHUB_RELEASE_TOKEN')}"
owner = "InsanusMokrassar" owner "InsanusMokrassar"
repo = "${rootProject.name}" repo "${rootProject.name}"
tagName = "v${project.version}" tagName "v${project.version}"
releaseName = "${project.version}" releaseName "${project.version}"
targetCommitish = "${project.version}" targetCommitish "${project.version}"
body = getCurrentVersionChangelog() body getCurrentVersionChangelog()
} }
} }

View File

@@ -1,3 +1,3 @@
kotlin.code.style=official kotlin.code.style=official
library_version=0.19.0 library_version=0.17.2

View File

@@ -1,16 +1,15 @@
[versions] [versions]
kt = "2.2.20" kt = "1.9.23"
kt-coroutines = "1.10.2" kt-serialization = "1.5.1"
kt-serialization = "1.9.0" kt-coroutines = "1.7.3"
klock = "5.4.0" klock = "4.0.3"
ktor = "3.3.0" ktor = "2.3.4"
microutils = "0.26.5" microutils = "0.19.9"
gh-release = "2.5.2" gh-release = "2.4.1"
nmcp = "1.3.0"
[libraries] [libraries]
@@ -18,7 +17,7 @@ kt-stdlib = { module = "org.jetbrains.kotlin:kotlin-stdlib", version.ref = "kt"
kt-serialization = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kt-serialization" } kt-serialization = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kt-serialization" }
kt-coroutines = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kt-coroutines" } kt-coroutines = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kt-coroutines" }
klock = { module = "com.soywiz.korge:korlibs-time", version.ref = "klock" } klock = { module = "com.soywiz.korlibs.klock:klock", version.ref = "klock" }
ktor-client = { module = "io.ktor:ktor-client-core", version.ref = "ktor" } ktor-client = { module = "io.ktor:ktor-client-core", version.ref = "ktor" }
ktor-client-okhttp = { module = "io.ktor:ktor-client-okhttp", version.ref = "ktor" } ktor-client-okhttp = { module = "io.ktor:ktor-client-okhttp", version.ref = "ktor" }
@@ -35,5 +34,3 @@ buildscript-gh-release = { module = "com.github.breadmoirai:github-release", ver
multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kt" } multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kt" }
serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kt" } serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kt" }
nmcp-aggregation = { id = "com.gradleup.nmcp.aggregation", version.ref = "nmcp" }

View File

@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.1-bin.zip

View File

@@ -1,8 +1,7 @@
apply plugin: 'maven-publish' apply plugin: 'maven-publish'
task javadocsJar(type: Jar) { task javadocsJar(type: Jar) {
archiveClassifier = 'javadoc' classifier = 'javadoc'
} }
publishing { publishing {
@@ -20,52 +19,63 @@ publishing {
} }
developers { developers {
developer {
id = "InsanusMokrassar" developer {
name = "Ovsyannikov Alexey" id = "InsanusMokrassar"
email = "ovsyannikov.alexey95@gmail.com" name = "Ovsyannikov Alexey"
} email = "ovsyannikov.alexey95@gmail.com"
}
} }
licenses { licenses {
license {
name = "Apache Software License 2.0" license {
url = "https://github.com/InsanusMokrassar/SauceNaoAPI/blob/master/LICENSE" name = "Apache Software License 2.0"
} url = "https://github.com/InsanusMokrassar/SauceNaoAPI/blob/master/LICENSE"
}
} }
} }
} repositories {
repositories { if ((project.hasProperty('GITHUBPACKAGES_USER') || System.getenv('GITHUBPACKAGES_USER') != null) && (project.hasProperty('GITHUBPACKAGES_PASSWORD') || System.getenv('GITHUBPACKAGES_PASSWORD') != null)) {
if ((project.hasProperty('GITHUBPACKAGES_USER') || System.getenv('GITHUBPACKAGES_USER') != null) && (project.hasProperty('GITHUBPACKAGES_PASSWORD') || System.getenv('GITHUBPACKAGES_PASSWORD') != null)) { maven {
maven { name = "GithubPackages"
name = "GithubPackages" url = uri("https://maven.pkg.github.com/InsanusMokrassar/SauceNaoAPI")
url = uri("https://maven.pkg.github.com/InsanusMokrassar/SauceNaoAPI")
credentials {
credentials { username = project.hasProperty('GITHUBPACKAGES_USER') ? project.property('GITHUBPACKAGES_USER') : System.getenv('GITHUBPACKAGES_USER')
username = project.hasProperty('GITHUBPACKAGES_USER') ? project.property('GITHUBPACKAGES_USER') : System.getenv('GITHUBPACKAGES_USER') password = project.hasProperty('GITHUBPACKAGES_PASSWORD') ? project.property('GITHUBPACKAGES_PASSWORD') : System.getenv('GITHUBPACKAGES_PASSWORD')
password = project.hasProperty('GITHUBPACKAGES_PASSWORD') ? project.property('GITHUBPACKAGES_PASSWORD') : System.getenv('GITHUBPACKAGES_PASSWORD') }
} }
} }
} if (project.hasProperty('GITEA_TOKEN') || System.getenv('GITEA_TOKEN') != null) {
if ((project.hasProperty('INMONEXUS_USER') || System.getenv('INMONEXUS_USER') != null) && (project.hasProperty('INMONEXUS_PASSWORD') || System.getenv('INMONEXUS_PASSWORD') != null)) { maven {
maven { name = "Gitea"
name = "InmoNexus" url = uri("https://git.inmo.dev/api/packages/InsanusMokrassar/maven")
url = uri("https://nexus.inmo.dev/repository/maven-releases/")
credentials(HttpHeaderCredentials) {
credentials { name = "Authorization"
username = project.hasProperty('INMONEXUS_USER') ? project.property('INMONEXUS_USER') : System.getenv('INMONEXUS_USER') value = project.hasProperty('GITEA_TOKEN') ? project.property('GITEA_TOKEN') : System.getenv('GITEA_TOKEN')
password = project.hasProperty('INMONEXUS_PASSWORD') ? project.property('INMONEXUS_PASSWORD') : System.getenv('INMONEXUS_PASSWORD') }
authentication {
header(HttpHeaderAuthentication)
}
} }
} }
} if ((project.hasProperty('SONATYPE_USER') || System.getenv('SONATYPE_USER') != null) && (project.hasProperty('SONATYPE_PASSWORD') || System.getenv('SONATYPE_PASSWORD') != null)) {
if ((project.hasProperty('SONATYPE_USER') || System.getenv('SONATYPE_USER') != null) && (project.hasProperty('SONATYPE_PASSWORD') || System.getenv('SONATYPE_PASSWORD') != null)) { maven {
maven { name = "sonatype"
name = "sonatype" url = uri("https://oss.sonatype.org/service/local/staging/deploy/maven2/")
url = uri("https://oss.sonatype.org/service/local/staging/deploy/maven2/")
credentials {
credentials { username = project.hasProperty('SONATYPE_USER') ? project.property('SONATYPE_USER') : System.getenv('SONATYPE_USER')
username = project.hasProperty('SONATYPE_USER') ? project.property('SONATYPE_USER') : System.getenv('SONATYPE_USER') password = project.hasProperty('SONATYPE_PASSWORD') ? project.property('SONATYPE_PASSWORD') : System.getenv('SONATYPE_PASSWORD')
password = project.hasProperty('SONATYPE_PASSWORD') ? project.property('SONATYPE_PASSWORD') : System.getenv('SONATYPE_PASSWORD') }
} }
} }
} }
@@ -74,39 +84,16 @@ publishing {
if (project.hasProperty("signing.gnupg.keyName")) { if (project.hasProperty("signing.gnupg.keyName")) {
apply plugin: 'signing' apply plugin: 'signing'
signing { signing {
useGpgCmd() useGpgCmd()
sign publishing.publications sign publishing.publications
} }
task signAll { task signAll {
tasks.withType(Sign).forEach { tasks.withType(Sign).forEach {
dependsOn(it) dependsOn(it)
} }
} }
// Workaround to make android sign operations depend on signing tasks
project.getTasks().withType(AbstractPublishToMaven.class).configureEach {
def signingTasks = project.getTasks().withType(Sign.class)
mustRunAfter(signingTasks)
}
// Workaround to make test tasks use sign
project.getTasks().withType(Sign.class).configureEach { signTask ->
def withoutSign = (signTask.name.startsWith("sign") ? signTask.name.minus("sign") : signTask.name)
def pubName = withoutSign.endsWith("Publication") ? withoutSign.substring(0, withoutSign.length() - "Publication".length()) : withoutSign
// These tasks only exist for native targets, hence findByName() to avoid trying to find them for other targets
// Task ':linkDebugTest<platform>' uses this output of task ':sign<platform>Publication' without declaring an explicit or implicit dependency
def debugTestTask = tasks.findByName("linkDebugTest$pubName")
if (debugTestTask != null) {
signTask.mustRunAfter(debugTestTask)
}
// Task ':compileTestKotlin<platform>' uses this output of task ':sign<platform>Publication' without declaring an explicit or implicit dependency
def testTask = tasks.findByName("compileTestKotlin$pubName")
if (testTask != null) {
signTask.mustRunAfter(testTask)
}
}
} }

View File

@@ -1 +1 @@
{"licenses":[{"id":"Apache-2.0","title":"Apache Software License 2.0","url":"https://github.com/InsanusMokrassar/SauceNaoAPI/blob/master/LICENSE"}],"mavenConfig":{"name":"SauceNao API","description":"SauceNao API library","url":"https://insanusmokrassar.github.io/${project.name}","vcsUrl":"https://github.com/insanusmokrassar/${project.name}.git","developers":[{"id":"InsanusMokrassar","name":"Ovsyannikov Alexey","eMail":"ovsyannikov.alexey95@gmail.com"}],"repositories":[{"name":"GithubPackages","url":"https://maven.pkg.github.com/InsanusMokrassar/SauceNaoAPI"},{"name":"InmoNexus","url":"https://nexus.inmo.dev/repository/maven-releases/"},{"name":"sonatype","url":"https://oss.sonatype.org/service/local/staging/deploy/maven2/"}],"gpgSigning":{"type":"dev.inmo.kmppscriptbuilder.core.models.GpgSigning.Optional"}}} {"licenses":[{"id":"Apache-2.0","title":"Apache Software License 2.0","url":"https://github.com/InsanusMokrassar/SauceNaoAPI/blob/master/LICENSE"}],"mavenConfig":{"name":"SauceNao API","description":"SauceNao API library","url":"https://insanusmokrassar.github.io/${project.name}","vcsUrl":"https://github.com/insanusmokrassar/${project.name}.git","developers":[{"id":"InsanusMokrassar","name":"Ovsyannikov Alexey","eMail":"ovsyannikov.alexey95@gmail.com"}],"repositories":[{"name":"GithubPackages","url":"https://maven.pkg.github.com/InsanusMokrassar/SauceNaoAPI"},{"name":"Gitea","url":"https://git.inmo.dev/api/packages/InsanusMokrassar/maven","credsType":{"type":"dev.inmo.kmppscriptbuilder.core.models.MavenPublishingRepository.CredentialsType.HttpHeaderCredentials","headerName":"Authorization","headerValueProperty":"GITEA_TOKEN"}},{"name":"sonatype","url":"https://oss.sonatype.org/service/local/staging/deploy/maven2/"}],"gpgSigning":{"type":"dev.inmo.kmppscriptbuilder.core.models.GpgSigning.Optional"}}}

View File

@@ -1 +1,3 @@
rootProject.name = 'saucenaoapi' rootProject.name = 'saucenaoapi'
enableFeaturePreview("VERSION_CATALOGS")

View File

@@ -7,7 +7,6 @@ import dev.inmo.saucenaoapi.exceptions.TooManyRequestsException
import dev.inmo.saucenaoapi.exceptions.TooManyRequestsLongException import dev.inmo.saucenaoapi.exceptions.TooManyRequestsLongException
import dev.inmo.saucenaoapi.models.Header import dev.inmo.saucenaoapi.models.Header
import dev.inmo.saucenaoapi.models.LimitsState import dev.inmo.saucenaoapi.models.LimitsState
import korlibs.time.millisecondsLong
import kotlinx.coroutines.* import kotlinx.coroutines.*
import kotlinx.coroutines.channels.Channel import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.MutableStateFlow