mirror of
https://github.com/QuantumNous/new-api.git
synced 2026-04-20 21:08:39 +00:00
refactor: add openaiVideo and method
This commit is contained in:
@@ -11,6 +11,23 @@ import (
|
|||||||
|
|
||||||
type TaskStatus string
|
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 (
|
const (
|
||||||
TaskStatusNotStart TaskStatus = "NOT_START"
|
TaskStatusNotStart TaskStatus = "NOT_START"
|
||||||
TaskStatusSubmitted = "SUBMITTED"
|
TaskStatusSubmitted = "SUBMITTED"
|
||||||
|
|||||||
@@ -414,7 +414,7 @@ func (a *TaskAdaptor) ConvertToOpenAIVideo(originTask *model.Task) (*relaycommon
|
|||||||
|
|
||||||
openAIVideo := relaycommon.NewOpenAIVideo()
|
openAIVideo := relaycommon.NewOpenAIVideo()
|
||||||
openAIVideo.ID = originTask.TaskID
|
openAIVideo.ID = originTask.TaskID
|
||||||
openAIVideo.Status = string(originTask.Status)
|
openAIVideo.Status = originTask.Status.ToVideoStatus()
|
||||||
openAIVideo.SetProgressStr(originTask.Progress)
|
openAIVideo.SetProgressStr(originTask.Progress)
|
||||||
openAIVideo.SetMetadata("url", jimengResp.Data.VideoUrl)
|
openAIVideo.SetMetadata("url", jimengResp.Data.VideoUrl)
|
||||||
openAIVideo.CreatedAt = originTask.CreatedAt
|
openAIVideo.CreatedAt = originTask.CreatedAt
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package common
|
|||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"strconv"
|
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@@ -552,41 +551,3 @@ func RemoveDisabledFields(jsonData []byte, channelOtherSettings dto.ChannelOther
|
|||||||
}
|
}
|
||||||
return jsonDataAfter, nil
|
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
relay/common/relay_video.go
Normal file
52
relay/common/relay_video.go
Normal file
@@ -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"`
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user