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
|
|
|
|
|
2016-03-30 14:00:20 +00:00
|
|
|
import (
|
|
|
|
"github.com/jmoiron/sqlx"
|
2016-04-01 14:20:03 +00:00
|
|
|
"github.com/velour/catbase/bot/msg"
|
|
|
|
"github.com/velour/catbase/bot/user"
|
2016-03-30 14:00:20 +00:00
|
|
|
"github.com/velour/catbase/config"
|
|
|
|
)
|
|
|
|
|
|
|
|
type Bot interface {
|
|
|
|
Config() *config.Config
|
|
|
|
DBVersion() int64
|
|
|
|
DB() *sqlx.DB
|
2016-04-01 14:20:03 +00:00
|
|
|
Who(string) []user.User
|
2016-03-30 14:00:20 +00:00
|
|
|
AddHandler(string, Handler)
|
2017-10-31 13:40:03 +00:00
|
|
|
SendMessage(string, string) string
|
|
|
|
SendAction(string, string) string
|
|
|
|
React(string, string, msg.Message) bool
|
|
|
|
Edit(string, string, string) bool
|
2016-04-01 14:20:03 +00:00
|
|
|
MsgReceived(msg.Message)
|
|
|
|
EventReceived(msg.Message)
|
|
|
|
Filter(msg.Message, string) string
|
|
|
|
LastMessage(string) (msg.Message, error)
|
|
|
|
CheckAdmin(string) bool
|
2017-07-24 19:09:27 +00:00
|
|
|
GetEmojiList() map[string]string
|
2017-09-29 04:58:21 +00:00
|
|
|
RegisterFilter(string, func(string) string)
|
2016-03-30 14:00:20 +00:00
|
|
|
}
|
|
|
|
|
2016-03-10 18:37:07 +00:00
|
|
|
type Connector interface {
|
2016-04-01 14:20:03 +00:00
|
|
|
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
|
|
|
|
React(string, string, msg.Message) bool
|
|
|
|
Edit(string, string, string) bool
|
2017-07-24 19:09:27 +00:00
|
|
|
GetEmojiList() map[string]string
|
2017-09-07 04:32:53 +00:00
|
|
|
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 {
|
2016-04-01 14:20:03 +00:00
|
|
|
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
|
|
|
|
}
|