44 lines
1.5 KiB
Go
44 lines
1.5 KiB
Go
package controller
|
|
|
|
import (
|
|
"context"
|
|
consts "video-factory/shortdrama/consts"
|
|
"video-factory/shortdrama/model/dto"
|
|
"video-factory/shortdrama/service"
|
|
)
|
|
|
|
type generation struct{}
|
|
|
|
var Generation = new(generation)
|
|
|
|
func (c *generation) GenerateEpisode(ctx context.Context, req *dto.GenerateEpisodeReq) (res *struct{}, err error) {
|
|
return nil, service.GenerationService.GenerateEpisode(ctx, req.DramaId, req.EpId, req.Mode, req.ContinueIfMissing)
|
|
}
|
|
|
|
func (c *generation) ContinueSegment(ctx context.Context, req *dto.ContinueSegmentReq) (res *struct{}, err error) {
|
|
return nil, service.GenerationService.ContinueSegment(ctx, req.TaskId)
|
|
}
|
|
|
|
func (c *generation) FeedbackSegment(ctx context.Context, req *dto.FeedbackSegmentReq) (res *struct{}, err error) {
|
|
return nil, service.GenerationService.FeedbackSegment(ctx, req.TaskId, req.Feedback)
|
|
}
|
|
|
|
func (c *generation) GetEpisodeTask(ctx context.Context, req *dto.GetEpisodeTaskReq) (res *dto.GetEpisodeTaskRes, err error) {
|
|
tasks, err := service.GenerationService.ListEpisodeTasks(ctx, req.EpId)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
var currentTaskId int64
|
|
for _, t := range tasks {
|
|
if t.Status == consts.TaskStatusReview {
|
|
currentTaskId = t.Id
|
|
break
|
|
}
|
|
}
|
|
return &dto.GetEpisodeTaskRes{Tasks: tasks, CurrentTaskId: currentTaskId}, nil
|
|
}
|
|
|
|
func (c *generation) GetEpisodePollStatus(ctx context.Context, req *dto.EpisodePollReq) (res *dto.EpisodePollRes, err error) {
|
|
return service.GenerationService.GetEpisodePollStatus(ctx, req.EpId)
|
|
}
|