Documentation ¶
Index ¶
- func EndConversation() error
- func EndConversationToParentState(parentState *ConversationStateChange) error
- func NextConversationStateAndParentState(nextState string, parentState *ConversationStateChange) error
- func NextParentConversationState(parentState *ConversationStateChange) error
- type BusinessConnection
- type CallbackQuery
- type ChatJoinRequest
- type ChatMember
- type ChosenInlineResult
- type Command
- func (c Command) CheckUpdate(b *gotgbot.Bot, ctx *ext.Context) bool
- func (c Command) HandleUpdate(b *gotgbot.Bot, ctx *ext.Context) error
- func (c Command) Name() string
- func (c Command) SetAllowChannel(allow bool) Command
- func (c Command) SetAllowEdited(allow bool) Command
- func (c Command) SetTriggers(triggers []rune) Command
- type Conversation
- type ConversationFilter
- type ConversationOpts
- type ConversationStateChange
- type InlineQuery
- type Message
- func (m Message) CheckUpdate(b *gotgbot.Bot, ctx *ext.Context) bool
- func (m Message) HandleUpdate(b *gotgbot.Bot, ctx *ext.Context) error
- func (m Message) Name() string
- func (m Message) SetAllowBusiness(allow bool) Message
- func (m Message) SetAllowChannel(allow bool) Message
- func (m Message) SetAllowEdited(allow bool) Message
- type MyChatMember
- type Named
- type Poll
- type PollAnswer
- type PreCheckoutQuery
- type PurchasedPaidMedia
- type Reaction
- type Response
- type ShippingQuery
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func EndConversationToParentState ¶
func EndConversationToParentState(parentState *ConversationStateChange) error
EndConversationToParentState ends the current conversation and moves the parent conversation to the new state.
func NextConversationStateAndParentState ¶
func NextConversationStateAndParentState(nextState string, parentState *ConversationStateChange) error
NextConversationStateAndParentState moves both the current conversation state and the parent conversation state. Can be helpful in the case of certain circular conversations.
func NextParentConversationState ¶
func NextParentConversationState(parentState *ConversationStateChange) error
NextParentConversationState moves to the defined state in the parent conversation, without changing the state of the current one.
Types ¶
type BusinessConnection ¶
type BusinessConnection struct { Filter filters.BusinessConnection Response Response }
func (BusinessConnection) CheckUpdate ¶
func (bc BusinessConnection) CheckUpdate(b *gotgbot.Bot, ctx *ext.Context) bool
func (BusinessConnection) HandleUpdate ¶
func (bc BusinessConnection) HandleUpdate(b *gotgbot.Bot, ctx *ext.Context) error
func (BusinessConnection) Name ¶
func (bc BusinessConnection) Name() string
type CallbackQuery ¶
type CallbackQuery struct { AllowChannel bool Filter filters.CallbackQuery Response Response }
func NewCallback ¶
func NewCallback(filter filters.CallbackQuery, r Response) CallbackQuery
func (CallbackQuery) CheckUpdate ¶
func (cb CallbackQuery) CheckUpdate(b *gotgbot.Bot, ctx *ext.Context) bool
func (CallbackQuery) HandleUpdate ¶
func (cb CallbackQuery) HandleUpdate(b *gotgbot.Bot, ctx *ext.Context) error
func (CallbackQuery) Name ¶
func (cb CallbackQuery) Name() string
func (CallbackQuery) SetAllowChannel ¶
func (cb CallbackQuery) SetAllowChannel(allow bool) CallbackQuery
SetAllowChannel Enables channel messages for this handler.
type ChatJoinRequest ¶
type ChatJoinRequest struct { Filter filters.ChatJoinRequest Response Response }
func NewChatJoinRequest ¶
func NewChatJoinRequest(f filters.ChatJoinRequest, r Response) ChatJoinRequest
func (ChatJoinRequest) CheckUpdate ¶
func (r ChatJoinRequest) CheckUpdate(b *gotgbot.Bot, ctx *ext.Context) bool
func (ChatJoinRequest) HandleUpdate ¶
func (r ChatJoinRequest) HandleUpdate(b *gotgbot.Bot, ctx *ext.Context) error
func (ChatJoinRequest) Name ¶
func (r ChatJoinRequest) Name() string
type ChatMember ¶
type ChatMember struct { Response Response Filter filters.ChatMember }
func NewChatMember ¶
func NewChatMember(f filters.ChatMember, r Response) ChatMember
func (ChatMember) CheckUpdate ¶
func (c ChatMember) CheckUpdate(b *gotgbot.Bot, ctx *ext.Context) bool
func (ChatMember) HandleUpdate ¶
func (c ChatMember) HandleUpdate(b *gotgbot.Bot, ctx *ext.Context) error
func (ChatMember) Name ¶
func (c ChatMember) Name() string
type ChosenInlineResult ¶
type ChosenInlineResult struct { Filter filters.ChosenInlineResult Response Response }
func NewChosenInlineResult ¶
func NewChosenInlineResult(filter filters.ChosenInlineResult, r Response) ChosenInlineResult
func (ChosenInlineResult) CheckUpdate ¶
func (i ChosenInlineResult) CheckUpdate(b *gotgbot.Bot, ctx *ext.Context) bool
func (ChosenInlineResult) HandleUpdate ¶
func (i ChosenInlineResult) HandleUpdate(b *gotgbot.Bot, ctx *ext.Context) error
func (ChosenInlineResult) Name ¶
func (i ChosenInlineResult) Name() string
type Command ¶
type Command struct { Triggers []rune AllowEdited bool AllowChannel bool Command string // set to a lowercase value for case-insensitivity Response Response }
Command is the go-to handler for setting up Commands in your bot. By default, it will use telegram-native commands that start with a forward-slash (/), but it can be customised to react to any message starting with a character.
For example, a command handler on "help" with the triggers []rune("/!,") would trigger for "/help", "!help", or ",help".
func NewCommand ¶
NewCommand creates a new case-insensitive command. By default, commands do not work on edited messages, or channel posts. These can be enabled by setting the AllowEdited and AllowChannel fields respectively.
func (Command) SetAllowChannel ¶
SetAllowChannel Enables channel messages for this handler.
func (Command) SetAllowEdited ¶
SetAllowEdited Enables edited messages for this handler.
func (Command) SetTriggers ¶
SetTriggers sets the list of triggers to be used with this command.
type Conversation ¶
type Conversation struct { // EntryPoints is the list of handlers to start the conversation. EntryPoints []ext.Handler // States is the map of possible states, with a list of possible handlers for each one. States map[string][]ext.Handler // StateStorage is responsible for storing all running conversations. StateStorage conversation.Storage // The following are all optional fields: // Exits is the list of handlers to exit the current conversation partway (eg /cancel commands) Exits []ext.Handler // Fallbacks is the list of handlers to handle updates which haven't been matched by any states. Fallbacks []ext.Handler // If True, a user can restart the conversation by hitting one of the entry points. AllowReEntry bool // Filter allows users to set a conversation-wide filter to any incoming updates. This can be useful to only target // one specific chat, or to avoid unwanted updates which may interfere with the conversation key strategy // (eg polls). Filter ConversationFilter }
The Conversation handler is an advanced handler which allows for running a sequence of commands in a stateful manner. An example of this flow can be found at t.me/Botfather; upon receiving the "/newbot" command, the user is asked for the name of their bot, which is sent as a separate message.
The bot's internal state allows it to check at which point of the conversation the user is, and decide how to handle the next update.
func NewConversation ¶
func NewConversation(entryPoints []ext.Handler, states map[string][]ext.Handler, opts *ConversationOpts) Conversation
func (Conversation) CheckUpdate ¶
func (c Conversation) CheckUpdate(b *gotgbot.Bot, ctx *ext.Context) bool
func (Conversation) HandleUpdate ¶
func (c Conversation) HandleUpdate(b *gotgbot.Bot, ctx *ext.Context) error
func (Conversation) Name ¶
func (c Conversation) Name() string
type ConversationFilter ¶
ConversationFilter is much wider than regular filters, because it allows for any kind of update; we may want messages, commands, callbacks, etc.
type ConversationOpts ¶
type ConversationOpts struct { // Exits is the list of handlers to exit the current conversation partway (eg /cancel commands). This returns // EndConversation() by default, unless otherwise specified. Exits []ext.Handler // Fallbacks is the list of handlers to handle updates which haven't been matched by any other handlers. Fallbacks []ext.Handler // If True, a user can restart the conversation at any time by hitting one of the entry points again. AllowReEntry bool // StateStorage is responsible for storing all running conversations. StateStorage conversation.Storage // Filter allows users to set a conversation-wide filter to any incoming updates. This can be useful to only target // one specific chat, or to avoid unwanted updates which may interfere with the conversation key strategy // (eg polls). Filter ConversationFilter }
type ConversationStateChange ¶
type ConversationStateChange struct { // The next state to handle in the current conversation. NextState *string // End the current conversation End bool // Move the parent conversation (if any) to the desired state. ParentState *ConversationStateChange }
ConversationStateChange handles all the possible states that can be returned from a conversation.
func NextConversationState ¶
func NextConversationState(nextState string) *ConversationStateChange
NextConversationState moves to the defined state in the current conversation.
func (*ConversationStateChange) Error ¶
func (s *ConversationStateChange) Error() string
type InlineQuery ¶
type InlineQuery struct { Filter filters.InlineQuery Response Response }
func NewInlineQuery ¶
func NewInlineQuery(f filters.InlineQuery, r Response) InlineQuery
func (InlineQuery) CheckUpdate ¶
func (i InlineQuery) CheckUpdate(b *gotgbot.Bot, ctx *ext.Context) bool
func (InlineQuery) HandleUpdate ¶
func (i InlineQuery) HandleUpdate(b *gotgbot.Bot, ctx *ext.Context) error
func (InlineQuery) Name ¶
func (i InlineQuery) Name() string
type Message ¶
type Message struct { AllowEdited bool AllowChannel bool AllowBusiness bool Filter filters.Message Response Response }
func (Message) SetAllowBusiness ¶
SetAllowBusiness Enables business messages for this handler.
func (Message) SetAllowChannel ¶
SetAllowChannel Enables channel messages for this handler.
func (Message) SetAllowEdited ¶
SetAllowEdited Enables edited messages for this handler.
type MyChatMember ¶
type MyChatMember struct { Response Response Filter filters.ChatMember }
func NewMyChatMember ¶
func NewMyChatMember(f filters.ChatMember, r Response) MyChatMember
func (MyChatMember) CheckUpdate ¶
func (m MyChatMember) CheckUpdate(b *gotgbot.Bot, ctx *ext.Context) bool
func (MyChatMember) HandleUpdate ¶
func (m MyChatMember) HandleUpdate(b *gotgbot.Bot, ctx *ext.Context) error
func (MyChatMember) Name ¶
func (m MyChatMember) Name() string
type Named ¶
type PollAnswer ¶
type PollAnswer struct { Filter filters.PollAnswer Response Response }
func NewPollAnswer ¶
func NewPollAnswer(f filters.PollAnswer, r Response) PollAnswer
func (PollAnswer) CheckUpdate ¶
func (r PollAnswer) CheckUpdate(b *gotgbot.Bot, ctx *ext.Context) bool
func (PollAnswer) HandleUpdate ¶
func (r PollAnswer) HandleUpdate(b *gotgbot.Bot, ctx *ext.Context) error
func (PollAnswer) Name ¶
func (r PollAnswer) Name() string
type PreCheckoutQuery ¶
type PreCheckoutQuery struct { Filter filters.PreCheckoutQuery Response Response }
func NewPreCheckoutQuery ¶
func NewPreCheckoutQuery(f filters.PreCheckoutQuery, r Response) PreCheckoutQuery
func (PreCheckoutQuery) CheckUpdate ¶
func (r PreCheckoutQuery) CheckUpdate(b *gotgbot.Bot, ctx *ext.Context) bool
func (PreCheckoutQuery) HandleUpdate ¶
func (r PreCheckoutQuery) HandleUpdate(b *gotgbot.Bot, ctx *ext.Context) error
func (PreCheckoutQuery) Name ¶
func (r PreCheckoutQuery) Name() string
type PurchasedPaidMedia ¶
type PurchasedPaidMedia struct { Filter filters.PurchasedPaidMedia Response Response }
func NewPurchasedPaidMedia ¶
func NewPurchasedPaidMedia(f filters.PurchasedPaidMedia, r Response) PurchasedPaidMedia
func (PurchasedPaidMedia) CheckUpdate ¶
func (r PurchasedPaidMedia) CheckUpdate(b *gotgbot.Bot, ctx *ext.Context) bool
func (PurchasedPaidMedia) HandleUpdate ¶
func (r PurchasedPaidMedia) HandleUpdate(b *gotgbot.Bot, ctx *ext.Context) error
func (PurchasedPaidMedia) Name ¶
func (r PurchasedPaidMedia) Name() string
type Reaction ¶
func (Reaction) HandleUpdate ¶
type ShippingQuery ¶
type ShippingQuery struct { Filter filters.ShippingQuery Response Response }
func NewShippingQuery ¶
func NewShippingQuery(f filters.ShippingQuery, r Response) ShippingQuery
func (ShippingQuery) CheckUpdate ¶
func (r ShippingQuery) CheckUpdate(b *gotgbot.Bot, ctx *ext.Context) bool
func (ShippingQuery) HandleUpdate ¶
func (r ShippingQuery) HandleUpdate(b *gotgbot.Bot, ctx *ext.Context) error
func (ShippingQuery) Name ¶
func (r ShippingQuery) Name() string