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.