Documentation
¶
Index ¶
- Constants
- Variables
- func DetectAdapter(name string) (adapterF, error)
- func DetectBrain(name string) (func() Brain, error)
- func GetMsgChannel(from, to string) string
- func LoadEnv(filenames ...string) (err error)
- func NewTicker(d time.Duration, name string, f func()) *ticker
- func NewTimer(d time.Duration, name string, f func()) *timer
- func RegisterAdapter(name string, adp adapterF)
- func RegisterBrain(name string, m func() Brain)
- func RegisterPlugin(name string, plugin Plugin)
- func StrToDuration(t int, arc string) (time.Duration, error)
- type Adapter
- type Brain
- type Dispatcher
- type Header
- type Hook
- type Hooks
- type Job
- type Message
- type Plugin
- type PluginFunc
- type Regex
- type Robot
- func (bot *Robot) AddHook(hook Hook)
- func (bot *Robot) Find(bucket, key string) ([]byte, error)
- func (bot *Robot) Go()
- func (bot *Robot) Incoming() chan *Message
- func (bot *Robot) Outgoing(msg *Message)
- func (bot *Robot) Remove(bucket, key string) error
- func (bot *Robot) SendText(text string, to string)
- func (bot *Robot) SetBrain(brain Brain)
- func (bot *Robot) Stop()
- func (bot *Robot) Store(bucket, key string, value []byte) error
- func (bot *Robot) VerifySign(sign, secret, content, datetime string) error
- type Router
- type Rule
- type Worker
Constants ¶
View Source
const ( HOOK_BEFORE_INCOMING int = iota + 1 HOOK_AFTER_OUTGOING )
View Source
const DefaultBoltDBFile = `db/rboot.db`
Variables ¶
View Source
var AllHookTypes = []int{ HOOK_BEFORE_INCOMING, HOOK_AFTER_OUTGOING, }
View Source
var JobQueue chan Job
JobQueue Job 通道
Functions ¶
func GetMsgChannel ¶ added in v1.3.0
GetMsgChannel 获取消息通道
func RegisterAdapter ¶
func RegisterAdapter(name string, adp adapterF)
RegisterAdapter 注册转接器,名称不可重复 转接器需实现 Adapter 接口
func RegisterBrain ¶
RegisterBrain 注册存储器,名称须唯一 需实现Brain接口
func RegisterPlugin ¶ added in v1.2.1
RegisterPlugin 注册插件
Types ¶
type Brain ¶
type Brain interface {
Set(bucket, key string, value []byte) error
Get(bucket, key string) ([]byte, error)
Remove(bucket, key string) error
Close() error
}
Brain 是Rboot缓存器实现的接口
type Dispatcher ¶ added in v1.2.2
type Dispatcher struct {
// 工作池容量
MaxWorkers int
// 向调度程序注册的工作程序通道池
WorkerPool chan chan Job
Quit chan bool
}
Dispatcher 调度器
func NewDispatcher ¶ added in v1.2.2
func NewDispatcher(maxWorkers int) *Dispatcher
NewDispatcher 新建一个调度器
type Header ¶ added in v1.1.2
Header 消息附带的头信息,键-值对
type Message ¶
type Message struct {
Channel string `json:"channel"` // 自定义通道
To string `json:"to"` // 消息接收者
From string `json:"from"` // 消息来源
Sender string `json:"sender"` // 发送者
Header Header `json:"header"` // 头信息
Content string `json:"content"` // 消息文本内容
Time time.Time `json:"time"` // 消息发送时间
KeepHeader bool `json:"-"` // 如果为true则传入消息的Header在一次会话结束之前不会清除
}
Message 表示一个消息的结构
func NewMessage ¶ added in v1.1.2
NewMessage 新建一条消息,支持多个接收人
func NewMessages ¶ added in v1.1.2
NewMessages 新建一组消息
type Plugin ¶ added in v1.2.1
type Plugin struct {
Action PluginFunc // 执行解析或一些必要加载
Ruleset map[string]string // 脚本规则集合
Usage map[string]string // 帮助信息
Description string // 简介
}
Plugin 脚本结构体
type PluginFunc ¶ added in v1.2.1
PluginFunc SetupFunc 脚本执行或解析函数 - bot: A Robot instance - incoming: The incoming message
func DirectivePlugin ¶ added in v1.2.1
func DirectivePlugin(name string) (PluginFunc, error)
DirectivePlugin 根据脚本名称获取插件执行函数
type Robot ¶
type Robot struct {
// 路由,支持脚本自定义添加新路由
Router *Router
// 缓存
Brain Brain
// 钩子
Hooks Hooks
// 缓存文件夹
CachePath string
// 调试信息
Debug bool
// contains filtered or unexported fields
}
Robot 是 rboot 的一个实例,它包含了聊天转接器,规则处理器,缓存器,路由适配器和消息的进出通道
func (*Robot) VerifySign ¶ added in v1.1.3
VerifySign 验证签名
type Router ¶ added in v1.1.2
type Router struct {
// contains filtered or unexported fields
}
Router 包含了路由处理器 mux 和已经注册的所有路由集合,支持中间件
func (*Router) HandleFunc ¶ added in v1.1.2
HandleFunc 为路径 path 注册一个新的路由处理函数
type Worker ¶ added in v1.2.2
type Worker struct {
// WorkerPool 是个指向全局唯一的 chan 的引用,
// 负责传递 Worker 接收 Job 的 chan。
// Worker 空闲时,将自己的 JobChannel 放入 WorkerPool 中。
// Dispatcher 收到新的 Job 时,从 JobChannel 中取出一个 chan, 并将 Job
// 放入其中,此时 Worker 将从 Chan 中接收到 Job,并进行处理
WorkerPool chan chan Job
// Worker 用于接收 Job 的 chan
JobChannel chan Job
// 用于给 Worker 发送控制命令的 chan,用于停止 chan
Quit chan bool
}
Worker 表示执行该Job的worker
Source Files
¶
Click to show internal directories.
Click to hide internal directories.