diff --git a/YaMusicCli/Program.cs b/YaMusicCli/Program.cs index df28863..8480ebf 100644 --- a/YaMusicCli/Program.cs +++ b/YaMusicCli/Program.cs @@ -8,9 +8,9 @@ internal class Program var type = await client.Authorize("y0__xDy2budARje-AYg7rmliBc11LbYoMeUiwiO6f6mSCAMDYVIKg"); var playlists = (await client.GetFavoritesAsync()).Where(t => t.Owner.Uid == client.Account.Uid).ToList(); var playlist = await client.GetPlaylistAsync("97ae0768-8a40-8485-9fa4-b6c856bc6b21"); - - - var tracks = await client.GetTracksAsync(new[] { "78412759" }); - await playlist.InsertTracksAsync(tracks.ToArray()); + var tracks = playlist.Tracks.Where(t => t.Id == "21696942").Select(t => t.Track).ToArray(); + var x = await playlist.RemoveTracksAsync(tracks); + Console.WriteLine($"TC: {playlist.TrackCount}; {playlist.Title}"); + Console.ReadKey(); } } \ No newline at end of file diff --git a/YandexMusic.API/API/YPlaylistAPI.cs b/YandexMusic.API/API/YPlaylistAPI.cs index 985b331..2005312 100644 --- a/YandexMusic.API/API/YPlaylistAPI.cs +++ b/YandexMusic.API/API/YPlaylistAPI.cs @@ -129,6 +129,7 @@ public class YPlaylistAPI : YCommonAPI public Task> DeleteTracksAsync(AuthStorage storage, YPlaylist playlist, IEnumerable tracks) { var distinctTracks = tracks.Distinct().ToList(); + var changes = distinctTracks .Select(t => playlist.Tracks?.FindIndex(ct => ct.Track?.GetKey() == t.GetKey()) ?? -1) .Where(i => i != -1) diff --git a/YandexMusic.API/Models/Track/YTrackAlbumPair.cs b/YandexMusic.API/Models/Track/YTrackAlbumPair.cs index 9d511b6..d8276c9 100644 --- a/YandexMusic.API/Models/Track/YTrackAlbumPair.cs +++ b/YandexMusic.API/Models/Track/YTrackAlbumPair.cs @@ -10,6 +10,16 @@ public class YTrackAlbumPair : IEquatable return string.Join(":", new[] { Id, AlbumId }.Where(s => !string.IsNullOrEmpty(s))); } + public static bool operator ==(YTrackAlbumPair left, YTrackAlbumPair right) + { + return Equals(left, right); + } + + public static bool operator !=(YTrackAlbumPair left, YTrackAlbumPair right) + { + return !Equals(left, right); + } + public bool Equals(YTrackAlbumPair other) { if (ReferenceEquals(null, other)) return false;