Полностью переписанное 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,139 +1,38 @@
|
||||
using YandexMusic.API.Common;
|
||||
using YandexMusic.API.Models.Common;
|
||||
using YandexMusic.API.Models.Search;
|
||||
using YandexMusic.API.Requests.Search;
|
||||
|
||||
namespace YandexMusic.API;
|
||||
|
||||
/// <summary>
|
||||
/// API для поиска
|
||||
/// </summary>
|
||||
public partial class YSearchAPI : YCommonAPI
|
||||
/// <summary>API для поиска.</summary>
|
||||
public class YSearchAPI : YCommonAPI
|
||||
{
|
||||
public YSearchAPI(YandexMusicApi api) : base(api) { }
|
||||
|
||||
public YSearchAPI(YandexMusicApi yandex) : base(yandex)
|
||||
{
|
||||
}
|
||||
public Task<YSearch?> TrackAsync(string trackName, int page = 0, int pageSize = 20)
|
||||
=> SearchAsync(trackName, YSearchType.Track, page, pageSize);
|
||||
|
||||
/// <summary>
|
||||
/// Поиск по трекам
|
||||
/// </summary>
|
||||
/// <param name="storage">Хранилище</param>
|
||||
/// <param name="trackName">Имя трека</param>
|
||||
/// <param name="pageNumber">Номер страницы</param>
|
||||
/// <param name="pageSize">Размер страницы</param>
|
||||
/// <returns></returns>
|
||||
public Task<YResponse<YSearch>> TrackAsync(AuthStorage storage, string trackName, int pageNumber = 0, int pageSize = 20)
|
||||
{
|
||||
return SearchAsync(storage, trackName, YSearchType.Track, pageNumber, pageSize);
|
||||
}
|
||||
public Task<YSearch?> AlbumsAsync(string albumName, int page = 0, int pageSize = 20)
|
||||
=> SearchAsync(albumName, YSearchType.Album, page, pageSize);
|
||||
|
||||
/// <summary>
|
||||
/// Поиск по альбомам
|
||||
/// </summary>
|
||||
/// <param name="storage">Хранилище</param>
|
||||
/// <param name="albumName">Имя альбома</param>
|
||||
/// <param name="pageNumber">Номер страницы</param>
|
||||
/// <param name="pageSize">Размер страницы</param>
|
||||
/// <returns></returns>
|
||||
public Task<YResponse<YSearch>> AlbumsAsync(AuthStorage storage, string albumName, int pageNumber = 0, int pageSize = 20)
|
||||
{
|
||||
return SearchAsync(storage, albumName, YSearchType.Album, pageNumber, pageSize);
|
||||
}
|
||||
public Task<YSearch?> ArtistAsync(string artistName, int page = 0, int pageSize = 20)
|
||||
=> SearchAsync(artistName, YSearchType.Artist, page, pageSize);
|
||||
|
||||
/// <summary>
|
||||
/// Поиск по артисту
|
||||
/// </summary>
|
||||
/// <param name="storage">Хранилище</param>
|
||||
/// <param name="artistName">Имя артиста</param>
|
||||
/// <param name="pageNumber">Номер страницы</param>
|
||||
/// <param name="pageSize">Размер страницы</param>
|
||||
/// <returns></returns>
|
||||
public Task<YResponse<YSearch>> ArtistAsync(AuthStorage storage, string artistName, int pageNumber = 0, int pageSize = 20)
|
||||
{
|
||||
return SearchAsync(storage, artistName, YSearchType.Artist, pageNumber, pageSize);
|
||||
}
|
||||
public Task<YSearch?> PlaylistAsync(string playlistName, int page = 0, int pageSize = 20)
|
||||
=> SearchAsync(playlistName, YSearchType.Playlist, page, pageSize);
|
||||
|
||||
/// <summary>
|
||||
/// Поиск по плейлистам
|
||||
/// </summary>
|
||||
/// <param name="storage">Хранилище</param>
|
||||
/// <param name="playlistName">Имя плейлиста</param>
|
||||
/// <param name="pageNumber">Номер страницы</param>
|
||||
/// <param name="pageSize">Размер страницы</param>
|
||||
/// <returns></returns>
|
||||
public Task<YResponse<YSearch>> PlaylistAsync(AuthStorage storage, string playlistName, int pageNumber = 0, int pageSize = 20)
|
||||
{
|
||||
return SearchAsync(storage, playlistName, YSearchType.Playlist, pageNumber, pageSize);
|
||||
}
|
||||
public Task<YSearch?> PodcastEpisodeAsync(string podcastName, int page = 0, int pageSize = 20)
|
||||
=> SearchAsync(podcastName, YSearchType.PodcastEpisode, page, pageSize);
|
||||
|
||||
/// <summary>
|
||||
/// Поиск по плейлистам
|
||||
/// </summary>
|
||||
/// <param name="storage">Хранилище</param>
|
||||
/// <param name="podcastName">Имя подкаста</param>
|
||||
/// <param name="pageNumber">Номер страницы</param>
|
||||
/// <param name="pageSize">Размер страницы</param>
|
||||
/// <returns></returns>
|
||||
public Task<YResponse<YSearch>> PodcastEpisodeAsync(AuthStorage storage, string podcastName, int pageNumber = 0, int pageSize = 20)
|
||||
{
|
||||
return SearchAsync(storage, podcastName, YSearchType.PodcastEpisode, pageNumber, pageSize);
|
||||
}
|
||||
public Task<YSearch?> VideosAsync(string videoName, int page = 0, int pageSize = 20)
|
||||
=> SearchAsync(videoName, YSearchType.Video, page, pageSize);
|
||||
|
||||
/// <summary>
|
||||
/// Поиск по видео
|
||||
/// </summary>
|
||||
/// <param name="storage">Хранилище</param>
|
||||
/// <param name="videoName">Имя видео</param>
|
||||
/// <param name="pageNumber">Номер страницы</param>
|
||||
/// <param name="pageSize">Размер страницы</param>
|
||||
/// <returns></returns>
|
||||
public Task<YResponse<YSearch>> VideosAsync(AuthStorage storage, string videoName, int pageNumber = 0, int pageSize = 20)
|
||||
{
|
||||
return SearchAsync(storage, videoName, YSearchType.Video, pageNumber, pageSize);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Поиск по пользователям
|
||||
/// </summary>
|
||||
/// <param name="storage">Хранилище</param>
|
||||
/// <param name="userName">Имя пользователя</param>
|
||||
/// <param name="pageNumber">Номер страницы</param>
|
||||
/// <param name="pageSize">Размер страницы</param>
|
||||
/// <returns></returns>
|
||||
public Task<YResponse<YSearch>> UsersAsync(AuthStorage storage, string userName, int pageNumber = 0, int pageSize = 20)
|
||||
{
|
||||
return SearchAsync(storage, userName, YSearchType.User, pageNumber, pageSize);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Поиск
|
||||
/// </summary>
|
||||
/// <param name="storage">Хранилище</param>
|
||||
/// <param name="searchText">Поисковый запрос</param>
|
||||
/// <param name="searchType">Тип поиска</param>
|
||||
/// <param name="page">Страница</param>
|
||||
/// <param name="pageSize">Размер страницы</param>
|
||||
/// <returns></returns>
|
||||
public Task<YResponse<YSearch>> SearchAsync(AuthStorage storage, string searchText, YSearchType searchType, int page = 0, int pageSize = 20)
|
||||
{
|
||||
return new YSearchBuilder(api, storage)
|
||||
.Build((searchText, searchType, page, pageSize))
|
||||
.GetResponseAsync();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Подсказка
|
||||
/// </summary>
|
||||
/// <param name="storage">Хранилище</param>
|
||||
/// <param name="searchText">Поисковый запрос</param>
|
||||
/// <returns></returns>
|
||||
public Task<YResponse<YSearchSuggest>> SuggestAsync(AuthStorage storage, string searchText)
|
||||
{
|
||||
return new YSearchSuggestBuilder(api, storage)
|
||||
.Build(searchText)
|
||||
.GetResponseAsync();
|
||||
}
|
||||
public Task<YSearch?> UsersAsync(string userName, int page = 0, int pageSize = 20)
|
||||
=> SearchAsync(userName, YSearchType.User, page, pageSize);
|
||||
|
||||
public Task<YSearch?> SearchAsync(string searchText, YSearchType searchType, int page = 0, int pageSize = 20)
|
||||
=> new YSearchBuilder(Api).ExecuteAsync((searchText, searchType, page, pageSize));
|
||||
|
||||
public Task<YSearchSuggest?> GetSearchSuggestionsAsync(string searchText)
|
||||
=> new YSearchSuggestBuilder(Api).ExecuteAsync(searchText);
|
||||
}
|
||||
Reference in New Issue
Block a user