manager

package
v0.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 30, 2021 License: AGPL-3.0 Imports: 18 Imported by: 4

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AddPostHook

func AddPostHook(hook ...PluginHook)

AddPostHook 添加后置hook

func AddPreHook

func AddPreHook(hook ...PluginHook)

AddPreHook 添加前置hook

func FlushConfig

func FlushConfig(configPath, configFileName string) error

FlushConfig 从文件中刷新所有插件配置

func GetDB

func GetDB() *gorm.DB

GetDB 获取数据库

func SetupDatabase

func SetupDatabase(tp string, config DBConfig) error

SetupDatabase 初始化数据库

Types

type DBConfig

type DBConfig struct {
	Host   string // 地址
	Port   int    // 端口
	User   string // 用户名
	Passwd string // 密码
	Name   string // 数据库名
}

DBConfig 数据库设置

type PluginCondition

type PluginCondition struct {
	PluginInfo            // 插件信息(由插件提供,只读)
	Key        string     // 插件Key
	NormalCmd  [][]string // 普通用户专用命令
	SuperCmd   [][]string // 超级用户专用命令
	// contains filtered or unexported fields
}

PluginCondition 插件状况结构, Hook类型插件应该只与此结构交互

func GetAllPluginConditions

func GetAllPluginConditions() []*PluginCondition

GetAllPluginConditions 获取所有插件的详细信息

func GetPluginConditionByKey

func GetPluginConditionByKey(key string) *PluginCondition

GetPluginConditionByKey 按Key获取插件的详细信息

func (*PluginCondition) Disabled

func (c *PluginCondition) Disabled()

Disabled 停用插件

func (*PluginCondition) Enabled

func (c *PluginCondition) Enabled()

Enabled 启用插件

func (*PluginCondition) InitialCron

func (c *PluginCondition) InitialCron()

InitialCron 初始化定时器

func (*PluginCondition) StartCron

func (c *PluginCondition) StartCron()

StartCron 开始所有定时任务

func (PluginCondition) Status

func (c PluginCondition) Status() bool

Status 插件全局启用状态

func (*PluginCondition) StopCron

func (c *PluginCondition) StopCron()

StopCron 停止所有定时任务

type PluginHook

type PluginHook func(condition *PluginCondition, ctx *zero.Ctx) error

type PluginInfo

type PluginInfo struct {
	Name        string // Need 插件名称
	Usage       string // Need 插件用法描述
	SuperUsage  string // Option 插件超级用户用法描述
	Classify    string // Option 插件分类,为空时代表默认分类
	IsHidden    bool   // Option 是否为被动插件:在帮助中被标识为被动功能;
	IsSuperOnly bool   // Option 是否为超级用户专属插件:消息性事件会自动加上SuperOnly检查;在帮助中只有超级用户私聊可见;
	AdminLevel  int    // Option 群管理员使用最低级别: 0 表示非群管理员专用插件 >0 表示数字越低,权限要求越高;在帮助中进行标识;
}

PluginInfo 插件信息

type PluginManager

type PluginManager struct {
	// contains filtered or unexported fields
}

PluginManager 插件管理器结构

func NewPluginManager

func NewPluginManager() *PluginManager

NewPluginManager 新建插件管理器

func (*PluginManager) AddPostHook

func (manager *PluginManager) AddPostHook(hook ...PluginHook)

AddPostHook 添加后置hook

func (*PluginManager) AddPreHook

func (manager *PluginManager) AddPreHook(hook ...PluginHook)

AddPreHook 添加前置hook

func (*PluginManager) FlushConfig

func (manager *PluginManager) FlushConfig(configPath string, configFileName string) error

FlushConfig 从文件中刷新所有插件配置,若文件不存在将会把配置写入该文件

func (*PluginManager) GetAllPluginConditions

func (manager *PluginManager) GetAllPluginConditions() []*PluginCondition

GetAllPluginConditions 获取所有插件的详细信息

func (*PluginManager) GetDB

func (manager *PluginManager) GetDB() *gorm.DB

GetDB 获取数据库

func (*PluginManager) GetPluginConditionByKey

func (manager *PluginManager) GetPluginConditionByKey(key string) *PluginCondition

GetPluginConditionByKey 按Key获取插件的详细信息

func (*PluginManager) RegisterPlugin

func (manager *PluginManager) RegisterPlugin(info PluginInfo) *PluginProxy

