From 843a5b9db1b5b7203d7a39324086991628d327c6 Mon Sep 17 00:00:00 2001 From: Who23 <40632266+Who23@users.noreply.github.com> Date: Fri, 11 Sep 2020 13:42:37 -0400 Subject: [PATCH] Fix #68 Fix bug where it was assumed that every artist would be tagged with a genre --- src/glue/song.cr | 12 +++++++++--- src/search/spotify.cr | 10 ++++++++-- 2 files changed, 17 insertions(+), 5 deletions(-) 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