aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Providers
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2014-02-13 23:00:13 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2014-02-13 23:00:13 -0500
commita4b40ad9d90a40cd5e35bb7b9c43ad436e992cd4 (patch)
tree84a697bf606b293c3e74d7757b28d3bb40d1d269 /MediaBrowser.Providers
parent58a46171ababb816636a65aa7f76c00de50f598f (diff)
handle year in name when searching
Diffstat (limited to 'MediaBrowser.Providers')
-rw-r--r--MediaBrowser.Providers/Manager/MetadataService.cs20
-rw-r--r--MediaBrowser.Providers/Manager/ProviderManager.cs5
-rw-r--r--MediaBrowser.Providers/Movies/MovieDbSearch.cs5
-rw-r--r--MediaBrowser.Providers/TV/TvdbSeriesProvider.cs22
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;
}