From bb50bcbf2274c1f22d7e1ce38adc274f465b45c8 Mon Sep 17 00:00:00 2001 From: FrigaT Date: Thu, 16 Apr 2026 19:10:47 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=B0=D0=BD=D0=BE=20=D0=BF=D0=BE=D0=BB=D1=83=D1=87=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=BF=D0=BB=D0=B5=D0=B9=D0=BB=D0=B8=D1=81=D1=82?= =?UTF-8?q?=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/YandexMusicService.cs | 48 +++++++++++++------ .../SharedPlaylist/Cards/AlbumCard.razor | 2 +- .../SharedPlaylist/Cards/PlaylistCard.razor | 2 +- 3 files changed, 35 insertions(+), 17 deletions(-) diff --git a/PlaylistShared.Api/Services/YandexMusicService.cs b/PlaylistShared.Api/Services/YandexMusicService.cs index efc85e4..0a6333c 100644 --- a/PlaylistShared.Api/Services/YandexMusicService.cs +++ b/PlaylistShared.Api/Services/YandexMusicService.cs @@ -230,23 +230,21 @@ public class YandexMusicService else if (searchType == TrackSearchType.Album) { var album = await client.GetAlbumAsync(id); - if (album != null) + + result.Tracks = album?.Volumes.SelectMany(v => v).Select(t => new YandexTrack { - result.Tracks = album.Volumes.SelectMany(v => v).Select(t => new YandexTrack + TrackId = t.Id, + Title = t.Title, + Artists = t.Artists.Select(t => new YandexArtist() { - TrackId = t.Id, - Title = t.Title, - Artists = t.Artists.Select(t => new YandexArtist() - { - Id = t.Id, - Name = t.Name, - CoverUrl = t.Cover.GetUrl(), - Description = t.Description?.Text ?? string.Empty, - }).ToList(), - CoverUri = t.CoverUri ?? string.Empty, - DurationMs = t.DurationMs, - }).ToList(); - } + Id = t.Id, + Name = t.Name, + CoverUrl = t.Cover.GetUrl(), + Description = t.Description?.Text ?? string.Empty, + }).ToList(), + CoverUri = t.CoverUri ?? string.Empty, + DurationMs = t.DurationMs, + }).ToList(); } else if (searchType == TrackSearchType.Artist) @@ -298,6 +296,26 @@ public class YandexMusicService } } + else if (searchType == TrackSearchType.Playlist) + { + var playlist = await client.GetPlaylistAsync(id); + + result.Tracks = playlist?.Tracks.Select(p => new YandexTrack + { + TrackId = p.Track.Id, + CoverUri = p.Track.CoverUri, + Artists = p.Track.Artists.Select(a => new YandexArtist + { + Id = a.Id, + Name = a.Name, + CoverUrl = a.Cover.GetUrl(), + Description = a.Description?.Text ?? string.Empty, + }).ToList(), + Title = p.Track.Title, + DurationMs = p.Track.DurationMs, + }).ToList(); + } + return result; } } \ No newline at end of file diff --git a/PlaylistShared.Pwa/Components/SharedPlaylist/Cards/AlbumCard.razor b/PlaylistShared.Pwa/Components/SharedPlaylist/Cards/AlbumCard.razor index 4c62a67..dd053c0 100644 --- a/PlaylistShared.Pwa/Components/SharedPlaylist/Cards/AlbumCard.razor +++ b/PlaylistShared.Pwa/Components/SharedPlaylist/Cards/AlbumCard.razor @@ -1,6 +1,6 @@ @using PlaylistShared.Shared.Yandex - + @if (!string.IsNullOrEmpty(Item.CoverUrl)) { diff --git a/PlaylistShared.Pwa/Components/SharedPlaylist/Cards/PlaylistCard.razor b/PlaylistShared.Pwa/Components/SharedPlaylist/Cards/PlaylistCard.razor index b553900..bdf9580 100644 --- a/PlaylistShared.Pwa/Components/SharedPlaylist/Cards/PlaylistCard.razor +++ b/PlaylistShared.Pwa/Components/SharedPlaylist/Cards/PlaylistCard.razor @@ -1,6 +1,6 @@ @using PlaylistShared.Shared.Yandex - + @if (!string.IsNullOrEmpty(Item.CoverUrl)) {