2017-11-18 13:06:20 +00:00
|
|
|
package telebot
|
|
|
|
|
|
|
|
import "strconv"
|
|
|
|
|
2020-04-26 11:13:06 +00:00
|
|
|
// User object represents a Telegram user, bot.
|
2017-11-18 13:06:20 +00:00
|
|
|
type User struct {
|
2017-11-18 14:41:23 +00:00
|
|
|
ID int `json:"id"`
|
2017-11-18 13:06:20 +00:00
|
|
|
|
2019-01-27 19:00:48 +00:00
|
|
|
FirstName string `json:"first_name"`
|
|
|
|
LastName string `json:"last_name"`
|
|
|
|
Username string `json:"username"`
|
|
|
|
LanguageCode string `json:"language_code"`
|
2019-05-19 22:36:15 +00:00
|
|
|
IsBot bool `json:"is_bot"`
|
2020-04-26 11:13:06 +00:00
|
|
|
|
|
|
|
// Returns only in getMe
|
|
|
|
CanJoinGroups bool `json:"can_join_groups"`
|
|
|
|
CanReadMessages bool `json:"can_read_all_group_messages"`
|
|
|
|
SupportsInline bool `json:"supports_inline_queries"`
|
2017-11-18 13:06:20 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Recipient returns user ID (see Recipient interface).
|
|
|
|
func (u *User) Recipient() string {
|
|
|
|
return strconv.Itoa(u.ID)
|
|
|
|
}
|
|
|
|
|
|
|
|
// Chat object represents a Telegram user, bot, group or a channel.
|
|
|
|
type Chat struct {
|
|
|
|
ID int64 `json:"id"`
|
|
|
|
|
2020-04-26 15:19:49 +00:00
|
|
|
// See ChatType and consts.
|
2017-11-18 13:06:20 +00:00
|
|
|
Type ChatType `json:"type"`
|
|
|
|
|
|
|
|
// Won't be there for ChatPrivate.
|
|
|
|
Title string `json:"title"`
|
|
|
|
|
|
|
|
FirstName string `json:"first_name"`
|
|
|
|
LastName string `json:"last_name"`
|
|
|
|
Username string `json:"username"`
|
2020-04-26 11:13:06 +00:00
|
|
|
|
2020-04-26 15:41:52 +00:00
|
|
|
// Still shows whether the user is a member
|
|
|
|
// of the chat at the moment of the request.
|
|
|
|
Still bool `json:"is_member,omitempty"`
|
|
|
|
|
2020-04-26 11:13:06 +00:00
|
|
|
// Returns only in getChat
|
|
|
|
Photo *ChatPhoto `json:"photo,omitempty"`
|
|
|
|
Description string `json:"description,omitempty"`
|
|
|
|
InviteLink string `json:"invite_link,omitempty"`
|
|
|
|
PinnedMessage *Message `json:"pinned_message,omitempty"`
|
|
|
|
Permissions *Rights `json:"permissions,omitempty"`
|
|
|
|
SlowMode int `json:"slow_mode_delay,omitempty"`
|
|
|
|
StickerSet string `json:"sticker_set_name,omitempty"`
|
|
|
|
CanSetStickerSet bool `json:"can_set_sticker_set,omitempty"`
|
|
|
|
}
|
|
|
|
|
|
|
|
// ChatPhoto object represents a chat photo.
|
|
|
|
type ChatPhoto struct {
|
|
|
|
// File identifiers of small (160x160) chat photo
|
|
|
|
SmallFileID string `json:"small_file_id"`
|
|
|
|
SmallFileUniqueID string `json:"small_file_unique_id"`
|
|
|
|
|
|
|
|
// File identifiers of big (640x640) chat photo
|
|
|
|
BigFileID string `json:"big_file_id"`
|
|
|
|
BigFileUniqueID string `json:"big_file_unique_id"`
|
2017-11-18 13:06:20 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Recipient returns chat ID (see Recipient interface).
|
|
|
|
func (c *Chat) Recipient() string {
|
|
|
|
return strconv.FormatInt(c.ID, 10)
|
|
|
|
}
|
|
|
|
|
|
|
|
// ChatMember object represents information about a single chat member.
|
|
|
|
type ChatMember struct {
|
2017-11-21 15:28:22 +00:00
|
|
|
Rights
|
|
|
|
|
2020-04-26 11:13:06 +00:00
|
|
|
User *User `json:"user"`
|
|
|
|
Role MemberStatus `json:"status"`
|
|
|
|
Title string `json:"custom_title"`
|
2017-11-21 15:28:22 +00:00
|
|
|
|
|
|
|
// Date when restrictions will be lifted for the user, unix time.
|
|
|
|
//
|
|
|
|
// If user is restricted for more than 366 days or less than
|
|
|
|
// 30 seconds from the current time, they are considered to be
|
|
|
|
// restricted forever.
|
|
|
|
//
|
|
|
|
// Use tb.Forever().
|
|
|
|
//
|
|
|
|
RestrictedUntil int64 `json:"until_date,omitempty"`
|
2017-11-18 13:06:20 +00:00
|
|
|
}
|