Documentation ¶
Index ¶
- Constants
- Variables
- func Start(client *tgbotapi.TelegramBot, processor Processor)
- type Action
- type ActionBuilder
- func (b *ActionBuilder) AddConditionalRawButton(cond func(update *StateUpdate) bool, button TextBuilder, ...) *ActionBuilder
- func (b *ActionBuilder) AddConditionalTextButton(cond func(update *StateUpdate) bool, button TextBuilder, text TextBuilder, ...) *ActionBuilder
- func (b *ActionBuilder) AddCustomButton(action Action) *ActionBuilder
- func (b *ActionBuilder) AddCustomCommand(action Action) *ActionBuilder
- func (b *ActionBuilder) AddInlineMenuButton(button TextBuilder, inlineMenu string, opts ...*ButtonOptions) *ActionBuilder
- func (b *ActionBuilder) AddInlineMenuCommand(command TextBuilder, inlineMenu string) *ActionBuilder
- func (b *ActionBuilder) AddRawButton(button TextBuilder, opts ...*ButtonOptions) *ActionBuilder
- func (b *ActionBuilder) AddStateButton(button TextBuilder, state string, opts ...*ButtonOptions) *ActionBuilder
- func (b *ActionBuilder) AddStateButtonWithHook(button TextBuilder, state string, hook UpdateHandler, opts ...*ButtonOptions) *ActionBuilder
- func (b *ActionBuilder) AddStateCommand(command TextBuilder, state string) *ActionBuilder
- func (b *ActionBuilder) AddTextButton(button TextBuilder, text TextBuilder, opts ...*ButtonOptions) *ActionBuilder
- func (b *ActionBuilder) AddTextCommand(command TextBuilder, text string) *ActionBuilder
- func (b *ActionBuilder) SetButtonFormation(formation ...int) *ActionBuilder
- func (b *ActionBuilder) SetMaxButtonPerRow(max int) *ActionBuilder
- type ActionBuilderKind
- type ActionKind
- type ButtonOptions
- type CallbackHandler
- type DefaultUserLanguageRepository
- type DeferredActionBuilder
- type DeferredInlineActionBuilder
- type DeferredTextBuilder
- type DynamicHandler
- type DynamicHandlerAudio
- type DynamicHandlerContact
- type DynamicHandlerDice
- type DynamicHandlerDocument
- type DynamicHandlerLocation
- type DynamicHandlerPhoto
- type DynamicHandlerPoll
- type DynamicHandlerSticker
- type DynamicHandlerText
- type DynamicHandlerVenue
- type DynamicHandlerVideo
- type DynamicHandlerVideoNote
- type DynamicHandlerVoice
- type EngineWithPrivateStateHandlers
- func (e *EngineWithPrivateStateHandlers) AddCallbackQueryHandler(data string, ...) *EngineWithPrivateStateHandlers
- func (e *EngineWithPrivateStateHandlers) AddInlineMenu(name string, handler *InlineMenu) *EngineWithPrivateStateHandlers
- func (e *EngineWithPrivateStateHandlers) AddMiddleware(middleware UpdateHandler) *EngineWithPrivateStateHandlers
- func (e *EngineWithPrivateStateHandlers) AddStaticMenu(state string, handler *StaticMenu) *EngineWithPrivateStateHandlers
- func (e *EngineWithPrivateStateHandlers) Process(client *tgbotapi.TelegramBot, update tgbotapi.Update)
- func (e *EngineWithPrivateStateHandlers) SendInlineMenu(client *tgbotapi.TelegramBot, update *StateUpdate, menu string, ...) error
- func (e *EngineWithPrivateStateHandlers) SwitchState(userID int64, client *tgbotapi.TelegramBot, update *StateUpdate, state string) error
- func (e *EngineWithPrivateStateHandlers) SwitchUserState(client *tgbotapi.TelegramBot, userID int64, state string) error
- func (e *EngineWithPrivateStateHandlers) WithLanguageConfig(cfg *LanguageConfig) *EngineWithPrivateStateHandlers
- func (e *EngineWithPrivateStateHandlers) WithPanicHandler(handler PanicHandler) *EngineWithPrivateStateHandlers
- type Handler
- func NewDefaultHandler(handler UpdateHandler) Handler
- func NewDynamicHandlerAudio(handler UpdateHandler) Handler
- func NewDynamicHandlerContact(handler UpdateHandler) Handler
- func NewDynamicHandlerDice(handler UpdateHandler) Handler
- func NewDynamicHandlerDocument(handler UpdateHandler) Handler
- func NewDynamicHandlerLocation(handler UpdateHandler) Handler
- func NewDynamicHandlerPhoto(handler UpdateHandler) Handler
- func NewDynamicHandlerPoll(handler UpdateHandler) Handler
- func NewDynamicHandlerSticker(handler UpdateHandler) Handler
- func NewDynamicHandlerText(handler UpdateHandler) Handler
- func NewDynamicHandlerVenue(handler UpdateHandler) Handler
- func NewDynamicHandlerVideo(handler UpdateHandler) Handler
- func NewDynamicHandlerVideoNote(handler UpdateHandler) Handler
- func NewDynamicHandlerVoice(handler UpdateHandler) Handler
- type InlineAction
- type InlineActionBuilder
- func (b *InlineActionBuilder) AddAlertButton(button TextBuilder, data TextBuilder, alertText string, opts ...*ButtonOptions) *InlineActionBuilder
- func (b *InlineActionBuilder) AddAlertButtonWithDialog(button TextBuilder, data TextBuilder, alertText string, opts ...*ButtonOptions) *InlineActionBuilder
- func (b *InlineActionBuilder) AddCallbackButton(button TextBuilder, data TextBuilder, handler CallbackHandler, ...) *InlineActionBuilder
- func (b *InlineActionBuilder) AddInlineMenuButton(button TextBuilder, data TextBuilder, inlineMenu string, ...) *InlineActionBuilder
- func (b *InlineActionBuilder) AddInlineMenuButtonWithEdit(button TextBuilder, data TextBuilder, inlineMenu string, ...) *InlineActionBuilder
- func (b *InlineActionBuilder) AddStateButton(button TextBuilder, data TextBuilder, state string, opts ...*ButtonOptions) *InlineActionBuilder
- func (b *InlineActionBuilder) AddUrlButton(button, address TextBuilder, opts ...*ButtonOptions) *InlineActionBuilder
- func (b *InlineActionBuilder) Build(_ *StateUpdate) *InlineActionBuilder
- func (b *InlineActionBuilder) SetButtonFormation(formation ...int) *InlineActionBuilder
- func (b *InlineActionBuilder) SetMaxButtonPerRow(max int) *InlineActionBuilder
- type InlineActionBuilderKind
- type InlineMenu
- type Language
- type LanguageConfig
- type LanguageKeyTextBuilder
- type LanguageKeyWithParamsTextBuilder
- type Languages
- type LanguagesBuilder
- type Middleware
- type Options
- type PanicHandler
- type Processor
- type StateUpdate
- type StaticMenu
- type StaticMenuMiddleware
- type StaticTextBuilder
- type SwitchAction
- type SwitchActionInlineMenu
- type SwitchActionState
- type TextBuilder
- type TextBuilderF
- type UpdateHandler
- type UpdateKeyTextBuilder
- type UserI
- type UserLanguageRepository
- type UserRepository
Constants ¶
const ( DefaultHandler = "DEFAULT" TextHandler = "TEXT" PhotoHandler = "PHOTO" AudioHandler = "AUDIO" DocumentHandler = "DOCUMENT" StickerHandler = "STICKER" VideoHandler = "VIDEO" VoiceHandler = "VOICE" LocationHandler = "LOCATION" ContactHandler = "CONTACT" VideoNoteHandler = "VIDEO_NOTE" VenueHandler = "VENUE" PollHandler = "POLL" DiceHandler = "DICE" )
Variables ¶
var UserLanguageNotFoundErr = errors.New("user_language_not_found")
Functions ¶
func Start ¶
func Start(client *tgbotapi.TelegramBot, processor Processor)
Types ¶
type Action ¶
type Action interface {
Name(update *StateUpdate) string
}
type ActionBuilder ¶
type ActionBuilder struct {
// contains filtered or unexported fields
}
func NewStaticActionBuilder ¶
func NewStaticActionBuilder() *ActionBuilder
NewStaticActionBuilder creates a new ActionBuilder.
func (*ActionBuilder) AddConditionalRawButton ¶ added in v0.0.97
func (b *ActionBuilder) AddConditionalRawButton( cond func(update *StateUpdate) bool, button TextBuilder, opts ...*ButtonOptions, ) *ActionBuilder
AddConditionalRawButton adds a raw button to the ActionBuilder with a condition.
func (*ActionBuilder) AddConditionalTextButton ¶ added in v0.0.96
func (b *ActionBuilder) AddConditionalTextButton( cond func(update *StateUpdate) bool, button TextBuilder, text TextBuilder, opts ...*ButtonOptions, ) *ActionBuilder
AddConditionalTextButton adds a textHandler action to the ActionBuilder with a condition.
func (*ActionBuilder) AddCustomButton ¶
func (b *ActionBuilder) AddCustomButton(action Action) *ActionBuilder
AddCustomButton adds a custom action of button type to the ActionBuilder.
func (*ActionBuilder) AddCustomCommand ¶
func (b *ActionBuilder) AddCustomCommand(action Action) *ActionBuilder
AddCustomCommand adds a custom action of command type to the ActionBuilder.
func (*ActionBuilder) AddInlineMenuButton ¶
func (b *ActionBuilder) AddInlineMenuButton( button TextBuilder, inlineMenu string, opts ...*ButtonOptions, ) *ActionBuilder
AddInlineMenuButton adds an inline menu action to the ActionBuilder.
func (*ActionBuilder) AddInlineMenuCommand ¶
func (b *ActionBuilder) AddInlineMenuCommand(command TextBuilder, inlineMenu string) *ActionBuilder
AddInlineMenuCommand adds an inline menu command to the ActionBuilder.
func (*ActionBuilder) AddRawButton ¶
func (b *ActionBuilder) AddRawButton(button TextBuilder, opts ...*ButtonOptions) *ActionBuilder
AddRawButton adds a raw button to the ActionBuilder.
func (*ActionBuilder) AddStateButton ¶
func (b *ActionBuilder) AddStateButton(button TextBuilder, state string, opts ...*ButtonOptions) *ActionBuilder
AddStateButton adds a state action to the ActionBuilder.
func (*ActionBuilder) AddStateButtonWithHook ¶ added in v0.0.89
func (b *ActionBuilder) AddStateButtonWithHook( button TextBuilder, state string, hook UpdateHandler, opts ...*ButtonOptions, ) *ActionBuilder
AddStateButtonWithHook adds a state action to the ActionBuilder with hook.
func (*ActionBuilder) AddStateCommand ¶
func (b *ActionBuilder) AddStateCommand(command TextBuilder, state string) *ActionBuilder
AddStateCommand adds a state command to the ActionBuilder.
func (*ActionBuilder) AddTextButton ¶
func (b *ActionBuilder) AddTextButton(button TextBuilder, text TextBuilder, opts ...*ButtonOptions) *ActionBuilder
AddTextButton adds a textHandler action to the ActionBuilder.
func (*ActionBuilder) AddTextCommand ¶
func (b *ActionBuilder) AddTextCommand(command TextBuilder, text string) *ActionBuilder
AddTextCommand adds a textHandler command to the ActionBuilder.
func (*ActionBuilder) SetButtonFormation ¶
func (b *ActionBuilder) SetButtonFormation(formation ...int) *ActionBuilder
func (*ActionBuilder) SetMaxButtonPerRow ¶
func (b *ActionBuilder) SetMaxButtonPerRow(max int) *ActionBuilder
SetMaxButtonPerRow sets the maximum number of buttons per row.
type ActionBuilderKind ¶
type ActionBuilderKind interface {
// contains filtered or unexported methods
}
type ActionKind ¶
type ActionKind string
const ( ActionKindText ActionKind = "TEXT" ActionKindInlineMenu ActionKind = "INLINE_MENU" ActionKindState ActionKind = "STATE" ActionKindRaw ActionKind = "RAW" )
type ButtonOptions ¶
type ButtonOptions struct {
// contains filtered or unexported fields
}
func NewButtonOptions ¶
func NewButtonOptions(breakBefore, BreakAfter bool) *ButtonOptions
NewButtonOptions creates a new ButtonOptions.
type CallbackHandler ¶
type CallbackHandler func( client *tgbotapi.TelegramBot, update *StateUpdate, args ...string, ) (SwitchAction, error)
type DefaultUserLanguageRepository ¶
type DefaultUserLanguageRepository struct {
// contains filtered or unexported fields
}
DefaultUserLanguageRepository is a default implementation of UserLanguageRepository.
func (*DefaultUserLanguageRepository) GetUserLanguage ¶
func (u *DefaultUserLanguageRepository) GetUserLanguage(userID int64) (string, error)
GetUserLanguage gets a language for a user.
func (*DefaultUserLanguageRepository) SetUserLanguage ¶
func (u *DefaultUserLanguageRepository) SetUserLanguage(userID int64, languageTag string) error
SetUserLanguage sets a language for a user.
type DeferredActionBuilder ¶
type DeferredActionBuilder func(update *StateUpdate) *ActionBuilder
func NewDeferredActionBuilder ¶
func NewDeferredActionBuilder( builder func(update *StateUpdate) *ActionBuilder, ) DeferredActionBuilder
NewDeferredActionBuilder creates a new DeferredActionBuilder.
type DeferredInlineActionBuilder ¶
type DeferredInlineActionBuilder func(update *StateUpdate) *InlineActionBuilder
func NewDeferredInlineActionBuilder ¶
func NewDeferredInlineActionBuilder(builder func(update *StateUpdate) *InlineActionBuilder) DeferredInlineActionBuilder
NewDeferredInlineActionBuilder creates a new DeferredInlineActionBuilder.
func (DeferredInlineActionBuilder) Build ¶
func (d DeferredInlineActionBuilder) Build(update *StateUpdate) *InlineActionBuilder
Build builds the deferred action builder.
type DeferredTextBuilder ¶
type DeferredTextBuilder func(update *StateUpdate) string
func NewDeferredText ¶
func NewDeferredText(text func(update *StateUpdate) string) DeferredTextBuilder
NewDeferredText returns a new DeferredTextBuilder
func (DeferredTextBuilder) String ¶
func (t DeferredTextBuilder) String(update *StateUpdate) string
type DynamicHandler ¶
type DynamicHandler struct {
UpdateHandler
}
type DynamicHandlerAudio ¶
type DynamicHandlerAudio struct {
UpdateHandler
}
type DynamicHandlerContact ¶
type DynamicHandlerContact struct {
UpdateHandler
}
type DynamicHandlerDice ¶
type DynamicHandlerDice struct {
UpdateHandler
}
type DynamicHandlerDocument ¶
type DynamicHandlerDocument struct {
UpdateHandler
}
type DynamicHandlerLocation ¶
type DynamicHandlerLocation struct {
UpdateHandler
}
type DynamicHandlerPhoto ¶
type DynamicHandlerPhoto struct {
UpdateHandler
}
type DynamicHandlerPoll ¶
type DynamicHandlerPoll struct {
UpdateHandler
}
type DynamicHandlerSticker ¶
type DynamicHandlerSticker struct {
UpdateHandler
}
type DynamicHandlerText ¶
type DynamicHandlerText struct {
UpdateHandler
}
type DynamicHandlerVenue ¶
type DynamicHandlerVenue struct {
UpdateHandler
}
type DynamicHandlerVideo ¶
type DynamicHandlerVideo struct {
UpdateHandler
}
type DynamicHandlerVideoNote ¶
type DynamicHandlerVideoNote struct {
UpdateHandler
}
type DynamicHandlerVoice ¶
type DynamicHandlerVoice struct {
UpdateHandler
}
type EngineWithPrivateStateHandlers ¶
type EngineWithPrivateStateHandlers struct {
// contains filtered or unexported fields
}
func WithPrivateStateHandlers ¶
func WithPrivateStateHandlers( userRepo UserRepository, defaultState string, opts ...*Options) *EngineWithPrivateStateHandlers
func (*EngineWithPrivateStateHandlers) AddCallbackQueryHandler ¶
func (e *EngineWithPrivateStateHandlers) AddCallbackQueryHandler( data string, fn func(*tgbotapi.TelegramBot, *StateUpdate, ...string) (SwitchAction, error), ) *EngineWithPrivateStateHandlers
AddCallbackQueryHandler adds a callback query Handler
func (*EngineWithPrivateStateHandlers) AddInlineMenu ¶
func (e *EngineWithPrivateStateHandlers) AddInlineMenu( name string, handler *InlineMenu) *EngineWithPrivateStateHandlers
AddInlineMenu adds an inline state Handler
func (*EngineWithPrivateStateHandlers) AddMiddleware ¶
func (e *EngineWithPrivateStateHandlers) AddMiddleware( middleware UpdateHandler) *EngineWithPrivateStateHandlers
func (*EngineWithPrivateStateHandlers) AddStaticMenu ¶
func (e *EngineWithPrivateStateHandlers) AddStaticMenu( state string, handler *StaticMenu) *EngineWithPrivateStateHandlers
AddStaticMenu adds a static state Handler
func (*EngineWithPrivateStateHandlers) Process ¶
func (e *EngineWithPrivateStateHandlers) Process(client *tgbotapi.TelegramBot, update tgbotapi.Update)
func (*EngineWithPrivateStateHandlers) SendInlineMenu ¶
func (e *EngineWithPrivateStateHandlers) SendInlineMenu( client *tgbotapi.TelegramBot, update *StateUpdate, menu string, shouldEdit bool) error
func (*EngineWithPrivateStateHandlers) SwitchState ¶
func (e *EngineWithPrivateStateHandlers) SwitchState( userID int64, client *tgbotapi.TelegramBot, update *StateUpdate, state string) error
func (*EngineWithPrivateStateHandlers) SwitchUserState ¶
func (e *EngineWithPrivateStateHandlers) SwitchUserState( client *tgbotapi.TelegramBot, userID int64, state string) error
func (*EngineWithPrivateStateHandlers) WithLanguageConfig ¶
func (e *EngineWithPrivateStateHandlers) WithLanguageConfig( cfg *LanguageConfig) *EngineWithPrivateStateHandlers
WithLanguageConfig adds a language config to the engine
func (*EngineWithPrivateStateHandlers) WithPanicHandler ¶ added in v0.0.77
func (e *EngineWithPrivateStateHandlers) WithPanicHandler( handler PanicHandler, ) *EngineWithPrivateStateHandlers
type Handler ¶
type Handler interface {
Handle(client *tgbotapi.TelegramBot, update *StateUpdate) (SwitchAction, bool)
}
func NewDefaultHandler ¶
func NewDefaultHandler(handler UpdateHandler) Handler
NewDefaultHandler creates a new DefaultHandler
func NewDynamicHandlerAudio ¶
func NewDynamicHandlerAudio(handler UpdateHandler) Handler
NewDynamicHandlerAudio creates a new DynamicHandlerAudio
func NewDynamicHandlerContact ¶
func NewDynamicHandlerContact(handler UpdateHandler) Handler
NewDynamicHandlerContact creates a new DynamicHandlerContact
func NewDynamicHandlerDice ¶
func NewDynamicHandlerDice(handler UpdateHandler) Handler
NewDynamicHandlerDice creates a new DynamicHandlerDice
func NewDynamicHandlerDocument ¶
func NewDynamicHandlerDocument(handler UpdateHandler) Handler
NewDynamicHandlerDocument creates a new DynamicHandlerDocument
func NewDynamicHandlerLocation ¶
func NewDynamicHandlerLocation(handler UpdateHandler) Handler
NewDynamicHandlerLocation creates a new DynamicHandlerLocation
func NewDynamicHandlerPhoto ¶
func NewDynamicHandlerPhoto(handler UpdateHandler) Handler
NewDynamicHandlerPhoto creates a new DynamicHandlerPhoto
func NewDynamicHandlerPoll ¶
func NewDynamicHandlerPoll(handler UpdateHandler) Handler
NewDynamicHandlerPoll creates a new DynamicHandlerPoll
func NewDynamicHandlerSticker ¶
func NewDynamicHandlerSticker(handler UpdateHandler) Handler
NewDynamicHandlerSticker creates a new DynamicHandlerSticker
func NewDynamicHandlerText ¶
func NewDynamicHandlerText(handler UpdateHandler) Handler
NewDynamicHandlerText creates a new DynamicHandlerText
func NewDynamicHandlerVenue ¶
func NewDynamicHandlerVenue(handler UpdateHandler) Handler
NewDynamicHandlerVenue creates a new DynamicHandlerVenue
func NewDynamicHandlerVideo ¶
func NewDynamicHandlerVideo(handler UpdateHandler) Handler
NewDynamicHandlerVideo creates a new DynamicHandlerVideo
func NewDynamicHandlerVideoNote ¶
func NewDynamicHandlerVideoNote(handler UpdateHandler) Handler
NewDynamicHandlerVideoNote creates a new DynamicHandlerVideoNote
func NewDynamicHandlerVoice ¶
func NewDynamicHandlerVoice(handler UpdateHandler) Handler
NewDynamicHandlerVoice creates a new DynamicHandlerVoice
type InlineAction ¶
type InlineAction interface { Name(update *StateUpdate) string Data(update *StateUpdate) string Options() *ButtonOptions }
type InlineActionBuilder ¶
type InlineActionBuilder struct {
// contains filtered or unexported fields
}
func NewInlineActionBuilder ¶
func NewInlineActionBuilder() *InlineActionBuilder
NewInlineActionBuilder creates a new InlineActionBuilder.
func (*InlineActionBuilder) AddAlertButton ¶
func (b *InlineActionBuilder) AddAlertButton( button TextBuilder, data TextBuilder, alertText string, opts ...*ButtonOptions) *InlineActionBuilder
func (*InlineActionBuilder) AddAlertButtonWithDialog ¶
func (b *InlineActionBuilder) AddAlertButtonWithDialog( button TextBuilder, data TextBuilder, alertText string, opts ...*ButtonOptions) *InlineActionBuilder
func (*InlineActionBuilder) AddCallbackButton ¶
func (b *InlineActionBuilder) AddCallbackButton( button TextBuilder, data TextBuilder, handler CallbackHandler, opts ...*ButtonOptions, ) *InlineActionBuilder
func (*InlineActionBuilder) AddInlineMenuButton ¶
func (b *InlineActionBuilder) AddInlineMenuButton( button TextBuilder, data TextBuilder, inlineMenu string, opts ...*ButtonOptions) *InlineActionBuilder
func (*InlineActionBuilder) AddInlineMenuButtonWithEdit ¶
func (b *InlineActionBuilder) AddInlineMenuButtonWithEdit( button TextBuilder, data TextBuilder, inlineMenu string, opts ...*ButtonOptions) *InlineActionBuilder
func (*InlineActionBuilder) AddStateButton ¶
func (b *InlineActionBuilder) AddStateButton( button TextBuilder, data TextBuilder, state string, opts ...*ButtonOptions, ) *InlineActionBuilder
func (*InlineActionBuilder) AddUrlButton ¶
func (b *InlineActionBuilder) AddUrlButton( button, address TextBuilder, opts ...*ButtonOptions) *InlineActionBuilder
AddUrlButton adds a new url button to the InlineActionBuilder.
func (*InlineActionBuilder) Build ¶
func (b *InlineActionBuilder) Build(_ *StateUpdate) *InlineActionBuilder
func (*InlineActionBuilder) SetButtonFormation ¶
func (b *InlineActionBuilder) SetButtonFormation(formation ...int) *InlineActionBuilder
func (*InlineActionBuilder) SetMaxButtonPerRow ¶
func (b *InlineActionBuilder) SetMaxButtonPerRow(max int) *InlineActionBuilder
SetMaxButtonPerRow sets the maximum number of buttons per row.
type InlineActionBuilderKind ¶
type InlineActionBuilderKind interface {
Build(update *StateUpdate) *InlineActionBuilder
}
type InlineMenu ¶
type InlineMenu struct {
// contains filtered or unexported fields
}
func NewInlineMenu ¶
func NewInlineMenu( textBuilder TextBuilder, actionBuilder InlineActionBuilderKind, middlewares ...Middleware, ) *InlineMenu
type Language ¶
type Language struct {
// contains filtered or unexported fields
}
func (*Language) GetWithParams ¶
GetWithParams returns the localized string for the given message ID and parameters.
type LanguageConfig ¶
type LanguageConfig struct {
// contains filtered or unexported fields
}
func NewLanguageConfig ¶
func NewLanguageConfig(languages *Languages, repo UserLanguageRepository) *LanguageConfig
func (*LanguageConfig) GetLanguage ¶ added in v0.0.86
func (l *LanguageConfig) GetLanguage(tag string) *Language
GetLanguage By Tag
func (*LanguageConfig) WithChangeLanguageMenu ¶
func (l *LanguageConfig) WithChangeLanguageMenu(state string, forceChooseLanguage bool) *LanguageConfig
WithChangeLanguageMenu sets the change language menu state.
func (*LanguageConfig) WithReverseButtonOrderInRowForRTL ¶ added in v0.0.91
func (l *LanguageConfig) WithReverseButtonOrderInRowForRTL() *LanguageConfig
WithReverseButtonOrderInRowForRTL sets the reverse button order in row for RTL languages.
type LanguageKeyTextBuilder ¶
type LanguageKeyTextBuilder string
func NewLanguageKeyText ¶
func NewLanguageKeyText(key string) LanguageKeyTextBuilder
NewLanguageKeyText returns a new LanguageKeyTextBuilder
func (LanguageKeyTextBuilder) String ¶
func (t LanguageKeyTextBuilder) String(update *StateUpdate) string
type LanguageKeyWithParamsTextBuilder ¶ added in v0.0.73
type LanguageKeyWithParamsTextBuilder struct {
// contains filtered or unexported fields
}
func NewLanguageKeyWithParamsText ¶ added in v0.0.73
func NewLanguageKeyWithParamsText(key string, params map[string]interface{}) LanguageKeyWithParamsTextBuilder
NewLanguageKeyWithParamsText returns a new LanguageKeyWithParamsTextBuilder
func (LanguageKeyWithParamsTextBuilder) String ¶ added in v0.0.73
func (t LanguageKeyWithParamsTextBuilder) String(update *StateUpdate) string
type LanguagesBuilder ¶
type LanguagesBuilder struct {
// contains filtered or unexported fields
}
func NewLanguageBuilder ¶
func NewLanguageBuilder(defaultBundle language.Tag, rtlLanguageTags ...language.Tag) *LanguagesBuilder
func (*LanguagesBuilder) Build ¶
func (lb *LanguagesBuilder) Build() (*Languages, error)
Build builds the bundle.
func (*LanguagesBuilder) RegisterTomlFormat ¶
func (lb *LanguagesBuilder) RegisterTomlFormat(tomlFilePaths []string) *LanguagesBuilder
RegisterTomlFormat registers the TOML format for the bundle.
type Middleware ¶
type Middleware struct {
UpdateHandler
}
func NewMiddleware ¶
func NewMiddleware(handler UpdateHandler) Middleware
NewMiddleware returns a new Middleware that calls Handler.
type PanicHandler ¶ added in v0.0.77
type PanicHandler func( client *tgbotapi.TelegramBot, update tgbotapi.Update, err interface{}, trace string, )
type Processor ¶
type Processor interface { Process(client *tgbotapi.TelegramBot, update tgbotapi.Update) // contains filtered or unexported methods }
type StateUpdate ¶
type StateUpdate struct { State string Update tgbotapi.Update IsSwitched bool // contains filtered or unexported fields }
func (*StateUpdate) Get ¶
func (s *StateUpdate) Get(key interface{}) interface{}
Get gets a value from the context.
func (*StateUpdate) Language ¶
func (s *StateUpdate) Language() *Language
func (*StateUpdate) Set ¶
func (s *StateUpdate) Set(key, value interface{})
Set sets a value for the context.
func (*StateUpdate) SetLanguage ¶
func (s *StateUpdate) SetLanguage(language *Language)
SetLanguage sets the language for the user.
type StaticMenu ¶
type StaticMenu struct {
// contains filtered or unexported fields
}
StaticMenu is a Handler that receives predefined handlers and acts accordingly.
func NewStaticMenu ¶
func NewStaticMenu( text TextBuilder, builder ActionBuilderKind, middlewaresAndDynamicHandlers ...Handler) *StaticMenu
NewStaticMenu creates a new StaticMenu with the given text and action builder.
type StaticMenuMiddleware ¶
type StaticMenuMiddleware func(*tgbotapi.TelegramBot, *StateUpdate) (SwitchAction, bool)
type StaticTextBuilder ¶
type StaticTextBuilder string
func NewStaticText ¶
func NewStaticText(text string) StaticTextBuilder
NewStaticText returns a new StaticTextBuilder
func (StaticTextBuilder) String ¶
func (t StaticTextBuilder) String(_ *StateUpdate) string
type SwitchAction ¶
type SwitchAction interface {
// contains filtered or unexported methods
}
type SwitchActionInlineMenu ¶
type SwitchActionInlineMenu struct {
// contains filtered or unexported fields
}
func NewSwitchActionInlineMenu ¶
func NewSwitchActionInlineMenu(targetInlineMenu string, edit bool) *SwitchActionInlineMenu
NewSwitchActionInlineMenu creates a new SwitchActionInlineMenu
type SwitchActionState ¶
type SwitchActionState struct {
// contains filtered or unexported fields
}
func NewSwitchActionState ¶
func NewSwitchActionState(targetState string) *SwitchActionState
NewSwitchActionState creates a new SwitchActionState
type TextBuilder ¶
type TextBuilder interface {
String(update *StateUpdate) string
}
type TextBuilderF ¶ added in v0.0.74
type TextBuilderF struct {
// contains filtered or unexported fields
}
func NewTextBuilderF ¶ added in v0.0.74
func NewTextBuilderF(placeholder string, builders ...TextBuilder) TextBuilderF
NewTextBuilderF returns a new TextBuilderF
func (TextBuilderF) String ¶ added in v0.0.74
func (t TextBuilderF) String(update *StateUpdate) string
type UpdateHandler ¶
type UpdateHandler func(client *tgbotapi.TelegramBot, update *StateUpdate) (SwitchAction, bool)
func (UpdateHandler) Handle ¶
func (h UpdateHandler) Handle(client *tgbotapi.TelegramBot, update *StateUpdate) (SwitchAction, bool)
type UpdateKeyTextBuilder ¶ added in v0.0.73
type UpdateKeyTextBuilder string
func NewUpdateKeyText ¶ added in v0.0.73
func NewUpdateKeyText(key string) UpdateKeyTextBuilder
NewUpdateKeyText returns a new UpdateKeyTextBuilder
func (UpdateKeyTextBuilder) String ¶ added in v0.0.73
func (t UpdateKeyTextBuilder) String(update *StateUpdate) string
type UserLanguageRepository ¶
type UserLanguageRepository interface { SetUserLanguage(userID int64, languageTag string) error GetUserLanguage(userID int64) (string, error) }
func NewDefaultUserLanguageRepository ¶
func NewDefaultUserLanguageRepository() UserLanguageRepository
NewDefaultUserLanguageRepository creates a new DefaultUserLanguageRepository.
type UserRepository ¶
type UserRepository interface { UpsertUser(user *structs.User) error SetUserState(id int64, state string) error GetUserState(id int64) (string, error) }
func NewDefaultUserRepository ¶
func NewDefaultUserRepository() UserRepository
NewDefaultUserRepository Factory function for defaultUserRepository.