Skip to content

Commit

Permalink
Use ffmpeg extractor by default on Windows
Browse files Browse the repository at this point in the history
This is to avoid issue with unicode chars in filenames. See #810
  • Loading branch information
deluan committed Jul 24, 2021
1 parent d3975d2 commit 4ed01ba
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 13 deletions.
2 changes: 1 addition & 1 deletion conf/configuration.go
Original file line number Diff line number Diff line change
Expand Up @@ -214,7 +214,7 @@ func init() {
viper.SetDefault("reverseproxyuserheader", "Remote-User")
viper.SetDefault("reverseproxywhitelist", "")

viper.SetDefault("scanner.extractor", "taglib")
viper.SetDefault("scanner.extractor", DefaultScannerExtractor)
viper.SetDefault("scanner.genreseparators", ";/,")

viper.SetDefault("agents", "lastfm,spotify")
Expand Down
5 changes: 5 additions & 0 deletions conf/defaults.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
// +build !windows

package conf

const DefaultScannerExtractor = "taglib"
5 changes: 5 additions & 0 deletions conf/defaults_win.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
// +build windows

package conf

const DefaultScannerExtractor = "ffmpeg"
24 changes: 12 additions & 12 deletions scanner/metadata/metadata.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,20 +23,20 @@ type Parser interface {
Parse(files ...string) (map[string]map[string][]string, error)
}

var parsers = map[string]Parser{
"ffmpeg": &ffmpeg.Parser{},
"taglib": &taglib.Parser{},
}

func Extract(files ...string) (map[string]*Tags, error) {
var e Parser

switch conf.Server.Scanner.Extractor {
case "taglib":
e = &taglib.Parser{}
case "ffmpeg":
e = &ffmpeg.Parser{}
default:
log.Warn("Invalid 'Scanner.Extractor' option. Using default 'taglib'", "requested", conf.Server.Scanner.Extractor,
"validOptions", "ffmpeg,taglib")
e = &taglib.Parser{}
p, ok := parsers[conf.Server.Scanner.Extractor]
if !ok {
log.Warn("Invalid 'Scanner.Extractor' option. Using default", "requested", conf.Server.Scanner.Extractor,
"validOptions", "ffmpeg,taglib", "default", conf.DefaultScannerExtractor)
p = parsers[conf.DefaultScannerExtractor]
}
extractedTags, err := e.Parse(files...)

extractedTags, err := p.Parse(files...)
if err != nil {
return nil, err
}
Expand Down

0 comments on commit 4ed01ba

Please sign in to comment.