From 26e970f0f57f86828d7f3a26a31c528afa670dbb Mon Sep 17 00:00:00 2001 From: Martijn Steenbergen Date: Sun, 5 May 2024 11:32:03 +0000 Subject: [PATCH] Apparently, you can no longer remove tracks from a random owners playlist and someone forgot to tell me --- ApiLibs/Spotify/PlaylistService.cs | 12 ++++++------ ApiLibs/Spotify/SpotifyService.cs | 3 ++- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/ApiLibs/Spotify/PlaylistService.cs b/ApiLibs/Spotify/PlaylistService.cs index 66b9c4c..4a81025 100644 --- a/ApiLibs/Spotify/PlaylistService.cs +++ b/ApiLibs/Spotify/PlaylistService.cs @@ -111,25 +111,25 @@ public async Task RemoveTracksAll(Playlist playlist, IEnumerable tracks) while(tracks.Count() > 0) { var remove = tracks.Take(100); - await RemoveTracks(playlist.Id, playlist.Owner.Id, remove.Select(i => i.Uri)); + await RemoveTracks(playlist.Id, remove.Select(i => i.Uri), playlist.Owner.Id); tracks = tracks.Skip(100).ToList(); } } - public async Task RemoveTracks(Playlist playlist, IEnumerable tracks) + public Task RemoveTracks(Playlist playlist, IEnumerable tracks) { - await RemoveTracks(playlist.Id, playlist.Owner.Id, tracks.Select(i => i.Uri)); + return RemoveTracks(playlist.Id, tracks.Select(i => i.Uri), playlist.Owner.Id); } - private async Task RemoveTracks(string playlistId, string ownerId, IEnumerable tracks) + private Task RemoveTracks(string playlistId, IEnumerable tracks, string ownerId = null) { - await MakeRequest($"users/{ownerId}/playlists/{playlistId}/tracks", Call.DELETE, content: new + return MakeRequest($"playlists/{playlistId}/tracks", Call.DELETE, content: new { tracks = tracks.Select(i => new { uri = i }) - }); + }); } } } diff --git a/ApiLibs/Spotify/SpotifyService.cs b/ApiLibs/Spotify/SpotifyService.cs index d9da2c2..bf8aca9 100644 --- a/ApiLibs/Spotify/SpotifyService.cs +++ b/ApiLibs/Spotify/SpotifyService.cs @@ -47,7 +47,7 @@ public SpotifyService(string refreshToken, string clientId, string clientSecret) RequestResponseMiddleware.Add(async (resp) => { - if (resp.StatusCode == HttpStatusCode.BadRequest || resp.StatusCode == HttpStatusCode.Forbidden) + if (resp.StatusCode == HttpStatusCode.BadRequest) { var request = resp.Request; if (request.EndPoint == "api/token") @@ -169,5 +169,6 @@ private Scope(string name) public static Scope UserTopRead => new Scope("user-top-read"); public static Scope UserModifyPlaybackState => new Scope("user-modify-playback-state"); public static Scope UserReadPlaybackState => new Scope("user-read-playback-state"); + public static Scope UserReadRecentlyPlayed => new Scope("user-read-recently-played"); } }