aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Providers
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2016-11-16 15:52:17 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2016-11-16 15:52:17 -0500
commitca5afcb0d2f8acb16d3261a2d334e3cc4cb8e809 (patch)
treeb7a91f07bcaf09c95c9f1b61c4762ec7f2b1ee81 /MediaBrowser.Providers
parent3b9c04ad51aca5d3b58239c462dc2899764b9f63 (diff)
update live tv hls params
Diffstat (limited to 'MediaBrowser.Providers')
-rw-r--r--MediaBrowser.Providers/TV/MissingEpisodeProvider.cs26
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);