diff --git a/src/spotify.c b/src/spotify.c index e8c2237b..6a1fb6df 100644 --- a/src/spotify.c +++ b/src/spotify.c @@ -1075,10 +1075,12 @@ playlist_remove(const char *uri) if (!pli) { - DPRINTF(E_DBG, L_SPOTIFY, "Playlist %s not found, can't delete\n", uri); + DPRINTF(E_LOG, L_SPOTIFY, "Playlist '%s' not found, can't delete\n", uri); return -1; } + DPRINTF(E_LOG, L_SPOTIFY, "Removing playlist '%s' (%s)\n", pli->title, uri); + plid = pli->id; free_pli(pli, 0); @@ -2302,6 +2304,12 @@ scan_playlists() { DPRINTF(E_DBG, L_SPOTIFY, "Got playlist: '%s' with %d tracks (%s) \n", playlist.name, playlist.tracks_count, playlist.uri); + if (!playlist.uri || !playlist.name || playlist.tracks_count == 0) + { + DPRINTF(E_DBG, L_SPOTIFY, "Ignoring playlist '%s' with %d tracks (%s)\n", playlist.name, playlist.tracks_count, playlist.uri); + continue; + } + if (playlist.owner) { snprintf(virtual_path, PATH_MAX, "/spotify:/%s (%s)", playlist.name, playlist.owner); @@ -2350,7 +2358,7 @@ scan_playlist(const char *uri) } else { - DPRINTF(E_DBG, L_SPOTIFY, "Got playlist: '%s' with %d tracks (%s) \n", playlist.name, playlist.tracks_count, playlist.uri); + DPRINTF(E_LOG, L_SPOTIFY, "Saving playlist '%s' with %d tracks (%s) \n", playlist.name, playlist.tracks_count, playlist.uri); if (playlist.owner) { diff --git a/src/spotify_webapi.c b/src/spotify_webapi.c index a3a2c335..8a9b075d 100644 --- a/src/spotify_webapi.c +++ b/src/spotify_webapi.c @@ -20,17 +20,12 @@ #include "spotify_webapi.h" #include +#include #include #include #include #include -#ifdef HAVE_JSON_C_OLD -# include -#else -# include -#endif - #include "db.h" #include "http.h" #include "library.h" @@ -321,7 +316,7 @@ spotifywebapi_token_refresh() const char *err; int ret; - if (token_requested && difftime(token_requested, time(NULL)) < expires_in) + if (token_requested && difftime(time(NULL), token_requested) < expires_in) { DPRINTF(E_DBG, L_SPOTIFY, "Spotify token still valid\n"); return 0; @@ -356,7 +351,7 @@ spotifywebapi_token_refresh() } static int -spotifywebapi_request_uri(struct spotify_request *request, const char *uri) +request_uri(struct spotify_request *request, const char *uri) { char bearer_token[1024]; int ret; @@ -442,7 +437,7 @@ spotifywebapi_request_next(struct spotify_request *request, const char *uri) spotifywebapi_request_end(request); } - ret = spotifywebapi_request_uri(request, next_uri); + ret = request_uri(request, next_uri); free(next_uri); if (ret < 0) @@ -465,8 +460,8 @@ spotifywebapi_request_next(struct spotify_request *request, const char *uri) return 0; } -void -track_metadata(json_object* jsontrack, struct spotify_track* track) +static void +parse_metadata_track(json_object* jsontrack, struct spotify_track* track) { json_object* jsonalbum; json_object* jsonartists; @@ -494,14 +489,14 @@ track_metadata(json_object* jsontrack, struct spotify_track* track) } static int -get_year_from_releasdate(const char *release_date) +get_year_from_date(const char *date) { char tmp[5]; uint32_t year = 0; - if (release_date && strlen(release_date) >= 4) + if (date && strlen(date) >= 4) { - strncpy(tmp, release_date, sizeof(tmp)); + strncpy(tmp, date, sizeof(tmp)); tmp[4] = '\0'; safe_atou32(tmp, &year); } @@ -509,8 +504,8 @@ get_year_from_releasdate(const char *release_date) return year; } -void -album_metadata(json_object *jsonalbum, struct spotify_album *album) +static void +parse_metadata_album(json_object *jsonalbum, struct spotify_album *album) { json_object* jsonartists; @@ -529,7 +524,7 @@ album_metadata(json_object *jsonalbum, struct spotify_album *album) album->release_date = jparse_str_from_obj(jsonalbum, "release_date"); album->release_date_precision = jparse_str_from_obj(jsonalbum, "release_date_precision"); - album->release_year = get_year_from_releasdate(album->release_date); + album->release_year = get_year_from_date(album->release_date); // TODO Genre is an array of strings ('genres'), but it is always empty (https://github.com/spotify/web-api/issues/157) //album->genre = jparse_str_from_obj(jsonalbum, "genre"); @@ -558,7 +553,7 @@ spotifywebapi_saved_albums_fetch(struct spotify_request *request, json_object ** return -1; } - album_metadata(jsonalbum, album); + parse_metadata_album(jsonalbum, album); album->added_at = jparse_str_from_obj(item, "added_at"); album->mtime = jparse_time_from_obj(item, "added_at"); @@ -590,13 +585,13 @@ spotifywebapi_album_track_fetch(json_object *jsontracks, int index, struct spoti return -1; } - track_metadata(jsontrack, track); + parse_metadata_track(jsontrack, track); return 0; } -void -playlist_metadata(json_object *jsonplaylist, struct spotify_playlist *playlist) +static void +parse_metadata_playlist(json_object *jsonplaylist, struct spotify_playlist *playlist) { json_object *needle; @@ -637,7 +632,7 @@ spotifywebapi_playlists_fetch(struct spotify_request *request, struct spotify_pl return -1; } - playlist_metadata(jsonplaylist, playlist); + parse_metadata_playlist(jsonplaylist, playlist); request->index++; return 0; @@ -708,7 +703,7 @@ spotifywebapi_playlisttracks_fetch(struct spotify_request *request, struct spoti return -1; } - track_metadata(jsontrack, track); + parse_metadata_track(jsontrack, track); track->added_at = jparse_str_from_obj(item, "added_at"); track->mtime = jparse_time_from_obj(item, "added_at"); @@ -741,7 +736,7 @@ spotifywebapi_playlist_start(struct spotify_request *request, const char *path, return -1; } - ret = spotifywebapi_request_uri(request, uri); + ret = request_uri(request, uri); if (ret < 0) { free(owner); @@ -750,7 +745,7 @@ spotifywebapi_playlist_start(struct spotify_request *request, const char *path, } request->haystack = json_tokener_parse(request->response_body); - playlist_metadata(request->haystack, playlist); + parse_metadata_playlist(request->haystack, playlist); free(owner); free(id);