mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-04-20 17:14:42 +01:00
Merge branch 'master' into feat/book-persons
This commit is contained in:
@@ -63,7 +63,7 @@ namespace MediaBrowser.Controller.Entities.Audio
|
||||
/// </summary>
|
||||
/// <value>The type of the media.</value>
|
||||
[JsonIgnore]
|
||||
public override string MediaType => Model.Entities.MediaType.Audio;
|
||||
public override MediaType MediaType => MediaType.Audio;
|
||||
|
||||
public override double GetDefaultPrimaryImageAspectRatio()
|
||||
{
|
||||
|
||||
@@ -422,7 +422,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
/// </summary>
|
||||
/// <value>The type of the media.</value>
|
||||
[JsonIgnore]
|
||||
public virtual string MediaType => null;
|
||||
public virtual MediaType MediaType => MediaType.Unknown;
|
||||
|
||||
[JsonIgnore]
|
||||
public virtual string[] PhysicalLocations
|
||||
@@ -724,7 +724,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
|
||||
if (this is IHasCollectionType view)
|
||||
{
|
||||
if (string.Equals(view.CollectionType, CollectionType.LiveTv, StringComparison.OrdinalIgnoreCase))
|
||||
if (view.CollectionType == CollectionType.LiveTv)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -95,10 +95,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
}
|
||||
|
||||
var p = destProps.Find(x => x.Name == sourceProp.Name);
|
||||
if (p is not null)
|
||||
{
|
||||
p.SetValue(dest, v);
|
||||
}
|
||||
p?.SetValue(dest, v);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#pragma warning disable CS1591
|
||||
|
||||
using System.Text.Json.Serialization;
|
||||
using Jellyfin.Data.Enums;
|
||||
|
||||
namespace MediaBrowser.Controller.Entities
|
||||
{
|
||||
@@ -11,7 +12,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
public abstract class BasePluginFolder : Folder, ICollectionFolder
|
||||
{
|
||||
[JsonIgnore]
|
||||
public virtual string? CollectionType => null;
|
||||
public virtual CollectionType? CollectionType => null;
|
||||
|
||||
[JsonIgnore]
|
||||
public override bool SupportsInheritedParentImages => false;
|
||||
|
||||
@@ -18,7 +18,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
}
|
||||
|
||||
[JsonIgnore]
|
||||
public override string MediaType => Model.Entities.MediaType.Book;
|
||||
public override MediaType MediaType => MediaType.Book;
|
||||
|
||||
public override bool SupportsPlayedStatus => true;
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@ using System.Text.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Jellyfin.Data.Enums;
|
||||
using Jellyfin.Extensions.Json;
|
||||
using MediaBrowser.Controller.IO;
|
||||
using MediaBrowser.Controller.Library;
|
||||
@@ -69,7 +70,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
[JsonIgnore]
|
||||
public override bool SupportsInheritedParentImages => false;
|
||||
|
||||
public string CollectionType { get; set; }
|
||||
public CollectionType? CollectionType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the item's children.
|
||||
|
||||
@@ -598,7 +598,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
|
||||
for (var i = 0; i < childrenCount; i++)
|
||||
{
|
||||
await actionBlock.SendAsync(i).ConfigureAwait(false);
|
||||
await actionBlock.SendAsync(i, cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
actionBlock.Complete();
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
#pragma warning disable CA1819, CS1591
|
||||
|
||||
using System;
|
||||
using Jellyfin.Data.Enums;
|
||||
|
||||
namespace MediaBrowser.Controller.Entities
|
||||
{
|
||||
@@ -27,6 +28,6 @@ namespace MediaBrowser.Controller.Entities
|
||||
|
||||
public interface IHasCollectionType
|
||||
{
|
||||
string CollectionType { get; }
|
||||
CollectionType? CollectionType { get; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#nullable disable
|
||||
|
||||
using Jellyfin.Data.Enums;
|
||||
|
||||
namespace MediaBrowser.Controller.Entities
|
||||
{
|
||||
/// <summary>
|
||||
|
||||
@@ -36,13 +36,13 @@ namespace MediaBrowser.Controller.Entities
|
||||
ImageTypes = Array.Empty<ImageType>();
|
||||
IncludeItemTypes = Array.Empty<BaseItemKind>();
|
||||
ItemIds = Array.Empty<Guid>();
|
||||
MediaTypes = Array.Empty<string>();
|
||||
MediaTypes = Array.Empty<MediaType>();
|
||||
MinSimilarityScore = 20;
|
||||
OfficialRatings = Array.Empty<string>();
|
||||
OrderBy = Array.Empty<(string, SortOrder)>();
|
||||
OrderBy = Array.Empty<(ItemSortBy, SortOrder)>();
|
||||
PersonIds = Array.Empty<Guid>();
|
||||
PersonTypes = Array.Empty<string>();
|
||||
PresetViews = Array.Empty<string>();
|
||||
PresetViews = Array.Empty<CollectionType?>();
|
||||
SeriesStatuses = Array.Empty<SeriesStatus>();
|
||||
SourceTypes = Array.Empty<SourceType>();
|
||||
StudioIds = Array.Empty<Guid>();
|
||||
@@ -86,7 +86,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
|
||||
public bool? IncludeItemsByName { get; set; }
|
||||
|
||||
public string[] MediaTypes { get; set; }
|
||||
public MediaType[] MediaTypes { get; set; }
|
||||
|
||||
public BaseItemKind[] IncludeItemTypes { get; set; }
|
||||
|
||||
@@ -248,7 +248,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
|
||||
public Guid[] TopParentIds { get; set; }
|
||||
|
||||
public string[] PresetViews { get; set; }
|
||||
public CollectionType?[] PresetViews { get; set; }
|
||||
|
||||
public TrailerType[] TrailerTypes { get; set; }
|
||||
|
||||
@@ -284,7 +284,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
|
||||
public bool? HasChapterImages { get; set; }
|
||||
|
||||
public IReadOnlyList<(string OrderBy, SortOrder SortOrder)> OrderBy { get; set; }
|
||||
public IReadOnlyList<(ItemSortBy OrderBy, SortOrder SortOrder)> OrderBy { get; set; }
|
||||
|
||||
public DateTime? MinDateCreated { get; set; }
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ namespace MediaBrowser.Controller.Entities.Movies
|
||||
{
|
||||
public BoxSet()
|
||||
{
|
||||
DisplayOrder = ItemSortBy.PremiereDate;
|
||||
DisplayOrder = "PremiereDate";
|
||||
}
|
||||
|
||||
[JsonIgnore]
|
||||
@@ -116,13 +116,13 @@ namespace MediaBrowser.Controller.Entities.Movies
|
||||
{
|
||||
var children = base.GetChildren(user, includeLinkedChildren, query);
|
||||
|
||||
if (string.Equals(DisplayOrder, ItemSortBy.SortName, StringComparison.OrdinalIgnoreCase))
|
||||
if (string.Equals(DisplayOrder, "SortName", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
// Sort by name
|
||||
return LibraryManager.Sort(children, user, new[] { ItemSortBy.SortName }, SortOrder.Ascending).ToList();
|
||||
}
|
||||
|
||||
if (string.Equals(DisplayOrder, ItemSortBy.PremiereDate, StringComparison.OrdinalIgnoreCase))
|
||||
if (string.Equals(DisplayOrder, "PremiereDate", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
// Sort by release date
|
||||
return LibraryManager.Sort(children, user, new[] { ItemSortBy.ProductionYear, ItemSortBy.PremiereDate, ItemSortBy.SortName }, SortOrder.Ascending).ToList();
|
||||
@@ -136,7 +136,7 @@ namespace MediaBrowser.Controller.Entities.Movies
|
||||
{
|
||||
var children = base.GetRecursiveChildren(user, query);
|
||||
|
||||
if (string.Equals(DisplayOrder, ItemSortBy.PremiereDate, StringComparison.OrdinalIgnoreCase))
|
||||
if (string.Equals(DisplayOrder, "PremiereDate", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
// Sort by release date
|
||||
return LibraryManager.Sort(children, user, new[] { ItemSortBy.ProductionYear, ItemSortBy.PremiereDate, ItemSortBy.SortName }, SortOrder.Ascending).ToList();
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
#pragma warning disable CS1591
|
||||
|
||||
using System.Text.Json.Serialization;
|
||||
using Jellyfin.Data.Enums;
|
||||
using MediaBrowser.Model.Drawing;
|
||||
|
||||
namespace MediaBrowser.Controller.Entities
|
||||
@@ -13,7 +14,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
public override bool SupportsLocalMetadata => false;
|
||||
|
||||
[JsonIgnore]
|
||||
public override string MediaType => Model.Entities.MediaType.Photo;
|
||||
public override MediaType MediaType => MediaType.Photo;
|
||||
|
||||
[JsonIgnore]
|
||||
public override Folder LatestItemsIndexContainer => AlbumEntity;
|
||||
|
||||
@@ -8,6 +8,7 @@ using System.Linq;
|
||||
using System.Text.Json.Serialization;
|
||||
using System.Threading.Tasks;
|
||||
using Jellyfin.Data.Entities;
|
||||
using Jellyfin.Data.Enums;
|
||||
using Jellyfin.Extensions;
|
||||
using MediaBrowser.Controller.TV;
|
||||
using MediaBrowser.Model.Querying;
|
||||
@@ -16,21 +17,21 @@ namespace MediaBrowser.Controller.Entities
|
||||
{
|
||||
public class UserView : Folder, IHasCollectionType
|
||||
{
|
||||
private static readonly string[] _viewTypesEligibleForGrouping = new string[]
|
||||
private static readonly CollectionType?[] _viewTypesEligibleForGrouping =
|
||||
{
|
||||
Model.Entities.CollectionType.Movies,
|
||||
Model.Entities.CollectionType.TvShows,
|
||||
string.Empty
|
||||
Jellyfin.Data.Enums.CollectionType.Movies,
|
||||
Jellyfin.Data.Enums.CollectionType.TvShows,
|
||||
null
|
||||
};
|
||||
|
||||
private static readonly string[] _originalFolderViewTypes = new string[]
|
||||
private static readonly CollectionType?[] _originalFolderViewTypes =
|
||||
{
|
||||
Model.Entities.CollectionType.Books,
|
||||
Model.Entities.CollectionType.MusicVideos,
|
||||
Model.Entities.CollectionType.HomeVideos,
|
||||
Model.Entities.CollectionType.Photos,
|
||||
Model.Entities.CollectionType.Music,
|
||||
Model.Entities.CollectionType.BoxSets
|
||||
Jellyfin.Data.Enums.CollectionType.Books,
|
||||
Jellyfin.Data.Enums.CollectionType.MusicVideos,
|
||||
Jellyfin.Data.Enums.CollectionType.HomeVideos,
|
||||
Jellyfin.Data.Enums.CollectionType.Photos,
|
||||
Jellyfin.Data.Enums.CollectionType.Music,
|
||||
Jellyfin.Data.Enums.CollectionType.BoxSets
|
||||
};
|
||||
|
||||
public static ITVSeriesManager TVSeriesManager { get; set; }
|
||||
@@ -38,7 +39,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
/// <summary>
|
||||
/// Gets or sets the view type.
|
||||
/// </summary>
|
||||
public string ViewType { get; set; }
|
||||
public CollectionType? ViewType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the display parent id.
|
||||
@@ -52,7 +53,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
|
||||
/// <inheritdoc />
|
||||
[JsonIgnore]
|
||||
public string CollectionType => ViewType;
|
||||
public CollectionType? CollectionType => ViewType;
|
||||
|
||||
/// <inheritdoc />
|
||||
[JsonIgnore]
|
||||
@@ -160,7 +161,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
return true;
|
||||
}
|
||||
|
||||
return string.Equals(Model.Entities.CollectionType.Playlists, collectionFolder.CollectionType, StringComparison.OrdinalIgnoreCase);
|
||||
return collectionFolder.CollectionType == Jellyfin.Data.Enums.CollectionType.Playlists;
|
||||
}
|
||||
|
||||
public static bool IsEligibleForGrouping(Folder folder)
|
||||
@@ -169,14 +170,14 @@ namespace MediaBrowser.Controller.Entities
|
||||
&& IsEligibleForGrouping(collectionFolder.CollectionType);
|
||||
}
|
||||
|
||||
public static bool IsEligibleForGrouping(string viewType)
|
||||
public static bool IsEligibleForGrouping(CollectionType? viewType)
|
||||
{
|
||||
return _viewTypesEligibleForGrouping.Contains(viewType ?? string.Empty, StringComparison.OrdinalIgnoreCase);
|
||||
return _viewTypesEligibleForGrouping.Contains(viewType);
|
||||
}
|
||||
|
||||
public static bool EnableOriginalFolder(string viewType)
|
||||
public static bool EnableOriginalFolder(CollectionType? viewType)
|
||||
{
|
||||
return _originalFolderViewTypes.Contains(viewType ?? string.Empty, StringComparison.OrdinalIgnoreCase);
|
||||
return _originalFolderViewTypes.Contains(viewType);
|
||||
}
|
||||
|
||||
protected override Task ValidateChildrenInternal(IProgress<double> progress, bool recursive, bool refreshChildMetadata, Providers.MetadataRefreshOptions refreshOptions, Providers.IDirectoryService directoryService, System.Threading.CancellationToken cancellationToken)
|
||||
|
||||
@@ -42,7 +42,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
_tvSeriesManager = tvSeriesManager;
|
||||
}
|
||||
|
||||
public QueryResult<BaseItem> GetUserItems(Folder queryParent, Folder displayParent, string viewType, InternalItemsQuery query)
|
||||
public QueryResult<BaseItem> GetUserItems(Folder queryParent, Folder displayParent, CollectionType? viewType, InternalItemsQuery query)
|
||||
{
|
||||
var user = query.User;
|
||||
|
||||
@@ -67,49 +67,49 @@ namespace MediaBrowser.Controller.Entities
|
||||
case CollectionType.Movies:
|
||||
return GetMovieFolders(queryParent, user, query);
|
||||
|
||||
case SpecialFolder.TvShowSeries:
|
||||
case CollectionType.TvShowSeries:
|
||||
return GetTvSeries(queryParent, user, query);
|
||||
|
||||
case SpecialFolder.TvGenres:
|
||||
case CollectionType.TvGenres:
|
||||
return GetTvGenres(queryParent, user, query);
|
||||
|
||||
case SpecialFolder.TvGenre:
|
||||
case CollectionType.TvGenre:
|
||||
return GetTvGenreItems(queryParent, displayParent, user, query);
|
||||
|
||||
case SpecialFolder.TvResume:
|
||||
case CollectionType.TvResume:
|
||||
return GetTvResume(queryParent, user, query);
|
||||
|
||||
case SpecialFolder.TvNextUp:
|
||||
case CollectionType.TvNextUp:
|
||||
return GetTvNextUp(queryParent, query);
|
||||
|
||||
case SpecialFolder.TvLatest:
|
||||
case CollectionType.TvLatest:
|
||||
return GetTvLatest(queryParent, user, query);
|
||||
|
||||
case SpecialFolder.MovieFavorites:
|
||||
case CollectionType.MovieFavorites:
|
||||
return GetFavoriteMovies(queryParent, user, query);
|
||||
|
||||
case SpecialFolder.MovieLatest:
|
||||
case CollectionType.MovieLatest:
|
||||
return GetMovieLatest(queryParent, user, query);
|
||||
|
||||
case SpecialFolder.MovieGenres:
|
||||
case CollectionType.MovieGenres:
|
||||
return GetMovieGenres(queryParent, user, query);
|
||||
|
||||
case SpecialFolder.MovieGenre:
|
||||
case CollectionType.MovieGenre:
|
||||
return GetMovieGenreItems(queryParent, displayParent, user, query);
|
||||
|
||||
case SpecialFolder.MovieResume:
|
||||
case CollectionType.MovieResume:
|
||||
return GetMovieResume(queryParent, user, query);
|
||||
|
||||
case SpecialFolder.MovieMovies:
|
||||
case CollectionType.MovieMovies:
|
||||
return GetMovieMovies(queryParent, user, query);
|
||||
|
||||
case SpecialFolder.MovieCollections:
|
||||
case CollectionType.MovieCollections:
|
||||
return GetMovieCollections(user, query);
|
||||
|
||||
case SpecialFolder.TvFavoriteEpisodes:
|
||||
case CollectionType.TvFavoriteEpisodes:
|
||||
return GetFavoriteEpisodes(queryParent, user, query);
|
||||
|
||||
case SpecialFolder.TvFavoriteSeries:
|
||||
case CollectionType.TvFavoriteSeries:
|
||||
return GetFavoriteSeries(queryParent, user, query);
|
||||
|
||||
default:
|
||||
@@ -146,12 +146,12 @@ namespace MediaBrowser.Controller.Entities
|
||||
|
||||
var list = new List<BaseItem>
|
||||
{
|
||||
GetUserView(SpecialFolder.MovieResume, "HeaderContinueWatching", "0", parent),
|
||||
GetUserView(SpecialFolder.MovieLatest, "Latest", "1", parent),
|
||||
GetUserView(SpecialFolder.MovieMovies, "Movies", "2", parent),
|
||||
GetUserView(SpecialFolder.MovieCollections, "Collections", "3", parent),
|
||||
GetUserView(SpecialFolder.MovieFavorites, "Favorites", "4", parent),
|
||||
GetUserView(SpecialFolder.MovieGenres, "Genres", "5", parent)
|
||||
GetUserView(CollectionType.MovieResume, "HeaderContinueWatching", "0", parent),
|
||||
GetUserView(CollectionType.MovieLatest, "Latest", "1", parent),
|
||||
GetUserView(CollectionType.MovieMovies, "Movies", "2", parent),
|
||||
GetUserView(CollectionType.MovieCollections, "Collections", "3", parent),
|
||||
GetUserView(CollectionType.MovieFavorites, "Favorites", "4", parent),
|
||||
GetUserView(CollectionType.MovieGenres, "Genres", "5", parent)
|
||||
};
|
||||
|
||||
return GetResult(list, query);
|
||||
@@ -264,7 +264,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
}
|
||||
})
|
||||
.Where(i => i is not null)
|
||||
.Select(i => GetUserViewWithName(SpecialFolder.MovieGenre, i.SortName, parent));
|
||||
.Select(i => GetUserViewWithName(CollectionType.MovieGenre, i.SortName, parent));
|
||||
|
||||
return GetResult(genres, query);
|
||||
}
|
||||
@@ -303,13 +303,13 @@ namespace MediaBrowser.Controller.Entities
|
||||
|
||||
var list = new List<BaseItem>
|
||||
{
|
||||
GetUserView(SpecialFolder.TvResume, "HeaderContinueWatching", "0", parent),
|
||||
GetUserView(SpecialFolder.TvNextUp, "HeaderNextUp", "1", parent),
|
||||
GetUserView(SpecialFolder.TvLatest, "Latest", "2", parent),
|
||||
GetUserView(SpecialFolder.TvShowSeries, "Shows", "3", parent),
|
||||
GetUserView(SpecialFolder.TvFavoriteSeries, "HeaderFavoriteShows", "4", parent),
|
||||
GetUserView(SpecialFolder.TvFavoriteEpisodes, "HeaderFavoriteEpisodes", "5", parent),
|
||||
GetUserView(SpecialFolder.TvGenres, "Genres", "6", parent)
|
||||
GetUserView(CollectionType.TvResume, "HeaderContinueWatching", "0", parent),
|
||||
GetUserView(CollectionType.TvNextUp, "HeaderNextUp", "1", parent),
|
||||
GetUserView(CollectionType.TvLatest, "Latest", "2", parent),
|
||||
GetUserView(CollectionType.TvShowSeries, "Shows", "3", parent),
|
||||
GetUserView(CollectionType.TvFavoriteSeries, "HeaderFavoriteShows", "4", parent),
|
||||
GetUserView(CollectionType.TvFavoriteEpisodes, "HeaderFavoriteEpisodes", "5", parent),
|
||||
GetUserView(CollectionType.TvGenres, "Genres", "6", parent)
|
||||
};
|
||||
|
||||
return GetResult(list, query);
|
||||
@@ -330,7 +330,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
|
||||
private QueryResult<BaseItem> GetTvNextUp(Folder parent, InternalItemsQuery query)
|
||||
{
|
||||
var parentFolders = GetMediaFolders(parent, query.User, new[] { CollectionType.TvShows, string.Empty });
|
||||
var parentFolders = GetMediaFolders(parent, query.User, new[] { CollectionType.TvShows });
|
||||
|
||||
var result = _tvSeriesManager.GetNextUp(
|
||||
new NextUpQuery
|
||||
@@ -392,7 +392,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
}
|
||||
})
|
||||
.Where(i => i is not null)
|
||||
.Select(i => GetUserViewWithName(SpecialFolder.TvGenre, i.SortName, parent));
|
||||
.Select(i => GetUserViewWithName(CollectionType.TvGenre, i.SortName, parent));
|
||||
|
||||
return GetResult(genres, query);
|
||||
}
|
||||
@@ -476,7 +476,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
|
||||
public static bool Filter(BaseItem item, User user, InternalItemsQuery query, IUserDataManager userDataManager, ILibraryManager libraryManager)
|
||||
{
|
||||
if (query.MediaTypes.Length > 0 && !query.MediaTypes.Contains(item.MediaType ?? string.Empty, StringComparison.OrdinalIgnoreCase))
|
||||
if (query.MediaTypes.Length > 0 && !query.MediaTypes.Contains(item.MediaType))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@@ -943,7 +943,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
.Where(i => user.IsFolderGrouped(i.Id) && UserView.IsEligibleForGrouping(i));
|
||||
}
|
||||
|
||||
private BaseItem[] GetMediaFolders(User user, IEnumerable<string> viewTypes)
|
||||
private BaseItem[] GetMediaFolders(User user, IEnumerable<CollectionType> viewTypes)
|
||||
{
|
||||
if (user is null)
|
||||
{
|
||||
@@ -952,7 +952,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
{
|
||||
var folder = i as ICollectionFolder;
|
||||
|
||||
return folder is not null && viewTypes.Contains(folder.CollectionType ?? string.Empty, StringComparison.OrdinalIgnoreCase);
|
||||
return folder?.CollectionType is not null && viewTypes.Contains(folder.CollectionType.Value);
|
||||
}).ToArray();
|
||||
}
|
||||
|
||||
@@ -961,11 +961,11 @@ namespace MediaBrowser.Controller.Entities
|
||||
{
|
||||
var folder = i as ICollectionFolder;
|
||||
|
||||
return folder is not null && viewTypes.Contains(folder.CollectionType ?? string.Empty, StringComparison.OrdinalIgnoreCase);
|
||||
return folder?.CollectionType is not null && viewTypes.Contains(folder.CollectionType.Value);
|
||||
}).ToArray();
|
||||
}
|
||||
|
||||
private BaseItem[] GetMediaFolders(Folder parent, User user, IEnumerable<string> viewTypes)
|
||||
private BaseItem[] GetMediaFolders(Folder parent, User user, IEnumerable<CollectionType> viewTypes)
|
||||
{
|
||||
if (parent is null || parent is UserView)
|
||||
{
|
||||
@@ -975,12 +975,12 @@ namespace MediaBrowser.Controller.Entities
|
||||
return new BaseItem[] { parent };
|
||||
}
|
||||
|
||||
private UserView GetUserViewWithName(string type, string sortName, BaseItem parent)
|
||||
private UserView GetUserViewWithName(CollectionType? type, string sortName, BaseItem parent)
|
||||
{
|
||||
return _userViewManager.GetUserSubView(parent.Id, parent.Id.ToString("N", CultureInfo.InvariantCulture), type, sortName);
|
||||
return _userViewManager.GetUserSubView(parent.Id, type, parent.Id.ToString("N", CultureInfo.InvariantCulture), sortName);
|
||||
}
|
||||
|
||||
private UserView GetUserView(string type, string localizationKey, string sortName, BaseItem parent)
|
||||
private UserView GetUserView(CollectionType? type, string localizationKey, string sortName, BaseItem parent)
|
||||
{
|
||||
return _userViewManager.GetUserSubView(parent.Id, type, localizationKey, sortName);
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ using System.Linq;
|
||||
using System.Text.Json.Serialization;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Jellyfin.Data.Enums;
|
||||
using Jellyfin.Extensions;
|
||||
using MediaBrowser.Controller.Library;
|
||||
using MediaBrowser.Controller.LiveTv;
|
||||
@@ -256,7 +257,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
/// </summary>
|
||||
/// <value>The type of the media.</value>
|
||||
[JsonIgnore]
|
||||
public override string MediaType => Model.Entities.MediaType.Video;
|
||||
public override MediaType MediaType => MediaType.Video;
|
||||
|
||||
public override List<string> GetUserDataKeys()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user