aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCody Robibero <cody@robibe.ro>2022-06-13 16:27:16 -0600
committercrobibero <cody@robibe.ro>2022-06-14 19:30:59 -0400
commite4b095a7663ef0c41d1d3198ef03192533fa1039 (patch)
tree5085dec17a5248c653c206688519b3186b823b71
parentb35d608b1965f0fed636a84a2b19363330d92cd0 (diff)
Merge pull request #7894 from crobibero/search-hints
(cherry picked from commit 0f75f177361906626e658da86d63583d5111f006) Signed-off-by: crobibero <cody@robibe.ro>
-rw-r--r--Jellyfin.Api/Controllers/SearchController.cs3
-rw-r--r--src/Jellyfin.Extensions/ReadOnlyListExtension.cs16
2 files changed, 18 insertions, 1 deletions
diff --git a/Jellyfin.Api/Controllers/SearchController.cs b/Jellyfin.Api/Controllers/SearchController.cs
index 6ffedccbd..07e113ad3 100644
--- a/Jellyfin.Api/Controllers/SearchController.cs
+++ b/Jellyfin.Api/Controllers/SearchController.cs
@@ -6,6 +6,7 @@ using System.Linq;
using Jellyfin.Api.Constants;
using Jellyfin.Api.ModelBinders;
using Jellyfin.Data.Enums;
+using Jellyfin.Extensions;
using MediaBrowser.Controller.Drawing;
using MediaBrowser.Controller.Dto;
using MediaBrowser.Controller.Entities;
@@ -187,7 +188,7 @@ namespace Jellyfin.Api.Controllers
result.AlbumArtist = album.AlbumArtist;
break;
case Audio song:
- result.AlbumArtist = song.AlbumArtists?[0];
+ result.AlbumArtist = song.AlbumArtists?.FirstOrDefault();
result.Artists = song.Artists;
MusicAlbum musicAlbum = song.AlbumEntity;
diff --git a/src/Jellyfin.Extensions/ReadOnlyListExtension.cs b/src/Jellyfin.Extensions/ReadOnlyListExtension.cs
index 7785cfb49..ba99bb534 100644
--- a/src/Jellyfin.Extensions/ReadOnlyListExtension.cs
+++ b/src/Jellyfin.Extensions/ReadOnlyListExtension.cs
@@ -57,5 +57,21 @@ namespace Jellyfin.Extensions
return -1;
}
+
+ /// <summary>
+ /// Get the first or default item from a list.
+ /// </summary>
+ /// <param name="source">The source list.</param>
+ /// <typeparam name="T">The type of item.</typeparam>
+ /// <returns>The first item or default if list is empty.</returns>
+ public static T? FirstOrDefault<T>(this IReadOnlyList<T>? source)
+ {
+ if (source is null || source.Count == 0)
+ {
+ return default;
+ }
+
+ return source[0];
+ }
}
}