Files
YandexMusic/YandexMusic.API/API/YSearchAPI.cs
FrigaT 36e28ce3fe
All checks were successful
Release / pack-and-publish (release) Successful in 36s
Полностью переписанное api
2026-04-19 17:00:05 +03:00

38 lines
1.7 KiB
C#

using YandexMusic.API.Models.Common;
using YandexMusic.API.Models.Search;
using YandexMusic.API.Requests.Search;
namespace YandexMusic.API;
/// <summary>API для поиска.</summary>
public class YSearchAPI : YCommonAPI
{
public YSearchAPI(YandexMusicApi api) : base(api) { }
public Task<YSearch?> TrackAsync(string trackName, int page = 0, int pageSize = 20)
=> SearchAsync(trackName, YSearchType.Track, page, pageSize);
public Task<YSearch?> AlbumsAsync(string albumName, int page = 0, int pageSize = 20)
=> SearchAsync(albumName, YSearchType.Album, page, pageSize);
public Task<YSearch?> ArtistAsync(string artistName, int page = 0, int pageSize = 20)
=> SearchAsync(artistName, YSearchType.Artist, page, pageSize);
public Task<YSearch?> PlaylistAsync(string playlistName, int page = 0, int pageSize = 20)
=> SearchAsync(playlistName, YSearchType.Playlist, page, pageSize);
public Task<YSearch?> PodcastEpisodeAsync(string podcastName, int page = 0, int pageSize = 20)
=> SearchAsync(podcastName, YSearchType.PodcastEpisode, page, pageSize);
public Task<YSearch?> VideosAsync(string videoName, int page = 0, int pageSize = 20)
=> SearchAsync(videoName, YSearchType.Video, page, pageSize);
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);
}