From 401a5c9f26db1d0154b8fe4b6f7d3fe058e8ca58 Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Thu, 9 Jan 2014 17:41:08 -0800 Subject: [PATCH] Fixed: Xem mapped series should be more reliable --- .../DataAugmentation/Xem/RefreshXemCacheCommand.cs | 8 -------- .../DataAugmentation/Xem/XemService.cs | 13 ++++++++----- src/NzbDrone.Core/Jobs/TaskManager.cs | 2 -- src/NzbDrone.Core/NzbDrone.Core.csproj | 2 +- .../Tv/Events/SeriesRefreshStartingEvent.cs | 8 ++++++++ src/NzbDrone.Core/Tv/RefreshSeriesService.cs | 2 ++ 6 files changed, 19 insertions(+), 16 deletions(-) delete mode 100644 src/NzbDrone.Core/DataAugmentation/Xem/RefreshXemCacheCommand.cs create mode 100644 src/NzbDrone.Core/Tv/Events/SeriesRefreshStartingEvent.cs diff --git a/src/NzbDrone.Core/DataAugmentation/Xem/RefreshXemCacheCommand.cs b/src/NzbDrone.Core/DataAugmentation/Xem/RefreshXemCacheCommand.cs deleted file mode 100644 index 67dd09657..000000000 --- a/src/NzbDrone.Core/DataAugmentation/Xem/RefreshXemCacheCommand.cs +++ /dev/null @@ -1,8 +0,0 @@ -using NzbDrone.Core.Messaging.Commands; - -namespace NzbDrone.Core.DataAugmentation.Xem -{ - public class RefreshXemCacheCommand : Command - { - } -} diff --git a/src/NzbDrone.Core/DataAugmentation/Xem/XemService.cs b/src/NzbDrone.Core/DataAugmentation/Xem/XemService.cs index 4dded7395..b7165a7f0 100644 --- a/src/NzbDrone.Core/DataAugmentation/Xem/XemService.cs +++ b/src/NzbDrone.Core/DataAugmentation/Xem/XemService.cs @@ -1,15 +1,15 @@ using System; using System.Linq; +using System.Web.UI.WebControls; using NLog; using NzbDrone.Common.Cache; -using NzbDrone.Core.Messaging.Commands; using NzbDrone.Core.Messaging.Events; using NzbDrone.Core.Tv; using NzbDrone.Core.Tv.Events; namespace NzbDrone.Core.DataAugmentation.Xem { - public class XemService : IHandle, IExecute + public class XemService : IHandle, IHandle { private readonly IEpisodeService _episodeService; private readonly IXemProxy _xemProxy; @@ -84,10 +84,13 @@ namespace NzbDrone.Core.DataAugmentation.Xem private void RefreshCache() { - _cache.Clear(); - var ids = _xemProxy.GetXemSeriesIds(); + if (ids.Any()) + { + _cache.Clear(); + } + foreach (var id in ids) { _cache.Set(id.ToString(), true, TimeSpan.FromHours(1)); @@ -110,7 +113,7 @@ namespace NzbDrone.Core.DataAugmentation.Xem PerformUpdate(message.Series); } - public void Execute(RefreshXemCacheCommand message) + public void Handle(SeriesRefreshStartingEvent message) { RefreshCache(); } diff --git a/src/NzbDrone.Core/Jobs/TaskManager.cs b/src/NzbDrone.Core/Jobs/TaskManager.cs index e26eee045..0470c17ee 100644 --- a/src/NzbDrone.Core/Jobs/TaskManager.cs +++ b/src/NzbDrone.Core/Jobs/TaskManager.cs @@ -53,10 +53,8 @@ namespace NzbDrone.Core.Jobs new ScheduledTask{ Interval = 1*60, TypeName = typeof(ApplicationUpdateCommand).FullName}, new ScheduledTask{ Interval = 1*60, TypeName = typeof(TrimLogCommand).FullName}, new ScheduledTask{ Interval = 3*60, TypeName = typeof(UpdateSceneMappingCommand).FullName}, - new ScheduledTask{ Interval = 12*60, TypeName = typeof(RefreshXemCacheCommand).FullName}, new ScheduledTask{ Interval = 12*60, TypeName = typeof(RefreshSeriesCommand).FullName}, new ScheduledTask{ Interval = 24*60, TypeName = typeof(HousekeepingCommand).FullName}, - }; var currentTasks = _scheduledTaskRepository.All(); diff --git a/src/NzbDrone.Core/NzbDrone.Core.csproj b/src/NzbDrone.Core/NzbDrone.Core.csproj index 599e2cdb1..7967454d8 100644 --- a/src/NzbDrone.Core/NzbDrone.Core.csproj +++ b/src/NzbDrone.Core/NzbDrone.Core.csproj @@ -139,7 +139,6 @@ - @@ -477,6 +476,7 @@ + diff --git a/src/NzbDrone.Core/Tv/Events/SeriesRefreshStartingEvent.cs b/src/NzbDrone.Core/Tv/Events/SeriesRefreshStartingEvent.cs new file mode 100644 index 000000000..d0e8cca16 --- /dev/null +++ b/src/NzbDrone.Core/Tv/Events/SeriesRefreshStartingEvent.cs @@ -0,0 +1,8 @@ +using NzbDrone.Common.Messaging; + +namespace NzbDrone.Core.Tv.Events +{ + public class SeriesRefreshStartingEvent : IEvent + { + } +} \ No newline at end of file diff --git a/src/NzbDrone.Core/Tv/RefreshSeriesService.cs b/src/NzbDrone.Core/Tv/RefreshSeriesService.cs index acee4ee85..7400a3f43 100644 --- a/src/NzbDrone.Core/Tv/RefreshSeriesService.cs +++ b/src/NzbDrone.Core/Tv/RefreshSeriesService.cs @@ -99,6 +99,8 @@ namespace NzbDrone.Core.Tv public void Execute(RefreshSeriesCommand message) { + _eventAggregator.PublishEvent(new SeriesRefreshStartingEvent()); + if (message.SeriesId.HasValue) { var series = _seriesService.GetSeries(message.SeriesId.Value);