Merge pull request #22 from InsanusMokrassar/0.4.1

0.4.1
This commit is contained in:
InsanusMokrassar 2022-07-30 23:26:01 +06:00 committed by GitHub
commit fd33cbfca3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 24 deletions

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

@ -33,5 +33,5 @@ dokka_version=1.6.21
# Project data
group=dev.inmo
version=0.4.0
android_code_version=24
version=0.4.1
android_code_version=25