Полностью переписанное api
All checks were successful
Release / pack-and-publish (release) Successful in 36s

This commit is contained in:
FrigaT
2026-04-19 17:00:05 +03:00
parent 5541d0ad27
commit 36e28ce3fe
111 changed files with 1552 additions and 3358 deletions

View File

@@ -1,8 +1,15 @@
namespace YandexMusic.API;
using YandexMusic.API.Common;
namespace YandexMusic.API;
/// <summary>Главный класс API Яндекс Музыки. Предоставляет доступ ко всем веткам API.</summary>
public class YandexMusicApi
{
/// <summary>HttpClient, используемый для всех запросов.</summary>
public HttpClient HttpClient { get; }
/// <summary>Хранилище данных авторизации.</summary>
public AuthStorage Storage { get; }
/// <summary>API для работы с альбомами.</summary>
public YAlbumAPI Album { get; internal set; } = null!;
/// <summary>API для работы с исполнителями.</summary>
@@ -32,9 +39,16 @@ public class YandexMusicApi
/// <summary>API для работы с протоколом Ynison (WebSocket).</summary>
public YYnisonAPI Ynison { get; internal set; } = null!;
/// <summary>Создаёт экземпляр API с инициализацией всех подсистем.</summary>
public YandexMusicApi()
/// <summary>
/// Инициализирует новый экземпляр API.
/// </summary>
/// <param name="httpClient">HttpClient для выполнения запросов.</param>
/// <param name="storage">Хранилище авторизации.</param>
public YandexMusicApi(HttpClient httpClient, AuthStorage storage)
{
HttpClient = httpClient ?? throw new ArgumentNullException(nameof(httpClient));
Storage = storage ?? throw new ArgumentNullException(nameof(storage));
Album = new YAlbumAPI(this);
Artist = new YArtistAPI(this);
Label = new YLabelAPI(this);