Добален поиск по трекам

This commit is contained in:
FrigaT
2026-04-14 17:34:01 +03:00
parent b012fe37cc
commit 0369f0af07
8 changed files with 443 additions and 31 deletions

View File

@@ -1,5 +1,6 @@
using Microsoft.AspNetCore.DataProtection;
using PlaylistShared.Api.Entities;
using PlaylistShared.Shared.DTO;
using YandexMusic;
using YandexMusic.API.Extensions.API;
using YandexMusic.API.Models.Playlist;
@@ -94,4 +95,22 @@ public class YandexMusicService
return null;
}
}
public async Task<List<YandexTrackSearchResult>> SearchTracksAsync(ApplicationUser user, string query, int limit = 20)
{
var client = await CreateClientAsync(user);
if (client == null) return new List<YandexTrackSearchResult>();
var searchResult = await client.SearchAsync(query, YandexMusic.API.Models.Common.YSearchType.Track, page: 0, pageSize: limit);
if (searchResult?.Tracks?.Results == null) return new List<YandexTrackSearchResult>();
return searchResult.Tracks.Results.Select(t => new YandexTrackSearchResult
{
TrackId = t.Id,
Title = t.Title,
Artists = t.Artists?.Select(a => a.Name).ToList() ?? new List<string>(),
CoverUri = t.CoverUri ?? string.Empty,
DurationMs = t.DurationMs,
}).ToList();
}
}