using YandexMusic.API.Common; namespace YandexMusic.API; /// Главный класс API Яндекс Музыки. Предоставляет доступ ко всем веткам API. public class YandexMusicApi { /// HttpClient, используемый для всех запросов. public HttpClient HttpClient { get; } /// Хранилище данных авторизации. public AuthStorage Storage { get; } /// API для работы с альбомами. public YAlbumAPI Album { get; internal set; } = null!; /// API для работы с исполнителями. public YArtistAPI Artist { get; internal set; } = null!; /// API для работы с лейблами. public YLabelAPI Label { get; internal set; } = null!; /// API для работы с главной страницей (лендингом). public YLandingAPI Landing { get; internal set; } = null!; /// API для работы с библиотекой (лайки, дизлайки). public YLibraryAPI Library { get; internal set; } = null!; /// API для работы с плейлистами. public YPlaylistAPI Playlist { get; internal set; } = null!; /// API для работы с закреплёнными объектами. public YPinsAPI Pins { get; internal set; } = null!; /// API для работы с радио. public YRadioAPI Radio { get; internal set; } = null!; /// API для поиска. public YSearchAPI Search { get; internal set; } = null!; /// API для работы с треками. public YTrackAPI Track { get; internal set; } = null!; /// API для работы с очередями. public YQueueAPI Queue { get; internal set; } = null!; /// API для работы с пользователем и авторизацией. public YUserAPI User { get; internal set; } = null!; /// API для загрузки пользовательского контента. public YUgcAPI UserGeneratedContent { get; internal set; } = null!; /// API для работы с протоколом Ynison (WebSocket). public YYnisonAPI Ynison { get; internal set; } = null!; /// /// Инициализирует новый экземпляр API. /// /// HttpClient для выполнения запросов. /// Хранилище авторизации. 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); } }