aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Providers/TV
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2013-05-25 11:16:50 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2013-05-25 11:16:50 -0400
commit5c5ec6e644921b8f31f0fce74aadb59bf0fef99a (patch)
treec41e8628c3b27939fa3f96b4de36d7e469d0eaa8 /MediaBrowser.Controller/Providers/TV
parent7162566f56549d820c865abdbc0c336a92550032 (diff)
further reduce fanart music requests by using their updates api
Diffstat (limited to 'MediaBrowser.Controller/Providers/TV')
-rw-r--r--MediaBrowser.Controller/Providers/TV/RemoteSeriesProvider.cs4
-rw-r--r--MediaBrowser.Controller/Providers/TV/TvdbPrescanTask.cs22
2 files changed, 19 insertions, 7 deletions
diff --git a/MediaBrowser.Controller/Providers/TV/RemoteSeriesProvider.cs b/MediaBrowser.Controller/Providers/TV/RemoteSeriesProvider.cs
index cf3bcbd70a..3dbdea7bf6 100644
--- a/MediaBrowser.Controller/Providers/TV/RemoteSeriesProvider.cs
+++ b/MediaBrowser.Controller/Providers/TV/RemoteSeriesProvider.cs
@@ -185,8 +185,7 @@ namespace MediaBrowser.Controller.Providers.TV
/// <returns>Guid.</returns>
private Guid GetComparisonData(BaseItem item)
{
- var series = (Series)item;
- var seriesId = series.GetProviderId(MetadataProviders.Tvdb);
+ var seriesId = item.GetProviderId(MetadataProviders.Tvdb);
if (!string.IsNullOrEmpty(seriesId))
{
@@ -206,6 +205,7 @@ namespace MediaBrowser.Controller.Providers.TV
return Guid.Empty;
}
+
/// <summary>
/// Fetches metadata and returns true or false indicating if any work that requires persistence was done
/// </summary>
diff --git a/MediaBrowser.Controller/Providers/TV/TvdbPrescanTask.cs b/MediaBrowser.Controller/Providers/TV/TvdbPrescanTask.cs
index 3a2f47a5e1..4dee310175 100644
--- a/MediaBrowser.Controller/Providers/TV/TvdbPrescanTask.cs
+++ b/MediaBrowser.Controller/Providers/TV/TvdbPrescanTask.cs
@@ -103,7 +103,7 @@ namespace MediaBrowser.Controller.Providers.TV
newUpdateTime = doc.SafeGetString("//Time");
}
- await UpdateSeries(existingDirectories, path, cancellationToken).ConfigureAwait(false);
+ await UpdateSeries(existingDirectories, path, progress, cancellationToken).ConfigureAwait(false);
}
else
{
@@ -111,10 +111,11 @@ namespace MediaBrowser.Controller.Providers.TV
newUpdateTime = seriesToUpdate.Item2;
- await UpdateSeries(seriesToUpdate.Item1, path, cancellationToken).ConfigureAwait(false);
+ await UpdateSeries(seriesToUpdate.Item1, path, progress, cancellationToken).ConfigureAwait(false);
}
File.WriteAllText(timestampFile, newUpdateTime, Encoding.UTF8);
+ progress.Report(100);
}
/// <summary>
@@ -158,11 +159,15 @@ namespace MediaBrowser.Controller.Providers.TV
/// </summary>
/// <param name="seriesIds">The series ids.</param>
/// <param name="seriesDataPath">The series data path.</param>
+ /// <param name="progress">The progress.</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>Task.</returns>
- private async Task UpdateSeries(IEnumerable<string> seriesIds, string seriesDataPath, CancellationToken cancellationToken)
+ private async Task UpdateSeries(IEnumerable<string> seriesIds, string seriesDataPath, IProgress<double> progress, CancellationToken cancellationToken)
{
- foreach (var seriesId in seriesIds)
+ var list = seriesIds.ToList();
+ var numComplete = 0;
+
+ foreach (var seriesId in list)
{
try
{
@@ -171,12 +176,19 @@ namespace MediaBrowser.Controller.Providers.TV
catch (HttpException ex)
{
// Already logged at lower levels, but don't fail the whole operation, unless timed out
-
+ // We have to fail this to make it run again otherwise new episode data could potentially be missing
if (ex.IsTimedOut)
{
throw;
}
}
+
+ numComplete++;
+ double percent = numComplete;
+ percent /= list.Count;
+ percent *= 100;
+
+ progress.Report(percent);
}
}