diff --git a/NzbDrone.Core.Test/IndexerProviderTest.cs b/NzbDrone.Core.Test/IndexerProviderTest.cs index c7f0318b7..5fbc256ea 100644 --- a/NzbDrone.Core.Test/IndexerProviderTest.cs +++ b/NzbDrone.Core.Test/IndexerProviderTest.cs @@ -10,6 +10,7 @@ using MbUnit.Framework; using Moq; using NzbDrone.Core.Providers; using NzbDrone.Core.Providers.Core; +using NzbDrone.Core.Providers.ExternalNotification; using NzbDrone.Core.Providers.Indexer; using NzbDrone.Core.Repository; using NzbDrone.Core.Repository.Quality; @@ -151,8 +152,13 @@ namespace NzbDrone.Core.Test public class MockIndexerProvider : IndexerProviderBase { - public MockIndexerProvider(SeriesProvider seriesProvider, SeasonProvider seasonProvider, EpisodeProvider episodeProvider, ConfigProvider configProvider, HttpProvider httpProvider, IndexerProvider indexerProvider, HistoryProvider historyProvider, SabProvider sabProvider) - : base(seriesProvider, seasonProvider, episodeProvider, configProvider, httpProvider, indexerProvider, historyProvider, sabProvider) + public MockIndexerProvider(SeriesProvider seriesProvider, SeasonProvider seasonProvider, + EpisodeProvider episodeProvider, ConfigProvider configProvider, + HttpProvider httpProvider, IndexerProvider indexerProvider, + HistoryProvider historyProvider, SabProvider sabProvider, IEnumerable externalNotificationProvider) + : base(seriesProvider, seasonProvider, episodeProvider, + configProvider, httpProvider, indexerProvider, historyProvider, + sabProvider, externalNotificationProvider) { } @@ -180,8 +186,13 @@ namespace NzbDrone.Core.Test public class TestUrlIndexer : IndexerProviderBase { - public TestUrlIndexer(SeriesProvider seriesProvider, SeasonProvider seasonProvider, EpisodeProvider episodeProvider, ConfigProvider configProvider, HttpProvider httpProvider, IndexerProvider indexerProvider, HistoryProvider historyProvider, SabProvider sabProvider) - : base(seriesProvider, seasonProvider, episodeProvider, configProvider, httpProvider, indexerProvider, historyProvider, sabProvider) + public TestUrlIndexer(SeriesProvider seriesProvider, SeasonProvider seasonProvider, + EpisodeProvider episodeProvider, ConfigProvider configProvider, + HttpProvider httpProvider, IndexerProvider indexerProvider, + HistoryProvider historyProvider, SabProvider sabProvider, IEnumerable externalNotificationProvider) + : base(seriesProvider, seasonProvider, episodeProvider, + configProvider, httpProvider, indexerProvider, historyProvider, + sabProvider, externalNotificationProvider) { } @@ -203,8 +214,13 @@ namespace NzbDrone.Core.Test public class CustomParserIndexer : IndexerProviderBase { - public CustomParserIndexer(SeriesProvider seriesProvider, SeasonProvider seasonProvider, EpisodeProvider episodeProvider, ConfigProvider configProvider, HttpProvider httpProvider, IndexerProvider indexerProvider, HistoryProvider historyProvider, SabProvider sabProvider) - : base(seriesProvider, seasonProvider, episodeProvider, configProvider, httpProvider, indexerProvider, historyProvider, sabProvider) + public CustomParserIndexer(SeriesProvider seriesProvider, SeasonProvider seasonProvider, + EpisodeProvider episodeProvider, ConfigProvider configProvider, + HttpProvider httpProvider, IndexerProvider indexerProvider, + HistoryProvider historyProvider, SabProvider sabProvider, IEnumerable externalNotificationProvider) + : base(seriesProvider, seasonProvider, episodeProvider, + configProvider, httpProvider, indexerProvider, historyProvider, + sabProvider, externalNotificationProvider) { } diff --git a/NzbDrone.Core/CentralDispatch.cs b/NzbDrone.Core/CentralDispatch.cs index 4942c1191..de177162b 100644 --- a/NzbDrone.Core/CentralDispatch.cs +++ b/NzbDrone.Core/CentralDispatch.cs @@ -9,6 +9,7 @@ using NLog; using NzbDrone.Core.Instrumentation; using NzbDrone.Core.Providers; using NzbDrone.Core.Providers.Core; +using NzbDrone.Core.Providers.ExternalNotification; using NzbDrone.Core.Providers.Indexer; using NzbDrone.Core.Providers.Jobs; using NzbDrone.Core.Repository; @@ -112,11 +113,10 @@ namespace NzbDrone.Core BindIndexers(); BindJobs(); + BindExternalNotifications(); } } - - private static void BindIndexers() { _kernel.Bind().To().InSingletonScope(); @@ -138,6 +138,12 @@ namespace NzbDrone.Core _kernel.Get().StartTimer(30); } + private static void BindExternalNotifications() + { + _kernel.Bind().To().InSingletonScope(); + var notifiers = _kernel.GetAll(); + _kernel.Get().InitializeNotifiers(notifiers.ToList()); + } private static void ForceMigration(IRepository repository) { @@ -232,7 +238,5 @@ namespace NzbDrone.Core repository.Update(hd); } } - - } } \ No newline at end of file diff --git a/NzbDrone.Core/Model/ExternalNotificationType.cs b/NzbDrone.Core/Model/ExternalNotificationType.cs new file mode 100644 index 000000000..6e6de4a8c --- /dev/null +++ b/NzbDrone.Core/Model/ExternalNotificationType.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace NzbDrone.Core.Model +{ + public enum ExternalNotificationType + { + Grab = 0, + Download = 1, + Rename = 2 + } +} diff --git a/NzbDrone.Core/NzbDrone.Core.csproj b/NzbDrone.Core/NzbDrone.Core.csproj index 103ab582f..8ea75f9a5 100644 --- a/NzbDrone.Core/NzbDrone.Core.csproj +++ b/NzbDrone.Core/NzbDrone.Core.csproj @@ -166,8 +166,11 @@ + + + @@ -180,6 +183,7 @@ + @@ -259,6 +263,7 @@ +