Skip to content

Commit 172ef17

Browse files
committed
fix(seed): export shared seed helpers for upload sidecar
Export NormalizeSeedFormats and EncodeGeneratedSeed so fsup.go can reuse them after the generation logic moved into internal/fs. Drop the now-unused slices import.
1 parent 85be421 commit 172ef17

3 files changed

Lines changed: 19 additions & 7 deletions

File tree

internal/fs/seed_generate.go

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,9 @@ type SeedArtifact struct {
102102
Path string `json:"path,omitempty"`
103103
}
104104

105-
func seedFormats(params SeedGenerateParams) ([]string, error) {
106-
formats := append([]string(nil), params.Formats...)
105+
// NormalizeSeedFormats validates and deduplicates a list of seed format names.
106+
func NormalizeSeedFormats(rawFormats []string) ([]string, error) {
107+
formats := append([]string(nil), rawFormats...)
107108
if len(formats) == 1 && strings.TrimSpace(formats[0]) == "" {
108109
formats[0] = setting.GetStr(conf.SeedDefaultFormat, "oss")
109110
}
@@ -129,6 +130,17 @@ func seedFormats(params SeedGenerateParams) ([]string, error) {
129130
return result, nil
130131
}
131132

133+
func seedFormats(params SeedGenerateParams) ([]string, error) {
134+
formats, err := NormalizeSeedFormats(params.Formats)
135+
if err != nil {
136+
return nil, err
137+
}
138+
if len(formats) == 0 {
139+
formats = []string{setting.GetStr(conf.SeedDefaultFormat, "oss")}
140+
}
141+
return formats, nil
142+
}
143+
132144
func seedMatrixEmpty(matrix SeedHashMatrix) bool {
133145
return !matrix.MD5.Whole && !matrix.MD5.Pieces && !matrix.SHA1.Whole && !matrix.SHA1.Pieces && !matrix.SHA256.Whole && !matrix.SHA256.Pieces
134146
}
@@ -205,7 +217,8 @@ func applySeedMatrix(file *torrent.SeedFile, matrix SeedHashMatrix) {
205217
}
206218
}
207219

208-
func encodeGeneratedSeed(seed *torrent.Seed, format string, standardPieces []byte) ([]byte, error) {
220+
// EncodeGeneratedSeed serializes a seed in the requested container format.
221+
func EncodeGeneratedSeed(seed *torrent.Seed, format string, standardPieces []byte) ([]byte, error) {
209222
if format != "torrent" {
210223
return torrent.EncodeSeed(seed, format)
211224
}
@@ -440,7 +453,7 @@ func GenerateSeedArtifacts(ctx context.Context, user *model.User, params SeedGen
440453
continue
441454
}
442455
seenFormats[format] = struct{}{}
443-
data, err := encodeGeneratedSeed(seed, format, globalHasher.GetPieceHashes())
456+
data, err := EncodeGeneratedSeed(seed, format, globalHasher.GetPieceHashes())
444457
if err != nil {
445458
return nil, nil, fmt.Errorf("generate %s seed: %w", format, err)
446459
}

server/handles/fsup.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,7 @@ func writeUploadSeedSidecar(c *gin.Context, dir, name string, expectedSize int64
331331
if formatsHeader == "" {
332332
formatsHeader = configuredSeedFormats()
333333
}
334-
formats, err := normalizedSeedFormats(SeedGenerateReq{Formats: strings.Split(formatsHeader, ",")})
334+
formats, err := fs.NormalizeSeedFormats(strings.Split(formatsHeader, ","))
335335
if err != nil {
336336
return err
337337
}
@@ -355,7 +355,7 @@ func writeUploadSeedSidecar(c *gin.Context, dir, name string, expectedSize int64
355355
continue
356356
}
357357
seen[format] = struct{}{}
358-
data, err := encodeGeneratedSeed(seed, format, hasher.GetPieceHashes())
358+
data, err := fs.EncodeGeneratedSeed(seed, format, hasher.GetPieceHashes())
359359
if err != nil {
360360
return fmt.Errorf("generate %s seed sidecar: %w", format, err)
361361
}

server/handles/torrent.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import (
99
"io"
1010
"net/url"
1111
stdpath "path"
12-
"slices"
1312
"strings"
1413
"time"
1514

0 commit comments

Comments
 (0)