Merge pull request #4068 from feitianbubu/seedance-support-duration

Seedance support duration
This commit is contained in:
Calcium-Ion 2026-04-08 15:01:25 +08:00 committed by GitHub
commit 9ffb85a36b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 19 additions and 1 deletions

View File

@ -4,6 +4,7 @@ import (
"encoding/json" "encoding/json"
"errors" "errors"
"fmt" "fmt"
"strconv"
"strings" "strings"
"time" "time"
@ -690,6 +691,7 @@ func (t *TaskSubmitReq) UnmarshalJSON(data []byte) error {
type Alias TaskSubmitReq type Alias TaskSubmitReq
aux := &struct { aux := &struct {
Metadata json.RawMessage `json:"metadata,omitempty"` Metadata json.RawMessage `json:"metadata,omitempty"`
Duration json.RawMessage `json:"duration,omitempty"`
*Alias *Alias
}{ }{
Alias: (*Alias)(t), Alias: (*Alias)(t),
@ -699,6 +701,20 @@ func (t *TaskSubmitReq) UnmarshalJSON(data []byte) error {
return err return err
} }
if len(aux.Duration) > 0 {
var durationInt int
if err := common.Unmarshal(aux.Duration, &durationInt); err == nil {
t.Duration = durationInt
} else {
var durationStr string
if err := common.Unmarshal(aux.Duration, &durationStr); err == nil && durationStr != "" {
if v, err := strconv.Atoi(durationStr); err == nil {
t.Duration = v
}
}
}
}
if len(aux.Metadata) > 0 { if len(aux.Metadata) > 0 {
var metadataStr string var metadataStr string
if err := common.Unmarshal(aux.Metadata, &metadataStr); err == nil && metadataStr != "" { if err := common.Unmarshal(aux.Metadata, &metadataStr); err == nil && metadataStr != "" {

View File

@ -204,7 +204,9 @@ func ValidateBasicTaskRequest(c *gin.Context, info *RelayInfo, action string) *d
if err != nil { if err != nil {
return createTaskError(err, "invalid_multipart_form", http.StatusBadRequest, true) return createTaskError(err, "invalid_multipart_form", http.StatusBadRequest, true)
} }
} else if err := common.UnmarshalBodyReusable(c, &req); err != nil { }
// 为了metadata字段的兼容性统一UnmarshalBodyReusable
if err := common.UnmarshalBodyReusable(c, &req); err != nil {
return createTaskError(err, "invalid_request", http.StatusBadRequest, true) return createTaskError(err, "invalid_request", http.StatusBadRequest, true)
} }