mirror of
https://github.com/c0re100/gotdlib.git
synced 2026-02-22 04:30:17 +01:00
Update to TDLib 1.8.50
This commit is contained in:
parent
969ddb4746
commit
bc2b5f5823
4 changed files with 1133 additions and 109 deletions
407
client/type.go
407
client/type.go
|
|
@ -45,6 +45,7 @@ const (
|
|||
ClassMessageOrigin = "MessageOrigin"
|
||||
ClassReactionType = "ReactionType"
|
||||
ClassPaidReactionType = "PaidReactionType"
|
||||
ClassMessageTopic = "MessageTopic"
|
||||
ClassMessageEffectType = "MessageEffectType"
|
||||
ClassMessageSendingState = "MessageSendingState"
|
||||
ClassMessageReplyTo = "MessageReplyTo"
|
||||
|
|
@ -400,6 +401,7 @@ const (
|
|||
ClassWebAppOpenParameters = "WebAppOpenParameters"
|
||||
ClassMessageThreadInfo = "MessageThreadInfo"
|
||||
ClassSavedMessagesTopic = "SavedMessagesTopic"
|
||||
ClassDirectMessagesChatTopic = "DirectMessagesChatTopic"
|
||||
ClassForumTopicIcon = "ForumTopicIcon"
|
||||
ClassForumTopicInfo = "ForumTopicInfo"
|
||||
ClassForumTopic = "ForumTopic"
|
||||
|
|
@ -965,6 +967,9 @@ const (
|
|||
TypeMessageReactions = "messageReactions"
|
||||
TypeMessageInteractionInfo = "messageInteractionInfo"
|
||||
TypeUnreadReaction = "unreadReaction"
|
||||
TypeMessageTopicForum = "messageTopicForum"
|
||||
TypeMessageTopicDirectMessages = "messageTopicDirectMessages"
|
||||
TypeMessageTopicSavedMessages = "messageTopicSavedMessages"
|
||||
TypeMessageEffectTypeEmojiReaction = "messageEffectTypeEmojiReaction"
|
||||
TypeMessageEffectTypePremiumSticker = "messageEffectTypePremiumSticker"
|
||||
TypeMessageEffect = "messageEffect"
|
||||
|
|
@ -991,6 +996,7 @@ const (
|
|||
TypeMessageSourceChatHistory = "messageSourceChatHistory"
|
||||
TypeMessageSourceMessageThreadHistory = "messageSourceMessageThreadHistory"
|
||||
TypeMessageSourceForumTopicHistory = "messageSourceForumTopicHistory"
|
||||
TypeMessageSourceDirectMessagesChatTopicHistory = "messageSourceDirectMessagesChatTopicHistory"
|
||||
TypeMessageSourceHistoryPreview = "messageSourceHistoryPreview"
|
||||
TypeMessageSourceChatList = "messageSourceChatList"
|
||||
TypeMessageSourceSearch = "messageSourceSearch"
|
||||
|
|
@ -1101,6 +1107,7 @@ const (
|
|||
TypeSavedMessagesTopicTypeAuthorHidden = "savedMessagesTopicTypeAuthorHidden"
|
||||
TypeSavedMessagesTopicTypeSavedFromChat = "savedMessagesTopicTypeSavedFromChat"
|
||||
TypeSavedMessagesTopic = "savedMessagesTopic"
|
||||
TypeDirectMessagesChatTopic = "directMessagesChatTopic"
|
||||
TypeForumTopicIcon = "forumTopicIcon"
|
||||
TypeForumTopicInfo = "forumTopicInfo"
|
||||
TypeForumTopic = "forumTopic"
|
||||
|
|
@ -1384,6 +1391,7 @@ const (
|
|||
TypeMessageRefundedUpgradedGift = "messageRefundedUpgradedGift"
|
||||
TypeMessagePaidMessagesRefunded = "messagePaidMessagesRefunded"
|
||||
TypeMessagePaidMessagePriceChanged = "messagePaidMessagePriceChanged"
|
||||
TypeMessageDirectMessagePriceChanged = "messageDirectMessagePriceChanged"
|
||||
TypeMessageContactRegistered = "messageContactRegistered"
|
||||
TypeMessageUsersShared = "messageUsersShared"
|
||||
TypeMessageChatShared = "messageChatShared"
|
||||
|
|
@ -2273,6 +2281,8 @@ const (
|
|||
TypeUpdateChatOnlineMemberCount = "updateChatOnlineMemberCount"
|
||||
TypeUpdateSavedMessagesTopic = "updateSavedMessagesTopic"
|
||||
TypeUpdateSavedMessagesTopicCount = "updateSavedMessagesTopicCount"
|
||||
TypeUpdateDirectMessagesChatTopic = "updateDirectMessagesChatTopic"
|
||||
TypeUpdateTopicMessageCount = "updateTopicMessageCount"
|
||||
TypeUpdateQuickReplyShortcut = "updateQuickReplyShortcut"
|
||||
TypeUpdateQuickReplyShortcutDeleted = "updateQuickReplyShortcutDeleted"
|
||||
TypeUpdateQuickReplyShortcuts = "updateQuickReplyShortcuts"
|
||||
|
|
@ -2584,6 +2594,11 @@ type PaidReactionType interface {
|
|||
PaidReactionTypeType() string
|
||||
}
|
||||
|
||||
// Describes a topic of messages in a chat
|
||||
type MessageTopic interface {
|
||||
MessageTopicType() string
|
||||
}
|
||||
|
||||
// Describes type of emoji effect
|
||||
type MessageEffectType interface {
|
||||
MessageEffectTypeType() string
|
||||
|
|
@ -7626,11 +7641,11 @@ func (*ChatPermissions) GetType() string {
|
|||
// Describes rights of the administrator
|
||||
type ChatAdministratorRights struct {
|
||||
meta
|
||||
// True, if the administrator can access the chat event log, get boost list, see hidden supergroup and channel members, report supergroup spam messages and ignore slow mode. Implied by any other privilege; applicable to supergroups and channels only
|
||||
// True, if the administrator can access the chat event log, get boost list, see hidden supergroup and channel members, report supergroup spam messages, ignore slow mode, and send messages to the chat without paying Telegram Stars. Implied by any other privilege; applicable to supergroups and channels only
|
||||
CanManageChat bool `json:"can_manage_chat"`
|
||||
// True, if the administrator can change the chat title, photo, and other settings
|
||||
CanChangeInfo bool `json:"can_change_info"`
|
||||
// True, if the administrator can create channel posts or view channel statistics; applicable to channels only
|
||||
// True, if the administrator can create channel posts, answer to channel direct messages, or view channel statistics; applicable to channels only
|
||||
CanPostMessages bool `json:"can_post_messages"`
|
||||
// True, if the administrator can edit messages of other users and pin messages; applicable to channels only
|
||||
CanEditMessages bool `json:"can_edit_messages"`
|
||||
|
|
@ -10639,7 +10654,7 @@ func (*StarTransactionTypePaidMessageSend) StarTransactionTypeType() string {
|
|||
return TypeStarTransactionTypePaidMessageSend
|
||||
}
|
||||
|
||||
// The transaction is a receiving of a paid message; for regular users and supergroup chats only
|
||||
// The transaction is a receiving of a paid message; for regular users, supergroup and channel chats only
|
||||
type StarTransactionTypePaidMessageReceive struct {
|
||||
meta
|
||||
// Identifier of the sender of the message
|
||||
|
|
@ -13165,8 +13180,16 @@ type Supergroup struct {
|
|||
IsBroadcastGroup bool `json:"is_broadcast_group"`
|
||||
// True, if the supergroup is a forum with topics
|
||||
IsForum bool `json:"is_forum"`
|
||||
// True, if the supergroup is a direct message group for a channel chat
|
||||
IsDirectMessagesGroup bool `json:"is_direct_messages_group"`
|
||||
// True, if the supergroup is a direct messages group for a channel chat that is administered by the current user
|
||||
IsAdministeredDirectMessagesGroup bool `json:"is_administered_direct_messages_group"`
|
||||
// Information about verification status of the supergroup or channel; may be null if none
|
||||
VerificationStatus *VerificationStatus `json:"verification_status"`
|
||||
// True, if the channel has direct messages group
|
||||
HasDirectMessagesGroup bool `json:"has_direct_messages_group"`
|
||||
// True, if the supergroup is a forum, which topics are shown in the same way as in channel direct messages groups
|
||||
HasForumTabs bool `json:"has_forum_tabs"`
|
||||
// True, if content of media messages in the supergroup or channel chat must be hidden with 18+ spoiler
|
||||
HasSensitiveContent bool `json:"has_sensitive_content"`
|
||||
// If non-empty, contains a human-readable description of the reason why access to this supergroup or channel must be restricted
|
||||
|
|
@ -13215,7 +13238,11 @@ func (supergroup *Supergroup) UnmarshalJSON(data []byte) error {
|
|||
IsChannel bool `json:"is_channel"`
|
||||
IsBroadcastGroup bool `json:"is_broadcast_group"`
|
||||
IsForum bool `json:"is_forum"`
|
||||
IsDirectMessagesGroup bool `json:"is_direct_messages_group"`
|
||||
IsAdministeredDirectMessagesGroup bool `json:"is_administered_direct_messages_group"`
|
||||
VerificationStatus *VerificationStatus `json:"verification_status"`
|
||||
HasDirectMessagesGroup bool `json:"has_direct_messages_group"`
|
||||
HasForumTabs bool `json:"has_forum_tabs"`
|
||||
HasSensitiveContent bool `json:"has_sensitive_content"`
|
||||
RestrictionReason string `json:"restriction_reason"`
|
||||
PaidMessageStarCount int64 `json:"paid_message_star_count"`
|
||||
|
|
@ -13245,7 +13272,11 @@ func (supergroup *Supergroup) UnmarshalJSON(data []byte) error {
|
|||
supergroup.IsChannel = tmp.IsChannel
|
||||
supergroup.IsBroadcastGroup = tmp.IsBroadcastGroup
|
||||
supergroup.IsForum = tmp.IsForum
|
||||
supergroup.IsDirectMessagesGroup = tmp.IsDirectMessagesGroup
|
||||
supergroup.IsAdministeredDirectMessagesGroup = tmp.IsAdministeredDirectMessagesGroup
|
||||
supergroup.VerificationStatus = tmp.VerificationStatus
|
||||
supergroup.HasDirectMessagesGroup = tmp.HasDirectMessagesGroup
|
||||
supergroup.HasForumTabs = tmp.HasForumTabs
|
||||
supergroup.HasSensitiveContent = tmp.HasSensitiveContent
|
||||
supergroup.RestrictionReason = tmp.RestrictionReason
|
||||
supergroup.PaidMessageStarCount = tmp.PaidMessageStarCount
|
||||
|
|
@ -13275,6 +13306,8 @@ type SupergroupFullInfo struct {
|
|||
BannedCount int32 `json:"banned_count"`
|
||||
// Chat identifier of a discussion group for the channel, or a channel, for which the supergroup is the designated discussion group; 0 if none or unknown
|
||||
LinkedChatId int64 `json:"linked_chat_id"`
|
||||
// Chat identifier of a direct messages group for the channel, or a channel, for which the supergroup is the designated direct messages group; 0 if none
|
||||
DirectMessagesChatId int64 `json:"direct_messages_chat_id"`
|
||||
// Delay between consecutive sent messages for non-administrator supergroup members, in seconds
|
||||
SlowModeDelay int32 `json:"slow_mode_delay"`
|
||||
// Time left before next message can be sent in the supergroup, in seconds. An updateSupergroupFullInfo update is not triggered when value of this field changes, but both new and old values are non-zero
|
||||
|
|
@ -14515,6 +14548,87 @@ func (unreadReaction *UnreadReaction) UnmarshalJSON(data []byte) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
// A topic in a forum supergroup chat
|
||||
type MessageTopicForum struct {
|
||||
meta
|
||||
// Unique identifier of the forum topic; all messages in a non-forum supergroup chats belongs to the General topic
|
||||
ForumTopicId int64 `json:"forum_topic_id"`
|
||||
}
|
||||
|
||||
func (entity *MessageTopicForum) MarshalJSON() ([]byte, error) {
|
||||
entity.meta.Type = entity.GetType()
|
||||
|
||||
type stub MessageTopicForum
|
||||
|
||||
return json.Marshal((*stub)(entity))
|
||||
}
|
||||
|
||||
func (*MessageTopicForum) GetClass() string {
|
||||
return ClassMessageTopic
|
||||
}
|
||||
|
||||
func (*MessageTopicForum) GetType() string {
|
||||
return TypeMessageTopicForum
|
||||
}
|
||||
|
||||
func (*MessageTopicForum) MessageTopicType() string {
|
||||
return TypeMessageTopicForum
|
||||
}
|
||||
|
||||
// A topic in a channel direct messages chat administered by the current user
|
||||
type MessageTopicDirectMessages struct {
|
||||
meta
|
||||
// Unique identifier of the topic
|
||||
DirectMessagesChatTopicId int64 `json:"direct_messages_chat_topic_id"`
|
||||
}
|
||||
|
||||
func (entity *MessageTopicDirectMessages) MarshalJSON() ([]byte, error) {
|
||||
entity.meta.Type = entity.GetType()
|
||||
|
||||
type stub MessageTopicDirectMessages
|
||||
|
||||
return json.Marshal((*stub)(entity))
|
||||
}
|
||||
|
||||
func (*MessageTopicDirectMessages) GetClass() string {
|
||||
return ClassMessageTopic
|
||||
}
|
||||
|
||||
func (*MessageTopicDirectMessages) GetType() string {
|
||||
return TypeMessageTopicDirectMessages
|
||||
}
|
||||
|
||||
func (*MessageTopicDirectMessages) MessageTopicType() string {
|
||||
return TypeMessageTopicDirectMessages
|
||||
}
|
||||
|
||||
// A topic in Saved Messages chat
|
||||
type MessageTopicSavedMessages struct {
|
||||
meta
|
||||
// Unique identifier of the Saved Messages topic
|
||||
SavedMessagesTopicId int64 `json:"saved_messages_topic_id"`
|
||||
}
|
||||
|
||||
func (entity *MessageTopicSavedMessages) MarshalJSON() ([]byte, error) {
|
||||
entity.meta.Type = entity.GetType()
|
||||
|
||||
type stub MessageTopicSavedMessages
|
||||
|
||||
return json.Marshal((*stub)(entity))
|
||||
}
|
||||
|
||||
func (*MessageTopicSavedMessages) GetClass() string {
|
||||
return ClassMessageTopic
|
||||
}
|
||||
|
||||
func (*MessageTopicSavedMessages) GetType() string {
|
||||
return TypeMessageTopicSavedMessages
|
||||
}
|
||||
|
||||
func (*MessageTopicSavedMessages) MessageTopicType() string {
|
||||
return TypeMessageTopicSavedMessages
|
||||
}
|
||||
|
||||
// An effect from an emoji reaction
|
||||
type MessageEffectTypeEmojiReaction struct {
|
||||
meta
|
||||
|
|
@ -14973,14 +15087,12 @@ type Message struct {
|
|||
IsPinned bool `json:"is_pinned"`
|
||||
// True, if the message was sent because of a scheduled action by the message sender, for example, as away, or greeting service message
|
||||
IsFromOffline bool `json:"is_from_offline"`
|
||||
// True, if content of the message can be saved locally or copied using inputMessageForwarded or forwardMessages with copy options
|
||||
// True, if content of the message can be saved locally
|
||||
CanBeSaved bool `json:"can_be_saved"`
|
||||
// True, if media timestamp entities refers to a media in this message as opposed to a media in the replied message
|
||||
HasTimestampedMedia bool `json:"has_timestamped_media"`
|
||||
// True, if the message is a channel post. All messages to channels are channel posts, all other messages are not channel posts
|
||||
IsChannelPost bool `json:"is_channel_post"`
|
||||
// True, if the message is a forum topic message
|
||||
IsTopicMessage bool `json:"is_topic_message"`
|
||||
// True, if the message contains an unread mention for the current user
|
||||
ContainsUnreadMention bool `json:"contains_unread_mention"`
|
||||
// Point in time (Unix timestamp) when the message was sent; 0 for scheduled messages
|
||||
|
|
@ -15001,8 +15113,8 @@ type Message struct {
|
|||
ReplyTo MessageReplyTo `json:"reply_to"`
|
||||
// If non-zero, the identifier of the message thread the message belongs to; unique within the chat to which the message belongs
|
||||
MessageThreadId int64 `json:"message_thread_id"`
|
||||
// Identifier of the Saved Messages topic for the message; 0 for messages not from Saved Messages
|
||||
SavedMessagesTopicId int64 `json:"saved_messages_topic_id"`
|
||||
// Identifier of the topic within the chat to which the message belongs; may be null if none
|
||||
TopicId MessageTopic `json:"topic_id"`
|
||||
// The message's self-destruct type; may be null if none
|
||||
SelfDestructType MessageSelfDestructType `json:"self_destruct_type"`
|
||||
// Time left before the message self-destruct timer expires, in seconds; 0 if self-destruction isn't scheduled yet
|
||||
|
|
@ -15062,7 +15174,6 @@ func (message *Message) UnmarshalJSON(data []byte) error {
|
|||
CanBeSaved bool `json:"can_be_saved"`
|
||||
HasTimestampedMedia bool `json:"has_timestamped_media"`
|
||||
IsChannelPost bool `json:"is_channel_post"`
|
||||
IsTopicMessage bool `json:"is_topic_message"`
|
||||
ContainsUnreadMention bool `json:"contains_unread_mention"`
|
||||
Date int32 `json:"date"`
|
||||
EditDate int32 `json:"edit_date"`
|
||||
|
|
@ -15073,7 +15184,7 @@ func (message *Message) UnmarshalJSON(data []byte) error {
|
|||
FactCheck *FactCheck `json:"fact_check"`
|
||||
ReplyTo json.RawMessage `json:"reply_to"`
|
||||
MessageThreadId int64 `json:"message_thread_id"`
|
||||
SavedMessagesTopicId int64 `json:"saved_messages_topic_id"`
|
||||
TopicId json.RawMessage `json:"topic_id"`
|
||||
SelfDestructType json.RawMessage `json:"self_destruct_type"`
|
||||
SelfDestructIn float64 `json:"self_destruct_in"`
|
||||
AutoDeleteIn float64 `json:"auto_delete_in"`
|
||||
|
|
@ -15103,7 +15214,6 @@ func (message *Message) UnmarshalJSON(data []byte) error {
|
|||
message.CanBeSaved = tmp.CanBeSaved
|
||||
message.HasTimestampedMedia = tmp.HasTimestampedMedia
|
||||
message.IsChannelPost = tmp.IsChannelPost
|
||||
message.IsTopicMessage = tmp.IsTopicMessage
|
||||
message.ContainsUnreadMention = tmp.ContainsUnreadMention
|
||||
message.Date = tmp.Date
|
||||
message.EditDate = tmp.EditDate
|
||||
|
|
@ -15113,7 +15223,6 @@ func (message *Message) UnmarshalJSON(data []byte) error {
|
|||
message.UnreadReactions = tmp.UnreadReactions
|
||||
message.FactCheck = tmp.FactCheck
|
||||
message.MessageThreadId = tmp.MessageThreadId
|
||||
message.SavedMessagesTopicId = tmp.SavedMessagesTopicId
|
||||
message.SelfDestructIn = tmp.SelfDestructIn
|
||||
message.AutoDeleteIn = tmp.AutoDeleteIn
|
||||
message.ViaBotUserId = tmp.ViaBotUserId
|
||||
|
|
@ -15138,6 +15247,9 @@ func (message *Message) UnmarshalJSON(data []byte) error {
|
|||
fieldReplyTo, _ := UnmarshalMessageReplyTo(tmp.ReplyTo)
|
||||
message.ReplyTo = fieldReplyTo
|
||||
|
||||
fieldTopicId, _ := UnmarshalMessageTopic(tmp.TopicId)
|
||||
message.TopicId = fieldTopicId
|
||||
|
||||
fieldSelfDestructType, _ := UnmarshalMessageSelfDestructType(tmp.SelfDestructType)
|
||||
message.SelfDestructType = fieldSelfDestructType
|
||||
|
||||
|
|
@ -15404,7 +15516,7 @@ func (*MessageSourceChatHistory) MessageSourceType() string {
|
|||
return TypeMessageSourceChatHistory
|
||||
}
|
||||
|
||||
// The message is from a message thread history
|
||||
// The message is from history of a message thread
|
||||
type MessageSourceMessageThreadHistory struct{
|
||||
meta
|
||||
}
|
||||
|
|
@ -15429,7 +15541,7 @@ func (*MessageSourceMessageThreadHistory) MessageSourceType() string {
|
|||
return TypeMessageSourceMessageThreadHistory
|
||||
}
|
||||
|
||||
// The message is from a forum topic history
|
||||
// The message is from history of a forum topic
|
||||
type MessageSourceForumTopicHistory struct{
|
||||
meta
|
||||
}
|
||||
|
|
@ -15454,6 +15566,31 @@ func (*MessageSourceForumTopicHistory) MessageSourceType() string {
|
|||
return TypeMessageSourceForumTopicHistory
|
||||
}
|
||||
|
||||
// The message is from history of a topic in a channel direct messages chat administered by the current user
|
||||
type MessageSourceDirectMessagesChatTopicHistory struct{
|
||||
meta
|
||||
}
|
||||
|
||||
func (entity *MessageSourceDirectMessagesChatTopicHistory) MarshalJSON() ([]byte, error) {
|
||||
entity.meta.Type = entity.GetType()
|
||||
|
||||
type stub MessageSourceDirectMessagesChatTopicHistory
|
||||
|
||||
return json.Marshal((*stub)(entity))
|
||||
}
|
||||
|
||||
func (*MessageSourceDirectMessagesChatTopicHistory) GetClass() string {
|
||||
return ClassMessageSource
|
||||
}
|
||||
|
||||
func (*MessageSourceDirectMessagesChatTopicHistory) GetType() string {
|
||||
return TypeMessageSourceDirectMessagesChatTopicHistory
|
||||
}
|
||||
|
||||
func (*MessageSourceDirectMessagesChatTopicHistory) MessageSourceType() string {
|
||||
return TypeMessageSourceDirectMessagesChatTopicHistory
|
||||
}
|
||||
|
||||
// The message is from chat, message thread or forum topic history preview
|
||||
type MessageSourceHistoryPreview struct{
|
||||
meta
|
||||
|
|
@ -19020,6 +19157,86 @@ func (savedMessagesTopic *SavedMessagesTopic) UnmarshalJSON(data []byte) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
// Contains information about a topic in a channel direct messages chat administered by the current user
|
||||
type DirectMessagesChatTopic struct {
|
||||
meta
|
||||
// Identifier of the chat to which the topic belongs
|
||||
ChatId int64 `json:"chat_id"`
|
||||
// Unique topic identifier
|
||||
Id int64 `json:"id"`
|
||||
// Identifier of the user or chat that sends the messages to the topic
|
||||
SenderId MessageSender `json:"sender_id"`
|
||||
// A parameter used to determine order of the topic in the topic list. Topics must be sorted by the order in descending order
|
||||
Order JsonInt64 `json:"order"`
|
||||
// True, if the forum topic is marked as unread
|
||||
IsMarkedAsUnread bool `json:"is_marked_as_unread"`
|
||||
// Number of unread messages in the chat
|
||||
UnreadCount int64 `json:"unread_count"`
|
||||
// Identifier of the last read incoming message
|
||||
LastReadInboxMessageId int64 `json:"last_read_inbox_message_id"`
|
||||
// Identifier of the last read outgoing message
|
||||
LastReadOutboxMessageId int64 `json:"last_read_outbox_message_id"`
|
||||
// Number of messages with unread reactions in the chat
|
||||
UnreadReactionCount int64 `json:"unread_reaction_count"`
|
||||
// Last message in the topic; may be null if none or unknown
|
||||
LastMessage *Message `json:"last_message"`
|
||||
// A draft of a message in the topic; may be null if none
|
||||
DraftMessage *DraftMessage `json:"draft_message"`
|
||||
}
|
||||
|
||||
func (entity *DirectMessagesChatTopic) MarshalJSON() ([]byte, error) {
|
||||
entity.meta.Type = entity.GetType()
|
||||
|
||||
type stub DirectMessagesChatTopic
|
||||
|
||||
return json.Marshal((*stub)(entity))
|
||||
}
|
||||
|
||||
func (*DirectMessagesChatTopic) GetClass() string {
|
||||
return ClassDirectMessagesChatTopic
|
||||
}
|
||||
|
||||
func (*DirectMessagesChatTopic) GetType() string {
|
||||
return TypeDirectMessagesChatTopic
|
||||
}
|
||||
|
||||
func (directMessagesChatTopic *DirectMessagesChatTopic) UnmarshalJSON(data []byte) error {
|
||||
var tmp struct {
|
||||
ChatId int64 `json:"chat_id"`
|
||||
Id int64 `json:"id"`
|
||||
SenderId json.RawMessage `json:"sender_id"`
|
||||
Order JsonInt64 `json:"order"`
|
||||
IsMarkedAsUnread bool `json:"is_marked_as_unread"`
|
||||
UnreadCount int64 `json:"unread_count"`
|
||||
LastReadInboxMessageId int64 `json:"last_read_inbox_message_id"`
|
||||
LastReadOutboxMessageId int64 `json:"last_read_outbox_message_id"`
|
||||
UnreadReactionCount int64 `json:"unread_reaction_count"`
|
||||
LastMessage *Message `json:"last_message"`
|
||||
DraftMessage *DraftMessage `json:"draft_message"`
|
||||
}
|
||||
|
||||
err := json.Unmarshal(data, &tmp)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
directMessagesChatTopic.ChatId = tmp.ChatId
|
||||
directMessagesChatTopic.Id = tmp.Id
|
||||
directMessagesChatTopic.Order = tmp.Order
|
||||
directMessagesChatTopic.IsMarkedAsUnread = tmp.IsMarkedAsUnread
|
||||
directMessagesChatTopic.UnreadCount = tmp.UnreadCount
|
||||
directMessagesChatTopic.LastReadInboxMessageId = tmp.LastReadInboxMessageId
|
||||
directMessagesChatTopic.LastReadOutboxMessageId = tmp.LastReadOutboxMessageId
|
||||
directMessagesChatTopic.UnreadReactionCount = tmp.UnreadReactionCount
|
||||
directMessagesChatTopic.LastMessage = tmp.LastMessage
|
||||
directMessagesChatTopic.DraftMessage = tmp.DraftMessage
|
||||
|
||||
fieldSenderId, _ := UnmarshalMessageSender(tmp.SenderId)
|
||||
directMessagesChatTopic.SenderId = fieldSenderId
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// Describes a forum topic icon
|
||||
type ForumTopicIcon struct {
|
||||
meta
|
||||
|
|
@ -19050,6 +19267,8 @@ type ForumTopicInfo struct {
|
|||
meta
|
||||
// Identifier of the forum chat to which the topic belongs
|
||||
ChatId int64 `json:"chat_id"`
|
||||
// Forum topic identifier of the topic
|
||||
ForumTopicId int64 `json:"forum_topic_id"`
|
||||
// Message thread identifier of the topic
|
||||
MessageThreadId int64 `json:"message_thread_id"`
|
||||
// Name of the topic
|
||||
|
|
@ -19089,6 +19308,7 @@ func (*ForumTopicInfo) GetType() string {
|
|||
func (forumTopicInfo *ForumTopicInfo) UnmarshalJSON(data []byte) error {
|
||||
var tmp struct {
|
||||
ChatId int64 `json:"chat_id"`
|
||||
ForumTopicId int64 `json:"forum_topic_id"`
|
||||
MessageThreadId int64 `json:"message_thread_id"`
|
||||
Name string `json:"name"`
|
||||
Icon *ForumTopicIcon `json:"icon"`
|
||||
|
|
@ -19106,6 +19326,7 @@ func (forumTopicInfo *ForumTopicInfo) UnmarshalJSON(data []byte) error {
|
|||
}
|
||||
|
||||
forumTopicInfo.ChatId = tmp.ChatId
|
||||
forumTopicInfo.ForumTopicId = tmp.ForumTopicId
|
||||
forumTopicInfo.MessageThreadId = tmp.MessageThreadId
|
||||
forumTopicInfo.Name = tmp.Name
|
||||
forumTopicInfo.Icon = tmp.Icon
|
||||
|
|
@ -27045,7 +27266,7 @@ func (messageCall *MessageCall) UnmarshalJSON(data []byte) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
// A message with information about a group call not bound to a chat. If the message is incoming, the call isn't active, isn't missed, and has no duration, and getOption("can_accept_calls") is true, then incoming call screen must be shown to the user. Use joinGroupCall to accept the call or declineGroupCallInvitation to decline it. If the call become active or missed, then the call screen must be hidden
|
||||
// A message with information about a group call not bound to a chat. If the message is incoming, the call isn't active, isn't missed, and has no duration, and getOption("can_accept_calls") is true, then incoming call screen must be shown to the user. Use getGroupCallParticipants to show current group call participants on the screen. Use joinGroupCall to accept the call or declineGroupCallInvitation to decline it. If the call become active or missed, then the call screen must be hidden
|
||||
type MessageGroupCall struct {
|
||||
meta
|
||||
// True, if the call is active, i.e. the called user joined the call
|
||||
|
|
@ -28441,6 +28662,8 @@ type MessageGift struct {
|
|||
Gift *Gift `json:"gift"`
|
||||
// Sender of the gift
|
||||
SenderId MessageSender `json:"sender_id"`
|
||||
// Receiver of the gift
|
||||
ReceiverId MessageSender `json:"receiver_id"`
|
||||
// Unique identifier of the received gift for the current user; only for the receiver of the gift
|
||||
ReceivedGiftId string `json:"received_gift_id"`
|
||||
// Message added to the gift
|
||||
|
|
@ -28489,6 +28712,7 @@ func (messageGift *MessageGift) UnmarshalJSON(data []byte) error {
|
|||
var tmp struct {
|
||||
Gift *Gift `json:"gift"`
|
||||
SenderId json.RawMessage `json:"sender_id"`
|
||||
ReceiverId json.RawMessage `json:"receiver_id"`
|
||||
ReceivedGiftId string `json:"received_gift_id"`
|
||||
Text *FormattedText `json:"text"`
|
||||
SellStarCount int64 `json:"sell_star_count"`
|
||||
|
|
@ -28523,6 +28747,9 @@ func (messageGift *MessageGift) UnmarshalJSON(data []byte) error {
|
|||
fieldSenderId, _ := UnmarshalMessageSender(tmp.SenderId)
|
||||
messageGift.SenderId = fieldSenderId
|
||||
|
||||
fieldReceiverId, _ := UnmarshalMessageSender(tmp.ReceiverId)
|
||||
messageGift.ReceiverId = fieldReceiverId
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
@ -28533,6 +28760,8 @@ type MessageUpgradedGift struct {
|
|||
Gift *UpgradedGift `json:"gift"`
|
||||
// Sender of the gift; may be null for anonymous gifts
|
||||
SenderId MessageSender `json:"sender_id"`
|
||||
// Receiver of the gift
|
||||
ReceiverId MessageSender `json:"receiver_id"`
|
||||
// Unique identifier of the received gift for the current user; only for the receiver of the gift
|
||||
ReceivedGiftId string `json:"received_gift_id"`
|
||||
// True, if the gift was obtained by upgrading of a previously received gift; otherwise, this is a transferred or resold gift
|
||||
|
|
@ -28579,6 +28808,7 @@ func (messageUpgradedGift *MessageUpgradedGift) UnmarshalJSON(data []byte) error
|
|||
var tmp struct {
|
||||
Gift *UpgradedGift `json:"gift"`
|
||||
SenderId json.RawMessage `json:"sender_id"`
|
||||
ReceiverId json.RawMessage `json:"receiver_id"`
|
||||
ReceivedGiftId string `json:"received_gift_id"`
|
||||
IsUpgrade bool `json:"is_upgrade"`
|
||||
IsSaved bool `json:"is_saved"`
|
||||
|
|
@ -28611,6 +28841,9 @@ func (messageUpgradedGift *MessageUpgradedGift) UnmarshalJSON(data []byte) error
|
|||
fieldSenderId, _ := UnmarshalMessageSender(tmp.SenderId)
|
||||
messageUpgradedGift.SenderId = fieldSenderId
|
||||
|
||||
fieldReceiverId, _ := UnmarshalMessageSender(tmp.ReceiverId)
|
||||
messageUpgradedGift.ReceiverId = fieldReceiverId
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
@ -28621,6 +28854,8 @@ type MessageRefundedUpgradedGift struct {
|
|||
Gift *Gift `json:"gift"`
|
||||
// Sender of the gift
|
||||
SenderId MessageSender `json:"sender_id"`
|
||||
// Receiver of the gift
|
||||
ReceiverId MessageSender `json:"receiver_id"`
|
||||
// True, if the gift was obtained by upgrading of a previously received gift; otherwise, this is a transferred or resold gift
|
||||
IsUpgrade bool `json:"is_upgrade"`
|
||||
}
|
||||
|
|
@ -28649,6 +28884,7 @@ func (messageRefundedUpgradedGift *MessageRefundedUpgradedGift) UnmarshalJSON(da
|
|||
var tmp struct {
|
||||
Gift *Gift `json:"gift"`
|
||||
SenderId json.RawMessage `json:"sender_id"`
|
||||
ReceiverId json.RawMessage `json:"receiver_id"`
|
||||
IsUpgrade bool `json:"is_upgrade"`
|
||||
}
|
||||
|
||||
|
|
@ -28663,6 +28899,9 @@ func (messageRefundedUpgradedGift *MessageRefundedUpgradedGift) UnmarshalJSON(da
|
|||
fieldSenderId, _ := UnmarshalMessageSender(tmp.SenderId)
|
||||
messageRefundedUpgradedGift.SenderId = fieldSenderId
|
||||
|
||||
fieldReceiverId, _ := UnmarshalMessageSender(tmp.ReceiverId)
|
||||
messageRefundedUpgradedGift.ReceiverId = fieldReceiverId
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
@ -28722,6 +28961,35 @@ func (*MessagePaidMessagePriceChanged) MessageContentType() string {
|
|||
return TypeMessagePaidMessagePriceChanged
|
||||
}
|
||||
|
||||
// A price for direct messages was changed in the channel chat
|
||||
type MessageDirectMessagePriceChanged struct {
|
||||
meta
|
||||
// True, if direct messages group was enabled for the channel; false otherwise
|
||||
IsEnabled bool `json:"is_enabled"`
|
||||
// The new number of Telegram Stars that must be paid by non-administrator users of the channel chat for each message sent to the direct messages group; 0 if the direct messages group was disabled or the messages are free
|
||||
PaidMessageStarCount int64 `json:"paid_message_star_count"`
|
||||
}
|
||||
|
||||
func (entity *MessageDirectMessagePriceChanged) MarshalJSON() ([]byte, error) {
|
||||
entity.meta.Type = entity.GetType()
|
||||
|
||||
type stub MessageDirectMessagePriceChanged
|
||||
|
||||
return json.Marshal((*stub)(entity))
|
||||
}
|
||||
|
||||
func (*MessageDirectMessagePriceChanged) GetClass() string {
|
||||
return ClassMessageContent
|
||||
}
|
||||
|
||||
func (*MessageDirectMessagePriceChanged) GetType() string {
|
||||
return TypeMessageDirectMessagePriceChanged
|
||||
}
|
||||
|
||||
func (*MessageDirectMessagePriceChanged) MessageContentType() string {
|
||||
return TypeMessageDirectMessagePriceChanged
|
||||
}
|
||||
|
||||
// A contact has registered with Telegram
|
||||
type MessageContactRegistered struct{
|
||||
meta
|
||||
|
|
@ -29940,6 +30208,8 @@ func (*MessageSelfDestructTypeImmediately) MessageSelfDestructTypeType() string
|
|||
// Options to be used when a message is sent
|
||||
type MessageSendOptions struct {
|
||||
meta
|
||||
// Unique identifier of the topic in a channel direct messages chat administered by the current user; pass 0 if the chat isn't a channel direct messages chat administered by the current user
|
||||
DirectMessagesChatTopicId int64 `json:"direct_messages_chat_topic_id"`
|
||||
// Pass true to disable notification for the message
|
||||
DisableNotification bool `json:"disable_notification"`
|
||||
// Pass true if the message is sent from the background
|
||||
|
|
@ -29952,7 +30222,7 @@ type MessageSendOptions struct {
|
|||
PaidMessageStarCount int64 `json:"paid_message_star_count"`
|
||||
// Pass true if the user explicitly chosen a sticker or a custom emoji from an installed sticker set; applicable only to sendMessage and sendMessageAlbum
|
||||
UpdateOrderOfInstalledStickerSets bool `json:"update_order_of_installed_sticker_sets"`
|
||||
// Message scheduling state; pass null to send message immediately. Messages sent to a secret chat, to a chat with paid messages, live location messages and self-destructing messages can't be scheduled
|
||||
// Message scheduling state; pass null to send message immediately. Messages sent to a secret chat, to a chat with paid messages, to a channel direct messages chat, live location messages and self-destructing messages can't be scheduled
|
||||
SchedulingState MessageSchedulingState `json:"scheduling_state"`
|
||||
// Identifier of the effect to apply to the message; pass 0 if none; applicable only to sendMessage and sendMessageAlbum in private chats
|
||||
EffectId JsonInt64 `json:"effect_id"`
|
||||
|
|
@ -29980,6 +30250,7 @@ func (*MessageSendOptions) GetType() string {
|
|||
|
||||
func (messageSendOptions *MessageSendOptions) UnmarshalJSON(data []byte) error {
|
||||
var tmp struct {
|
||||
DirectMessagesChatTopicId int64 `json:"direct_messages_chat_topic_id"`
|
||||
DisableNotification bool `json:"disable_notification"`
|
||||
FromBackground bool `json:"from_background"`
|
||||
ProtectContent bool `json:"protect_content"`
|
||||
|
|
@ -29997,6 +30268,7 @@ func (messageSendOptions *MessageSendOptions) UnmarshalJSON(data []byte) error {
|
|||
return err
|
||||
}
|
||||
|
||||
messageSendOptions.DirectMessagesChatTopicId = tmp.DirectMessagesChatTopicId
|
||||
messageSendOptions.DisableNotification = tmp.DisableNotification
|
||||
messageSendOptions.FromBackground = tmp.FromBackground
|
||||
messageSendOptions.ProtectContent = tmp.ProtectContent
|
||||
|
|
@ -30016,7 +30288,7 @@ func (messageSendOptions *MessageSendOptions) UnmarshalJSON(data []byte) error {
|
|||
// Options to be used when a message content is copied without reference to the original sender. Service messages, messages with messageInvoice, messagePaidMedia, messageGiveaway, or messageGiveawayWinners content can't be copied
|
||||
type MessageCopyOptions struct {
|
||||
meta
|
||||
// True, if content of the message needs to be copied without reference to the original sender. Always true if the message is forwarded to a secret chat or is local. Use messageProperties.can_be_saved and messageProperties.can_be_copied_to_secret_chat to check whether the message is suitable
|
||||
// True, if content of the message needs to be copied without reference to the original sender. Always true if the message is forwarded to a secret chat or is local. Use messageProperties.can_be_copied and messageProperties.can_be_copied_to_secret_chat to check whether the message is suitable
|
||||
SendCopy bool `json:"send_copy"`
|
||||
// True, if media caption of the message copy needs to be replaced. Ignored if send_copy is false
|
||||
ReplaceCaption bool `json:"replace_caption"`
|
||||
|
|
@ -30858,12 +31130,12 @@ func (*InputMessageInvoice) InputMessageContentType() string {
|
|||
return TypeInputMessageInvoice
|
||||
}
|
||||
|
||||
// A message with a poll. Polls can't be sent to secret chats. Polls can be sent only to a private chat with a bot
|
||||
// A message with a poll. Polls can't be sent to secret chats and channel direct messages chats. Polls can be sent to a private chat only if the chat is a chat with a bot or the Saved Messages chat
|
||||
type InputMessagePoll struct {
|
||||
meta
|
||||
// Poll question; 1-255 characters (up to 300 characters for bots). Only custom emoji entities are allowed to be added and only by Premium users
|
||||
Question *FormattedText `json:"question"`
|
||||
// List of poll answer options, 2-10 strings 1-100 characters each. Only custom emoji entities are allowed to be added and only by Premium users
|
||||
// List of poll answer options, 2-getOption("poll_answer_count_max") strings 1-100 characters each. Only custom emoji entities are allowed to be added and only by Premium users
|
||||
Options []*FormattedText `json:"options"`
|
||||
// True, if the poll voters are anonymous. Non-anonymous polls can't be sent or forwarded to channels
|
||||
IsAnonymous bool `json:"is_anonymous"`
|
||||
|
|
@ -30995,6 +31267,8 @@ func (*InputMessageForwarded) InputMessageContentType() string {
|
|||
// Contains properties of a message and describes actions that can be done with the message right now
|
||||
type MessageProperties struct {
|
||||
meta
|
||||
// True, if content of the message can be copied using inputMessageForwarded or forwardMessages with copy options
|
||||
CanBeCopied bool `json:"can_be_copied"`
|
||||
// True, if content of the message can be copied to a secret chat using inputMessageForwarded or forwardMessages with copy options
|
||||
CanBeCopiedToSecretChat bool `json:"can_be_copied_to_secret_chat"`
|
||||
// True, if the message can be deleted only for the current user while other users will continue to see it using the method deleteMessages with revoke == false
|
||||
|
|
@ -31003,7 +31277,7 @@ type MessageProperties struct {
|
|||
CanBeDeletedForAllUsers bool `json:"can_be_deleted_for_all_users"`
|
||||
// True, if the message can be edited using the methods editMessageText, editMessageCaption, or editMessageReplyMarkup. For live location and poll messages this fields shows whether editMessageLiveLocation or stopPoll can be used with this message
|
||||
CanBeEdited bool `json:"can_be_edited"`
|
||||
// True, if the message can be forwarded using inputMessageForwarded or forwardMessages
|
||||
// True, if the message can be forwarded using inputMessageForwarded or forwardMessages without copy options
|
||||
CanBeForwarded bool `json:"can_be_forwarded"`
|
||||
// True, if the message can be paid using inputInvoiceMessage
|
||||
CanBePaid bool `json:"can_be_paid"`
|
||||
|
|
@ -31013,7 +31287,7 @@ type MessageProperties struct {
|
|||
CanBeReplied bool `json:"can_be_replied"`
|
||||
// True, if the message can be replied in another chat or forum topic using inputMessageReplyToExternalMessage
|
||||
CanBeRepliedInAnotherChat bool `json:"can_be_replied_in_another_chat"`
|
||||
// True, if content of the message can be saved locally or copied using inputMessageForwarded or forwardMessages with copy options
|
||||
// True, if content of the message can be saved locally
|
||||
CanBeSaved bool `json:"can_be_saved"`
|
||||
// True, if the message can be shared in a story using inputStoryAreaTypeMessage
|
||||
CanBeSharedInStory bool `json:"can_be_shared_in_story"`
|
||||
|
|
@ -31021,6 +31295,8 @@ type MessageProperties struct {
|
|||
CanEditMedia bool `json:"can_edit_media"`
|
||||
// True, if scheduling state of the message can be edited
|
||||
CanEditSchedulingState bool `json:"can_edit_scheduling_state"`
|
||||
// True, if author of the message sent on behalf of a chat can be received through getMessageAuthor
|
||||
CanGetAuthor bool `json:"can_get_author"`
|
||||
// True, if code for message embedding can be received using getMessageEmbeddingCode
|
||||
CanGetEmbeddingCode bool `json:"can_get_embedding_code"`
|
||||
// True, if a link can be generated for the message using getMessageLink
|
||||
|
|
@ -34981,7 +35257,7 @@ func (*ResendCodeReasonUserRequest) ResendCodeReasonType() string {
|
|||
// The code is re-sent, because device verification has failed
|
||||
type ResendCodeReasonVerificationFailed struct {
|
||||
meta
|
||||
// Cause of the verification failure, for example, PLAY_SERVICES_NOT_AVAILABLE, APNS_RECEIVE_TIMEOUT, or APNS_INIT_FAILED
|
||||
// Cause of the verification failure, for example, "PLAY_SERVICES_NOT_AVAILABLE", "APNS_RECEIVE_TIMEOUT", or "APNS_INIT_FAILED"
|
||||
ErrorMessage string `json:"error_message"`
|
||||
}
|
||||
|
||||
|
|
@ -49650,7 +49926,7 @@ func (*InternalLinkTypeGame) InternalLinkTypeType() string {
|
|||
return TypeInternalLinkTypeGame
|
||||
}
|
||||
|
||||
// The link is a link to a group call that isn't bound to a chat. Call joinGroupCall with the given invite_link
|
||||
// The link is a link to a group call that isn't bound to a chat. Use getGroupCallParticipants to get the list of group call participants and show them on the join group call screen. Call joinGroupCall with the given invite_link to join the call
|
||||
type InternalLinkTypeGroupCall struct {
|
||||
meta
|
||||
// Internal representation of the invite link
|
||||
|
|
@ -54541,7 +54817,7 @@ func (*VectorPathCommandLine) VectorPathCommandType() string {
|
|||
return TypeVectorPathCommandLine
|
||||
}
|
||||
|
||||
// A cubic Bézier curve to a given point
|
||||
// A cubic Bézier curve to a given point
|
||||
type VectorPathCommandCubicBezierCurve struct {
|
||||
meta
|
||||
// The start control point of the curve
|
||||
|
|
@ -56538,6 +56814,85 @@ func (*UpdateSavedMessagesTopicCount) UpdateType() string {
|
|||
return TypeUpdateSavedMessagesTopicCount
|
||||
}
|
||||
|
||||
// Basic information about a topic in a channel direct messages chat administered by the current user has changed. This update is guaranteed to come before the topic identifier is returned to the application
|
||||
type UpdateDirectMessagesChatTopic struct {
|
||||
meta
|
||||
// New data about the topic
|
||||
Topic *DirectMessagesChatTopic `json:"topic"`
|
||||
}
|
||||
|
||||
func (entity *UpdateDirectMessagesChatTopic) MarshalJSON() ([]byte, error) {
|
||||
entity.meta.Type = entity.GetType()
|
||||
|
||||
type stub UpdateDirectMessagesChatTopic
|
||||
|
||||
return json.Marshal((*stub)(entity))
|
||||
}
|
||||
|
||||
func (*UpdateDirectMessagesChatTopic) GetClass() string {
|
||||
return ClassUpdate
|
||||
}
|
||||
|
||||
func (*UpdateDirectMessagesChatTopic) GetType() string {
|
||||
return TypeUpdateDirectMessagesChatTopic
|
||||
}
|
||||
|
||||
func (*UpdateDirectMessagesChatTopic) UpdateType() string {
|
||||
return TypeUpdateDirectMessagesChatTopic
|
||||
}
|
||||
|
||||
// Number of messages in a topic has changed; for Saved Messages and channel direct messages chat topics only
|
||||
type UpdateTopicMessageCount struct {
|
||||
meta
|
||||
// Identifier of the chat in topic of which the number of messages has changed
|
||||
ChatId int64 `json:"chat_id"`
|
||||
// Identifier of the topic
|
||||
TopicId MessageTopic `json:"topic_id"`
|
||||
// Approximate number of messages in the topics
|
||||
MessageCount int32 `json:"message_count"`
|
||||
}
|
||||
|
||||
func (entity *UpdateTopicMessageCount) MarshalJSON() ([]byte, error) {
|
||||
entity.meta.Type = entity.GetType()
|
||||
|
||||
type stub UpdateTopicMessageCount
|
||||
|
||||
return json.Marshal((*stub)(entity))
|
||||
}
|
||||
|
||||
func (*UpdateTopicMessageCount) GetClass() string {
|
||||
return ClassUpdate
|
||||
}
|
||||
|
||||
func (*UpdateTopicMessageCount) GetType() string {
|
||||
return TypeUpdateTopicMessageCount
|
||||
}
|
||||
|
||||
func (*UpdateTopicMessageCount) UpdateType() string {
|
||||
return TypeUpdateTopicMessageCount
|
||||
}
|
||||
|
||||
func (updateTopicMessageCount *UpdateTopicMessageCount) UnmarshalJSON(data []byte) error {
|
||||
var tmp struct {
|
||||
ChatId int64 `json:"chat_id"`
|
||||
TopicId json.RawMessage `json:"topic_id"`
|
||||
MessageCount int32 `json:"message_count"`
|
||||
}
|
||||
|
||||
err := json.Unmarshal(data, &tmp)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
updateTopicMessageCount.ChatId = tmp.ChatId
|
||||
updateTopicMessageCount.MessageCount = tmp.MessageCount
|
||||
|
||||
fieldTopicId, _ := UnmarshalMessageTopic(tmp.TopicId)
|
||||
updateTopicMessageCount.TopicId = fieldTopicId
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// Basic information about a quick reply shortcut has changed. This update is guaranteed to come before the quick shortcut name is returned to the application
|
||||
type UpdateQuickReplyShortcut struct {
|
||||
meta
|
||||
|
|
@ -56688,6 +57043,10 @@ type UpdateForumTopic struct {
|
|||
LastReadInboxMessageId int64 `json:"last_read_inbox_message_id"`
|
||||
// Identifier of the last read outgoing message
|
||||
LastReadOutboxMessageId int64 `json:"last_read_outbox_message_id"`
|
||||
// Number of unread messages with a mention/reply in the topic
|
||||
UnreadMentionCount int32 `json:"unread_mention_count"`
|
||||
// Number of messages with unread reactions in the topic
|
||||
UnreadReactionCount int32 `json:"unread_reaction_count"`
|
||||
// Notification settings for the topic
|
||||
NotificationSettings *ChatNotificationSettings `json:"notification_settings"`
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue