aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MediaBrowser.Api/Dlna/DlnaServerService.cs1
-rw-r--r--MediaBrowser.Common.Implementations/Serialization/JsonSerializer.cs4
-rw-r--r--MediaBrowser.Controller/Channels/IChannelFactory.cs14
-rw-r--r--MediaBrowser.Controller/Channels/IChannelManager.cs2
-rw-r--r--MediaBrowser.Controller/MediaBrowser.Controller.csproj1
-rw-r--r--MediaBrowser.Dlna/Channels/DlnaChannelFactory.cs642
-rw-r--r--MediaBrowser.Dlna/Main/DlnaEntryPoint.cs2
-rw-r--r--MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs3
-rw-r--r--MediaBrowser.Model/Configuration/ServerConfiguration.cs4
-rw-r--r--MediaBrowser.Model/Dlna/ConditionProcessor.cs1
-rw-r--r--MediaBrowser.Providers/Omdb/OmdbImageProvider.cs3
-rw-r--r--MediaBrowser.Server.Implementations/Channels/ChannelManager.cs21
-rw-r--r--MediaBrowser.Server.Implementations/HttpServer/Security/AuthorizationContext.cs41
-rw-r--r--MediaBrowser.Server.Implementations/Sync/SyncManager.cs2
-rw-r--r--MediaBrowser.Server.Startup.Common/ApplicationHost.cs2
-rw-r--r--MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj3
16 files changed, 329 insertions, 417 deletions
diff --git a/MediaBrowser.Api/Dlna/DlnaServerService.cs b/MediaBrowser.Api/Dlna/DlnaServerService.cs
index 4f5e2ab25..4e7b1a7d5 100644
--- a/MediaBrowser.Api/Dlna/DlnaServerService.cs
+++ b/MediaBrowser.Api/Dlna/DlnaServerService.cs
@@ -108,7 +108,6 @@ namespace MediaBrowser.Api.Dlna
private readonly IConnectionManager _connectionManager;
private readonly IMediaReceiverRegistrar _mediaReceiverRegistrar;
- // TODO: Add utf-8
private const string XMLContentType = "text/xml; charset=UTF-8";
public DlnaServerService(IDlnaManager dlnaManager, IContentDirectory contentDirectory, IConnectionManager connectionManager, IMediaReceiverRegistrar mediaReceiverRegistrar)
diff --git a/MediaBrowser.Common.Implementations/Serialization/JsonSerializer.cs b/MediaBrowser.Common.Implementations/Serialization/JsonSerializer.cs
index 2c93f0549..a758a0c1e 100644
--- a/MediaBrowser.Common.Implementations/Serialization/JsonSerializer.cs
+++ b/MediaBrowser.Common.Implementations/Serialization/JsonSerializer.cs
@@ -1,7 +1,7 @@
-using MediaBrowser.Model.Serialization;
+using MediaBrowser.Common.IO;
+using MediaBrowser.Model.Serialization;
using System;
using System.IO;
-using MediaBrowser.Common.IO;
namespace MediaBrowser.Common.Implementations.Serialization
{
diff --git a/MediaBrowser.Controller/Channels/IChannelFactory.cs b/MediaBrowser.Controller/Channels/IChannelFactory.cs
deleted file mode 100644
index c7ed92586..000000000
--- a/MediaBrowser.Controller/Channels/IChannelFactory.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-using System.Collections.Generic;
-
-namespace MediaBrowser.Controller.Channels
-{
- public interface IChannelFactory
- {
- IEnumerable<IChannel> GetChannels();
- }
-
- public interface IFactoryChannel
- {
-
- }
-} \ No newline at end of file
diff --git a/MediaBrowser.Controller/Channels/IChannelManager.cs b/MediaBrowser.Controller/Channels/IChannelManager.cs
index 8d3e0f596..fec550df8 100644
--- a/MediaBrowser.Controller/Channels/IChannelManager.cs
+++ b/MediaBrowser.Controller/Channels/IChannelManager.cs
@@ -16,7 +16,7 @@ namespace MediaBrowser.Controller.Channels
/// </summary>
/// <param name="channels">The channels.</param>
/// <param name="factories">The factories.</param>
- void AddParts(IEnumerable<IChannel> channels, IEnumerable<IChannelFactory> factories);
+ void AddParts(IEnumerable<IChannel> channels);
/// <summary>
/// Gets the channel download path.
diff --git a/MediaBrowser.Controller/MediaBrowser.Controller.csproj b/MediaBrowser.Controller/MediaBrowser.Controller.csproj
index dffb29f93..ea6e98ea6 100644
--- a/MediaBrowser.Controller/MediaBrowser.Controller.csproj
+++ b/MediaBrowser.Controller/MediaBrowser.Controller.csproj
@@ -77,7 +77,6 @@
<Compile Include="Channels\ChannelParentalRating.cs" />
<Compile Include="Channels\ChannelSearchInfo.cs" />
<Compile Include="Channels\IChannel.cs" />
- <Compile Include="Channels\IChannelFactory.cs" />
<Compile Include="Channels\IChannelManager.cs" />
<Compile Include="Channels\IChannelItem.cs" />
<Compile Include="Channels\ChannelAudioItem.cs" />
diff --git a/MediaBrowser.Dlna/Channels/DlnaChannelFactory.cs b/MediaBrowser.Dlna/Channels/DlnaChannelFactory.cs
index f26ceff90..315313c04 100644
--- a/MediaBrowser.Dlna/Channels/DlnaChannelFactory.cs
+++ b/MediaBrowser.Dlna/Channels/DlnaChannelFactory.cs
@@ -18,325 +18,325 @@ using System.Threading.Tasks;
namespace MediaBrowser.Dlna.Channels
{
- public class DlnaChannelFactory : IChannelFactory, IDisposable
- {
- private readonly IServerConfigurationManager _config;
- private readonly ILogger _logger;
- private readonly IHttpClient _httpClient;
-
- private readonly IDeviceDiscovery _deviceDiscovery;
-
- private readonly SemaphoreSlim _syncLock = new SemaphoreSlim(1, 1);
- private List<Device> _servers = new List<Device>();
-
- public static DlnaChannelFactory Instance;
-
- private Func<List<string>> _localServersLookup;
-
- public DlnaChannelFactory(IServerConfigurationManager config, IHttpClient httpClient, ILogger logger, IDeviceDiscovery deviceDiscovery)
- {
- _config = config;
- _httpClient = httpClient;
- _logger = logger;
- _deviceDiscovery = deviceDiscovery;
- Instance = this;
- }
-
- internal void Start(Func<List<string>> localServersLookup)
- {
- _localServersLookup = localServersLookup;
-
- //deviceDiscovery.DeviceDiscovered += deviceDiscovery_DeviceDiscovered;
- _deviceDiscovery.DeviceLeft += deviceDiscovery_DeviceLeft;
- }
-
- async void deviceDiscovery_DeviceDiscovered(object sender, SsdpMessageEventArgs e)
- {
- string usn;
- if (!e.Headers.TryGetValue("USN", out usn)) usn = string.Empty;
-
- string nt;
- if (!e.Headers.TryGetValue("NT", out nt)) nt = string.Empty;
-
- string location;
- if (!e.Headers.TryGetValue("Location", out location)) location = string.Empty;
-
- if (!IsValid(nt, usn))
- {
- return;
- }
-
- if (_localServersLookup != null)
- {
- if (_localServersLookup().Any(i => usn.IndexOf(i, StringComparison.OrdinalIgnoreCase) != -1))
- {
- // Don't add the local Dlna server to this
- return;
- }
- }
-
- if (GetExistingServers(usn).Any())
- {
- return;
- }
-
- await _syncLock.WaitAsync().ConfigureAwait(false);
-
- try
- {
- if (GetExistingServers(usn).Any())
- {
- return;
- }
-
- var device = await Device.CreateuPnpDeviceAsync(new Uri(location), _httpClient, _config, _logger)
- .ConfigureAwait(false);
-
- if (!_servers.Any(i => string.Equals(i.Properties.UUID, device.Properties.UUID, StringComparison.OrdinalIgnoreCase)))
- {
- _servers.Add(device);
- }
- }
- catch (Exception ex)
- {
-
- }
- finally
- {
- _syncLock.Release();
- }
- }
-
- async void deviceDiscovery_DeviceLeft(object sender, SsdpMessageEventArgs e)
- {
- string usn;
- if (!e.Headers.TryGetValue("USN", out usn)) usn = String.Empty;
-
- string nt;
- if (!e.Headers.TryGetValue("NT", out nt)) nt = String.Empty;
-
- if (!IsValid(nt, usn))
- {
- return;
- }
-
- if (!GetExistingServers(usn).Any())
- {
- return;
- }
-
- await _syncLock.WaitAsync().ConfigureAwait(false);
-
- try
- {
- var list = _servers.ToList();
-
- foreach (var device in GetExistingServers(usn).ToList())
- {
- list.Remove(device);
- }
-
- _servers = list;
- }
- finally
- {
- _syncLock.Release();
- }
- }
-
- private bool IsValid(string nt, string usn)
- {
- // It has to report that it's a media renderer
- if (usn.IndexOf("ContentDirectory:", StringComparison.OrdinalIgnoreCase) == -1 &&
- nt.IndexOf("ContentDirectory:", StringComparison.OrdinalIgnoreCase) == -1 &&
- usn.IndexOf("MediaServer:", StringComparison.OrdinalIgnoreCase) == -1 &&
- nt.IndexOf("MediaServer:", StringComparison.OrdinalIgnoreCase) == -1)
- {
- return false;
- }
-
- return true;
- }
-
- private IEnumerable<Device> GetExistingServers(string usn)
- {
- return _servers
- .Where(i => usn.IndexOf(i.Properties.UUID, StringComparison.OrdinalIgnoreCase) != -1);
- }
-
- public IEnumerable<IChannel> GetChannels()
- {
- //if (_servers.Count > 0)
- //{
- // var service = _servers[0].Properties.Services
- // .FirstOrDefault(i => string.Equals(i.ServiceType, "urn:schemas-upnp-org:service:ContentDirectory:1", StringComparison.OrdinalIgnoreCase));
-
- // var controlUrl = service == null ? null : (_servers[0].Properties.BaseUrl.TrimEnd('/') + "/" + service.ControlUrl.TrimStart('/'));
-
- // if (!string.IsNullOrEmpty(controlUrl))
- // {
- // return new List<IChannel>
- // {
- // new ServerChannel(_servers.ToList(), _httpClient, _logger, controlUrl)
- // };
- // }
- //}
-
- return new List<IChannel>();
- }
-
- public void Dispose()
- {
- if (_deviceDiscovery != null)
- {
- _deviceDiscovery.DeviceDiscovered -= deviceDiscovery_DeviceDiscovered;
- _deviceDiscovery.DeviceLeft -= deviceDiscovery_DeviceLeft;
- }
- }
- }
-
- public class ServerChannel : IChannel, IFactoryChannel
- {
- private readonly IHttpClient _httpClient;
- private readonly ILogger _logger;
- public string ControlUrl { get; set; }
- public List<Device> Servers { get; set; }
-
- public ServerChannel(IHttpClient httpClient, ILogger logger)
- {
- _httpClient = httpClient;
- _logger = logger;
- Servers = new List<Device>();
- }
-
- public string Name
- {
- get { return "Devices"; }
- }
-
- public string Description
- {
- get { return string.Empty; }
- }
-
- public string DataVersion
- {
- get { return DateTime.UtcNow.Ticks.ToString(); }
- }
-
- public string HomePageUrl
- {
- get { return string.Empty; }
- }
-
- public ChannelParentalRating ParentalRating
- {
- get { return ChannelParentalRating.GeneralAudience; }
- }
-
- public InternalChannelFeatures GetChannelFeatures()
- {
- return new InternalChannelFeatures
- {
- ContentTypes = new List<ChannelMediaContentType>
- {
- ChannelMediaContentType.Song,
- ChannelMediaContentType.Clip
- },
-
- MediaTypes = new List<ChannelMediaType>
- {
- ChannelMediaType.Audio,
- ChannelMediaType.Video,
- ChannelMediaType.Photo
- }
- };
- }
-
- public bool IsEnabledFor(string userId)
- {
- return true;
- }
-
- public async Task<ChannelItemResult> GetChannelItems(InternalChannelItemQuery query, CancellationToken cancellationToken)
- {
- IEnumerable<ChannelItemInfo> items;
-
- if (string.IsNullOrWhiteSpace(query.FolderId))
- {
- items = Servers.Select(i => new ChannelItemInfo
- {
- FolderType = ChannelFolderType.Container,
- Id = GetServerId(i),
- Name = i.Properties.Name,
- Overview = i.Properties.ModelDescription,
- Type = ChannelItemType.Folder
- });
- }
- else
- {
- var idParts = query.FolderId.Split('|');
- var folderId = idParts.Length == 2 ? idParts[1] : null;
-
- var result = await new ContentDirectoryBrowser(_httpClient, _logger).Browse(new ContentDirectoryBrowseRequest
- {
- Limit = query.Limit,
- StartIndex = query.StartIndex,
- ParentId = folderId,
- ContentDirectoryUrl = ControlUrl
-
- }, cancellationToken).ConfigureAwait(false);
-
- items = result.Items.ToList();
- }
-
- var list = items.ToList();
- var count = list.Count;
-
- list = ApplyPaging(list, query).ToList();
-
- return new ChannelItemResult
- {
- Items = list,
- TotalRecordCount = count
- };
- }
-
- private string GetServerId(Device device)
- {
- return device.Properties.UUID.GetMD5().ToString("N");
- }
-
- private IEnumerable<T> ApplyPaging<T>(IEnumerable<T> items, InternalChannelItemQuery query)
- {
- if (query.StartIndex.HasValue)
- {
- items = items.Skip(query.StartIndex.Value);
- }
-
- if (query.Limit.HasValue)
- {
- items = items.Take(query.Limit.Value);
- }
-
- return items;
- }
-
- public Task<DynamicImageResponse> GetChannelImage(ImageType type, CancellationToken cancellationToken)
- {
- // TODO: Implement
- return Task.FromResult(new DynamicImageResponse
- {
- HasImage = false
- });
- }
-
- public IEnumerable<ImageType> GetSupportedChannelImages()
- {
- return new List<ImageType>
- {
- ImageType.Primary
- };
- }
- }
+ //public class DlnaChannelFactory : IChannelFactory, IDisposable
+ //{
+ // private readonly IServerConfigurationManager _config;
+ // private readonly ILogger _logger;
+ // private readonly IHttpClient _httpClient;
+
+ // private readonly IDeviceDiscovery _deviceDiscovery;
+
+ // private readonly SemaphoreSlim _syncLock = new SemaphoreSlim(1, 1);
+ // private List<Device> _servers = new List<Device>();
+
+ // public static DlnaChannelFactory Instance;
+
+ // private Func<List<string>> _localServersLookup;
+
+ // public DlnaChannelFactory(IServerConfigurationManager config, IHttpClient httpClient, ILogger logger, IDeviceDiscovery deviceDiscovery)
+ // {
+ // _config = config;
+ // _httpClient = httpClient;
+ // _logger = logger;
+ // _deviceDiscovery = deviceDiscovery;
+ // Instance = this;
+ // }
+
+ // internal void Start(Func<List<string>> localServersLookup)
+ // {
+ // _localServersLookup = localServersLookup;
+
+ // //deviceDiscovery.DeviceDiscovered += deviceDiscovery_DeviceDiscovered;
+ // _deviceDiscovery.DeviceLeft += deviceDiscovery_DeviceLeft;
+ // }
+
+ // async void deviceDiscovery_DeviceDiscovered(object sender, SsdpMessageEventArgs e)
+ // {
+ // string usn;
+ // if (!e.Headers.TryGetValue("USN", out usn)) usn = string.Empty;
+
+ // string nt;
+ // if (!e.Headers.TryGetValue("NT", out nt)) nt = string.Empty;
+
+ // string location;
+ // if (!e.Headers.TryGetValue("Location", out location)) location = string.Empty;
+
+ // if (!IsValid(nt, usn))
+ // {
+ // return;
+ // }
+
+ // if (_localServersLookup != null)
+ // {
+ // if (_localServersLookup().Any(i => usn.IndexOf(i, StringComparison.OrdinalIgnoreCase) != -1))
+ // {
+ // // Don't add the local Dlna server to this
+ // return;
+ // }
+ // }
+
+ // if (GetExistingServers(usn).Any())
+ // {
+ // return;
+ // }
+
+ // await _syncLock.WaitAsync().ConfigureAwait(false);
+
+ // try
+ // {
+ // if (GetExistingServers(usn).Any())
+ // {
+ // return;
+ // }
+
+ // var device = await Device.CreateuPnpDeviceAsync(new Uri(location), _httpClient, _config, _logger)
+ // .ConfigureAwait(false);
+
+ // if (!_servers.Any(i => string.Equals(i.Properties.UUID, device.Properties.UUID, StringComparison.OrdinalIgnoreCase)))
+ // {
+ // _servers.Add(device);
+ // }
+ // }
+ // catch (Exception ex)
+ // {
+
+ // }
+ // finally
+ // {
+ // _syncLock.Release();
+ // }
+ // }
+
+ // async void deviceDiscovery_DeviceLeft(object sender, SsdpMessageEventArgs e)
+ // {
+ // string usn;
+ // if (!e.Headers.TryGetValue("USN", out usn)) usn = String.Empty;
+
+ // string nt;
+ // if (!e.Headers.TryGetValue("NT", out nt)) nt = String.Empty;
+
+ // if (!IsValid(nt, usn))
+ // {
+ // return;
+ // }
+
+ // if (!GetExistingServers(usn).Any())
+ // {
+ // return;
+ // }
+
+ // await _syncLock.WaitAsync().ConfigureAwait(false);
+
+ // try
+ // {
+ // var list = _servers.ToList();
+
+ // foreach (var device in GetExistingServers(usn).ToList())
+ // {
+ // list.Remove(device);
+ // }
+
+ // _servers = list;
+ // }
+ // finally
+ // {
+ // _syncLock.Release();
+ // }
+ // }
+
+ // private bool IsValid(string nt, string usn)
+ // {
+ // // It has to report that it's a media renderer
+ // if (usn.IndexOf("ContentDirectory:", StringComparison.OrdinalIgnoreCase) == -1 &&
+ // nt.IndexOf("ContentDirectory:", StringComparison.OrdinalIgnoreCase) == -1 &&
+ // usn.IndexOf("MediaServer:", StringComparison.OrdinalIgnoreCase) == -1 &&
+ // nt.IndexOf("MediaServer:", StringComparison.OrdinalIgnoreCase) == -1)
+ // {
+ // return false;
+ // }
+
+ // return true;
+ // }
+
+ // private IEnumerable<Device> GetExistingServers(string usn)
+ // {
+ // return _servers
+ // .Where(i => usn.IndexOf(i.Properties.UUID, StringComparison.OrdinalIgnoreCase) != -1);
+ // }
+
+ // public IEnumerable<IChannel> GetChannels()
+ // {
+ // //if (_servers.Count > 0)
+ // //{
+ // // var service = _servers[0].Properties.Services
+ // // .FirstOrDefault(i => string.Equals(i.ServiceType, "urn:schemas-upnp-org:service:ContentDirectory:1", StringComparison.OrdinalIgnoreCase));
+
+ // // var controlUrl = service == null ? null : (_servers[0].Properties.BaseUrl.TrimEnd('/') + "/" + service.ControlUrl.TrimStart('/'));
+
+ // // if (!string.IsNullOrEmpty(controlUrl))
+ // // {
+ // // return new List<IChannel>
+ // // {
+ // // new ServerChannel(_servers.ToList(), _httpClient, _logger, controlUrl)
+ // // };
+ // // }
+ // //}
+
+ // return new List<IChannel>();
+ // }
+
+ // public void Dispose()
+ // {
+ // if (_deviceDiscovery != null)
+ // {
+ // _deviceDiscovery.DeviceDiscovered -= deviceDiscovery_DeviceDiscovered;
+ // _deviceDiscovery.DeviceLeft -= deviceDiscovery_DeviceLeft;
+ // }
+ // }
+ //}
+
+ //public class ServerChannel : IChannel, IFactoryChannel
+ //{
+ // private readonly IHttpClient _httpClient;
+ // private readonly ILogger _logger;
+ // public string ControlUrl { get; set; }
+ // public List<Device> Servers { get; set; }
+
+ // public ServerChannel(IHttpClient httpClient, ILogger logger)
+ // {
+ // _httpClient = httpClient;
+ // _logger = logger;
+ // Servers = new List<Device>();
+ // }
+
+ // public string Name
+ // {
+ // get { return "Devices"; }
+ // }
+
+ // public string Description
+ // {
+ // get { return string.Empty; }
+ // }
+
+ // public string DataVersion
+ // {
+ // get { return DateTime.UtcNow.Ticks.ToString(); }
+ // }
+
+ // public string HomePageUrl
+ // {
+ // get { return string.Empty; }
+ // }
+
+ // public ChannelParentalRating ParentalRating
+ // {
+ // get { return ChannelParentalRating.GeneralAudience; }
+ // }
+
+ // public InternalChannelFeatures GetChannelFeatures()
+ // {
+ // return new InternalChannelFeatures
+ // {
+ // ContentTypes = new List<ChannelMediaContentType>
+ // {
+ // ChannelMediaContentType.Song,
+ // ChannelMediaContentType.Clip
+ // },
+
+ // MediaTypes = new List<ChannelMediaType>
+ // {
+ // ChannelMediaType.Audio,
+ // ChannelMediaType.Video,
+ // ChannelMediaType.Photo
+ // }
+ // };
+ // }
+
+ // public bool IsEnabledFor(string userId)
+ // {
+ // return true;
+ // }
+
+ // public async Task<ChannelItemResult> GetChannelItems(InternalChannelItemQuery query, CancellationToken cancellationToken)
+ // {
+ // IEnumerable<ChannelItemInfo> items;
+
+ // if (string.IsNullOrWhiteSpace(query.FolderId))
+ // {
+ // items = Servers.Select(i => new ChannelItemInfo
+ // {
+ // FolderType = ChannelFolderType.Container,
+ // Id = GetServerId(i),
+ // Name = i.Properties.Name,
+ // Overview = i.Properties.ModelDescription,
+ // Type = ChannelItemType.Folder
+ // });
+ // }
+ // else
+ // {
+ // var idParts = query.FolderId.Split('|');
+ // var folderId = idParts.Length == 2 ? idParts[1] : null;
+
+ // var result = await new ContentDirectoryBrowser(_httpClient, _logger).Browse(new ContentDirectoryBrowseRequest
+ // {
+ // Limit = query.Limit,
+ // StartIndex = query.StartIndex,
+ // ParentId = folderId,
+ // ContentDirectoryUrl = ControlUrl
+
+ // }, cancellationToken).ConfigureAwait(false);
+
+ // items = result.Items.ToList();
+ // }
+
+ // var list = items.ToList();
+ // var count = list.Count;
+
+ // list = ApplyPaging(list, query).ToList();
+
+ // return new ChannelItemResult
+ // {
+ // Items = list,
+ // TotalRecordCount = count
+ // };
+ // }
+
+ // private string GetServerId(Device device)
+ // {
+ // return device.Properties.UUID.GetMD5().ToString("N");
+ // }
+
+ // private IEnumerable<T> ApplyPaging<T>(IEnumerable<T> items, InternalChannelItemQuery query)
+ // {
+ // if (query.StartIndex.HasValue)
+ // {
+ // items = items.Skip(query.StartIndex.Value);
+ // }
+
+ // if (query.Limit.HasValue)
+ // {
+ // items = items.Take(query.Limit.Value);
+ // }
+
+ // return items;
+ // }
+
+ // public Task<DynamicImageResponse> GetChannelImage(ImageType type, CancellationToken cancellationToken)
+ // {
+ // // TODO: Implement
+ // return Task.FromResult(new DynamicImageResponse
+ // {
+ // HasImage = false
+ // });
+ // }
+
+ // public IEnumerable<ImageType> GetSupportedChannelImages()
+ // {
+ // return new List<ImageType>
+ // {
+ // ImageType.Primary
+ // };
+ // }
+ //}
}
diff --git a/MediaBrowser.Dlna/Main/DlnaEntryPoint.cs b/MediaBrowser.Dlna/Main/DlnaEntryPoint.cs
index bdb778cab..8c45757e7 100644
--- a/MediaBrowser.Dlna/Main/DlnaEntryPoint.cs
+++ b/MediaBrowser.Dlna/Main/DlnaEntryPoint.cs
@@ -81,8 +81,6 @@ namespace MediaBrowser.Dlna.Main
ReloadComponents();
_config.NamedConfigurationUpdated += _config_NamedConfigurationUpdated;
-
- DlnaChannelFactory.Instance.Start(() => _registeredServerIds);
}
void _config_NamedConfigurationUpdated(object sender, ConfigurationUpdateEventArgs e)
diff --git a/MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs b/MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs
index e2543c841..01be4924a 100644
--- a/MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs
+++ b/MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs
@@ -483,9 +483,6 @@ namespace MediaBrowser.MediaEncoding.Encoder
}
}
- // TODO: Output in webp for smaller sizes
- // -f image2 -f webp
-
// Use ffmpeg to sample 100 (we can drop this if required using thumbnail=50 for 50 frames) frames and pick the best thumbnail. Have a fall back just in case.
var args = useIFrame ? string.Format("-i {0} -threads 1 -v quiet -vframes 1 -vf \"{2},thumbnail=30\" -f image2 \"{1}\"", inputPath, "-", vf) :
string.Format("-i {0} -threads 1 -v quiet -vframes 1 -vf \"{2}\" -f image2 \"{1}\"", inputPath, "-", vf);
diff --git a/MediaBrowser.Model/Configuration/ServerConfiguration.cs b/MediaBrowser.Model/Configuration/ServerConfiguration.cs
index 1fcad8c95..b137a8502 100644
--- a/MediaBrowser.Model/Configuration/ServerConfiguration.cs
+++ b/MediaBrowser.Model/Configuration/ServerConfiguration.cs
@@ -276,11 +276,7 @@ namespace MediaBrowser.Model.Configuration
InsecureApps9 = new[]
{
- "Chromecast",
- "iOS",
"Unknown app",
- "iPad",
- "iPhone",
"Windows Phone"
};
diff --git a/MediaBrowser.Model/Dlna/ConditionProcessor.cs b/MediaBrowser.Model/Dlna/ConditionProcessor.cs
index 793036f40..fd3df9c76 100644
--- a/MediaBrowser.Model/Dlna/ConditionProcessor.cs
+++ b/MediaBrowser.Model/Dlna/ConditionProcessor.cs
@@ -28,7 +28,6 @@ namespace MediaBrowser.Model.Dlna
// TODO: Implement
return true;
case ProfileConditionValue.Has64BitOffsets:
- // TODO: Implement
return true;
case ProfileConditionValue.IsAnamorphic:
return IsConditionSatisfied(condition, isAnamorphic);
diff --git a/MediaBrowser.Providers/Omdb/OmdbImageProvider.cs b/MediaBrowser.Providers/Omdb/OmdbImageProvider.cs
index 7f804f9df..3f25f0f93 100644
--- a/MediaBrowser.Providers/Omdb/OmdbImageProvider.cs
+++ b/MediaBrowser.Providers/Omdb/OmdbImageProvider.cs
@@ -79,8 +79,7 @@ namespace MediaBrowser.Providers.Omdb
public bool Supports(IHasImages item)
{
- // Save the http requests since we know it's not currently supported
- // TODO: Check again periodically
+ // We'll hammer Omdb if we enable this
if (item is Person)
{
return false;
diff --git a/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs b/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs
index 9edfc0c35..d7209fbdf 100644
--- a/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs
+++ b/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs
@@ -31,7 +31,6 @@ namespace MediaBrowser.Server.Implementations.Channels
public class ChannelManager : IChannelManager, IDisposable
{
private IChannel[] _channels;
- private IChannelFactory[] _factories;
private readonly IUserManager _userManager;
private readonly IUserDataManager _userDataManager;
@@ -76,10 +75,9 @@ namespace MediaBrowser.Server.Implementations.Channels
}
}
- public void AddParts(IEnumerable<IChannel> channels, IEnumerable<IChannelFactory> factories)
+ public void AddParts(IEnumerable<IChannel> channels)
{
- _channels = channels.Where(i => !(i is IFactoryChannel)).ToArray();
- _factories = factories.ToArray();
+ _channels = channels.ToArray();
}
public string ChannelDownloadPath
@@ -99,20 +97,7 @@ namespace MediaBrowser.Server.Implementations.Channels
private IEnumerable<IChannel> GetAllChannels()
{
- return _factories
- .SelectMany(i =>
- {
- try
- {
- return i.GetChannels().ToList();
- }
- catch (Exception ex)
- {
- _logger.ErrorException("Error getting channel list", ex);
- return new List<IChannel>();
- }
- })
- .Concat(_channels)
+ return _channels
.OrderBy(i => i.Name);
}
diff --git a/MediaBrowser.Server.Implementations/HttpServer/Security/AuthorizationContext.cs b/MediaBrowser.Server.Implementations/HttpServer/Security/AuthorizationContext.cs
index 80892b96c..ae5ce796e 100644
--- a/MediaBrowser.Server.Implementations/HttpServer/Security/AuthorizationContext.cs
+++ b/MediaBrowser.Server.Implementations/HttpServer/Security/AuthorizationContext.cs
@@ -69,47 +69,6 @@ namespace MediaBrowser.Server.Implementations.HttpServer.Security
token = httpReq.QueryString["api_key"];
}
- // Hack until iOS is updated
- // TODO: Remove
- if (string.IsNullOrWhiteSpace(client))
- {
- var userAgent = httpReq.Headers["User-Agent"] ?? string.Empty;
-
- if (userAgent.IndexOf("mediabrowserios", StringComparison.OrdinalIgnoreCase) != -1 ||
- userAgent.IndexOf("iphone", StringComparison.OrdinalIgnoreCase) != -1 ||
- userAgent.IndexOf("ipad", StringComparison.OrdinalIgnoreCase) != -1)
- {
- client = "iOS";
- }
-
- else if (userAgent.IndexOf("crKey", StringComparison.OrdinalIgnoreCase) != -1)
- {
- client = "Chromecast";
- }
- }
-
- // Hack until iOS is updated
- // TODO: Remove
- if (string.IsNullOrWhiteSpace(device))
- {
- var userAgent = httpReq.Headers["User-Agent"] ?? string.Empty;
-
- if (userAgent.IndexOf("iPhone", StringComparison.OrdinalIgnoreCase) != -1)
- {
- device = "iPhone";
- }
-
- else if (userAgent.IndexOf("iPad", StringComparison.OrdinalIgnoreCase) != -1)
- {
- device = "iPad";
- }
-
- else if (userAgent.IndexOf("crKey", StringComparison.OrdinalIgnoreCase) != -1)
- {
- device = "Chromecast";
- }
- }
-
var info = new AuthorizationInfo
{
Client = client,
diff --git a/MediaBrowser.Server.Implementations/Sync/SyncManager.cs b/MediaBrowser.Server.Implementations/Sync/SyncManager.cs
index 428ba5e20..15d196877 100644
--- a/MediaBrowser.Server.Implementations/Sync/SyncManager.cs
+++ b/MediaBrowser.Server.Implementations/Sync/SyncManager.cs
@@ -962,8 +962,6 @@ namespace MediaBrowser.Server.Implementations.Sync
return false;
}
- // TODO: Make sure it hasn't been deleted
-
return true;
}
diff --git a/MediaBrowser.Server.Startup.Common/ApplicationHost.cs b/MediaBrowser.Server.Startup.Common/ApplicationHost.cs
index ad2cd96b6..b55e727d6 100644
--- a/MediaBrowser.Server.Startup.Common/ApplicationHost.cs
+++ b/MediaBrowser.Server.Startup.Common/ApplicationHost.cs
@@ -790,7 +790,7 @@ namespace MediaBrowser.Server.Startup.Common
SessionManager.AddParts(GetExports<ISessionControllerFactory>());
- ChannelManager.AddParts(GetExports<IChannel>(), GetExports<IChannelFactory>());
+ ChannelManager.AddParts(GetExports<IChannel>());
MediaSourceManager.AddParts(GetExports<IMediaSourceProvider>());
diff --git a/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj b/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj
index ccac9d8d8..36c21efde 100644
--- a/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj
+++ b/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj
@@ -1005,9 +1005,6 @@
<Content Include="dashboard-ui\scripts\dlnasettings.js">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
- <Content Include="dashboard-ui\scripts\editcollectionitems.js">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </Content>
<Content Include="dashboard-ui\scripts\edititemsubtitles.js">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>