plugin

package
v1.3.6 Latest Latest
Warning

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

Go to latest
Published: Jan 6, 2026 License: GPL-3.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetCronFrequencyColor

func GetCronFrequencyColor(interval string) string

GetCronFrequencyColor 获取频率对应的颜色类型

func GetPluginStatus

func GetPluginStatus(pluginName string) string

GetPluginStatus 获取插件状态

func UpdatePluginStatus

func UpdatePluginStatus(pluginName, status string) error

UpdatePluginStatus 更新插件状态

Types

type ConfigField

type ConfigField struct {
	Type        string      `json:"type"`        // string, boolean, number, select, text
	Name        string      `json:"name"`        // 字段名
	Label       string      `json:"label"`       // 显示标签
	Description string      `json:"description"` // 描述
	Required    bool        `json:"required"`    // 是否必填
	Default     interface{} `json:"default"`     // 默认值
	Options     []string    `json:"options"`     // 选择项(仅select类型)
	Validation  string      `json:"validation"`  // 验证规则
}

ConfigField 配置字段定义

type CronFrequency

type CronFrequency struct {
	Expression  string `json:"expression"`  // 原始 Cron 表达式
	Description string `json:"description"` // 友好的描述
	Interval    string `json:"interval"`    // 执行间隔
	NextRun     string `json:"next_run"`    // 下次执行时间(简化版)
}

CronFrequency Cron 频率信息

func ParseCronExpression

func ParseCronExpression(expression string) *CronFrequency

ParseCronExpression 解析 Cron 表达式并返回友好的描述

type Manager

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

Manager 插件管理器

func NewManager

func NewManager(app core.App) *Manager

NewManager 创建插件管理器

func (*Manager) InstallPlugin

func (m *Manager) InstallPlugin(source string) error

InstallPlugin 安装插件

func (*Manager) IsPluginInstalled

func (m *Manager) IsPluginInstalled(pluginName string) bool

IsPluginInstalled 检查插件是否已安装

func (*Manager) IsPluginLoaded

func (m *Manager) IsPluginLoaded(pluginName string) bool

IsPluginLoaded 检查插件是否已加载

func (*Manager) ListInstalledPlugins

func (m *Manager) ListInstalledPlugins() ([]*PluginPackage, error)

ListInstalledPlugins 列出已安装的插件

func (*Manager) LoadAllInstalledPlugins

func (m *Manager) LoadAllInstalledPlugins() error

LoadAllInstalledPlugins 加载所有已安装的插件

func (*Manager) LoadPlugin

func (m *Manager) LoadPlugin(pluginName string) error

LoadPlugin 加载已安装的插件

func (*Manager) RegisterJSVM

func (m *Manager) RegisterJSVM(config jsvm.Config) error

RegisterJSVM 注册 JavaScript 虚拟机插件

func (*Manager) RegisterJSVMDefault

func (m *Manager) RegisterJSVMDefault() error

RegisterJSVMDefault 注册默认配置的 JSVM 插件

func (*Manager) RegisterJSVMWithRepo

func (m *Manager) RegisterJSVMWithRepo(config jsvm.Config, repoManager *repo.RepositoryManager) error

RegisterJSVMWithRepo 注册 JavaScript 虚拟机插件(带RepositoryManager)

func (*Manager) ReloadPlugin

func (m *Manager) ReloadPlugin(pluginName string) error

ReloadPlugin 重新加载插件

func (*Manager) SetRepoManager

func (m *Manager) SetRepoManager(repoManager *repo.RepositoryManager)

SetRepoManager 设置 RepositoryManager

func (*Manager) UninstallPlugin

func (m *Manager) UninstallPlugin(pluginName string) error

UninstallPlugin 卸载插件

func (*Manager) UnloadPlugin

func (m *Manager) UnloadPlugin(pluginName string) error

UnloadPlugin 卸载已加载的插件

type MetadataParser

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

MetadataParser 元数据解析器

func NewMetadataParser

func NewMetadataParser() *MetadataParser

NewMetadataParser 创建元数据解析器

func (*MetadataParser) ParseContent

