fix(uploads): refresh destination previews and improve queue layout
ci / api / api (push) Successful in 50s
ci / db / db (push) Successful in 56s
ci / module boundaries / boundaries (push) Successful in 8s
ci / contract / contract (сгенерированный код совпадает с openapi.yaml) (push) Successful in 1m2s
ci / mobile / mobile (Metro-бандл Android) (push) Successful in 1m15s
ci / ts / ts (packages + web) (push) Failing after 4m28s

This commit is contained in:
mrleo1nid committed 2026-10-29 11:10:54 +03:00
1 parent eb75437708
commit 30c3c85f89
18 files changed
+603 -402

No files matched your search

+383 -379
View File
@@ -1751,6 +1751,9 @@ type UploadFile struct {
// TargetSourceName Название целевого хранилища; null, если хранилище не выбрано или удалено
TargetSourceName *string `json:"target_source_name"`
// TargetStoragePath Полный путь назначения для админской очереди — локальный путь API или server:/export/path для NFS. Для ожидающих файлов рассчитывается по текущему шаблону.
TargetStoragePath *string `json:"target_storage_path"`
// TusUrl Только автору и пока файл в статусе uploading
TusUrl *string `json:"tus_url"`
UpdatedAt time.Time `json:"updated_at"`
@@ -14463,385 +14466,386 @@ func (sh *strictHandler) GetReadyz(w http.ResponseWriter, r *http.Request) {
// Base64 encoded, gzipped, json marshaled Swagger object
var swaggerSpec = []string{
"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",
"7s27/18AAAD//zpCzgyQ6AEA",
"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",
}
// GetSwagger returns the content of the embedded swagger specification file
+3 -2
View File
@@ -35,8 +35,9 @@ func (h *Handler) fileDTO(ctx context.Context, f File) gen.UploadFile {
MetadataEdited: f.MetadataEdited, MatchedArtistId: f.MatchedArtistID, MatchedAlbumId: f.MatchedAlbumID,
DuplicateOfTrackId: f.DuplicateOfTrackID, PossibleDuplicate: f.PossibleDuplicate, QualityUpgrade: f.QualityUpgrade,
TargetSourceId: f.TargetSourceID, TargetRelPath: f.TargetRelPath, StatusReason: f.StatusReason,
TargetSourceName: f.TargetSourceName,
ReviewedAt: f.ReviewedAt, CreatedAt: f.CreatedAt, UpdatedAt: f.UpdatedAt,
TargetSourceName: f.TargetSourceName,
TargetStoragePath: f.TargetStoragePath,
ReviewedAt: f.ReviewedAt, CreatedAt: f.CreatedAt, UpdatedAt: f.UpdatedAt,
}
if out.Tags == nil {
out.Tags = map[string]string{}
+1
View File
@@ -141,6 +141,7 @@ type File struct {
QualityUpgrade bool
TargetSourceID *uuid.UUID
TargetSourceName *string
TargetStoragePath *string
TargetRelPath *string
StatusReason *string
ReviewedBy *uuid.UUID
@@ -3,6 +3,8 @@ package uploads
import (
"context"
"errors"
"path/filepath"
"strings"
"github.com/google/uuid"
@@ -47,6 +49,41 @@ type placement struct {
root string
}
// previewPlacement uses the same current configuration as importFile. Finalized
// files keep their recorded destination; reading the queue never changes a decision.
func (s *PlacementPlanner) previewPlacement(ctx context.Context, f *File) {
f.TargetStoragePath = nil
if f.Meta != nil && (f.Status == StatusPendingReview || f.Status == StatusImportFailed || f.Status == StatusApproved) {
pl := s.plan(ctx, *f, *f.Meta, f.TargetSourceID)
f.TargetSourceID, f.TargetRelPath = pl.SourceID, pl.RelPath
f.TargetSourceName = nil
if pl.SourceID != nil {
f.TargetSourceName = &pl.src.Name
}
if f.Status == StatusPendingReview || pl.Reason != "" {
f.StatusReason = nullable(pl.Reason)
}
f.MatchedArtistID, f.MatchedAlbumID = pl.ArtistID, pl.AlbumID
}
if f.TargetSourceID == nil || f.TargetRelPath == nil {
return
}
src, err := s.lib.GetSource(ctx, *f.TargetSourceID)
if err != nil {
return
}
f.TargetSourceName = &src.Name
if src.Type == library.SourceNFS {
if src.NFSServer != nil && src.NFSExport != nil {
full := *src.NFSServer + ":" + strings.TrimRight(*src.NFSExport, "/") + "/" + *f.TargetRelPath
f.TargetStoragePath = &full
}
} else if root, err := s.roots.Root(src); err == nil {
full := filepath.Join(root, filepath.FromSlash(*f.TargetRelPath))
f.TargetStoragePath = &full
}
}
// pickSource — хранилище: выбранное админом → по умолчанию → единственное принимающее загрузки.
func (s *PlacementPlanner) pickSource(ctx context.Context, chosen *uuid.UUID) (library.Source, string) {
id := chosen
@@ -0,0 +1,77 @@
package uploads
import (
"context"
"path/filepath"
"testing"
"github.com/google/uuid"
"github.com/stretchr/testify/require"
"pipu/api/internal/library"
)
type previewCatalog struct{ source library.Source }
func (c *previewCatalog) GetSource(context.Context, uuid.UUID) (library.Source, error) {
return c.source, nil
}
func (c *previewCatalog) ListSources(context.Context) ([]library.Source, error) {
return []library.Source{c.source}, nil
}
func (c *previewCatalog) Patterns(context.Context, uuid.UUID) ([]library.PatternRow, error) {
return nil, nil
}
type previewStore struct{}
func (previewStore) Settings(context.Context) (Settings, error) { return Settings{}, nil }
func (previewStore) MatchCatalog(context.Context, string, string) (*uuid.UUID, *uuid.UUID, int, error) {
return nil, nil, 0, nil
}
func (previewStore) BatchMaxDisc(context.Context, uuid.UUID, string) (int, error) { return 1, nil }
type previewRoot string
func (r previewRoot) Root(library.Source) (string, error) { return string(r), nil }
func TestPreviewUsesCurrentImportTemplate(t *testing.T) {
ctx := context.Background()
root := t.TempDir()
catalog := &previewCatalog{source: library.Source{ID: uuid.New(), Name: "Base", Type: library.SourceLocal,
AcceptsUploads: true, WriteTemplate: nullable("{albumartist}/{album}/{title}.{ext}")}}
planner := &PlacementPlanner{store: previewStore{}, lib: catalog, roots: previewRoot(root)}
track := 3
f := File{Status: StatusPendingReview, OriginalName: "song.flac", Meta: &Meta{
Artist: "Artist", AlbumArtist: "Artist", Album: "Album", Title: "Song", Track: &track},
TargetSourceID: &catalog.source.ID, TargetRelPath: nullable("stale/path.flac"), StatusReason: nullable(CodeNoTarget)}
planner.previewPlacement(ctx, &f)
require.Equal(t, "Artist/Album/Song.flac", *f.TargetRelPath)
require.Equal(t, filepath.Join(root, "Artist", "Album", "Song.flac"), *f.TargetStoragePath)
require.Nil(t, f.StatusReason)
catalog.source.WriteTemplate = nullable("{albumartist}/{album}/{track:02} - {title}.{ext}")
planner.previewPlacement(ctx, &f)
planned := planner.plan(ctx, f, *f.Meta, f.TargetSourceID)
require.Equal(t, "Artist/Album/03 - Song.flac", *f.TargetRelPath)
require.Equal(t, planned.RelPath, f.TargetRelPath, "preview and import must use the same path")
catalog.source.Type = library.SourceNFS
catalog.source.NFSServer, catalog.source.NFSExport = nullable("nas"), nullable("/music/")
planner.previewPlacement(ctx, &f)
require.Equal(t, "nas:/music/Artist/Album/03 - Song.flac", *f.TargetStoragePath)
f.Status = StatusImported
catalog.source.WriteTemplate = nullable("changed/{title}.{ext}")
planner.previewPlacement(ctx, &f)
require.Equal(t, "Artist/Album/03 - Song.flac", *f.TargetRelPath, "imported files retain their actual destination")
f.Status = StatusPendingReview
catalog.source.WriteTemplate = nil
planner.previewPlacement(ctx, &f)
require.Nil(t, f.TargetRelPath, "invalid configuration must not show the stale path")
require.Nil(t, f.TargetStoragePath)
require.Equal(t, CodeTemplate, *f.StatusReason)
// Reading a preview does not write to the store or change the review status.
require.Equal(t, StatusPendingReview, f.Status)
}
+13 -2
View File
@@ -268,7 +268,14 @@ func (s *Service) ListAll(ctx context.Context, fl ListFilter) ([]File, string, e
if _, err := principal(ctx, auth.PermReviewUploads); err != nil {
return nil, "", err
}
return s.list(ctx, fl)
files, next, err := s.list(ctx, fl)
if err != nil {
return nil, "", err
}
for i := range files {
s.previewPlacement(ctx, &files[i])
}
return files, next, nil
}
func (s *Service) list(ctx context.Context, fl ListFilter) ([]File, string, error) {
@@ -339,7 +346,11 @@ func (s *Service) Update(ctx context.Context, id uuid.UUID, in UpdateInput) (Fil
if err := s.store.UpdateMetadata(ctx, id, m, edited, pl); err != nil {
return File{}, notFound(err)
}
return s.store.File(ctx, id)
updated, err := s.store.File(ctx, id)
if err == nil {
s.previewPlacement(ctx, &updated)
}
return updated, err
}
func normalizeMeta(m Meta) Meta {