1
0
mirror of https://github.com/InsanusMokrassar/TelegramBotAPI.git synced 2025-09-03 23:29:33 +00:00

add workarounds for reactions

This commit is contained in:
2023-12-31 16:16:26 +06:00
parent a622c4d6fa
commit 63975cc88e
16 changed files with 470 additions and 2 deletions

View File

@@ -112,6 +112,7 @@ import dev.inmo.tgbotapi.types.chat.Bot
import dev.inmo.tgbotapi.types.chat.ChannelChat
import dev.inmo.tgbotapi.types.chat.Chat
import dev.inmo.tgbotapi.types.chat.ChatJoinRequest
import dev.inmo.tgbotapi.types.chat.ChatMessageReactionUpdated
import dev.inmo.tgbotapi.types.chat.CommonBot
import dev.inmo.tgbotapi.types.chat.CommonUser
import dev.inmo.tgbotapi.types.chat.ExtendedBot
@@ -423,6 +424,8 @@ import dev.inmo.tgbotapi.types.request.UserShared
import dev.inmo.tgbotapi.types.update.CallbackQueryUpdate
import dev.inmo.tgbotapi.types.update.ChannelPostUpdate
import dev.inmo.tgbotapi.types.update.ChatJoinRequestUpdate
import dev.inmo.tgbotapi.types.update.ChatMessageReactionUpdatedUpdate
import dev.inmo.tgbotapi.types.update.ChatMessageReactionsCountUpdatedUpdate
import dev.inmo.tgbotapi.types.update.ChosenInlineResultUpdate
import dev.inmo.tgbotapi.types.update.CommonChatMemberUpdatedUpdate
import dev.inmo.tgbotapi.types.update.EditChannelPostUpdate
@@ -2112,6 +2115,36 @@ public inline fun Chat.unknownChatTypeOrThrow(): UnknownChatType = this as
public inline fun <T> Chat.ifUnknownChatType(block: (UnknownChatType) -> T): T? =
unknownChatTypeOrNull() ?.let(block)
public inline fun ChatMessageReactionUpdated.byChatOrNull(): ChatMessageReactionUpdated.ByChat? =
this as? dev.inmo.tgbotapi.types.chat.ChatMessageReactionUpdated.ByChat
public inline fun ChatMessageReactionUpdated.byChatOrThrow(): ChatMessageReactionUpdated.ByChat =
this as dev.inmo.tgbotapi.types.chat.ChatMessageReactionUpdated.ByChat
public inline fun <T>
ChatMessageReactionUpdated.ifByChat(block: (ChatMessageReactionUpdated.ByChat) -> T): T? =
byChatOrNull() ?.let(block)
public inline fun ChatMessageReactionUpdated.byUserOrNull(): ChatMessageReactionUpdated.ByUser? =
this as? dev.inmo.tgbotapi.types.chat.ChatMessageReactionUpdated.ByUser
public inline fun ChatMessageReactionUpdated.byUserOrThrow(): ChatMessageReactionUpdated.ByUser =
this as dev.inmo.tgbotapi.types.chat.ChatMessageReactionUpdated.ByUser
public inline fun <T>
ChatMessageReactionUpdated.ifByUser(block: (ChatMessageReactionUpdated.ByUser) -> T): T? =
byUserOrNull() ?.let(block)
public inline fun ChatMessageReactionUpdated.unknownOrNull(): ChatMessageReactionUpdated.Unknown? =
this as? dev.inmo.tgbotapi.types.chat.ChatMessageReactionUpdated.Unknown
public inline fun ChatMessageReactionUpdated.unknownOrThrow(): ChatMessageReactionUpdated.Unknown =
this as dev.inmo.tgbotapi.types.chat.ChatMessageReactionUpdated.Unknown
public inline fun <T>
ChatMessageReactionUpdated.ifUnknown(block: (ChatMessageReactionUpdated.Unknown) -> T): T? =
unknownOrNull() ?.let(block)
public inline fun DiceAnimationType.cubeDiceAnimationTypeOrNull(): CubeDiceAnimationType? = this as?
dev.inmo.tgbotapi.types.dice.CubeDiceAnimationType
@@ -4567,6 +4600,28 @@ public inline fun Update.chatJoinRequestUpdateOrThrow(): ChatJoinRequestUpdate =
public inline fun <T> Update.ifChatJoinRequestUpdate(block: (ChatJoinRequestUpdate) -> T): T? =
chatJoinRequestUpdateOrNull() ?.let(block)
public inline fun Update.chatMessageReactionUpdatedUpdateOrNull(): ChatMessageReactionUpdatedUpdate?
= this as? dev.inmo.tgbotapi.types.update.ChatMessageReactionUpdatedUpdate
public inline fun Update.chatMessageReactionUpdatedUpdateOrThrow(): ChatMessageReactionUpdatedUpdate
= this as dev.inmo.tgbotapi.types.update.ChatMessageReactionUpdatedUpdate
public inline fun <T>
Update.ifChatMessageReactionUpdatedUpdate(block: (ChatMessageReactionUpdatedUpdate) -> T): T? =
chatMessageReactionUpdatedUpdateOrNull() ?.let(block)
public inline fun Update.chatMessageReactionsCountUpdatedUpdateOrNull():
ChatMessageReactionsCountUpdatedUpdate? = this as?
dev.inmo.tgbotapi.types.update.ChatMessageReactionsCountUpdatedUpdate
public inline fun Update.chatMessageReactionsCountUpdatedUpdateOrThrow():
ChatMessageReactionsCountUpdatedUpdate = this as
dev.inmo.tgbotapi.types.update.ChatMessageReactionsCountUpdatedUpdate
public inline fun <T>
Update.ifChatMessageReactionsCountUpdatedUpdate(block: (ChatMessageReactionsCountUpdatedUpdate) -> T):
T? = chatMessageReactionsCountUpdatedUpdateOrNull() ?.let(block)
public inline fun Update.chosenInlineResultUpdateOrNull(): ChosenInlineResultUpdate? = this as?
dev.inmo.tgbotapi.types.update.ChosenInlineResultUpdate

