@@ -144,10 +144,4 @@
await OnPermissionsChanged.InvokeAsync();
}
}
-
- private string FormatCoverUrl(string? url, string size)
- {
- if (string.IsNullOrEmpty(url)) return "";
- return "https://" + url.Replace("%%", size);
- }
}
\ No newline at end of file
diff --git a/PlaylistShared.Pwa/Components/SharedPlaylist/TracksTable.razor b/PlaylistShared.Pwa/Components/SharedPlaylist/TracksTable.razor
index 671cdc8..e5f2d8e 100644
--- a/PlaylistShared.Pwa/Components/SharedPlaylist/TracksTable.razor
+++ b/PlaylistShared.Pwa/Components/SharedPlaylist/TracksTable.razor
@@ -30,7 +30,7 @@
}
else
{
-
+
}
}
@@ -141,12 +141,6 @@
await OnPlayTrack.InvokeAsync(trackId);
}
- private string FormatCoverUrl(string? url, string size)
- {
- if (string.IsNullOrEmpty(url)) return "";
- return "https://" + url.Replace("%%", size);
- }
-
private string FormatDuration(long ms)
{
var seconds = ms / 1000;
diff --git a/PlaylistShared.Pwa/Extensions/StringExtensions.cs b/PlaylistShared.Pwa/Extensions/StringExtensions.cs
new file mode 100644
index 0000000..42f0897
--- /dev/null
+++ b/PlaylistShared.Pwa/Extensions/StringExtensions.cs
@@ -0,0 +1,19 @@
+namespace PlaylistShared.Pwa.Extensions;
+
+public static class StringExtensions
+{
+ ///
+ /// Преобразует шаблон URL обложки Яндекс.Музыки в полный URL с указанным размером.
+ ///
+ ///
Шаблон URL (например, "avatars.yandex.net/get-music-content/.../%%")
+ ///
Желаемая ширина обложки (по умолчанию 200)
+ ///
Желаемая высота обложки (по умолчанию 200)
+ ///
Полный URL обложки или пустую строку, если входная строка null или пуста.
+ public static string FormatCoverUrl(this string? coverUri, int width = 200, int height = 200)
+ {
+ if (string.IsNullOrEmpty(coverUri))
+ return string.Empty;
+
+ return "https://" + coverUri.Replace("%%", $"{width}x{height}");
+ }
+}
\ No newline at end of file
diff --git a/PlaylistShared.Pwa/_Imports.razor b/PlaylistShared.Pwa/_Imports.razor
index e267f29..7eea931 100644
--- a/PlaylistShared.Pwa/_Imports.razor
+++ b/PlaylistShared.Pwa/_Imports.razor
@@ -13,4 +13,5 @@
@using MudBlazor
@using Microsoft.AspNetCore.Authorization
@using PlaylistShared.Shared
-@using PlaylistShared.Pwa.Components
\ No newline at end of file
+@using PlaylistShared.Pwa.Components
+@using PlaylistShared.Pwa.Extensions
\ No newline at end of file