search genre if non is provided
This commit is contained in:
@@ -10,6 +10,7 @@ import (
|
||||
"regexp"
|
||||
"strings"
|
||||
|
||||
"git.kapelle.org/niklas/ripsort/internal/clients/musicbrainz"
|
||||
"git.kapelle.org/niklas/ripsort/internal/metadata"
|
||||
)
|
||||
|
||||
@@ -42,6 +43,21 @@ func sortSong(src, dst string, updateMeta bool) error {
|
||||
}
|
||||
|
||||
if updateMeta {
|
||||
if len(m.Genre) == 0 {
|
||||
slog.Debug("No genere found. Searching.", "file", src)
|
||||
mb := musicbrainz.NewMusicBrainzClient()
|
||||
genre, err := metadata.SearchForGenre(mb, m)
|
||||
if err != nil {
|
||||
slog.Warn("Failed to search genere in musicbrainz", "file", src, "err", err)
|
||||
} else {
|
||||
if len(genre) > 4 {
|
||||
genre = genre[:4]
|
||||
}
|
||||
slog.Debug("Gound genere", "file", src, "genre", genre, "count", len(genre))
|
||||
m.Genre = genre
|
||||
}
|
||||
}
|
||||
|
||||
slog.Info("Copying song with updated metadata", "file", src, "dst", dstPath)
|
||||
err = copyFileUpdateMetadata(src, finalPath, *m)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user