From 276619c318abe7d0618847d6fff5a7b83d8fbdf4 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Fri, 1 May 2026 13:42:10 +0300 Subject: Add support for audiobook/cover images with ancestor lookup and fix keyboard navigation Backend: - Add UpdateMediaThumbnail to MediaRepo for efficient thumbnail-only updates - Update ScannerStore interface to include thumbnail update capability - Update mock implementations across repository and API layers for interface changes - Enhance scanner to detect image files in ancestor directories for audio covers - Add background goroutine for async rescan to avoid HTTP timeout Frontend: - Fix hjkl cursor keys to navigate grid properly - Implement ancestor directory cover image lookup for audiobooks Infrastructure: - Add start.sh helper script for quick server startup during development --- internal/api/handlers_test.go | 3 +++ 1 file changed, 3 insertions(+) (limited to 'internal/api/handlers_test.go') diff --git a/internal/api/handlers_test.go b/internal/api/handlers_test.go index 4e5ecc8..42aea48 100644 --- a/internal/api/handlers_test.go +++ b/internal/api/handlers_test.go @@ -1330,6 +1330,9 @@ func (m *mockPingStore) GetMediaByID(ctx context.Context, id int64) (*model.Medi func (m *mockPingStore) UpdateMedia(ctx context.Context, media *model.Media) error { return m.store.UpdateMedia(ctx, media) } +func (m *mockPingStore) UpdateMediaThumbnail(ctx context.Context, id int64, thumbnailPath string) error { + return m.store.UpdateMediaThumbnail(ctx, id, thumbnailPath) +} func (m *mockPingStore) SoftDeleteMedia(ctx context.Context, id int64) error { return m.store.SoftDeleteMedia(ctx, id) } -- cgit v1.2.3