diff --git a/src/NzbDrone.Common/Extensions/PathExtensions.cs b/src/NzbDrone.Common/Extensions/PathExtensions.cs index c171ec736..3b78858ac 100644 --- a/src/NzbDrone.Common/Extensions/PathExtensions.cs +++ b/src/NzbDrone.Common/Extensions/PathExtensions.cs @@ -71,6 +71,17 @@ namespace NzbDrone.Common.Extensions return string.Equals(firstPath.CleanFilePath(), secondPath.CleanFilePath(), comparison.Value); } + public static string GetPathExtension(this string path) + { + var idx = path.LastIndexOf('.'); + if (idx == -1 || idx == path.Length - 1) + { + return string.Empty; + } + + return path.Substring(idx); + } + public static string GetRelativePath(this string parentPath, string childPath) { if (!parentPath.IsParentPath(childPath)) diff --git a/src/NzbDrone.Core/Parser/QualityParser.cs b/src/NzbDrone.Core/Parser/QualityParser.cs index 4125c8c6a..2865db0df 100644 --- a/src/NzbDrone.Core/Parser/QualityParser.cs +++ b/src/NzbDrone.Core/Parser/QualityParser.cs @@ -2,6 +2,7 @@ using System; using System.IO; using System.Text.RegularExpressions; using NLog; +using NzbDrone.Common.Disk; using NzbDrone.Common.Extensions; using NzbDrone.Common.Instrumentation; using NzbDrone.Core.MediaFiles; @@ -232,7 +233,7 @@ namespace NzbDrone.Core.Parser { try { - result.Quality = MediaFileExtensions.GetQualityForExtension(Path.GetExtension(name)); + result.Quality = MediaFileExtensions.GetQualityForExtension(name.GetPathExtension()); result.QualityDetectionSource = QualityDetectionSource.Extension; } catch (ArgumentException)