Исправлено удаление треков из плейлиста

This commit is contained in:
FrigaT
2026-04-14 02:08:11 +03:00
parent 8abc6c5074
commit 1779ecaca9
3 changed files with 15 additions and 4 deletions

View File

@@ -8,9 +8,9 @@ internal class Program
var type = await client.Authorize("y0__xDy2budARje-AYg7rmliBc11LbYoMeUiwiO6f6mSCAMDYVIKg"); var type = await client.Authorize("y0__xDy2budARje-AYg7rmliBc11LbYoMeUiwiO6f6mSCAMDYVIKg");
var playlists = (await client.GetFavoritesAsync()).Where(t => t.Owner.Uid == client.Account.Uid).ToList(); 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 playlist = await client.GetPlaylistAsync("97ae0768-8a40-8485-9fa4-b6c856bc6b21");
var tracks = playlist.Tracks.Where(t => t.Id == "21696942").Select(t => t.Track).ToArray();
var x = await playlist.RemoveTracksAsync(tracks);
var tracks = await client.GetTracksAsync(new[] { "78412759" }); Console.WriteLine($"TC: {playlist.TrackCount}; {playlist.Title}");
await playlist.InsertTracksAsync(tracks.ToArray()); Console.ReadKey();
} }
} }

View File

@@ -129,6 +129,7 @@ public class YPlaylistAPI : YCommonAPI
public Task<YResponse<YPlaylist>> DeleteTracksAsync(AuthStorage storage, YPlaylist playlist, IEnumerable<YTrack> tracks) public Task<YResponse<YPlaylist>> DeleteTracksAsync(AuthStorage storage, YPlaylist playlist, IEnumerable<YTrack> tracks)
{ {
var distinctTracks = tracks.Distinct().ToList(); var distinctTracks = tracks.Distinct().ToList();
var changes = distinctTracks var changes = distinctTracks
.Select(t => playlist.Tracks?.FindIndex(ct => ct.Track?.GetKey() == t.GetKey()) ?? -1) .Select(t => playlist.Tracks?.FindIndex(ct => ct.Track?.GetKey() == t.GetKey()) ?? -1)
.Where(i => i != -1) .Where(i => i != -1)

View File

@@ -10,6 +10,16 @@ public class YTrackAlbumPair : IEquatable<YTrackAlbumPair>
return string.Join(":", new[] { Id, AlbumId }.Where(s => !string.IsNullOrEmpty(s))); 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) public bool Equals(YTrackAlbumPair other)
{ {
if (ReferenceEquals(null, other)) return false; if (ReferenceEquals(null, other)) return false;