diff --git a/src/NzbDrone.Core.Test/Blacklisting/BlacklistRepositoryFixture.cs b/src/NzbDrone.Core.Test/Blacklisting/BlacklistRepositoryFixture.cs index 6629809f7..eb7b38c57 100644 --- a/src/NzbDrone.Core.Test/Blacklisting/BlacklistRepositoryFixture.cs +++ b/src/NzbDrone.Core.Test/Blacklisting/BlacklistRepositoryFixture.cs @@ -21,7 +21,7 @@ namespace NzbDrone.Core.Test.Blacklisting _blacklist = new Blacklist { SeriesId = 12345, - EpisodeIds = new List {1}, + EpisodeIds = new List { 1 }, Quality = new QualityModel(Quality.Bluray720p), SourceTitle = "series.title.s01e01", Date = DateTime.UtcNow @@ -48,7 +48,7 @@ namespace NzbDrone.Core.Test.Blacklisting { Subject.Insert(_blacklist); - Subject.Blacklisted(_blacklist.SourceTitle.ToUpperInvariant()).Should().BeTrue(); + Subject.Blacklisted(_blacklist.SeriesId, _blacklist.SourceTitle.ToUpperInvariant()).Should().BeTrue(); } } } diff --git a/src/NzbDrone.Core/Blacklisting/BlacklistRepository.cs b/src/NzbDrone.Core/Blacklisting/BlacklistRepository.cs index fc6498412..936d8169e 100644 --- a/src/NzbDrone.Core/Blacklisting/BlacklistRepository.cs +++ b/src/NzbDrone.Core/Blacklisting/BlacklistRepository.cs @@ -8,7 +8,7 @@ namespace NzbDrone.Core.Blacklisting { public interface IBlacklistRepository : IBasicRepository { - bool Blacklisted(string sourceTitle); + bool Blacklisted(int seriesId, string sourceTitle); List BlacklistedBySeries(int seriesId); } @@ -19,7 +19,7 @@ namespace NzbDrone.Core.Blacklisting { } - public bool Blacklisted(string sourceTitle) + public bool Blacklisted(int seriesId, string sourceTitle) { return Query.Where(e => e.SourceTitle.Contains(sourceTitle)).Any(); } diff --git a/src/NzbDrone.Core/Blacklisting/BlacklistService.cs b/src/NzbDrone.Core/Blacklisting/BlacklistService.cs index fafbec44e..3c4d416e2 100644 --- a/src/NzbDrone.Core/Blacklisting/BlacklistService.cs +++ b/src/NzbDrone.Core/Blacklisting/BlacklistService.cs @@ -9,7 +9,7 @@ namespace NzbDrone.Core.Blacklisting { public interface IBlacklistService { - bool Blacklisted(string sourceTitle); + bool Blacklisted(int seriesId,string sourceTitle); PagingSpec Paged(PagingSpec pagingSpec); void Delete(int id); } @@ -25,9 +25,9 @@ namespace NzbDrone.Core.Blacklisting _redownloadFailedDownloadService = redownloadFailedDownloadService; } - public bool Blacklisted(string sourceTitle) + public bool Blacklisted(int seriesId, string sourceTitle) { - return _blacklistRepository.Blacklisted(sourceTitle); + return _blacklistRepository.Blacklisted(seriesId,sourceTitle); } public PagingSpec Paged(PagingSpec pagingSpec) diff --git a/src/NzbDrone.Core/Datastore/Migration/032_add_indexes.cs b/src/NzbDrone.Core/Datastore/Migration/032_add_indexes.cs new file mode 100644 index 000000000..fa4c75ef3 --- /dev/null +++ b/src/NzbDrone.Core/Datastore/Migration/032_add_indexes.cs @@ -0,0 +1,25 @@ +using FluentMigrator; +using NzbDrone.Core.Datastore.Migration.Framework; + +namespace NzbDrone.Core.Datastore.Migration +{ + [Migration(32)] + public class add_indexes : NzbDroneMigrationBase + { + protected override void MainDbUpgrade() + { + Create.Index().OnTable("Blacklist").OnColumn("SeriesId"); + + Create.Index().OnTable("EpisodeFiles").OnColumn("SeriesId"); + + Create.Index().OnTable("Episodes").OnColumn("EpisodeFileId"); + Create.Index().OnTable("Episodes").OnColumn("SeriesId"); + + Create.Index().OnTable("History").OnColumn("EpisodeId"); + + Create.Index().OnTable("Series").OnColumn("Path"); + Create.Index().OnTable("Series").OnColumn("CleanTitle"); + Create.Index().OnTable("Series").OnColumn("TvRageId"); + } + } +} diff --git a/src/NzbDrone.Core/DecisionEngine/Specifications/BlacklistSpecification.cs b/src/NzbDrone.Core/DecisionEngine/Specifications/BlacklistSpecification.cs index dc800715e..0b7e5166c 100644 --- a/src/NzbDrone.Core/DecisionEngine/Specifications/BlacklistSpecification.cs +++ b/src/NzbDrone.Core/DecisionEngine/Specifications/BlacklistSpecification.cs @@ -35,7 +35,7 @@ namespace NzbDrone.Core.DecisionEngine.Specifications return true; } - if (_blacklistService.Blacklisted(subject.Release.Title)) + if (_blacklistService.Blacklisted(subject.Series.Id, subject.Release.Title)) { _logger.Trace("{0} is blacklisted, rejecting.", subject.Release.Title); return false; diff --git a/src/NzbDrone.Core/NzbDrone.Core.csproj b/src/NzbDrone.Core/NzbDrone.Core.csproj index 552ca7ce0..bf61d36cb 100644 --- a/src/NzbDrone.Core/NzbDrone.Core.csproj +++ b/src/NzbDrone.Core/NzbDrone.Core.csproj @@ -173,6 +173,7 @@ + diff --git a/src/NzbDrone.Host/Owin/NlogTextWriter.cs b/src/NzbDrone.Host/Owin/NlogTextWriter.cs index d5b4d04aa..5403d49c9 100644 --- a/src/NzbDrone.Host/Owin/NlogTextWriter.cs +++ b/src/NzbDrone.Host/Owin/NlogTextWriter.cs @@ -1,4 +1,5 @@ -using System.IO; +using System; +using System.IO; using System.Text; using NLog; using NzbDrone.Common.Instrumentation; @@ -7,8 +8,12 @@ namespace NzbDrone.Host.Owin { public class NlogTextWriter : TextWriter { - private readonly Logger _logger = NzbDroneLogger.GetLogger(); + private readonly Logger _logger; + public NlogTextWriter(Logger logger) + { + _logger = logger; + } public override Encoding Encoding { @@ -29,7 +34,14 @@ namespace NzbDrone.Host.Owin public override void Write(string value) { - _logger.Trace(value); + if (value.ToLower().Contains("error")) + { + _logger.Error(value); + } + else + { + _logger.Trace(value); + } } public override void Write(char value) diff --git a/src/NzbDrone.Host/Owin/OwinTraceOutputFactory.cs b/src/NzbDrone.Host/Owin/OwinTraceOutputFactory.cs index 9a0f8997d..058771fd1 100644 --- a/src/NzbDrone.Host/Owin/OwinTraceOutputFactory.cs +++ b/src/NzbDrone.Host/Owin/OwinTraceOutputFactory.cs @@ -1,14 +1,16 @@ using System.IO; using Microsoft.Owin.Hosting.Tracing; +using NLog; namespace NzbDrone.Host.Owin { public class OwinTraceOutputFactory : ITraceOutputFactory { + private readonly Logger logger = LogManager.GetLogger("Owin"); public TextWriter Create(string outputFile) { - return new NlogTextWriter(); + return new NlogTextWriter(logger); } } } \ No newline at end of file