diff --git a/IISExpress/AppServer/applicationhost.config b/IISExpress/AppServer/applicationhost.config index 458aeedbb..f1e3a3538 100644 --- a/IISExpress/AppServer/applicationhost.config +++ b/IISExpress/AppServer/applicationhost.config @@ -57,23 +57,17 @@
-
-
-
-
-
-
@@ -87,7 +81,6 @@
-
@@ -99,19 +92,6 @@
- -
-
-
- - -
-
-
-
-
-
- @@ -155,12 +135,7 @@ - - - - - @@ -171,7 +146,6 @@ - - - - - - - - - - - - - - - - - - - - - @@ -245,7 +199,6 @@ - @@ -257,17 +210,8 @@ - - - - - - - - - @@ -285,68 +229,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -706,23 +588,10 @@ - - - - - - - - - - - - - @@ -737,10 +606,7 @@ - - - @@ -748,20 +614,6 @@ - - - - - - - - - - - - - - @@ -769,44 +621,24 @@ - - - - - - - - - - - - - - - - - - - - @@ -817,28 +649,8 @@ - - - - - - - - - - - - - - - - - - - - @@ -858,9 +670,6 @@ - - - @@ -869,21 +678,11 @@ - - - - - - - - - - - + diff --git a/IISExpress/IisExpressAdminCmd.exe b/IISExpress/IisExpressAdminCmd.exe deleted file mode 100644 index bd15274a4..000000000 Binary files a/IISExpress/IisExpressAdminCmd.exe and /dev/null differ diff --git a/IISExpress/IisExpressAdminCmd.exe.config b/IISExpress/IisExpressAdminCmd.exe.config deleted file mode 100644 index 904dc3376..000000000 --- a/IISExpress/IisExpressAdminCmd.exe.config +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/IISExpress/IisExpressadminCmd.resources.dll b/IISExpress/IisExpressadminCmd.resources.dll deleted file mode 100644 index 9decd5b0b..000000000 Binary files a/IISExpress/IisExpressadminCmd.resources.dll and /dev/null differ diff --git a/IISExpress/appcmd.exe b/IISExpress/appcmd.exe deleted file mode 100644 index 116ba4e7c..000000000 Binary files a/IISExpress/appcmd.exe and /dev/null differ diff --git a/IISExpress/appcmd.xml b/IISExpress/appcmd.xml deleted file mode 100644 index 37c888150..000000000 --- a/IISExpress/appcmd.xml +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/IISExpress/authcert.dll b/IISExpress/authcert.dll deleted file mode 100644 index 99bcb714c..000000000 Binary files a/IISExpress/authcert.dll and /dev/null differ diff --git a/IISExpress/authmap.dll b/IISExpress/authmap.dll deleted file mode 100644 index f4cb73193..000000000 Binary files a/IISExpress/authmap.dll and /dev/null differ diff --git a/IISExpress/authsspi.dll b/IISExpress/authsspi.dll deleted file mode 100644 index e7ac5de73..000000000 Binary files a/IISExpress/authsspi.dll and /dev/null differ diff --git a/IISExpress/cachtokn.dll b/IISExpress/cachtokn.dll deleted file mode 100644 index c175a5f90..000000000 Binary files a/IISExpress/cachtokn.dll and /dev/null differ diff --git a/IISExpress/cgi.dll b/IISExpress/cgi.dll deleted file mode 100644 index 9317434b7..000000000 Binary files a/IISExpress/cgi.dll and /dev/null differ diff --git a/IISExpress/compdyn.dll b/IISExpress/compdyn.dll deleted file mode 100644 index e74c4c753..000000000 Binary files a/IISExpress/compdyn.dll and /dev/null differ diff --git a/IISExpress/config/schema/WebDAV_schema.xml b/IISExpress/config/schema/WebDAV_schema.xml deleted file mode 100644 index 92cddade4..000000000 --- a/IISExpress/config/schema/WebDAV_schema.xml +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/IISExpress/config/schema/rewrite_schema.xml b/IISExpress/config/schema/rewrite_schema.xml deleted file mode 100644 index c917ec0f0..000000000 --- a/IISExpress/config/schema/rewrite_schema.xml +++ /dev/null @@ -1,264 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/IISExpress/dirlist.dll b/IISExpress/dirlist.dll deleted file mode 100644 index 74bbd265c..000000000 Binary files a/IISExpress/dirlist.dll and /dev/null differ diff --git a/IISExpress/filter.dll b/IISExpress/filter.dll deleted file mode 100644 index b86d8f871..000000000 Binary files a/IISExpress/filter.dll and /dev/null differ diff --git a/IISExpress/iisexpress.exe.manifest b/IISExpress/iisexpress.exe.manifest deleted file mode 100644 index 20778a00a..000000000 --- a/IISExpress/iisexpress.exe.manifest +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/IISExpress/iisexpresstray.exe.manifest b/IISExpress/iisexpresstray.exe.manifest deleted file mode 100644 index 6891487c2..000000000 --- a/IISExpress/iisexpresstray.exe.manifest +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/IISExpress/iisfcgi.dll b/IISExpress/iisfcgi.dll deleted file mode 100644 index 7d7e6741b..000000000 Binary files a/IISExpress/iisfcgi.dll and /dev/null differ diff --git a/IISExpress/iisfreb.dll b/IISExpress/iisfreb.dll deleted file mode 100644 index 8cba256dd..000000000 Binary files a/IISExpress/iisfreb.dll and /dev/null differ diff --git a/IISExpress/iisreqs.dll b/IISExpress/iisreqs.dll deleted file mode 100644 index 51a96d4aa..000000000 Binary files a/IISExpress/iisreqs.dll and /dev/null differ diff --git a/IISExpress/iprestr.dll b/IISExpress/iprestr.dll deleted file mode 100644 index 3de654d78..000000000 Binary files a/IISExpress/iprestr.dll and /dev/null differ diff --git a/IISExpress/isapi.dll b/IISExpress/isapi.dll deleted file mode 100644 index c9dd5f7a0..000000000 Binary files a/IISExpress/isapi.dll and /dev/null differ diff --git a/IISExpress/logcust.dll b/IISExpress/logcust.dll deleted file mode 100644 index a746022ae..000000000 Binary files a/IISExpress/logcust.dll and /dev/null differ diff --git a/IISExpress/loghttp.dll b/IISExpress/loghttp.dll deleted file mode 100644 index 65717794c..000000000 Binary files a/IISExpress/loghttp.dll and /dev/null differ diff --git a/IISExpress/protsup.dll b/IISExpress/protsup.dll deleted file mode 100644 index 363cbcd15..000000000 Binary files a/IISExpress/protsup.dll and /dev/null differ diff --git a/IISExpress/rewrite.dll b/IISExpress/rewrite.dll deleted file mode 100644 index 4d1b2811f..000000000 Binary files a/IISExpress/rewrite.dll and /dev/null differ diff --git a/IISExpress/urlauthz.dll b/IISExpress/urlauthz.dll deleted file mode 100644 index d6f8871ea..000000000 Binary files a/IISExpress/urlauthz.dll and /dev/null differ diff --git a/IISExpress/webdav.dll b/IISExpress/webdav.dll deleted file mode 100644 index 5f0fc0ff3..000000000 Binary files a/IISExpress/webdav.dll and /dev/null differ diff --git a/IISExpress/webdav_simple_lock.dll b/IISExpress/webdav_simple_lock.dll deleted file mode 100644 index 852726b8b..000000000 Binary files a/IISExpress/webdav_simple_lock.dll and /dev/null differ diff --git a/IISExpress/webdav_simple_prop.dll b/IISExpress/webdav_simple_prop.dll deleted file mode 100644 index e93f154b0..000000000 Binary files a/IISExpress/webdav_simple_prop.dll and /dev/null differ diff --git a/IISExpress/webmatrixsup.dll b/IISExpress/webmatrixsup.dll deleted file mode 100644 index b6061cb4d..000000000 Binary files a/IISExpress/webmatrixsup.dll and /dev/null differ diff --git a/NzbDrone.Core.Test/DownloadProviderTest.cs b/NzbDrone.Core.Test/DownloadProviderTest.cs index 492f7c347..e0d956236 100644 --- a/NzbDrone.Core.Test/DownloadProviderTest.cs +++ b/NzbDrone.Core.Test/DownloadProviderTest.cs @@ -17,7 +17,7 @@ namespace NzbDrone.Core.Test public class DownloadProviderTest : TestBase { [Test] - public void Download_report_should_send_to_sab_and_add_to_history() + public void Download_report_should_send_to_sab_add_to_history_mark_as_grabbed() { var mocker = new AutoMoqer(MockBehavior.Strict); var parseResult = Builder.CreateNew() @@ -52,6 +52,13 @@ namespace NzbDrone.Core.Test mocker.GetMock() .Setup(c => c.GetEpisodesByParseResult(It.IsAny(), false)).Returns(episodes); + mocker.GetMock() + .Setup(c => c.MarkEpisodeAsFetched(12)); + + + mocker.GetMock() + .Setup(c => c.MarkEpisodeAsFetched(99)); + mocker.Resolve().DownloadReport(parseResult); mocker.VerifyAllMocks(); diff --git a/NzbDrone.Core.Test/EpisodeProviderTest.cs b/NzbDrone.Core.Test/EpisodeProviderTest.cs index 6b6da3c27..2a0398fba 100644 --- a/NzbDrone.Core.Test/EpisodeProviderTest.cs +++ b/NzbDrone.Core.Test/EpisodeProviderTest.cs @@ -757,6 +757,31 @@ namespace NzbDrone.Core.Test episode.EpisodeFile.Should().BeNull(); } + [Test] + public void MarkEpisodeAsFetched() + { + var mocker = new AutoMoqer(); + var db = MockLib.GetEmptyDatabase(); + mocker.SetConstant(db); + + var fakeEpisodes = Builder.CreateListOfSize(5) + .WhereAll().Have(e => e.GrabDate = null) + .Build(); + + db.InsertMany(fakeEpisodes); + + //Act + mocker.Resolve().MarkEpisodeAsFetched(2); + var episodes = db.Fetch(); + + //Assert + episodes.Where(e => e.EpisodeId == 2).Single().GrabDate.Should().BeWithin(TimeSpan.FromSeconds(5)).Before( + DateTime.Now); + + episodes.Where(e => e.GrabDate == null).Should().HaveCount(4); + } + + } diff --git a/NzbDrone.Core.Test/IndexerTests.cs b/NzbDrone.Core.Test/IndexerTests.cs index 69670f5b2..92448807c 100644 --- a/NzbDrone.Core.Test/IndexerTests.cs +++ b/NzbDrone.Core.Test/IndexerTests.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.IO; using System.Net; using System.ServiceModel.Syndication; @@ -159,8 +160,9 @@ namespace NzbDrone.Core.Test ExceptionVerification.IgnoreWarns(); } - [Test] - public void nzbsorg_search_returns_valid_results() + [TestCase("simpsons", 21, 23)] + [TestCase("Hawaii Five-0 (2010)", 1, 5)] + public void nzbsorg_search_returns_valid_results(string title, int season, int episode) { var mocker = new AutoMoqer(); @@ -174,16 +176,16 @@ namespace NzbDrone.Core.Test mocker.Resolve(); - var result = mocker.Resolve().FetchEpisode("Simpsons", 21, 23); + var result = mocker.Resolve().FetchEpisode(title, season, episode); result.Should().NotBeEmpty(); - result.Should().OnlyContain(r => r.CleanTitle == "simpsons"); - result.Should().OnlyContain(r => r.SeasonNumber == 21); - result.Should().OnlyContain(r => r.EpisodeNumbers.Contains(23)); + result.Should().OnlyContain(r => r.CleanTitle == Parser.NormalizeTitle(title)); + result.Should().OnlyContain(r => r.SeasonNumber == season); + result.Should().OnlyContain(r => r.EpisodeNumbers.Contains(episode)); } [TestCase("simpsons", 21, 23)] - [TestCase("Hawaii Five-0 2010", 1, 5)] + [TestCase("Hawaii Five-0 (2010)", 1, 1)] public void newzbin_search_returns_valid_results(string title, int season, int episode) { var mocker = new AutoMoqer(); @@ -275,5 +277,20 @@ namespace NzbDrone.Core.Test result.Should().OnlyContain(r => r.SeasonNumber == 1); result.Should().OnlyContain(r => r.EpisodeNumbers.Contains(19)); } + + + [TestCase("hawaii five-0 (2010)", "hawaii+five+0+2010")] + [TestCase("this& that", "this+that")] + [TestCase("this& that", "this+that")] + public void get_query_title(string raw, string clean) + { + var result = IndexerBase.GetQueryTitle(raw); + + result.Should().Be(clean); + } + } + + + } diff --git a/NzbDrone.Core.Test/LogProviderTest.cs b/NzbDrone.Core.Test/LogProviderTest.cs index ef62ddd3d..4ee5a2091 100644 --- a/NzbDrone.Core.Test/LogProviderTest.cs +++ b/NzbDrone.Core.Test/LogProviderTest.cs @@ -42,7 +42,10 @@ namespace NzbDrone.Core.Test var logItem = db.Fetch().First(); Assert.AreNotEqual(new DateTime(), logItem.Time); Assert.AreEqual(message, logItem.Message); - Assert.AreEqual(Logger.Name, logItem.Logger); + Assert.AreEqual("Core.Test.LogProviderTest", logItem.Logger); + + Logger.Name.Should().EndWith(logItem.Logger); + Assert.AreEqual(LogLevel.Info.Name, logItem.Level); Assert.AreEqual("write_log", logItem.Method); } @@ -106,7 +109,7 @@ namespace NzbDrone.Core.Test var logItem = db.Fetch().First(); Assert.AreNotEqual(new DateTime(), logItem.Time); Assert.AreEqual(message + ": " + ex.Message, logItem.Message); - Assert.AreEqual(Logger.Name, logItem.Logger); + Assert.AreEqual("Core.Test.LogProviderTest", logItem.Logger); Assert.AreEqual(LogLevel.Error.Name, logItem.Level); Assert.AreEqual(ex.GetType().ToString(), logItem.ExceptionType); Assert.AreEqual(ex.ToString(), logItem.Exception); @@ -140,7 +143,7 @@ namespace NzbDrone.Core.Test var logItem = db.Fetch().First(); Assert.AreNotEqual(new DateTime(), logItem.Time); Assert.AreEqual(ex.Message, logItem.Message); - Assert.AreEqual(Logger.Name, logItem.Logger); + Assert.AreEqual("Core.Test.LogProviderTest", logItem.Logger); Assert.AreEqual(LogLevel.Error.Name, logItem.Level); Assert.AreEqual(ex.GetType().ToString(), logItem.ExceptionType); Assert.AreEqual(ex.ToString(), logItem.Exception); diff --git a/NzbDrone.Core.Test/TvDbProviderTest.cs b/NzbDrone.Core.Test/TvDbProviderTest.cs index 8d5374482..67e4972fa 100644 --- a/NzbDrone.Core.Test/TvDbProviderTest.cs +++ b/NzbDrone.Core.Test/TvDbProviderTest.cs @@ -85,7 +85,7 @@ namespace NzbDrone.Core.Test } //assert - seasonsNumbers.Should().HaveCount(7); + seasonsNumbers.Should().HaveCount(8); seasons[1].Should().HaveCount(23); seasons[2].Should().HaveCount(19); seasons[3].Should().HaveCount(16); diff --git a/NzbDrone.Core/Instrumentation/DatabaseTarget.cs b/NzbDrone.Core/Instrumentation/DatabaseTarget.cs index eee8bbdf3..593c60929 100644 --- a/NzbDrone.Core/Instrumentation/DatabaseTarget.cs +++ b/NzbDrone.Core/Instrumentation/DatabaseTarget.cs @@ -33,6 +33,11 @@ namespace NzbDrone.Core.Instrumentation log.Logger = logEvent.LoggerName; + if (log.Logger.StartsWith("NzbDrone.")) + { + log.Logger = log.Logger.Remove(0, 9); + } + if (logEvent.Exception != null) { if (String.IsNullOrWhiteSpace(log.Message)) diff --git a/NzbDrone.Core/Instrumentation/ExceptioneerTarget.cs b/NzbDrone.Core/Instrumentation/ExceptioneerTarget.cs index 8fac9e123..2cd8caf76 100644 --- a/NzbDrone.Core/Instrumentation/ExceptioneerTarget.cs +++ b/NzbDrone.Core/Instrumentation/ExceptioneerTarget.cs @@ -8,15 +8,14 @@ namespace NzbDrone.Core.Instrumentation { public class ExceptioneerTarget : Target { + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + protected override void Write(LogEventInfo logEvent) { - if (logEvent.Exception == null) - throw new InvalidOperationException( - @"Missing Exception Object.. Please Use Logger.FatalException() or Logger.ErrorException() rather - than Logger.Fatal() and Logger.Error()"); - if (!Debugger.IsAttached) { + Logger.Trace("Sending Exception to Exceptioneer"); + new Client { ApiKey = "43BBF60A-EB2A-4C1C-B09E-422ADF637265", diff --git a/NzbDrone.Core/Instrumentation/LogConfiguration.cs b/NzbDrone.Core/Instrumentation/LogConfiguration.cs index eb56f2e8d..4e93694c2 100644 --- a/NzbDrone.Core/Instrumentation/LogConfiguration.cs +++ b/NzbDrone.Core/Instrumentation/LogConfiguration.cs @@ -24,7 +24,7 @@ namespace NzbDrone.Core.Instrumentation public static void StartDbLogging() { -#if Release +#if RELEASE var exTarget = new ExceptioneerTarget(); LogManager.Configuration.AddTarget("Exceptioneer", exTarget); LogManager.Configuration.LoggingRules.Add(new LoggingRule("*", NLog.LogLevel.Error, exTarget)); diff --git a/NzbDrone.Core/Parser.cs b/NzbDrone.Core/Parser.cs index e969ceae2..7780fefb9 100644 --- a/NzbDrone.Core/Parser.cs +++ b/NzbDrone.Core/Parser.cs @@ -300,7 +300,6 @@ namespace NzbDrone.Core return result; } - Logger.Trace("Quality Parsed:{0} Title:", result, name); return result; } diff --git a/NzbDrone.Core/Providers/DiskScanProvider.cs b/NzbDrone.Core/Providers/DiskScanProvider.cs index 7885a3ba0..456d7349e 100644 --- a/NzbDrone.Core/Providers/DiskScanProvider.cs +++ b/NzbDrone.Core/Providers/DiskScanProvider.cs @@ -156,7 +156,7 @@ namespace NzbDrone.Core.Providers _diskProvider.CreateDirectory(newFile.DirectoryName); //Do the rename - Logger.Debug("Moving file [{0}] > [1]", episodeFile.Path, newFile.FullName); + Logger.Debug("Moving file [{0}] > [{1}]", episodeFile.Path, newFile.FullName); _diskProvider.MoveFile(episodeFile.Path, newFile.FullName); //Update the filename in the DB diff --git a/NzbDrone.Core/Providers/DownloadProvider.cs b/NzbDrone.Core/Providers/DownloadProvider.cs index 710ac20ad..9a32b609f 100644 --- a/NzbDrone.Core/Providers/DownloadProvider.cs +++ b/NzbDrone.Core/Providers/DownloadProvider.cs @@ -51,6 +51,7 @@ namespace NzbDrone.Core.Providers history.SeriesId = episode.SeriesId; _historyProvider.Add(history); + _episodeProvider.MarkEpisodeAsFetched(episode.EpisodeId); } } diff --git a/NzbDrone.Core/Providers/EpisodeProvider.cs b/NzbDrone.Core/Providers/EpisodeProvider.cs index 3296cb16b..8759d6c2e 100644 --- a/NzbDrone.Core/Providers/EpisodeProvider.cs +++ b/NzbDrone.Core/Providers/EpisodeProvider.cs @@ -106,6 +106,13 @@ namespace NzbDrone.Core.Providers } + public virtual void MarkEpisodeAsFetched(int episodeId) + { + Logger.Trace("Marking episode {0} as fetched.", episodeId); + _database.Execute("UPDATE Episodes SET GrabDate=@0 WHERE EpisodeId=@1", DateTime.Now, episodeId); + } + + public virtual IList GetEpisodesByParseResult(EpisodeParseResult parseResult, Boolean autoAddNew = false) { var result = new List(); diff --git a/NzbDrone.Core/Providers/Fakes/FakeNotificationProvider.cs b/NzbDrone.Core/Providers/Fakes/FakeNotificationProvider.cs index bbdb92dd1..a6d6f6539 100644 --- a/NzbDrone.Core/Providers/Fakes/FakeNotificationProvider.cs +++ b/NzbDrone.Core/Providers/Fakes/FakeNotificationProvider.cs @@ -31,7 +31,7 @@ namespace NzbDrone.Core.Providers.Fakes fakeNotification.Status = ProgressNotificationStatus.InProgress; fakeNotification2.CurrentMessage = DateTime.UtcNow.ToString(); fakeNotification.CurrentMessage = DateTime.Now.ToString(); - return new List {fakeNotification}; + return new List { fakeNotification }; } } @@ -45,19 +45,5 @@ namespace NzbDrone.Core.Providers.Fakes _basicNotifications.Add(notification.Id, notification); } - public void Dismiss(Guid notificationId) - { - lock (_lock) - { - if (_basicNotifications.ContainsKey(notificationId)) - { - _basicNotifications.Remove(notificationId); - } - else if (_progressNotification.ContainsKey(notificationId)) - { - _progressNotification.Remove(notificationId); - } - } - } } } \ No newline at end of file diff --git a/NzbDrone.Core/Providers/Indexer/IndexerBase.cs b/NzbDrone.Core/Providers/Indexer/IndexerBase.cs index 79b07ef11..225ed5cbe 100644 --- a/NzbDrone.Core/Providers/Indexer/IndexerBase.cs +++ b/NzbDrone.Core/Providers/Indexer/IndexerBase.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using System.Net; using System.ServiceModel.Syndication; +using System.Text.RegularExpressions; using System.Web; using Ninject; using NLog; @@ -16,6 +17,8 @@ namespace NzbDrone.Core.Providers.Indexer private readonly HttpProvider _httpProvider; protected readonly ConfigProvider _configProvider; + private static readonly Regex TitleSearchRegex = new Regex(@"[\W]", RegexOptions.IgnoreCase | RegexOptions.Compiled); + [Inject] protected IndexerBase(HttpProvider httpProvider, ConfigProvider configProvider) { @@ -102,7 +105,7 @@ namespace NzbDrone.Core.Providers.Indexer var result = new List(); - var searchUrls = GetSearchUrls(HttpUtility.UrlDecode(seriesTitle), seasonNumber, episodeNumber); + var searchUrls = GetSearchUrls(GetQueryTitle(seriesTitle), seasonNumber, episodeNumber); foreach (var url in searchUrls) { @@ -165,9 +168,13 @@ namespace NzbDrone.Core.Providers.Indexer return CustomParser(item, episodeParseResult); } - protected static string GetQueryTitle(string title) + public static string GetQueryTitle(string title) { - return title.Trim().Replace(' ', '+'); + var cleanTitle = TitleSearchRegex.Replace(title, "+").Trim('+', ' '); + + //remove any repeating +s + cleanTitle = Regex.Replace(cleanTitle, @"\+{1,100}", "+"); + return cleanTitle; } } } \ No newline at end of file diff --git a/NzbDrone.Core/Providers/InventoryProvider.cs b/NzbDrone.Core/Providers/InventoryProvider.cs index 202f0a9c7..fd9ada11b 100644 --- a/NzbDrone.Core/Providers/InventoryProvider.cs +++ b/NzbDrone.Core/Providers/InventoryProvider.cs @@ -110,7 +110,7 @@ namespace NzbDrone.Core.Providers { if (currentQuality.QualityType >= cutOff) { - Logger.Trace("Existing file meets cut-off. skipping."); + Logger.Trace("Existing item meets cut-off. skipping."); return false; } diff --git a/NzbDrone.Web/Global.asax.cs b/NzbDrone.Web/Global.asax.cs index 56caffc54..7b7d688be 100644 --- a/NzbDrone.Web/Global.asax.cs +++ b/NzbDrone.Web/Global.asax.cs @@ -1,4 +1,5 @@ using System; +using System.Linq; using System.Data.Common; using System.Reflection; using System.Threading; @@ -41,6 +42,11 @@ namespace NzbDrone.Web RegisterRoutes(RouteTable.Routes); //base.OnApplicationStarted(); AreaRegistration.RegisterAllAreas(); + + var razor =ViewEngines.Engines.Where(e => e.GetType() == typeof (RazorViewEngine)).Single(); + ViewEngines.Engines.Clear(); + ViewEngines.Engines.Add(razor); + RegisterGlobalFilters(GlobalFilters.Filters); Logger.Debug("Fully initialized and ready."); diff --git a/NzbDrone.Web/Views/Log/Index.cshtml b/NzbDrone.Web/Views/Log/Index.cshtml index 1ba7503b9..656d6cd87 100644 --- a/NzbDrone.Web/Views/Log/Index.cshtml +++ b/NzbDrone.Web/Views/Log/Index.cshtml @@ -31,12 +31,13 @@ Logs .TableHtmlAttributes(new { @class = "Grid" }) .Columns(columns => { - columns.Bound(c => c.Time).Title("Time").Width(190); + columns.Bound(c => c.Time).Title("Time").Width(0); columns.Bound(c => c.Level).Title("Level").Width(0); + columns.Bound(c => c.Logger).Title("Source").Width(0); columns.Bound(c => c.Message); }) .DetailView(detailView => detailView.ClientTemplate( - "
Logger: <#= Logger #>
" + + "
Method: <#= Method #>
" + "
<#= ExceptionType #>
" + "
<#= Exception #>
" )).DataBinding(data => data.Ajax().Select("_AjaxBinding", "Log")) diff --git a/NzbDrone.Web/Views/Settings/Quality.cshtml b/NzbDrone.Web/Views/Settings/Quality.cshtml index cdaefda3d..d9771c5dd 100644 --- a/NzbDrone.Web/Views/Settings/Quality.cshtml +++ b/NzbDrone.Web/Views/Settings/Quality.cshtml @@ -1,28 +1,26 @@ @using NzbDrone.Web.Helpers; @model NzbDrone.Web.Models.QualityModel - @section HeaderContent{ - - + + } - @section TitleContent{ - Settings +Settings } - @section ActionMenu{ @{Html.RenderPartial("SubMenu");} } - @section MainContent{ -
- @using (Html.BeginForm("SaveQuality", "Settings", FormMethod.Post, new { id = "form", name = "form" })) - { +
+ @using (Html.BeginForm("SaveQuality", "Settings", FormMethod.Post, new { id = "form", name = "form" })) + {
-

Quality

-

+

+ Quality

+

+

@Html.DropDownListFor(m => m.DefaultQualityProfileId, Model.QualityProfileSelectList, new { @class = "inputClass" })
@@ -31,9 +29,9 @@
- Add New Profile Add New Profile + Add New Profile + Add New Profile
-
@foreach (var item in Model.Profiles) { @@ -42,20 +40,19 @@

- Loader + SaveLoader
- } -
- -
+ } + +
+
} - @section Scripts{ - + - - - + + @RenderSection("Scripts", required: false) diff --git a/NzbDrone/Microsoft.Web.Administration.dll b/NzbDrone/Microsoft.Web.Administration.dll deleted file mode 100644 index 07c9a8670..000000000 Binary files a/NzbDrone/Microsoft.Web.Administration.dll and /dev/null differ diff --git a/NzbDrone/NzbDrone.csproj b/NzbDrone/NzbDrone.csproj index b06d8b11a..445e421ee 100644 --- a/NzbDrone/NzbDrone.csproj +++ b/NzbDrone/NzbDrone.csproj @@ -74,7 +74,6 @@ - @@ -91,7 +90,6 @@ - diff --git a/NzbDrone/Program.cs b/NzbDrone/Program.cs index 72a9ea644..6138e05f5 100644 --- a/NzbDrone/Program.cs +++ b/NzbDrone/Program.cs @@ -12,21 +12,25 @@ namespace NzbDrone private static void Main() { - Logger.Info(Process.GetCurrentProcess().Id); - try { + Config.ConfigureNlog(); + Logger.Info("Starting NZBDrone. Start-up Path:'{0}'", Config.ProjectRoot); Thread.CurrentThread.Name = "Host"; + Process currentProcess = Process.GetCurrentProcess(); + if (currentProcess.PriorityClass < ProcessPriorityClass.Normal) + { + Logger.Info("Promoting process priority from {0} to {1}", currentProcess.PriorityClass, ProcessPriorityClass.Normal); + currentProcess.PriorityClass = ProcessPriorityClass.Normal; + } + + currentProcess.EnableRaisingEvents = true; + currentProcess.Exited += ProgramExited; + AppDomain.CurrentDomain.UnhandledException += ((s, e) => AppDomainException(e)); AppDomain.CurrentDomain.ProcessExit += ProgramExited; AppDomain.CurrentDomain.DomainUnload += ProgramExited; - Process.GetCurrentProcess().EnableRaisingEvents = true; - Process.GetCurrentProcess().Exited += ProgramExited; - - Config.ConfigureNlog(); - - Logger.Info("Starting NZBDrone. Start-up Path:'{0}'", Config.ProjectRoot); IISController.StopServer(); IISController.StartServer();