mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-04-20 17:14:42 +01:00
Merge pull request #9762 from crobibero/media-type
Convert string MediaType to enum MediaType
This commit is contained in:
@@ -722,7 +722,7 @@ namespace Emby.Server.Implementations.Data
|
||||
saveItemStatement.TryBind("@IsLocked", item.IsLocked);
|
||||
saveItemStatement.TryBind("@Name", item.Name);
|
||||
saveItemStatement.TryBind("@OfficialRating", item.OfficialRating);
|
||||
saveItemStatement.TryBind("@MediaType", item.MediaType);
|
||||
saveItemStatement.TryBind("@MediaType", item.MediaType.ToString());
|
||||
saveItemStatement.TryBind("@Overview", item.Overview);
|
||||
saveItemStatement.TryBind("@ParentIndexNumber", item.ParentIndexNumber);
|
||||
saveItemStatement.TryBind("@PremiereDate", item.PremiereDate);
|
||||
@@ -2986,11 +2986,6 @@ namespace Emby.Server.Implementations.Data
|
||||
return true;
|
||||
}
|
||||
|
||||
private bool IsValidMediaType(string value)
|
||||
{
|
||||
return IsAlphaNumeric(value);
|
||||
}
|
||||
|
||||
private bool IsValidPersonType(string value)
|
||||
{
|
||||
return IsAlphaNumeric(value);
|
||||
@@ -3998,15 +3993,14 @@ namespace Emby.Server.Implementations.Data
|
||||
}
|
||||
}
|
||||
|
||||
var queryMediaTypes = query.MediaTypes.Where(IsValidMediaType).ToArray();
|
||||
if (queryMediaTypes.Length == 1)
|
||||
if (query.MediaTypes.Length == 1)
|
||||
{
|
||||
whereClauses.Add("MediaType=@MediaTypes");
|
||||
statement?.TryBind("@MediaTypes", queryMediaTypes[0]);
|
||||
statement?.TryBind("@MediaTypes", query.MediaTypes[0].ToString());
|
||||
}
|
||||
else if (queryMediaTypes.Length > 1)
|
||||
else if (query.MediaTypes.Length > 1)
|
||||
{
|
||||
var val = string.Join(',', queryMediaTypes.Select(i => "'" + i + "'"));
|
||||
var val = string.Join(',', query.MediaTypes.Select(i => $"'{i}'"));
|
||||
whereClauses.Add("MediaType in (" + val + ")");
|
||||
}
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@ using System.Linq;
|
||||
using System.Text.Json;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using EasyCaching.Core.Configurations;
|
||||
using Jellyfin.Data.Entities;
|
||||
using Jellyfin.Data.Enums;
|
||||
using Jellyfin.Extensions.Json;
|
||||
@@ -186,11 +187,11 @@ namespace Emby.Server.Implementations.Library
|
||||
{
|
||||
SetDefaultAudioAndSubtitleStreamIndexes(item, source, user);
|
||||
|
||||
if (string.Equals(item.MediaType, MediaType.Audio, StringComparison.OrdinalIgnoreCase))
|
||||
if (item.MediaType == MediaType.Audio)
|
||||
{
|
||||
source.SupportsTranscoding = user.HasPermission(PermissionKind.EnableAudioPlaybackTranscoding);
|
||||
}
|
||||
else if (string.Equals(item.MediaType, MediaType.Video, StringComparison.OrdinalIgnoreCase))
|
||||
else if (item.MediaType == MediaType.Video)
|
||||
{
|
||||
source.SupportsTranscoding = user.HasPermission(PermissionKind.EnableVideoPlaybackTranscoding);
|
||||
source.SupportsDirectStream = user.HasPermission(PermissionKind.EnablePlaybackRemuxing);
|
||||
@@ -334,11 +335,11 @@ namespace Emby.Server.Implementations.Library
|
||||
{
|
||||
SetDefaultAudioAndSubtitleStreamIndexes(item, source, user);
|
||||
|
||||
if (string.Equals(item.MediaType, MediaType.Audio, StringComparison.OrdinalIgnoreCase))
|
||||
if (item.MediaType == MediaType.Audio)
|
||||
{
|
||||
source.SupportsTranscoding = user.HasPermission(PermissionKind.EnableAudioPlaybackTranscoding);
|
||||
}
|
||||
else if (string.Equals(item.MediaType, MediaType.Video, StringComparison.OrdinalIgnoreCase))
|
||||
else if (item.MediaType == MediaType.Video)
|
||||
{
|
||||
source.SupportsTranscoding = user.HasPermission(PermissionKind.EnableVideoPlaybackTranscoding);
|
||||
source.SupportsDirectStream = user.HasPermission(PermissionKind.EnablePlaybackRemuxing);
|
||||
@@ -417,9 +418,9 @@ namespace Emby.Server.Implementations.Library
|
||||
public void SetDefaultAudioAndSubtitleStreamIndexes(BaseItem item, MediaSourceInfo source, User user)
|
||||
{
|
||||
// Item would only be null if the app didn't supply ItemId as part of the live stream open request
|
||||
var mediaType = item is null ? MediaType.Video : item.MediaType;
|
||||
var mediaType = item?.MediaType ?? MediaType.Video;
|
||||
|
||||
if (string.Equals(mediaType, MediaType.Video, StringComparison.OrdinalIgnoreCase))
|
||||
if (mediaType == MediaType.Video)
|
||||
{
|
||||
var userData = item is null ? new UserItemData() : _userDataManager.GetUserData(user, item);
|
||||
|
||||
@@ -428,7 +429,7 @@ namespace Emby.Server.Implementations.Library
|
||||
SetDefaultAudioStreamIndex(source, userData, user, allowRememberingSelection);
|
||||
SetDefaultSubtitleStreamIndex(source, userData, user, allowRememberingSelection);
|
||||
}
|
||||
else if (string.Equals(mediaType, MediaType.Audio, StringComparison.OrdinalIgnoreCase))
|
||||
else if (mediaType == MediaType.Audio)
|
||||
{
|
||||
var audio = source.MediaStreams.FirstOrDefault(i => i.Type == MediaStreamType.Audio);
|
||||
|
||||
|
||||
@@ -316,7 +316,7 @@ namespace Emby.Server.Implementations.Library
|
||||
}
|
||||
}
|
||||
|
||||
var mediaTypes = new List<string>();
|
||||
var mediaTypes = new List<MediaType>();
|
||||
|
||||
if (includeItemTypes.Length == 0)
|
||||
{
|
||||
|
||||
@@ -63,7 +63,7 @@ namespace Emby.Server.Implementations.Library.Validators
|
||||
{
|
||||
var movies = _libraryManager.GetItemList(new InternalItemsQuery
|
||||
{
|
||||
MediaTypes = new string[] { MediaType.Video },
|
||||
MediaTypes = new[] { MediaType.Video },
|
||||
IncludeItemTypes = new[] { BaseItemKind.Movie },
|
||||
IsVirtualItem = false,
|
||||
OrderBy = new[] { (ItemSortBy.SortName, SortOrder.Ascending) },
|
||||
|
||||
@@ -10,6 +10,7 @@ using System.Linq;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Jellyfin.Data.Entities;
|
||||
using Jellyfin.Data.Enums;
|
||||
using MediaBrowser.Controller.Dto;
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Controller.Entities.Audio;
|
||||
@@ -74,7 +75,7 @@ namespace Emby.Server.Implementations.Playlists
|
||||
throw new ArgumentException(nameof(parentFolder));
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(options.MediaType))
|
||||
if (options.MediaType is null || options.MediaType == MediaType.Unknown)
|
||||
{
|
||||
foreach (var itemId in options.ItemIdList)
|
||||
{
|
||||
@@ -84,7 +85,7 @@ namespace Emby.Server.Implementations.Playlists
|
||||
throw new ArgumentException("No item exists with the supplied Id");
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(item.MediaType))
|
||||
if (item.MediaType != MediaType.Unknown)
|
||||
{
|
||||
options.MediaType = item.MediaType;
|
||||
}
|
||||
@@ -102,20 +103,20 @@ namespace Emby.Server.Implementations.Playlists
|
||||
{
|
||||
options.MediaType = folder.GetRecursiveChildren(i => !i.IsFolder && i.SupportsAddingToPlaylist)
|
||||
.Select(i => i.MediaType)
|
||||
.FirstOrDefault(i => !string.IsNullOrEmpty(i));
|
||||
.FirstOrDefault(i => i != MediaType.Unknown);
|
||||
}
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(options.MediaType))
|
||||
if (options.MediaType is not null && options.MediaType != MediaType.Unknown)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(options.MediaType))
|
||||
if (options.MediaType is null || options.MediaType == MediaType.Unknown)
|
||||
{
|
||||
options.MediaType = "Audio";
|
||||
options.MediaType = MediaType.Audio;
|
||||
}
|
||||
|
||||
var user = _userManager.GetUserById(options.UserId);
|
||||
@@ -168,7 +169,7 @@ namespace Emby.Server.Implementations.Playlists
|
||||
return path;
|
||||
}
|
||||
|
||||
private List<BaseItem> GetPlaylistItems(IEnumerable<Guid> itemIds, string playlistMediaType, User user, DtoOptions options)
|
||||
private List<BaseItem> GetPlaylistItems(IEnumerable<Guid> itemIds, MediaType playlistMediaType, User user, DtoOptions options)
|
||||
{
|
||||
var items = itemIds.Select(i => _libraryManager.GetItemById(i)).Where(i => i is not null);
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ using System.IO;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Jellyfin.Data.Enums;
|
||||
using Jellyfin.Extensions;
|
||||
using MediaBrowser.Common.Configuration;
|
||||
using MediaBrowser.Controller.Dto;
|
||||
|
||||
Reference in New Issue
Block a user