Files
video-factory/main.go
T
2026-06-18 16:01:39 +08:00

56 lines
1.3 KiB
Go

package main
import (
"context"
"embed"
"net/http"
commonHttp "video-factory/common/http"
"video-factory/shortdrama/controller"
"video-factory/shortdrama/service"
_ "github.com/gogf/gf/contrib/drivers/sqlite/v2"
"github.com/gogf/gf/v2/net/ghttp"
)
//go:embed shortdrama/view/*.html
var viewFS embed.FS
func main() {
// ==================== HTML 页面路由 ====================
servePage := func(name string) ghttp.HandlerFunc {
return func(r *ghttp.Request) {
data, err := viewFS.ReadFile("shortdrama/view/" + name)
if err != nil {
r.Response.WriteStatus(http.StatusNotFound)
return
}
r.Response.Write(data)
}
}
commonHttp.Httpserver.BindHandler("/", servePage("index.html"))
// ==================== API 路由(通过 RouteRegister 自动注册,遵循 ai-agent 规范) ====================
commonHttp.RouteRegister([]interface{}{
controller.Drama,
controller.Config,
controller.Prompt,
})
// 为合并后的视频提供静态文件服务
commonHttp.Httpserver.AddStaticPath("/output", "output")
// 数据库迁移
service.DramaService.Migrate(context.Background())
// 初始化提示词表
_ = service.PromptService.Init(context.Background())
// 启动时恢复未完成的视频生成轮询
service.DramaService.StartVideoPoller(context.Background())
// 保持运行
select {}
}