aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Emby.Server.Implementations/Playlists/PlaylistManager.cs10
-rw-r--r--Jellyfin.Api/Controllers/PlaylistsController.cs4
-rw-r--r--Jellyfin.Api/Models/PlaylistDtos/CreatePlaylistDto.cs13
-rw-r--r--MediaBrowser.Model/Playlists/PlaylistCreationRequest.cs7
4 files changed, 24 insertions, 10 deletions
diff --git a/Emby.Server.Implementations/Playlists/PlaylistManager.cs b/Emby.Server.Implementations/Playlists/PlaylistManager.cs
index 6724d54d1..6b169db79 100644
--- a/Emby.Server.Implementations/Playlists/PlaylistManager.cs
+++ b/Emby.Server.Implementations/Playlists/PlaylistManager.cs
@@ -85,12 +85,7 @@ namespace Emby.Server.Implementations.Playlists
{
foreach (var itemId in options.ItemIdList)
{
- var item = _libraryManager.GetItemById(itemId);
- if (item is null)
- {
- throw new ArgumentException("No item exists with the supplied Id");
- }
-
+ var item = _libraryManager.GetItemById(itemId) ?? throw new ArgumentException("No item exists with the supplied Id");
if (item.MediaType != MediaType.Unknown)
{
options.MediaType = item.MediaType;
@@ -139,7 +134,8 @@ namespace Emby.Server.Implementations.Playlists
Name = name,
Path = path,
OwnerUserId = options.UserId,
- Shares = options.Shares ?? Array.Empty<Share>()
+ Shares = options.Shares ?? [],
+ OpenAccess = options.OpenAccess ?? false
};
playlist.SetMediaType(options.MediaType);
diff --git a/Jellyfin.Api/Controllers/PlaylistsController.cs b/Jellyfin.Api/Controllers/PlaylistsController.cs
index f0e8227fd..bf618e8fd 100644
--- a/Jellyfin.Api/Controllers/PlaylistsController.cs
+++ b/Jellyfin.Api/Controllers/PlaylistsController.cs
@@ -92,7 +92,9 @@ public class PlaylistsController : BaseJellyfinApiController
Name = name ?? createPlaylistRequest?.Name,
ItemIdList = ids,
UserId = userId.Value,
- MediaType = mediaType ?? createPlaylistRequest?.MediaType
+ MediaType = mediaType ?? createPlaylistRequest?.MediaType,
+ Shares = createPlaylistRequest?.Shares.ToArray(),
+ OpenAccess = createPlaylistRequest?.OpenAccess
}).ConfigureAwait(false);
return result;
diff --git a/Jellyfin.Api/Models/PlaylistDtos/CreatePlaylistDto.cs b/Jellyfin.Api/Models/PlaylistDtos/CreatePlaylistDto.cs
index bdc488871..a82bff65e 100644
--- a/Jellyfin.Api/Models/PlaylistDtos/CreatePlaylistDto.cs
+++ b/Jellyfin.Api/Models/PlaylistDtos/CreatePlaylistDto.cs
@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Text.Json.Serialization;
using Jellyfin.Data.Enums;
using Jellyfin.Extensions.Json.Converters;
+using MediaBrowser.Model.Entities;
namespace Jellyfin.Api.Models.PlaylistDtos;
@@ -20,7 +21,7 @@ public class CreatePlaylistDto
/// Gets or sets item ids to add to the playlist.
/// </summary>
[JsonConverter(typeof(JsonCommaDelimitedArrayConverterFactory))]
- public IReadOnlyList<Guid> Ids { get; set; } = Array.Empty<Guid>();
+ public IReadOnlyList<Guid> Ids { get; set; } = [];
/// <summary>
/// Gets or sets the user id.
@@ -31,4 +32,14 @@ public class CreatePlaylistDto
/// Gets or sets the media type.
/// </summary>
public MediaType? MediaType { get; set; }
+
+ /// <summary>
+ /// Gets or sets the shares.
+ /// </summary>
+ public IReadOnlyList<Share> Shares { get; set; } = [];
+
+ /// <summary>
+ /// Gets or sets a value indicating whether open access is enabled.
+ /// </summary>
+ public bool OpenAccess { get; set; }
}
diff --git a/MediaBrowser.Model/Playlists/PlaylistCreationRequest.cs b/MediaBrowser.Model/Playlists/PlaylistCreationRequest.cs
index 62d496d04..93eccd5c7 100644
--- a/MediaBrowser.Model/Playlists/PlaylistCreationRequest.cs
+++ b/MediaBrowser.Model/Playlists/PlaylistCreationRequest.cs
@@ -33,5 +33,10 @@ public class PlaylistCreationRequest
/// <summary>
/// Gets or sets the shares.
/// </summary>
- public Share[]? Shares { get; set; }
+ public IReadOnlyList<Share>? Shares { get; set; }
+
+ /// <summary>
+ /// Gets or sets a value indicating whether open access is enabled.
+ /// </summary>
+ public bool? OpenAccess { get; set; }
}