Полностью переписанное api
All checks were successful
Release / pack-and-publish (release) Successful in 36s
All checks were successful
Release / pack-and-publish (release) Successful in 36s
This commit is contained in:
@@ -1,72 +1,22 @@
|
||||
using YandexMusic.API.Common;
|
||||
using YandexMusic.API.Models.Common;
|
||||
using YandexMusic.API.Models.Queue;
|
||||
using YandexMusic.API.Requests.Queue;
|
||||
|
||||
namespace YandexMusic.API;
|
||||
|
||||
/// <summary>
|
||||
/// API для взаимодействия с очередями
|
||||
/// </summary>
|
||||
public partial class YQueueAPI : YCommonAPI
|
||||
/// <summary>API для работы с очередями воспроизведения.</summary>
|
||||
public class YQueueAPI : YCommonAPI
|
||||
{
|
||||
public YQueueAPI(YandexMusicApi yandex) : base(yandex)
|
||||
{
|
||||
}
|
||||
public YQueueAPI(YandexMusicApi api) : base(api) { }
|
||||
|
||||
/// <summary>
|
||||
/// Получение всех очередей треков с разных устройств для синхронизации между ними
|
||||
/// </summary>
|
||||
/// <param name="storage">Хранилище</param>
|
||||
/// <param name="device">Устройство</param>
|
||||
/// <returns></returns>
|
||||
public Task<YResponse<YQueueItemsContainer>> ListAsync(AuthStorage storage, string? device = null)
|
||||
{
|
||||
return new YQueuesListBuilder(api, storage)
|
||||
.Build(device)
|
||||
.GetResponseAsync();
|
||||
}
|
||||
public Task<YQueueItemsContainer?> ListAsync(string? device = null)
|
||||
=> new YQueuesListBuilder(Api, device).ExecuteAsync(null!);
|
||||
|
||||
/// <summary>
|
||||
/// Получение очереди
|
||||
/// </summary>
|
||||
/// <param name="storage">Хранилище</param>
|
||||
/// <param name="queueId">Идентификатор очереди</param>
|
||||
/// <returns></returns>
|
||||
public Task<YResponse<YQueue>> GetAsync(AuthStorage storage, string queueId)
|
||||
{
|
||||
return new YGetQueueBuilder(api, storage)
|
||||
.Build(queueId)
|
||||
.GetResponseAsync();
|
||||
}
|
||||
public Task<YQueue?> GetAsync(string queueId)
|
||||
=> new YGetQueueBuilder(Api).ExecuteAsync(queueId);
|
||||
|
||||
/// <summary>
|
||||
/// Создание новой очереди треков
|
||||
/// </summary>
|
||||
/// <param name="storage">Хранилище</param>
|
||||
/// <param name="queue">Очередь треков</param>
|
||||
/// <param name="device">Устройство</param>
|
||||
/// <returns></returns>
|
||||
public Task<YResponse<YNewQueue>> CreateAsync(AuthStorage storage, YQueue queue, string? device = null)
|
||||
{
|
||||
return new YQueueCreateBuilder(api, storage, device)
|
||||
.Build(queue)
|
||||
.GetResponseAsync();
|
||||
}
|
||||
public Task<YNewQueue?> CreateAsync(YQueue queue, string? device = null)
|
||||
=> new YQueueCreateBuilder(Api, device).ExecuteAsync(queue);
|
||||
|
||||
/// <summary>
|
||||
/// Установка текущего индекса проигрываемого трека в очереди треков
|
||||
/// </summary>
|
||||
/// <param name="storage">Хранилище</param>
|
||||
/// <param name="queueId">Идентификатор очереди</param>
|
||||
/// <param name="currentIndex">Текущий индекс</param>
|
||||
/// <param name="isInteractive">Флаг интерактивности</param>
|
||||
/// <param name="device">Устройство</param>
|
||||
/// <returns></returns>
|
||||
public Task<YResponse<YUpdatedQueue>> UpdatePositionAsync(AuthStorage storage, string queueId, int currentIndex, bool isInteractive, string device = null)
|
||||
{
|
||||
return new YQueueUpdatePositionBuilder(api, storage, device)
|
||||
.Build((queueId, currentIndex, isInteractive))
|
||||
.GetResponseAsync();
|
||||
}
|
||||
}
|
||||
public Task<YUpdatedQueue?> UpdatePositionAsync(string queueId, int currentIndex, bool isInteractive, string? device = null)
|
||||
=> new YQueueUpdatePositionBuilder(Api, device).ExecuteAsync((queueId, currentIndex, isInteractive));
|
||||
}
|
||||
Reference in New Issue
Block a user