40 lines
1.6 KiB
C#
40 lines
1.6 KiB
C#
using YandexMusic.API.Models.Artist;
|
||
using YandexMusic.API.Models.Track;
|
||
|
||
namespace YandexMusic.API.Extensions.API;
|
||
|
||
/// <summary>
|
||
/// Методы-расширения для исполнителя.
|
||
/// </summary>
|
||
public static class YArtistExtensions
|
||
{
|
||
/// <summary>
|
||
/// Получает расширенную информацию об исполнителе.
|
||
/// </summary>
|
||
public static async Task<YArtistBriefInfo?> BriefInfoAsync(this YArtist artist)
|
||
=> await artist.Context.API.Artist.GetAsync(artist.Id);
|
||
|
||
/// <summary>
|
||
/// Получает страницу треков исполнителя.
|
||
/// </summary>
|
||
public static async Task<YTracksPage?> GetTracksAsync(this YArtist artist, int page = 0, int pageSize = 20)
|
||
=> await artist.Context.API.Artist.GetTracksAsync(artist.Id, page, pageSize);
|
||
|
||
/// <summary>
|
||
/// Получает все треки исполнителя.
|
||
/// </summary>
|
||
public static async Task<List<YTrack>?> GetAllTracksAsync(this YArtist artist)
|
||
=> (await artist.Context.API.Artist.GetAllTracksAsync(artist.Id))?.Tracks;
|
||
|
||
/// <summary>
|
||
/// Добавляет исполнителя в список лайкнутых.
|
||
/// </summary>
|
||
public static async Task<string?> AddLikeAsync(this YArtist artist)
|
||
=> await artist.Context.API.Library.AddArtistLikeAsync(artist);
|
||
|
||
/// <summary>
|
||
/// Удаляет исполнителя из списка лайкнутых.
|
||
/// </summary>
|
||
public static async Task<string?> RemoveLikeAsync(this YArtist artist)
|
||
=> await artist.Context.API.Library.RemoveArtistLikeAsync(artist);
|
||
} |