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,30 +17,12 @@ type ScriptGenerationHandler struct {
func NewScriptGenerationHandler(db *gorm.DB, cfg *config.Config, log *logger.Logger) *ScriptGenerationHandler {
return &ScriptGenerationHandler{
scriptService: services.NewScriptGenerationService(db, log),
scriptService: services.NewScriptGenerationService(db, cfg, log),
taskService: services.NewTaskService(db, log),
log: log,
}
}
func (h *ScriptGenerationHandler) GenerateOutline(c *gin.Context) {
var req services.GenerateOutlineRequest
if err := c.ShouldBindJSON(&req); err != nil {
response.BadRequest(c, err.Error())
return
}
result, err := h.scriptService.GenerateOutline(&req)
if err != nil {
h.log.Errorw("Failed to generate outline", "error", err)
response.InternalError(c, err.Error())
return
}
response.Success(c, result)
}
func (h *ScriptGenerationHandler) GenerateCharacters(c *gin.Context) {
var req services.GenerateCharactersRequest
if err := c.ShouldBindJSON(&req); err != nil {
@@ -56,8 +38,11 @@ func (h *ScriptGenerationHandler) GenerateCharacters(c *gin.Context) {
return
}
// 复制req值避免goroutine中使用指针导致的并发问题
reqCopy := req
// 启动后台goroutine处理
go h.processCharacterGeneration(task.ID, &req)
go h.processCharacterGeneration(task.ID, &reqCopy)
// 立即返回任务ID
response.Success(c, gin.H{
@@ -98,21 +83,3 @@ func (h *ScriptGenerationHandler) processCharacterGeneration(taskID string, req
h.log.Infow("Character generation completed", "task_id", taskID, "total", len(characters))
}
func (h *ScriptGenerationHandler) GenerateEpisodes(c *gin.Context) {
var req services.GenerateEpisodesRequest
if err := c.ShouldBindJSON(&req); err != nil {
response.BadRequest(c, err.Error())
return
}
episodes, err := h.scriptService.GenerateEpisodes(&req)
if err != nil {
h.log.Errorw("Failed to generate episodes", "error", err)
response.InternalError(c, err.Error())
return
}
response.Success(c, episodes)
}