diff --git a/conf/configuration.go b/conf/configuration.go index a978c6d23..cdf5cbeb9 100644 --- a/conf/configuration.go +++ b/conf/configuration.go @@ -30,6 +30,7 @@ type configOptions struct { EnableTranscodingConfig bool EnableDownloads bool EnableExternalServices bool + EnableMediaFileCoverArt bool TranscodingCacheSize string ImageCacheSize string AutoImportPlaylists bool @@ -76,7 +77,6 @@ type configOptions struct { DevLogLevels map[string]string DevAutoCreateAdminPassword string DevAutoLoginUsername string - DevFastAccessCoverArt bool DevActivityPanel bool DevEnableShare bool DevSidebarPlaylists bool @@ -228,6 +228,7 @@ func init() { viper.SetDefault("playlistspath", consts.DefaultPlaylistsPath) viper.SetDefault("enabledownloads", true) viper.SetDefault("enableexternalservices", true) + viper.SetDefault("enableMediaFileCoverArt", true) viper.SetDefault("autotranscodedownload", false) // Config options only valid for file/env configuration @@ -278,7 +279,6 @@ func init() { viper.SetDefault("devlogsourceline", false) viper.SetDefault("devautocreateadminpassword", "") viper.SetDefault("devautologinusername", "") - viper.SetDefault("devfastaccesscoverart", false) viper.SetDefault("devactivitypanel", true) viper.SetDefault("devenableshare", false) viper.SetDefault("devenablebufferedscrobble", true) diff --git a/core/artwork/artwork.go b/core/artwork/artwork.go index 0f4577d53..48d3d68ac 100644 --- a/core/artwork/artwork.go +++ b/core/artwork/artwork.go @@ -93,7 +93,7 @@ func (i *cacheItem) Key() string { i.lastUpdate.UnixMilli(), i.size, conf.Server.CoverJpegQuality, - conf.Server.DevFastAccessCoverArt, + conf.Server.EnableMediaFileCoverArt, ) } diff --git a/model/artwork_id_test.go b/model/artwork_id_test.go index 3d36b515e..ed81c90ed 100644 --- a/model/artwork_id_test.go +++ b/model/artwork_id_test.go @@ -1,8 +1,6 @@ package model_test import ( - "time" - "github.com/navidrome/navidrome/model" . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" @@ -10,25 +8,23 @@ import ( var _ = Describe("ParseArtworkID()", func() { It("parses album artwork ids", func() { - id, err := model.ParseArtworkID("al-1234-ff") + id, err := model.ParseArtworkID("al-1234") Expect(err).ToNot(HaveOccurred()) Expect(id.Kind).To(Equal(model.KindAlbumArtwork)) Expect(id.ID).To(Equal("1234")) - Expect(id.LastUpdate).To(Equal(time.Unix(255, 0))) }) It("parses media file artwork ids", func() { - id, err := model.ParseArtworkID("mf-a6f8d2b1-ffff") + id, err := model.ParseArtworkID("mf-a6f8d2b1") Expect(err).ToNot(HaveOccurred()) Expect(id.Kind).To(Equal(model.KindMediaFileArtwork)) Expect(id.ID).To(Equal("a6f8d2b1")) - Expect(id.LastUpdate).To(Equal(time.Unix(65535, 0))) }) It("fails to parse malformed ids", func() { _, err := model.ParseArtworkID("a6f8d2b1") Expect(err).To(MatchError("invalid artwork id")) }) It("fails to parse ids with invalid kind", func() { - _, err := model.ParseArtworkID("xx-a6f8d2b1-ff") + _, err := model.ParseArtworkID("xx-a6f8d2b1") Expect(err).To(MatchError("invalid artwork kind")) }) }) diff --git a/model/mediafile.go b/model/mediafile.go index 12120317a..05810bae4 100644 --- a/model/mediafile.go +++ b/model/mediafile.go @@ -70,7 +70,7 @@ func (mf MediaFile) ContentType() string { func (mf MediaFile) CoverArtID() ArtworkID { // If it has a cover art, return it (if feature is disabled, skip) - if mf.HasCoverArt && !conf.Server.DevFastAccessCoverArt { + if mf.HasCoverArt && conf.Server.EnableMediaFileCoverArt { return artworkIDFromMediaFile(mf) } // if it does not have a coverArt, fallback to the album cover diff --git a/model/mediafile_test.go b/model/mediafile_test.go index 8c95b10f3..67c304757 100644 --- a/model/mediafile_test.go +++ b/model/mediafile_test.go @@ -225,7 +225,7 @@ var _ = Describe("MediaFiles", func() { var _ = Describe("MediaFile", func() { BeforeEach(func() { DeferCleanup(configtest.SetupConfig()) - conf.Server.DevFastAccessCoverArt = false + conf.Server.EnableMediaFileCoverArt = true }) Describe(".CoverArtId()", func() { It("returns its own id if it HasCoverArt", func() { @@ -240,8 +240,8 @@ var _ = Describe("MediaFile", func() { Expect(id.Kind).To(Equal(KindAlbumArtwork)) Expect(id.ID).To(Equal(mf.AlbumID)) }) - It("returns its album id if DevFastAccessCoverArt is enabled", func() { - conf.Server.DevFastAccessCoverArt = true + It("returns its album id if EnableMediaFileCoverArt is disabled", func() { + conf.Server.EnableMediaFileCoverArt = false mf := MediaFile{ID: "111", AlbumID: "1", HasCoverArt: true} id := mf.CoverArtID() Expect(id.Kind).To(Equal(KindAlbumArtwork)) diff --git a/server/subsonic/media_retrieval_test.go b/server/subsonic/media_retrieval_test.go index 0d284336d..6243f5f0e 100644 --- a/server/subsonic/media_retrieval_test.go +++ b/server/subsonic/media_retrieval_test.go @@ -6,6 +6,7 @@ import ( "errors" "io" "net/http/httptest" + "time" "github.com/navidrome/navidrome/log" "github.com/navidrome/navidrome/model" @@ -110,13 +111,13 @@ type fakeArtwork struct { recvSize int } -func (c *fakeArtwork) Get(_ context.Context, id string, size int) (io.ReadCloser, error) { +func (c *fakeArtwork) Get(_ context.Context, id string, size int) (io.ReadCloser, time.Time, error) { if c.err != nil { - return nil, c.err + return nil, time.Time{}, c.err } c.recvId = id c.recvSize = size - return io.NopCloser(bytes.NewReader([]byte(c.data))), nil + return io.NopCloser(bytes.NewReader([]byte(c.data))), time.Time{}, nil } var _ = Describe("isSynced", func() {