70 lines
3.6 KiB
C#
70 lines
3.6 KiB
C#
using YandexMusic.API.Common;
|
||
|
||
namespace YandexMusic.API;
|
||
|
||
/// <summary>Главный класс API Яндекс Музыки. Предоставляет доступ ко всем веткам API.</summary>
|
||
public class YandexMusicApi
|
||
{
|
||
/// <summary>HttpClient, используемый для всех запросов.</summary>
|
||
internal HttpClient HttpClient { get; }
|
||
/// <summary>Хранилище данных авторизации.</summary>
|
||
internal 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 YAuthAPI Auth { 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>
|
||
public YPassportAPI Passport { 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(this);
|
||
Artist = new(this);
|
||
Label = new(this);
|
||
Landing = new(this);
|
||
Library = new(this);
|
||
Playlist = new(this);
|
||
Pins = new(this);
|
||
Radio = new(this);
|
||
Search = new(this);
|
||
Track = new(this);
|
||
Queue = new(this);
|
||
Auth = new(this);
|
||
UserGeneratedContent = new(this);
|
||
Ynison = new(this);
|
||
Passport = new(this);
|
||
}
|
||
} |