Extend playlist creation capabilities

pull/11220/head
Shadowghost 8 months ago
parent 88b3490d17
commit f1dc1610a2

@ -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);

@ -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;

@ -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; }
}

@ -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; }
}

Loading…
Cancel
Save