catbase/bot/interfaces.go

57 lines
1.6 KiB
Go
Raw Normal View History

2016-03-19 19:32:51 +00:00
// © 2016 the CatBase Authors under the WTFPL license. See AUTHORS for the list of authors.
2016-03-10 18:37:07 +00:00
package bot
import (
"github.com/jmoiron/sqlx"
"github.com/velour/catbase/bot/msg"
"github.com/velour/catbase/bot/user"
"github.com/velour/catbase/config"
)
type Bot interface {
Config() *config.Config
DBVersion() int64
DB() *sqlx.DB
Who(string) []user.User
AddHandler(string, Handler)
2017-10-31 13:40:03 +00:00
SendMessage(string, string) string
SendAction(string, string) string
ReplyToMessageIdentifier(string, string, string) (string, bool)
ReplyToMessage(string, string, msg.Message) (string, bool)
2017-10-31 13:40:03 +00:00
React(string, string, msg.Message) bool
Edit(string, string, string) bool
MsgReceived(msg.Message)
EventReceived(msg.Message)
Filter(msg.Message, string) string
LastMessage(string) (msg.Message, error)
CheckAdmin(string) bool
GetEmojiList() map[string]string
2017-09-29 04:58:21 +00:00
RegisterFilter(string, func(string) string)
}
2016-03-10 18:37:07 +00:00
type Connector interface {
RegisterEventReceived(func(message msg.Message))
RegisterMessageReceived(func(message msg.Message))
2016-03-10 18:37:07 +00:00
2017-10-31 13:40:03 +00:00
SendMessage(channel, message string) string
SendAction(channel, message string) string
ReplyToMessageIdentifier(string, string, string) (string, bool)
ReplyToMessage(string, string, msg.Message) (string, bool)
2017-10-31 13:40:03 +00:00
React(string, string, msg.Message) bool
Edit(string, string, string) bool
GetEmojiList() map[string]string
Serve() error
2016-04-21 15:19:38 +00:00
Who(string) []string
2016-03-10 18:37:07 +00:00
}
// Interface used for compatibility with the Plugin interface
type Handler interface {
Message(message msg.Message) bool
Event(kind string, message msg.Message) bool
BotMessage(message msg.Message) bool
2016-03-10 18:37:07 +00:00
Help(channel string, parts []string)
RegisterWeb() *string
}