diff --git a/src/glue/song.cr b/src/glue/song.cr index b8b2e1b..e567073 100755 --- a/src/glue/song.cr +++ b/src/glue/song.cr @@ -134,9 +134,15 @@ class Song tagger.add_album_art(temp_albumart_filename) tagger.add_text_tag("title", data["name"].to_s) tagger.add_text_tag("artist", @artist) - tagger.add_text_tag("album", @album) - tagger.add_text_tag("genre", - @spotify_searcher.find_genre(data["artists"][0]["id"].to_s)) + + if !@album.empty? + tagger.add_text_tag("album", @album) + end + + if genre = @spotify_searcher.find_genre(data["artists"][0]["id"].to_s) + tagger.add_text_tag("genre", genre) + end + tagger.add_text_tag("track", data["track_number"].to_s) tagger.add_text_tag("disc", data["disc_number"].to_s) diff --git a/src/search/spotify.cr b/src/search/spotify.cr index 33501e1..45e9262 100755 --- a/src/search/spotify.cr +++ b/src/search/spotify.cr @@ -204,8 +204,14 @@ class SpotifySearcher # ``` # SpotifySearcher.new.authorize(...).find_genre("1dfeR4HaWDbWqFHLkxsg1d") # ``` - def find_genre(id : String) : String - genre = get_item("artist", id)["genres"][0].to_s + def find_genre(id : String) : String | Nil + genre = get_item("artist", id)["genres"] + + if genre.as_a.empty? + return nil + end + + genre = genre[0].to_s genre = genre.split(" ").map { |x| x.capitalize }.join(" ") return genre