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(); } }