mirror of
https://github.com/InsanusMokrassar/TelegramBotApiLibraries.git
synced 2025-10-27 10:10:32 +00:00
Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e0cf102ec8 | |||
| 3dc2515e57 | |||
| ee21a44270 | |||
| eee918cd9f | |||
| 459d4dc5e2 | |||
| b974d4dfdc | |||
| 79e1112c77 | |||
| b76a574929 | |||
| 06d5cb904b |
@@ -1,13 +1,20 @@
|
||||
package dev.inmo.tgbotapi.libraries.cache.admins
|
||||
|
||||
import dev.inmo.tgbotapi.extensions.utils.asGroupContentMessage
|
||||
import dev.inmo.tgbotapi.types.*
|
||||
import dev.inmo.tgbotapi.types.ChatMember.abstracts.AdministratorChatMember
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.GroupContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.Message
|
||||
|
||||
interface AdminsCacheAPI {
|
||||
suspend fun getChatAdmins(chatId: ChatId): List<AdministratorChatMember>?
|
||||
suspend fun isAdmin(chatId: ChatId, userId: UserId): Boolean = getChatAdmins(chatId) ?.any {
|
||||
it.user.id == userId
|
||||
} == true
|
||||
suspend fun sentByAdmin(groupContentMessage: GroupContentMessage<*>): Boolean
|
||||
suspend fun sentByAdmin(message: Message): Boolean? {
|
||||
return sentByAdmin(message.asGroupContentMessage() ?: return null)
|
||||
}
|
||||
|
||||
suspend fun settings(): AdminsCacheSettingsAPI
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import dev.inmo.tgbotapi.extensions.api.bot.getMe
|
||||
import dev.inmo.tgbotapi.extensions.api.chat.get.getChatAdministrators
|
||||
import dev.inmo.tgbotapi.types.*
|
||||
import dev.inmo.tgbotapi.types.ChatMember.abstracts.AdministratorChatMember
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.*
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
interface DefaultAdminsCacheAPIRepo {
|
||||
@@ -49,6 +50,17 @@ class DefaultAdminsCacheAPI(
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun sentByAdmin(groupContentMessage: GroupContentMessage<*>): Boolean {
|
||||
return when (groupContentMessage) {
|
||||
is AnonymousGroupContentMessage -> true
|
||||
is CommonGroupContentMessage -> isAdmin(
|
||||
groupContentMessage.chat.id,
|
||||
groupContentMessage.user.id
|
||||
)
|
||||
else -> false
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun settings(): AdminsCacheSettingsAPI = settingsAPI
|
||||
|
||||
}
|
||||
|
||||
@@ -11,10 +11,10 @@ kotlin_serialisation_core_version=1.1.0
|
||||
|
||||
github_release_plugin_version=2.2.12
|
||||
|
||||
tgbotapi_version=0.33.1
|
||||
micro_utils_version=0.4.31
|
||||
exposed_version=0.29.1
|
||||
plagubot_version=0.1.6
|
||||
tgbotapi_version=0.34.0
|
||||
micro_utils_version=0.4.36
|
||||
exposed_version=0.31.1
|
||||
plagubot_version=0.2.0
|
||||
|
||||
# ANDROID
|
||||
|
||||
@@ -33,5 +33,5 @@ dokka_version=1.4.20
|
||||
# Project data
|
||||
|
||||
group=dev.inmo
|
||||
version=0.0.3
|
||||
android_code_version=3
|
||||
version=0.0.7
|
||||
android_code_version=6
|
||||
|
||||
Reference in New Issue
Block a user