63 lines
2.6 KiB
C#
63 lines
2.6 KiB
C#
using YandexMusic.API.Models.Track;
|
||
|
||
namespace YandexMusic.API.Extensions.API;
|
||
|
||
/// <summary>
|
||
/// Методы-расширения для трека.
|
||
/// </summary>
|
||
public static class YTrackExtensions
|
||
{
|
||
/// <summary>
|
||
/// Получает прямую ссылку на скачивание трека.
|
||
/// </summary>
|
||
public static Task<string?> GetLinkAsync(this YTrack track)
|
||
=> track.Context.API.Track.GetFileLinkAsync(track);
|
||
|
||
/// <summary>
|
||
/// Сохраняет трек в файл.
|
||
/// </summary>
|
||
public static Task SaveAsync(this YTrack track, string filePath)
|
||
=> track.Context.API.Track.ExtractToFileAsync(track, filePath);
|
||
|
||
/// <summary>
|
||
/// Добавляет трек в список лайкнутых.
|
||
/// </summary>
|
||
public static async Task<int?> AddLikeAsync(this YTrack track)
|
||
=> await track.Context.API.Library.AddTrackLikeAsync(track);
|
||
|
||
/// <summary>
|
||
/// Удаляет трек из списка лайкнутых.
|
||
/// </summary>
|
||
public static async Task<int?> RemoveLikeAsync(this YTrack track)
|
||
=> await track.Context.API.Library.RemoveTrackLikeAsync(track);
|
||
|
||
/// <summary>
|
||
/// Добавляет трек в список дизлайкнутых.
|
||
/// </summary>
|
||
public static async Task<int?> AddDislikeAsync(this YTrack track)
|
||
=> await track.Context.API.Library.AddTrackDislikeAsync(track);
|
||
|
||
/// <summary>
|
||
/// Удаляет трек из списка дизлайкнутых.
|
||
/// </summary>
|
||
public static async Task<int?> RemoveDislikeAsync(this YTrack track)
|
||
=> await track.Context.API.Library.RemoveTrackDislikeAsync(track);
|
||
|
||
/// <summary>
|
||
/// Отправляет информацию о воспроизведении трека.
|
||
/// </summary>
|
||
public static Task<string?> 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);
|
||
|
||
/// <summary>
|
||
/// Получает дополнительную информацию о треке.
|
||
/// </summary>
|
||
public static async Task<YTrackSupplement?> SupplementAsync(this YTrack track)
|
||
=> await track.Context.API.Track.GetSupplementAsync(track);
|
||
|
||
/// <summary>
|
||
/// Получает похожие треки.
|
||
/// </summary>
|
||
public static async Task<YTrackSimilar?> SimilarAsync(this YTrack track)
|
||
=> await track.Context.API.Track.GetSimilarAsync(track);
|
||
} |