update: 2023-03-15
1. 添加URL重写器 2. 添加插件系统
This commit is contained in:
91
examples/plugin/interface.go
Normal file
91
examples/plugin/interface.go
Normal file
@@ -0,0 +1,91 @@
|
||||
package plugin
|
||||
|
||||
// IPlugin 插件接口
|
||||
// 这个文件定义了所有插件必须实现的接口
|
||||
// 注意:这个文件应该与实际插件代码一起编译
|
||||
type IPlugin interface {
|
||||
// Name 插件名称
|
||||
Name() string
|
||||
// Version 插件版本
|
||||
Version() string
|
||||
// Description 插件描述
|
||||
Description() string
|
||||
// Author 插件作者
|
||||
Author() string
|
||||
// Init 初始化插件
|
||||
Init(config map[string]interface{}) error
|
||||
// Start 启动插件
|
||||
Start() error
|
||||
// Stop 停止插件
|
||||
Stop() error
|
||||
// IsEnabled 插件是否启用
|
||||
IsEnabled() bool
|
||||
// SetEnabled 设置插件启用状态
|
||||
SetEnabled(enabled bool)
|
||||
}
|
||||
|
||||
// BasePlugin 提供插件接口的基本实现
|
||||
// 插件开发者可以嵌入此结构体,以减少需要实现的方法数量
|
||||
type BasePlugin struct {
|
||||
name string
|
||||
version string
|
||||
description string
|
||||
author string
|
||||
enabled bool
|
||||
}
|
||||
|
||||
// NewBasePlugin 创建一个基本插件
|
||||
func NewBasePlugin(name, version, description, author string) *BasePlugin {
|
||||
return &BasePlugin{
|
||||
name: name,
|
||||
version: version,
|
||||
description: description,
|
||||
author: author,
|
||||
enabled: true,
|
||||
}
|
||||
}
|
||||
|
||||
// Name 获取插件名称
|
||||
func (p *BasePlugin) Name() string {
|
||||
return p.name
|
||||
}
|
||||
|
||||
// Version 获取插件版本
|
||||
func (p *BasePlugin) Version() string {
|
||||
return p.version
|
||||
}
|
||||
|
||||
// Description 获取插件描述
|
||||
func (p *BasePlugin) Description() string {
|
||||
return p.description
|
||||
}
|
||||
|
||||
// Author 获取插件作者
|
||||
func (p *BasePlugin) Author() string {
|
||||
return p.author
|
||||
}
|
||||
|
||||
// IsEnabled 插件是否启用
|
||||
func (p *BasePlugin) IsEnabled() bool {
|
||||
return p.enabled
|
||||
}
|
||||
|
||||
// SetEnabled 设置插件启用状态
|
||||
func (p *BasePlugin) SetEnabled(enabled bool) {
|
||||
p.enabled = enabled
|
||||
}
|
||||
|
||||
// Init 初始化插件,子类需要重写此方法
|
||||
func (p *BasePlugin) Init(config map[string]interface{}) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// Start 启动插件,子类需要重写此方法
|
||||
func (p *BasePlugin) Start() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// Stop 停止插件,子类需要重写此方法
|
||||
func (p *BasePlugin) Stop() error {
|
||||
return nil
|
||||
}
|
Reference in New Issue
Block a user