diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-05-25 11:16:50 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-05-25 11:16:50 -0400 |
| commit | 5c5ec6e644921b8f31f0fce74aadb59bf0fef99a (patch) | |
| tree | c41e8628c3b27939fa3f96b4de36d7e469d0eaa8 /MediaBrowser.Controller/Providers/TV | |
| parent | 7162566f56549d820c865abdbc0c336a92550032 (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.cs | 4 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Providers/TV/TvdbPrescanTask.cs | 22 |
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); } } |
