1
0
mirror of https://github.com/InsanusMokrassar/TelegramBotAPI.git synced 2026-06-18 17:25:09 +00:00

Chat Management section realization

This commit is contained in:
2026-05-15 18:10:30 +06:00
parent 7e1df37b87
commit 3ed7c8c75f
13 changed files with 488 additions and 15 deletions

View File

@@ -7,9 +7,11 @@ import dev.inmo.tgbotapi.types.chat.PublicChat
import dev.inmo.tgbotapi.types.chat.member.AdministratorChatMember
public suspend fun TelegramBot.getChatAdministrators(
chatId: ChatIdentifier
): List<AdministratorChatMember> = execute(GetChatAdministrators(chatId))
chatId: ChatIdentifier,
retrieveOtherBots: Boolean? = null
): List<AdministratorChatMember> = execute(GetChatAdministrators(chatId = chatId, retrieveOtherBots = retrieveOtherBots))
public suspend fun TelegramBot.getChatAdministrators(
chat: PublicChat
): List<AdministratorChatMember> = getChatAdministrators(chat.id)
chat: PublicChat,
retrieveOtherBots: Boolean? = null
): List<AdministratorChatMember> = getChatAdministrators(chat.id, retrieveOtherBots)

View File

@@ -0,0 +1,55 @@
package dev.inmo.tgbotapi.extensions.api.send
import dev.inmo.micro_utils.common.Warning
import dev.inmo.tgbotapi.bot.TelegramBot
import dev.inmo.tgbotapi.requests.send.DeleteAllActorChatMessageReactions
import dev.inmo.tgbotapi.requests.send.DeleteAllMessageReactions
import dev.inmo.tgbotapi.requests.send.DeleteAllUserMessageReactions
import dev.inmo.tgbotapi.types.ChatId
import dev.inmo.tgbotapi.types.ChatIdentifier
import dev.inmo.tgbotapi.types.UserId
import dev.inmo.tgbotapi.types.chat.Chat
@Warning(
"Pass either userId or actorChatId, but not both. Prefer deleteAllUserMessageReactions or deleteAllActorChatMessageReactions"
)
public suspend fun TelegramBot.deleteAllMessageReactions(
chatId: ChatIdentifier,
userId: UserId? = null,
actorChatId: ChatId? = null
): Unit = execute(
DeleteAllMessageReactions(chatId, userId, actorChatId)
)
@Warning(
"Pass either userId or actorChatId, but not both. Prefer deleteAllUserMessageReactions or deleteAllActorChatMessageReactions"
)
public suspend fun TelegramBot.deleteAllMessageReactions(
chat: Chat,
userId: UserId? = null,
actorChatId: ChatId? = null
): Unit = deleteAllMessageReactions(chat.id, userId, actorChatId)
public suspend fun TelegramBot.deleteAllUserMessageReactions(
chatId: ChatIdentifier,
userId: UserId
): Unit = execute(
DeleteAllUserMessageReactions(chatId, userId)
)
public suspend fun TelegramBot.deleteAllUserMessageReactions(
chat: Chat,
userId: UserId
): Unit = deleteAllUserMessageReactions(chat.id, userId)
public suspend fun TelegramBot.deleteAllActorChatMessageReactions(
chatId: ChatIdentifier,
actorChatId: ChatId
): Unit = execute(
DeleteAllActorChatMessageReactions(chatId, actorChatId)
)
public suspend fun TelegramBot.deleteAllActorChatMessageReactions(
chat: Chat,
actorChatId: ChatId
): Unit = deleteAllActorChatMessageReactions(chat.id, actorChatId)

View File

