1、添加中英文版本

2、修复已知BUG
3、完善功能
4、添加minimax视频渠道
This commit is contained in:
Connor
2026-01-18 05:21:34 +08:00
parent bfba6342dc
commit d39759926e
52 changed files with 3456 additions and 2617 deletions

View File

@@ -17,7 +17,7 @@ type StoryboardHandler struct {
func NewStoryboardHandler(db *gorm.DB, cfg *config.Config, log *logger.Logger) *StoryboardHandler {
return &StoryboardHandler{
storyboardService: services.NewStoryboardService(db, log),
storyboardService: services.NewStoryboardService(db, cfg, log),
taskService: services.NewTaskService(db, log),
log: log,
}
@@ -27,6 +27,15 @@ func NewStoryboardHandler(db *gorm.DB, cfg *config.Config, log *logger.Logger) *
func (h *StoryboardHandler) GenerateStoryboard(c *gin.Context) {
episodeID := c.Param("episode_id")
// 接收可选的 model 参数
var req struct {
Model string `json:"model"`
}
if err := c.ShouldBindJSON(&req); err != nil {
// 如果没有提供body或者解析失败使用空字符串使用默认模型
req.Model = ""
}
// 创建异步任务
task, err := h.taskService.CreateTask("storyboard_generation", episodeID)
if err != nil {
@@ -36,19 +45,19 @@ func (h *StoryboardHandler) GenerateStoryboard(c *gin.Context) {
}
// 启动后台goroutine处理
go h.processStoryboardGeneration(task.ID, episodeID)
go h.processStoryboardGeneration(task.ID, episodeID, req.Model)
// 立即返回任务ID
response.Success(c, gin.H{
"task_id": task.ID,
"status": "pending",
"message": "分镜生成任务已创建,正在后台处理...",
"message": "分镜生成任务已创建,正在后台处理...",
})
}
// processStoryboardGeneration 后台处理分镜生成
func (h *StoryboardHandler) processStoryboardGeneration(taskID, episodeID string) {
h.log.Infow("Starting storyboard generation", "task_id", taskID, "episode_id", episodeID)
func (h *StoryboardHandler) processStoryboardGeneration(taskID, episodeID, model string) {
h.log.Infow("Starting storyboard generation", "task_id", taskID, "episode_id", episodeID, "model", model)
// 更新任务状态为处理中
if err := h.taskService.UpdateTaskStatus(taskID, "processing", 10, "开始生成分镜..."); err != nil {
@@ -56,7 +65,7 @@ func (h *StoryboardHandler) processStoryboardGeneration(taskID, episodeID string
}
// 调用实际的生成逻辑
result, err := h.storyboardService.GenerateStoryboard(episodeID)
result, err := h.storyboardService.GenerateStoryboard(episodeID, model)
if err != nil {
h.log.Errorw("Failed to generate storyboard", "error", err, "task_id", taskID)
if updateErr := h.taskService.UpdateTaskError(taskID, err); updateErr != nil {