Compare commits

...

16 Commits
0.3.0 ... 0.5.0

4 changed files with 20 additions and 34 deletions

View File

@@ -23,7 +23,7 @@ private val serializationFormat = Json {
serializersModule = SerializersModule {
polymorphic(AdministratorChatMember::class) {
subclass(AdministratorChatMemberImpl::class, AdministratorChatMemberImpl.serializer())
subclass(CreatorChatMember::class, CreatorChatMember.serializer())
subclass(OwnerChatMember::class, OwnerChatMember.serializer())
}
contextual(AdministratorChatMember::class, PolymorphicSerializer(AdministratorChatMember::class))
}

View File

@@ -21,9 +21,7 @@ val Koin.adminsPlugin: AdminsPlugin?
get() = getOrNull()
@Serializable
class AdminsPlugin(
private val chatsSettings: Map<ChatId, AdminsCacheSettings>? = null
) : Plugin {
class AdminsPlugin : Plugin {
@Transient
private val globalAdminsCacheAPI = MutableStateFlow<AdminsCacheAPI?>(null)
@Transient
@@ -31,15 +29,10 @@ class AdminsPlugin(
private val mutex = Mutex()
suspend fun adminsAPI(database: Database): AdminsCacheAPI {
return when (chatsSettings) {
null -> {
val flow = mutex.withLock {
databaseToAdminsCacheAPI.getOrPut(database){ MutableStateFlow(null) }
}
flow.first { it != null }!!
}
else -> globalAdminsCacheAPI.first { it != null }!!
val flow = mutex.withLock {
databaseToAdminsCacheAPI.getOrPut(database){ MutableStateFlow(null) }
}
return flow.filterNotNull().first()
}
override fun Module.setupDI(database: Database, params: JsonObject) {
@@ -48,17 +41,10 @@ class AdminsPlugin(
override suspend fun BehaviourContext.setupBotPlugin(koin: Koin) {
with(koin) {
when (chatsSettings) {
null -> {
mutex.withLock {
val flow = databaseToAdminsCacheAPI.getOrPut(koin.get()){ MutableStateFlow(null) }
if (flow.value == null) {
flow.value = AdminsCacheAPI(koin.get())
}
}
}
else -> mutex.withLock {
globalAdminsCacheAPI.value = AdminsCacheAPI(koin.get())
mutex.withLock {
val flow = databaseToAdminsCacheAPI.getOrPut(koin.get()){ MutableStateFlow(null) }
if (flow.value == null) {
flow.value = AdminsCacheAPI(koin.get())
}
}
}

View File

@@ -6,15 +6,15 @@ kotlin.incremental.js=true
android.useAndroidX=true
android.enableJetifier=true
kotlin_version=1.6.21
kotlin_serialisation_core_version=1.3.3
kotlin_version=1.7.10
kotlin_serialisation_core_version=1.4.0-RC
github_release_plugin_version=2.4.1
tgbotapi_version=2.1.1
micro_utils_version=0.11.6
exposed_version=0.38.2
plagubot_version=1.2.1
tgbotapi_version=3.0.2
micro_utils_version=0.12.0
exposed_version=0.39.2
plagubot_version=2.0.0
# ANDROID
@@ -24,14 +24,14 @@ android_buildToolsVersion=32.0.0
dexcount_version=3.1.0
junit_version=4.12
test_ext_junit_version=1.1.2
espresso_core=3.3.0
espresso_core=3.4.0
# Dokka
dokka_version=1.6.21
dokka_version=1.7.10
# Project data
group=dev.inmo
version=0.3.0
android_code_version=22
version=0.5.0
android_code_version=27

View File

@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists