handler

package
v1.6.1 Latest Latest
Warning

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

Go to latest
Published: Mar 1, 2026 License: MIT Imports: 20 Imported by: 0

Documentation

Index

Constants

View Source
const (
	RoleAdmin  = "admin"  // 管理员:拥有所有权限
	RoleViewer = "viewer" // 只读用户(API Key 登录):只能查看文档和角色库
)

用户角色常量

Variables

This section is empty.

Functions

func APIKeyAuthMiddleware

func APIKeyAuthMiddleware(db *gorm.DB) gin.HandlerFunc

APIKeyAuthMiddleware /v1/ API 认证中间件(从数据库查询 API Keys)

func AdminAuthMiddleware

func AdminAuthMiddleware(jwtSecret string) gin.HandlerFunc

AdminAuthMiddleware 管理端认证中间件(JWT,支持 Header 和 query 参数)

func AdminOnlyMiddleware

func AdminOnlyMiddleware() gin.HandlerFunc

AdminOnlyMiddleware 仅管理员可访问的中间件(需放在 AdminAuthMiddleware 之后)

func GenerateJWT

func GenerateJWT(secret, username string) (string, error)

GenerateJWT 生成 JWT Token(默认管理员角色)

func GenerateJWTWithRole

func GenerateJWTWithRole(secret, username, role string, apiKeyID int64) (string, error)

GenerateJWTWithRole 生成指定角色的 JWT Token

func SetupRouter

func SetupRouter(cfg *RouterConfig) *gin.Engine

SetupRouter 注册所有路由

Types

type AdminHandler

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

AdminHandler 管理端点

func NewAdminHandler

func NewAdminHandler(db *gorm.DB, manager *service.AccountManager, taskStore *service.TaskStore, settings *service.SettingsStore, version string) *AdminHandler

NewAdminHandler 创建管理端点

func (*AdminHandler) BatchImportAccounts added in v1.3.0

func (h *AdminHandler) BatchImportAccounts(c *gin.Context)

BatchImportAccounts POST /admin/accounts/batch 批量导入账号:自动识别 RT(rt_ 前缀)或 AT,以邮箱为唯一标识 upsert

func (*AdminHandler) CreateAPIKey

func (h *AdminHandler) CreateAPIKey(c *gin.Context)

CreateAPIKey POST /admin/api-keys

func (*AdminHandler) CreateAccountDirect

func (h *AdminHandler) CreateAccountDirect(c *gin.Context)

CreateAccountDirect POST /admin/accounts

func (*AdminHandler) CreateGroup

func (h *AdminHandler) CreateGroup(c *gin.Context)

CreateGroup POST /admin/groups

func (*AdminHandler) DeleteAPIKey

func (h *AdminHandler) DeleteAPIKey(c *gin.Context)

DeleteAPIKey DELETE /admin/api-keys/:id

func (*AdminHandler) DeleteAccountDirect

func (h *AdminHandler) DeleteAccountDirect(c *gin.Context)

DeleteAccountDirect DELETE /admin/accounts/:id

func (*AdminHandler) DeleteCharacterAdmin

func (h *AdminHandler) DeleteCharacterAdmin(c *gin.Context)

DeleteCharacterAdmin DELETE /admin/characters/:id — 删除角色

func (*AdminHandler) DeleteGroup

func (h *AdminHandler) DeleteGroup(c *gin.Context)

DeleteGroup DELETE /admin/groups/:id

func (*AdminHandler) DownloadTaskContent

func (h *AdminHandler) DownloadTaskContent(c *gin.Context)

DownloadTaskContent GET /admin/tasks/:id/content — 下载任务产物(视频或图片)

func (*AdminHandler) GetAccountStatusDirect

func (h *AdminHandler) GetAccountStatusDirect(c *gin.Context)

GetAccountStatusDirect GET /admin/accounts/:id/status

func (*AdminHandler) GetCharacterAdmin

func (h *AdminHandler) GetCharacterAdmin(c *gin.Context)

GetCharacterAdmin GET /admin/characters/:id — 角色详情

func (*AdminHandler) GetCharacterImage

func (h *AdminHandler) GetCharacterImage(c *gin.Context)

GetCharacterImage GET /admin/characters/:id/image — 获取角色头像图片

func (*AdminHandler) GetDashboard

func (h *AdminHandler) GetDashboard(c *gin.Context)

