Documentation
¶
Index ¶
- type CommandHandler
- type EchoResponder
- type HelpResponder
- type Margelet
- func (margelet *Margelet) AddCommandHandler(command string, responder CommandHandler)
- func (margelet *Margelet) AddMessageResponder(responder Responder)
- func (margelet *Margelet) AddSessionHandler(command string, responder SessionHandler)
- func (margelet *Margelet) GetConfigRepository() *chatConfigRepository
- func (margelet *Margelet) GetFileDirectURL(fileID string) (string, error)
- func (margelet *Margelet) IsMessageToMe(message tgbotapi.Message) bool
- func (margelet *Margelet) Run() error
- func (margelet *Margelet) Send(c tgbotapi.Chattable) (tgbotapi.Message, error)
- func (margelet *Margelet) Stop()
- type MargeletAPI
- type Responder
- type SessionHandler
- type SumSession
- type TGBotAPI
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CommandHandler ¶
CommandHandler - interface for command handlers
type EchoResponder ¶
type EchoResponder struct {
}
EchoResponder is simple responder example
func (EchoResponder) Response ¶
func (responder EchoResponder) Response(bot MargeletAPI, message tgbotapi.Message) error
Response send message back to author
type HelpResponder ¶
type HelpResponder struct {
Margelet *Margelet
}
HelpResponder Default responder for /help command. Margelet will add this automatically
func (HelpResponder) HelpMessage ¶
func (responder HelpResponder) HelpMessage() string
HelpMessage return help string for HelpResponder
func (HelpResponder) Response ¶
func (responder HelpResponder) Response(bot MargeletAPI, message tgbotapi.Message) error
Response sends default help message
type Margelet ¶
type Margelet struct {
MessageResponders []Responder
CommandResponders map[string]CommandHandler
SessionHandlers map[string]SessionHandler
Redis *redis.Client
ChatRepository *chatRepository
SessionRepository *sessionRepository
ChatConfigRepository *chatConfigRepository
// contains filtered or unexported fields
}
Margelet - main struct in package, handles all interactions
func NewMargelet ¶
func NewMargelet(botName string, redisAddr string, redisPassword string, redisDB int64, token string, verbose bool) (*Margelet, error)
NewMargelet creates new Margelet instance
func NewMargeletFromBot ¶
func NewMargeletFromBot(botName string, redisAddr string, redisPassword string, redisDB int64, bot TGBotAPI) (*Margelet, error)
NewMargeletFromBot creates new Margelet instance from existing TGBotAPI(tgbotapi.BotAPI)
func (*Margelet) AddCommandHandler ¶
func (margelet *Margelet) AddCommandHandler(command string, responder CommandHandler)
AddCommandHandler - adds new CommandHandler to Margelet
func (*Margelet) AddMessageResponder ¶
AddMessageResponder - adds new MessageResponder to Margelet
func (*Margelet) AddSessionHandler ¶
func (margelet *Margelet) AddSessionHandler(command string, responder SessionHandler)
AddSessionHandler - adds new SessionHandler to Margelet
func (*Margelet) GetConfigRepository ¶
func (margelet *Margelet) GetConfigRepository() *chatConfigRepository
func (*Margelet) GetFileDirectURL ¶
GetFileDirectURL - converts fileID to direct URL
func (*Margelet) IsMessageToMe ¶
IsMessageToMe - return true if message sent to this bot
type MargeletAPI ¶
type MargeletAPI interface {
Send(c tgbotapi.Chattable) (tgbotapi.Message, error)
GetFileDirectURL(fileID string) (string, error)
IsMessageToMe(message tgbotapi.Message) bool
GetConfigRepository() *chatConfigRepository
}
MargeletAPI - interface, that describes margelet API
type Responder ¶
type Responder interface {
Response(bot MargeletAPI, message tgbotapi.Message) error
}
Responder - interface for message responders
type SessionHandler ¶
type SessionHandler interface {
HandleResponse(bot MargeletAPI, message tgbotapi.Message, responses []string) (bool, error)
HelpMessage() string
}
SessionHandler - interface for session handlers
type SumSession ¶
type SumSession struct {
}
SumSession - simple example session, that can sum numbers
func (SumSession) HandleResponse ¶
func (session SumSession) HandleResponse(bot MargeletAPI, message tgbotapi.Message, responses []string) (bool, error)
HandleResponse - Handlers user response
func (SumSession) HelpMessage ¶
func (session SumSession) HelpMessage() string
HelpMessage return help string for SumSession
type TGBotAPI ¶
type TGBotAPI interface {
Send(c tgbotapi.Chattable) (tgbotapi.Message, error)
GetFileDirectURL(fileID string) (string, error)
IsMessageToMe(message tgbotapi.Message) bool
GetUpdatesChan(config tgbotapi.UpdateConfig) (<-chan tgbotapi.Update, error)
}
TGBotAPI - interface, thar describe telegram-bot-api API