Files
YandexMusic/YandexMusic.API/Extensions/API/YTrackExtensionsAsync.cs

63 lines
2.6 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using YandexMusic.API.Models.Track;
namespace YandexMusic.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);
}