mirror of
				https://github.com/InsanusMokrassar/TelegramBotApiLibraries.git
				synced 2025-11-04 06:00:24 +00:00 
			
		
		
		
	Compare commits
	
		
			19 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 85a1048b13 | |||
| 8dc1687b8e | |||
| 2518109290 | |||
| 760e51cabb | |||
| 3a667946da | |||
| f6df96c405 | |||
| fd33cbfca3 | |||
| 62a10b9042 | |||
| a7814c61b5 | |||
| 4eb27b42ad | |||
| 5367ff5629 | |||
| 50caa740cc | |||
| 6c85e977f1 | |||
| 156a8dd8be | |||
| 3728983653 | |||
| 8e99cb9e18 | |||
| 0f569ead82 | |||
| 71f6710397 | |||
| 243926cd17 | 
@@ -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))
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -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())
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -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.3.7
 | 
			
		||||
github_release_plugin_version=2.4.1
 | 
			
		||||
 | 
			
		||||
tgbotapi_version=2.0.2
 | 
			
		||||
micro_utils_version=0.11.1
 | 
			
		||||
exposed_version=0.38.2
 | 
			
		||||
plagubot_version=1.1.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.2.1
 | 
			
		||||
android_code_version=21
 | 
			
		||||
version=0.5.0
 | 
			
		||||
android_code_version=27
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										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.1-bin.zip
 | 
			
		||||
zipStoreBase=GRADLE_USER_HOME
 | 
			
		||||
zipStorePath=wrapper/dists
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user