From c0ee9099711f96a8bc803248b98c5c46059bd4ce Mon Sep 17 00:00:00 2001 From: Michael Mayer Date: Sun, 3 Sep 2023 16:44:30 +0200 Subject: [PATCH] Index: Set appearance of video files based on their primary image #3559 Signed-off-by: Michael Mayer --- internal/entity/file.go | 4 ++-- internal/photoprism/index_mediafile.go | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/internal/entity/file.go b/internal/entity/file.go index cc334c327..a17c1840a 100644 --- a/internal/entity/file.go +++ b/internal/entity/file.go @@ -446,7 +446,7 @@ func (m *File) Save() error { return m.ResolvePrimary() } -// UpdateVideoInfos updates missing video metadata from the primary image. +// UpdateVideoInfos updated related video files so they are properly grouped with the primary image in search results. // see https://github.com/photoprism/photoprism/pull/3588#issuecomment-1683429455 func (m *File) UpdateVideoInfos() error { if m.PhotoID <= 0 { @@ -469,7 +469,7 @@ func (m *File) UpdateVideoInfos() error { if err := deepcopier.Copy(&appearance).From(m); err != nil { return err - } else if err = Db().Model(File{}).Where("photo_id = ? AND file_video = 1 AND file_diff <= 0", m.PhotoID).Updates(appearance).Error; err != nil { + } else if err = Db().Model(File{}).Where("photo_id = ? AND file_video = 1", m.PhotoID).Updates(appearance).Error; err != nil { return err } diff --git a/internal/photoprism/index_mediafile.go b/internal/photoprism/index_mediafile.go index 7dbeffdc4..06fed26c1 100644 --- a/internal/photoprism/index_mediafile.go +++ b/internal/photoprism/index_mediafile.go @@ -906,9 +906,10 @@ func (ind *Index) UserMediaFile(m *MediaFile, o IndexOptions, originalName, phot } } + // Update related video files so they are properly grouped with the primary image in search results. if (photo.PhotoType == entity.MediaVideo || photo.PhotoType == entity.MediaLive) && file.FilePrimary { - if err := file.UpdateVideoInfos(); err != nil { - log.Errorf("index: %s in %s (update video infos)", err, logName) + if updateErr := file.UpdateVideoInfos(); updateErr != nil { + log.Errorf("index: %s in %s (update video infos)", updateErr, logName) } }