Files
video-factory/main.go
T
2026-07-23 18:14:23 +08:00

79 lines
1.8 KiB
Go

package main
import (
"context"
"errors"
commonHttp "video-factory/common/http"
"video-factory/shortdrama/controller"
"video-factory/shortdrama/service"
"github.com/gogf/gf/v2/util/gvalid"
_ "github.com/gogf/gf/contrib/drivers/sqlite/v2"
)
func init() {
gvalid.RegisterRule("password-complex", func(ctx context.Context, input gvalid.RuleFuncInput) error {
pwd := input.Value.String()
var hasUpper, hasLower, hasDigit, hasSpecial bool
for _, c := range pwd {
switch {
case c >= 'A' && c <= 'Z':
hasUpper = true
case c >= 'a' && c <= 'z':
hasLower = true
case c >= '0' && c <= '9':
hasDigit = true
default:
hasSpecial = true
}
}
if !hasUpper {
return errors.New("密码必须包含大写字母")
}
if !hasLower {
return errors.New("密码必须包含小写字母")
}
if !hasDigit {
return errors.New("密码必须包含数字")
}
if !hasSpecial {
return errors.New("密码必须包含特殊符号")
}
return nil
})
}
func main() {
// ==================== API 路由(通过 RouteRegister 自动注册,遵循 ai-agent 规范) ====================
commonHttp.RouteRegister([]interface{}{
controller.Drama,
controller.Scene,
controller.Character,
controller.Prop,
controller.Bgm,
controller.Episode,
controller.Generation,
controller.ModelConfig,
controller.UserModelConfig,
controller.User,
controller.Agent,
controller.Customer,
controller.Transaction,
controller.PaymentOrder,
controller.PaymentChannelTrade,
controller.PaymentConfig,
controller.RegionPricing,
})
// ==================== 静态文件服务(workspace 目录) ====================
commonHttp.Httpserver.AddStaticPath("/workspace", "workspace")
// 启动时恢复未完成的视频生成轮询
service.GenerationService.StartVideoPoller(context.Background())
// 保持运行
select {}
}