mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-12-24 01:34:45 +03:00
fixes #795 - Support reading Xbmc nfo's
This commit is contained in:
@@ -17,6 +17,9 @@ using MediaBrowser.Controller.Dlna;
|
||||
using MediaBrowser.Controller.Drawing;
|
||||
using MediaBrowser.Controller.Dto;
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Controller.Entities.Audio;
|
||||
using MediaBrowser.Controller.Entities.Movies;
|
||||
using MediaBrowser.Controller.Entities.TV;
|
||||
using MediaBrowser.Controller.FileOrganization;
|
||||
using MediaBrowser.Controller.Library;
|
||||
using MediaBrowser.Controller.LiveTv;
|
||||
@@ -38,9 +41,11 @@ using MediaBrowser.Dlna;
|
||||
using MediaBrowser.Dlna.ConnectionManager;
|
||||
using MediaBrowser.Dlna.ContentDirectory;
|
||||
using MediaBrowser.Dlna.Main;
|
||||
using MediaBrowser.LocalMetadata.Providers;
|
||||
using MediaBrowser.MediaEncoding.BdInfo;
|
||||
using MediaBrowser.MediaEncoding.Encoder;
|
||||
using MediaBrowser.MediaEncoding.Subtitles;
|
||||
using MediaBrowser.Model.Configuration;
|
||||
using MediaBrowser.Model.Logging;
|
||||
using MediaBrowser.Model.MediaInfo;
|
||||
using MediaBrowser.Model.System;
|
||||
@@ -75,6 +80,7 @@ using MediaBrowser.ServerApplication.IO;
|
||||
using MediaBrowser.ServerApplication.Native;
|
||||
using MediaBrowser.ServerApplication.Networking;
|
||||
using MediaBrowser.WebDashboard.Api;
|
||||
using MediaBrowser.XbmcMetadata.Providers;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
@@ -283,6 +289,7 @@ namespace MediaBrowser.ServerApplication
|
||||
DeleteDeprecatedModules();
|
||||
|
||||
MigrateModularConfigurations();
|
||||
ApplyDefaultXbmcSettings();
|
||||
}
|
||||
|
||||
private void MigrateModularConfigurations()
|
||||
@@ -309,6 +316,68 @@ namespace MediaBrowser.ServerApplication
|
||||
}
|
||||
}
|
||||
|
||||
private void ApplyDefaultXbmcSettings()
|
||||
{
|
||||
if (!ServerConfigurationManager.Configuration.DefaultMetadataSettingsApplied)
|
||||
{
|
||||
// Make sure xbmc metadata is disabled for existing users.
|
||||
// New users can just take the defaults.
|
||||
var service = ServerConfigurationManager.Configuration.IsStartupWizardCompleted
|
||||
? "Xbmc Nfo"
|
||||
: "Media Browser Xml";
|
||||
|
||||
DisableMetadataService(typeof(Movie), ServerConfigurationManager.Configuration, service);
|
||||
DisableMetadataService(typeof(MusicAlbum), ServerConfigurationManager.Configuration, service);
|
||||
DisableMetadataService(typeof(MusicArtist), ServerConfigurationManager.Configuration, service);
|
||||
DisableMetadataService(typeof(Episode), ServerConfigurationManager.Configuration, service);
|
||||
DisableMetadataService(typeof(Season), ServerConfigurationManager.Configuration, service);
|
||||
DisableMetadataService(typeof(Series), ServerConfigurationManager.Configuration, service);
|
||||
DisableMetadataService(typeof(MusicVideo), ServerConfigurationManager.Configuration, service);
|
||||
DisableMetadataService(typeof(Trailer), ServerConfigurationManager.Configuration, service);
|
||||
DisableMetadataService(typeof(AdultVideo), ServerConfigurationManager.Configuration, service);
|
||||
DisableMetadataService(typeof(Video), ServerConfigurationManager.Configuration, service);
|
||||
}
|
||||
|
||||
ServerConfigurationManager.Configuration.DefaultMetadataSettingsApplied = true;
|
||||
ServerConfigurationManager.SaveConfiguration();
|
||||
}
|
||||
|
||||
private void DisableMetadataService(Type type, ServerConfiguration config, string service)
|
||||
{
|
||||
var options = GetMetadataOptions(type, config);
|
||||
|
||||
if (!options.DisabledMetadataSavers.Contains(service, StringComparer.OrdinalIgnoreCase))
|
||||
{
|
||||
var list = options.DisabledMetadataSavers.ToList();
|
||||
|
||||
list.Add(service);
|
||||
|
||||
options.DisabledMetadataSavers = list.ToArray();
|
||||
}
|
||||
}
|
||||
|
||||
private MetadataOptions GetMetadataOptions(Type type, ServerConfiguration config)
|
||||
{
|
||||
var options = config.MetadataOptions
|
||||
.FirstOrDefault(i => string.Equals(i.ItemType, type.Name, StringComparison.OrdinalIgnoreCase));
|
||||
|
||||
if (options == null)
|
||||
{
|
||||
var list = config.MetadataOptions.ToList();
|
||||
|
||||
options = new MetadataOptions
|
||||
{
|
||||
ItemType = type.Name
|
||||
};
|
||||
|
||||
list.Add(options);
|
||||
|
||||
config.MetadataOptions = list.ToArray();
|
||||
}
|
||||
|
||||
return options;
|
||||
}
|
||||
|
||||
private void DeleteDeprecatedModules()
|
||||
{
|
||||
try
|
||||
@@ -328,6 +397,15 @@ namespace MediaBrowser.ServerApplication
|
||||
// Not there, no big deal
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
File.Delete(Path.Combine(ApplicationPaths.PluginsPath, "MediaBrowser.Plugins.XbmcMetadata.dll"));
|
||||
}
|
||||
catch (IOException)
|
||||
{
|
||||
// Not there, no big deal
|
||||
}
|
||||
|
||||
Task.Run(() =>
|
||||
{
|
||||
try
|
||||
@@ -912,6 +990,12 @@ namespace MediaBrowser.ServerApplication
|
||||
// Dlna
|
||||
list.Add(typeof(DlnaEntryPoint).Assembly);
|
||||
|
||||
// Local metadata
|
||||
list.Add(typeof(AlbumXmlProvider).Assembly);
|
||||
|
||||
// Xbmc
|
||||
list.Add(typeof(ArtistNfoProvider).Assembly);
|
||||
|
||||
list.AddRange(Assemblies.GetAssembliesWithParts());
|
||||
|
||||
// Include composable parts in the running assembly
|
||||
|
||||
Reference in New Issue
Block a user