Ver código fonte

refactor: add openaiVideo and method

feitianbubu 4 meses atrás
pai
commit
4e0f4b207d

+ 17 - 0
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"

+ 1 - 1
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

+ 0 - 39
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"`
-}

+ 52 - 0
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"`
+}