WIP v0.5.0

This commit is contained in:
2026-02-11 17:27:05 +03:00
parent 7ac293dd38
commit f2d85b848f
32 changed files with 2721 additions and 727 deletions

99
tgapi/bot_types.go Normal file
View File

@@ -0,0 +1,99 @@
package tgapi
type BotCommand struct {
Command string `json:"command"`
Description string `json:"description"`
}
type BotCommandScopeType string
const (
BotCommandScopeDefaultType BotCommandScopeType = "default"
BotCommandScopePrivateType BotCommandScopeType = "all_private_chats"
BotCommandScopeGroupType BotCommandScopeType = "all_groups_chats"
BotCommandScopeAllChatAdministratorsType BotCommandScopeType = "all_chat_administrators"
BotCommandScopeChatType BotCommandScopeType = "chat"
BotCommandScopeChatAdministratorsType BotCommandScopeType = "chat_administrators"
BotCommandScopeChatMemberType BotCommandScopeType = "chat_member"
)
type BaseBotCommandScope struct {
Type BotCommandScopeType `json:"type"`
}
type BotCommandScopeDefault struct {
BaseBotCommandScope
}
type BotCommandScopePrivateChats struct {
BaseBotCommandScope
}
type BotCommandScopeAllGroupChats struct {
BaseBotCommandScope
}
type BotCommandScopeAllChatAdministrators struct {
BaseBotCommandScope
}
type BotCommandScopeChat struct {
BaseBotCommandScope
ChatID int `json:"chat_id"`
}
type BotCommandScopeChatAdministrators struct {
BaseBotCommandScope
ChatID int `json:"chat_id"`
}
type BotCommandScopeChatMember struct {
BaseBotCommandScope
ChatID int `json:"chat_id"`
UserID int `json:"user_id"`
}
type BotName struct {
Name string `json:"name"`
}
type BotDescription struct {
Description string `json:"description"`
}
type BotShortDescription struct {
ShortDescription string `json:"short_description"`
}
const (
InputProfilePhotoStaticType InputProfilePhotoType = "static"
InputProfilePhotoAnimatedType InputProfilePhotoType = "animated"
)
type InputProfilePhotoType string
type InputProfilePhoto interface {
InputProfilePhotoStatic | InputProfilePhotoAnimated
}
type BaseInputProfilePhoto struct {
Type InputProfilePhotoType `json:"type"`
}
type InputProfilePhotoStatic struct {
BaseInputProfilePhoto
Photo string `json:"photo"`
}
type InputProfilePhotoAnimated struct {
BaseInputProfilePhoto
Animation string `json:"animation"`
MainFrameTimestamp float64 `json:"main_frame_timestamp"`
}
const (
MenuButtonCommandsType MenuButtonType = "commands"
MenuButtonWebAppType MenuButtonType = "web_app"
MenuButtonDefaultType MenuButtonType = "default"
)
type MenuButtonType string
type MenuButton interface {
MenuButtonCommands | MenuButtonDefault | MenuButtonWebApp
}
type BaseMenuButton struct {
Type MenuButtonType `json:"type"`
}
type MenuButtonCommands struct{ BaseMenuButton }
type MenuButtonDefault struct{ BaseMenuButton }
type MenuButtonWebApp struct {
BaseMenuButton
Text string `json:"text"`
WebApp WebAppInfo `json:"web_app"`
}