aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Channels
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2015-07-23 01:25:55 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2015-07-23 01:25:55 -0400
commit7300a475d1892c553bb0a3a5fc21cc32d09b4950 (patch)
tree3d412cb60d8bb71ec2bc0a414cfea80e44ca9b22 /MediaBrowser.Server.Implementations/Channels
parentcf27ac47a8366ea1710908c4aa1093a6a85d7139 (diff)
update live tv setup
Diffstat (limited to 'MediaBrowser.Server.Implementations/Channels')
-rw-r--r--MediaBrowser.Server.Implementations/Channels/ChannelDownloadScheduledTask.cs8
-rw-r--r--MediaBrowser.Server.Implementations/Channels/ChannelManager.cs93
2 files changed, 4 insertions, 97 deletions
diff --git a/MediaBrowser.Server.Implementations/Channels/ChannelDownloadScheduledTask.cs b/MediaBrowser.Server.Implementations/Channels/ChannelDownloadScheduledTask.cs
index 18711c61e..337e26e8d 100644
--- a/MediaBrowser.Server.Implementations/Channels/ChannelDownloadScheduledTask.cs
+++ b/MediaBrowser.Server.Implementations/Channels/ChannelDownloadScheduledTask.cs
@@ -1,8 +1,6 @@
using MediaBrowser.Common.IO;
-using MediaBrowser.Common.Net;
using MediaBrowser.Common.Progress;
using MediaBrowser.Common.ScheduledTasks;
-using MediaBrowser.Common.Security;
using MediaBrowser.Controller.Channels;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities;
@@ -29,22 +27,18 @@ namespace MediaBrowser.Server.Implementations.Channels
private readonly IChannelManager _manager;
private readonly IServerConfigurationManager _config;
private readonly ILogger _logger;
- private readonly IHttpClient _httpClient;
private readonly IFileSystem _fileSystem;
private readonly ILibraryManager _libraryManager;
private readonly IUserManager _userManager;
- private readonly ISecurityManager _security;
- public ChannelDownloadScheduledTask(IChannelManager manager, IServerConfigurationManager config, ILogger logger, IHttpClient httpClient, IFileSystem fileSystem, ILibraryManager libraryManager, IUserManager userManager, ISecurityManager security)
+ public ChannelDownloadScheduledTask(IChannelManager manager, IServerConfigurationManager config, ILogger logger, IFileSystem fileSystem, ILibraryManager libraryManager, IUserManager userManager)
{
_manager = manager;
_config = config;
_logger = logger;
- _httpClient = httpClient;
_fileSystem = fileSystem;
_libraryManager = libraryManager;
_userManager = userManager;
- _security = security;
}
public string Name
diff --git a/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs b/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs
index 0cd4b0a5c..3e58e3bd5 100644
--- a/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs
+++ b/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs
@@ -23,7 +23,6 @@ using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
-using System.Text;
using System.Threading;
using System.Threading.Tasks;
@@ -255,7 +254,7 @@ namespace MediaBrowser.Server.Implementations.Channels
sources.InsertRange(0, cachedVersions);
}
- return sources.Where(IsValidMediaSource);
+ return sources;
}
public async Task<IEnumerable<MediaSourceInfo>> GetDynamicMediaSources(IChannelMediaItem item, CancellationToken cancellationToken)
@@ -279,7 +278,6 @@ namespace MediaBrowser.Server.Implementations.Channels
var list = SortMediaInfoResults(results)
.Select(i => GetMediaSource(item, i))
- .Where(IsValidMediaSource)
.ToList();
var cachedVersions = GetCachedChannelItemMediaSources(item);
@@ -1424,18 +1422,8 @@ namespace MediaBrowser.Server.Implementations.Channels
foreach (var source in list)
{
- try
- {
- await TryDownloadChannelItem(source, item, destination, progress, cancellationToken).ConfigureAwait(false);
- return;
- }
- catch (HttpException ex)
- {
- if (ex.StatusCode.HasValue && ex.StatusCode.Value == HttpStatusCode.NotFound)
- {
- MarkBadMediaSource(source);
- }
- }
+ await TryDownloadChannelItem(source, item, destination, progress, cancellationToken).ConfigureAwait(false);
+ return;
}
}
@@ -1525,81 +1513,6 @@ namespace MediaBrowser.Server.Implementations.Channels
}
}
- private readonly ReaderWriterLockSlim _mediaSourceHistoryLock = new ReaderWriterLockSlim();
- private bool IsValidMediaSource(MediaSourceInfo source)
- {
- if (source.Protocol == MediaProtocol.Http)
- {
- return !GetBadMediaSourceHistory().Contains(source.Path, StringComparer.OrdinalIgnoreCase);
- }
- return true;
- }
-
- private void MarkBadMediaSource(MediaSourceInfo source)
- {
- var list = GetBadMediaSourceHistory();
- list.Add(source.Path);
-
- var path = GetMediaSourceHistoryPath();
-
- Directory.CreateDirectory(Path.GetDirectoryName(path));
-
- if (_mediaSourceHistoryLock.TryEnterWriteLock(TimeSpan.FromSeconds(5)))
- {
- try
- {
- File.WriteAllLines(path, list.ToArray(), Encoding.UTF8);
- }
- catch (Exception ex)
- {
- _logger.ErrorException("Error saving file", ex);
- }
- finally
- {
- _mediaSourceHistoryLock.ExitWriteLock();
- }
- }
- }
-
- private ConcurrentBag<string> _badMediaSources = null;
- private ConcurrentBag<string> GetBadMediaSourceHistory()
- {
- if (_badMediaSources == null)
- {
- var path = GetMediaSourceHistoryPath();
-
- if (_mediaSourceHistoryLock.TryEnterReadLock(TimeSpan.FromSeconds(1)))
- {
- if (_badMediaSources == null)
- {
- try
- {
- _badMediaSources = new ConcurrentBag<string>(File.ReadAllLines(path, Encoding.UTF8));
- }
- catch (IOException)
- {
- _badMediaSources = new ConcurrentBag<string>();
- }
- catch (Exception ex)
- {
- _logger.ErrorException("Error reading file", ex);
- _badMediaSources = new ConcurrentBag<string>();
- }
- finally
- {
- _mediaSourceHistoryLock.ExitReadLock();
- }
- }
- }
- }
- return _badMediaSources;
- }
-
- private string GetMediaSourceHistoryPath()
- {
- return Path.Combine(_config.ApplicationPaths.DataPath, "channels", "failures.txt");
- }
-
private void IncrementDownloadCount(string key, int? limit)
{
if (!limit.HasValue)