package laniakea import "git.nix13.pw/scuroneko/extypes" type Update struct { UpdateID int `json:"update_id"` Message *Message `json:"message"` EditedMessage *Message `json:"edited_message,omitempty"` ChannelPost *Message `json:"channel_post,omitempty"` EditedChannelPost *Message `json:"edited_channel_post,omitempty"` BusinessConnection *BusinessConnection `json:"business_connection,omitempty"` BusinessMessage *Message `json:"business_message,omitempty"` EditedBusinessMessage *Message `json:"edited_business_message,omitempty"` DeletedBusinessMessage *Message `json:"deleted_business_messages,omitempty"` MessageReaction *MessageReactionUpdated `json:"message_reaction,omitempty"` MessageReactionCount *MessageReactionCountUpdated `json:"message_reaction_count,omitempty"` CallbackQuery *CallbackQuery `json:"callback_query,omitempty"` InlineQuery int ChosenInlineResult int } type User struct { ID int `json:"id"` IsBot bool `json:"is_bot"` FirstName string `json:"first_name"` LastName string `json:"last_name,omitempty"` Username string `json:"username,omitempty"` LanguageCode string `json:"language_code,omitempty"` IsPremium bool `json:"is_premium,omitempty"` AddedToAttachmentMenu bool `json:"added_to_attachment_menu,omitempty"` CanJoinGroups bool `json:"can_join_groups,omitempty"` CanReadAllGroupMessages bool `json:"can_read_all_group_messages,omitempty"` SupportsInlineQueries bool `json:"supports_inline_queries,omitempty"` CanConnectToBusiness bool `json:"can_connect_to_business,omitempty"` HasMainWebApp bool `json:"has_main_web_app,omitempty"` } type Chat struct { ID int `json:"id"` Type string `json:"type"` Title string `json:"title,omitempty"` Username string `json:"username,omitempty"` FirstName string `json:"first_name,omitempty"` LastName string `json:"last_name,omitempty"` IsForum bool `json:"is_forum,omitempty"` } type MessageReplyMarkup struct { InlineKeyboard [][]InlineKeyboardButton `json:"inline_keyboard"` } type Message struct { MessageID int `json:"message_id"` MessageThreadID int `json:"message_thread_id,omitempty"` BusinessConnectionId string `json:"business_connection_id,omitempty"` From *User `json:"from,omitempty"` SenderChat *Chat `json:"sender_chat,omitempty"` SenderBoostCount int `json:"sender_boost_count,omitempty"` SenderBusinessBot *User `json:"sender_business_bot,omitempty"` Chat *Chat `json:"chat,omitempty"` IsTopicMessage bool `json:"is_topic_message,omitempty"` IsAutomaticForward bool `json:"is_automatic_forward,omitempty"` IsFromOffline bool `json:"is_from_offline,omitempty"` IsPaidPost bool `json:"is_paid_post,omitempty"` MediaGroupId string `json:"media_group_id,omitempty"` AuthorSignature string `json:"author_signature,omitempty"` PaidStarCount int `json:"paid_star_count,omitempty"` ReplyToMessage *Message `json:"reply_to_message,omitempty"` Text string `json:"text"` Photo extypes.Slice[*PhotoSize] `json:"photo,omitempty"` Caption string `json:"caption,omitempty"` CaptionEntities []MessageEntity `json:"caption_entities,omitempty"` Date int `json:"date"` EditDate int `json:"edit_date"` ReplyMarkup *MessageReplyMarkup `json:"reply_markup,omitempty"` Entities []MessageEntity `json:"entities,omitempty"` LinkPreviewOptions *LinkPreviewOptions `json:"link_preview_options,omitempty"` SuggestedPostInfo *SuggestedPostInfo `json:"suggested_post_info,omitempty"` EffectID string `json:"effect_id,omitempty"` } type InaccessableMessage struct { Chat *Chat `json:"chat"` MessageID int `json:"message_id"` Date int `json:"date"` } type MaybeInaccessibleMessage struct { } type MessageEntityType string const ( MessageEntityMention MessageEntityType = "mention" MessageEntityHashtag MessageEntityType = "hashtag" MessageEntityCashtag MessageEntityType = "cashtag" MessageEntityBotCommand MessageEntityType = "bot_command" MessageEntityUrl MessageEntityType = "url" MessageEntityEmail MessageEntityType = "email" MessageEntityPhoneNumber MessageEntityType = "phone_number" MessageEntityBold MessageEntityType = "bold" MessageEntityItalic MessageEntityType = "italic" MessageEntityUnderline MessageEntityType = "underline" MessageEntityStrike MessageEntityType = "strikethrough" MessageEntitySpoiler MessageEntityType = "spoiler" MessageEntityBlockquote MessageEntityType = "blockquote" MessageEntityExpandableBlockquote MessageEntityType = "expandable_blockquote" MessageEntityCode MessageEntityType = "code" MessageEntityPre MessageEntityType = "pre" MessageEntityTextLink MessageEntityType = "text_link" MessageEntityTextMention MessageEntityType = "text_mention" MessageEntityCustomEmoji MessageEntityType = "custom_emoji" ) type MessageEntity struct { Type MessageEntityType `json:"type"` Offset int `json:"offset"` Length int `json:"length"` URL string `json:"url,omitempty"` User *User `json:"user,omitempty"` Language string `json:"language,omitempty"` CustomEmojiID string `json:"custom_emoji_id,omitempty"` } type ReplyParameters struct { MessageID int `json:"message_id"` ChatID int `json:"chat_id,omitempty"` AllowSendingWithoutReply bool `json:"allow_sending_without_reply,omitempty"` Quote string `json:"quote,omitempty"` QuoteParsingMode string `json:"quote_parsing_mode,omitempty"` QuoteEntities []*MessageEntity `json:"quote_entities,omitempty"` QuotePosition int `json:"quote_position,omitempty"` ChecklistTaskID int `json:"checklist_task_id,omitempty"` } type PhotoSize struct { FileID string `json:"file_id"` FileUniqueID string `json:"file_unique_id"` Width int `json:"width"` Height int `json:"height"` FileSize int `json:"file_size,omitempty"` } type LinkPreviewOptions struct { IsDisabled bool `json:"is_disabled,omitempty"` URL string `json:"url,omitempty"` PreferSmallMedia bool `json:"prefer_small_media,omitempty"` PreferLargeMedia bool `json:"prefer_large_media,omitempty"` ShowAboveText bool `json:"show_above_text,omitempty"` } type ReplyMarkup struct { InlineKeyboard [][]InlineKeyboardButton `json:"inline_keyboard,omitempty"` Keyboard [][]int `json:"keyboard,omitempty"` IsPersistent bool `json:"is_persistent,omitempty"` ResizeKeyboard bool `json:"resize_keyboard,omitempty"` OneTimeKeyboard bool `json:"one_time_keyboard,omitempty"` InputFieldPlaceholder string `json:"input_field_placeholder,omitempty"` Selective bool `json:"selective,omitempty"` RemoveKeyboard bool `json:"remove_keyboard,omitempty"` ForceReply bool `json:"force_reply,omitempty"` } type InlineKeyboardMarkup struct { InlineKeyboard [][]InlineKeyboardButton `json:"inline_keyboard,omitempty"` } type KeyboardButtonStyle string type InlineKeyboardButton struct { Text string `json:"text"` URL string `json:"url,omitempty"` CallbackData string `json:"callback_data,omitempty"` Style KeyboardButtonStyle `json:"style,omitempty"` IconCustomEmojiID string `json:"icon_custom_emoji_id,omitempty"` } type ReplyKeyboardMarkup struct { Keyboard [][]int `json:"keyboard"` } type CallbackQuery struct { ID string `json:"id"` From *User `json:"from"` Message *Message `json:"message"` Data string `json:"data"` } type BusinessConnection struct { ID string `json:"id"` User *User `json:"user"` UserChatID int `json:"user_chat_id"` Date int `json:"date"` CanReply bool `json:"can_reply"` IsEnabled bool `json:"id_enabled"` } type MessageReactionUpdated struct { Chat *Chat `json:"chat"` MessageID int `json:"message_id"` User *User `json:"user,omitempty"` ActorChat *Chat `json:"actor_chat"` Date int `json:"date"` OldReaction []*ReactionType `json:"old_reaction"` NewReaction []*ReactionType `json:"new_reaction"` } type MessageReactionCountUpdated struct { Chat *Chat `json:"chat"` MessageID int `json:"message_id"` Date int `json:"date"` Reactions []*ReactionCount `json:"reactions"` } type ReactionType struct { Type string `json:"type"` } type ReactionTypeEmoji struct { ReactionType Emoji string `json:"emoji"` } type ReactionTypeCustomEmoji struct { ReactionType CustomEmojiID string `json:"custom_emoji_id"` } type ReactionTypePaid struct { ReactionType } type ReactionCount struct { Type *ReactionType `json:"type"` TotalCount int `json:"total_count"` } type File struct { FileId string `json:"file_id"` FileUniqueID string `json:"file_unique_id"` FileSize int `json:"file_size,omitempty"` FilePath string `json:"file_path,omitempty"` } type ChatActions string const ( ChatActionTyping ChatActions = "typing" ChatActionUploadPhoto ChatActions = "upload_photo" ChatActionUploadVideo ChatActions = "upload_video" ChatActionUploadVoice ChatActions = "upload_voice" ChatActionUploadDocument ChatActions = "upload_document" ChatActionChooseSticker ChatActions = "choose_sticker" ChatActionFindLocation ChatActions = "find_location" ChatActionUploadVideoNone ChatActions = "upload_video_none" ) type SuggestedPostPrice struct { Currency string `json:"currency"` Amount int `json:"amount"` } type SuggestedPostInfo struct { State string `json:"state"` //State of the suggested post. Currently, it can be one of “pending”, “approved”, “declined”. Price SuggestedPostPrice `json:"price"` SendDate int `json:"send_date"` } type SuggestedPostParameters struct { Price SuggestedPostPrice `json:"price"` SendDate int `json:"send_date"` }