diff options
Diffstat (limited to 'MediaBrowser.Controller/Resolvers/EntityResolutionHelper.cs')
| -rw-r--r-- | MediaBrowser.Controller/Resolvers/EntityResolutionHelper.cs | 32 |
1 files changed, 24 insertions, 8 deletions
diff --git a/MediaBrowser.Controller/Resolvers/EntityResolutionHelper.cs b/MediaBrowser.Controller/Resolvers/EntityResolutionHelper.cs index 78c9b133b..d57c354f7 100644 --- a/MediaBrowser.Controller/Resolvers/EntityResolutionHelper.cs +++ b/MediaBrowser.Controller/Resolvers/EntityResolutionHelper.cs @@ -1,11 +1,11 @@ -using System.Text.RegularExpressions; -using MediaBrowser.Controller.Entities; +using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.IO; +using MediaBrowser.Controller.Library; using System; using System.Collections.Generic; using System.IO; using System.Linq; -using MediaBrowser.Controller.Library; +using System.Text.RegularExpressions; namespace MediaBrowser.Controller.Resolvers { @@ -46,6 +46,8 @@ namespace MediaBrowser.Controller.Resolvers ".mts" }; + private static readonly Dictionary<string, string> VideoFileExtensionsDictionary = VideoFileExtensions.ToDictionary(i => i, StringComparer.OrdinalIgnoreCase); + private static readonly Regex MultiFileRegex = new Regex( @"(.*?)([ _.-]*(?:cd|dvd|p(?:ar)?t|dis[ck]|d)[ _.-]*[0-9]+)(.*?)(\.[^.]+)$", RegexOptions.Compiled | RegexOptions.IgnoreCase); @@ -67,7 +69,7 @@ namespace MediaBrowser.Controller.Resolvers /// <summary> /// The audio file extensions /// </summary> - private static readonly string[] AudioFileExtensions = new[] { + private static readonly Dictionary<string,string> AudioFileExtensions = new[] { ".mp3", ".flac", ".wma", @@ -79,7 +81,8 @@ namespace MediaBrowser.Controller.Resolvers ".ape", ".ogg", ".oga" - }; + + }.ToDictionary(i => i, StringComparer.OrdinalIgnoreCase); /// <summary> /// Determines whether [is audio file] [the specified args]. @@ -88,7 +91,14 @@ namespace MediaBrowser.Controller.Resolvers /// <returns><c>true</c> if [is audio file] [the specified args]; otherwise, <c>false</c>.</returns> public static bool IsAudioFile(string path) { - return AudioFileExtensions.Contains(Path.GetExtension(path), StringComparer.OrdinalIgnoreCase); + var extension = Path.GetExtension(path); + + if (string.IsNullOrEmpty(extension)) + { + return false; + } + + return AudioFileExtensions.ContainsKey(extension); } /// <summary> @@ -98,8 +108,14 @@ namespace MediaBrowser.Controller.Resolvers /// <returns><c>true</c> if [is video file] [the specified path]; otherwise, <c>false</c>.</returns> public static bool IsVideoFile(string path) { - var extension = Path.GetExtension(path) ?? String.Empty; - return VideoFileExtensions.Contains(extension, StringComparer.OrdinalIgnoreCase); + var extension = Path.GetExtension(path); + + if (string.IsNullOrEmpty(extension)) + { + return false; + } + + return VideoFileExtensionsDictionary.ContainsKey(extension); } /// <summary> |