@@ -0,0 +1,102 @@
package dev.inmo.tgbotapi.extensions.api.send
import dev.inmo.micro_utils.common.Warning
import dev.inmo.tgbotapi.bot.TelegramBot
import dev.inmo.tgbotapi.requests.send.DeleteActorChatMessageReaction
import dev.inmo.tgbotapi.requests.send.DeleteMessageReaction
import dev.inmo.tgbotapi.requests.send.DeleteUserMessageReaction
import dev.inmo.tgbotapi.types.ChatId
import dev.inmo.tgbotapi.types.ChatIdentifier
import dev.inmo.tgbotapi.types.MessageId
import dev.inmo.tgbotapi.types.UserId
import dev.inmo.tgbotapi.types.chat.Chat
import dev.inmo.tgbotapi.types.message.abstracts.AccessibleMessage
import dev.inmo.tgbotapi.types.message.abstracts.Message
@Warning(
"Pass either userId or actorChatId, but not both. Prefer deleteUserMessageReaction or deleteActorChatMessageReaction"
)
public suspend fun TelegramBot.deleteMessageReaction(
chatId: ChatIdentifier,
messageId: MessageId,
userId: UserId? = null,
actorChatId: ChatId? = null
): Unit = execute(
DeleteMessageReaction(chatId, messageId, userId, actorChatId)
)
@Warning(
"Pass either userId or actorChatId, but not both. Prefer deleteUserMessageReaction or deleteActorChatMessageReaction"
)
public suspend fun TelegramBot.deleteMessageReaction(
chat: Chat,
messageId: MessageId,
userId: UserId? = null,
actorChatId: ChatId? = null
): Unit = deleteMessageReaction(chat.id, messageId, userId, actorChatId)
@Warning(
"Pass either userId or actorChatId, but not both. Prefer deleteUserMessageReaction or deleteActorChatMessageReaction"
)
public suspend fun TelegramBot.deleteMessageReaction(
meta: Message.MetaInfo,
userId: UserId? = null,
actorChatId: ChatId? = null
): Unit = deleteMessageReaction(meta.chatId, meta.messageId, userId, actorChatId)
@Warning(
"Pass either userId or actorChatId, but not both. Prefer deleteUserMessageReaction or deleteActorChatMessageReaction"
)
public suspend fun TelegramBot.deleteMessageReaction(
message: AccessibleMessage,
userId: UserId? = null,
actorChatId: ChatId? = null
): Unit = deleteMessageReaction(message.metaInfo, userId, actorChatId)
public suspend fun TelegramBot.deleteUserMessageReaction(
chatId: ChatIdentifier,
messageId: MessageId,
userId: UserId
): Unit = execute(
DeleteUserMessageReaction(chatId, messageId, userId)
)
public suspend fun TelegramBot.deleteUserMessageReaction(
chat: Chat,
messageId: MessageId,
userId: UserId
): Unit = deleteUserMessageReaction(chat.id, messageId, userId)
public suspend fun TelegramBot.deleteUserMessageReaction(
meta: Message.MetaInfo,
userId: UserId
): Unit = deleteUserMessageReaction(meta.chatId, meta.messageId, userId)
public suspend fun TelegramBot.deleteUserMessageReaction(
message: AccessibleMessage,
userId: UserId
): Unit = deleteUserMessageReaction(message.metaInfo, userId)
public suspend fun TelegramBot.deleteActorChatMessageReaction(
chatId: ChatIdentifier,
messageId: MessageId,
actorChatId: ChatId
): Unit = execute(
DeleteActorChatMessageReaction(chatId, messageId, actorChatId)
)
public suspend fun TelegramBot.deleteActorChatMessageReaction(
chat: Chat,
messageId: MessageId,
actorChatId: ChatId
): Unit = deleteActorChatMessageReaction(chat.id, messageId, actorChatId)
public suspend fun TelegramBot.deleteActorChatMessageReaction(
meta: Message.MetaInfo,
actorChatId: ChatId
): Unit = deleteActorChatMessageReaction(meta.chatId, meta.messageId, actorChatId)
public suspend fun TelegramBot.deleteActorChatMessageReaction(
message: AccessibleMessage,
actorChatId: ChatId
): Unit = deleteActorChatMessageReaction(message.metaInfo, actorChatId)