Files
YandexMusic/YandexMusic.API/YandexMusicApi.cs
FrigaT 36e28ce3fe
All checks were successful
Release / pack-and-publish (release) Successful in 36s
Полностью переписанное api
2026-04-19 17:00:05 +03:00

67 lines
3.6 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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);
}
}