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);
}