diff --git a/MediaBrowser.Api/PluginService.cs b/MediaBrowser.Api/PluginService.cs index 2d7444f60f..aead73def2 100644 --- a/MediaBrowser.Api/PluginService.cs +++ b/MediaBrowser.Api/PluginService.cs @@ -208,7 +208,7 @@ namespace MediaBrowser.Api foreach (var plugin in result) { - var pkg = packages.FirstOrDefault(i => !string.IsNullOrWhiteSpace(i.guid) && new Guid(plugin.Id).Equals(new Guid(i.guid))); + var pkg = packages.FirstOrDefault(i => !string.IsNullOrWhiteSpace(i.guid) && string.Equals(i.guid.Replace("-", string.Empty), plugin.Id.Replace("-", string.Empty), StringComparison.OrdinalIgnoreCase)); if (pkg != null) { @@ -228,8 +228,9 @@ namespace MediaBrowser.Api .ToList(); } } - catch + catch (Exception ex) { + //Logger.ErrorException("Error getting plugin list", ex); // Play it safe here if (requireAppStoreEnabled) { diff --git a/MediaBrowser.Dlna/DlnaManager.cs b/MediaBrowser.Dlna/DlnaManager.cs index 63a36744f1..dd5c4b77e7 100644 --- a/MediaBrowser.Dlna/DlnaManager.cs +++ b/MediaBrowser.Dlna/DlnaManager.cs @@ -488,7 +488,9 @@ namespace MediaBrowser.Dlna var profile = GetProfile(headers) ?? GetDefaultProfile(); - return new DescriptionXmlBuilder(profile, serverUuId, serverAddress, _appHost.FriendlyName, serverUuId.GetMD5().ToString("N")).GetXml(); + var serverId = _appHost.SystemId; + + return new DescriptionXmlBuilder(profile, serverUuId, serverAddress, _appHost.FriendlyName, serverId).GetXml(); } public ImageStream GetIcon(string filename) diff --git a/MediaBrowser.Dlna/Main/DlnaEntryPoint.cs b/MediaBrowser.Dlna/Main/DlnaEntryPoint.cs index d79ef9eafa..2133888b61 100644 --- a/MediaBrowser.Dlna/Main/DlnaEntryPoint.cs +++ b/MediaBrowser.Dlna/Main/DlnaEntryPoint.cs @@ -157,9 +157,9 @@ namespace MediaBrowser.Dlna.Main //} var addressString = address.ToString(); - var guid = addressString.GetMD5(); + var udn = addressString.GetMD5().ToString("N"); - var descriptorURI = "/dlna/" + guid.ToString("N") + "/description.xml"; + var descriptorURI = "/dlna/" + udn + "/description.xml"; var uri = new Uri(_appHost.GetLocalApiUrl(addressString) + descriptorURI); @@ -170,12 +170,12 @@ namespace MediaBrowser.Dlna.Main "urn:schemas-upnp-org:service:ContentDirectory:1", "urn:schemas-upnp-org:service:ConnectionManager:1", "urn:microsoft.com:service:X_MS_MediaReceiverRegistrar:1", - "uuid:" + guid.ToString("N") + "uuid:" + udn }; - _ssdpHandler.RegisterNotification(guid, uri, address, services); + _ssdpHandler.RegisterNotification(udn, uri, address, services); - _registeredServerIds.Add(guid.ToString("N")); + _registeredServerIds.Add(udn); } } @@ -240,7 +240,7 @@ namespace MediaBrowser.Dlna.Main { try { - _ssdpHandler.UnregisterNotification(new Guid(id)); + _ssdpHandler.UnregisterNotification(id); } catch (Exception ex) { diff --git a/MediaBrowser.Dlna/Server/DescriptionXmlBuilder.cs b/MediaBrowser.Dlna/Server/DescriptionXmlBuilder.cs index 281dee3e07..386370596c 100644 --- a/MediaBrowser.Dlna/Server/DescriptionXmlBuilder.cs +++ b/MediaBrowser.Dlna/Server/DescriptionXmlBuilder.cs @@ -122,7 +122,7 @@ namespace MediaBrowser.Dlna.Server builder.Append("" + SecurityElement.Escape(_profile.SerialNumber) + ""); } - builder.Append("uuid:" + SecurityElement.Escape(_serverId) + ""); + builder.Append("uuid:" + SecurityElement.Escape(_serverUdn) + ""); builder.Append("" + SecurityElement.Escape(_serverAddress) + ""); if (!EnableAbsoluteUrls) diff --git a/MediaBrowser.Dlna/Server/UpnpDevice.cs b/MediaBrowser.Dlna/Server/UpnpDevice.cs index 870e3c24f9..10eaeb0535 100644 --- a/MediaBrowser.Dlna/Server/UpnpDevice.cs +++ b/MediaBrowser.Dlna/Server/UpnpDevice.cs @@ -8,10 +8,10 @@ namespace MediaBrowser.Dlna.Server public readonly Uri Descriptor; public readonly string Type; public readonly string USN; - public readonly Guid Uuid; + public readonly string Uuid; public readonly IPAddress Address; - public UpnpDevice(Guid aUuid, string aType, Uri aDescriptor, IPAddress address) + public UpnpDevice(string aUuid, string aType, Uri aDescriptor, IPAddress address) { Uuid = aUuid; Type = aType; @@ -25,7 +25,7 @@ namespace MediaBrowser.Dlna.Server } else { - USN = String.Format("uuid:{0}::{1}", Uuid.ToString("N"), Type); + USN = String.Format("uuid:{0}::{1}", Uuid, Type); } } } diff --git a/MediaBrowser.Dlna/Ssdp/SsdpHandler.cs b/MediaBrowser.Dlna/Ssdp/SsdpHandler.cs index 82fc5e4665..881f70165e 100644 --- a/MediaBrowser.Dlna/Ssdp/SsdpHandler.cs +++ b/MediaBrowser.Dlna/Ssdp/SsdpHandler.cs @@ -36,7 +36,7 @@ namespace MediaBrowser.Dlna.Ssdp private Timer _notificationTimer; private bool _isDisposed; - private readonly ConcurrentDictionary> _devices = new ConcurrentDictionary>(); + private readonly ConcurrentDictionary> _devices = new ConcurrentDictionary>(); private readonly IApplicationHost _appHost; @@ -451,7 +451,7 @@ namespace MediaBrowser.Dlna.Ssdp SendDatagram(msg, _ssdpEndp, new IPEndPoint(dev.Address, 0), true); } - public void RegisterNotification(Guid uuid, Uri descriptionUri, IPAddress address, IEnumerable services) + public void RegisterNotification(string uuid, Uri descriptionUri, IPAddress address, IEnumerable services) { var list = _devices.GetOrAdd(uuid, new List()); @@ -461,7 +461,7 @@ namespace MediaBrowser.Dlna.Ssdp _logger.Debug("Registered mount {0} at {1}", uuid, descriptionUri); } - public void UnregisterNotification(Guid uuid) + public void UnregisterNotification(string uuid) { List dl; if (_devices.TryRemove(uuid, out dl)) diff --git a/MediaBrowser.Model/Configuration/UserConfiguration.cs b/MediaBrowser.Model/Configuration/UserConfiguration.cs index 8199489096..d59974a2e8 100644 --- a/MediaBrowser.Model/Configuration/UserConfiguration.cs +++ b/MediaBrowser.Model/Configuration/UserConfiguration.cs @@ -42,8 +42,6 @@ namespace MediaBrowser.Model.Configuration public bool IncludeTrailersInSuggestions { get; set; } - public bool EnableCinemaMode { get; set; } - public string[] LatestItemsExcludes { get; set; } public string[] PlainFolderViews { get; set; } @@ -64,7 +62,6 @@ namespace MediaBrowser.Model.Configuration PlainFolderViews = new string[] { }; IncludeTrailersInSuggestions = true; - EnableCinemaMode = true; GroupedFolders = new string[] { }; } diff --git a/MediaBrowser.Server.Implementations/EntryPoints/UsageReporter.cs b/MediaBrowser.Server.Implementations/EntryPoints/UsageReporter.cs index 47c7546430..be2817fd29 100644 --- a/MediaBrowser.Server.Implementations/EntryPoints/UsageReporter.cs +++ b/MediaBrowser.Server.Implementations/EntryPoints/UsageReporter.cs @@ -18,7 +18,7 @@ namespace MediaBrowser.Server.Implementations.EntryPoints private readonly IHttpClient _httpClient; private readonly IUserManager _userManager; private readonly ILogger _logger; - private const string MbAdminUrl = "https://www.mb3admin.com/admin/"; + private const string MbAdminUrl = "http://www.mb3admin.com/admin/"; public UsageReporter(IApplicationHost applicationHost, IHttpClient httpClient, IUserManager userManager, ILogger logger) { diff --git a/MediaBrowser.Server.Implementations/HttpServer/ResponseFilter.cs b/MediaBrowser.Server.Implementations/HttpServer/ResponseFilter.cs index 4ef9d52774..f993d4437a 100644 --- a/MediaBrowser.Server.Implementations/HttpServer/ResponseFilter.cs +++ b/MediaBrowser.Server.Implementations/HttpServer/ResponseFilter.cs @@ -61,6 +61,7 @@ namespace MediaBrowser.Server.Implementations.HttpServer if (!hasOptions.Options.ContainsKey("Server")) { hasOptions.Options["Server"] = "Mono-HTTPAPI/1.1, UPnP/1.0 DLNADOC/1.50"; + //hasOptions.Options["Server"] = "Mono-HTTPAPI/1.1"; } // Content length has to be explicitly set on on HttpListenerResponse or it won't be happy diff --git a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EncodedRecorder.cs b/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EncodedRecorder.cs index b4ff79567d..5f4d32732e 100644 --- a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EncodedRecorder.cs +++ b/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EncodedRecorder.cs @@ -91,6 +91,8 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV // Important - don't await the log task or we won't be able to kill ffmpeg when the user stops playback StartStreamingLog(process.StandardError.BaseStream, _logFileStream); + onStarted(); + // Wait for the file to exist before proceeeding while (!_hasExited) { diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/SatIpDiscovery.cs b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/SatIpDiscovery.cs index 95c04d61f3..08c42bb467 100644 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/SatIpDiscovery.cs +++ b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/SatIpDiscovery.cs @@ -41,29 +41,21 @@ namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.SatIp void _deviceDiscovery_DeviceDiscovered(object sender, SsdpMessageEventArgs e) { - //string server = null; - //if (e.Headers.TryGetValue("SERVER", out server) && server.IndexOf("HDHomeRun", StringComparison.OrdinalIgnoreCase) != -1) - //{ - // string location; - // if (e.Headers.TryGetValue("Location", out location)) - // { - // //_logger.Debug("HdHomerun found at {0}", location); + string st = null; + if (e.Headers.TryGetValue("ST", out st) && string.Equals(st, "urn:ses-com:device:SatIPServer:1", StringComparison.OrdinalIgnoreCase)) + { + string location; + if (e.Headers.TryGetValue("Location", out location) && !string.IsNullOrWhiteSpace(location)) + { + _logger.Debug("SAT IP found at {0}", location); - // // Just get the beginning of the url - // Uri uri; - // if (Uri.TryCreate(location, UriKind.Absolute, out uri)) - // { - // var apiUrl = location.Replace(uri.LocalPath, String.Empty, StringComparison.OrdinalIgnoreCase) - // .TrimEnd('/'); - - // //_logger.Debug("HdHomerun api url: {0}", apiUrl); - // AddDevice(apiUrl); - // } - // } - //} + // Just get the beginning of the url + AddDevice(location); + } + } } - private async void AddDevice(string url) + private async void AddDevice(string location) { await _semaphore.WaitAsync().ConfigureAwait(false); @@ -71,24 +63,24 @@ namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.SatIp { var options = GetConfiguration(); - if (options.TunerHosts.Any(i => - string.Equals(i.Type, SatIpHost.DeviceType, StringComparison.OrdinalIgnoreCase) && - UriEquals(i.Url, url))) - { - return; - } + //if (options.TunerHosts.Any(i => + // string.Equals(i.Type, SatIpHost.DeviceType, StringComparison.OrdinalIgnoreCase) && + // UriEquals(i.Url, url))) + //{ + // return; + //} - // Strip off the port - url = new Uri(url).GetComponents(UriComponents.AbsoluteUri & ~UriComponents.Port, UriFormat.UriEscaped).TrimEnd('/'); + //// Strip off the port + //url = new Uri(url).GetComponents(UriComponents.AbsoluteUri & ~UriComponents.Port, UriFormat.UriEscaped).TrimEnd('/'); - await TestUrl(url).ConfigureAwait(false); - - await _liveTvManager.SaveTunerHost(new TunerHostInfo - { - Type = SatIpHost.DeviceType, - Url = url + //await TestUrl(url).ConfigureAwait(false); - }).ConfigureAwait(false); + //await _liveTvManager.SaveTunerHost(new TunerHostInfo + //{ + // Type = SatIpHost.DeviceType, + // Url = url + + //}).ConfigureAwait(false); } catch (Exception ex) { diff --git a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj index 2dee8a5eda..5f2fab4571 100644 --- a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj +++ b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj @@ -45,8 +45,9 @@ False ..\packages\CommonIO.1.0.0.7\lib\net45\CommonIO.dll - - ..\packages\Emby.XmlTv.1.0.0.46\lib\net45\Emby.XmlTv.dll + + False + ..\packages\Emby.XmlTv.1.0.0.48\lib\net45\Emby.XmlTv.dll ..\packages\Interfaces.IO.1.0.0.5\lib\portable-net45+sl4+wp71+win8+wpa81\Interfaces.IO.dll diff --git a/MediaBrowser.Server.Implementations/packages.config b/MediaBrowser.Server.Implementations/packages.config index 98c27786f2..816f85b428 100644 --- a/MediaBrowser.Server.Implementations/packages.config +++ b/MediaBrowser.Server.Implementations/packages.config @@ -1,7 +1,7 @@  - + diff --git a/MediaBrowser.Server.Startup.Common/FFMpeg/FFMpegDownloadInfo.cs b/MediaBrowser.Server.Startup.Common/FFMpeg/FFMpegDownloadInfo.cs index 3b83e65b23..60cb50e30e 100644 --- a/MediaBrowser.Server.Startup.Common/FFMpeg/FFMpegDownloadInfo.cs +++ b/MediaBrowser.Server.Startup.Common/FFMpeg/FFMpegDownloadInfo.cs @@ -33,7 +33,7 @@ namespace MediaBrowser.Server.Startup.Common.FFMpeg case OperatingSystem.Linux: info.ArchiveType = "7z"; - info.Version = "20150917"; + info.Version = "20160215"; break; case OperatingSystem.Osx: @@ -119,12 +119,12 @@ namespace MediaBrowser.Server.Startup.Common.FFMpeg case Architecture.X86_X64: return new[] { - "https://github.com/MediaBrowser/Emby.Resources/raw/master/ffmpeg/linux/ffmpeg-2.8.0-64bit-static.7z" + "https://github.com/MediaBrowser/Emby.Resources/raw/master/ffmpeg/linux/ffmpeg-git-20160215-64bit-static.7z" }; case Architecture.X86: return new[] { - "https://github.com/MediaBrowser/Emby.Resources/raw/master/ffmpeg/linux/ffmpeg-2.8.0-32bit-static.7z" + "https://github.com/MediaBrowser/Emby.Resources/raw/master/ffmpeg/linux/ffmpeg-git-20160215-32bit-static.7z" }; case Architecture.Arm: return new[] diff --git a/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj b/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj index 38e8e28bac..9de20cb396 100644 --- a/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj +++ b/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj @@ -113,6 +113,9 @@ PreserveNewest + + PreserveNewest + PreserveNewest @@ -511,9 +514,6 @@ PreserveNewest - - PreserveNewest - PreserveNewest diff --git a/Nuget/MediaBrowser.Common.Internal.nuspec b/Nuget/MediaBrowser.Common.Internal.nuspec index c4f2bd1307..0bb8c830fe 100644 --- a/Nuget/MediaBrowser.Common.Internal.nuspec +++ b/Nuget/MediaBrowser.Common.Internal.nuspec @@ -2,7 +2,7 @@ MediaBrowser.Common.Internal - 3.0.641 + 3.0.642 MediaBrowser.Common.Internal Luke ebr,Luke,scottisafool @@ -12,7 +12,7 @@ Contains common components shared by Emby Theater and Emby Server. Not intended for plugin developer consumption. Copyright © Emby 2013 - + diff --git a/Nuget/MediaBrowser.Common.nuspec b/Nuget/MediaBrowser.Common.nuspec index 984e03342e..a290a424a4 100644 --- a/Nuget/MediaBrowser.Common.nuspec +++ b/Nuget/MediaBrowser.Common.nuspec @@ -2,7 +2,7 @@ MediaBrowser.Common - 3.0.641 + 3.0.642 MediaBrowser.Common Emby Team ebr,Luke,scottisafool diff --git a/Nuget/MediaBrowser.Model.Signed.nuspec b/Nuget/MediaBrowser.Model.Signed.nuspec index 2b0826670e..2017cc1ae5 100644 --- a/Nuget/MediaBrowser.Model.Signed.nuspec +++ b/Nuget/MediaBrowser.Model.Signed.nuspec @@ -2,7 +2,7 @@ MediaBrowser.Model.Signed - 3.0.641 + 3.0.642 MediaBrowser.Model - Signed Edition Emby Team ebr,Luke,scottisafool diff --git a/Nuget/MediaBrowser.Server.Core.nuspec b/Nuget/MediaBrowser.Server.Core.nuspec index 80d3bc1031..36c9ff4153 100644 --- a/Nuget/MediaBrowser.Server.Core.nuspec +++ b/Nuget/MediaBrowser.Server.Core.nuspec @@ -2,7 +2,7 @@ MediaBrowser.Server.Core - 3.0.641 + 3.0.642 Media Browser.Server.Core Emby Team ebr,Luke,scottisafool @@ -12,7 +12,7 @@ Contains core components required to build plugins for Emby Server. Copyright © Emby 2013 - +