mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2025-09-03 23:29:33 +00:00
fixes in inaccessible message support
This commit is contained in:
@@ -978,346 +978,346 @@ inline fun SecureValue.requireSecureValueWithTranslations(): SecureValueWithTran
|
||||
this as SecureValueWithTranslations
|
||||
|
||||
@PreviewFeature
|
||||
inline fun <T> Message.whenAnonymousGroupContentMessageImpl(block: (AnonymousGroupContentMessageImpl<MessageContent>) -> T) =
|
||||
inline fun <T> AccessibleMessage.whenAnonymousGroupContentMessageImpl(block: (AnonymousGroupContentMessageImpl<MessageContent>) -> T) =
|
||||
asAnonymousGroupContentMessageImpl()?.let(block)
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.asAnonymousGroupContentMessageImpl(): AnonymousGroupContentMessageImpl<MessageContent>? =
|
||||
inline fun AccessibleMessage.asAnonymousGroupContentMessageImpl(): AnonymousGroupContentMessageImpl<MessageContent>? =
|
||||
this as? AnonymousGroupContentMessageImpl<MessageContent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.requireAnonymousGroupContentMessageImpl(): AnonymousGroupContentMessageImpl<MessageContent> =
|
||||
inline fun AccessibleMessage.requireAnonymousGroupContentMessageImpl(): AnonymousGroupContentMessageImpl<MessageContent> =
|
||||
this as AnonymousGroupContentMessageImpl<MessageContent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun <T> Message.whenChannelContentMessageImpl(block: (UnconnectedFromChannelGroupContentMessageImpl<MessageContent>) -> T) =
|
||||
inline fun <T> AccessibleMessage.whenChannelContentMessageImpl(block: (UnconnectedFromChannelGroupContentMessageImpl<MessageContent>) -> T) =
|
||||
asChannelContentMessageImpl()?.let(block)
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.asChannelContentMessageImpl(): UnconnectedFromChannelGroupContentMessageImpl<MessageContent>? =
|
||||
inline fun AccessibleMessage.asChannelContentMessageImpl(): UnconnectedFromChannelGroupContentMessageImpl<MessageContent>? =
|
||||
this as? UnconnectedFromChannelGroupContentMessageImpl<MessageContent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.requireChannelContentMessageImpl(): UnconnectedFromChannelGroupContentMessageImpl<MessageContent> =
|
||||
inline fun AccessibleMessage.requireChannelContentMessageImpl(): UnconnectedFromChannelGroupContentMessageImpl<MessageContent> =
|
||||
this as UnconnectedFromChannelGroupContentMessageImpl<MessageContent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun <T> Message.whenPassportMessage(block: (PassportMessage) -> T) = asPassportMessage()?.let(block)
|
||||
inline fun <T> AccessibleMessage.whenPassportMessage(block: (PassportMessage) -> T) = asPassportMessage()?.let(block)
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.asPassportMessage(): PassportMessage? = this as? PassportMessage
|
||||
inline fun AccessibleMessage.asPassportMessage(): PassportMessage? = this as? PassportMessage
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.requirePassportMessage(): PassportMessage = this as PassportMessage
|
||||
inline fun AccessibleMessage.requirePassportMessage(): PassportMessage = this as PassportMessage
|
||||
|
||||
@PreviewFeature
|
||||
inline fun <T> Message.whenPrivateContentMessageImpl(block: (PrivateContentMessageImpl<MessageContent>) -> T) =
|
||||
inline fun <T> AccessibleMessage.whenPrivateContentMessageImpl(block: (PrivateContentMessageImpl<MessageContent>) -> T) =
|
||||
asPrivateContentMessageImpl()?.let(block)
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.asPrivateContentMessageImpl(): PrivateContentMessageImpl<MessageContent>? =
|
||||
inline fun AccessibleMessage.asPrivateContentMessageImpl(): PrivateContentMessageImpl<MessageContent>? =
|
||||
this as? PrivateContentMessageImpl<MessageContent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.requirePrivateContentMessageImpl(): PrivateContentMessageImpl<MessageContent> =
|
||||
inline fun AccessibleMessage.requirePrivateContentMessageImpl(): PrivateContentMessageImpl<MessageContent> =
|
||||
this as PrivateContentMessageImpl<MessageContent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun <T> Message.whenChannelEventMessage(block: (ChannelEventMessage<ChannelEvent>) -> T) =
|
||||
inline fun <T> AccessibleMessage.whenChannelEventMessage(block: (ChannelEventMessage<ChannelEvent>) -> T) =
|
||||
asChannelEventMessage()?.let(block)
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.asChannelEventMessage(): ChannelEventMessage<ChannelEvent>? =
|
||||
inline fun AccessibleMessage.asChannelEventMessage(): ChannelEventMessage<ChannelEvent>? =
|
||||
this as? ChannelEventMessage<ChannelEvent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.requireChannelEventMessage(): ChannelEventMessage<ChannelEvent> =
|
||||
inline fun AccessibleMessage.requireChannelEventMessage(): ChannelEventMessage<ChannelEvent> =
|
||||
this as ChannelEventMessage<ChannelEvent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun <T> Message.whenCommonGroupEventMessage(block: (CommonGroupEventMessage<GroupEvent>) -> T) =
|
||||
inline fun <T> AccessibleMessage.whenCommonGroupEventMessage(block: (CommonGroupEventMessage<GroupEvent>) -> T) =
|
||||
asCommonGroupEventMessage()?.let(block)
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.asCommonGroupEventMessage(): CommonGroupEventMessage<GroupEvent>? =
|
||||
inline fun AccessibleMessage.asCommonGroupEventMessage(): CommonGroupEventMessage<GroupEvent>? =
|
||||
this as? CommonGroupEventMessage<GroupEvent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.requireCommonGroupEventMessage(): CommonGroupEventMessage<GroupEvent> =
|
||||
inline fun AccessibleMessage.requireCommonGroupEventMessage(): CommonGroupEventMessage<GroupEvent> =
|
||||
this as CommonGroupEventMessage<GroupEvent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun <T> Message.whenCommonSupergroupEventMessage(block: (CommonSupergroupEventMessage<SupergroupEvent>) -> T) =
|
||||
inline fun <T> AccessibleMessage.whenCommonSupergroupEventMessage(block: (CommonSupergroupEventMessage<SupergroupEvent>) -> T) =
|
||||
asCommonSupergroupEventMessage()?.let(block)
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.asCommonSupergroupEventMessage(): CommonSupergroupEventMessage<SupergroupEvent>? =
|
||||
inline fun AccessibleMessage.asCommonSupergroupEventMessage(): CommonSupergroupEventMessage<SupergroupEvent>? =
|
||||
this as? CommonSupergroupEventMessage<SupergroupEvent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.requireCommonSupergroupEventMessage(): CommonSupergroupEventMessage<SupergroupEvent> =
|
||||
inline fun AccessibleMessage.requireCommonSupergroupEventMessage(): CommonSupergroupEventMessage<SupergroupEvent> =
|
||||
this as CommonSupergroupEventMessage<SupergroupEvent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun <T> Message.whenAnonymousGroupContentMessage(block: (AnonymousGroupContentMessage<MessageContent>) -> T) =
|
||||
inline fun <T> AccessibleMessage.whenAnonymousGroupContentMessage(block: (AnonymousGroupContentMessage<MessageContent>) -> T) =
|
||||
asAnonymousGroupContentMessage()?.let(block)
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.asAnonymousGroupContentMessage(): AnonymousGroupContentMessage<MessageContent>? =
|
||||
inline fun AccessibleMessage.asAnonymousGroupContentMessage(): AnonymousGroupContentMessage<MessageContent>? =
|
||||
this as? AnonymousGroupContentMessage<MessageContent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.requireAnonymousGroupContentMessage(): AnonymousGroupContentMessage<MessageContent> =
|
||||
inline fun AccessibleMessage.requireAnonymousGroupContentMessage(): AnonymousGroupContentMessage<MessageContent> =
|
||||
this as AnonymousGroupContentMessage<MessageContent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun <T> Message.whenChannelContentMessage(block: (ChannelContentMessage<MessageContent>) -> T) =
|
||||
inline fun <T> AccessibleMessage.whenChannelContentMessage(block: (ChannelContentMessage<MessageContent>) -> T) =
|
||||
asChannelContentMessage()?.let(block)
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.asChannelContentMessage(): ChannelContentMessage<MessageContent>? =
|
||||
inline fun AccessibleMessage.asChannelContentMessage(): ChannelContentMessage<MessageContent>? =
|
||||
this as? ChannelContentMessage<MessageContent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.requireChannelContentMessage(): ChannelContentMessage<MessageContent> =
|
||||
inline fun AccessibleMessage.requireChannelContentMessage(): ChannelContentMessage<MessageContent> =
|
||||
this as ChannelContentMessage<MessageContent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun <T> Message.whenConnectedFromChannelGroupContentMessage(block: (ConnectedFromChannelGroupContentMessage<MessageContent>) -> T) =
|
||||
inline fun <T> AccessibleMessage.whenConnectedFromChannelGroupContentMessage(block: (ConnectedFromChannelGroupContentMessage<MessageContent>) -> T) =
|
||||
asConnectedFromChannelGroupContentMessage()?.let(block)
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.asConnectedFromChannelGroupContentMessage(): ConnectedFromChannelGroupContentMessage<MessageContent>? =
|
||||
inline fun AccessibleMessage.asConnectedFromChannelGroupContentMessage(): ConnectedFromChannelGroupContentMessage<MessageContent>? =
|
||||
this as? ConnectedFromChannelGroupContentMessage<MessageContent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.requireConnectedFromChannelGroupContentMessage(): ConnectedFromChannelGroupContentMessage<MessageContent> =
|
||||
inline fun AccessibleMessage.requireConnectedFromChannelGroupContentMessage(): ConnectedFromChannelGroupContentMessage<MessageContent> =
|
||||
this as ConnectedFromChannelGroupContentMessage<MessageContent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun <T> Message.whenUnconnectedFromChannelGroupContentMessage(block: (UnconnectedFromChannelGroupContentMessage<MessageContent>) -> T) =
|
||||
inline fun <T> AccessibleMessage.whenUnconnectedFromChannelGroupContentMessage(block: (UnconnectedFromChannelGroupContentMessage<MessageContent>) -> T) =
|
||||
asUnconnectedFromChannelGroupContentMessage()?.let(block)
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.asUnconnectedFromChannelGroupContentMessage(): UnconnectedFromChannelGroupContentMessage<MessageContent>? =
|
||||
inline fun AccessibleMessage.asUnconnectedFromChannelGroupContentMessage(): UnconnectedFromChannelGroupContentMessage<MessageContent>? =
|
||||
this as? UnconnectedFromChannelGroupContentMessage<MessageContent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.requireUnconnectedFromChannelGroupContentMessage(): UnconnectedFromChannelGroupContentMessage<MessageContent> =
|
||||
inline fun AccessibleMessage.requireUnconnectedFromChannelGroupContentMessage(): UnconnectedFromChannelGroupContentMessage<MessageContent> =
|
||||
this as UnconnectedFromChannelGroupContentMessage<MessageContent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun <T> Message.whenChatEventMessage(block: (ChatEventMessage<ChatEvent>) -> T) =
|
||||
inline fun <T> AccessibleMessage.whenChatEventMessage(block: (ChatEventMessage<ChatEvent>) -> T) =
|
||||
asChatEventMessage()?.let(block)
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.asChatEventMessage(): ChatEventMessage<ChatEvent>? = this as? ChatEventMessage<ChatEvent>
|
||||
inline fun AccessibleMessage.asChatEventMessage(): ChatEventMessage<ChatEvent>? = this as? ChatEventMessage<ChatEvent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.requireChatEventMessage(): ChatEventMessage<ChatEvent> = this as ChatEventMessage<ChatEvent>
|
||||
inline fun AccessibleMessage.requireChatEventMessage(): ChatEventMessage<ChatEvent> = this as ChatEventMessage<ChatEvent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun <T> Message.whenCommonGroupContentMessage(block: (CommonGroupContentMessage<MessageContent>) -> T) =
|
||||
inline fun <T> AccessibleMessage.whenCommonGroupContentMessage(block: (CommonGroupContentMessage<MessageContent>) -> T) =
|
||||
asCommonGroupContentMessage()?.let(block)
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.asCommonGroupContentMessage(): CommonGroupContentMessage<MessageContent>? =
|
||||
inline fun AccessibleMessage.asCommonGroupContentMessage(): CommonGroupContentMessage<MessageContent>? =
|
||||
this as? CommonGroupContentMessage<MessageContent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.requireCommonGroupContentMessage(): CommonGroupContentMessage<MessageContent> =
|
||||
inline fun AccessibleMessage.requireCommonGroupContentMessage(): CommonGroupContentMessage<MessageContent> =
|
||||
this as CommonGroupContentMessage<MessageContent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun <T> Message.whenCommonMessage(block: (CommonMessage<MessageContent>) -> T) = asCommonMessage()?.let(block)
|
||||
inline fun <T> AccessibleMessage.whenCommonMessage(block: (CommonMessage<MessageContent>) -> T) = asCommonMessage()?.let(block)
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.asCommonMessage(): CommonMessage<MessageContent>? = this as? CommonMessage<MessageContent>
|
||||
inline fun AccessibleMessage.asCommonMessage(): CommonMessage<MessageContent>? = this as? CommonMessage<MessageContent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.requireCommonMessage(): CommonMessage<MessageContent> = this as CommonMessage<MessageContent>
|
||||
inline fun AccessibleMessage.requireCommonMessage(): CommonMessage<MessageContent> = this as CommonMessage<MessageContent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun <T> Message.whenContentMessage(block: (ContentMessage<MessageContent>) -> T) = asContentMessage()?.let(block)
|
||||
inline fun <T> AccessibleMessage.whenContentMessage(block: (ContentMessage<MessageContent>) -> T) = asContentMessage()?.let(block)
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.asContentMessage(): ContentMessage<MessageContent>? = this as? ContentMessage<MessageContent>
|
||||
inline fun AccessibleMessage.asContentMessage(): ContentMessage<MessageContent>? = this as? ContentMessage<MessageContent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.requireContentMessage(): ContentMessage<MessageContent> = this as ContentMessage<MessageContent>
|
||||
inline fun AccessibleMessage.requireContentMessage(): ContentMessage<MessageContent> = this as ContentMessage<MessageContent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun <T> Message.whenFromChannelGroupContentMessage(block: (FromChannelGroupContentMessage<MessageContent>) -> T) =
|
||||
inline fun <T> AccessibleMessage.whenFromChannelGroupContentMessage(block: (FromChannelGroupContentMessage<MessageContent>) -> T) =
|
||||
asFromChannelGroupContentMessage()?.let(block)
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.asFromChannelGroupContentMessage(): FromChannelGroupContentMessage<MessageContent>? =
|
||||
inline fun AccessibleMessage.asFromChannelGroupContentMessage(): FromChannelGroupContentMessage<MessageContent>? =
|
||||
this as? FromChannelGroupContentMessage<MessageContent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.requireFromChannelGroupContentMessage(): FromChannelGroupContentMessage<MessageContent> =
|
||||
inline fun AccessibleMessage.requireFromChannelGroupContentMessage(): FromChannelGroupContentMessage<MessageContent> =
|
||||
this as FromChannelGroupContentMessage<MessageContent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun <T> Message.whenGroupEventMessage(block: (GroupEventMessage<GroupEvent>) -> T) =
|
||||
inline fun <T> AccessibleMessage.whenGroupEventMessage(block: (GroupEventMessage<GroupEvent>) -> T) =
|
||||
asGroupEventMessage()?.let(block)
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.asGroupEventMessage(): GroupEventMessage<GroupEvent>? = this as? GroupEventMessage<GroupEvent>
|
||||
inline fun AccessibleMessage.asGroupEventMessage(): GroupEventMessage<GroupEvent>? = this as? GroupEventMessage<GroupEvent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.requireGroupEventMessage(): GroupEventMessage<GroupEvent> = this as GroupEventMessage<GroupEvent>
|
||||
inline fun AccessibleMessage.requireGroupEventMessage(): GroupEventMessage<GroupEvent> = this as GroupEventMessage<GroupEvent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun <T> Message.whenPrivateEventMessage(block: (PrivateEventMessage<PrivateEvent>) -> T) =
|
||||
inline fun <T> AccessibleMessage.whenPrivateEventMessage(block: (PrivateEventMessage<PrivateEvent>) -> T) =
|
||||
asPrivateEventMessage()?.let(block)
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.asPrivateEventMessage(): PrivateEventMessage<PrivateEvent>? =
|
||||
inline fun AccessibleMessage.asPrivateEventMessage(): PrivateEventMessage<PrivateEvent>? =
|
||||
this as? PrivateEventMessage<PrivateEvent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.requirePrivateEventMessage(): PrivateEventMessage<PrivateEvent> =
|
||||
inline fun AccessibleMessage.requirePrivateEventMessage(): PrivateEventMessage<PrivateEvent> =
|
||||
this as PrivateEventMessage<PrivateEvent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun <T> Message.whenGroupContentMessage(block: (GroupContentMessage<MessageContent>) -> T) =
|
||||
inline fun <T> AccessibleMessage.whenGroupContentMessage(block: (GroupContentMessage<MessageContent>) -> T) =
|
||||
asGroupContentMessage()?.let(block)
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.asGroupContentMessage(): GroupContentMessage<MessageContent>? =
|
||||
inline fun AccessibleMessage.asGroupContentMessage(): GroupContentMessage<MessageContent>? =
|
||||
this as? GroupContentMessage<MessageContent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.requireGroupContentMessage(): GroupContentMessage<MessageContent> =
|
||||
inline fun AccessibleMessage.requireGroupContentMessage(): GroupContentMessage<MessageContent> =
|
||||
this as GroupContentMessage<MessageContent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun <T> Message.whenMediaGroupMessage(block: (MediaGroupMessage<MediaGroupPartContent>) -> T) =
|
||||
inline fun <T> AccessibleMessage.whenMediaGroupMessage(block: (MediaGroupMessage<MediaGroupPartContent>) -> T) =
|
||||
asMediaGroupMessage()?.let(block)
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.asMediaGroupMessage(): MediaGroupMessage<MediaGroupPartContent>? =
|
||||
inline fun AccessibleMessage.asMediaGroupMessage(): MediaGroupMessage<MediaGroupPartContent>? =
|
||||
this as? MediaGroupMessage<MediaGroupPartContent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.requireMediaGroupMessage(): MediaGroupMessage<MediaGroupPartContent> =
|
||||
inline fun AccessibleMessage.requireMediaGroupMessage(): MediaGroupMessage<MediaGroupPartContent> =
|
||||
this as MediaGroupMessage<MediaGroupPartContent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun <T> Message.whenPossiblyEditedMessage(block: (PossiblyEditedMessage) -> T) =
|
||||
inline fun <T> AccessibleMessage.whenPossiblyEditedMessage(block: (PossiblyEditedMessage) -> T) =
|
||||
asPossiblyEditedMessage()?.let(block)
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.asPossiblyEditedMessage(): PossiblyEditedMessage? = this as? PossiblyEditedMessage
|
||||
inline fun AccessibleMessage.asPossiblyEditedMessage(): PossiblyEditedMessage? = this as? PossiblyEditedMessage
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.requirePossiblyEditedMessage(): PossiblyEditedMessage = this as PossiblyEditedMessage
|
||||
inline fun AccessibleMessage.requirePossiblyEditedMessage(): PossiblyEditedMessage = this as PossiblyEditedMessage
|
||||
|
||||
@PreviewFeature
|
||||
inline fun <T> Message.whenPossiblyReplyMessage(block: (PossiblyReplyMessage) -> T) =
|
||||
inline fun <T> AccessibleMessage.whenPossiblyReplyMessage(block: (PossiblyReplyMessage) -> T) =
|
||||
asPossiblyReplyMessage()?.let(block)
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.asPossiblyReplyMessage(): PossiblyReplyMessage? = this as? PossiblyReplyMessage
|
||||
inline fun AccessibleMessage.asPossiblyReplyMessage(): PossiblyReplyMessage? = this as? PossiblyReplyMessage
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.requirePossiblyReplyMessage(): PossiblyReplyMessage = this as PossiblyReplyMessage
|
||||
inline fun AccessibleMessage.requirePossiblyReplyMessage(): PossiblyReplyMessage = this as PossiblyReplyMessage
|
||||
|
||||
@PreviewFeature
|
||||
inline fun <T> Message.whenPossiblyForwardedMessage(block: (PossiblyForwardedMessage) -> T) =
|
||||
inline fun <T> AccessibleMessage.whenPossiblyForwardedMessage(block: (PossiblyForwardedMessage) -> T) =
|
||||
asPossiblyForwardedMessage()?.let(block)
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.asPossiblyForwardedMessage(): PossiblyForwardedMessage? = this as? PossiblyForwardedMessage
|
||||
inline fun AccessibleMessage.asPossiblyForwardedMessage(): PossiblyForwardedMessage? = this as? PossiblyForwardedMessage
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.requirePossiblyForwardedMessage(): PossiblyForwardedMessage = this as PossiblyForwardedMessage
|
||||
inline fun AccessibleMessage.requirePossiblyForwardedMessage(): PossiblyForwardedMessage = this as PossiblyForwardedMessage
|
||||
|
||||
@PreviewFeature
|
||||
inline fun <T> Message.whenPossiblyPaymentMessage(block: (PossiblyPaymentMessage) -> T) =
|
||||
inline fun <T> AccessibleMessage.whenPossiblyPaymentMessage(block: (PossiblyPaymentMessage) -> T) =
|
||||
asPossiblyPaymentMessage()?.let(block)
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.asPossiblyPaymentMessage(): PossiblyPaymentMessage? = this as? PossiblyPaymentMessage
|
||||
inline fun AccessibleMessage.asPossiblyPaymentMessage(): PossiblyPaymentMessage? = this as? PossiblyPaymentMessage
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.requirePossiblyPaymentMessage(): PossiblyPaymentMessage = this as PossiblyPaymentMessage
|
||||
inline fun AccessibleMessage.requirePossiblyPaymentMessage(): PossiblyPaymentMessage = this as PossiblyPaymentMessage
|
||||
|
||||
@PreviewFeature
|
||||
inline fun <T> Message.whenPrivateContentMessage(block: (PrivateContentMessage<MessageContent>) -> T) =
|
||||
inline fun <T> AccessibleMessage.whenPrivateContentMessage(block: (PrivateContentMessage<MessageContent>) -> T) =
|
||||
asPrivateContentMessage()?.let(block)
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.asPrivateContentMessage(): PrivateContentMessage<MessageContent>? =
|
||||
inline fun AccessibleMessage.asPrivateContentMessage(): PrivateContentMessage<MessageContent>? =
|
||||
this as? PrivateContentMessage<MessageContent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.requirePrivateContentMessage(): PrivateContentMessage<MessageContent> =
|
||||
inline fun AccessibleMessage.requirePrivateContentMessage(): PrivateContentMessage<MessageContent> =
|
||||
this as PrivateContentMessage<MessageContent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun <T> Message.whenPublicContentMessage(block: (PublicContentMessage<MessageContent>) -> T) =
|
||||
inline fun <T> AccessibleMessage.whenPublicContentMessage(block: (PublicContentMessage<MessageContent>) -> T) =
|
||||
asPublicContentMessage()?.let(block)
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.asPublicContentMessage(): PublicContentMessage<MessageContent>? =
|
||||
inline fun AccessibleMessage.asPublicContentMessage(): PublicContentMessage<MessageContent>? =
|
||||
this as? PublicContentMessage<MessageContent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.requirePublicContentMessage(): PublicContentMessage<MessageContent> =
|
||||
inline fun AccessibleMessage.requirePublicContentMessage(): PublicContentMessage<MessageContent> =
|
||||
this as PublicContentMessage<MessageContent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun <T> Message.whenSignedMessage(block: (SignedMessage) -> T) = asSignedMessage()?.let(block)
|
||||
inline fun <T> AccessibleMessage.whenSignedMessage(block: (SignedMessage) -> T) = asSignedMessage()?.let(block)
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.asSignedMessage(): SignedMessage? = this as? SignedMessage
|
||||
inline fun AccessibleMessage.asSignedMessage(): SignedMessage? = this as? SignedMessage
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.requireSignedMessage(): SignedMessage = this as SignedMessage
|
||||
inline fun AccessibleMessage.requireSignedMessage(): SignedMessage = this as SignedMessage
|
||||
|
||||
@PreviewFeature
|
||||
inline fun <T> Message.whenSupergroupEventMessage(block: (SupergroupEventMessage<SupergroupEvent>) -> T) =
|
||||
inline fun <T> AccessibleMessage.whenSupergroupEventMessage(block: (SupergroupEventMessage<SupergroupEvent>) -> T) =
|
||||
asSupergroupEventMessage()?.let(block)
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.asSupergroupEventMessage(): SupergroupEventMessage<SupergroupEvent>? =
|
||||
inline fun AccessibleMessage.asSupergroupEventMessage(): SupergroupEventMessage<SupergroupEvent>? =
|
||||
this as? SupergroupEventMessage<SupergroupEvent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.requireSupergroupEventMessage(): SupergroupEventMessage<SupergroupEvent> =
|
||||
inline fun AccessibleMessage.requireSupergroupEventMessage(): SupergroupEventMessage<SupergroupEvent> =
|
||||
this as SupergroupEventMessage<SupergroupEvent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun <T> Message.whenUnknownMessageType(block: (UnknownMessageType) -> T) = asUnknownMessageType()?.let(block)
|
||||
inline fun <T> AccessibleMessage.whenUnknownMessageType(block: (UnknownMessageType) -> T) = asUnknownMessageType()?.let(block)
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.asUnknownMessageType(): UnknownMessageType? = this as? UnknownMessageType
|
||||
inline fun AccessibleMessage.asUnknownMessageType(): UnknownMessageType? = this as? UnknownMessageType
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.requireUnknownMessageType(): UnknownMessageType = this as UnknownMessageType
|
||||
inline fun AccessibleMessage.requireUnknownMessageType(): UnknownMessageType = this as UnknownMessageType
|
||||
|
||||
@PreviewFeature
|
||||
inline fun <T> Message.whenPossiblySentViaBotCommonMessage(block: (PossiblySentViaBotCommonMessage<MessageContent>) -> T) =
|
||||
inline fun <T> AccessibleMessage.whenPossiblySentViaBotCommonMessage(block: (PossiblySentViaBotCommonMessage<MessageContent>) -> T) =
|
||||
asPossiblySentViaBotCommonMessage()?.let(block)
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.asPossiblySentViaBotCommonMessage(): PossiblySentViaBotCommonMessage<MessageContent>? =
|
||||
inline fun AccessibleMessage.asPossiblySentViaBotCommonMessage(): PossiblySentViaBotCommonMessage<MessageContent>? =
|
||||
this as? PossiblySentViaBotCommonMessage<MessageContent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.requirePossiblySentViaBotCommonMessage(): PossiblySentViaBotCommonMessage<MessageContent> =
|
||||
inline fun AccessibleMessage.requirePossiblySentViaBotCommonMessage(): PossiblySentViaBotCommonMessage<MessageContent> =
|
||||
this as PossiblySentViaBotCommonMessage<MessageContent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun <T> Message.whenFromUserMessage(block: (FromUserMessage) -> T) = asFromUserMessage()?.let(block)
|
||||
inline fun <T> AccessibleMessage.whenFromUserMessage(block: (FromUserMessage) -> T) = asFromUserMessage()?.let(block)
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.asFromUserMessage(): FromUserMessage? = this as? FromUserMessage
|
||||
inline fun AccessibleMessage.asFromUserMessage(): FromUserMessage? = this as? FromUserMessage
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.requireFromUserMessage(): FromUserMessage = this as FromUserMessage
|
||||
inline fun AccessibleMessage.requireFromUserMessage(): FromUserMessage = this as FromUserMessage
|
||||
|
||||
@PreviewFeature
|
||||
inline fun <T> BotAction.whenFindLocationAction(block: (FindLocationAction) -> T) = asFindLocationAction()?.let(block)
|
||||
|
@@ -260,6 +260,7 @@ import dev.inmo.tgbotapi.types.message.CommonSupergroupEventMessage
|
||||
import dev.inmo.tgbotapi.types.message.ForwardInfo
|
||||
import dev.inmo.tgbotapi.types.message.PassportMessage
|
||||
import dev.inmo.tgbotapi.types.message.PrivateEventMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.AccessibleMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.AnonymousForumContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.AnonymousGroupContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChannelContentMessage
|
||||
@@ -275,6 +276,7 @@ import dev.inmo.tgbotapi.types.message.abstracts.FromChannelGroupContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.FromUserMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.GroupContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.GroupEventMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.InaccessibleMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.Message
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.PossiblyEditedMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.PossiblyForwardedMessage
|
||||
@@ -414,9 +416,13 @@ import dev.inmo.tgbotapi.types.polls.QuizPoll
|
||||
import dev.inmo.tgbotapi.types.polls.RegularPoll
|
||||
import dev.inmo.tgbotapi.types.polls.ScheduledCloseInfo
|
||||
import dev.inmo.tgbotapi.types.polls.UnknownPollType
|
||||
import dev.inmo.tgbotapi.types.queries.callback.AbstractMessageCallbackQuery
|
||||
import dev.inmo.tgbotapi.types.queries.callback.CallbackQuery
|
||||
import dev.inmo.tgbotapi.types.queries.callback.DataCallbackQuery
|
||||
import dev.inmo.tgbotapi.types.queries.callback.GameShortNameCallbackQuery
|
||||
import dev.inmo.tgbotapi.types.queries.callback.InaccessibleMessageCallbackQuery
|
||||
import dev.inmo.tgbotapi.types.queries.callback.InaccessibleMessageDataCallbackQuery
|
||||
import dev.inmo.tgbotapi.types.queries.callback.InaccessibleMessageGameShortNameCallbackQuery
|
||||
import dev.inmo.tgbotapi.types.queries.callback.InlineMessageIdCallbackQuery
|
||||
import dev.inmo.tgbotapi.types.queries.callback.InlineMessageIdDataCallbackQuery
|
||||
import dev.inmo.tgbotapi.types.queries.callback.InlineMessageIdGameShortNameCallbackQuery
|
||||
@@ -841,6 +847,16 @@ public inline fun WithUser.pollAnswerOrThrow(): PollAnswer = this as
|
||||
public inline fun <T> WithUser.ifPollAnswer(block: (PollAnswer) -> T): T? = pollAnswerOrNull()
|
||||
?.let(block)
|
||||
|
||||
public inline fun WithUser.abstractMessageCallbackQueryOrNull(): AbstractMessageCallbackQuery? =
|
||||
this as? dev.inmo.tgbotapi.types.queries.callback.AbstractMessageCallbackQuery
|
||||
|
||||
public inline fun WithUser.abstractMessageCallbackQueryOrThrow(): AbstractMessageCallbackQuery =
|
||||
this as dev.inmo.tgbotapi.types.queries.callback.AbstractMessageCallbackQuery
|
||||
|
||||
public inline fun <T>
|
||||
WithUser.ifAbstractMessageCallbackQuery(block: (AbstractMessageCallbackQuery) -> T): T? =
|
||||
abstractMessageCallbackQueryOrNull() ?.let(block)
|
||||
|
||||
public inline fun WithUser.callbackQueryOrNull(): CallbackQuery? = this as?
|
||||
dev.inmo.tgbotapi.types.queries.callback.CallbackQuery
|
||||
|
||||
@@ -878,6 +894,42 @@ public inline fun <T>
|
||||
WithUser.ifGameShortNameCallbackQuery(block: (GameShortNameCallbackQuery) -> T): T? =
|
||||
gameShortNameCallbackQueryOrNull() ?.let(block)
|
||||
|
||||
public inline fun WithUser.inaccessibleMessageCallbackQueryOrNull():
|
||||
InaccessibleMessageCallbackQuery? = this as?
|
||||
dev.inmo.tgbotapi.types.queries.callback.InaccessibleMessageCallbackQuery
|
||||
|
||||
public inline fun WithUser.inaccessibleMessageCallbackQueryOrThrow():
|
||||
InaccessibleMessageCallbackQuery = this as
|
||||
dev.inmo.tgbotapi.types.queries.callback.InaccessibleMessageCallbackQuery
|
||||
|
||||
public inline fun <T>
|
||||
WithUser.ifInaccessibleMessageCallbackQuery(block: (InaccessibleMessageCallbackQuery) -> T): T?
|
||||
= inaccessibleMessageCallbackQueryOrNull() ?.let(block)
|
||||
|
||||
public inline fun WithUser.inaccessibleMessageDataCallbackQueryOrNull():
|
||||
InaccessibleMessageDataCallbackQuery? = this as?
|
||||
dev.inmo.tgbotapi.types.queries.callback.InaccessibleMessageDataCallbackQuery
|
||||
|
||||
public inline fun WithUser.inaccessibleMessageDataCallbackQueryOrThrow():
|
||||
InaccessibleMessageDataCallbackQuery = this as
|
||||
dev.inmo.tgbotapi.types.queries.callback.InaccessibleMessageDataCallbackQuery
|
||||
|
||||
public inline fun <T>
|
||||
WithUser.ifInaccessibleMessageDataCallbackQuery(block: (InaccessibleMessageDataCallbackQuery) -> T):
|
||||
T? = inaccessibleMessageDataCallbackQueryOrNull() ?.let(block)
|
||||
|
||||
public inline fun WithUser.inaccessibleMessageGameShortNameCallbackQueryOrNull():
|
||||
InaccessibleMessageGameShortNameCallbackQuery? = this as?
|
||||
dev.inmo.tgbotapi.types.queries.callback.InaccessibleMessageGameShortNameCallbackQuery
|
||||
|
||||
public inline fun WithUser.inaccessibleMessageGameShortNameCallbackQueryOrThrow():
|
||||
InaccessibleMessageGameShortNameCallbackQuery = this as
|
||||
dev.inmo.tgbotapi.types.queries.callback.InaccessibleMessageGameShortNameCallbackQuery
|
||||
|
||||
public inline fun <T>
|
||||
WithUser.ifInaccessibleMessageGameShortNameCallbackQuery(block: (InaccessibleMessageGameShortNameCallbackQuery) -> T):
|
||||
T? = inaccessibleMessageGameShortNameCallbackQueryOrNull() ?.let(block)
|
||||
|
||||
public inline fun WithUser.inlineMessageIdCallbackQueryOrNull(): InlineMessageIdCallbackQuery? =
|
||||
this as? dev.inmo.tgbotapi.types.queries.callback.InlineMessageIdCallbackQuery
|
||||
|
||||
@@ -3396,6 +3448,24 @@ public inline fun <T>
|
||||
Message.ifCommonForumContentMessage(block: (CommonForumContentMessage<MessageContent>) -> T): T?
|
||||
= commonForumContentMessageOrNull() ?.let(block)
|
||||
|
||||
public inline fun Message.accessibleMessageOrNull(): AccessibleMessage? = this as?
|
||||
dev.inmo.tgbotapi.types.message.abstracts.AccessibleMessage
|
||||
|
||||
public inline fun Message.accessibleMessageOrThrow(): AccessibleMessage = this as
|
||||
dev.inmo.tgbotapi.types.message.abstracts.AccessibleMessage
|
||||
|
||||
public inline fun <T> Message.ifAccessibleMessage(block: (AccessibleMessage) -> T): T? =
|
||||
accessibleMessageOrNull() ?.let(block)
|
||||
|
||||
public inline fun Message.inaccessibleMessageOrNull(): InaccessibleMessage? = this as?
|
||||
dev.inmo.tgbotapi.types.message.abstracts.InaccessibleMessage
|
||||
|
||||
public inline fun Message.inaccessibleMessageOrThrow(): InaccessibleMessage = this as
|
||||
dev.inmo.tgbotapi.types.message.abstracts.InaccessibleMessage
|
||||
|
||||
public inline fun <T> Message.ifInaccessibleMessage(block: (InaccessibleMessage) -> T): T? =
|
||||
inaccessibleMessageOrNull() ?.let(block)
|
||||
|
||||
public inline fun Message.unknownMessageTypeOrNull(): UnknownMessageType? = this as?
|
||||
dev.inmo.tgbotapi.types.message.abstracts.UnknownMessageType
|
||||
|
||||
|
@@ -8,7 +8,7 @@ import dev.inmo.tgbotapi.types.MessageId
|
||||
import dev.inmo.tgbotapi.types.MessageThreadId
|
||||
import dev.inmo.tgbotapi.types.Username
|
||||
import dev.inmo.tgbotapi.types.chat.Chat
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.Message
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.AccessibleMessage
|
||||
import dev.inmo.tgbotapi.types.threadId
|
||||
import dev.inmo.tgbotapi.utils.extensions.threadIdOrNull
|
||||
|
||||
@@ -32,43 +32,43 @@ inline fun WithPreviewChat.sameChat(chat: Chat) =
|
||||
* @return true in case if [this] message is placed in the same chat that [other]
|
||||
*/
|
||||
@Suppress("NOTHING_TO_INLINE")
|
||||
inline fun WithPreviewChat.sameChat(other: Message) = sameChat(other.chat)
|
||||
inline fun WithPreviewChat.sameChat(other: AccessibleMessage) = sameChat(other.chat)
|
||||
|
||||
/**
|
||||
* @return true in case if [this] message is from the same chat (with id == [chatId]) and [this] [Message.messageId]
|
||||
* @return true in case if [this] message is from the same chat (with id == [chatId]) and [this] [AccessibleMessage.messageId]
|
||||
* equal [messageId] identifier
|
||||
*/
|
||||
@Suppress("NOTHING_TO_INLINE")
|
||||
inline fun Message.sameMessage(
|
||||
inline fun AccessibleMessage.sameMessage(
|
||||
chatId: ChatIdentifier,
|
||||
messageId: MessageId
|
||||
) = sameChat(chatId) && this.messageId == messageId
|
||||
|
||||
/**
|
||||
* @return true in case if [this] message is from the same [chat] and [this] [Message.messageId] equal [messageId]
|
||||
* @return true in case if [this] message is from the same [chat] and [this] [AccessibleMessage.messageId] equal [messageId]
|
||||
* identifier
|
||||
*/
|
||||
@Suppress("NOTHING_TO_INLINE")
|
||||
inline fun Message.sameMessage(
|
||||
inline fun AccessibleMessage.sameMessage(
|
||||
chat: Chat,
|
||||
messageId: MessageId
|
||||
) = sameChat(chat) && this.messageId == messageId
|
||||
|
||||
/**
|
||||
* @return true in case if [this] message is the same as [other]. The same here means that these messages from one chat
|
||||
* and have equal [Message.messageId] identifier
|
||||
* and have equal [AccessibleMessage.messageId] identifier
|
||||
*/
|
||||
@Suppress("NOTHING_TO_INLINE")
|
||||
inline fun Message.sameMessage(other: Message) = sameMessage(other.chat, other.messageId)
|
||||
inline fun AccessibleMessage.sameMessage(other: AccessibleMessage) = sameMessage(other.chat, other.messageId)
|
||||
|
||||
/**
|
||||
* Thread is the same thing that topic
|
||||
*
|
||||
* @return true in case if [this] message is in the chat [chatId] and topic [threadId]. The same here means that these
|
||||
* messages from one chat and have equal [Message.threadIdOrNull] identifier
|
||||
* messages from one chat and have equal [AccessibleMessage.threadIdOrNull] identifier
|
||||
*/
|
||||
@Suppress("NOTHING_TO_INLINE")
|
||||
inline fun Message.sameTopic(
|
||||
inline fun AccessibleMessage.sameTopic(
|
||||
chatId: ChatIdentifier,
|
||||
threadId: MessageThreadId? = chatId.threadId
|
||||
) = sameChat(chatId) && threadIdOrNull == threadId
|
||||
@@ -77,10 +77,10 @@ inline fun Message.sameTopic(
|
||||
* Thread is the same thing that topic
|
||||
*
|
||||
* @return true in case if [this] message is in the chat [chatId] and topic [threadId]. The same here means that these
|
||||
* messages from one chat and have equal [Message.threadIdOrNull] identifier
|
||||
* messages from one chat and have equal [AccessibleMessage.threadIdOrNull] identifier
|
||||
*/
|
||||
@Suppress("NOTHING_TO_INLINE")
|
||||
inline fun Message.sameThread(
|
||||
inline fun AccessibleMessage.sameThread(
|
||||
chatId: ChatIdentifier,
|
||||
threadId: MessageThreadId? = chatId.threadId
|
||||
) = sameTopic(chatId, threadId)
|
||||
@@ -89,10 +89,10 @@ inline fun Message.sameThread(
|
||||
* Thread is the same thing that topic
|
||||
*
|
||||
* @return true in case if [this] message is from the [chat] and topic [threadId]. The same here means that these
|
||||
* messages from one chat and have equal [Message.threadIdOrNull] identifier
|
||||
* messages from one chat and have equal [AccessibleMessage.threadIdOrNull] identifier
|
||||
*/
|
||||
@Suppress("NOTHING_TO_INLINE")
|
||||
inline fun Message.sameTopic(
|
||||
inline fun AccessibleMessage.sameTopic(
|
||||
chat: Chat,
|
||||
threadId: MessageThreadId? = chat.id.threadId
|
||||
) = sameTopic(chat.id, threadId)
|
||||
@@ -101,10 +101,10 @@ inline fun Message.sameTopic(
|
||||
* Thread is the same thing that topic
|
||||
*
|
||||
* @return true in case if [this] message is from the [chat] and topic [threadId]. The same here means that these
|
||||
* messages from one chat and have equal [Message.threadIdOrNull] identifier
|
||||
* messages from one chat and have equal [AccessibleMessage.threadIdOrNull] identifier
|
||||
*/
|
||||
@Suppress("NOTHING_TO_INLINE")
|
||||
inline fun Message.sameThread(
|
||||
inline fun AccessibleMessage.sameThread(
|
||||
chat: Chat,
|
||||
threadId: MessageThreadId? = chat.id.threadId
|
||||
) = sameThread(chat.id, threadId)
|
||||
@@ -113,16 +113,16 @@ inline fun Message.sameThread(
|
||||
* Thread is the same thing that topic
|
||||
*
|
||||
* @return true in case if [this] message is from the same chat and topic as [other]. The same here means that these
|
||||
* messages from one chat and have equal [Message.threadIdOrNull] identifier
|
||||
* messages from one chat and have equal [AccessibleMessage.threadIdOrNull] identifier
|
||||
*/
|
||||
@Suppress("NOTHING_TO_INLINE")
|
||||
inline fun Message.sameTopic(other: Message) = sameTopic(other.chat, other.threadIdOrNull)
|
||||
inline fun AccessibleMessage.sameTopic(other: AccessibleMessage) = sameTopic(other.chat, other.threadIdOrNull)
|
||||
|
||||
/**
|
||||
* Thread is the same thing that topic
|
||||
*
|
||||
* @return true in case if [this] message is in the same topic as the [other]. The same here means that these messages
|
||||
* from one chat and have equal [Message.threadIdOrNull] identifier
|
||||
* from one chat and have equal [AccessibleMessage.threadIdOrNull] identifier
|
||||
*/
|
||||
@Suppress("NOTHING_TO_INLINE")
|
||||
inline fun Message.sameThread(other: Message) = sameTopic(other)
|
||||
inline fun AccessibleMessage.sameThread(other: AccessibleMessage) = sameTopic(other)
|
||||
|
@@ -18,9 +18,8 @@ import dev.inmo.tgbotapi.utils.PreviewFeature
|
||||
|
||||
fun CallbackQuery.sourceChat() = when (this) {
|
||||
is InlineMessageIdDataCallbackQuery -> null
|
||||
is MessageDataCallbackQuery -> message.chat
|
||||
is AbstractMessageCallbackQuery -> message.chat
|
||||
is InlineMessageIdGameShortNameCallbackQuery -> null
|
||||
is MessageGameShortNameCallbackQuery -> message.chat
|
||||
is UnknownCallbackQueryType -> null
|
||||
}
|
||||
|
||||
|
@@ -11,6 +11,7 @@ import dev.inmo.tgbotapi.types.location.Location
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.*
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.voice.*
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ConnectedFromChannelGroupContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.AccessibleMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.Message
|
||||
import dev.inmo.tgbotapi.types.message.content.TextContent
|
||||
import dev.inmo.tgbotapi.types.message.textsources.TextSourcesList
|
||||
@@ -22,58 +23,58 @@ import dev.inmo.tgbotapi.types.venue.Venue
|
||||
import dev.inmo.tgbotapi.utils.RiskFeature
|
||||
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.from: User?
|
||||
inline val AccessibleMessage.from: User?
|
||||
get() = asFromUser() ?.from
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.sender_chat: PublicChat?
|
||||
inline val AccessibleMessage.sender_chat: PublicChat?
|
||||
get() = asFromChannelGroupContentMessage() ?.senderChat
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.forward_from: User?
|
||||
inline val AccessibleMessage.forward_from: User?
|
||||
get() = asPossiblyForwardedMessage() ?.forwardInfo ?.asUserForwardInfo() ?.from
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.forward_from_chat: Chat?
|
||||
inline val AccessibleMessage.forward_from_chat: Chat?
|
||||
get() = asPossiblyForwardedMessage() ?.forwardInfo ?.asForwardFromPublicChatInfo() ?.chat
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.forward_from_message_id: MessageId?
|
||||
inline val AccessibleMessage.forward_from_message_id: MessageId?
|
||||
get() = asPossiblyForwardedMessage() ?.forwardInfo ?.fromChannelOrNull() ?.messageId
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.forward_signature: ForwardSignature?
|
||||
inline val AccessibleMessage.forward_signature: ForwardSignature?
|
||||
get() = asPossiblyForwardedMessage() ?.forwardInfo ?.fromChannelOrNull() ?.signature
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.forward_sender_name: ForwardSenderName?
|
||||
inline val AccessibleMessage.forward_sender_name: ForwardSenderName?
|
||||
get() = asPossiblyForwardedMessage() ?.forwardInfo ?.asAnonymousForwardInfo() ?.senderName
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.forward_date: TelegramDate?
|
||||
inline val AccessibleMessage.forward_date: TelegramDate?
|
||||
get() = asPossiblyForwardedMessage() ?.forwardInfo ?.dateOfOriginal
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.is_automatic_forward: Boolean?
|
||||
inline val AccessibleMessage.is_automatic_forward: Boolean?
|
||||
get() = this is ConnectedFromChannelGroupContentMessage<*>
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.reply_to_message: Message?
|
||||
inline val AccessibleMessage.reply_to_message: AccessibleMessage?
|
||||
get() = asPossiblyReplyMessage() ?.replyTo
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.via_bot: CommonBot?
|
||||
inline val AccessibleMessage.via_bot: CommonBot?
|
||||
get() = asPossiblySentViaBotCommonMessage() ?.senderBot
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.edit_date: TelegramDate?
|
||||
inline val AccessibleMessage.edit_date: TelegramDate?
|
||||
get() = asPossiblyEditedMessage() ?.editDate ?.toTelegramDate()
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.has_protected_content: Boolean?
|
||||
inline val AccessibleMessage.has_protected_content: Boolean?
|
||||
get() = asContentMessage() ?.hasProtectedContent
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.media_group_id: MediaGroupIdentifier?
|
||||
inline val AccessibleMessage.media_group_id: MediaGroupIdentifier?
|
||||
get() = asMediaGroupMessage() ?.mediaGroupId
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.author_signature: AuthorSignature?
|
||||
inline val AccessibleMessage.author_signature: AuthorSignature?
|
||||
get() = asSignedMessage() ?.authorSignature
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.text: String?
|
||||
inline val AccessibleMessage.text: String?
|
||||
get() = asContentMessage() ?.content ?.asTextContent() ?.text
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.entities: TextSourcesList?
|
||||
inline val AccessibleMessage.entities: TextSourcesList?
|
||||
get() = asContentMessage() ?.content ?.asTextContent() ?.textSources
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.caption: String?
|
||||
inline val AccessibleMessage.caption: String?
|
||||
get() = whenContentMessage {
|
||||
if (it.content !is TextContent) {
|
||||
it.content.asTextedInput() ?.text
|
||||
@@ -82,7 +83,7 @@ inline val Message.caption: String?
|
||||
}
|
||||
}
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.caption_entities: TextSourcesList?
|
||||
inline val AccessibleMessage.caption_entities: TextSourcesList?
|
||||
get() = whenContentMessage {
|
||||
if (it.content !is TextContent) {
|
||||
it.content.asTextedInput() ?.textSources
|
||||
@@ -91,117 +92,117 @@ inline val Message.caption_entities: TextSourcesList?
|
||||
}
|
||||
}
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.audio: AudioFile?
|
||||
inline val AccessibleMessage.audio: AudioFile?
|
||||
get() = asContentMessage() ?.content ?.asAudioContent() ?.media
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.document: DocumentFile?
|
||||
inline val AccessibleMessage.document: DocumentFile?
|
||||
get() = asContentMessage() ?.content ?.asDocumentContent() ?.media
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.animation: AnimationFile?
|
||||
inline val AccessibleMessage.animation: AnimationFile?
|
||||
get() = asContentMessage() ?.content ?.asAnimationContent() ?.media
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.game: Game?
|
||||
inline val AccessibleMessage.game: Game?
|
||||
get() = asContentMessage() ?.content ?.asGameContent() ?.game
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.photo: Photo?
|
||||
inline val AccessibleMessage.photo: Photo?
|
||||
get() = asContentMessage() ?.content ?.asPhotoContent() ?.mediaCollection
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.sticker: Sticker?
|
||||
inline val AccessibleMessage.sticker: Sticker?
|
||||
get() = asContentMessage() ?.content ?.asStickerContent() ?.media
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.video: VideoFile?
|
||||
inline val AccessibleMessage.video: VideoFile?
|
||||
get() = asContentMessage() ?.content ?.asVideoContent() ?.media
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.voice: VoiceFile?
|
||||
inline val AccessibleMessage.voice: VoiceFile?
|
||||
get() = asContentMessage() ?.content ?.asVoiceContent() ?.media
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.video_note: VideoNoteFile?
|
||||
inline val AccessibleMessage.video_note: VideoNoteFile?
|
||||
get() = asContentMessage() ?.content ?.asVideoNoteContent() ?.media
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.contact: Contact?
|
||||
inline val AccessibleMessage.contact: Contact?
|
||||
get() = asContentMessage() ?.content ?.asContactContent() ?.contact
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.location: Location?
|
||||
inline val AccessibleMessage.location: Location?
|
||||
get() = asContentMessage() ?.content ?.asLocationContent() ?.location
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.venue: Venue?
|
||||
inline val AccessibleMessage.venue: Venue?
|
||||
get() = asContentMessage() ?.content ?.asVenueContent() ?.venue
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.poll: Poll?
|
||||
inline val AccessibleMessage.poll: Poll?
|
||||
get() = asContentMessage() ?.content ?.asPollContent() ?.poll
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.invoice: Invoice?
|
||||
inline val AccessibleMessage.invoice: Invoice?
|
||||
get() = asContentMessage() ?.content ?.asInvoiceContent() ?.invoice
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.dice: Dice?
|
||||
inline val AccessibleMessage.dice: Dice?
|
||||
get() = asContentMessage() ?.content ?.asDiceContent() ?.dice
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.new_chat_members: List<User>?
|
||||
inline val AccessibleMessage.new_chat_members: List<User>?
|
||||
get() = asChatEventMessage() ?.chatEvent ?.asNewChatMembers() ?.members
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.left_chat_member: User?
|
||||
inline val AccessibleMessage.left_chat_member: User?
|
||||
get() = asChatEventMessage() ?.chatEvent ?.asLeftChatMember() ?.user
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.new_chat_title: String?
|
||||
inline val AccessibleMessage.new_chat_title: String?
|
||||
get() = asChatEventMessage() ?.chatEvent ?.asNewChatTitle() ?.title
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.new_chat_photo: Photo?
|
||||
inline val AccessibleMessage.new_chat_photo: Photo?
|
||||
get() = asChatEventMessage() ?.chatEvent ?.asNewChatPhoto() ?.photo
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.delete_chat_photo: Boolean
|
||||
inline val AccessibleMessage.delete_chat_photo: Boolean
|
||||
get() = asChatEventMessage() ?.chatEvent is DeleteChatPhoto
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.group_chat_created: Boolean
|
||||
inline val AccessibleMessage.group_chat_created: Boolean
|
||||
get() = asChatEventMessage() ?.chatEvent is GroupChatCreated
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.supergroup_chat_created: Boolean
|
||||
inline val AccessibleMessage.supergroup_chat_created: Boolean
|
||||
get() = asChatEventMessage() ?.chatEvent is SupergroupChatCreated
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.channel_chat_created: Boolean
|
||||
inline val AccessibleMessage.channel_chat_created: Boolean
|
||||
get() = asChatEventMessage() ?.chatEvent is ChannelChatCreated
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.migrate_to_chat_id: IdChatIdentifier?
|
||||
inline val AccessibleMessage.migrate_to_chat_id: IdChatIdentifier?
|
||||
get() = asChatEventMessage() ?.chatEvent ?.asGroupChatCreated() ?.migratedTo
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.migrate_from_chat_id: IdChatIdentifier?
|
||||
inline val AccessibleMessage.migrate_from_chat_id: IdChatIdentifier?
|
||||
get() = asChatEventMessage() ?.chatEvent ?.let {
|
||||
it ?.asSupergroupChatCreated() ?.migratedFrom ?: it ?.asMigratedToSupergroup() ?.migratedFrom
|
||||
}
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.pinned_message: Message?
|
||||
inline val AccessibleMessage.pinned_message: Message?
|
||||
get() = asChatEventMessage() ?.chatEvent ?.asPinnedMessage() ?.message
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.successful_payment: SuccessfulPayment?
|
||||
inline val AccessibleMessage.successful_payment: SuccessfulPayment?
|
||||
get() = asChatEventMessage() ?.chatEvent ?.asSuccessfulPaymentEvent() ?.payment
|
||||
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.video_chat_scheduled: VideoChatScheduled?
|
||||
inline val AccessibleMessage.video_chat_scheduled: VideoChatScheduled?
|
||||
get() = asChatEventMessage() ?.chatEvent ?.asVideoChatScheduled()
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.video_chat_started: VideoChatStarted?
|
||||
inline val AccessibleMessage.video_chat_started: VideoChatStarted?
|
||||
get() = asChatEventMessage() ?.chatEvent ?.asVideoChatStarted()
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.video_chat_ended: VideoChatEnded?
|
||||
inline val AccessibleMessage.video_chat_ended: VideoChatEnded?
|
||||
get() = asChatEventMessage() ?.chatEvent ?.asVideoChatEnded()
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.video_chat_participants_invited: VideoChatParticipantsInvited?
|
||||
inline val AccessibleMessage.video_chat_participants_invited: VideoChatParticipantsInvited?
|
||||
get() = asChatEventMessage() ?.chatEvent ?.asVideoChatParticipantsInvited()
|
||||
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.message_auto_delete_timer_changed: MessageAutoDeleteTimerChanged?
|
||||
inline val AccessibleMessage.message_auto_delete_timer_changed: MessageAutoDeleteTimerChanged?
|
||||
get() = asChatEventMessage() ?.chatEvent ?.asMessageAutoDeleteTimerChanged()
|
||||
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.connected_website: String?
|
||||
inline val AccessibleMessage.connected_website: String?
|
||||
get() = asChatEventMessage() ?.chatEvent ?.asUserLoggedIn() ?.domain
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.proximity_alert_triggered: ProximityAlertTriggered?
|
||||
inline val AccessibleMessage.proximity_alert_triggered: ProximityAlertTriggered?
|
||||
get() = asChatEventMessage() ?.chatEvent ?.asProximityAlertTriggered()
|
||||
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.passport_data: PassportData?
|
||||
inline val AccessibleMessage.passport_data: PassportData?
|
||||
get() = asPassportMessage() ?.passportData
|
||||
|
||||
@RiskFeature(RawFieldsUsageWarning)
|
||||
inline val Message.reply_markup: InlineKeyboardMarkup?
|
||||
inline val AccessibleMessage.reply_markup: InlineKeyboardMarkup?
|
||||
get() = asCommonMessage() ?.replyMarkup
|
||||
|
@@ -2,7 +2,7 @@ package dev.inmo.tgbotapi.extensions.utils.formatting
|
||||
|
||||
import dev.inmo.tgbotapi.types.*
|
||||
import dev.inmo.tgbotapi.types.chat.*
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.Message
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.AccessibleMessage
|
||||
import dev.inmo.tgbotapi.types.message.textsources.link
|
||||
import io.ktor.http.encodeURLQueryComponent
|
||||
|
||||
@@ -69,7 +69,7 @@ fun makeLinkToMessage(
|
||||
): String = makeLinkToMessage(chatId.chatId, messageId, chatId.threadId)
|
||||
|
||||
/**
|
||||
* Link which can be used as by any user to get access to [Message]. Returns null in case when there are no
|
||||
* Link which can be used as by any user to get access to [AccessibleMessage]. Returns null in case when there are no
|
||||
* known way to build link (for [PrivateChat]s, for example)
|
||||
*/
|
||||
fun makeLinkToMessage(
|
||||
@@ -88,7 +88,7 @@ fun makeLinkToMessage(
|
||||
/**
|
||||
* @see makeLinkToMessage
|
||||
*/
|
||||
val Message.messageLink: String?
|
||||
val AccessibleMessage.messageLink: String?
|
||||
get() = makeLinkToMessage(
|
||||
chat,
|
||||
messageId
|
||||
|
@@ -2,7 +2,7 @@ package dev.inmo.tgbotapi.extensions.utils.updates
|
||||
|
||||
import dev.inmo.tgbotapi.extensions.utils.*
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.CommonMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.Message
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.AccessibleMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.TextContent
|
||||
import dev.inmo.tgbotapi.types.message.textsources.BotCommandTextSource
|
||||
import dev.inmo.tgbotapi.utils.extensions.threadIdOrNull
|
||||
@@ -58,10 +58,10 @@ fun CommonMessage<*>.hasNoCommands(): Boolean = !this.hasCommands()
|
||||
* }
|
||||
* ```
|
||||
*
|
||||
* @return true if this [Message] is from forum ([threadIdOrNull] is not null). False otherwise.
|
||||
* @return true if this [AccessibleMessage] is from forum ([threadIdOrNull] is not null). False otherwise.
|
||||
* @see notForumMessage
|
||||
*/
|
||||
fun Message.forumMessage(): Boolean = threadIdOrNull != null
|
||||
fun AccessibleMessage.forumMessage(): Boolean = threadIdOrNull != null
|
||||
|
||||
/**
|
||||
* A predicate to test that message has not been sent in the forum.
|
||||
@@ -76,7 +76,7 @@ fun Message.forumMessage(): Boolean = threadIdOrNull != null
|
||||
* }
|
||||
* ```
|
||||
*
|
||||
* @return true if this [Message] is not from forum ([threadIdOrNull] is not null). False otherwise.
|
||||
* @return true if this [AccessibleMessage] is not from forum ([threadIdOrNull] is not null). False otherwise.
|
||||
* @see forumMessage
|
||||
*/
|
||||
fun Message.notForumMessage(): Boolean = !forumMessage()
|
||||
fun AccessibleMessage.notForumMessage(): Boolean = !forumMessage()
|
||||
|
Reference in New Issue
Block a user