using YandexMusic.API.Common;
using YandexMusic.API.Models.Common;
using YandexMusic.API.Models.Search;
using YandexMusic.API.Requests.Search;
namespace YandexMusic.API;
///
/// API для поиска
///
public partial class YSearchAPI : YCommonAPI
{
public YSearchAPI(YandexMusicApi yandex) : base(yandex)
{
}
///
/// Поиск по трекам
///
/// Хранилище
/// Имя трека
/// Номер страницы
/// Размер страницы
///
public Task> TrackAsync(AuthStorage storage, string trackName, int pageNumber = 0, int pageSize = 20)
{
return SearchAsync(storage, trackName, YSearchType.Track, pageNumber, pageSize);
}
///
/// Поиск по альбомам
///
/// Хранилище
/// Имя альбома
/// Номер страницы
/// Размер страницы
///
public Task> AlbumsAsync(AuthStorage storage, string albumName, int pageNumber = 0, int pageSize = 20)
{
return SearchAsync(storage, albumName, YSearchType.Album, pageNumber, pageSize);
}
///
/// Поиск по артисту
///
/// Хранилище
/// Имя артиста
/// Номер страницы
/// Размер страницы
///
public Task> ArtistAsync(AuthStorage storage, string artistName, int pageNumber = 0, int pageSize = 20)
{
return SearchAsync(storage, artistName, YSearchType.Artist, pageNumber, pageSize);
}
///
/// Поиск по плейлистам
///
/// Хранилище
/// Имя плейлиста
/// Номер страницы
/// Размер страницы
///
public Task> PlaylistAsync(AuthStorage storage, string playlistName, int pageNumber = 0, int pageSize = 20)
{
return SearchAsync(storage, playlistName, YSearchType.Playlist, pageNumber, pageSize);
}
///
/// Поиск по плейлистам
///
/// Хранилище
/// Имя подкаста
/// Номер страницы
/// Размер страницы
///
public Task> PodcastEpisodeAsync(AuthStorage storage, string podcastName, int pageNumber = 0, int pageSize = 20)
{
return SearchAsync(storage, podcastName, YSearchType.PodcastEpisode, pageNumber, pageSize);
}
///
/// Поиск по видео
///
/// Хранилище
/// Имя видео
/// Номер страницы
/// Размер страницы
///
public Task> VideosAsync(AuthStorage storage, string videoName, int pageNumber = 0, int pageSize = 20)
{
return SearchAsync(storage, videoName, YSearchType.Video, pageNumber, pageSize);
}
///
/// Поиск по пользователям
///
/// Хранилище
/// Имя пользователя
/// Номер страницы
/// Размер страницы
///
public Task> UsersAsync(AuthStorage storage, string userName, int pageNumber = 0, int pageSize = 20)
{
return SearchAsync(storage, userName, YSearchType.User, pageNumber, pageSize);
}
///
/// Поиск
///
/// Хранилище
/// Поисковый запрос
/// Тип поиска
/// Страница
/// Размер страницы
///
public Task> SearchAsync(AuthStorage storage, string searchText, YSearchType searchType, int page = 0, int pageSize = 20)
{
return new YSearchBuilder(api, storage)
.Build((searchText, searchType, page, pageSize))
.GetResponseAsync();
}
///
/// Подсказка
///
/// Хранилище
/// Поисковый запрос
///
public Task> SuggestAsync(AuthStorage storage, string searchText)
{
return new YSearchSuggestBuilder(api, storage)
.Build(searchText)
.GetResponseAsync();
}
}