aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2013-05-06 14:10:44 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2013-05-06 14:10:44 -0400
commitbbe5b7b82abccfb22d8320ab426463ef991cd738 (patch)
treefb6749a1dccbf2c108b9bd19f7760e57129ded9d
parent0d6f6ad698f0751373fff90e02b79a089ec013e4 (diff)
reduce requests against the moviedb when possible
-rw-r--r--MediaBrowser.Controller/Providers/Movies/MovieDbProvider.cs30
1 files changed, 23 insertions, 7 deletions
diff --git a/MediaBrowser.Controller/Providers/Movies/MovieDbProvider.cs b/MediaBrowser.Controller/Providers/Movies/MovieDbProvider.cs
index d6761788c..50aed5d3f 100644
--- a/MediaBrowser.Controller/Providers/Movies/MovieDbProvider.cs
+++ b/MediaBrowser.Controller/Providers/Movies/MovieDbProvider.cs
@@ -40,7 +40,7 @@ namespace MediaBrowser.Controller.Providers.Movies
/// <summary>
/// The movie db
/// </summary>
- internal readonly SemaphoreSlim MovieDbResourcePool = new SemaphoreSlim(3, 3);
+ internal readonly SemaphoreSlim MovieDbResourcePool = new SemaphoreSlim(2, 2);
internal static MovieDbProvider Current { get; private set; }
@@ -488,25 +488,41 @@ namespace MediaBrowser.Controller.Providers.Movies
else
{
// try with dot and _ turned to space
+ var originalName = name;
+
name = name.Replace(",", " ");
name = name.Replace(".", " ");
- name = name.Replace(" ", " ");
name = name.Replace("_", " ");
name = name.Replace("-", "");
- id = await AttemptFindId(name, year, language, cancellationToken).ConfigureAwait(false);
- if (id == null && language != "en")
+
+ // Search again if the new name is different
+ if (!string.Equals(name, originalName))
{
- //one more time, in english
- id = await AttemptFindId(name, year, "en", cancellationToken).ConfigureAwait(false);
+ id = await AttemptFindId(name, year, language, cancellationToken).ConfigureAwait(false);
+ if (id == null && language != "en")
+ {
+ //one more time, in english
+ id = await AttemptFindId(name, year, "en", cancellationToken).ConfigureAwait(false);
+
+ }
}
+
if (id == null && item.LocationType == LocationType.FileSystem)
{
//last resort - try using the actual folder name
- id = await AttemptFindId(Path.GetFileName(item.ResolveArgs.Path), year, "en", cancellationToken).ConfigureAwait(false);
+ var pathName = Path.GetFileName(item.ResolveArgs.Path);
+
+ // Only search if it's a name we haven't already tried.
+ if (!string.Equals(pathName, name, StringComparison.OrdinalIgnoreCase)
+ && !string.Equals(pathName, originalName, StringComparison.OrdinalIgnoreCase))
+ {
+ id = await AttemptFindId(pathName, year, "en", cancellationToken).ConfigureAwait(false);
+ }
}
}
}
+
return id;
}