func (p *MetadataParser) ParseContent(content []byte) (*PluginMetadata, error)

ParseContent 从内容解析插件元数据

func (*MetadataParser) ParseFile

func (p *MetadataParser) ParseFile(filePath string) (*PluginMetadata, error)

ParseFile 解析插件文件的元数据

func (*MetadataParser) ScanDirectory

func (p *MetadataParser) ScanDirectory(dirPath string) ([]*PluginMetadata, error)

ScanDirectory 扫描目录中的所有插件

func (*MetadataParser) ValidateMetadata

func (p *MetadataParser) ValidateMetadata(metadata *PluginMetadata) error

ValidateMetadata 验证元数据完整性

type PluginInstaller

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

PluginInstaller 插件安装器

func NewPluginInstaller

func NewPluginInstaller(baseDir string) *PluginInstaller

NewPluginInstaller 创建插件安装器

func NewPluginInstallerWithDB

func NewPluginInstallerWithDB(baseDir string, db *sql.DB) *PluginInstaller

NewPluginInstallerWithDB 创建带数据库连接的插件安装器

func (*PluginInstaller) InstallFromFile

func (pi *PluginInstaller) InstallFromFile(zipPath string) error

InstallFromFile 从文件安装插件

func (*PluginInstaller) InstallFromURL

func (pi *PluginInstaller) InstallFromURL(url string) error

InstallFromURL 从URL安装插件

func (*PluginInstaller) InstallSingleFile

func (pi *PluginInstaller) InstallSingleFile(filePath string) error

InstallSingleFile 安装单文件插件

func (*PluginInstaller) IsInstalled

func (pi *PluginInstaller) IsInstalled(pluginName string) bool

IsInstalled 检查插件是否已安装

func (*PluginInstaller) ListInstalled

func (pi *PluginInstaller) ListInstalled() ([]*PluginPackage, error)

ListInstalled 列出已安装的插件

func (*PluginInstaller) Uninstall

func (pi *PluginInstaller) Uninstall(pluginName string) error

Uninstall 卸载插件

type PluginMetadata

type PluginMetadata struct {
	Name             string                  `json:"name"`
	DisplayName      string                  `json:"display_name"` // 中文名字
	Version          string                  `json:"version"`
	Description      string                  `json:"description"`
	Author           string                  `json:"author"`
	License          string                  `json:"license"`
	Category         string                  `json:"category"`
	Dependencies     []string                `json:"dependencies"`
	Permissions      []string                `json:"permissions"`
	Hooks            []string                `json:"hooks"`
	ConfigFields     map[string]*ConfigField `json:"config_fields"`
	ConfigSchema     map[string]interface{}  `json:"config_schema"`
	ScheduledTasks   []*ScheduledTask        `json:"scheduled_tasks"`    // 定时任务列表
	HasScheduledTask bool                    `json:"has_scheduled_task"` // 是否包含定时任务
	FilePath         string                  `json:"file_path"`
	FileSize         int64                   `json:"file_size"`
	FileHash         string                  `json:"file_hash"`
	Status           string                  `json:"status"`
	InstallTime      time.Time               `json:"install_time"`
	LastUpdated      time.Time               `json:"last_updated"`
}

PluginMetadata 插件元数据

type PluginPackage

type PluginPackage struct {
	Name         string                 `json:"name"`
	Version      string                 `json:"version"`
	Description  string                 `json:"description"`
	Author       string                 `json:"author"`
	Main         string                 `json:"main"`         // 主入口文件
	Hooks        []string               `json:"hooks"`        // 钩子文件列表
	Config       map[string]interface{} `json:"config"`       // 默认配置
	Dependencies []string               `json:"dependencies"` // 依赖插件
}

PluginPackage 插件包配置文件

type ScheduledTask

type ScheduledTask struct {
	Name      string         `json:"name"`      // 任务名称
	Schedule  string         `json:"schedule"`  // 调度表达式
	Line      int            `json:"line"`      // 所在行号
	Frequency *CronFrequency `json:"frequency"` // 执行频率信息
}

ScheduledTask 定时任务定义

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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