From 71f5bfc9f9ccd0f13b252b70992b393ffd113d08 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Tue, 23 Feb 2021 13:18:22 +0600 Subject: [PATCH] add several verifications extensions --- .../cache/admins/MessageSenderVerification.kt | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 cache/admins/common/src/commonMain/kotlin/dev/inmo/tgbotapi/libraries/cache/admins/MessageSenderVerification.kt diff --git a/cache/admins/common/src/commonMain/kotlin/dev/inmo/tgbotapi/libraries/cache/admins/MessageSenderVerification.kt b/cache/admins/common/src/commonMain/kotlin/dev/inmo/tgbotapi/libraries/cache/admins/MessageSenderVerification.kt new file mode 100644 index 0000000..0e90f6b --- /dev/null +++ b/cache/admins/common/src/commonMain/kotlin/dev/inmo/tgbotapi/libraries/cache/admins/MessageSenderVerification.kt @@ -0,0 +1,22 @@ +package dev.inmo.tgbotapi.libraries.cache.admins + +import dev.inmo.tgbotapi.types.ChatId +import dev.inmo.tgbotapi.types.UserId +import dev.inmo.tgbotapi.types.message.abstracts.* + +suspend fun AdminsCacheAPI.userIsAdmin(chatId: ChatId, userId: UserId) = this.isAdmin() + +suspend fun AdminsCacheAPI.verifyMessageFromAdmin(message: ContentMessage<*>) = when (message) { + is CommonGroupContentMessage<*> -> isAdmin(message.user.id, message.chat.id) + is AnonymousGroupContentMessage<*> -> true + else -> false +} + +suspend fun ContentMessage<*>.doAfterVerification(adminsCacheAPI: AdminsCacheAPI, block: suspend () -> R): R? { + val verified = adminsCacheAPI.verifyMessageFromAdmin(this) + return if (verified) { + block() + } else { + null + } +}