diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-02-13 23:00:13 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-02-13 23:00:13 -0500 |
| commit | a4b40ad9d90a40cd5e35bb7b9c43ad436e992cd4 (patch) | |
| tree | 84a697bf606b293c3e74d7757b28d3bb40d1d269 /MediaBrowser.Providers | |
| parent | 58a46171ababb816636a65aa7f76c00de50f598f (diff) | |
handle year in name when searching
Diffstat (limited to 'MediaBrowser.Providers')
| -rw-r--r-- | MediaBrowser.Providers/Manager/MetadataService.cs | 20 | ||||
| -rw-r--r-- | MediaBrowser.Providers/Manager/ProviderManager.cs | 5 | ||||
| -rw-r--r-- | MediaBrowser.Providers/Movies/MovieDbSearch.cs | 5 | ||||
| -rw-r--r-- | MediaBrowser.Providers/TV/TvdbSeriesProvider.cs | 22 |
4 files changed, 32 insertions, 20 deletions
diff --git a/MediaBrowser.Providers/Manager/MetadataService.cs b/MediaBrowser.Providers/Manager/MetadataService.cs index 8b085a05ac..f64d1b152b 100644 --- a/MediaBrowser.Providers/Manager/MetadataService.cs +++ b/MediaBrowser.Providers/Manager/MetadataService.cs @@ -195,7 +195,7 @@ namespace MediaBrowser.Providers.Manager var currentItem = item; var providersWithChanges = providers.OfType<IHasChangeMonitor>() - .Where(i => i.HasChanged(currentItem, options.DirectoryService, currentItem.DateLastSaved)) + .Where(i => HasChanged(currentItem, i, currentItem.DateLastSaved, options.DirectoryService)) .Cast<IMetadataProvider<TItemType>>() .ToList(); @@ -242,11 +242,8 @@ namespace MediaBrowser.Providers.Manager if (!runAllProviders) { - // Avoid implicitly captured closure - var currentItem = item; - providers = providers.OfType<IHasChangeMonitor>() - .Where(i => i.HasChanged(currentItem, options.DirectoryService, dateLastImageRefresh.Value)) + .Where(i => HasChanged(item, i, dateLastImageRefresh.Value, options.DirectoryService)) .Cast<IImageProvider>() .ToList(); } @@ -438,6 +435,19 @@ namespace MediaBrowser.Providers.Manager return 0; } } + + private bool HasChanged(IHasMetadata item, IHasChangeMonitor changeMonitor, DateTime date, IDirectoryService directoryService) + { + try + { + return changeMonitor.HasChanged(item, directoryService, date); + } + catch (Exception ex) + { + Logger.ErrorException("Error in {0}.HasChanged", ex, changeMonitor.GetType().Name); + return false; + } + } } public class RefreshResult diff --git a/MediaBrowser.Providers/Manager/ProviderManager.cs b/MediaBrowser.Providers/Manager/ProviderManager.cs index 43d4f20c16..119ab0c667 100644 --- a/MediaBrowser.Providers/Manager/ProviderManager.cs +++ b/MediaBrowser.Providers/Manager/ProviderManager.cs @@ -572,11 +572,6 @@ namespace MediaBrowser.Providers.Manager { var type = item.GetType().Name; - if (item is Trailer) - { - type = typeof(Movie).Name; - } - return ConfigurationManager.Configuration.MetadataOptions .FirstOrDefault(i => string.Equals(i.ItemType, type, StringComparison.OrdinalIgnoreCase)) ?? new MetadataOptions(); diff --git a/MediaBrowser.Providers/Movies/MovieDbSearch.cs b/MediaBrowser.Providers/Movies/MovieDbSearch.cs index 5f5ece4a8f..fb673739ca 100644 --- a/MediaBrowser.Providers/Movies/MovieDbSearch.cs +++ b/MediaBrowser.Providers/Movies/MovieDbSearch.cs @@ -48,6 +48,11 @@ namespace MediaBrowser.Providers.Movies { var name = idInfo.Name; var year = idInfo.Year; + int? yearInName = null; + + NameParser.ParseName(name, out name, out yearInName); + + year = year ?? yearInName; _logger.Info("MovieDbProvider: Finding id for item: " + name); var language = idInfo.MetadataLanguage.ToLower(); diff --git a/MediaBrowser.Providers/TV/TvdbSeriesProvider.cs b/MediaBrowser.Providers/TV/TvdbSeriesProvider.cs index 73fd4e4984..f3909e2c68 100644 --- a/MediaBrowser.Providers/TV/TvdbSeriesProvider.cs +++ b/MediaBrowser.Providers/TV/TvdbSeriesProvider.cs @@ -56,6 +56,18 @@ namespace MediaBrowser.Providers.TV if (string.IsNullOrEmpty(seriesId)) { seriesId = await FindSeries(itemId.Name, cancellationToken).ConfigureAwait(false); + + if (string.IsNullOrEmpty(seriesId)) + { + int? yearInName = null; + string nameWithoutYear; + NameParser.ParseName(itemId.Name, out nameWithoutYear, out yearInName); + + if (!string.IsNullOrEmpty(nameWithoutYear) && !string.Equals(nameWithoutYear, itemId.Name, StringComparison.OrdinalIgnoreCase)) + { + seriesId = await FindSeries(nameWithoutYear, cancellationToken).ConfigureAwait(false); + } + } } cancellationToken.ThrowIfCancellationRequested(); @@ -248,16 +260,6 @@ namespace MediaBrowser.Providers.TV } } - // Try stripping off the year if it was supplied - var parenthIndex = name.LastIndexOf('('); - - if (parenthIndex != -1) - { - var newName = name.Substring(0, parenthIndex); - - return await FindSeries(newName, cancellationToken); - } - _logger.Info("TVDb Provider - Could not find " + name + ". Check name on Thetvdb.org."); return null; } |
