mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-05-24 02:02:29 -04:00
Extend playlist creation capabilities
This commit is contained in:
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…
x
Reference in New Issue
Block a user