RegisterPlugin 注册一个插件,并返回插件代理,用于添加事件动作、读写配置、获取插件锁、添加定时任务

func (*PluginManager) SetupDatabase

func (manager *PluginManager) SetupDatabase(tp string, config DBConfig) error

type PluginProxy

type PluginProxy struct {
	// contains filtered or unexported fields
}

PluginProxy 插件代理,呈现给插件,用于添加事件动作、读写配置、获取插件锁、添加定时任务 插件在注册后,应只与此代理交互,与Manager再无交际

func RegisterPlugin

func RegisterPlugin(info PluginInfo) *PluginProxy

RegisterPlugin 注册一个插件至默认插件管理器,并返回插件代理

func (*PluginProxy) AddConfig

func (p *PluginProxy) AddConfig(key string, defaultValue interface{})

AddConfig 添加配置

func (*PluginProxy) AddScheduleDailyFunc

func (p *PluginProxy) AddScheduleDailyFunc(hour, minute int, fn func()) (id cron.EntryID, err error)

AddScheduleDailyFunc 便携添加定时任务,每天hour:minute时执行

func (*PluginProxy) AddScheduleEveryFunc

func (p *PluginProxy) AddScheduleEveryFunc(duration string, fn func()) (id cron.EntryID, err error)

AddScheduleEveryFunc 便携添加定时任务,固定时间间隔执行,duration符合time.ParseDuration

func (*PluginProxy) AddScheduleFunc

func (p *PluginProxy) AddScheduleFunc(spec string, fn func()) (id cron.EntryID, err error)

AddScheduleFunc 添加定时任务,并自动启动

func (*PluginProxy) AddScheduleOnceFunc

func (p *PluginProxy) AddScheduleOnceFunc(period time.Duration, fn func()) (id cron.EntryID, err error)

AddScheduleOnceFunc 便携添加定时任务,在等待period(period<1年)时长后执行仅一次

func (*PluginProxy) DeleteSchedule

func (p *PluginProxy) DeleteSchedule(id cron.EntryID)

DeleteSchedule 删除定时任务

func (*PluginProxy) GetConfig

func (p *PluginProxy) GetConfig(key string) interface{}

GetConfig 获取配置

func (*PluginProxy) GetConfigBool

func (p *PluginProxy) GetConfigBool(key string) bool

GetConfigBool 获取Bool配置

func (*PluginProxy) GetConfigFloat64

func (p *PluginProxy) GetConfigFloat64(key string) float64

GetConfigFloat64 获取Float64配置

func (*PluginProxy) GetConfigInt64

func (p *PluginProxy) GetConfigInt64(key string) int64

GetConfigInt64 获取Int64配置

func (*PluginProxy) GetConfigString

func (p *PluginProxy) GetConfigString(key string) string

GetConfigString 获取String配置

func (*PluginProxy) GetDB

func (p *PluginProxy) GetDB() *gorm.DB

GetDB 获取数据库

func (*PluginProxy) GetPluginConfig

func (p *PluginProxy) GetPluginConfig(plugin string, key string) interface{}

GetPluginConfig 获取其它插件的指定配置

func (*PluginProxy) LockUser

func (p *PluginProxy) LockUser(userID int64) bool

LockUser 对用户上锁,返回能否继续操作,true表示该用户正在被锁定,false表示该用户未被锁定、可以进行下一步操作,同时会对其上锁

func (*PluginProxy) On

func (p *PluginProxy) On(tp string, rules ...zero.Rule) *zero.Matcher

On 添加新的指定消息类型的匹配器 zero.Engine.On的附加处理拷贝

func (*PluginProxy) OnCommands

func (p *PluginProxy) OnCommands(cmd []string, rules ...zero.Rule) *zero.Matcher

OnCommands 添加新的命令匹配器

func (*PluginProxy) OnNotice

func (p *PluginProxy) OnNotice(rules ...zero.Rule) *zero.Matcher

func (*PluginProxy) OnRegex

func (p *PluginProxy) OnRegex(reg string, rules ...zero.Rule) *zero.Matcher

OnRegex 添加新的正则匹配器

func (*PluginProxy) OnRequest

func (p *PluginProxy) OnRequest(rules ...zero.Rule) *zero.Matcher

func (*PluginProxy) UnlockUser

func (p *PluginProxy) UnlockUser(userID int64)

UnlockUser 解锁用户

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL