67 lines
3.6 KiB
C#
67 lines
3.6 KiB
C#
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>
|
||
public YArtistAPI Artist { get; internal set; } = null!;
|
||
/// <summary>API для работы с лейблами.</summary>
|
||
public YLabelAPI Label { get; internal set; } = null!;
|
||
/// <summary>API для работы с главной страницей (лендингом).</summary>
|
||
public YLandingAPI Landing { get; internal set; } = null!;
|
||
/// <summary>API для работы с библиотекой (лайки, дизлайки).</summary>
|
||
public YLibraryAPI Library { get; internal set; } = null!;
|
||
/// <summary>API для работы с плейлистами.</summary>
|
||
public YPlaylistAPI Playlist { get; internal set; } = null!;
|
||
/// <summary>API для работы с закреплёнными объектами.</summary>
|
||
public YPinsAPI Pins { get; internal set; } = null!;
|
||
/// <summary>API для работы с радио.</summary>
|
||
public YRadioAPI Radio { get; internal set; } = null!;
|
||
/// <summary>API для поиска.</summary>
|
||
public YSearchAPI Search { get; internal set; } = null!;
|
||
/// <summary>API для работы с треками.</summary>
|
||
public YTrackAPI Track { get; internal set; } = null!;
|
||
/// <summary>API для работы с очередями.</summary>
|
||
public YQueueAPI Queue { get; internal set; } = null!;
|
||
/// <summary>API для работы с пользователем и авторизацией.</summary>
|
||
public YUserAPI User { get; internal set; } = null!;
|
||
/// <summary>API для загрузки пользовательского контента.</summary>
|
||
public YUgcAPI UserGeneratedContent { get; internal set; } = null!;
|
||
/// <summary>API для работы с протоколом Ynison (WebSocket).</summary>
|
||
public YYnisonAPI Ynison { get; internal set; } = null!;
|
||
|
||
/// <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);
|
||
Landing = new YLandingAPI(this);
|
||
Library = new YLibraryAPI(this);
|
||
Playlist = new YPlaylistAPI(this);
|
||
Pins = new YPinsAPI(this);
|
||
Radio = new YRadioAPI(this);
|
||
Search = new YSearchAPI(this);
|
||
Track = new YTrackAPI(this);
|
||
Queue = new YQueueAPI(this);
|
||
User = new YUserAPI(this);
|
||
UserGeneratedContent = new YUgcAPI(this);
|
||
Ynison = new YYnisonAPI(this);
|
||
}
|
||
} |