View File

@@ -40,6 +40,8 @@ fun Update.sourceChatWithConverters(
editChannelPostUpdateConverter: (EditChannelPostUpdate) -> Chat? = { it.data.chat },
editMessageUpdateConverter: (EditMessageUpdate) -> Chat? = { it.data.chat },
myChatMemberUpdatedUpdateConverter: (MyChatMemberUpdatedUpdate) -> Chat? = { it.data.chat },
chatMessageReactionUpdatedUpdateConverter: (ChatMessageReactionUpdatedUpdate) -> Chat? = { it.data.chat },
chatMessageReactionsCountUpdatedUpdateConverter: (ChatMessageReactionsCountUpdatedUpdate) -> Chat? = { it.data.chat },
commonChatMemberUpdatedUpdateConverter: (CommonChatMemberUpdatedUpdate) -> Chat? = { it.data.chat }
): Chat? = when (this) {
is BaseMessageUpdate -> baseMessageUpdateConverter(this)
@@ -57,6 +59,8 @@ fun Update.sourceChatWithConverters(
is EditMessageUpdate -> editMessageUpdateConverter(this)
is MyChatMemberUpdatedUpdate -> myChatMemberUpdatedUpdateConverter(this)
is CommonChatMemberUpdatedUpdate -> commonChatMemberUpdatedUpdateConverter(this)
is ChatMessageReactionUpdatedUpdate -> chatMessageReactionUpdatedUpdateConverter(this)
is ChatMessageReactionsCountUpdatedUpdate -> chatMessageReactionsCountUpdatedUpdateConverter(this)
else -> {
when (val data = data) {
is FromUser -> data.from