using YandexMusic.API.Common; using YandexMusic.API.Models.Common; using YandexMusic.API.Models.Radio; using YandexMusic.API.Models.Track; using YandexMusic.API.Requests.Radio; namespace YandexMusic.API; /// /// API для взаимодействия с радио /// public partial class YRadioAPI : YCommonAPI { public YRadioAPI(YandexMusicApi yandex) : base(yandex) { } /// /// Получение списка рекомендованных радиостанций /// /// Хранилище /// public Task> GetStationsDashboardAsync(AuthStorage storage) { return new YGetStationsDashboardBuilder(api, storage) .Build(null) .GetResponseAsync(); } /// /// Получение списка радиостанций /// /// Хранилище /// public Task>> GetStationsAsync(AuthStorage storage) { return new YGetStationsBuilder(api, storage) .Build(null) .GetResponseAsync(); } /// /// Получение информации о радиостанции /// /// Хранилище /// Тип /// Тэг /// public Task>> GetStationAsync(AuthStorage storage, string type, string tag) { return new YGetStationBuilder(api, storage) .Build((type, tag)) .GetResponseAsync(); } /// /// Получение информации о радиостанции /// /// Хранилище /// Идентификатор станции /// public Task>> GetStationAsync(AuthStorage storage, YStationId id) { return GetStationAsync(storage, id.Type, id.Tag); } /// /// Получение последовательности треков радиостанции /// /// Хранилище /// Радиостанция /// Идентификатор предыдущего трека /// public Task> GetStationTracksAsync(AuthStorage storage, YStation station, string prevTrackId = "") { return new YGetStationTracksBuilder(api, storage) .Build((station.Station, prevTrackId)) .GetResponseAsync(); } /// /// Установка настроек подбора треков /// /// Хранилище /// Радиостанция /// Настройки /// public Task> SetStationSettings2Async(AuthStorage storage, YStation station, YStationSettings2 settings) { return new YSetSettings2Builder(api, storage) .Build((station.Station, settings)) .GetResponseAsync(); } /// /// Отправка обратной связи на действия при прослушивании радио /// /// Хранилище /// Радиостанция /// Тип обратной связи /// Трек /// Уникальный идентификатор партии треков. Возвращается при получении треков /// Сколько было проиграно секунд трека перед действием /// public Task SendStationFeedBackAsync(AuthStorage storage, YStation station, YStationFeedbackType type, YTrack track = null, string batchId = "", double totalPlayedSeconds = 0) { return new YSetStationFeedbackBuilder(api, storage) .Build((type, station, track, batchId, totalPlayedSeconds)) .GetResponseAsync(); } }