Implement Bot API 6.2 changes.

bot-api-6.2
OvyFlash 2022-11-20 21:55:30 +02:00
parent 4126fa6112
commit f7e326b02e
2 changed files with 75 additions and 3 deletions

View File

@ -2004,6 +2004,24 @@ func (config GetStickerSetConfig) params() (Params, error) {
return params, nil
}
// GetCustomEmojiStickersConfig get information about
// custom emoji stickers by their identifiers.
type GetCustomEmojiStickersConfig struct {
CustomEmojiIDs []string
}
func (config GetCustomEmojiStickersConfig) params() (Params, error) {
params := make(Params)
params.AddInterface("custom_emoji_ids", config.CustomEmojiIDs)
return params, nil
}
func (config GetCustomEmojiStickersConfig) method() string {
return "getCustomEmojiStickers"
}
// UploadStickerConfig allows you to upload a sticker for use in a set later.
type UploadStickerConfig struct {
UserID int64
@ -2038,8 +2056,9 @@ type NewStickerSetConfig struct {
Title string
PNGSticker RequestFileData
TGSSticker RequestFileData
StickerType string
Emojis string
ContainsMasks bool
ContainsMasks bool // deprecated
MaskPosition *MaskPosition
}
@ -2053,11 +2072,10 @@ func (config NewStickerSetConfig) params() (Params, error) {
params.AddNonZero64("user_id", config.UserID)
params["name"] = config.Name
params["title"] = config.Title
params["emojis"] = config.Emojis
params.AddBool("contains_masks", config.ContainsMasks)
params.AddNonEmpty("sticker_type", string(config.StickerType))
err := params.AddInterface("mask_position", config.MaskPosition)
return params, err

View File

@ -274,6 +274,12 @@ type Chat struct {
//
// optional
HasPrivateForwards bool `json:"has_private_forwards,omitempty"`
// HasRestrictedVoiceAndVideoMessages if the privacy settings of the other party
// restrict sending voice and video note messages
// in the private chat. Returned only in getChat.
//
// optional
HasRestrictedVoiceAndVideoMessages bool `json:"has_restricted_voice_and_video_messages,omitempty"`
// Description for groups, supergroups and channel chats
//
// optional
@ -730,6 +736,7 @@ type MessageEntity struct {
// “pre” (monowidth block),
// “text_link” (for clickable text URLs),
// “text_mention” (for users without usernames)
// “text_mention” (for inline custom emoji stickers)
Type string `json:"type"`
// Offset in UTF-16 code units to the start of the entity
Offset int `json:"offset"`
@ -747,6 +754,10 @@ type MessageEntity struct {
//
// optional
Language string `json:"language,omitempty"`
// CustomEmojiID for “custom_emoji” only, unique identifier of the custom emoji
//
// optional
CustomEmojiID string `json:"custom_emoji_id"`
}
// ParseURL attempts to parse a URL contained within a MessageEntity.
@ -1984,6 +1995,13 @@ type InputMediaDocument struct {
DisableContentTypeDetection bool `json:"disable_content_type_detection,omitempty"`
}
// Constant values for sticker types
const (
StickerTypeRegular = "regular"
StickerTypeMask = "mask"
StickerTypeCustomEmoji = "custom_emoji"
)
// Sticker represents a sticker.
type Sticker struct {
// FileID is an identifier for this file, which can be used to download or
@ -1993,6 +2011,10 @@ type Sticker struct {
// which is supposed to be the same over time and for different bots.
// Can't be used to download or reuse the file.
FileUniqueID string `json:"file_unique_id"`
// Type is a type of the sticker, currently one of “regular”,
// “mask”, “custom_emoji”. The type of the sticker is independent
// from its format, which is determined by the fields is_animated and is_video.
Type string `json:"type"`
// Width sticker width
Width int `json:"width"`
// Height sticker height
@ -2036,6 +2058,21 @@ type Sticker struct {
FileSize int `json:"file_size,omitempty"`
}
// IsRegular returns if the Sticker is regular
func (s Sticker) IsRegular() bool {
return s.Type == StickerTypeRegular
}
// IsMask returns if the Sticker is mask
func (s Sticker) IsMask() bool {
return s.Type == StickerTypeMask
}
// IsCustomEmoji returns if the Sticker is custom emoji
func (s Sticker) IsCustomEmoji() bool {
return s.Type == StickerTypeCustomEmoji
}
// StickerSet represents a sticker set.
type StickerSet struct {
// Name sticker set name
@ -2049,6 +2086,8 @@ type StickerSet struct {
// IsVideo true, if the sticker set contains video stickers
IsVideo bool `json:"is_video"`
// ContainsMasks true, if the sticker set contains masks
//
// deprecated. Use sticker_type instead
ContainsMasks bool `json:"contains_masks"`
// Stickers list of all set stickers
Stickers []Sticker `json:"stickers"`
@ -2056,6 +2095,21 @@ type StickerSet struct {
Thumbnail *PhotoSize `json:"thumb"`
}
// IsRegular returns if the StickerSet is regular
func (s StickerSet) IsRegular() bool {
return s.StickerType == StickerTypeRegular
}
// IsMask returns if the StickerSet is mask
func (s StickerSet) IsMask() bool {
return s.StickerType == StickerTypeMask
}
// IsCustomEmoji returns if the StickerSet is custom emoji
func (s StickerSet) IsCustomEmoji() bool {
return s.StickerType == StickerTypeCustomEmoji
}
// MaskPosition describes the position on faces where a mask should be placed
// by default.
type MaskPosition struct {