From dd264bf86c731c831d165b8ee860e8d3b9aa8f5b Mon Sep 17 00:00:00 2001 From: Niklas Kapelle Date: Wed, 10 Jun 2026 16:43:54 +0200 Subject: [PATCH] search genre if non is provided --- internal/sorter.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/internal/sorter.go b/internal/sorter.go index e28da5e..6aa0d79 100644 --- a/internal/sorter.go +++ b/internal/sorter.go @@ -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 {