diff --git a/NzbDrone.Core.Test/ParserFixture/ParserTest.cs b/NzbDrone.Core.Test/ParserFixture/ParserTest.cs
index 81bb1bead..18d4a621a 100644
--- a/NzbDrone.Core.Test/ParserFixture/ParserTest.cs
+++ b/NzbDrone.Core.Test/ParserFixture/ParserTest.cs
@@ -13,8 +13,8 @@ using NzbDrone.Test.Common;
namespace NzbDrone.Core.Test.ParserFixture
{
- [TestFixture]
// ReSharper disable InconsistentNaming
+ [TestFixture]
public class ParserTest : CoreTest
{
/*Fucked-up hall of shame,
@@ -189,6 +189,7 @@ namespace NzbDrone.Core.Test.ParserFixture
[TestCase("Parks.and.Recreation.S02.720p.x264-DIMENSION", "Parks.and.Recreation", 2)]
[TestCase("The.Office.US.S03.720p.x264-DIMENSION", "The.Office.US", 3)]
[TestCase(@"Sons.of.Anarchy.S03.720p.BluRay-CLUE\REWARD", "Sons.of.Anarchy", 3)]
+ [TestCase("Adventure Time S02 720p HDTV x264 CRON", "Adventure Time", 2)]
public void full_season_release_parse(string postTitle, string title, int season)
{
var result = Parser.ParseTitle(postTitle);
@@ -285,6 +286,7 @@ namespace NzbDrone.Core.Test.ParserFixture
[TestCase("The Daily Show With Jon Stewart -", "dailyshowwithjonstewart")]
[TestCase("The Venture Bros. (2004)", "venturebros2004")]
[TestCase("Castle (2011)", "castle2011")]
+ [TestCase("Adventure Time S02 720p HDTV x264 CRON", "adventuretime")]
public void parse_series_name(string postTitle, string title)
{
var result = Parser.ParseSeriesName(postTitle);
diff --git a/NzbDrone.Core/Parser.cs b/NzbDrone.Core/Parser.cs
index 04bc153ce..ea1890f49 100644
--- a/NzbDrone.Core/Parser.cs
+++ b/NzbDrone.Core/Parser.cs
@@ -236,20 +236,12 @@ namespace NzbDrone.Core
{
Logger.Trace("Parsing string '{0}'", title);
- foreach (var regex in ReportTitleRegex)
- {
- var match = regex.Matches(title);
-
- if (match.Count != 0)
- {
- var seriesName = NormalizeTitle(match[0].Groups["title"].Value);
+ var parseResult = ParseTitle(title);
- Logger.Trace("Series Parsed. {0}", seriesName);
- return seriesName;
- }
- }
+ if(parseResult == null)
+ return NormalizeTitle(title);
- return NormalizeTitle(title);
+ return parseResult.CleanTitle;
}
internal static QualityModel ParseQuality(string name)
diff --git a/NzbDrone.Core/Providers/SearchHistoryProvider.cs b/NzbDrone.Core/Providers/SearchHistoryProvider.cs
index 4fb7e97a8..f746d18a3 100644
--- a/NzbDrone.Core/Providers/SearchHistoryProvider.cs
+++ b/NzbDrone.Core/Providers/SearchHistoryProvider.cs
@@ -70,7 +70,7 @@ namespace NzbDrone.Core.Providers
ON Series.SeriesId = SearchHistory.SeriesId
LEFT JOIN Episodes
ON Episodes.EpisodeId = SearchHistory.EpisodeId
- INNER JOIN SearchHistoryItems
+ LEFT JOIN SearchHistoryItems
ON SearchHistoryItems.SearchHistoryId = SearchHistory.Id
GROUP BY SearchHistory.Id, SearchHistory.SeriesId, SearchHistory.SeasonNumber,
SearchHistory.EpisodeId, SearchHistory.SearchTime,
diff --git a/NzbDrone.Web/Content/Images/apple-touch-icon-114.png b/NzbDrone.Web/Content/Images/apple-touch-icon-114.png
new file mode 100644
index 000000000..22cfed264
Binary files /dev/null and b/NzbDrone.Web/Content/Images/apple-touch-icon-114.png differ
diff --git a/NzbDrone.Web/Content/Images/apple-touch-icon-144.png b/NzbDrone.Web/Content/Images/apple-touch-icon-144.png
new file mode 100644
index 000000000..e606a1c5e
Binary files /dev/null and b/NzbDrone.Web/Content/Images/apple-touch-icon-144.png differ
diff --git a/NzbDrone.Web/NzbDrone.Web.csproj b/NzbDrone.Web/NzbDrone.Web.csproj
index 4e1dfc4d3..b0883d8e1 100644
--- a/NzbDrone.Web/NzbDrone.Web.csproj
+++ b/NzbDrone.Web/NzbDrone.Web.csproj
@@ -208,6 +208,8 @@