refactor(server): remove legacy embedded coverart logic
Signed-off-by: Deluan <deluan@navidrome.org>
This commit is contained in:
@@ -132,7 +132,6 @@ type configOptions struct {
|
|||||||
DevExternalScanner bool
|
DevExternalScanner bool
|
||||||
DevScannerThreads uint
|
DevScannerThreads uint
|
||||||
DevSelectiveWatcher bool
|
DevSelectiveWatcher bool
|
||||||
DevLegacyEmbedImage bool
|
|
||||||
DevInsightsInitialDelay time.Duration
|
DevInsightsInitialDelay time.Duration
|
||||||
DevEnablePlayerInsights bool
|
DevEnablePlayerInsights bool
|
||||||
DevEnablePluginsInsights bool
|
DevEnablePluginsInsights bool
|
||||||
|
|||||||
@@ -15,8 +15,6 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/dhowden/tag"
|
|
||||||
"github.com/navidrome/navidrome/conf"
|
|
||||||
"github.com/navidrome/navidrome/consts"
|
"github.com/navidrome/navidrome/consts"
|
||||||
"github.com/navidrome/navidrome/core/external"
|
"github.com/navidrome/navidrome/core/external"
|
||||||
"github.com/navidrome/navidrome/core/ffmpeg"
|
"github.com/navidrome/navidrome/core/ffmpeg"
|
||||||
@@ -86,58 +84,6 @@ var picTypeRegexes = []*regexp.Regexp{
|
|||||||
}
|
}
|
||||||
|
|
||||||
func fromTag(ctx context.Context, path string) sourceFunc {
|
func fromTag(ctx context.Context, path string) sourceFunc {
|
||||||
if conf.Server.DevLegacyEmbedImage {
|
|
||||||
return fromTagLegacy(ctx, path)
|
|
||||||
}
|
|
||||||
return fromTagGoTaglib(ctx, path)
|
|
||||||
}
|
|
||||||
|
|
||||||
func fromTagLegacy(ctx context.Context, path string) sourceFunc {
|
|
||||||
return func() (io.ReadCloser, string, error) {
|
|
||||||
if path == "" {
|
|
||||||
return nil, "", nil
|
|
||||||
}
|
|
||||||
f, err := os.Open(path)
|
|
||||||
if err != nil {
|
|
||||||
return nil, "", err
|
|
||||||
}
|
|
||||||
defer f.Close()
|
|
||||||
|
|
||||||
m, err := tag.ReadFrom(f)
|
|
||||||
if err != nil {
|
|
||||||
return nil, "", err
|
|
||||||
}
|
|
||||||
|
|
||||||
types := m.PictureTypes()
|
|
||||||
if len(types) == 0 {
|
|
||||||
return nil, "", fmt.Errorf("no embedded image found in %s", path)
|
|
||||||
}
|
|
||||||
|
|
||||||
var picture *tag.Picture
|
|
||||||
for _, regex := range picTypeRegexes {
|
|
||||||
for _, t := range types {
|
|
||||||
if regex.MatchString(t) {
|
|
||||||
log.Trace(ctx, "Found embedded image", "type", t, "path", path)
|
|
||||||
picture = m.Pictures(t)
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if picture != nil {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if picture == nil {
|
|
||||||
log.Trace(ctx, "Could not find a front image. Getting the first one", "type", types[0], "path", path)
|
|
||||||
picture = m.Picture()
|
|
||||||
}
|
|
||||||
if picture == nil {
|
|
||||||
return nil, "", fmt.Errorf("could not load embedded image from %s", path)
|
|
||||||
}
|
|
||||||
return io.NopCloser(bytes.NewReader(picture.Data)), path, nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func fromTagGoTaglib(ctx context.Context, path string) sourceFunc {
|
|
||||||
return func() (io.ReadCloser, string, error) {
|
return func() (io.ReadCloser, string, error) {
|
||||||
if path == "" {
|
if path == "" {
|
||||||
return nil, "", nil
|
return nil, "", nil
|
||||||
|
|||||||
@@ -2,13 +2,8 @@ module github.com/navidrome/navidrome
|
|||||||
|
|
||||||
go 1.25.0
|
go 1.25.0
|
||||||
|
|
||||||
replace (
|
|
||||||
// Fork to fix https://github.com/navidrome/navidrome/issues/3254
|
|
||||||
github.com/dhowden/tag v0.0.0-20240417053706-3d75831295e8 => github.com/deluan/tag v0.0.0-20241002021117-dfe5e6ea396d
|
|
||||||
|
|
||||||
// Fork to implement raw tags support
|
// Fork to implement raw tags support
|
||||||
go.senan.xyz/taglib => github.com/deluan/go-taglib v0.0.0-20260225021432-1699562530f1
|
replace go.senan.xyz/taglib => github.com/deluan/go-taglib v0.0.0-20260225021432-1699562530f1
|
||||||
)
|
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/Masterminds/squirrel v1.5.4
|
github.com/Masterminds/squirrel v1.5.4
|
||||||
@@ -19,7 +14,6 @@ require (
|
|||||||
github.com/deluan/rest v0.0.0-20211102003136-6260bc399cbf
|
github.com/deluan/rest v0.0.0-20211102003136-6260bc399cbf
|
||||||
github.com/deluan/sanitize v0.0.0-20241120162836-fdfd8fdfaa55
|
github.com/deluan/sanitize v0.0.0-20241120162836-fdfd8fdfaa55
|
||||||
github.com/dexterlb/mpvipc v0.0.0-20241005113212-7cdefca0e933
|
github.com/dexterlb/mpvipc v0.0.0-20241005113212-7cdefca0e933
|
||||||
github.com/dhowden/tag v0.0.0-20240417053706-3d75831295e8
|
|
||||||
github.com/disintegration/imaging v1.6.2
|
github.com/disintegration/imaging v1.6.2
|
||||||
github.com/djherbis/atime v1.1.0
|
github.com/djherbis/atime v1.1.0
|
||||||
github.com/djherbis/fscache v0.10.2-0.20231127215153-442a07e326c4
|
github.com/djherbis/fscache v0.10.2-0.20231127215153-442a07e326c4
|
||||||
|
|||||||
@@ -42,8 +42,6 @@ github.com/deluan/rest v0.0.0-20211102003136-6260bc399cbf h1:tb246l2Zmpt/GpF9EcH
|
|||||||
github.com/deluan/rest v0.0.0-20211102003136-6260bc399cbf/go.mod h1:tSgDythFsl0QgS/PFWfIZqcJKnkADWneY80jaVRlqK8=
|
github.com/deluan/rest v0.0.0-20211102003136-6260bc399cbf/go.mod h1:tSgDythFsl0QgS/PFWfIZqcJKnkADWneY80jaVRlqK8=
|
||||||
github.com/deluan/sanitize v0.0.0-20241120162836-fdfd8fdfaa55 h1:wSCnggTs2f2ji6nFwQmfwgINcmSMj0xF0oHnoyRSPe4=
|
github.com/deluan/sanitize v0.0.0-20241120162836-fdfd8fdfaa55 h1:wSCnggTs2f2ji6nFwQmfwgINcmSMj0xF0oHnoyRSPe4=
|
||||||
github.com/deluan/sanitize v0.0.0-20241120162836-fdfd8fdfaa55/go.mod h1:ZNCLJfehvEf34B7BbLKjgpsL9lyW7q938w/GY1XgV4E=
|
github.com/deluan/sanitize v0.0.0-20241120162836-fdfd8fdfaa55/go.mod h1:ZNCLJfehvEf34B7BbLKjgpsL9lyW7q938w/GY1XgV4E=
|
||||||
github.com/deluan/tag v0.0.0-20241002021117-dfe5e6ea396d h1:x/R3+oPEjnisl1zBx2f2v7Gf6f11l0N0JoD6BkwcJyA=
|
|
||||||
github.com/deluan/tag v0.0.0-20241002021117-dfe5e6ea396d/go.mod h1:apkPC/CR3s48O2D7Y++n1XWEpgPNNCjXYga3PPbJe2E=
|
|
||||||
github.com/dexterlb/mpvipc v0.0.0-20241005113212-7cdefca0e933 h1:r4hxcT6GBIA/j8Ox4OXI5MNgMKfR+9plcAWYi1OnmOg=
|
github.com/dexterlb/mpvipc v0.0.0-20241005113212-7cdefca0e933 h1:r4hxcT6GBIA/j8Ox4OXI5MNgMKfR+9plcAWYi1OnmOg=
|
||||||
github.com/dexterlb/mpvipc v0.0.0-20241005113212-7cdefca0e933/go.mod h1:RkQWLNITKkXHLP7LXxZSgEq+uFWU25M5qW7qfEhL9Wc=
|
github.com/dexterlb/mpvipc v0.0.0-20241005113212-7cdefca0e933/go.mod h1:RkQWLNITKkXHLP7LXxZSgEq+uFWU25M5qW7qfEhL9Wc=
|
||||||
github.com/disintegration/imaging v1.6.2 h1:w1LecBlG2Lnp8B3jk5zSuNqd7b4DXhcjwek1ei82L+c=
|
github.com/disintegration/imaging v1.6.2 h1:w1LecBlG2Lnp8B3jk5zSuNqd7b4DXhcjwek1ei82L+c=
|
||||||
|
|||||||
Reference in New Issue
Block a user