新增正则和扩展模块

This commit is contained in:
2026-02-11 23:44:09 +08:00
parent 2bca8e2788
commit 4e611d3a5e
47 changed files with 10058 additions and 49 deletions

View File

@@ -4,4 +4,6 @@ type RouterGroup struct {
AuthRouter
CharacterRouter
WorldInfoRouter
ExtensionRouter
RegexScriptRouter
}

View File

@@ -0,0 +1,46 @@
package app
import (
"git.echol.cn/loser/st/server/api/v1"
"git.echol.cn/loser/st/server/middleware"
"github.com/gin-gonic/gin"
)
type ExtensionRouter struct{}
func (r *ExtensionRouter) InitExtensionRouter(Router *gin.RouterGroup) {
extensionRouter := Router.Group("extension").Use(middleware.AppJWTAuth())
extensionApi := v1.ApiGroupApp.AppApiGroup.ExtensionApi
{
// 扩展管理
extensionRouter.POST("", extensionApi.CreateExtension) // 创建/安装扩展
extensionRouter.PUT("/:id", extensionApi.UpdateExtension) // 更新扩展
extensionRouter.DELETE("/:id", extensionApi.DeleteExtension) // 删除/卸载扩展
extensionRouter.GET("/:id", extensionApi.GetExtension) // 获取扩展详情
extensionRouter.GET("/list", extensionApi.GetExtensionList) // 获取扩展列表
extensionRouter.GET("/enabled", extensionApi.GetEnabledExtensions) // 获取启用的扩展列表
// 扩展操作
extensionRouter.POST("/:id/toggle", extensionApi.ToggleExtension) // 启用/禁用扩展
extensionRouter.POST("/:id/update", extensionApi.UpgradeExtension) // 升级扩展版本
// 扩展配置
extensionRouter.GET("/:id/settings", extensionApi.GetExtensionSettings) // 获取扩展配置
extensionRouter.PUT("/:id/settings", extensionApi.UpdateExtensionSettings) // 更新扩展配置
// 扩展元数据
extensionRouter.GET("/:id/manifest", extensionApi.GetExtensionManifest) // 获取 manifest.json
// 导入导出
extensionRouter.POST("/import", extensionApi.ImportExtension) // 导入扩展
extensionRouter.GET("/:id/export", extensionApi.ExportExtension) // 导出扩展
// 安装方式
extensionRouter.POST("/install/url", extensionApi.InstallExtensionFromURL) // 从 URL 安装扩展(后端代理)
extensionRouter.POST("/install/git", extensionApi.InstallExtensionFromGit) // 从 Git URL 安装扩展
// 统计
extensionRouter.POST("/stats", extensionApi.UpdateExtensionStats) // 更新扩展统计
}
}

View File

@@ -0,0 +1,29 @@
package app
import (
"git.echol.cn/loser/st/server/api/v1"
"git.echol.cn/loser/st/server/middleware"
"github.com/gin-gonic/gin"
)
type RegexScriptRouter struct{}
// InitRegexScriptRouter 初始化正则脚本路由
func (r *RegexScriptRouter) InitRegexScriptRouter(Router *gin.RouterGroup) {
regexRouter := Router.Group("regex").Use(middleware.AppJWTAuth())
regexApi := v1.ApiGroupApp.AppApiGroup.RegexScriptApi
{
regexRouter.POST("", regexApi.CreateRegexScript) // 创建正则脚本
regexRouter.PUT(":id", regexApi.UpdateRegexScript) // 更新正则脚本
regexRouter.DELETE(":id", regexApi.DeleteRegexScript) // 删除正则脚本
regexRouter.GET(":id", regexApi.GetRegexScript) // 获取正则脚本详情
regexRouter.GET("", regexApi.GetRegexScriptList) // 获取正则脚本列表
regexRouter.POST(":id/link", regexApi.LinkCharactersToRegex) // 关联角色到脚本
regexRouter.GET("character/:characterId", regexApi.GetCharacterRegexScripts) // 获取角色的脚本
regexRouter.POST(":id/duplicate", regexApi.DuplicateRegexScript) // 复制脚本
regexRouter.POST("test", regexApi.TestRegexScript) // 测试正则脚本
regexRouter.POST("apply", regexApi.ApplyRegexScripts) // 应用正则脚本
regexRouter.POST("import", regexApi.ImportRegexScripts) // 导入正则脚本
regexRouter.GET("export", regexApi.ExportRegexScripts) // 导出正则脚本
}
}