Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,12 @@ flyway = "9.22.3"
java-keyring = "1.0.4"
komf-client = "1.5.0"
komga-client = "0.8.1"
kotlin = "2.2.0"
kotlin = "2.2.20"
kotlin-logging = "7.0.7"
kotlinx-atomicfu = "0.29.0"
kotlinx-browser = "0.3"
kotlinx-coroutines = "1.10.2"
kotlinx-datetime = "0.6.2"
kotlinx-datetime = "0.7.1"
kotlinx-serialization = "1.9.0"
kotlinx-io = "0.8.0"
ktor = "3.2.2"
Expand Down
1 change: 1 addition & 0 deletions komelia-core/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ kotlin {
all {
languageSettings.optIn("kotlin.ExperimentalStdlibApi")
languageSettings.optIn("kotlin.ExperimentalUnsignedTypes")
languageSettings.optIn("kotlin.time.ExperimentalTime")
}
commonMain.dependencies {
api(compose.runtime)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@ import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.flow.update
import kotlinx.coroutines.launch
import kotlinx.datetime.Clock
import snd.komf.client.toKomfErrorResponse
import snd.komga.client.common.toErrorResponse
import snd.komga.client.common.toViolationResponse
import kotlin.time.Clock
import kotlin.time.Duration.Companion.seconds

class AppNotifications {
Expand Down Expand Up @@ -120,4 +120,4 @@ fun AppNotification.toToast(): Toast {
is Success -> Toast(id = id, message = message, type = ToastType.Success, duration = 4.seconds)
is Normal -> Toast(id = id, message = message, type = ToastType.Normal, duration = 3.seconds)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,8 @@ data class KomfProviderSettingsStrings(
val providerMangaUpdates: String,
val providerMangaDex: String,
val providerNautiljon: String,
val providerStripInfo: String,
val providerLambiek: String,
val providerYenPress: String,
val providerViz: String,
val providerWebtoons: String,
Expand All @@ -118,6 +120,8 @@ data class KomfProviderSettingsStrings(
KomfCoreProviders.MANGA_UPDATES -> providerMangaUpdates
KomfCoreProviders.MANGADEX -> providerMangaDex
KomfCoreProviders.NAUTILJON -> providerNautiljon
KomfCoreProviders.STRIP_INFO -> providerStripInfo
KomfCoreProviders.LAMBIEK -> providerLambiek
KomfCoreProviders.YEN_PRESS -> providerYenPress
KomfCoreProviders.VIZ -> providerViz
KomfCoreProviders.MANGA_BAKA -> providerMangaBaka
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -258,6 +258,8 @@ val EnStrings = AppStrings(
providerMangaUpdates = "MangaUpdates",
providerMangaDex = "MangaDex",
providerNautiljon = "Nautiljon",
providerStripInfo = "StripInfo",
providerLambiek = "Lambiek",
providerYenPress = "YenPress",
providerViz = "Viz",
providerWebtoons = "Webtoons",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,11 @@ import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.onEach
import kotlinx.coroutines.flow.stateIn
import kotlinx.coroutines.launch
import kotlinx.datetime.Clock
import kotlinx.datetime.DateTimeUnit.Companion.MONTH
import kotlinx.datetime.TimeZone.Companion.UTC
import kotlinx.datetime.minus
import kotlinx.datetime.todayIn
import kotlin.time.Clock
import snd.komga.client.book.KomgaBook
import snd.komga.client.book.KomgaBookClient
import snd.komga.client.book.KomgaBookQuery
Expand Down Expand Up @@ -242,4 +242,3 @@ class HomeViewModel(

}
}

Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,8 @@ import kotlinx.coroutines.flow.fold
import kotlinx.coroutines.flow.mapNotNull
import kotlinx.coroutines.flow.stateIn
import kotlinx.coroutines.launch
import kotlinx.datetime.Clock
import kotlinx.datetime.Instant
import kotlin.time.Clock
import kotlinx.serialization.Serializable
import org.jetbrains.compose.resources.ExperimentalResourceApi
import snd.komga.client.book.KomgaBook
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
@file:OptIn(kotlin.time.ExperimentalTime::class)

package io.github.snd_r.komelia.ui.settings.komf.jobs

import androidx.compose.animation.Crossfade
Expand Down Expand Up @@ -50,15 +52,13 @@ import androidx.compose.ui.text.style.TextDecoration
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import io.github.snd_r.komelia.platform.DefaultDateTimeFormats.dateTimeFormat
import io.github.snd_r.komelia.platform.cursorForHand
import io.github.snd_r.komelia.ui.common.AppFilterChipDefaults
import io.github.snd_r.komelia.ui.common.Pagination
import io.github.snd_r.komelia.ui.common.cards.SeriesImageCard
import io.github.snd_r.komelia.ui.dialogs.ConfirmationDialog
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import kotlinx.datetime.format
import snd.komf.api.job.KomfMetadataJob
import snd.komf.api.job.KomfMetadataJobStatus
import snd.komf.api.job.KomfMetadataJobStatus.COMPLETED
Expand Down Expand Up @@ -212,7 +212,8 @@ private fun JobCard(
}

Spacer(Modifier.weight(1f))
Text(job.startedAt.format(dateTimeFormat))
val startedAt = remember(job.startedAt) { job.startedAt.toString().substringBeforeLast(':').replace('T', ' ') }
Text(startedAt)
when (job.status) {
RUNNING -> {}
FAILED ->
Expand Down Expand Up @@ -334,4 +335,4 @@ private fun SeriesTooltip(
modifier = Modifier.width(150.dp)
)

}
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
@file:OptIn(kotlin.time.ExperimentalTime::class)

package io.github.snd_r.komelia.ui.settings.komf.providers

import androidx.compose.foundation.background
Expand Down Expand Up @@ -41,7 +43,6 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.unit.dp
import io.github.snd_r.komelia.platform.DefaultDateTimeFormats.localDateFormat
import io.github.snd_r.komelia.platform.WindowSizeClass
import io.github.snd_r.komelia.platform.cursorForHand
import io.github.snd_r.komelia.platform.cursorForMove
Expand All @@ -64,9 +65,6 @@ import io.github.snd_r.komelia.ui.settings.komf.komfLanguageTagsSuggestions
import io.github.snd_r.komelia.ui.settings.komf.providers.KomfProvidersSettingsViewModel.ProvidersConfigState
import io.github.snd_r.komelia.updates.UpdateProgress
import kotlinx.coroutines.flow.Flow
import kotlinx.datetime.TimeZone
import kotlinx.datetime.format
import kotlinx.datetime.toLocalDateTime
import sh.calvin.reorderable.ReorderableColumn
import snd.komf.api.KomfAuthorRole
import snd.komf.api.KomfCoreProviders
Expand Down Expand Up @@ -282,8 +280,7 @@ private fun CommonSettingsContent(
Column {
if (mangaBakaDbMetadata != null) {
val downloadDate = remember(mangaBakaDbMetadata) {
mangaBakaDbMetadata.downloadTimestamp.toLocalDateTime(TimeZone.currentSystemDefault())
.format(localDateFormat)
mangaBakaDbMetadata.downloadTimestamp.toString().substringBefore('T')
}
Text("Download date $downloadDate")
Text("Checksum ${mangaBakaDbMetadata.checksum}")
Expand Down Expand Up @@ -741,4 +738,3 @@ private class ProviderSettingsTab(private val state: ProviderConfigState) : Dial
)
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ import snd.komf.api.KomfCoreProviders.MANGADEX
import snd.komf.api.KomfCoreProviders.MANGA_BAKA
import snd.komf.api.KomfCoreProviders.MANGA_UPDATES
import snd.komf.api.KomfCoreProviders.NAUTILJON
import snd.komf.api.KomfCoreProviders.LAMBIEK
import snd.komf.api.KomfCoreProviders.STRIP_INFO
import snd.komf.api.KomfCoreProviders.VIZ
import snd.komf.api.KomfCoreProviders.WEBTOONS
import snd.komf.api.KomfCoreProviders.YEN_PRESS
Expand Down Expand Up @@ -166,6 +168,8 @@ class KomfProvidersSettingsViewModel(
private val mangaBaka = MangaBakaConfigState(MANGA_BAKA, config?.mangaBaka, this::onMangaBakaConfigUpdate)
private val mangaDex = MangaDexConfigState(MANGADEX, config?.mangaDex, this::onMangaDexConfigUpdate)
private val nautiljon = GenericProviderConfigState(NAUTILJON, config?.nautiljon, this::onProviderConfigUpdate)
private val stripInfo = GenericProviderConfigState(STRIP_INFO, config?.stripInfo, this::onProviderConfigUpdate)
private val lambiek = GenericProviderConfigState(LAMBIEK, config?.lambiek, this::onProviderConfigUpdate)
private val yenPress = GenericProviderConfigState(YEN_PRESS, config?.yenPress, this::onProviderConfigUpdate)
private val viz = GenericProviderConfigState(VIZ, config?.viz, this::onProviderConfigUpdate)
private val webtoons = GenericProviderConfigState(WEBTOONS, config?.webtoons, this::onProviderConfigUpdate)
Expand All @@ -184,6 +188,8 @@ class KomfProvidersSettingsViewModel(
if (config.mangaDex.enabled) mangaDex else null,
if (config.mangaBaka.enabled) mangaBaka else null,
if (config.nautiljon.enabled) nautiljon else null,
if (config.stripInfo.enabled) stripInfo else null,
if (config.lambiek.enabled) lambiek else null,
if (config.yenPress.enabled) yenPress else null,
if (config.viz.enabled) viz else null,
if (config.webtoons.enabled) webtoons else null,
Expand Down Expand Up @@ -212,6 +218,8 @@ class KomfProvidersSettingsViewModel(
MANGA_UPDATES -> mangaUpdates
MANGADEX -> mangaDex
NAUTILJON -> nautiljon
STRIP_INFO -> stripInfo
LAMBIEK -> lambiek
YEN_PRESS -> yenPress
VIZ -> viz
MANGA_BAKA -> mangaBaka
Expand Down Expand Up @@ -271,6 +279,8 @@ class KomfProvidersSettingsViewModel(
MAL -> ProvidersConfigUpdateRequest(mal = Some(config))
MANGA_UPDATES -> ProvidersConfigUpdateRequest(mangaUpdates = Some(config))
NAUTILJON -> ProvidersConfigUpdateRequest(nautiljon = Some(config))
STRIP_INFO -> ProvidersConfigUpdateRequest(stripInfo = Some(config))
LAMBIEK -> ProvidersConfigUpdateRequest(lambiek = Some(config))
YEN_PRESS -> ProvidersConfigUpdateRequest(yenPress = Some(config))
VIZ -> ProvidersConfigUpdateRequest(viz = Some(config))
WEBTOONS -> ProvidersConfigUpdateRequest(webtoons = Some(config))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.onCompletion
import kotlinx.coroutines.flow.onEach
import kotlinx.coroutines.launch
import kotlinx.datetime.Clock
import kotlinx.datetime.Instant
import kotlin.time.Clock

class AppUpdatesViewModel(
val releases: MutableStateFlow<List<AppRelease>>,
Expand Down Expand Up @@ -93,4 +93,4 @@ class AppUpdatesViewModel(
this.checkForUpdatesOnStartup.value = check
screenModelScope.launch { settings.putCheckForUpdatesOnStartup(check) }
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ import kotlinx.coroutines.flow.first
import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.onCompletion
import kotlinx.coroutines.flow.onEach
import kotlinx.datetime.Clock
import io.github.snd_r.komelia.settings.CommonSettingsRepository
import kotlin.time.Clock
import kotlin.time.Duration.Companion.hours

private val logger = KotlinLogging.logger {}
Expand Down Expand Up @@ -65,4 +65,4 @@ class StartupUpdateChecker(
settings.putDismissedVersion(release.version)
}

}
}
4 changes: 3 additions & 1 deletion komelia-db/shared/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ kotlin {
}

sourceSets {
all {
languageSettings.optIn("kotlin.time.ExperimentalTime")
}
commonMain.dependencies {
implementation(project(":komelia-core"))
implementation(project(":komelia-image-decoder:shared"))
Expand All @@ -47,4 +50,3 @@ android {
targetCompatibility = JavaVersion.VERSION_17
}
}

1 change: 1 addition & 0 deletions komelia-image-decoder/vips/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ kotlin {
val hostOs = when {
osName.startsWith("Win") -> "windows"
osName.startsWith("Linux") -> "linux"
osName.startsWith("Mac") -> "macos"
else -> error("Unsupported OS: $osName")
}

Expand Down
13 changes: 13 additions & 0 deletions settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -44,3 +44,16 @@ include(":third_party:indexeddb:external")
includeBuild("third_party/secret-service") {
dependencySubstitution { substitute(module("de.swiesend:secret-service")) }
}

val localKomfRoot = file("../")
if (
file("../settings.gradle.kts").exists() &&
file("../komf-client/build.gradle.kts").exists()
) {
includeBuild(localKomfRoot) {
dependencySubstitution {
substitute(module("io.github.snd-r.komf:client"))
.using(project(":komf-client"))
}
}
}