(new): support Bot API 10.3
Golang lint / lint (push) Failing after 1m37s

(fix): finalize v2 contracts
(tests): cover v2 migration
(doc): prepare release guidance
This commit is contained in:
2026-09-08 23:21:38 +03:00
parent 24040fe164
commit d78526242b
88 changed files with 2321 additions and 918 deletions
+6 -30
View File
@@ -355,44 +355,22 @@ const (
// PollAnswer represents an answer submitted by a poll voter.
//
// User and VoterChat remain value fields for v1 compatibility. Their pointer
// representation is subject to change in v2; use VoterUser and VoterChatInfo
// when presence matters.
// Exactly one of User and VoterChat is present.
// Since: Bot API 4.6
// See https://core.telegram.org/bots/api#pollanswer
type PollAnswer struct {
// PollID identifies the poll.
PollID string `json:"poll_id"`
// VoterChat is the chat that changed the answer, when the voter is anonymous.
VoterChat Chat `json:"voter_chat,omitempty"` // Since: Bot API 6.8
VoterChat *Chat `json:"voter_chat,omitempty"` // Since: Bot API 6.8
// User is the user that changed the answer, when the voter is not anonymous.
User User `json:"user,omitempty"`
User *User `json:"user,omitempty"`
// OptionIDs contains the chosen option indices and is empty for a retracted vote.
OptionIDs []int `json:"option_ids"`
// OptionPersistentIDs contains the persistent identifiers of the chosen options.
OptionPersistentIDs []string `json:"option_persistent_ids"` // Since: Bot API 9.6
}
// VoterUser returns the non-anonymous voter when it is present.
//
// Since: Bot API 4.6
func (a PollAnswer) VoterUser() (*User, bool) {
if a.User.ID == 0 {
return nil, false
}
return &a.User, true
}
// VoterChatInfo returns the anonymous voter chat when it is present.
//
// Since: Bot API 6.8
func (a PollAnswer) VoterChatInfo() (*Chat, bool) {
if a.VoterChat.ID == 0 {
return nil, false
}
return &a.VoterChat, true
}
// Poll contains information about a poll.
// Since: Bot API 4.2
// See https://core.telegram.org/bots/api#poll
@@ -549,13 +527,11 @@ type InputChecklist struct {
TitleEntities []MessageEntity `json:"title_entities,omitempty"`
// Tasks List of 1-30 tasks in the checklist
Tasks []InputChecklistTask `json:"tasks"`
// OtherCanAddTasks Optional. Pass True if other users can add tasks to the checklist
// Subject to change in v2: the Go field name may be corrected to OthersCanAddTasks.
OtherCanAddTasks bool `json:"others_can_add_tasks,omitempty"`
// OthersCanAddTasks Optional. Pass True if other users can add tasks to the checklist
OthersCanAddTasks bool `json:"others_can_add_tasks,omitempty"`
// OtherCanMarkTasksAsDone Optional. Pass True if other users can mark tasks as done or not done in the
// checklist
// Subject to change in v2: the Go field name may be corrected to OthersCanMarkTasksAsDone.
OtherCanMarkTasksAsDone bool `json:"others_can_mark_tasks_as_done,omitempty"`
OthersCanMarkTasksAsDone bool `json:"others_can_mark_tasks_as_done,omitempty"`
}
// ChecklistTaskDone describes a service message about checklist tasks being marked as done.