Rename tgapi request structs
Add MaybeInaccessibleMessage tests and godoc Update wiki and Bot API docs for the new naming
This commit is contained in:
@@ -1,5 +1,253 @@
|
||||
package tgapi
|
||||
|
||||
type Animation struct {
|
||||
FileID string `json:"file_id"`
|
||||
FileUniqueID string `json:"file_unique_id"`
|
||||
Width int `json:"width"`
|
||||
Height int `json:"height"`
|
||||
Duration int `json:"duration"`
|
||||
|
||||
Thumbnail *PhotoSize `json:"thumbnail,omitempty"`
|
||||
FileName string `json:"file_name"`
|
||||
MimeType string `json:"mime_type"`
|
||||
FileSize int `json:"file_size"`
|
||||
}
|
||||
|
||||
// Audio represents an audio file to be treated as music by the Telegram clients.
|
||||
// See https://core.telegram.org/bots/api#audio
|
||||
type Audio struct {
|
||||
FileID string `json:"file_id"`
|
||||
FileUniqueID string `json:"file_unique_id"`
|
||||
Duration int `json:"duration"`
|
||||
|
||||
Performer string `json:"performer,omitempty"`
|
||||
Title string `json:"title,omitempty"`
|
||||
FileName string `json:"file_name,omitempty"`
|
||||
MimeType string `json:"mime_type,omitempty"`
|
||||
FileSize int64 `json:"file_size,omitempty"`
|
||||
Thumbnail *PhotoSize `json:"thumbnail,omitempty"`
|
||||
}
|
||||
|
||||
type Document struct {
|
||||
FileID string `json:"file_id"`
|
||||
FileUniqueID string `json:"file_unique_id"`
|
||||
Thumbnail *PhotoSize `json:"thumbnail,omitempty"`
|
||||
FileName string `json:"file_name"`
|
||||
MimeType string `json:"mime_type"`
|
||||
FileSize int `json:"file_size,omitempty"`
|
||||
}
|
||||
|
||||
// Story represents a story.
|
||||
type Story struct {
|
||||
Chat Chat `json:"chat"`
|
||||
ID int `json:"id"`
|
||||
}
|
||||
|
||||
type Video struct {
|
||||
FileID string `json:"file_id"`
|
||||
FileUniqueID string `json:"file_unique_id"`
|
||||
Width int `json:"width"`
|
||||
Height int `json:"height"`
|
||||
Duration int `json:"duration"`
|
||||
|
||||
Thumbnail *PhotoSize `json:"thumbnail,omitempty"`
|
||||
Cover []PhotoSize `json:"cover,omitempty"`
|
||||
StartTimestamp int64 `json:"start_timestamp"`
|
||||
Qualities []VideoQuality `json:"qualities,omitempty"`
|
||||
FileName string `json:"file_name,omitempty"`
|
||||
MimeType string `json:"mime_type,omitempty"`
|
||||
FileSize int64 `json:"file_size,omitempty"`
|
||||
}
|
||||
|
||||
// VideoQuality describes an alternative quality for a video.
|
||||
// See https://core.telegram.org/bots/api#videoquality
|
||||
type VideoQuality struct {
|
||||
FileID string `json:"file_id"`
|
||||
FileUniqueID string `json:"file_unique_id"`
|
||||
Width int `json:"width"`
|
||||
Height int `json:"height"`
|
||||
Codec string `json:"codec"`
|
||||
FileSize int64 `json:"file_size,omitempty"`
|
||||
}
|
||||
|
||||
type VideoNote struct {
|
||||
FileID string `json:"file_id"`
|
||||
FileUniqueID string `json:"file_unique_id"`
|
||||
Length int `json:"length"`
|
||||
Duration int `json:"duration"`
|
||||
Thumbnail *PhotoSize `json:"thumbnail,omitempty"`
|
||||
FileSize int64 `json:"file_size,omitempty"`
|
||||
}
|
||||
|
||||
type Voice struct {
|
||||
FileID string `json:"file_id"`
|
||||
FileUniqueID string `json:"file_unique_id"`
|
||||
Duration int `json:"duration"`
|
||||
MimeType string `json:"mime_type,omitempty"`
|
||||
FileSize int `json:"file_size,omitempty"`
|
||||
}
|
||||
|
||||
type PaidMediaInfo struct {
|
||||
StarCount int `json:"star_count"`
|
||||
PaidMedia []PaidMedia `json:"paid_media"`
|
||||
}
|
||||
type PaidMediaType string
|
||||
|
||||
const (
|
||||
PaidMediaPreviewType PaidMediaType = "preview"
|
||||
PaidMediaPhotoType PaidMediaType = "photo"
|
||||
PaidMediaVideoType PaidMediaType = "video"
|
||||
)
|
||||
|
||||
type PaidMedia struct {
|
||||
Type PaidMediaType `json:"type,omitempty"`
|
||||
|
||||
Width int `json:"width,omitempty"`
|
||||
Height int `json:"height,omitempty"`
|
||||
Duration int `json:"duration,omitempty"`
|
||||
|
||||
Photo []PhotoSize `json:"photo,omitempty"`
|
||||
|
||||
Video *Video `json:"video,omitempty"`
|
||||
}
|
||||
|
||||
type Contact struct {
|
||||
PhoneNumber string `json:"phone_number"`
|
||||
FirstName string `json:"first_name"`
|
||||
LastName string `json:"last_name,omitempty"`
|
||||
UserID int64 `json:"user_id,omitempty"`
|
||||
Vcard string `json:"vcard,omitempty"`
|
||||
}
|
||||
|
||||
type Dice struct {
|
||||
Emoji string `json:"emoji"`
|
||||
Value int `json:"value"`
|
||||
}
|
||||
|
||||
// PollOption contains information about one answer option in a poll.
|
||||
// See https://core.telegram.org/bots/api#polloption
|
||||
type PollOption struct {
|
||||
PersistentID string `json:"persistent_id"`
|
||||
Text string `json:"text"`
|
||||
TextEntities []MessageEntity `json:"text_entities"`
|
||||
VoterCount int `json:"voter_count"`
|
||||
|
||||
AddedByUser *User `json:"added_by_user,omitempty"`
|
||||
AddedByChat *Chat `json:"added_by_chat,omitempty"`
|
||||
AdditionDate int `json:"addition_date,omitempty"`
|
||||
}
|
||||
|
||||
// InputPollOption contains information about one answer option in a poll to be sent.
|
||||
// See https://core.telegram.org/bots/api#inputpolloption
|
||||
type InputPollOption struct {
|
||||
Text string `json:"text"`
|
||||
TextParseMode ParseMode `json:"text_parse_mode,omitempty"`
|
||||
TextEntities []MessageEntity `json:"text_entities,omitempty"`
|
||||
}
|
||||
|
||||
type PollOptionAdded struct {
|
||||
PollMessage *InaccessibleMessage `json:"poll_message,omitempty"`
|
||||
OptionPersistentID string `json:"option_persistent_id"`
|
||||
OptionText string `json:"option_text"`
|
||||
OptionTextEntities []MessageEntity `json:"option_text_entities,omitempty"`
|
||||
}
|
||||
|
||||
type PollOptionDeleted struct {
|
||||
PollMessage *InaccessibleMessage `json:"poll_message,omitempty"`
|
||||
OptionPersistentID string `json:"option_persistent_id"`
|
||||
OptionText string `json:"option_text"`
|
||||
OptionTextEntities []MessageEntity `json:"option_text_entities,omitempty"`
|
||||
}
|
||||
|
||||
// PollType represents the type of a poll.
|
||||
type PollType string
|
||||
|
||||
const (
|
||||
// PollTypeRegular identifies a regular poll.
|
||||
PollTypeRegular PollType = "regular"
|
||||
// PollTypeQuiz identifies a quiz poll.
|
||||
PollTypeQuiz PollType = "quiz"
|
||||
)
|
||||
|
||||
// PollAnswer represents an answer of a user in a poll.
|
||||
// See https://core.telegram.org/bots/api#pollanswer
|
||||
type PollAnswer struct {
|
||||
PollID string `json:"poll_id"`
|
||||
VoterChat Chat `json:"voter_chat"`
|
||||
User User `json:"user"`
|
||||
OptionIDs []int `json:"option_ids"`
|
||||
OptionPersistentIDs []string `json:"option_persistent_ids"`
|
||||
}
|
||||
|
||||
// Poll contains information about a poll.
|
||||
// See https://core.telegram.org/bots/api#poll
|
||||
type Poll struct {
|
||||
ID string `json:"id"`
|
||||
Question string `json:"question"`
|
||||
QuestionEntities []MessageEntity `json:"question_entities"`
|
||||
Options []PollOption `json:"options"`
|
||||
TotalVoterCount int `json:"total_voter_count"`
|
||||
IsClosed bool `json:"is_closed"`
|
||||
IsAnonymous bool `json:"is_anonymous"`
|
||||
Type PollType `json:"type"`
|
||||
|
||||
AllowsMultipleAnswers bool `json:"allows_multiple_answers"`
|
||||
AllowsRevoting bool `json:"allows_revoting"`
|
||||
CorrectOptionIDs []int `json:"correct_option_ids,omitempty"`
|
||||
Explanation string `json:"explanation,omitempty"`
|
||||
ExplanationEntities []MessageEntity `json:"explanation_entities,omitempty"`
|
||||
OpenPeriod int `json:"open_period,omitempty"`
|
||||
CloseDate int `json:"close_date,omitempty"`
|
||||
Description string `json:"description,omitempty"`
|
||||
DescriptionEntities []MessageEntity `json:"description_entities,omitempty"`
|
||||
}
|
||||
|
||||
type ChecklistTask struct {
|
||||
ID int `json:"id"`
|
||||
Text string `json:"text"`
|
||||
TextEntities []MessageEntity `json:"text_entities,omitempty"`
|
||||
CompletedByUser *User `json:"completed_by_user,omitempty"`
|
||||
CompletedByChat *Chat `json:"completed_by_chat,omitempty"`
|
||||
CompletionDate int `json:"completion_date,omitempty"`
|
||||
}
|
||||
|
||||
type Checklist struct {
|
||||
Title string `json:"title"`
|
||||
TitleEntities []MessageEntity `json:"title_entities,omitempty"`
|
||||
Tasks []ChecklistTask `json:"tasks"`
|
||||
OthersCanAddTasks bool `json:"others_can_add_tasks,omitempty"`
|
||||
OthersCanMarkTasksAsDone bool `json:"others_can_mark_tasks_as_done,omitempty"`
|
||||
}
|
||||
|
||||
// InputChecklistTask describes a task in a checklist.
|
||||
type InputChecklistTask struct {
|
||||
ID int `json:"id"`
|
||||
Text string `json:"text"`
|
||||
ParseMode ParseMode `json:"parse_mode,omitempty"`
|
||||
TextEntities []MessageEntity `json:"text_entities,omitempty"`
|
||||
}
|
||||
|
||||
// InputChecklist represents a checklist to be sent.
|
||||
type InputChecklist struct {
|
||||
Title string `json:"title"`
|
||||
ParseMode ParseMode `json:"parse_mode,omitempty"`
|
||||
TitleEntities []MessageEntity `json:"title_entities,omitempty"`
|
||||
Tasks []InputChecklistTask `json:"tasks"`
|
||||
OtherCanAddTasks bool `json:"other_can_add_tasks,omitempty"`
|
||||
OtherCanMarkTasksAsDone bool `json:"other_can_mark_tasks_as_done,omitempty"`
|
||||
}
|
||||
|
||||
type ChecklistTaskDone struct {
|
||||
ChecklistMessage *Message `json:"checklist_message,omitempty"`
|
||||
MarkedAsDoneTaskIDs []int `json:"marked_as_done_task_ids,omitempty"`
|
||||
MarkedAsNotDoneTaskIDs []int `json:"marked_as_not_done_task_ids,omitempty"`
|
||||
}
|
||||
|
||||
type ChecklistTasksAdded struct {
|
||||
ChecklistMessage *Message `json:"checklist_message,omitempty"`
|
||||
Tasks []ChecklistTask `json:"tasks"`
|
||||
}
|
||||
|
||||
// InputMediaType represents the type of input media.
|
||||
type InputMediaType string
|
||||
|
||||
|
||||
Reference in New Issue
Block a user