Design Prot Merge #1

Merged
NotS1mp merged 217 commits from design-prot into master 2026-09-21 15:48:16 +00:00
4 changed files with 17 additions and 11 deletions
Showing only changes of commit 8c62faa822 - Show all commits
@@ -167,8 +167,11 @@ namespace Musify.Infrastructure.Services
{ {
var ordered = thumbnails.OrderBy(thumbnail => thumbnail.Width).ToList(); var ordered = thumbnails.OrderBy(thumbnail => thumbnail.Width).ToList();
var chosen = ordered.FirstOrDefault(thumbnail => thumbnail.Width >= configuration.ThumbnailSize) var square = ordered.Where(thumbnail => YouTubeThumbnail.IsSquare(thumbnail.Url)).ToList();
?? ordered.LastOrDefault(); var candidates = square.Count > 0 ? square : ordered;
var chosen = candidates.FirstOrDefault(thumbnail => thumbnail.Width >= configuration.ThumbnailSize)
?? candidates.LastOrDefault();
return chosen is null return chosen is null
? string.Empty ? string.Empty
@@ -2,6 +2,9 @@ namespace Musify.Infrastructure.Services
{ {
public static class YouTubeThumbnail public static class YouTubeThumbnail
{ {
public static bool IsSquare(string url) =>
url.Contains("googleusercontent.com", StringComparison.OrdinalIgnoreCase);
public static string WithSize(string url, int size) public static string WithSize(string url, int size)
{ {
if (string.IsNullOrEmpty(url)) if (string.IsNullOrEmpty(url))
@@ -40,9 +43,9 @@ namespace Musify.Infrastructure.Services
private static string YtImgFileName(int size) => size switch private static string YtImgFileName(int size) => size switch
{ {
<= 120 => "default.jpg", <= 90 => "default.jpg",
<= 320 => "mqdefault.jpg", <= 180 => "mqdefault.jpg",
<= 480 => "hqdefault.jpg", <= 360 => "hqdefault.jpg",
_ => "maxresdefault.jpg" _ => "maxresdefault.jpg"
}; };
+3 -3
View File
@@ -55,9 +55,9 @@ export function resizeThumbnailUrl(url: URL, size: number): string {
} }
function ytImgFileName(size: number): string { function ytImgFileName(size: number): string {
if (size <= 120) return 'default.jpg'; if (size <= 90) return 'default.jpg';
if (size <= 320) return 'mqdefault.jpg'; if (size <= 180) return 'mqdefault.jpg';
if (size <= 480) return 'hqdefault.jpg'; if (size <= 360) return 'hqdefault.jpg';
return 'maxresdefault.jpg'; return 'maxresdefault.jpg';
} }
+3 -3
View File
@@ -1,7 +1,7 @@
export const THUMBNAIL_SIZES = { export const THUMBNAIL_SIZES = {
small: 96, small: 128,
medium: 160, medium: 192,
large: 320 large: 360
} as const; } as const;
export type ThumbnailSize = keyof typeof THUMBNAIL_SIZES; export type ThumbnailSize = keyof typeof THUMBNAIL_SIZES;