diff options
| author | Luke <luke.pulverenti@gmail.com> | 2015-01-04 09:29:03 -0500 |
|---|---|---|
| committer | Luke <luke.pulverenti@gmail.com> | 2015-01-04 09:29:03 -0500 |
| commit | 3eb4ca598c44be54ec2d98773ff1f66c529b1156 (patch) | |
| tree | 494db79e7dda0e5b175d62efdd8e0b12f6095e9a | |
| parent | c5ff30f66e368efc2ca7dea7813fba6d9f6a657c (diff) | |
| parent | 5d4c53522bb0b723047455ec308095e85cb104e8 (diff) | |
Merge pull request #962 from MikePDev/MediaBrowser_Imdb_From_Media
Add imdbid detection from media file
| -rw-r--r-- | MediaBrowser.Server.Implementations/Library/PathExtensions.cs | 9 | ||||
| -rw-r--r-- | MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs | 20 |
2 files changed, 24 insertions, 5 deletions
diff --git a/MediaBrowser.Server.Implementations/Library/PathExtensions.cs b/MediaBrowser.Server.Implementations/Library/PathExtensions.cs index 00bd65125..822f41da2 100644 --- a/MediaBrowser.Server.Implementations/Library/PathExtensions.cs +++ b/MediaBrowser.Server.Implementations/Library/PathExtensions.cs @@ -1,4 +1,5 @@ using System; +using System.Text.RegularExpressions; namespace MediaBrowser.Server.Implementations.Library { @@ -31,6 +32,14 @@ namespace MediaBrowser.Server.Implementations.Library int end = str.IndexOf(']', start); return str.Substring(start, end - start); } + // for imdbid we also accept pattern matching + if (attrib == "imdbid") + { + Regex imdbPattern = new Regex("tt\\d{7}"); + var m = imdbPattern.Match(str); + return m.Success ? m.Value : null; + } + return null; } } diff --git a/MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs b/MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs index 587c6668c..5ecf7759d 100644 --- a/MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs +++ b/MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs @@ -228,24 +228,34 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Movies { base.SetInitialItemValues(item, args); - SetProviderIdFromPath(item); + SetProviderIdsFromPath(item); } /// <summary> /// Sets the provider id from path. /// </summary> /// <param name="item">The item.</param> - private void SetProviderIdFromPath(Video item) + private void SetProviderIdsFromPath(Video item) { //we need to only look at the name of this actual item (not parents) var justName = item.IsInMixedFolder ? Path.GetFileName(item.Path) : Path.GetFileName(item.ContainingFolderPath); - var id = justName.GetAttributeValue("tmdbid"); + // check for tmdb id + var tmdbid = justName.GetAttributeValue("tmdbid"); - if (!string.IsNullOrEmpty(id)) + if (!string.IsNullOrEmpty(tmdbid)) { - item.SetProviderId(MetadataProviders.Tmdb, id); + item.SetProviderId(MetadataProviders.Tmdb, tmdbid); } + + // check for imdb id - we use full media path, as we can assume, that this will match in any use case (wither id in parent dir or in file name) + var imdbid = item.Path.GetAttributeValue("imdbid"); + + if (!string.IsNullOrEmpty(imdbid)) + { + item.SetProviderId(MetadataProviders.Imdb, imdbid); + } + } /// <summary> |
