aboutsummaryrefslogtreecommitdiff
path: root/Jellyfin.Api/Extensions
diff options
context:
space:
mode:
Diffstat (limited to 'Jellyfin.Api/Extensions')
-rw-r--r--Jellyfin.Api/Extensions/DtoExtensions.cs32
1 files changed, 32 insertions, 0 deletions
diff --git a/Jellyfin.Api/Extensions/DtoExtensions.cs b/Jellyfin.Api/Extensions/DtoExtensions.cs
index 9c24be82ea..36a8e197a2 100644
--- a/Jellyfin.Api/Extensions/DtoExtensions.cs
+++ b/Jellyfin.Api/Extensions/DtoExtensions.cs
@@ -1,4 +1,5 @@
using System.Collections.Generic;
+using Jellyfin.Data.Enums;
using MediaBrowser.Controller.Dto;
using MediaBrowser.Model.Entities;
@@ -10,6 +11,37 @@ namespace Jellyfin.Api.Extensions;
public static class DtoExtensions
{
/// <summary>
+ /// Gets the BaseItemKind values associated with the specified CollectionType.
+ /// </summary>
+ /// <param name="collectionType">The collection type to map to BaseItemKind values.</param>
+ /// <returns>An array of BaseItemKind values that correspond to the collection type.</returns>
+ public static BaseItemKind[] GetBaseItemKindsForCollectionType(CollectionType? collectionType)
+ {
+ switch (collectionType)
+ {
+ case CollectionType.movies:
+ return [BaseItemKind.Movie];
+ case CollectionType.tvshows:
+ return [BaseItemKind.Series];
+ case CollectionType.music:
+ return [BaseItemKind.MusicAlbum];
+ case CollectionType.musicvideos:
+ return [BaseItemKind.MusicVideo];
+ case CollectionType.books:
+ return [BaseItemKind.Book, BaseItemKind.AudioBook];
+ case CollectionType.boxsets:
+ return [BaseItemKind.BoxSet];
+ case CollectionType.homevideos:
+ case CollectionType.photos:
+ return [BaseItemKind.Video, BaseItemKind.Photo];
+ case CollectionType.folders:
+ return [];
+ default:
+ return [BaseItemKind.Video, BaseItemKind.Audio, BaseItemKind.Photo, BaseItemKind.Movie, BaseItemKind.Series];
+ }
+ }
+
+ /// <summary>
/// Add additional DtoOptions.
/// </summary>
/// <remarks>