56 lines
1.3 KiB
Go
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 {}
|
|
}
|