mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-12-24 09:44:47 +03:00
added content type selection
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Controller.Configuration;
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Controller.Entities.Audio;
|
||||
using MediaBrowser.Controller.Entities.TV;
|
||||
using MediaBrowser.Controller.Library;
|
||||
@@ -46,12 +47,14 @@ namespace MediaBrowser.Api
|
||||
private readonly ILibraryManager _libraryManager;
|
||||
private readonly IProviderManager _providerManager;
|
||||
private readonly ILocalizationManager _localizationManager;
|
||||
private readonly IServerConfigurationManager _config;
|
||||
|
||||
public ItemUpdateService(ILibraryManager libraryManager, IProviderManager providerManager, ILocalizationManager localizationManager)
|
||||
public ItemUpdateService(ILibraryManager libraryManager, IProviderManager providerManager, ILocalizationManager localizationManager, IServerConfigurationManager config)
|
||||
{
|
||||
_libraryManager = libraryManager;
|
||||
_providerManager = providerManager;
|
||||
_localizationManager = localizationManager;
|
||||
_config = config;
|
||||
}
|
||||
|
||||
public object Get(GetMetadataEditorInfo request)
|
||||
@@ -70,11 +73,14 @@ namespace MediaBrowser.Api
|
||||
if (locationType == LocationType.FileSystem ||
|
||||
locationType == LocationType.Offline)
|
||||
{
|
||||
var collectionType = _libraryManager.GetInheritedContentType(item);
|
||||
if (string.IsNullOrWhiteSpace(collectionType))
|
||||
if (!(item is ICollectionFolder) && !(item is UserView) && !(item is AggregateFolder))
|
||||
{
|
||||
info.ContentTypeOptions = GetContentTypeOptions(true);
|
||||
info.ContentType = _libraryManager.GetContentType(item);
|
||||
var collectionType = _libraryManager.GetInheritedContentType(item);
|
||||
if (string.IsNullOrWhiteSpace(collectionType))
|
||||
{
|
||||
info.ContentTypeOptions = GetContentTypeOptions(true);
|
||||
info.ContentType = _libraryManager.GetContentType(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -83,7 +89,24 @@ namespace MediaBrowser.Api
|
||||
|
||||
public void Post(UpdateItemContentType request)
|
||||
{
|
||||
|
||||
var item = _libraryManager.GetItemById(request.ItemId);
|
||||
var path = item.ContainingFolderPath;
|
||||
|
||||
var types = _config.Configuration.ContentTypes
|
||||
.Where(i => !string.Equals(i.Name, path, StringComparison.OrdinalIgnoreCase))
|
||||
.ToList();
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(request.ContentType))
|
||||
{
|
||||
types.Add(new NameValuePair
|
||||
{
|
||||
Name = path,
|
||||
Value = request.ContentType
|
||||
});
|
||||
}
|
||||
|
||||
_config.Configuration.ContentTypes = types.ToArray();
|
||||
_config.SaveConfiguration();
|
||||
}
|
||||
|
||||
private List<NameValuePair> GetContentTypeOptions(bool isForItem)
|
||||
|
||||
Reference in New Issue
Block a user