From 4e0f4b207dd2e61e0bfd510c3c006a44a9d89637 Mon Sep 17 00:00:00 2001 From: feitianbubu Date: Sat, 11 Oct 2025 14:33:59 +0800 Subject: [PATCH] refactor: add openaiVideo and method --- model/task.go | 17 +++++++++ relay/channel/task/jimeng/adaptor.go | 2 +- relay/common/relay_info.go | 39 --------------------- relay/common/relay_video.go | 52 ++++++++++++++++++++++++++++ 4 files changed, 70 insertions(+), 40 deletions(-) create mode 100644 relay/common/relay_video.go diff --git a/model/task.go b/model/task.go index a93d6339f..7bd1b9bc4 100644 --- a/model/task.go +++ b/model/task.go @@ -11,6 +11,23 @@ import ( type TaskStatus string +func (t TaskStatus) ToVideoStatus() string { + var status string + switch t { + case TaskStatusQueued, TaskStatusSubmitted: + status = commonRelay.VideoStatusQueued + case TaskStatusInProgress: + status = commonRelay.VideoStatusInProgress + case TaskStatusSuccess: + status = commonRelay.VideoStatusCompleted + case TaskStatusFailure: + status = commonRelay.VideoStatusFailed + default: + status = commonRelay.VideoStatusUnknown // Default fallback + } + return status +} + const ( TaskStatusNotStart TaskStatus = "NOT_START" TaskStatusSubmitted = "SUBMITTED" diff --git a/relay/channel/task/jimeng/adaptor.go b/relay/channel/task/jimeng/adaptor.go index 101c3ba51..e1050e822 100644 --- a/relay/channel/task/jimeng/adaptor.go +++ b/relay/channel/task/jimeng/adaptor.go @@ -414,7 +414,7 @@ func (a *TaskAdaptor) ConvertToOpenAIVideo(originTask *model.Task) (*relaycommon openAIVideo := relaycommon.NewOpenAIVideo() openAIVideo.ID = originTask.TaskID - openAIVideo.Status = string(originTask.Status) + openAIVideo.Status = originTask.Status.ToVideoStatus() openAIVideo.SetProgressStr(originTask.Progress) openAIVideo.SetMetadata("url", jimengResp.Data.VideoUrl) openAIVideo.CreatedAt = originTask.CreatedAt diff --git a/relay/common/relay_info.go b/relay/common/relay_info.go index 949b45535..c7c73980f 100644 --- a/relay/common/relay_info.go +++ b/relay/common/relay_info.go @@ -3,7 +3,6 @@ package common import ( "errors" "fmt" - "strconv" "strings" "time" @@ -552,41 +551,3 @@ func RemoveDisabledFields(jsonData []byte, channelOtherSettings dto.ChannelOther } return jsonDataAfter, nil } - -type OpenAIVideo struct { - ID string `json:"id"` - TaskID string `json:"task_id,omitempty"` //兼容旧接口 待废弃 - Object string `json:"object"` - Model string `json:"model"` - Status string `json:"status"` - Progress int `json:"progress"` - CreatedAt int64 `json:"created_at"` - CompletedAt int64 `json:"completed_at,omitempty"` - ExpiresAt int64 `json:"expires_at,omitempty"` - Seconds string `json:"seconds,omitempty"` - Size string `json:"size,omitempty"` - RemixedFromVideoID string `json:"remixed_from_video_id,omitempty"` - Error *OpenAIVideoError `json:"error,omitempty"` - Metadata map[string]any `json:"metadata,omitempty"` -} - -func (m *OpenAIVideo) SetProgressStr(progress string) { - progress = strings.TrimSuffix(progress, "%") - m.Progress, _ = strconv.Atoi(progress) -} -func (m *OpenAIVideo) SetMetadata(k string, v any) { - if m.Metadata == nil { - m.Metadata = make(map[string]any) - } - m.Metadata[k] = v -} -func NewOpenAIVideo() *OpenAIVideo { - return &OpenAIVideo{ - Object: "video", - } -} - -type OpenAIVideoError struct { - Message string `json:"message"` - Code string `json:"code"` -} diff --git a/relay/common/relay_video.go b/relay/common/relay_video.go new file mode 100644 index 000000000..6f7e9cd84 --- /dev/null +++ b/relay/common/relay_video.go @@ -0,0 +1,52 @@ +package common + +import ( + "strconv" + "strings" +) + +const ( + VideoStatusUnknown = "unknown" + VideoStatusQueued = "queued" + VideoStatusInProgress = "in_progress" + VideoStatusCompleted = "completed" + VideoStatusFailed = "failed" +) + +type OpenAIVideo struct { + ID string `json:"id"` + TaskID string `json:"task_id,omitempty"` //兼容旧接口 待废弃 + Object string `json:"object"` + Model string `json:"model"` + Status string `json:"status"` // Should use VideoStatus constants: VideoStatusQueued, VideoStatusInProgress, VideoStatusCompleted, VideoStatusFailed + Progress int `json:"progress"` + CreatedAt int64 `json:"created_at"` + CompletedAt int64 `json:"completed_at,omitempty"` + ExpiresAt int64 `json:"expires_at,omitempty"` + Seconds string `json:"seconds,omitempty"` + Size string `json:"size,omitempty"` + RemixedFromVideoID string `json:"remixed_from_video_id,omitempty"` + Error *OpenAIVideoError `json:"error,omitempty"` + Metadata map[string]any `json:"metadata,omitempty"` +} + +func (m *OpenAIVideo) SetProgressStr(progress string) { + progress = strings.TrimSuffix(progress, "%") + m.Progress, _ = strconv.Atoi(progress) +} +func (m *OpenAIVideo) SetMetadata(k string, v any) { + if m.Metadata == nil { + m.Metadata = make(map[string]any) + } + m.Metadata[k] = v +} +func NewOpenAIVideo() *OpenAIVideo { + return &OpenAIVideo{ + Object: "video", + } +} + +type OpenAIVideoError struct { + Message string `json:"message"` + Code string `json:"code"` +}