From 75c11cab8103f3b7ad4aa421a2b4c31e58f66d19 Mon Sep 17 00:00:00 2001 From: Deluan Date: Fri, 17 Jul 2026 18:54:33 -0400 Subject: [PATCH] feat(album): preserve uploaded cover across album-id changes --- persistence/album_repository_test.go | 7 +++++++ scanner/phase_1_folders.go | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/persistence/album_repository_test.go b/persistence/album_repository_test.go index 3b2028a7e..0f8e430df 100644 --- a/persistence/album_repository_test.go +++ b/persistence/album_repository_test.go @@ -96,6 +96,13 @@ var _ = Describe("AlbumRepository", func() { Expect(err).ToNot(HaveOccurred()) Expect(got.CreatedAt).To(BeTemporally("~", dstTime, time.Second)) }) + It("copies uploaded_image from source to destination", func() { + Expect(albumRepo.UpdateImage("copy-src", "copy-src_cover.jpg")).To(Succeed()) + Expect(albumRepo.CopyAttributes("copy-src", "copy-dst", "uploaded_image")).To(Succeed()) + got, err := albumRepo.Get("copy-dst") + Expect(err).ToNot(HaveOccurred()) + Expect(got.UploadedImage).To(Equal("copy-src_cover.jpg")) + }) }) Describe("GetCursor", func() { diff --git a/scanner/phase_1_folders.go b/scanner/phase_1_folders.go index 5e898590b..a80442239 100644 --- a/scanner/phase_1_folders.go +++ b/scanner/phase_1_folders.go @@ -449,8 +449,8 @@ func (p *phaseFolders) persistAlbum(repo model.AlbumRepository, a *model.Album, p.state.sendWarning(fmt.Sprintf("Could not reassign annotations from %s to %s ('%s'): %v", prevID, a.ID, a.Name, err)) } - // Keep created_at field from previous instance of the album - if err := repo.CopyAttributes(prevID, a.ID, "created_at"); err != nil { + // Keep created_at and any uploaded cover from the previous instance of the album + if err := repo.CopyAttributes(prevID, a.ID, "created_at", "uploaded_image"); err != nil { // Silently ignore when the previous album is not found if !errors.Is(err, model.ErrNotFound) { log.Warn(p.ctx, "Scanner: Could not copy fields", "from", prevID, "to", a.ID, "album", a.Name, err)