27 lines
1011 B
C#
27 lines
1011 B
C#
using YandexMusic.API.Models.Artist;
|
||
using YandexMusic.API.Requests.Artist;
|
||
|
||
namespace YandexMusic.API;
|
||
|
||
/// <summary>API для работы с исполнителями.</summary>
|
||
public class YArtistAPI : YCommonAPI
|
||
{
|
||
public YArtistAPI(YandexMusicApi api) : base(api) { }
|
||
|
||
public Task<YArtistBriefInfo?> GetAsync(string artistId)
|
||
=> new YGetArtistBuilder(Api).ExecuteAsync(artistId);
|
||
|
||
public Task<List<YArtist>?> GetAsync(IEnumerable<string> artistIds)
|
||
=> new YGetArtistsBuilder(Api).ExecuteAsync(artistIds);
|
||
|
||
public Task<YTracksPage?> GetTracksAsync(string artistId, int page = 0, int pageSize = 20)
|
||
=> new YGetArtistTrackBuilder(Api).ExecuteAsync((artistId, page, pageSize));
|
||
|
||
public async Task<YTracksPage?> GetAllTracksAsync(string artistId)
|
||
{
|
||
var info = await GetAsync(artistId);
|
||
if (info?.Artist?.Counts?.Tracks == null)
|
||
return null;
|
||
return await GetTracksAsync(artistId, pageSize: info.Artist.Counts.Tracks);
|
||
}
|
||
} |