GetDashboard GET /admin/dashboard — 概览统计

func (*AdminHandler) GetSettings

func (h *AdminHandler) GetSettings(c *gin.Context)

GetSettings GET /admin/settings — 获取所有设置

func (*AdminHandler) GetTask

func (h *AdminHandler) GetTask(c *gin.Context)

GetTask GET /admin/tasks/:id(viewer 只能查看自己 API Key 创建的任务)

func (*AdminHandler) GetVersion added in v1.5.0

func (h *AdminHandler) GetVersion(c *gin.Context)

GetVersion GET /admin/version — 获取版本信息及最新版本

func (*AdminHandler) ListAPIKeys

func (h *AdminHandler) ListAPIKeys(c *gin.Context)

ListAPIKeys GET /admin/api-keys(支持分页 + 关键词 + enabled 筛选)

func (*AdminHandler) ListAllAccounts

func (h *AdminHandler) ListAllAccounts(c *gin.Context)

ListAllAccounts GET /admin/accounts(支持分页 + 多条件筛选)

func (*AdminHandler) ListCharacters

func (h *AdminHandler) ListCharacters(c *gin.Context)

ListCharacters GET /admin/characters — 角色列表(分页 + 状态筛选 + is_public 筛选)

func (*AdminHandler) ListGroups

func (h *AdminHandler) ListGroups(c *gin.Context)

ListGroups GET /admin/groups

func (*AdminHandler) ListTasks

func (h *AdminHandler) ListTasks(c *gin.Context)

ListTasks GET /admin/tasks(viewer 角色只能看到自己 API Key 创建的任务)

func (*AdminHandler) RefreshAccountTokenDirect

func (h *AdminHandler) RefreshAccountTokenDirect(c *gin.Context)

RefreshAccountTokenDirect POST /admin/accounts/:id/refresh

func (*AdminHandler) RevealAPIKey

func (h *AdminHandler) RevealAPIKey(c *gin.Context)

RevealAPIKey GET /admin/api-keys/:id/reveal — 获取完整 Key

func (*AdminHandler) RevealAccountTokens

func (h *AdminHandler) RevealAccountTokens(c *gin.Context)

RevealAccountTokens GET /admin/accounts/:id/tokens — 获取完整 AT 和 RT

func (*AdminHandler) TestProxy

func (h *AdminHandler) TestProxy(c *gin.Context)

TestProxy POST /admin/proxy-test — 测试代理连通性

func (*AdminHandler) ToggleCharacterVisibility

func (h *AdminHandler) ToggleCharacterVisibility(c *gin.Context)

ToggleCharacterVisibility POST /admin/characters/:id/visibility — 切换角色公开/私密

func (*AdminHandler) TriggerUpgrade added in v1.5.0

func (h *AdminHandler) TriggerUpgrade(c *gin.Context)

TriggerUpgrade POST /admin/upgrade — 触发升级(仅一键安装方式支持)

func (*AdminHandler) UpdateAPIKey

func (h *AdminHandler) UpdateAPIKey(c *gin.Context)

UpdateAPIKey PUT /admin/api-keys/:id

func (*AdminHandler) UpdateAccountDirect

func (h *AdminHandler) UpdateAccountDirect(c *gin.Context)

UpdateAccountDirect PUT /admin/accounts/:id

func (*AdminHandler) UpdateGroup

func (h *AdminHandler) UpdateGroup(c *gin.Context)

UpdateGroup PUT /admin/groups/:id

func (*AdminHandler) UpdateSettings

func (h *AdminHandler) UpdateSettings(c *gin.Context)

UpdateSettings PUT /admin/settings — 更新设置

type CharacterHandler

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

CharacterHandler /v1/characters 角色管理端点

func NewCharacterHandler

func NewCharacterHandler(scheduler *service.Scheduler, db *gorm.DB) *CharacterHandler

NewCharacterHandler 创建 CharacterHandler

func (*CharacterHandler) CreateCharacter

func (h *CharacterHandler) CreateCharacter(c *gin.Context)

CreateCharacter POST /v1/characters — 创建角色

func (*CharacterHandler) DeleteCharacter

func (h *CharacterHandler) DeleteCharacter(c *gin.Context)

DeleteCharacter DELETE /v1/characters/:id — 删除角色

func (*CharacterHandler) GetCharacter

func (h *CharacterHandler) GetCharacter(c *gin.Context)

