auto-organize fixes

pull/702/head
Luke Pulverenti 8 years ago
parent 7d716dd94b
commit 4d66f6dc6c

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

@ -85,14 +85,14 @@ namespace MediaBrowser.Dlna.Main
_config.NamedConfigurationUpdated += _config_NamedConfigurationUpdated; _config.NamedConfigurationUpdated += _config_NamedConfigurationUpdated;
} }
private bool _lastEnableUPnP; private bool _lastEnableUpnP;
void _config_ConfigurationUpdated(object sender, EventArgs e) void _config_ConfigurationUpdated(object sender, EventArgs e)
{ {
if (_lastEnableUPnP != _config.Configuration.EnableUPnP) if (_lastEnableUpnP != _config.Configuration.EnableUPnP)
{ {
ReloadComponents(); ReloadComponents();
} }
_lastEnableUPnP = _config.Configuration.EnableUPnP; _lastEnableUpnP = _config.Configuration.EnableUPnP;
} }
void _config_NamedConfigurationUpdated(object sender, ConfigurationUpdateEventArgs e) void _config_NamedConfigurationUpdated(object sender, ConfigurationUpdateEventArgs e)
@ -111,7 +111,10 @@ namespace MediaBrowser.Dlna.Main
{ {
if (_ssdpHandlerStarted) 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; return;
} }
@ -149,19 +152,44 @@ namespace MediaBrowser.Dlna.Main
try try
{ {
_ssdpHandler.Start(); _ssdpHandler.Start();
_ssdpHandlerStarted = true;
StartDeviceDiscovery();
}
catch (Exception ex)
{
_logger.ErrorException("Error starting ssdp handlers", ex);
}
}
private void StartDeviceDiscovery()
{
try
{
((DeviceDiscovery)_deviceDiscovery).Start(_ssdpHandler); ((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) 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 try
{ {
((DeviceDiscovery)_deviceDiscovery).Dispose(); ((DeviceDiscovery)_deviceDiscovery).Dispose();
@ -277,6 +305,7 @@ namespace MediaBrowser.Dlna.Main
{ {
DisposeDlnaServer(); DisposeDlnaServer();
DisposePlayToManager(); DisposePlayToManager();
DisposeSsdpHandler();
} }
public void DisposeDlnaServer() public void DisposeDlnaServer()

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

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

Loading…
Cancel
Save