mirror of
https://github.com/InsanusMokrassar/TelegramBotApiLibraries.git
synced 2025-10-26 17:50:20 +00:00
Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f6df96c405 | |||
| fd33cbfca3 | |||
| 62a10b9042 | |||
| a7814c61b5 | |||
| 4eb27b42ad | |||
| 5367ff5629 | |||
| 50caa740cc | |||
| 6c85e977f1 | |||
| 156a8dd8be | |||
| 3728983653 | |||
| 8e99cb9e18 |
@@ -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())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,10 +11,10 @@ kotlin_serialisation_core_version=1.3.3
|
||||
|
||||
github_release_plugin_version=2.4.1
|
||||
|
||||
tgbotapi_version=2.1.1
|
||||
micro_utils_version=0.11.6
|
||||
tgbotapi_version=2.2.2
|
||||
micro_utils_version=0.11.13
|
||||
exposed_version=0.38.2
|
||||
plagubot_version=1.2.1
|
||||
plagubot_version=1.4.1
|
||||
|
||||
# ANDROID
|
||||
|
||||
@@ -33,5 +33,5 @@ dokka_version=1.6.21
|
||||
# Project data
|
||||
|
||||
group=dev.inmo
|
||||
version=0.3.0
|
||||
android_code_version=22
|
||||
version=0.4.2
|
||||
android_code_version=26
|
||||
|
||||
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
@@ -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-bin.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
|
||||
Reference in New Issue
Block a user