openai_video.go 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package dto
  2. import (
  3. "strconv"
  4. "strings"
  5. )
  6. const (
  7. VideoStatusUnknown = "unknown"
  8. VideoStatusQueued = "queued"
  9. VideoStatusInProgress = "in_progress"
  10. VideoStatusCompleted = "completed"
  11. VideoStatusFailed = "failed"
  12. )
  13. type OpenAIVideo struct {
  14. ID string `json:"id"`
  15. TaskID string `json:"task_id,omitempty"` //兼容旧接口 待废弃
  16. Object string `json:"object"`
  17. Model string `json:"model"`
  18. Status string `json:"status"` // Should use VideoStatus constants: VideoStatusQueued, VideoStatusInProgress, VideoStatusCompleted, VideoStatusFailed
  19. Progress int `json:"progress"`
  20. CreatedAt int64 `json:"created_at"`
  21. CompletedAt int64 `json:"completed_at,omitempty"`
  22. ExpiresAt int64 `json:"expires_at,omitempty"`
  23. Seconds string `json:"seconds,omitempty"`
  24. Size string `json:"size,omitempty"`
  25. RemixedFromVideoID string `json:"remixed_from_video_id,omitempty"`
  26. Error *OpenAIVideoError `json:"error,omitempty"`
  27. Metadata map[string]any `json:"metadata,omitempty"`
  28. }
  29. func (m *OpenAIVideo) SetProgressStr(progress string) {
  30. progress = strings.TrimSuffix(progress, "%")
  31. m.Progress, _ = strconv.Atoi(progress)
  32. }
  33. func (m *OpenAIVideo) SetMetadata(k string, v any) {
  34. if m.Metadata == nil {
  35. m.Metadata = make(map[string]any)
  36. }
  37. m.Metadata[k] = v
  38. }
  39. func NewOpenAIVideo() *OpenAIVideo {
  40. return &OpenAIVideo{
  41. Object: "video",
  42. }
  43. }
  44. type OpenAIVideoError struct {
  45. Message string `json:"message"`
  46. Code string `json:"code"`
  47. }