GetCharacter GET /v1/characters/:id — 查询角色状态

func (*CharacterHandler) SetPublic

func (h *CharacterHandler) SetPublic(c *gin.Context)

SetPublic POST /v1/characters/:id/public — 设置角色公开

type ImageHandler

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

ImageHandler /v1/images 图片生成端点

func NewImageHandler

func NewImageHandler(scheduler *service.Scheduler, taskStore *service.TaskStore) *ImageHandler

NewImageHandler 创建 ImageHandler

func (*ImageHandler) CreateImageTask

func (h *ImageHandler) CreateImageTask(c *gin.Context)

CreateImageTask POST /v1/images — 创建图片任务

func (*ImageHandler) DownloadImage

func (h *ImageHandler) DownloadImage(c *gin.Context)

DownloadImage GET /v1/images/:id/content — 下载图片

func (*ImageHandler) GetImageTaskStatus

func (h *ImageHandler) GetImageTaskStatus(c *gin.Context)

GetImageTaskStatus GET /v1/images/:id — 查询图片任务状态

type JWTClaims

type JWTClaims struct {
	Username string `json:"username"`
	Role     string `json:"role"`       // admin / viewer
	APIKeyID int64  `json:"api_key_id"` // viewer 角色对应的 API Key ID(admin 为 0)
	jwt.RegisteredClaims
}

JWTClaims JWT 载荷

func ValidateJWT

func ValidateJWT(secret, tokenStr string) (*JWTClaims, error)

ValidateJWT 验证 JWT Token

type PostHandler

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

PostHandler /v1/posts 帖子管理 + /v1/watermark-free 无水印下载

func NewPostHandler

func NewPostHandler(scheduler *service.Scheduler, taskStore *service.TaskStore, db *gorm.DB) *PostHandler

NewPostHandler 创建 PostHandler

func (*PostHandler) DeletePost

func (h *PostHandler) DeletePost(c *gin.Context)

DeletePost DELETE /v1/posts/:id — 删除帖子

func (*PostHandler) GetWatermarkFreeURL

func (h *PostHandler) GetWatermarkFreeURL(c *gin.Context)

GetWatermarkFreeURL POST /v1/watermark-free — 获取无水印下载链接

func (*PostHandler) PublishPost

func (h *PostHandler) PublishPost(c *gin.Context)

PublishPost POST /v1/posts — 发布视频帖子

type PromptHandler

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

PromptHandler /v1/enhance-prompt 提示词增强端点

func NewPromptHandler

func NewPromptHandler(scheduler *service.Scheduler) *PromptHandler

NewPromptHandler 创建 PromptHandler

func (*PromptHandler) EnhancePrompt

func (h *PromptHandler) EnhancePrompt(c *gin.Context)

EnhancePrompt POST /v1/enhance-prompt — 提示词增强

type RouterConfig

type RouterConfig struct {
	DB        *gorm.DB
	Scheduler *service.Scheduler
	TaskStore *service.TaskStore
	Manager   *service.AccountManager
	Settings  *service.SettingsStore
	JWTSecret string
	AdminUser string
	AdminPass string
	Version   string
}

RouterConfig 路由配置

type VideoHandler

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

VideoHandler /v1/videos 核心端点

func NewVideoHandler

func NewVideoHandler(scheduler *service.Scheduler, taskStore *service.TaskStore) *VideoHandler

NewVideoHandler 创建 VideoHandler

func (*VideoHandler) CreateTask

func (h *VideoHandler) CreateTask(c *gin.Context)

CreateTask POST /v1/videos — 创建视频任务(文生视频/图生视频)

func (*VideoHandler) DownloadVideo

func (h *VideoHandler) DownloadVideo(c *gin.Context)

DownloadVideo GET /v1/videos/:id/content — 下载视频

func (*VideoHandler) GetTaskStatus

func (h *VideoHandler) GetTaskStatus(c *gin.Context)

GetTaskStatus GET /v1/videos/:id — 查询任务状态

func (*VideoHandler) RemixTask

func (h *VideoHandler) RemixTask(c *gin.Context)

RemixTask POST /v1/videos/remix — Remix 视频

func (*VideoHandler) StoryboardTask

func (h *VideoHandler) StoryboardTask(c *gin.Context)

StoryboardTask POST /v1/videos/storyboard — 分镜视频

Jump to

Keyboard shortcuts

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