search genre if non is provided
This commit is contained in:
@@ -10,6 +10,7 @@ import (
|
|||||||
"regexp"
|
"regexp"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"git.kapelle.org/niklas/ripsort/internal/clients/musicbrainz"
|
||||||
"git.kapelle.org/niklas/ripsort/internal/metadata"
|
"git.kapelle.org/niklas/ripsort/internal/metadata"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -42,6 +43,21 @@ func sortSong(src, dst string, updateMeta bool) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if updateMeta {
|
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)
|
slog.Info("Copying song with updated metadata", "file", src, "dst", dstPath)
|
||||||
err = copyFileUpdateMetadata(src, finalPath, *m)
|
err = copyFileUpdateMetadata(src, finalPath, *m)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user