mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2024-06-01 23:45:25 +00:00
68 lines
1.9 KiB
Kotlin
68 lines
1.9 KiB
Kotlin
|
package dev.inmo.tgbotapi.extensions.api
|
||
|
|
||
|
import dev.inmo.tgbotapi.bot.TelegramBot
|
||
|
import dev.inmo.tgbotapi.requests.DeleteMessage
|
||
|
import dev.inmo.tgbotapi.requests.DeleteMessages
|
||
|
import dev.inmo.tgbotapi.requests.ForwardMessages
|
||
|
import dev.inmo.tgbotapi.types.*
|
||
|
import dev.inmo.tgbotapi.types.message.abstracts.Message
|
||
|
|
||
|
suspend fun TelegramBot.deleteMessages(
|
||
|
chatId: ChatIdentifier,
|
||
|
messageIds: List<MessageId>
|
||
|
) = messageIds.chunked(deleteMessagesLimit.last).map {
|
||
|
execute(
|
||
|
DeleteMessages(
|
||
|
chatId = chatId,
|
||
|
messageIds = it
|
||
|
)
|
||
|
)
|
||
|
}.all { it }
|
||
|
|
||
|
suspend fun TelegramBot.deleteMessages(
|
||
|
chatId: ChatIdentifier,
|
||
|
messageIds: Array<MessageId>
|
||
|
) = deleteMessages(
|
||
|
chatId = chatId,
|
||
|
messageIds = messageIds.toList()
|
||
|
)
|
||
|
|
||
|
suspend fun TelegramBot.deleteMessages(
|
||
|
chatId: ChatIdentifier,
|
||
|
firstMessageId: MessageId,
|
||
|
vararg messageIds: MessageId
|
||
|
) = deleteMessages(
|
||
|
chatId = chatId,
|
||
|
messageIds = (listOf(firstMessageId) + messageIds.toList())
|
||
|
)
|
||
|
|
||
|
suspend fun TelegramBot.deleteMessages(
|
||
|
messages: List<Message>
|
||
|
) = messages.groupBy { it.chat }.map { (chat, messages) ->
|
||
|
deleteMessages(
|
||
|
chatId = chat.id,
|
||
|
messageIds = messages.map { it.messageId }
|
||
|
)
|
||
|
}.all { it }
|
||
|
|
||
|
suspend fun TelegramBot.delete(
|
||
|
chatId: ChatIdentifier,
|
||
|
messageIds: List<MessageId>
|
||
|
) = deleteMessages(chatId = chatId, messageIds = messageIds)
|
||
|
|
||
|
suspend fun TelegramBot.delete(
|
||
|
chatId: ChatIdentifier,
|
||
|
messageIds: Array<MessageId>
|
||
|
) = deleteMessages(chatId = chatId, messageIds = messageIds)
|
||
|
|
||
|
suspend fun TelegramBot.delete(
|
||
|
chatId: ChatIdentifier,
|
||
|
firstMessageId: MessageId,
|
||
|
secondMessageId: MessageId,
|
||
|
vararg messageIds: MessageId
|
||
|
) = deleteMessages(chatId = chatId, messageIds = (listOf(firstMessageId, secondMessageId) + messageIds.toList()))
|
||
|
|
||
|
suspend fun TelegramBot.delete(
|
||
|
messages: List<Message>
|
||
|
) = deleteMessages(messages)
|