Răsfoiți Sursa

auto-organize fixes

Luke Pulverenti 9 ani în urmă
părinte
comite
4d66f6dc6c

+ 0 - 2
MediaBrowser.Api/Library/FileOrganizationService.cs

@@ -119,8 +119,6 @@ namespace MediaBrowser.Api.Library
     {
         private readonly IFileOrganizationService _iFileOrganizationService;
 
-        /// The _json serializer
-        /// </summary>
         private readonly IJsonSerializer _jsonSerializer;
 
         public FileOrganizationService(IFileOrganizationService iFileOrganizationService, IJsonSerializer jsonSerializer)

+ 36 - 7
MediaBrowser.Dlna/Main/DlnaEntryPoint.cs

@@ -85,14 +85,14 @@ namespace MediaBrowser.Dlna.Main
             _config.NamedConfigurationUpdated += _config_NamedConfigurationUpdated;
         }
 
-        private bool _lastEnableUPnP;
+        private bool _lastEnableUpnP;
         void _config_ConfigurationUpdated(object sender, EventArgs e)
         {
-            if (_lastEnableUPnP != _config.Configuration.EnableUPnP)
+            if (_lastEnableUpnP != _config.Configuration.EnableUPnP)
             {
                 ReloadComponents();
             }
-            _lastEnableUPnP = _config.Configuration.EnableUPnP;
+            _lastEnableUpnP = _config.Configuration.EnableUPnP;
         }
 
         void _config_NamedConfigurationUpdated(object sender, ConfigurationUpdateEventArgs e)
@@ -111,7 +111,10 @@ namespace MediaBrowser.Dlna.Main
             {
                 if (_ssdpHandlerStarted)
                 {
-                    StopSsdpHandler();
+                    // Sat/ip live tv depends on device discovery, as well as hd homerun detection
+                    // In order to allow this to be disabled, we need a modular way of knowing if there are 
+                    // any parts of the system that are dependant on it
+                    // DisposeSsdpHandler();
                 }
                 return;
             }
@@ -149,19 +152,44 @@ namespace MediaBrowser.Dlna.Main
             try
             {
                 _ssdpHandler.Start();
+                _ssdpHandlerStarted = true;
+
+                StartDeviceDiscovery();
+            }
+            catch (Exception ex)
+            {
+                _logger.ErrorException("Error starting ssdp handlers", ex);
+            }
+        }
 
+        private void StartDeviceDiscovery()
+        {
+            try
+            {
                 ((DeviceDiscovery)_deviceDiscovery).Start(_ssdpHandler);
+            }
+            catch (Exception ex)
+            {
+                _logger.ErrorException("Error starting device discovery", ex);
+            }
+        }
 
-                _ssdpHandlerStarted = true;
+        private void DisposeDeviceDiscovery()
+        {
+            try
+            {
+                ((DeviceDiscovery)_deviceDiscovery).Dispose();
             }
             catch (Exception ex)
             {
-                _logger.ErrorException("Error starting ssdp handlers", ex);
+                _logger.ErrorException("Error stopping device discovery", ex);
             }
         }
 
-        private void StopSsdpHandler()
+        private void DisposeSsdpHandler()
         {
+            DisposeDeviceDiscovery();
+
             try
             {
                 ((DeviceDiscovery)_deviceDiscovery).Dispose();
@@ -277,6 +305,7 @@ namespace MediaBrowser.Dlna.Main
         {
             DisposeDlnaServer();
             DisposePlayToManager();
+            DisposeSsdpHandler();
         }
 
         public void DisposeDlnaServer()

+ 5 - 0
MediaBrowser.Server.Implementations/FileOrganization/EpisodeFileOrganizer.cs

@@ -356,6 +356,11 @@ namespace MediaBrowser.Server.Implementations.FileOrganization
 
         private void SaveSmartMatchString(string matchString, Series series, AutoOrganizeOptions options)
         {
+            if (string.IsNullOrEmpty(matchString) || matchString.Length < 3)
+            {
+                return;
+            }
+
             SmartMatchInfo info = options.SmartMatchInfos.FirstOrDefault(i => string.Equals(i.ItemName, series.Name, StringComparison.OrdinalIgnoreCase));
 
             if (info == null)

+ 5 - 5
MediaBrowser.Server.Implementations/FileOrganization/FileOrganizationService.cs

@@ -95,7 +95,7 @@ namespace MediaBrowser.Server.Implementations.FileOrganization
             return _repo.Delete(resultId);
         }
 
-        private AutoOrganizeOptions GetAutoOrganizeptions()
+        private AutoOrganizeOptions GetAutoOrganizeOptions()
         {
             return _config.GetAutoOrganizeOptions();
         }
@@ -112,7 +112,7 @@ namespace MediaBrowser.Server.Implementations.FileOrganization
             var organizer = new EpisodeFileOrganizer(this, _config, _fileSystem, _logger, _libraryManager,
                 _libraryMonitor, _providerManager);
 
-            await organizer.OrganizeEpisodeFile(result.OriginalPath, GetAutoOrganizeptions(), true, CancellationToken.None)
+            await organizer.OrganizeEpisodeFile(result.OriginalPath, GetAutoOrganizeOptions(), true, CancellationToken.None)
                     .ConfigureAwait(false);
         }
 
@@ -126,7 +126,7 @@ namespace MediaBrowser.Server.Implementations.FileOrganization
             var organizer = new EpisodeFileOrganizer(this, _config, _fileSystem, _logger, _libraryManager,
                 _libraryMonitor, _providerManager);
 
-            await organizer.OrganizeWithCorrection(request, GetAutoOrganizeptions(), CancellationToken.None).ConfigureAwait(false);
+            await organizer.OrganizeWithCorrection(request, GetAutoOrganizeOptions(), CancellationToken.None).ConfigureAwait(false);
         }
 
         public QueryResult<SmartMatchInfo> GetSmartMatchInfos(FileOrganizationResultQuery query)
@@ -136,7 +136,7 @@ namespace MediaBrowser.Server.Implementations.FileOrganization
                 throw new ArgumentNullException("query");
             }
 
-            var options = GetAutoOrganizeptions();
+            var options = GetAutoOrganizeOptions();
 
             var items = options.SmartMatchInfos.Skip(query.StartIndex ?? 0).Take(query.Limit ?? Int32.MaxValue).ToArray();
 
@@ -159,7 +159,7 @@ namespace MediaBrowser.Server.Implementations.FileOrganization
                 throw new ArgumentNullException("matchString");
             }
 
-            var options = GetAutoOrganizeptions();
+            var options = GetAutoOrganizeOptions();
 
             SmartMatchInfo info = options.SmartMatchInfos.FirstOrDefault(i => string.Equals(i.ItemName, itemName));