diff --git a/NzbDrone.Core/Model/IndexerType.cs b/NzbDrone.Core/Model/IndexerType.cs
new file mode 100644
index 0000000000..2d4d6dcd9f
--- /dev/null
+++ b/NzbDrone.Core/Model/IndexerType.cs
@@ -0,0 +1,16 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace NzbDrone.Core.Model
+{
+ public enum IndexerType
+ {
+ Other = 0,
+ NzbsOrg = 1,
+ NzbMatrix = 2,
+ NzbsRus = 3,
+ Newzbin = 4
+ }
+}
diff --git a/NzbDrone.Core/NzbDrone.Core.csproj b/NzbDrone.Core/NzbDrone.Core.csproj
index 6e715c37e6..fa1485f442 100644
--- a/NzbDrone.Core/NzbDrone.Core.csproj
+++ b/NzbDrone.Core/NzbDrone.Core.csproj
@@ -166,6 +166,7 @@
+
diff --git a/NzbDrone.Core/Providers/Indexer/IndexerProviderBase.cs b/NzbDrone.Core/Providers/Indexer/IndexerProviderBase.cs
index a0840ec670..9a88bbfc6c 100644
--- a/NzbDrone.Core/Providers/Indexer/IndexerProviderBase.cs
+++ b/NzbDrone.Core/Providers/Indexer/IndexerProviderBase.cs
@@ -49,7 +49,6 @@ protected IndexerProviderBase(SeriesProvider seriesProvider, SeasonProvider seas
///
protected abstract string[] Urls { get; }
-
///
/// Gets the credential.
///
@@ -58,7 +57,6 @@ protected virtual NetworkCredential Credentials
get { return null; }
}
-
public IndexerSetting Settings
{
get
@@ -189,7 +187,8 @@ internal void ProcessItem(SyndicationItem feedItem)
EpisodeId = episode.EpisodeId,
IsProper = parseResult.Proper,
NzbTitle = feedItem.Title.Text,
- Quality = parseResult.Quality
+ Quality = parseResult.Quality,
+ Indexer = GetIndexerType()
});
}
}
@@ -246,6 +245,15 @@ protected virtual EpisodeParseResult CustomParser(SyndicationItem item, EpisodeP
/// Download link URL
protected abstract string NzbDownloadUrl(SyndicationItem item);
+ ///
+ /// Gets he IndexerType Enum for this indexer
+ ///
+ /// IndexerType Enum
+ protected virtual IndexerType GetIndexerType()
+ {
+ return IndexerType.Other;
+ }
+
private bool InHistory(IList episodes, EpisodeParseResult parseResult, SyndicationItem feedItem)
{
foreach (var episode in episodes)
diff --git a/NzbDrone.Core/Providers/Indexer/NewzbinProvider.cs b/NzbDrone.Core/Providers/Indexer/NewzbinProvider.cs
index 8437534200..7326b16f32 100644
--- a/NzbDrone.Core/Providers/Indexer/NewzbinProvider.cs
+++ b/NzbDrone.Core/Providers/Indexer/NewzbinProvider.cs
@@ -52,5 +52,10 @@ protected override EpisodeParseResult CustomParser(SyndicationItem item, Episode
return currentResult;
}
+
+ protected override IndexerType GetIndexerType()
+ {
+ return IndexerType.Newzbin;
+ }
}
}
\ No newline at end of file
diff --git a/NzbDrone.Core/Providers/Indexer/NzbMatrixProvider.cs b/NzbDrone.Core/Providers/Indexer/NzbMatrixProvider.cs
index 371f6d479c..ab9a0c5e9d 100644
--- a/NzbDrone.Core/Providers/Indexer/NzbMatrixProvider.cs
+++ b/NzbDrone.Core/Providers/Indexer/NzbMatrixProvider.cs
@@ -1,6 +1,7 @@
using System;
using System.Net;
using System.ServiceModel.Syndication;
+using NzbDrone.Core.Model;
using NzbDrone.Core.Providers.Core;
using SubSonic.Repository;
@@ -36,5 +37,10 @@ protected override string NzbDownloadUrl(SyndicationItem item)
{
return item.Links[0].Uri.ToString();
}
+
+ protected override IndexerType GetIndexerType()
+ {
+ return IndexerType.NzbMatrix;
+ }
}
}
\ No newline at end of file
diff --git a/NzbDrone.Core/Providers/Indexer/NzbsOrgProvider.cs b/NzbDrone.Core/Providers/Indexer/NzbsOrgProvider.cs
index aa918173ec..72146b22d4 100644
--- a/NzbDrone.Core/Providers/Indexer/NzbsOrgProvider.cs
+++ b/NzbDrone.Core/Providers/Indexer/NzbsOrgProvider.cs
@@ -1,5 +1,6 @@
using System.Net;
using System.ServiceModel.Syndication;
+using NzbDrone.Core.Model;
using NzbDrone.Core.Providers.Core;
using SubSonic.Repository;
@@ -33,6 +34,9 @@ protected override string NzbDownloadUrl(SyndicationItem item)
return item.Id;
}
-
+ protected override IndexerType GetIndexerType()
+ {
+ return IndexerType.NzbsOrg;
+ }
}
}
\ No newline at end of file
diff --git a/NzbDrone.Core/Providers/Indexer/NzbsRUsProvider.cs b/NzbDrone.Core/Providers/Indexer/NzbsRUsProvider.cs
index 1e7001decf..27dd10c7d6 100644
--- a/NzbDrone.Core/Providers/Indexer/NzbsRUsProvider.cs
+++ b/NzbDrone.Core/Providers/Indexer/NzbsRUsProvider.cs
@@ -1,5 +1,6 @@
using System.Net;
using System.ServiceModel.Syndication;
+using NzbDrone.Core.Model;
using NzbDrone.Core.Providers.Core;
using SubSonic.Repository;
@@ -36,5 +37,10 @@ protected override string NzbDownloadUrl(SyndicationItem item)
{
return item.Links[0].Uri.ToString();
}
+
+ protected override IndexerType GetIndexerType()
+ {
+ return IndexerType.NzbsRus;
+ }
}
}
\ No newline at end of file
diff --git a/NzbDrone.Core/Repository/History.cs b/NzbDrone.Core/Repository/History.cs
index d4346c3a7d..af6f3edb41 100644
--- a/NzbDrone.Core/Repository/History.cs
+++ b/NzbDrone.Core/Repository/History.cs
@@ -1,4 +1,5 @@
using System;
+using NzbDrone.Core.Model;
using NzbDrone.Core.Repository.Quality;
using SubSonic.SqlGeneration.Schema;
@@ -14,6 +15,7 @@ public class History
public QualityTypes Quality { get; set; }
public DateTime Date { get; set; }
public bool IsProper { get; set; }
+ public IndexerType? Indexer { get; set; }
[SubSonicToOneRelation(ThisClassContainsJoinKey = true)]
public virtual Episode Episode { get; protected set; }