diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2016-11-16 15:52:17 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2016-11-16 15:52:17 -0500 |
| commit | ca5afcb0d2f8acb16d3261a2d334e3cc4cb8e809 (patch) | |
| tree | b7a91f07bcaf09c95c9f1b61c4762ec7f2b1ee81 /MediaBrowser.Providers | |
| parent | 3b9c04ad51aca5d3b58239c462dc2899764b9f63 (diff) | |
update live tv hls params
Diffstat (limited to 'MediaBrowser.Providers')
| -rw-r--r-- | MediaBrowser.Providers/TV/MissingEpisodeProvider.cs | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/MediaBrowser.Providers/TV/MissingEpisodeProvider.cs b/MediaBrowser.Providers/TV/MissingEpisodeProvider.cs index c93b6c2fd..fe56bc752 100644 --- a/MediaBrowser.Providers/TV/MissingEpisodeProvider.cs +++ b/MediaBrowser.Providers/TV/MissingEpisodeProvider.cs @@ -30,7 +30,7 @@ namespace MediaBrowser.Providers.TV private readonly IFileSystem _fileSystem; private readonly CultureInfo _usCulture = new CultureInfo("en-US"); - private static readonly SemaphoreSlim _resourceLock = new SemaphoreSlim(1, 1); + private static readonly SemaphoreSlim ResourceLock = new SemaphoreSlim(1, 1); public static bool IsRunning = false; private readonly IXmlReaderSettingsFactory _xmlSettings; @@ -46,7 +46,7 @@ namespace MediaBrowser.Providers.TV public async Task Run(List<IGrouping<string, Series>> series, bool addNewItems, CancellationToken cancellationToken) { - await _resourceLock.WaitAsync(cancellationToken).ConfigureAwait(false); + await ResourceLock.WaitAsync(cancellationToken).ConfigureAwait(false); IsRunning = true; foreach (var seriesGroup in series) @@ -59,9 +59,10 @@ namespace MediaBrowser.Providers.TV { break; } - catch (IOException) + catch (IOException ex) { //_logger.Warn("Series files missing for series id {0}", seriesGroup.Key); + _logger.ErrorException("Error in missing episode provider for series id {0}", ex, seriesGroup.Key); } catch (Exception ex) { @@ -70,12 +71,15 @@ namespace MediaBrowser.Providers.TV } IsRunning = false; - _resourceLock.Release(); + ResourceLock.Release(); } private async Task Run(IGrouping<string, Series> group, bool addNewItems, CancellationToken cancellationToken) { - var tvdbId = group.Key; + var seriesList = group.ToList(); + var tvdbId = seriesList + .Select(i => i.GetProviderId(MetadataProviders.Tvdb)) + .FirstOrDefault(i => !string.IsNullOrWhiteSpace(i)); // Todo: Support series by imdb id var seriesProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); @@ -114,30 +118,30 @@ namespace MediaBrowser.Providers.TV .Where(i => i.Item1 != -1 && i.Item2 != -1) .ToList(); - var hasBadData = HasInvalidContent(group); + var hasBadData = HasInvalidContent(seriesList); - var anySeasonsRemoved = await RemoveObsoleteOrMissingSeasons(group, episodeLookup) + var anySeasonsRemoved = await RemoveObsoleteOrMissingSeasons(seriesList, episodeLookup) .ConfigureAwait(false); - var anyEpisodesRemoved = await RemoveObsoleteOrMissingEpisodes(group, episodeLookup) + var anyEpisodesRemoved = await RemoveObsoleteOrMissingEpisodes(seriesList, episodeLookup) .ConfigureAwait(false); var hasNewEpisodes = false; - if (addNewItems && !group.Any(i => !i.IsInternetMetadataEnabled())) + if (addNewItems && seriesList.All(i => i.IsInternetMetadataEnabled())) { var seriesConfig = _config.Configuration.MetadataOptions.FirstOrDefault(i => string.Equals(i.ItemType, typeof(Series).Name, StringComparison.OrdinalIgnoreCase)); if (seriesConfig == null || !seriesConfig.DisabledMetadataFetchers.Contains(TvdbSeriesProvider.Current.Name, StringComparer.OrdinalIgnoreCase)) { - hasNewEpisodes = await AddMissingEpisodes(group.ToList(), hasBadData, seriesDataPath, episodeLookup, cancellationToken) + hasNewEpisodes = await AddMissingEpisodes(seriesList, hasBadData, seriesDataPath, episodeLookup, cancellationToken) .ConfigureAwait(false); } } if (hasNewEpisodes || anySeasonsRemoved || anyEpisodesRemoved) { - foreach (var series in group) + foreach (var series in seriesList) { var directoryService = new DirectoryService(_logger, _fileSystem); |
