search genre if non is provided

This commit is contained in:
2026-06-10 16:43:54 +02:00
parent a088c9b3c4
commit dd264bf86c

View File

@@ -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 {