using YandexMusic.API.Models.Track; namespace YandexMusic.API.Extensions.API; /// /// Методы-расширения для трека. /// public static class YTrackExtensions { /// /// Получает прямую ссылку на скачивание трека. /// public static Task GetLinkAsync(this YTrack track) => track.Context.API.Track.GetFileLinkAsync(track); /// /// Сохраняет трек в файл. /// public static Task SaveAsync(this YTrack track, string filePath) => track.Context.API.Track.ExtractToFileAsync(track, filePath); /// /// Добавляет трек в список лайкнутых. /// public static async Task AddLikeAsync(this YTrack track) => await track.Context.API.Library.AddTrackLikeAsync(track); /// /// Удаляет трек из списка лайкнутых. /// public static async Task RemoveLikeAsync(this YTrack track) => await track.Context.API.Library.RemoveTrackLikeAsync(track); /// /// Добавляет трек в список дизлайкнутых. /// public static async Task AddDislikeAsync(this YTrack track) => await track.Context.API.Library.AddTrackDislikeAsync(track); /// /// Удаляет трек из списка дизлайкнутых. /// public static async Task RemoveDislikeAsync(this YTrack track) => await track.Context.API.Library.RemoveTrackDislikeAsync(track); /// /// Отправляет информацию о воспроизведении трека. /// public static Task SendPlayTrackInfoAsync(this YTrack track, string from, bool fromCache = false, string playId = "", string playlistId = "", double totalPlayedSeconds = 0, double endPositionSeconds = 0) => track.Context.API.Track.SendPlayTrackInfoAsync(track, from, fromCache, playId, playlistId, totalPlayedSeconds, endPositionSeconds); /// /// Получает дополнительную информацию о треке. /// public static async Task SupplementAsync(this YTrack track) => await track.Context.API.Track.GetSupplementAsync(track); /// /// Получает похожие треки. /// public static async Task SimilarAsync(this YTrack track) => await track.Context.API.Track.GetSimilarAsync(track); }