From 8f64a5555b055f42d4c3814725a4e961c2fc980d Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 2 Nov 2016 13:29:06 -0400 Subject: [PATCH 01/17] update xml parsing --- .../Parsers/BaseItemXmlParser.cs | 19 ++- .../Parsers/BoxSetXmlParser.cs | 19 ++- .../Parsers/PlaylistXmlParser.cs | 38 ++++-- .../TV/MissingEpisodeProvider.cs | 14 ++- .../TV/TheTVDB/TvdbEpisodeImageProvider.cs | 112 +++++++++--------- 5 files changed, 121 insertions(+), 81 deletions(-) diff --git a/MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs b/MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs index 0c9226cf0..31b13056c 100644 --- a/MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs +++ b/MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs @@ -1329,11 +1329,13 @@ namespace MediaBrowser.LocalMetadata.Parsers protected Share GetShare(XmlReader reader) { - reader.MoveToContent(); - var item = new Share(); - while (reader.Read()) + reader.MoveToContent(); + reader.Read(); + + // Loop through each element + while (!reader.EOF) { if (reader.NodeType == XmlNodeType.Element) { @@ -1350,12 +1352,17 @@ namespace MediaBrowser.LocalMetadata.Parsers item.CanEdit = string.Equals(reader.ReadElementContentAsString(), "true", StringComparison.OrdinalIgnoreCase); break; } - default: - reader.Skip(); - break; + { + reader.Skip(); + break; + } } } + else + { + reader.Read(); + } } // This is valid diff --git a/MediaBrowser.LocalMetadata/Parsers/BoxSetXmlParser.cs b/MediaBrowser.LocalMetadata/Parsers/BoxSetXmlParser.cs index d792373bf..c42b44f9e 100644 --- a/MediaBrowser.LocalMetadata/Parsers/BoxSetXmlParser.cs +++ b/MediaBrowser.LocalMetadata/Parsers/BoxSetXmlParser.cs @@ -31,11 +31,13 @@ namespace MediaBrowser.LocalMetadata.Parsers private void FetchFromCollectionItemsNode(XmlReader reader, MetadataResult item) { - reader.MoveToContent(); - var list = new List(); - while (reader.Read()) + reader.MoveToContent(); + reader.Read(); + + // Loop through each element + while (!reader.EOF) { if (reader.NodeType == XmlNodeType.Element) { @@ -55,12 +57,17 @@ namespace MediaBrowser.LocalMetadata.Parsers break; } - default: - reader.Skip(); - break; + { + reader.Skip(); + break; + } } } + else + { + reader.Read(); + } } item.Item.LinkedChildren = list; diff --git a/MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs b/MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs index 4c45545fc..ee986ae2d 100644 --- a/MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs +++ b/MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs @@ -65,11 +65,13 @@ namespace MediaBrowser.LocalMetadata.Parsers private void FetchFromCollectionItemsNode(XmlReader reader, Playlist item) { - reader.MoveToContent(); - var list = new List(); - while (reader.Read()) + reader.MoveToContent(); + reader.Read(); + + // Loop through each element + while (!reader.EOF) { if (reader.NodeType == XmlNodeType.Element) { @@ -89,12 +91,17 @@ namespace MediaBrowser.LocalMetadata.Parsers break; } - default: - reader.Skip(); - break; + { + reader.Skip(); + break; + } } } + else + { + reader.Read(); + } } item.LinkedChildren = list; @@ -102,11 +109,13 @@ namespace MediaBrowser.LocalMetadata.Parsers private void FetchFromSharesNode(XmlReader reader, Playlist item) { - reader.MoveToContent(); - var list = new List(); - while (reader.Read()) + reader.MoveToContent(); + reader.Read(); + + // Loop through each element + while (!reader.EOF) { if (reader.NodeType == XmlNodeType.Element) { @@ -126,12 +135,17 @@ namespace MediaBrowser.LocalMetadata.Parsers break; } - default: - reader.Skip(); - break; + { + reader.Skip(); + break; + } } } + else + { + reader.Read(); + } } item.Shares = list; diff --git a/MediaBrowser.Providers/TV/MissingEpisodeProvider.cs b/MediaBrowser.Providers/TV/MissingEpisodeProvider.cs index 74a968062..3c1bc2118 100644 --- a/MediaBrowser.Providers/TV/MissingEpisodeProvider.cs +++ b/MediaBrowser.Providers/TV/MissingEpisodeProvider.cs @@ -513,9 +513,10 @@ namespace MediaBrowser.Providers.TV using (var reader = XmlReader.Create(streamReader, settings)) { reader.MoveToContent(); + reader.Read(); // Loop through each element - while (reader.Read()) + while (!reader.EOF) { if (reader.NodeType == XmlNodeType.Element) { @@ -546,12 +547,17 @@ namespace MediaBrowser.Providers.TV break; } - default: - reader.Skip(); - break; + { + reader.Skip(); + break; + } } } + else + { + reader.Read(); + } } } } diff --git a/MediaBrowser.Providers/TV/TheTVDB/TvdbEpisodeImageProvider.cs b/MediaBrowser.Providers/TV/TheTVDB/TvdbEpisodeImageProvider.cs index 649fec824..5bbcc9d15 100644 --- a/MediaBrowser.Providers/TV/TheTVDB/TvdbEpisodeImageProvider.cs +++ b/MediaBrowser.Providers/TV/TheTVDB/TvdbEpisodeImageProvider.cs @@ -82,67 +82,73 @@ namespace MediaBrowser.Providers.TV // Use XmlReader for best performance using (reader) { - reader.MoveToContent(); + reader.MoveToContent(); + reader.Read(); - // Loop through each element - while (reader.Read()) - { - cancellationToken.ThrowIfCancellationRequested(); + // Loop through each element + while (!reader.EOF) + { + if (reader.NodeType == XmlNodeType.Element) + { + cancellationToken.ThrowIfCancellationRequested(); - if (reader.NodeType == XmlNodeType.Element) - { - switch (reader.Name) - { - case "thumb_width": - { - var val = reader.ReadElementContentAsString(); + switch (reader.Name) + { + case "thumb_width": + { + var val = reader.ReadElementContentAsString(); - if (!string.IsNullOrWhiteSpace(val)) - { - int rval; + if (!string.IsNullOrWhiteSpace(val)) + { + int rval; - // int.TryParse is local aware, so it can be probamatic, force us culture - if (int.TryParse(val, NumberStyles.Integer, _usCulture, out rval)) - { - width = rval; - } - } - break; - } + // int.TryParse is local aware, so it can be probamatic, force us culture + if (int.TryParse(val, NumberStyles.Integer, _usCulture, out rval)) + { + width = rval; + } + } + break; + } - case "thumb_height": - { - var val = reader.ReadElementContentAsString(); + case "thumb_height": + { + var val = reader.ReadElementContentAsString(); - if (!string.IsNullOrWhiteSpace(val)) - { - int rval; + if (!string.IsNullOrWhiteSpace(val)) + { + int rval; - // int.TryParse is local aware, so it can be probamatic, force us culture - if (int.TryParse(val, NumberStyles.Integer, _usCulture, out rval)) - { - height = rval; - } - } - break; - } + // int.TryParse is local aware, so it can be probamatic, force us culture + if (int.TryParse(val, NumberStyles.Integer, _usCulture, out rval)) + { + height = rval; + } + } + break; + } - case "filename": - { - var val = reader.ReadElementContentAsString(); - if (!string.IsNullOrWhiteSpace(val)) - { - url = TVUtils.BannerUrl + val; - } - break; - } - - default: - reader.Skip(); - break; - } - } - } + case "filename": + { + var val = reader.ReadElementContentAsString(); + if (!string.IsNullOrWhiteSpace(val)) + { + url = TVUtils.BannerUrl + val; + } + break; + } + default: + { + reader.Skip(); + break; + } + } + } + else + { + reader.Read(); + } + } } if (string.IsNullOrEmpty(url)) From d71d2a5d02cf31b67420b54160868247f23546bb Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 2 Nov 2016 16:53:50 -0400 Subject: [PATCH 02/17] move classes to portable server project --- Emby.Photos/Emby.Photos.csproj | 3 + Emby.Photos/Properties/AssemblyInfo.cs | 4 +- .../Channels/ChannelConfigurations.cs | 2 +- .../ChannelDynamicMediaSourceProvider.cs | 2 +- .../Channels/ChannelImageProvider.cs | 2 +- .../Channels/ChannelManager.cs | 16 ++-- .../Channels/ChannelPostScanTask.cs | 2 +- .../Channels/RefreshChannelsScheduledTask.cs | 2 +- .../Emby.Server.Implementations.csproj | 74 +++++++++++++++++++ .../Intros/DefaultIntroProvider.cs | 4 +- .../News/NewsService.cs | 6 +- .../Properties/AssemblyInfo.cs | 28 +++++++ .../Updates/InstallationManager.cs | 16 ++-- ...MediaBrowser.Server.Implementations.csproj | 11 +-- .../ApplicationHost.cs | 13 ++-- .../MediaBrowser.Server.Startup.Common.csproj | 4 + MediaBrowser.sln | 32 ++++++++ 17 files changed, 177 insertions(+), 44 deletions(-) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/Channels/ChannelConfigurations.cs (93%) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/Channels/ChannelDynamicMediaSourceProvider.cs (96%) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/Channels/ChannelImageProvider.cs (96%) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/Channels/ChannelManager.cs (99%) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/Channels/ChannelPostScanTask.cs (99%) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/Channels/RefreshChannelsScheduledTask.cs (97%) create mode 100644 Emby.Server.Implementations/Emby.Server.Implementations.csproj rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/Intros/DefaultIntroProvider.cs (99%) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/News/NewsService.cs (95%) create mode 100644 Emby.Server.Implementations/Properties/AssemblyInfo.cs rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/Updates/InstallationManager.cs (97%) diff --git a/Emby.Photos/Emby.Photos.csproj b/Emby.Photos/Emby.Photos.csproj index ed126a41c..21631aeb5 100644 --- a/Emby.Photos/Emby.Photos.csproj +++ b/Emby.Photos/Emby.Photos.csproj @@ -37,6 +37,9 @@ + + Properties\SharedVersion.cs + diff --git a/Emby.Photos/Properties/AssemblyInfo.cs b/Emby.Photos/Properties/AssemblyInfo.cs index abef142ef..49ac83345 100644 --- a/Emby.Photos/Properties/AssemblyInfo.cs +++ b/Emby.Photos/Properties/AssemblyInfo.cs @@ -31,6 +31,4 @@ using System.Runtime.InteropServices; // // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] +// [assembly: AssemblyVersion("1.0.*")] \ No newline at end of file diff --git a/MediaBrowser.Server.Implementations/Channels/ChannelConfigurations.cs b/Emby.Server.Implementations/Channels/ChannelConfigurations.cs similarity index 93% rename from MediaBrowser.Server.Implementations/Channels/ChannelConfigurations.cs rename to Emby.Server.Implementations/Channels/ChannelConfigurations.cs index 9dfb0404e..ef0973e7f 100644 --- a/MediaBrowser.Server.Implementations/Channels/ChannelConfigurations.cs +++ b/Emby.Server.Implementations/Channels/ChannelConfigurations.cs @@ -2,7 +2,7 @@ using MediaBrowser.Model.Configuration; using System.Collections.Generic; -namespace MediaBrowser.Server.Implementations.Channels +namespace Emby.Server.Implementations.Channels { public static class ChannelConfigurationExtension { diff --git a/MediaBrowser.Server.Implementations/Channels/ChannelDynamicMediaSourceProvider.cs b/Emby.Server.Implementations/Channels/ChannelDynamicMediaSourceProvider.cs similarity index 96% rename from MediaBrowser.Server.Implementations/Channels/ChannelDynamicMediaSourceProvider.cs rename to Emby.Server.Implementations/Channels/ChannelDynamicMediaSourceProvider.cs index fae78b9bc..98011ddd4 100644 --- a/MediaBrowser.Server.Implementations/Channels/ChannelDynamicMediaSourceProvider.cs +++ b/Emby.Server.Implementations/Channels/ChannelDynamicMediaSourceProvider.cs @@ -7,7 +7,7 @@ using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; -namespace MediaBrowser.Server.Implementations.Channels +namespace Emby.Server.Implementations.Channels { public class ChannelDynamicMediaSourceProvider : IMediaSourceProvider { diff --git a/MediaBrowser.Server.Implementations/Channels/ChannelImageProvider.cs b/Emby.Server.Implementations/Channels/ChannelImageProvider.cs similarity index 96% rename from MediaBrowser.Server.Implementations/Channels/ChannelImageProvider.cs rename to Emby.Server.Implementations/Channels/ChannelImageProvider.cs index c98f71ce2..f892b1e62 100644 --- a/MediaBrowser.Server.Implementations/Channels/ChannelImageProvider.cs +++ b/Emby.Server.Implementations/Channels/ChannelImageProvider.cs @@ -7,7 +7,7 @@ using System.Linq; using System.Threading; using System.Threading.Tasks; -namespace MediaBrowser.Server.Implementations.Channels +namespace Emby.Server.Implementations.Channels { public class ChannelImageProvider : IDynamicImageProvider, IHasItemChangeMonitor { diff --git a/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs b/Emby.Server.Implementations/Channels/ChannelManager.cs similarity index 99% rename from MediaBrowser.Server.Implementations/Channels/ChannelManager.cs rename to Emby.Server.Implementations/Channels/ChannelManager.cs index 300973ce1..2ce880c93 100644 --- a/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs +++ b/Emby.Server.Implementations/Channels/ChannelManager.cs @@ -31,7 +31,7 @@ using MediaBrowser.Controller.Entities.TV; using MediaBrowser.Controller.IO; using MediaBrowser.Model.Globalization; -namespace MediaBrowser.Server.Implementations.Channels +namespace Emby.Server.Implementations.Channels { public class ChannelManager : IChannelManager { @@ -410,7 +410,7 @@ namespace MediaBrowser.Server.Implementations.Channels } } } - catch (DirectoryNotFoundException) + catch (IOException) { } @@ -781,7 +781,7 @@ namespace MediaBrowser.Server.Implementations.Channels { } - catch (DirectoryNotFoundException) + catch (IOException) { } @@ -801,7 +801,7 @@ namespace MediaBrowser.Server.Implementations.Channels { } - catch (DirectoryNotFoundException) + catch (IOException) { } @@ -943,7 +943,7 @@ namespace MediaBrowser.Server.Implementations.Channels { } - catch (DirectoryNotFoundException) + catch (IOException) { } @@ -963,7 +963,7 @@ namespace MediaBrowser.Server.Implementations.Channels { } - catch (DirectoryNotFoundException) + catch (IOException) { } @@ -1104,7 +1104,7 @@ namespace MediaBrowser.Server.Implementations.Channels { } - catch (DirectoryNotFoundException) + catch (IOException) { } @@ -1127,7 +1127,7 @@ namespace MediaBrowser.Server.Implementations.Channels { } - catch (DirectoryNotFoundException) + catch (IOException) { } diff --git a/MediaBrowser.Server.Implementations/Channels/ChannelPostScanTask.cs b/Emby.Server.Implementations/Channels/ChannelPostScanTask.cs similarity index 99% rename from MediaBrowser.Server.Implementations/Channels/ChannelPostScanTask.cs rename to Emby.Server.Implementations/Channels/ChannelPostScanTask.cs index afb842c1c..aef06bd1d 100644 --- a/MediaBrowser.Server.Implementations/Channels/ChannelPostScanTask.cs +++ b/Emby.Server.Implementations/Channels/ChannelPostScanTask.cs @@ -11,7 +11,7 @@ using System.Threading; using System.Threading.Tasks; using MediaBrowser.Model.Extensions; -namespace MediaBrowser.Server.Implementations.Channels +namespace Emby.Server.Implementations.Channels { public class ChannelPostScanTask { diff --git a/MediaBrowser.Server.Implementations/Channels/RefreshChannelsScheduledTask.cs b/Emby.Server.Implementations/Channels/RefreshChannelsScheduledTask.cs similarity index 97% rename from MediaBrowser.Server.Implementations/Channels/RefreshChannelsScheduledTask.cs rename to Emby.Server.Implementations/Channels/RefreshChannelsScheduledTask.cs index 8bcb3cda9..d5ec86445 100644 --- a/MediaBrowser.Server.Implementations/Channels/RefreshChannelsScheduledTask.cs +++ b/Emby.Server.Implementations/Channels/RefreshChannelsScheduledTask.cs @@ -6,7 +6,7 @@ using System.Collections.Generic; using System.Threading.Tasks; using MediaBrowser.Model.Tasks; -namespace MediaBrowser.Server.Implementations.Channels +namespace Emby.Server.Implementations.Channels { class RefreshChannelsScheduledTask : IScheduledTask { diff --git a/Emby.Server.Implementations/Emby.Server.Implementations.csproj b/Emby.Server.Implementations/Emby.Server.Implementations.csproj new file mode 100644 index 000000000..317b1b9b8 --- /dev/null +++ b/Emby.Server.Implementations/Emby.Server.Implementations.csproj @@ -0,0 +1,74 @@ + + + + + 11.0 + Debug + AnyCPU + {D08B8079-08B3-48F2-83C4-E9CCCE48AFF1} + Library + Properties + Emby.Server.Implementations + Emby.Server.Implementations + en-US + 512 + {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Profile75 + v4.5 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + {9142eefa-7570-41e1-bfcc-468bb571af2f} + MediaBrowser.Common + + + {17e1f4e6-8abd-4fe5-9ecf-43d4b6087ba2} + MediaBrowser.Controller + + + {7eeeb4bb-f3e8-48fc-b4c5-70f0fff8329b} + MediaBrowser.Model + + + + + Properties\SharedVersion.cs + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/MediaBrowser.Server.Implementations/Intros/DefaultIntroProvider.cs b/Emby.Server.Implementations/Intros/DefaultIntroProvider.cs similarity index 99% rename from MediaBrowser.Server.Implementations/Intros/DefaultIntroProvider.cs rename to Emby.Server.Implementations/Intros/DefaultIntroProvider.cs index 72a63c547..180f6aba7 100644 --- a/MediaBrowser.Server.Implementations/Intros/DefaultIntroProvider.cs +++ b/Emby.Server.Implementations/Intros/DefaultIntroProvider.cs @@ -11,13 +11,11 @@ using System.Collections.Generic; using System.IO; using System.Linq; using System.Threading.Tasks; -using MediaBrowser.Common.IO; -using MediaBrowser.Controller.IO; using MediaBrowser.Model.IO; using MediaBrowser.Model.Extensions; using MediaBrowser.Model.Globalization; -namespace MediaBrowser.Server.Implementations.Intros +namespace Emby.Server.Implementations.Intros { public class DefaultIntroProvider : IIntroProvider { diff --git a/MediaBrowser.Server.Implementations/News/NewsService.cs b/Emby.Server.Implementations/News/NewsService.cs similarity index 95% rename from MediaBrowser.Server.Implementations/News/NewsService.cs rename to Emby.Server.Implementations/News/NewsService.cs index 0059ba421..80e799634 100644 --- a/MediaBrowser.Server.Implementations/News/NewsService.cs +++ b/Emby.Server.Implementations/News/NewsService.cs @@ -6,7 +6,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; -namespace MediaBrowser.Server.Implementations.News +namespace Emby.Server.Implementations.News { public class NewsService : INewsService { @@ -25,7 +25,7 @@ namespace MediaBrowser.Server.Implementations.News { return GetProductNewsInternal(query); } - catch (DirectoryNotFoundException) + catch (FileNotFoundException) { // No biggie return new QueryResult @@ -33,7 +33,7 @@ namespace MediaBrowser.Server.Implementations.News Items = new NewsItem[] { } }; } - catch (FileNotFoundException) + catch (IOException) { // No biggie return new QueryResult diff --git a/Emby.Server.Implementations/Properties/AssemblyInfo.cs b/Emby.Server.Implementations/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..28ffcbac6 --- /dev/null +++ b/Emby.Server.Implementations/Properties/AssemblyInfo.cs @@ -0,0 +1,28 @@ +using System.Resources; +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Emby.Server.Implementations")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Emby.Server.Implementations")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] +[assembly: NeutralResourcesLanguage("en")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] \ No newline at end of file diff --git a/MediaBrowser.Server.Implementations/Updates/InstallationManager.cs b/Emby.Server.Implementations/Updates/InstallationManager.cs similarity index 97% rename from MediaBrowser.Server.Implementations/Updates/InstallationManager.cs rename to Emby.Server.Implementations/Updates/InstallationManager.cs index c6930e487..943977a28 100644 --- a/MediaBrowser.Server.Implementations/Updates/InstallationManager.cs +++ b/Emby.Server.Implementations/Updates/InstallationManager.cs @@ -3,7 +3,6 @@ using System.Collections.Concurrent; using System.Collections.Generic; using System.IO; using System.Linq; -using System.Security.Cryptography; using System.Threading; using System.Threading.Tasks; using MediaBrowser.Common; @@ -14,13 +13,14 @@ using MediaBrowser.Common.Plugins; using MediaBrowser.Common.Progress; using MediaBrowser.Common.Security; using MediaBrowser.Common.Updates; +using MediaBrowser.Model.Cryptography; using MediaBrowser.Model.Events; using MediaBrowser.Model.IO; using MediaBrowser.Model.Logging; using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Updates; -namespace MediaBrowser.Server.Implementations.Updates +namespace Emby.Server.Implementations.Updates { /// /// Manages all install, uninstall and update operations (both plugins and system) @@ -115,7 +115,9 @@ namespace MediaBrowser.Server.Implementations.Updates /// The application host. private readonly IApplicationHost _applicationHost; - public InstallationManager(ILogger logger, IApplicationHost appHost, IApplicationPaths appPaths, IHttpClient httpClient, IJsonSerializer jsonSerializer, ISecurityManager securityManager, IConfigurationManager config, IFileSystem fileSystem) + private readonly ICryptographyProvider _cryptographyProvider; + + public InstallationManager(ILogger logger, IApplicationHost appHost, IApplicationPaths appPaths, IHttpClient httpClient, IJsonSerializer jsonSerializer, ISecurityManager securityManager, IConfigurationManager config, IFileSystem fileSystem, ICryptographyProvider cryptographyProvider) { if (logger == null) { @@ -132,6 +134,7 @@ namespace MediaBrowser.Server.Implementations.Updates _securityManager = securityManager; _config = config; _fileSystem = fileSystem; + _cryptographyProvider = cryptographyProvider; _logger = logger; } @@ -597,13 +600,12 @@ namespace MediaBrowser.Server.Implementations.Updates var packageChecksum = string.IsNullOrWhiteSpace(package.checksum) ? Guid.Empty : new Guid(package.checksum); if (packageChecksum != Guid.Empty) // support for legacy uploads for now { - using (var crypto = new MD5CryptoServiceProvider()) - using (var stream = new BufferedStream(_fileSystem.OpenRead(tempFile), 100000)) + using (var stream = _fileSystem.OpenRead(tempFile)) { - var check = Guid.Parse(BitConverter.ToString(crypto.ComputeHash(stream)).Replace("-", String.Empty)); + var check = Guid.Parse(BitConverter.ToString(_cryptographyProvider.GetMD5Bytes(stream)).Replace("-", String.Empty)); if (check != packageChecksum) { - throw new ApplicationException(string.Format("Download validation failed for {0}. Probably corrupted during transfer.", package.name)); + throw new Exception(string.Format("Download validation failed for {0}. Probably corrupted during transfer.", package.name)); } } } diff --git a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj index 15c2368e1..a2975c860 100644 --- a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj +++ b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj @@ -112,12 +112,6 @@ - - - - - - @@ -175,7 +169,6 @@ - @@ -273,6 +266,7 @@ + @@ -293,11 +287,8 @@ - - - diff --git a/MediaBrowser.Server.Startup.Common/ApplicationHost.cs b/MediaBrowser.Server.Startup.Common/ApplicationHost.cs index 2e86b6c3e..9484bca7d 100644 --- a/MediaBrowser.Server.Startup.Common/ApplicationHost.cs +++ b/MediaBrowser.Server.Startup.Common/ApplicationHost.cs @@ -50,7 +50,6 @@ using MediaBrowser.Providers.Manager; using MediaBrowser.Providers.Subtitles; using MediaBrowser.Server.Implementations; using MediaBrowser.Server.Implementations.Activity; -using MediaBrowser.Server.Implementations.Channels; using MediaBrowser.Server.Implementations.Collections; using MediaBrowser.Server.Implementations.Configuration; using MediaBrowser.Server.Implementations.Connect; @@ -108,6 +107,8 @@ using Emby.Dlna.ContentDirectory; using Emby.Dlna.Main; using Emby.Dlna.MediaReceiverRegistrar; using Emby.Dlna.Ssdp; +using Emby.Server.Implementations.Channels; +using Emby.Server.Implementations.Updates; using MediaBrowser.Model.Activity; using MediaBrowser.Model.Dlna; using MediaBrowser.Model.Globalization; @@ -123,7 +124,6 @@ using MediaBrowser.Server.Implementations.Archiving; using MediaBrowser.Server.Implementations.Reflection; using MediaBrowser.Server.Implementations.Serialization; using MediaBrowser.Server.Implementations.TextEncoding; -using MediaBrowser.Server.Implementations.Updates; using MediaBrowser.Server.Implementations.Xml; using OpenSubtitlesHandler; using ServiceStack; @@ -530,7 +530,7 @@ namespace MediaBrowser.Server.Startup.Common SecurityManager = new PluginSecurityManager(this, HttpClient, JsonSerializer, ApplicationPaths, LogManager, FileSystemManager); RegisterSingleInstance(SecurityManager); - InstallationManager = new InstallationManager(LogManager.GetLogger("InstallationManager"), this, ApplicationPaths, HttpClient, JsonSerializer, SecurityManager, ConfigurationManager, FileSystemManager); + InstallationManager = new InstallationManager(LogManager.GetLogger("InstallationManager"), this, ApplicationPaths, HttpClient, JsonSerializer, SecurityManager, ConfigurationManager, FileSystemManager, CryptographyProvider); RegisterSingleInstance(InstallationManager); ZipClient = new ZipClient(FileSystemManager); @@ -626,7 +626,7 @@ namespace MediaBrowser.Server.Startup.Common DeviceManager = new DeviceManager(new DeviceRepository(ApplicationPaths, JsonSerializer, LogManager.GetLogger("DeviceManager"), FileSystemManager), UserManager, FileSystemManager, LibraryMonitor, ServerConfigurationManager, LogManager.GetLogger("DeviceManager"), NetworkManager); RegisterSingleInstance(DeviceManager); - var newsService = new Implementations.News.NewsService(ApplicationPaths, JsonSerializer); + var newsService = new Emby.Server.Implementations.News.NewsService(ApplicationPaths, JsonSerializer); RegisterSingleInstance(newsService); var fileOrganizationService = new FileOrganizationService(TaskManager, FileOrganizationRepository, LogManager.GetLogger("FileOrganizationService"), LibraryMonitor, LibraryManager, ServerConfigurationManager, FileSystemManager, ProviderManager); @@ -1160,9 +1160,12 @@ namespace MediaBrowser.Server.Startup.Common // Common implementations list.Add(typeof(TaskManager).Assembly); - // Server implementations + // MediaBrowser.Server implementations list.Add(typeof(ServerApplicationPaths).Assembly); + // Emby.Server implementations + list.Add(typeof(InstallationManager).Assembly); + // MediaEncoding list.Add(typeof(MediaEncoder).Assembly); diff --git a/MediaBrowser.Server.Startup.Common/MediaBrowser.Server.Startup.Common.csproj b/MediaBrowser.Server.Startup.Common/MediaBrowser.Server.Startup.Common.csproj index 32d5d5f8e..2a5653725 100644 --- a/MediaBrowser.Server.Startup.Common/MediaBrowser.Server.Startup.Common.csproj +++ b/MediaBrowser.Server.Startup.Common/MediaBrowser.Server.Startup.Common.csproj @@ -102,6 +102,10 @@ {89ab4548-770d-41fd-a891-8daff44f452c} Emby.Photos + + {d08b8079-08b3-48f2-83c4-e9ccce48aff1} + Emby.Server.Implementations + {4fd51ac5-2c16-4308-a993-c3a84f3b4582} MediaBrowser.Api diff --git a/MediaBrowser.sln b/MediaBrowser.sln index bf226a699..cec9d68c8 100644 --- a/MediaBrowser.sln +++ b/MediaBrowser.sln @@ -75,6 +75,8 @@ Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Emby.Dlna", "Emby.Dlna\Emby EndProject Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "RSSDP", "RSSDP\RSSDP.xproj", "{C227ADB7-E256-4E70-A8B9-22B9E0CF4F55}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Emby.Server.Implementations", "Emby.Server.Implementations\Emby.Server.Implementations.csproj", "{D08B8079-08B3-48F2-83C4-E9CCCE48AFF1}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -659,6 +661,36 @@ Global {C227ADB7-E256-4E70-A8B9-22B9E0CF4F55}.Release|x64.Build.0 = Release|Any CPU {C227ADB7-E256-4E70-A8B9-22B9E0CF4F55}.Release|x86.ActiveCfg = Release|Any CPU {C227ADB7-E256-4E70-A8B9-22B9E0CF4F55}.Release|x86.Build.0 = Release|Any CPU + {D08B8079-08B3-48F2-83C4-E9CCCE48AFF1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D08B8079-08B3-48F2-83C4-E9CCCE48AFF1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D08B8079-08B3-48F2-83C4-E9CCCE48AFF1}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {D08B8079-08B3-48F2-83C4-E9CCCE48AFF1}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {D08B8079-08B3-48F2-83C4-E9CCCE48AFF1}.Debug|Win32.ActiveCfg = Debug|Any CPU + {D08B8079-08B3-48F2-83C4-E9CCCE48AFF1}.Debug|Win32.Build.0 = Debug|Any CPU + {D08B8079-08B3-48F2-83C4-E9CCCE48AFF1}.Debug|x64.ActiveCfg = Debug|Any CPU + {D08B8079-08B3-48F2-83C4-E9CCCE48AFF1}.Debug|x64.Build.0 = Debug|Any CPU + {D08B8079-08B3-48F2-83C4-E9CCCE48AFF1}.Debug|x86.ActiveCfg = Debug|Any CPU + {D08B8079-08B3-48F2-83C4-E9CCCE48AFF1}.Debug|x86.Build.0 = Debug|Any CPU + {D08B8079-08B3-48F2-83C4-E9CCCE48AFF1}.Release Mono|Any CPU.ActiveCfg = Release|Any CPU + {D08B8079-08B3-48F2-83C4-E9CCCE48AFF1}.Release Mono|Any CPU.Build.0 = Release|Any CPU + {D08B8079-08B3-48F2-83C4-E9CCCE48AFF1}.Release Mono|Mixed Platforms.ActiveCfg = Release|Any CPU + {D08B8079-08B3-48F2-83C4-E9CCCE48AFF1}.Release Mono|Mixed Platforms.Build.0 = Release|Any CPU + {D08B8079-08B3-48F2-83C4-E9CCCE48AFF1}.Release Mono|Win32.ActiveCfg = Release|Any CPU + {D08B8079-08B3-48F2-83C4-E9CCCE48AFF1}.Release Mono|Win32.Build.0 = Release|Any CPU + {D08B8079-08B3-48F2-83C4-E9CCCE48AFF1}.Release Mono|x64.ActiveCfg = Release|Any CPU + {D08B8079-08B3-48F2-83C4-E9CCCE48AFF1}.Release Mono|x64.Build.0 = Release|Any CPU + {D08B8079-08B3-48F2-83C4-E9CCCE48AFF1}.Release Mono|x86.ActiveCfg = Release|Any CPU + {D08B8079-08B3-48F2-83C4-E9CCCE48AFF1}.Release Mono|x86.Build.0 = Release|Any CPU + {D08B8079-08B3-48F2-83C4-E9CCCE48AFF1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D08B8079-08B3-48F2-83C4-E9CCCE48AFF1}.Release|Any CPU.Build.0 = Release|Any CPU + {D08B8079-08B3-48F2-83C4-E9CCCE48AFF1}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {D08B8079-08B3-48F2-83C4-E9CCCE48AFF1}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {D08B8079-08B3-48F2-83C4-E9CCCE48AFF1}.Release|Win32.ActiveCfg = Release|Any CPU + {D08B8079-08B3-48F2-83C4-E9CCCE48AFF1}.Release|Win32.Build.0 = Release|Any CPU + {D08B8079-08B3-48F2-83C4-E9CCCE48AFF1}.Release|x64.ActiveCfg = Release|Any CPU + {D08B8079-08B3-48F2-83C4-E9CCCE48AFF1}.Release|x64.Build.0 = Release|Any CPU + {D08B8079-08B3-48F2-83C4-E9CCCE48AFF1}.Release|x86.ActiveCfg = Release|Any CPU + {D08B8079-08B3-48F2-83C4-E9CCCE48AFF1}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE From 78f9364b034d73ec80836e2c3a3b62714c8a3bdd Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 2 Nov 2016 16:58:51 -0400 Subject: [PATCH 03/17] move classes to portable server project --- .../Branding/BrandingConfigurationFactory.cs | 2 +- .../Emby.Server.Implementations.csproj | 6 ++++++ .../ScheduledTasks/ChapterImagesTask.cs | 13 ++----------- .../ScheduledTasks/PeopleValidationTask.cs | 2 +- .../ScheduledTasks/PluginUpdateTask.cs | 2 +- .../ScheduledTasks/RefreshIntrosTask.cs | 2 +- .../ScheduledTasks/SystemUpdateTask.cs | 2 +- .../MediaBrowser.Server.Implementations.csproj | 8 +------- 8 files changed, 14 insertions(+), 23 deletions(-) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/Branding/BrandingConfigurationFactory.cs (90%) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/ScheduledTasks/ChapterImagesTask.cs (92%) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/ScheduledTasks/PeopleValidationTask.cs (97%) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/ScheduledTasks/PluginUpdateTask.cs (98%) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/ScheduledTasks/RefreshIntrosTask.cs (98%) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/ScheduledTasks/SystemUpdateTask.cs (98%) diff --git a/MediaBrowser.Server.Implementations/Branding/BrandingConfigurationFactory.cs b/Emby.Server.Implementations/Branding/BrandingConfigurationFactory.cs similarity index 90% rename from MediaBrowser.Server.Implementations/Branding/BrandingConfigurationFactory.cs rename to Emby.Server.Implementations/Branding/BrandingConfigurationFactory.cs index d6cd3424b..a29f55f16 100644 --- a/MediaBrowser.Server.Implementations/Branding/BrandingConfigurationFactory.cs +++ b/Emby.Server.Implementations/Branding/BrandingConfigurationFactory.cs @@ -2,7 +2,7 @@ using MediaBrowser.Model.Branding; using System.Collections.Generic; -namespace MediaBrowser.Server.Implementations.Branding +namespace Emby.Server.Implementations.Branding { public class BrandingConfigurationFactory : IConfigurationFactory { diff --git a/Emby.Server.Implementations/Emby.Server.Implementations.csproj b/Emby.Server.Implementations/Emby.Server.Implementations.csproj index 317b1b9b8..85dfda0a3 100644 --- a/Emby.Server.Implementations/Emby.Server.Implementations.csproj +++ b/Emby.Server.Implementations/Emby.Server.Implementations.csproj @@ -52,6 +52,7 @@ Properties\SharedVersion.cs + @@ -61,6 +62,11 @@ + + + + + diff --git a/MediaBrowser.Server.Implementations/ScheduledTasks/ChapterImagesTask.cs b/Emby.Server.Implementations/ScheduledTasks/ChapterImagesTask.cs similarity index 92% rename from MediaBrowser.Server.Implementations/ScheduledTasks/ChapterImagesTask.cs rename to Emby.Server.Implementations/ScheduledTasks/ChapterImagesTask.cs index 63941f3b6..d75815847 100644 --- a/MediaBrowser.Server.Implementations/ScheduledTasks/ChapterImagesTask.cs +++ b/Emby.Server.Implementations/ScheduledTasks/ChapterImagesTask.cs @@ -16,7 +16,7 @@ using MediaBrowser.Model.IO; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Tasks; -namespace MediaBrowser.Server.Implementations.ScheduledTasks +namespace Emby.Server.Implementations.ScheduledTasks { /// /// Class ChapterImagesTask @@ -32,12 +32,6 @@ namespace MediaBrowser.Server.Implementations.ScheduledTasks /// private readonly ILibraryManager _libraryManager; - /// - /// The current new item timer - /// - /// The new item timer. - private Timer NewItemTimer { get; set; } - private readonly IItemRepository _itemRepo; private readonly IApplicationPaths _appPaths; @@ -48,9 +42,6 @@ namespace MediaBrowser.Server.Implementations.ScheduledTasks /// /// Initializes a new instance of the class. /// - /// The log manager. - /// The library manager. - /// The item repo. public ChapterImagesTask(ILogManager logManager, ILibraryManager libraryManager, IItemRepository itemRepo, IApplicationPaths appPaths, IEncodingManager encodingManager, IFileSystem fileSystem) { _logger = logManager.GetLogger(GetType().Name); @@ -115,7 +106,7 @@ namespace MediaBrowser.Server.Implementations.ScheduledTasks { previouslyFailedImages = new List(); } - catch (DirectoryNotFoundException) + catch (IOException) { previouslyFailedImages = new List(); } diff --git a/MediaBrowser.Server.Implementations/ScheduledTasks/PeopleValidationTask.cs b/Emby.Server.Implementations/ScheduledTasks/PeopleValidationTask.cs similarity index 97% rename from MediaBrowser.Server.Implementations/ScheduledTasks/PeopleValidationTask.cs rename to Emby.Server.Implementations/ScheduledTasks/PeopleValidationTask.cs index f90e61902..51122226b 100644 --- a/MediaBrowser.Server.Implementations/ScheduledTasks/PeopleValidationTask.cs +++ b/Emby.Server.Implementations/ScheduledTasks/PeopleValidationTask.cs @@ -6,7 +6,7 @@ using System.Threading.Tasks; using MediaBrowser.Controller; using MediaBrowser.Model.Tasks; -namespace MediaBrowser.Server.Implementations.ScheduledTasks +namespace Emby.Server.Implementations.ScheduledTasks { /// /// Class PeopleValidationTask diff --git a/MediaBrowser.Server.Implementations/ScheduledTasks/PluginUpdateTask.cs b/Emby.Server.Implementations/ScheduledTasks/PluginUpdateTask.cs similarity index 98% rename from MediaBrowser.Server.Implementations/ScheduledTasks/PluginUpdateTask.cs rename to Emby.Server.Implementations/ScheduledTasks/PluginUpdateTask.cs index 1d81ec043..e619b6864 100644 --- a/MediaBrowser.Server.Implementations/ScheduledTasks/PluginUpdateTask.cs +++ b/Emby.Server.Implementations/ScheduledTasks/PluginUpdateTask.cs @@ -10,7 +10,7 @@ using System.Threading; using System.Threading.Tasks; using MediaBrowser.Model.Tasks; -namespace MediaBrowser.Server.Implementations.ScheduledTasks +namespace Emby.Server.Implementations.ScheduledTasks { /// /// Plugin Update Task diff --git a/MediaBrowser.Server.Implementations/ScheduledTasks/RefreshIntrosTask.cs b/Emby.Server.Implementations/ScheduledTasks/RefreshIntrosTask.cs similarity index 98% rename from MediaBrowser.Server.Implementations/ScheduledTasks/RefreshIntrosTask.cs rename to Emby.Server.Implementations/ScheduledTasks/RefreshIntrosTask.cs index f10dbcfe7..749233fa1 100644 --- a/MediaBrowser.Server.Implementations/ScheduledTasks/RefreshIntrosTask.cs +++ b/Emby.Server.Implementations/ScheduledTasks/RefreshIntrosTask.cs @@ -8,7 +8,7 @@ using MediaBrowser.Common.IO; using MediaBrowser.Controller.IO; using MediaBrowser.Model.IO; -namespace MediaBrowser.Server.Implementations.ScheduledTasks +namespace Emby.Server.Implementations.ScheduledTasks { /// /// Class RefreshIntrosTask diff --git a/MediaBrowser.Server.Implementations/ScheduledTasks/SystemUpdateTask.cs b/Emby.Server.Implementations/ScheduledTasks/SystemUpdateTask.cs similarity index 98% rename from MediaBrowser.Server.Implementations/ScheduledTasks/SystemUpdateTask.cs rename to Emby.Server.Implementations/ScheduledTasks/SystemUpdateTask.cs index e44eacf3d..28fd8b68c 100644 --- a/MediaBrowser.Server.Implementations/ScheduledTasks/SystemUpdateTask.cs +++ b/Emby.Server.Implementations/ScheduledTasks/SystemUpdateTask.cs @@ -7,7 +7,7 @@ using System.Threading; using System.Threading.Tasks; using MediaBrowser.Model.Tasks; -namespace MediaBrowser.Server.Implementations.ScheduledTasks +namespace Emby.Server.Implementations.ScheduledTasks { /// /// Plugin Update Task diff --git a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj index a2975c860..6cc3b8a47 100644 --- a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj +++ b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj @@ -111,7 +111,6 @@ - @@ -274,6 +273,7 @@ + @@ -302,12 +302,6 @@ - - - - - - From 41bef184d1036b02baec00734f3edd8abbebf5fe Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 2 Nov 2016 17:05:17 -0400 Subject: [PATCH 04/17] move classes to portable server project --- .../Collections/CollectionManager.cs | 4 +--- .../Emby.Server.Implementations.csproj | 3 +++ .../Playlists/PlaylistManager.cs | 9 +++++---- .../MediaBrowser.Server.Implementations.csproj | 4 +--- MediaBrowser.Server.Startup.Common/ApplicationHost.cs | 2 ++ 5 files changed, 12 insertions(+), 10 deletions(-) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/Collections/CollectionManager.cs (98%) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/Playlists/PlaylistManager.cs (95%) diff --git a/MediaBrowser.Server.Implementations/Collections/CollectionManager.cs b/Emby.Server.Implementations/Collections/CollectionManager.cs similarity index 98% rename from MediaBrowser.Server.Implementations/Collections/CollectionManager.cs rename to Emby.Server.Implementations/Collections/CollectionManager.cs index f074fd812..d0bd76c35 100644 --- a/MediaBrowser.Server.Implementations/Collections/CollectionManager.cs +++ b/Emby.Server.Implementations/Collections/CollectionManager.cs @@ -11,11 +11,9 @@ using System.IO; using System.Linq; using System.Threading; using System.Threading.Tasks; -using MediaBrowser.Common.IO; -using MediaBrowser.Controller.IO; using MediaBrowser.Model.IO; -namespace MediaBrowser.Server.Implementations.Collections +namespace Emby.Server.Implementations.Collections { public class CollectionManager : ICollectionManager { diff --git a/Emby.Server.Implementations/Emby.Server.Implementations.csproj b/Emby.Server.Implementations/Emby.Server.Implementations.csproj index 85dfda0a3..af093d53f 100644 --- a/Emby.Server.Implementations/Emby.Server.Implementations.csproj +++ b/Emby.Server.Implementations/Emby.Server.Implementations.csproj @@ -59,8 +59,10 @@ + + @@ -69,6 +71,7 @@ + - - {9142eefa-7570-41e1-bfcc-468bb571af2f} - MediaBrowser.Common - - - {17e1f4e6-8abd-4fe5-9ecf-43d4b6087ba2} - MediaBrowser.Controller - - - {7eeeb4bb-f3e8-48fc-b4c5-70f0fff8329b} - MediaBrowser.Model - + - - Properties\SharedVersion.cs - @@ -169,22 +156,23 @@ - - - ..\packages\MediaBrowser.Naming.1.0.0.57\lib\portable-net45+sl4+wp71+win8+wpa81\MediaBrowser.Naming.dll - True - - - ..\packages\Patterns.Logging.1.0.0.4\lib\portable-net45+dnxcore50+sl4+wp71+win8+wpa81\Patterns.Logging.dll - True - - - - - + + + {9142eefa-7570-41e1-bfcc-468bb571af2f} + MediaBrowser.Common + + + {17e1f4e6-8abd-4fe5-9ecf-43d4b6087ba2} + MediaBrowser.Controller + + + {7eeeb4bb-f3e8-48fc-b4c5-70f0fff8329b} + MediaBrowser.Model + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {9142eefa-7570-41e1-bfcc-468bb571af2f} + MediaBrowser.Common + + + {7eeeb4bb-f3e8-48fc-b4c5-70f0fff8329b} + MediaBrowser.Model + + + + + \ No newline at end of file diff --git a/Mono.Nat/Mono.Nat.xproj b/Mono.Nat/Mono.Nat.xproj deleted file mode 100644 index f460bec58..000000000 --- a/Mono.Nat/Mono.Nat.xproj +++ /dev/null @@ -1,23 +0,0 @@ - - - - 14.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - - 0a82260b-4c22-4fd2-869a-e510044e3502 - Mono.Nat - .\obj - .\bin\ - v4.5.2 - - - 2.0 - - - - - - - \ No newline at end of file diff --git a/Mono.Nat/Properties/AssemblyInfo.cs b/Mono.Nat/Properties/AssemblyInfo.cs index f8fe5c3ea..2ad8adf6f 100644 --- a/Mono.Nat/Properties/AssemblyInfo.cs +++ b/Mono.Nat/Properties/AssemblyInfo.cs @@ -1,19 +1,30 @@ -using System.Reflection; +using System.Resources; +using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; -// General Information about an assembly is controlled through the following +// General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. +[assembly: AssemblyTitle("Mono.Nat")] +[assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("Mono.Nat")] +[assembly: AssemblyCopyright("Copyright © 2016")] [assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] +[assembly: NeutralResourcesLanguage("en")] -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("0a82260b-4c22-4fd2-869a-e510044e3502")] +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Mono.Nat/project.json b/Mono.Nat/project.json index 259fca489..7d5dc4874 100644 --- a/Mono.Nat/project.json +++ b/Mono.Nat/project.json @@ -1,39 +1,11 @@ -{ - "version": "1.0.0-*", - +{ + "supports": {}, "dependencies": { - + "Microsoft.NETCore.Portable.Compatibility": "1.0.1", + "NETStandard.Library": "1.6.0", + "System.Net.NetworkInformation": "4.1.0" }, - "frameworks": { - "net46": { - "frameworkAssemblies": { - "System.Collections": "4.0.0.0", - "System.Net": "4.0.0.0", - "System.Runtime": "4.0.0.0", - "System.Threading": "4.0.0.0", - "System.Threading.Tasks": "4.0.0.0", - "System.Xml": "4.0.0.0" - }, - "dependencies": { - "MediaBrowser.Common": { - "target": "project" - }, - "MediaBrowser.Model": { - "target": "project" - } } - }, - "netstandard1.6": { - "imports": "dnxcore50", - "dependencies": { - "NETStandard.Library": "1.6.0", - "System.Net.NetworkInformation": "4.1.0", - "MediaBrowser.Model": { - "target": "project" - }, - "MediaBrowser.Common": { - "target": "project" - } } - } + "netstandard1.3": {} } -} +} \ No newline at end of file From 13dcb5abb1682940a45e83e5a9f7b71289231986 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Thu, 3 Nov 2016 17:04:55 -0400 Subject: [PATCH 11/17] fix projects --- .../Emby.Server.Implementations.csproj | 7 +- Emby.Server.Implementations/project.json | 10 +-- .../MediaBrowser.Common.csproj | 7 +- .../MediaBrowser.Common.nuget.targets | 6 ++ MediaBrowser.Common/project.json | 25 ++++-- .../MediaBrowser.Controller.csproj | 7 +- .../MediaBrowser.Controller.nuget.targets | 6 ++ MediaBrowser.Controller/project.json | 25 ++++-- MediaBrowser.Model/MediaBrowser.Model.csproj | 7 +- .../MediaBrowser.Model.nuget.targets | 6 ++ MediaBrowser.Model/project.json | 25 ++++-- ...MediaBrowser.Server.Implementations.csproj | 18 ++-- .../packages.config | 6 +- .../MediaBrowser.Server.Mono.csproj | 4 +- MediaBrowser.Server.Mono/packages.config | 2 +- .../MediaBrowser.Server.Startup.Common.csproj | 4 +- .../packages.config | 2 +- .../MediaBrowser.ServerApplication.csproj | 4 +- .../packages.config | 2 +- MediaBrowser.sln | 62 ++++++------- Mono.Nat/Mono.Nat.csproj | 89 ------------------- Mono.Nat/Mono.Nat.xproj | 23 +++++ Mono.Nat/Properties/AssemblyInfo.cs | 26 ++---- Mono.Nat/project.json | 44 +++++++-- 24 files changed, 200 insertions(+), 217 deletions(-) create mode 100644 MediaBrowser.Common/MediaBrowser.Common.nuget.targets create mode 100644 MediaBrowser.Controller/MediaBrowser.Controller.nuget.targets create mode 100644 MediaBrowser.Model/MediaBrowser.Model.nuget.targets delete mode 100644 Mono.Nat/Mono.Nat.csproj create mode 100644 Mono.Nat/Mono.Nat.xproj diff --git a/Emby.Server.Implementations/Emby.Server.Implementations.csproj b/Emby.Server.Implementations/Emby.Server.Implementations.csproj index 5c7136eab..4a32d00a2 100644 --- a/Emby.Server.Implementations/Emby.Server.Implementations.csproj +++ b/Emby.Server.Implementations/Emby.Server.Implementations.csproj @@ -2,7 +2,7 @@ - 14.0 + 11.0 Debug AnyCPU {E383961B-9356-4D5D-8233-9A1079D03055} @@ -13,9 +13,8 @@ en-US 512 {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - - - v5.0 + Profile7 + v4.5 true diff --git a/Emby.Server.Implementations/project.json b/Emby.Server.Implementations/project.json index 1e12b0074..b1373cd45 100644 --- a/Emby.Server.Implementations/project.json +++ b/Emby.Server.Implementations/project.json @@ -1,12 +1,10 @@ -{ +{ "supports": {}, "dependencies": { - "MediaBrowser.Naming": "1.0.0.58", - "Microsoft.NETCore.Portable.Compatibility": "1.0.1", - "NETStandard.Library": "1.6.0", - "Patterns.Logging": "1.0.0.5" + "MediaBrowser.Naming": "1.0.0.59", + "Patterns.Logging": "1.0.0.6" }, "frameworks": { - "netstandard1.3": {} + ".NETPortable,Version=v4.5,Profile=Profile7": {} } } \ No newline at end of file diff --git a/MediaBrowser.Common/MediaBrowser.Common.csproj b/MediaBrowser.Common/MediaBrowser.Common.csproj index 0164a7829..9e212219d 100644 --- a/MediaBrowser.Common/MediaBrowser.Common.csproj +++ b/MediaBrowser.Common/MediaBrowser.Common.csproj @@ -14,10 +14,9 @@ 10.0.0 2.0 {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - - - v5.0 - 14.0 + Profile7 + v4.5 + 11.0 true diff --git a/MediaBrowser.Common/MediaBrowser.Common.nuget.targets b/MediaBrowser.Common/MediaBrowser.Common.nuget.targets new file mode 100644 index 000000000..e69ce0e64 --- /dev/null +++ b/MediaBrowser.Common/MediaBrowser.Common.nuget.targets @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/MediaBrowser.Common/project.json b/MediaBrowser.Common/project.json index 19f6c6a99..fbbe9eaf3 100644 --- a/MediaBrowser.Common/project.json +++ b/MediaBrowser.Common/project.json @@ -1,10 +1,17 @@ -{ - "supports": {}, - "dependencies": { - "Microsoft.NETCore.Portable.Compatibility": "1.0.1", - "NETStandard.Library": "1.6.0" - }, - "frameworks": { - "netstandard1.0": {} - } +{ + "frameworks":{ + "netstandard1.6":{ + "dependencies":{ + "NETStandard.Library":"1.6.0", + } + }, + ".NETPortable,Version=v4.5,Profile=Profile7":{ + "buildOptions": { + "define": [ ] + }, + "frameworkAssemblies":{ + + } + } + } } \ No newline at end of file diff --git a/MediaBrowser.Controller/MediaBrowser.Controller.csproj b/MediaBrowser.Controller/MediaBrowser.Controller.csproj index 5c48adfe7..6801a4639 100644 --- a/MediaBrowser.Controller/MediaBrowser.Controller.csproj +++ b/MediaBrowser.Controller/MediaBrowser.Controller.csproj @@ -12,10 +12,9 @@ 512 ..\ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - - - v5.0 - 14.0 + Profile7 + v4.5 + 11.0 true diff --git a/MediaBrowser.Controller/MediaBrowser.Controller.nuget.targets b/MediaBrowser.Controller/MediaBrowser.Controller.nuget.targets new file mode 100644 index 000000000..e69ce0e64 --- /dev/null +++ b/MediaBrowser.Controller/MediaBrowser.Controller.nuget.targets @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/MediaBrowser.Controller/project.json b/MediaBrowser.Controller/project.json index 7af946da1..fbbe9eaf3 100644 --- a/MediaBrowser.Controller/project.json +++ b/MediaBrowser.Controller/project.json @@ -1,10 +1,17 @@ -{ - "supports": {}, - "dependencies": { - "Microsoft.NETCore.Portable.Compatibility": "1.0.1", - "NETStandard.Library": "1.6.0" - }, - "frameworks": { - "netstandard1.1": {} - } +{ + "frameworks":{ + "netstandard1.6":{ + "dependencies":{ + "NETStandard.Library":"1.6.0", + } + }, + ".NETPortable,Version=v4.5,Profile=Profile7":{ + "buildOptions": { + "define": [ ] + }, + "frameworkAssemblies":{ + + } + } + } } \ No newline at end of file diff --git a/MediaBrowser.Model/MediaBrowser.Model.csproj b/MediaBrowser.Model/MediaBrowser.Model.csproj index 1dc2b52b0..5999f02db 100644 --- a/MediaBrowser.Model/MediaBrowser.Model.csproj +++ b/MediaBrowser.Model/MediaBrowser.Model.csproj @@ -2,7 +2,7 @@ - 14.0 + 11.0 Debug AnyCPU {7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B} @@ -13,9 +13,8 @@ en-US 512 {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - - - v5.0 + Profile7 + v4.5 true diff --git a/MediaBrowser.Model/MediaBrowser.Model.nuget.targets b/MediaBrowser.Model/MediaBrowser.Model.nuget.targets new file mode 100644 index 000000000..e69ce0e64 --- /dev/null +++ b/MediaBrowser.Model/MediaBrowser.Model.nuget.targets @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/MediaBrowser.Model/project.json b/MediaBrowser.Model/project.json index 19f6c6a99..fbbe9eaf3 100644 --- a/MediaBrowser.Model/project.json +++ b/MediaBrowser.Model/project.json @@ -1,10 +1,17 @@ -{ - "supports": {}, - "dependencies": { - "Microsoft.NETCore.Portable.Compatibility": "1.0.1", - "NETStandard.Library": "1.6.0" - }, - "frameworks": { - "netstandard1.0": {} - } +{ + "frameworks":{ + "netstandard1.6":{ + "dependencies":{ + "NETStandard.Library":"1.6.0", + } + }, + ".NETPortable,Version=v4.5,Profile=Profile7":{ + "buildOptions": { + "define": [ ] + }, + "frameworkAssemblies":{ + + } + } + } } \ No newline at end of file diff --git a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj index dba48c78b..88e9478df 100644 --- a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj +++ b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj @@ -46,23 +46,27 @@ ..\ThirdParty\emby\Emby.Common.Implementations.dll - ..\packages\Emby.XmlTv.1.0.0.59\lib\netstandard1.0\Emby.XmlTv.dll + ..\packages\Emby.XmlTv.1.0.0.62\lib\portable-net45+win8\Emby.XmlTv.dll True ..\packages\ini-parser.2.3.0\lib\net20\INIFileParser.dll True - - ..\packages\MediaBrowser.Naming.1.0.0.58\lib\netstandard1.0\MediaBrowser.Naming.dll + + ..\packages\MediaBrowser.Naming.1.0.0.59\lib\portable-net45+win8\MediaBrowser.Naming.dll True ..\packages\Microsoft.IO.RecyclableMemoryStream.1.1.0.0\lib\net45\Microsoft.IO.RecyclableMemoryStream.dll True - - ..\packages\Patterns.Logging.1.0.0.5\lib\netstandard1.0\Patterns.Logging.dll + + False + ..\ThirdParty\emby\Mono.Nat.dll + + + ..\packages\Patterns.Logging.1.0.0.6\lib\portable-net45+win8\Patterns.Logging.dll True @@ -281,10 +285,6 @@ {442b5058-dcaf-4263-bb6a-f21e31120a1b} MediaBrowser.Providers - - {e9db21d4-05e8-4883-b161-c55071166579} - Mono.Nat - diff --git a/MediaBrowser.Server.Implementations/packages.config b/MediaBrowser.Server.Implementations/packages.config index e1c681a25..cdfb48abe 100644 --- a/MediaBrowser.Server.Implementations/packages.config +++ b/MediaBrowser.Server.Implementations/packages.config @@ -1,10 +1,10 @@  - + - + - + \ No newline at end of file diff --git a/MediaBrowser.Server.Mono/MediaBrowser.Server.Mono.csproj b/MediaBrowser.Server.Mono/MediaBrowser.Server.Mono.csproj index 8b7efe22b..fcaeb035d 100644 --- a/MediaBrowser.Server.Mono/MediaBrowser.Server.Mono.csproj +++ b/MediaBrowser.Server.Mono/MediaBrowser.Server.Mono.csproj @@ -69,8 +69,8 @@ ..\packages\NLog.4.4.0-betaV15\lib\net45\NLog.dll True - - ..\packages\Patterns.Logging.1.0.0.5\lib\netstandard1.0\Patterns.Logging.dll + + ..\packages\Patterns.Logging.1.0.0.6\lib\portable-net45+win8\Patterns.Logging.dll True diff --git a/MediaBrowser.Server.Mono/packages.config b/MediaBrowser.Server.Mono/packages.config index 93f827a84..8d1ebc141 100644 --- a/MediaBrowser.Server.Mono/packages.config +++ b/MediaBrowser.Server.Mono/packages.config @@ -2,5 +2,5 @@ - + \ No newline at end of file diff --git a/MediaBrowser.Server.Startup.Common/MediaBrowser.Server.Startup.Common.csproj b/MediaBrowser.Server.Startup.Common/MediaBrowser.Server.Startup.Common.csproj index 909d944fd..c64f065d7 100644 --- a/MediaBrowser.Server.Startup.Common/MediaBrowser.Server.Startup.Common.csproj +++ b/MediaBrowser.Server.Startup.Common/MediaBrowser.Server.Startup.Common.csproj @@ -42,8 +42,8 @@ False ..\packages\Mono.Posix.4.0.0.0\lib\net40\Mono.Posix.dll - - ..\packages\Patterns.Logging.1.0.0.5\lib\netstandard1.0\Patterns.Logging.dll + + ..\packages\Patterns.Logging.1.0.0.6\lib\portable-net45+win8\Patterns.Logging.dll True diff --git a/MediaBrowser.Server.Startup.Common/packages.config b/MediaBrowser.Server.Startup.Common/packages.config index 503b0b826..aa11730c7 100644 --- a/MediaBrowser.Server.Startup.Common/packages.config +++ b/MediaBrowser.Server.Startup.Common/packages.config @@ -1,6 +1,6 @@  - + \ No newline at end of file diff --git a/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj b/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj index 1d0c2302f..a306274e1 100644 --- a/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj +++ b/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj @@ -75,8 +75,8 @@ ..\packages\NLog.4.4.0-betaV15\lib\net45\NLog.dll True - - ..\packages\Patterns.Logging.1.0.0.5\lib\netstandard1.0\Patterns.Logging.dll + + ..\packages\Patterns.Logging.1.0.0.6\lib\portable-net45+win8\Patterns.Logging.dll True diff --git a/MediaBrowser.ServerApplication/packages.config b/MediaBrowser.ServerApplication/packages.config index b971a2d9a..8dbcaa2b9 100644 --- a/MediaBrowser.ServerApplication/packages.config +++ b/MediaBrowser.ServerApplication/packages.config @@ -2,6 +2,6 @@ - + \ No newline at end of file diff --git a/MediaBrowser.sln b/MediaBrowser.sln index daa5d417c..34c50de38 100644 --- a/MediaBrowser.sln +++ b/MediaBrowser.sln @@ -70,7 +70,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Emby.Server.Implementations EndProject Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Emby.Dlna", "Emby.Dlna\Emby.Dlna.xproj", "{F40E364D-01D9-4BBF-B82C-5D6C55E0A1F5}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mono.Nat", "Mono.Nat\Mono.Nat.csproj", "{E9DB21D4-05E8-4883-B161-C55071166579}" +Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Mono.Nat", "Mono.Nat\Mono.Nat.xproj", "{4ACAB6A2-AC9A-4B50-BAEC-1FE4A1F3B8BC}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -656,36 +656,36 @@ Global {F40E364D-01D9-4BBF-B82C-5D6C55E0A1F5}.Release|x64.Build.0 = Release|Any CPU {F40E364D-01D9-4BBF-B82C-5D6C55E0A1F5}.Release|x86.ActiveCfg = Release|Any CPU {F40E364D-01D9-4BBF-B82C-5D6C55E0A1F5}.Release|x86.Build.0 = Release|Any CPU - {E9DB21D4-05E8-4883-B161-C55071166579}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E9DB21D4-05E8-4883-B161-C55071166579}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E9DB21D4-05E8-4883-B161-C55071166579}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {E9DB21D4-05E8-4883-B161-C55071166579}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {E9DB21D4-05E8-4883-B161-C55071166579}.Debug|Win32.ActiveCfg = Debug|Any CPU - {E9DB21D4-05E8-4883-B161-C55071166579}.Debug|Win32.Build.0 = Debug|Any CPU - {E9DB21D4-05E8-4883-B161-C55071166579}.Debug|x64.ActiveCfg = Debug|Any CPU - {E9DB21D4-05E8-4883-B161-C55071166579}.Debug|x64.Build.0 = Debug|Any CPU - {E9DB21D4-05E8-4883-B161-C55071166579}.Debug|x86.ActiveCfg = Debug|Any CPU - {E9DB21D4-05E8-4883-B161-C55071166579}.Debug|x86.Build.0 = Debug|Any CPU - {E9DB21D4-05E8-4883-B161-C55071166579}.Release Mono|Any CPU.ActiveCfg = Release|Any CPU - {E9DB21D4-05E8-4883-B161-C55071166579}.Release Mono|Any CPU.Build.0 = Release|Any CPU - {E9DB21D4-05E8-4883-B161-C55071166579}.Release Mono|Mixed Platforms.ActiveCfg = Release|Any CPU - {E9DB21D4-05E8-4883-B161-C55071166579}.Release Mono|Mixed Platforms.Build.0 = Release|Any CPU - {E9DB21D4-05E8-4883-B161-C55071166579}.Release Mono|Win32.ActiveCfg = Release|Any CPU - {E9DB21D4-05E8-4883-B161-C55071166579}.Release Mono|Win32.Build.0 = Release|Any CPU - {E9DB21D4-05E8-4883-B161-C55071166579}.Release Mono|x64.ActiveCfg = Release|Any CPU - {E9DB21D4-05E8-4883-B161-C55071166579}.Release Mono|x64.Build.0 = Release|Any CPU - {E9DB21D4-05E8-4883-B161-C55071166579}.Release Mono|x86.ActiveCfg = Release|Any CPU - {E9DB21D4-05E8-4883-B161-C55071166579}.Release Mono|x86.Build.0 = Release|Any CPU - {E9DB21D4-05E8-4883-B161-C55071166579}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E9DB21D4-05E8-4883-B161-C55071166579}.Release|Any CPU.Build.0 = Release|Any CPU - {E9DB21D4-05E8-4883-B161-C55071166579}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {E9DB21D4-05E8-4883-B161-C55071166579}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {E9DB21D4-05E8-4883-B161-C55071166579}.Release|Win32.ActiveCfg = Release|Any CPU - {E9DB21D4-05E8-4883-B161-C55071166579}.Release|Win32.Build.0 = Release|Any CPU - {E9DB21D4-05E8-4883-B161-C55071166579}.Release|x64.ActiveCfg = Release|Any CPU - {E9DB21D4-05E8-4883-B161-C55071166579}.Release|x64.Build.0 = Release|Any CPU - {E9DB21D4-05E8-4883-B161-C55071166579}.Release|x86.ActiveCfg = Release|Any CPU - {E9DB21D4-05E8-4883-B161-C55071166579}.Release|x86.Build.0 = Release|Any CPU + {4ACAB6A2-AC9A-4B50-BAEC-1FE4A1F3B8BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4ACAB6A2-AC9A-4B50-BAEC-1FE4A1F3B8BC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4ACAB6A2-AC9A-4B50-BAEC-1FE4A1F3B8BC}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {4ACAB6A2-AC9A-4B50-BAEC-1FE4A1F3B8BC}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {4ACAB6A2-AC9A-4B50-BAEC-1FE4A1F3B8BC}.Debug|Win32.ActiveCfg = Debug|Any CPU + {4ACAB6A2-AC9A-4B50-BAEC-1FE4A1F3B8BC}.Debug|Win32.Build.0 = Debug|Any CPU + {4ACAB6A2-AC9A-4B50-BAEC-1FE4A1F3B8BC}.Debug|x64.ActiveCfg = Debug|Any CPU + {4ACAB6A2-AC9A-4B50-BAEC-1FE4A1F3B8BC}.Debug|x64.Build.0 = Debug|Any CPU + {4ACAB6A2-AC9A-4B50-BAEC-1FE4A1F3B8BC}.Debug|x86.ActiveCfg = Debug|Any CPU + {4ACAB6A2-AC9A-4B50-BAEC-1FE4A1F3B8BC}.Debug|x86.Build.0 = Debug|Any CPU + {4ACAB6A2-AC9A-4B50-BAEC-1FE4A1F3B8BC}.Release Mono|Any CPU.ActiveCfg = Release|Any CPU + {4ACAB6A2-AC9A-4B50-BAEC-1FE4A1F3B8BC}.Release Mono|Any CPU.Build.0 = Release|Any CPU + {4ACAB6A2-AC9A-4B50-BAEC-1FE4A1F3B8BC}.Release Mono|Mixed Platforms.ActiveCfg = Release|Any CPU + {4ACAB6A2-AC9A-4B50-BAEC-1FE4A1F3B8BC}.Release Mono|Mixed Platforms.Build.0 = Release|Any CPU + {4ACAB6A2-AC9A-4B50-BAEC-1FE4A1F3B8BC}.Release Mono|Win32.ActiveCfg = Release|Any CPU + {4ACAB6A2-AC9A-4B50-BAEC-1FE4A1F3B8BC}.Release Mono|Win32.Build.0 = Release|Any CPU + {4ACAB6A2-AC9A-4B50-BAEC-1FE4A1F3B8BC}.Release Mono|x64.ActiveCfg = Release|Any CPU + {4ACAB6A2-AC9A-4B50-BAEC-1FE4A1F3B8BC}.Release Mono|x64.Build.0 = Release|Any CPU + {4ACAB6A2-AC9A-4B50-BAEC-1FE4A1F3B8BC}.Release Mono|x86.ActiveCfg = Release|Any CPU + {4ACAB6A2-AC9A-4B50-BAEC-1FE4A1F3B8BC}.Release Mono|x86.Build.0 = Release|Any CPU + {4ACAB6A2-AC9A-4B50-BAEC-1FE4A1F3B8BC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4ACAB6A2-AC9A-4B50-BAEC-1FE4A1F3B8BC}.Release|Any CPU.Build.0 = Release|Any CPU + {4ACAB6A2-AC9A-4B50-BAEC-1FE4A1F3B8BC}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {4ACAB6A2-AC9A-4B50-BAEC-1FE4A1F3B8BC}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {4ACAB6A2-AC9A-4B50-BAEC-1FE4A1F3B8BC}.Release|Win32.ActiveCfg = Release|Any CPU + {4ACAB6A2-AC9A-4B50-BAEC-1FE4A1F3B8BC}.Release|Win32.Build.0 = Release|Any CPU + {4ACAB6A2-AC9A-4B50-BAEC-1FE4A1F3B8BC}.Release|x64.ActiveCfg = Release|Any CPU + {4ACAB6A2-AC9A-4B50-BAEC-1FE4A1F3B8BC}.Release|x64.Build.0 = Release|Any CPU + {4ACAB6A2-AC9A-4B50-BAEC-1FE4A1F3B8BC}.Release|x86.ActiveCfg = Release|Any CPU + {4ACAB6A2-AC9A-4B50-BAEC-1FE4A1F3B8BC}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Mono.Nat/Mono.Nat.csproj b/Mono.Nat/Mono.Nat.csproj deleted file mode 100644 index 09e3baffa..000000000 --- a/Mono.Nat/Mono.Nat.csproj +++ /dev/null @@ -1,89 +0,0 @@ - - - - - 14.0 - Debug - AnyCPU - {E9DB21D4-05E8-4883-B161-C55071166579} - Library - Properties - Mono.Nat - Mono.Nat - en-US - 512 - {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - - - v5.0 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {9142eefa-7570-41e1-bfcc-468bb571af2f} - MediaBrowser.Common - - - {7eeeb4bb-f3e8-48fc-b4c5-70f0fff8329b} - MediaBrowser.Model - - - - - \ No newline at end of file diff --git a/Mono.Nat/Mono.Nat.xproj b/Mono.Nat/Mono.Nat.xproj new file mode 100644 index 000000000..3479a2a67 --- /dev/null +++ b/Mono.Nat/Mono.Nat.xproj @@ -0,0 +1,23 @@ + + + + 14.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + + + + 4acab6a2-ac9a-4b50-baec-1fe4a1f3b8bc + Mono.Nat + .\obj + .\bin\ + v4.5.2 + + + 2.0 + + + + + + + \ No newline at end of file diff --git a/Mono.Nat/Properties/AssemblyInfo.cs b/Mono.Nat/Properties/AssemblyInfo.cs index 2ad8adf6f..2a4e75c21 100644 --- a/Mono.Nat/Properties/AssemblyInfo.cs +++ b/Mono.Nat/Properties/AssemblyInfo.cs @@ -1,30 +1,16 @@ -using System.Resources; -using System.Reflection; +using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; -// General Information about an assembly is controlled through the following +// General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. -[assembly: AssemblyTitle("Mono.Nat")] -[assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("Mono.Nat")] -[assembly: AssemblyCopyright("Copyright © 2016")] [assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] -[assembly: NeutralResourcesLanguage("en")] -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] diff --git a/Mono.Nat/project.json b/Mono.Nat/project.json index 7d5dc4874..9f1c3247f 100644 --- a/Mono.Nat/project.json +++ b/Mono.Nat/project.json @@ -1,11 +1,41 @@ -{ - "supports": {}, +{ + "version": "1.0.0-*", + "dependencies": { - "Microsoft.NETCore.Portable.Compatibility": "1.0.1", - "NETStandard.Library": "1.6.0", - "System.Net.NetworkInformation": "4.1.0" + }, + "frameworks": { - "netstandard1.3": {} + "net46": { + "frameworkAssemblies": { + "System.Collections": "4.0.0.0", + "System.Net": "4.0.0.0", + "System.Runtime": "4.0.0.0", + "System.Threading": "4.0.0.0", + "System.Threading.Tasks": "4.0.0.0", + "System.Xml": "4.0.0.0" + }, + "dependencies": { + "MediaBrowser.Common": { + "target": "project" + }, + "MediaBrowser.Model": { + "target": "project" + } + } + }, + "netstandard1.6": { + "imports": "dnxcore50", + "dependencies": { + "NETStandard.Library": "1.6.0", + "MediaBrowser.Common": { + "target": "project" + }, + "MediaBrowser.Model": { + "target": "project" + }, + "System.Net.NetworkInformation": "4.1.0" + } + } } -} \ No newline at end of file +} From 1d62a88fd8147e9c1bf01cac2852b929b1737c17 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Thu, 3 Nov 2016 18:06:00 -0400 Subject: [PATCH 12/17] move classes to portable server project --- .../Emby.Server.Implementations.csproj | 11 + .../EntryPoints/AutomaticRestartEntryPoint.cs | 11 +- .../EntryPoints/LibraryChangedNotifier.cs | 15 +- .../EntryPoints/LoadRegistrations.cs | 12 +- .../EntryPoints/RecordingNotifier.cs | 10 +- .../EntryPoints/RefreshUsersMetadata.cs | 2 +- .../EntryPoints/ServerEventNotifier.cs | 2 +- .../EntryPoints/UsageEntryPoint.cs | 2 +- .../EntryPoints/UsageReporter.cs | 2 +- .../EntryPoints/UserDataChangeNotifier.cs | 11 +- .../MediaEncoder/EncodingManager.cs | 8 +- .../News/NewsEntryPoint.cs | 260 ++++++++++++++++++ Emby.Server.Implementations/project.json | 5 +- ...MediaBrowser.Server.Implementations.csproj | 137 ++++----- .../News/NewsEntryPoint.cs | 170 ------------ .../packages.config | 3 +- .../ApplicationHost.cs | 2 +- .../MediaBrowser.Server.Startup.Common.csproj | 4 + .../packages.config | 1 + .../MediaBrowser.XbmcMetadata.csproj | 5 - MediaBrowser.XbmcMetadata/packages.config | 1 - 21 files changed, 382 insertions(+), 292 deletions(-) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/EntryPoints/AutomaticRestartEntryPoint.cs (90%) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/EntryPoints/LibraryChangedNotifier.cs (95%) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/EntryPoints/LoadRegistrations.cs (81%) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/EntryPoints/RecordingNotifier.cs (89%) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/EntryPoints/RefreshUsersMetadata.cs (95%) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/EntryPoints/ServerEventNotifier.cs (99%) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/EntryPoints/UsageEntryPoint.cs (98%) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/EntryPoints/UsageReporter.cs (98%) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/EntryPoints/UserDataChangeNotifier.cs (93%) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/MediaEncoder/EncodingManager.cs (97%) create mode 100644 Emby.Server.Implementations/News/NewsEntryPoint.cs delete mode 100644 MediaBrowser.Server.Implementations/News/NewsEntryPoint.cs diff --git a/Emby.Server.Implementations/Emby.Server.Implementations.csproj b/Emby.Server.Implementations/Emby.Server.Implementations.csproj index 4a32d00a2..e3d404644 100644 --- a/Emby.Server.Implementations/Emby.Server.Implementations.csproj +++ b/Emby.Server.Implementations/Emby.Server.Implementations.csproj @@ -51,6 +51,15 @@ + + + + + + + + + @@ -100,6 +109,8 @@ + + diff --git a/MediaBrowser.Server.Implementations/EntryPoints/AutomaticRestartEntryPoint.cs b/Emby.Server.Implementations/EntryPoints/AutomaticRestartEntryPoint.cs similarity index 90% rename from MediaBrowser.Server.Implementations/EntryPoints/AutomaticRestartEntryPoint.cs rename to Emby.Server.Implementations/EntryPoints/AutomaticRestartEntryPoint.cs index 1067e052d..38708648f 100644 --- a/MediaBrowser.Server.Implementations/EntryPoints/AutomaticRestartEntryPoint.cs +++ b/Emby.Server.Implementations/EntryPoints/AutomaticRestartEntryPoint.cs @@ -10,8 +10,9 @@ using System.Threading; using System.Threading.Tasks; using MediaBrowser.Controller.LiveTv; using MediaBrowser.Model.LiveTv; +using MediaBrowser.Model.Threading; -namespace MediaBrowser.Server.Implementations.EntryPoints +namespace Emby.Server.Implementations.EntryPoints { public class AutomaticRestartEntryPoint : IServerEntryPoint { @@ -21,10 +22,11 @@ namespace MediaBrowser.Server.Implementations.EntryPoints private readonly ISessionManager _sessionManager; private readonly IServerConfigurationManager _config; private readonly ILiveTvManager _liveTvManager; + private readonly ITimerFactory _timerFactory; - private Timer _timer; + private ITimer _timer; - public AutomaticRestartEntryPoint(IServerApplicationHost appHost, ILogger logger, ITaskManager iTaskManager, ISessionManager sessionManager, IServerConfigurationManager config, ILiveTvManager liveTvManager) + public AutomaticRestartEntryPoint(IServerApplicationHost appHost, ILogger logger, ITaskManager iTaskManager, ISessionManager sessionManager, IServerConfigurationManager config, ILiveTvManager liveTvManager, ITimerFactory timerFactory) { _appHost = appHost; _logger = logger; @@ -32,6 +34,7 @@ namespace MediaBrowser.Server.Implementations.EntryPoints _sessionManager = sessionManager; _config = config; _liveTvManager = liveTvManager; + _timerFactory = timerFactory; } public void Run() @@ -48,7 +51,7 @@ namespace MediaBrowser.Server.Implementations.EntryPoints if (_appHost.HasPendingRestart) { - _timer = new Timer(TimerCallback, null, TimeSpan.FromMinutes(10), TimeSpan.FromMinutes(10)); + _timer = _timerFactory.Create(TimerCallback, null, TimeSpan.FromMinutes(10), TimeSpan.FromMinutes(10)); } } diff --git a/MediaBrowser.Server.Implementations/EntryPoints/LibraryChangedNotifier.cs b/Emby.Server.Implementations/EntryPoints/LibraryChangedNotifier.cs similarity index 95% rename from MediaBrowser.Server.Implementations/EntryPoints/LibraryChangedNotifier.cs rename to Emby.Server.Implementations/EntryPoints/LibraryChangedNotifier.cs index 9f06a9860..91142f928 100644 --- a/MediaBrowser.Server.Implementations/EntryPoints/LibraryChangedNotifier.cs +++ b/Emby.Server.Implementations/EntryPoints/LibraryChangedNotifier.cs @@ -10,8 +10,9 @@ using System.Linq; using System.Threading; using MediaBrowser.Controller.Entities.Audio; using MediaBrowser.Model.Extensions; +using MediaBrowser.Model.Threading; -namespace MediaBrowser.Server.Implementations.EntryPoints +namespace Emby.Server.Implementations.EntryPoints { public class LibraryChangedNotifier : IServerEntryPoint { @@ -23,6 +24,7 @@ namespace MediaBrowser.Server.Implementations.EntryPoints private readonly ISessionManager _sessionManager; private readonly IUserManager _userManager; private readonly ILogger _logger; + private readonly ITimerFactory _timerFactory; /// /// The _library changed sync lock @@ -40,19 +42,20 @@ namespace MediaBrowser.Server.Implementations.EntryPoints /// Gets or sets the library update timer. /// /// The library update timer. - private Timer LibraryUpdateTimer { get; set; } + private ITimer LibraryUpdateTimer { get; set; } /// /// The library update duration /// private const int LibraryUpdateDuration = 5000; - public LibraryChangedNotifier(ILibraryManager libraryManager, ISessionManager sessionManager, IUserManager userManager, ILogger logger) + public LibraryChangedNotifier(ILibraryManager libraryManager, ISessionManager sessionManager, IUserManager userManager, ILogger logger, ITimerFactory timerFactory) { _libraryManager = libraryManager; _sessionManager = sessionManager; _userManager = userManager; _logger = logger; + _timerFactory = timerFactory; } public void Run() @@ -79,7 +82,7 @@ namespace MediaBrowser.Server.Implementations.EntryPoints { if (LibraryUpdateTimer == null) { - LibraryUpdateTimer = new Timer(LibraryUpdateTimerCallback, null, LibraryUpdateDuration, + LibraryUpdateTimer = _timerFactory.Create(LibraryUpdateTimerCallback, null, LibraryUpdateDuration, Timeout.Infinite); } else @@ -112,7 +115,7 @@ namespace MediaBrowser.Server.Implementations.EntryPoints { if (LibraryUpdateTimer == null) { - LibraryUpdateTimer = new Timer(LibraryUpdateTimerCallback, null, LibraryUpdateDuration, + LibraryUpdateTimer = _timerFactory.Create(LibraryUpdateTimerCallback, null, LibraryUpdateDuration, Timeout.Infinite); } else @@ -140,7 +143,7 @@ namespace MediaBrowser.Server.Implementations.EntryPoints { if (LibraryUpdateTimer == null) { - LibraryUpdateTimer = new Timer(LibraryUpdateTimerCallback, null, LibraryUpdateDuration, + LibraryUpdateTimer = _timerFactory.Create(LibraryUpdateTimerCallback, null, LibraryUpdateDuration, Timeout.Infinite); } else diff --git a/MediaBrowser.Server.Implementations/EntryPoints/LoadRegistrations.cs b/Emby.Server.Implementations/EntryPoints/LoadRegistrations.cs similarity index 81% rename from MediaBrowser.Server.Implementations/EntryPoints/LoadRegistrations.cs rename to Emby.Server.Implementations/EntryPoints/LoadRegistrations.cs index 47f22cae6..0203b5192 100644 --- a/MediaBrowser.Server.Implementations/EntryPoints/LoadRegistrations.cs +++ b/Emby.Server.Implementations/EntryPoints/LoadRegistrations.cs @@ -3,9 +3,9 @@ using MediaBrowser.Controller.Plugins; using MediaBrowser.Model.Logging; using System; using System.Threading.Tasks; -using MediaBrowser.Server.Implementations.Threading; +using MediaBrowser.Model.Threading; -namespace MediaBrowser.Server.Implementations.EntryPoints +namespace Emby.Server.Implementations.EntryPoints { /// /// Class LoadRegistrations @@ -22,16 +22,18 @@ namespace MediaBrowser.Server.Implementations.EntryPoints /// private readonly ILogger _logger; - private PeriodicTimer _timer; + private ITimer _timer; + private readonly ITimerFactory _timerFactory; /// /// Initializes a new instance of the class. /// /// The security manager. /// The log manager. - public LoadRegistrations(ISecurityManager securityManager, ILogManager logManager) + public LoadRegistrations(ISecurityManager securityManager, ILogManager logManager, ITimerFactory timerFactory) { _securityManager = securityManager; + _timerFactory = timerFactory; _logger = logManager.GetLogger("Registration Loader"); } @@ -41,7 +43,7 @@ namespace MediaBrowser.Server.Implementations.EntryPoints /// public void Run() { - _timer = new PeriodicTimer(s => LoadAllRegistrations(), null, TimeSpan.FromMilliseconds(100), TimeSpan.FromHours(12)); + _timer = _timerFactory.Create(s => LoadAllRegistrations(), null, TimeSpan.FromMilliseconds(100), TimeSpan.FromHours(12)); } private async Task LoadAllRegistrations() diff --git a/MediaBrowser.Server.Implementations/EntryPoints/RecordingNotifier.cs b/Emby.Server.Implementations/EntryPoints/RecordingNotifier.cs similarity index 89% rename from MediaBrowser.Server.Implementations/EntryPoints/RecordingNotifier.cs rename to Emby.Server.Implementations/EntryPoints/RecordingNotifier.cs index 414fda400..b674fc39b 100644 --- a/MediaBrowser.Server.Implementations/EntryPoints/RecordingNotifier.cs +++ b/Emby.Server.Implementations/EntryPoints/RecordingNotifier.cs @@ -7,7 +7,7 @@ using MediaBrowser.Controller.Plugins; using MediaBrowser.Controller.Session; using MediaBrowser.Model.Logging; -namespace MediaBrowser.Server.Implementations.EntryPoints +namespace Emby.Server.Implementations.EntryPoints { public class RecordingNotifier : IServerEntryPoint { @@ -32,22 +32,22 @@ namespace MediaBrowser.Server.Implementations.EntryPoints _liveTvManager.SeriesTimerCreated += _liveTvManager_SeriesTimerCreated; } - private void _liveTvManager_SeriesTimerCreated(object sender, Model.Events.GenericEventArgs e) + private void _liveTvManager_SeriesTimerCreated(object sender, MediaBrowser.Model.Events.GenericEventArgs e) { SendMessage("SeriesTimerCreated", e.Argument); } - private void _liveTvManager_TimerCreated(object sender, Model.Events.GenericEventArgs e) + private void _liveTvManager_TimerCreated(object sender, MediaBrowser.Model.Events.GenericEventArgs e) { SendMessage("TimerCreated", e.Argument); } - private void _liveTvManager_SeriesTimerCancelled(object sender, Model.Events.GenericEventArgs e) + private void _liveTvManager_SeriesTimerCancelled(object sender, MediaBrowser.Model.Events.GenericEventArgs e) { SendMessage("SeriesTimerCancelled", e.Argument); } - private void _liveTvManager_TimerCancelled(object sender, Model.Events.GenericEventArgs e) + private void _liveTvManager_TimerCancelled(object sender, MediaBrowser.Model.Events.GenericEventArgs e) { SendMessage("TimerCancelled", e.Argument); } diff --git a/MediaBrowser.Server.Implementations/EntryPoints/RefreshUsersMetadata.cs b/Emby.Server.Implementations/EntryPoints/RefreshUsersMetadata.cs similarity index 95% rename from MediaBrowser.Server.Implementations/EntryPoints/RefreshUsersMetadata.cs rename to Emby.Server.Implementations/EntryPoints/RefreshUsersMetadata.cs index a0b7ff515..77de849a1 100644 --- a/MediaBrowser.Server.Implementations/EntryPoints/RefreshUsersMetadata.cs +++ b/Emby.Server.Implementations/EntryPoints/RefreshUsersMetadata.cs @@ -2,7 +2,7 @@ using MediaBrowser.Controller.Plugins; using System.Threading; -namespace MediaBrowser.Server.Implementations.EntryPoints +namespace Emby.Server.Implementations.EntryPoints { /// /// Class RefreshUsersMetadata diff --git a/MediaBrowser.Server.Implementations/EntryPoints/ServerEventNotifier.cs b/Emby.Server.Implementations/EntryPoints/ServerEventNotifier.cs similarity index 99% rename from MediaBrowser.Server.Implementations/EntryPoints/ServerEventNotifier.cs rename to Emby.Server.Implementations/EntryPoints/ServerEventNotifier.cs index 0da48a2d8..4d640bc95 100644 --- a/MediaBrowser.Server.Implementations/EntryPoints/ServerEventNotifier.cs +++ b/Emby.Server.Implementations/EntryPoints/ServerEventNotifier.cs @@ -14,7 +14,7 @@ using System.Collections.Generic; using System.Threading; using MediaBrowser.Model.Tasks; -namespace MediaBrowser.Server.Implementations.EntryPoints +namespace Emby.Server.Implementations.EntryPoints { /// /// Class WebSocketEvents diff --git a/MediaBrowser.Server.Implementations/EntryPoints/UsageEntryPoint.cs b/Emby.Server.Implementations/EntryPoints/UsageEntryPoint.cs similarity index 98% rename from MediaBrowser.Server.Implementations/EntryPoints/UsageEntryPoint.cs rename to Emby.Server.Implementations/EntryPoints/UsageEntryPoint.cs index d14bd4368..1b897ca29 100644 --- a/MediaBrowser.Server.Implementations/EntryPoints/UsageEntryPoint.cs +++ b/Emby.Server.Implementations/EntryPoints/UsageEntryPoint.cs @@ -12,7 +12,7 @@ using System.Threading; using System.Threading.Tasks; using MediaBrowser.Controller.Configuration; -namespace MediaBrowser.Server.Implementations.EntryPoints +namespace Emby.Server.Implementations.EntryPoints { /// /// Class UsageEntryPoint diff --git a/MediaBrowser.Server.Implementations/EntryPoints/UsageReporter.cs b/Emby.Server.Implementations/EntryPoints/UsageReporter.cs similarity index 98% rename from MediaBrowser.Server.Implementations/EntryPoints/UsageReporter.cs rename to Emby.Server.Implementations/EntryPoints/UsageReporter.cs index e445300e4..be848acb7 100644 --- a/MediaBrowser.Server.Implementations/EntryPoints/UsageReporter.cs +++ b/Emby.Server.Implementations/EntryPoints/UsageReporter.cs @@ -10,7 +10,7 @@ using System.Threading; using System.Threading.Tasks; using MediaBrowser.Model.Logging; -namespace MediaBrowser.Server.Implementations.EntryPoints +namespace Emby.Server.Implementations.EntryPoints { public class UsageReporter { diff --git a/MediaBrowser.Server.Implementations/EntryPoints/UserDataChangeNotifier.cs b/Emby.Server.Implementations/EntryPoints/UserDataChangeNotifier.cs similarity index 93% rename from MediaBrowser.Server.Implementations/EntryPoints/UserDataChangeNotifier.cs rename to Emby.Server.Implementations/EntryPoints/UserDataChangeNotifier.cs index 8262048b1..b93410180 100644 --- a/MediaBrowser.Server.Implementations/EntryPoints/UserDataChangeNotifier.cs +++ b/Emby.Server.Implementations/EntryPoints/UserDataChangeNotifier.cs @@ -11,8 +11,9 @@ using System.Linq; using System.Threading; using System.Threading.Tasks; using MediaBrowser.Model.Extensions; +using MediaBrowser.Model.Threading; -namespace MediaBrowser.Server.Implementations.EntryPoints +namespace Emby.Server.Implementations.EntryPoints { class UserDataChangeNotifier : IServerEntryPoint { @@ -22,17 +23,19 @@ namespace MediaBrowser.Server.Implementations.EntryPoints private readonly IUserManager _userManager; private readonly object _syncLock = new object(); - private Timer UpdateTimer { get; set; } + private ITimer UpdateTimer { get; set; } + private readonly ITimerFactory _timerFactory; private const int UpdateDuration = 500; private readonly Dictionary> _changedItems = new Dictionary>(); - public UserDataChangeNotifier(IUserDataManager userDataManager, ISessionManager sessionManager, ILogger logger, IUserManager userManager) + public UserDataChangeNotifier(IUserDataManager userDataManager, ISessionManager sessionManager, ILogger logger, IUserManager userManager, ITimerFactory timerFactory) { _userDataManager = userDataManager; _sessionManager = sessionManager; _logger = logger; _userManager = userManager; + _timerFactory = timerFactory; } public void Run() @@ -51,7 +54,7 @@ namespace MediaBrowser.Server.Implementations.EntryPoints { if (UpdateTimer == null) { - UpdateTimer = new Timer(UpdateTimerCallback, null, UpdateDuration, + UpdateTimer = _timerFactory.Create(UpdateTimerCallback, null, UpdateDuration, Timeout.Infinite); } else diff --git a/MediaBrowser.Server.Implementations/MediaEncoder/EncodingManager.cs b/Emby.Server.Implementations/MediaEncoder/EncodingManager.cs similarity index 97% rename from MediaBrowser.Server.Implementations/MediaEncoder/EncodingManager.cs rename to Emby.Server.Implementations/MediaEncoder/EncodingManager.cs index 9f1744cc9..204e04061 100644 --- a/MediaBrowser.Server.Implementations/MediaEncoder/EncodingManager.cs +++ b/Emby.Server.Implementations/MediaEncoder/EncodingManager.cs @@ -18,7 +18,7 @@ using MediaBrowser.Controller.IO; using MediaBrowser.Model.IO; using MediaBrowser.Controller.Library; -namespace MediaBrowser.Server.Implementations.MediaEncoder +namespace Emby.Server.Implementations.MediaEncoder { public class EncodingManager : IEncodingManager { @@ -143,11 +143,11 @@ namespace MediaBrowser.Server.Implementations.MediaEncoder var container = video.Container; var tempFile = await _encoder.ExtractVideoImage(inputPath, container, protocol, video.Video3DFormat, time, cancellationToken).ConfigureAwait(false); - File.Copy(tempFile, path, true); + _fileSystem.CopyFile(tempFile, path, true); try { - File.Delete(tempFile); + _fileSystem.DeleteFile(tempFile); } catch { @@ -205,7 +205,7 @@ namespace MediaBrowser.Server.Implementations.MediaEncoder return _fileSystem.GetFilePaths(path) .ToList(); } - catch (DirectoryNotFoundException) + catch (IOException) { return new List(); } diff --git a/Emby.Server.Implementations/News/NewsEntryPoint.cs b/Emby.Server.Implementations/News/NewsEntryPoint.cs new file mode 100644 index 000000000..1497d066f --- /dev/null +++ b/Emby.Server.Implementations/News/NewsEntryPoint.cs @@ -0,0 +1,260 @@ +using MediaBrowser.Common.Configuration; +using MediaBrowser.Common.Extensions; +using MediaBrowser.Common.Net; +using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Notifications; +using MediaBrowser.Controller.Plugins; +using MediaBrowser.Model.Logging; +using MediaBrowser.Model.News; +using MediaBrowser.Model.Notifications; +using MediaBrowser.Model.Serialization; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; +using System.Xml; +using MediaBrowser.Model.IO; +using MediaBrowser.Model.Threading; + +namespace Emby.Server.Implementations.News +{ + public class NewsEntryPoint : IServerEntryPoint + { + private ITimer _timer; + private readonly IHttpClient _httpClient; + private readonly IApplicationPaths _appPaths; + private readonly IFileSystem _fileSystem; + private readonly ILogger _logger; + private readonly IJsonSerializer _json; + + private readonly INotificationManager _notifications; + private readonly IUserManager _userManager; + + private readonly TimeSpan _frequency = TimeSpan.FromHours(24); + private readonly ITimerFactory _timerFactory; + + public NewsEntryPoint(IHttpClient httpClient, IApplicationPaths appPaths, IFileSystem fileSystem, ILogger logger, IJsonSerializer json, INotificationManager notifications, IUserManager userManager, ITimerFactory timerFactory) + { + _httpClient = httpClient; + _appPaths = appPaths; + _fileSystem = fileSystem; + _logger = logger; + _json = json; + _notifications = notifications; + _userManager = userManager; + _timerFactory = timerFactory; + } + + public void Run() + { + _timer = _timerFactory.Create(OnTimerFired, null, TimeSpan.FromMilliseconds(500), _frequency); + } + + /// + /// Called when [timer fired]. + /// + /// The state. + private async void OnTimerFired(object state) + { + var path = Path.Combine(_appPaths.CachePath, "news.json"); + + try + { + await DownloadNews(path).ConfigureAwait(false); + } + catch (Exception ex) + { + _logger.ErrorException("Error downloading news", ex); + } + } + + private async Task DownloadNews(string path) + { + DateTime? lastUpdate = null; + + if (_fileSystem.FileExists(path)) + { + lastUpdate = _fileSystem.GetLastWriteTimeUtc(path); + } + + var requestOptions = new HttpRequestOptions + { + Url = "http://emby.media/community/index.php?/blog/rss/1-media-browser-developers-blog", + Progress = new Progress(), + UserAgent = "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.42 Safari/537.36", + BufferContent = false + }; + + using (var stream = await _httpClient.Get(requestOptions).ConfigureAwait(false)) + { + using (var reader = XmlReader.Create(stream)) + { + var news = ParseRssItems(reader).ToList(); + + _json.SerializeToFile(news, path); + + await CreateNotifications(news, lastUpdate, CancellationToken.None).ConfigureAwait(false); + } + } + } + + private Task CreateNotifications(List items, DateTime? lastUpdate, CancellationToken cancellationToken) + { + if (lastUpdate.HasValue) + { + items = items.Where(i => i.Date.ToUniversalTime() >= lastUpdate.Value) + .ToList(); + } + + var tasks = items.Select(i => _notifications.SendNotification(new NotificationRequest + { + Date = i.Date, + Name = i.Title, + Description = i.Description, + Url = i.Link, + UserIds = _userManager.Users.Select(u => u.Id.ToString("N")).ToList() + + }, cancellationToken)); + + return Task.WhenAll(tasks); + } + + private IEnumerable ParseRssItems(XmlReader reader) + { + reader.MoveToContent(); + reader.Read(); + + while (!reader.EOF) + { + if (reader.NodeType == XmlNodeType.Element) + { + switch (reader.Name) + { + case "channel": + { + using (var subReader = reader.ReadSubtree()) + { + return ParseFromChannelNode(subReader); + } + } + default: + { + reader.Skip(); + break; + } + } + } + else + { + reader.Read(); + } + } + + return new List(); + } + + private IEnumerable ParseFromChannelNode(XmlReader reader) + { + var list = new List(); + + reader.MoveToContent(); + reader.Read(); + + while (!reader.EOF) + { + if (reader.NodeType == XmlNodeType.Element) + { + switch (reader.Name) + { + case "item": + { + using (var subReader = reader.ReadSubtree()) + { + list.Add(ParseItem(subReader)); + } + break; + } + default: + { + reader.Skip(); + break; + } + } + } + else + { + reader.Read(); + } + } + + return list; + } + + private NewsItem ParseItem(XmlReader reader) + { + var item = new NewsItem(); + + reader.MoveToContent(); + reader.Read(); + + while (!reader.EOF) + { + if (reader.NodeType == XmlNodeType.Element) + { + switch (reader.Name) + { + case "title": + { + item.Title = reader.ReadElementContentAsString(); + break; + } + case "link": + { + item.Link = reader.ReadElementContentAsString(); + break; + } + case "description": + { + item.DescriptionHtml = reader.ReadElementContentAsString(); + item.Description = item.DescriptionHtml.StripHtml(); + break; + } + case "pubDate": + { + var date = reader.ReadElementContentAsString(); + DateTime parsedDate; + + if (DateTime.TryParse(date, out parsedDate)) + { + item.Date = parsedDate; + } + break; + } + default: + { + reader.Skip(); + break; + } + } + } + else + { + reader.Read(); + } + } + + return item; + } + + public void Dispose() + { + if (_timer != null) + { + _timer.Dispose(); + _timer = null; + } + } + } +} diff --git a/Emby.Server.Implementations/project.json b/Emby.Server.Implementations/project.json index b1373cd45..81f816753 100644 --- a/Emby.Server.Implementations/project.json +++ b/Emby.Server.Implementations/project.json @@ -1,8 +1,7 @@ -{ +{ "supports": {}, "dependencies": { - "MediaBrowser.Naming": "1.0.0.59", - "Patterns.Logging": "1.0.0.6" + "MediaBrowser.Naming": "1.0.0.59" }, "frameworks": { ".NETPortable,Version=v4.5,Profile=Profile7": {} diff --git a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj index 88e9478df..b31c8286c 100644 --- a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj +++ b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj @@ -46,17 +46,13 @@ ..\ThirdParty\emby\Emby.Common.Implementations.dll - ..\packages\Emby.XmlTv.1.0.0.62\lib\portable-net45+win8\Emby.XmlTv.dll + ..\packages\Emby.XmlTv.1.0.0.63\lib\portable-net45+win8\Emby.XmlTv.dll True ..\packages\ini-parser.2.3.0\lib\net20\INIFileParser.dll True - - ..\packages\MediaBrowser.Naming.1.0.0.59\lib\portable-net45+win8\MediaBrowser.Naming.dll - True - ..\packages\Microsoft.IO.RecyclableMemoryStream.1.1.0.0\lib\net45\Microsoft.IO.RecyclableMemoryStream.dll True @@ -120,17 +116,8 @@ - - - - - - - - - @@ -211,8 +198,6 @@ - - @@ -286,23 +271,6 @@ MediaBrowser.Providers - - - - - - - - - - - - - - - - - swagger-ui\lib\backbone-min.js @@ -368,7 +336,6 @@ swagger-ui\swagger-ui.min.js PreserveNewest - swagger-ui\fonts\droid-sans-v6-latin-700.eot PreserveNewest @@ -401,46 +368,25 @@ swagger-ui\fonts\droid-sans-v6-latin-regular.woff2 PreserveNewest + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -610,12 +556,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - swagger-ui\css\reset.css @@ -665,8 +648,6 @@ swagger-ui\lib\shred\content.js PreserveNewest - - diff --git a/MediaBrowser.Server.Implementations/News/NewsEntryPoint.cs b/MediaBrowser.Server.Implementations/News/NewsEntryPoint.cs deleted file mode 100644 index 22cb4e86a..000000000 --- a/MediaBrowser.Server.Implementations/News/NewsEntryPoint.cs +++ /dev/null @@ -1,170 +0,0 @@ -using MediaBrowser.Common.Configuration; -using MediaBrowser.Common.Extensions; -using MediaBrowser.Common.Net; -using MediaBrowser.Controller.Library; -using MediaBrowser.Controller.Notifications; -using MediaBrowser.Controller.Plugins; -using MediaBrowser.Model.Logging; -using MediaBrowser.Model.News; -using MediaBrowser.Model.Notifications; -using MediaBrowser.Model.Serialization; -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; -using System.Xml; -using MediaBrowser.Common.IO; -using MediaBrowser.Controller.IO; -using MediaBrowser.Model.IO; -using MediaBrowser.Server.Implementations.Threading; - -namespace MediaBrowser.Server.Implementations.News -{ - public class NewsEntryPoint : IServerEntryPoint - { - private PeriodicTimer _timer; - private readonly IHttpClient _httpClient; - private readonly IApplicationPaths _appPaths; - private readonly IFileSystem _fileSystem; - private readonly ILogger _logger; - private readonly IJsonSerializer _json; - - private readonly INotificationManager _notifications; - private readonly IUserManager _userManager; - - private readonly TimeSpan _frequency = TimeSpan.FromHours(24); - - public NewsEntryPoint(IHttpClient httpClient, IApplicationPaths appPaths, IFileSystem fileSystem, ILogger logger, IJsonSerializer json, INotificationManager notifications, IUserManager userManager) - { - _httpClient = httpClient; - _appPaths = appPaths; - _fileSystem = fileSystem; - _logger = logger; - _json = json; - _notifications = notifications; - _userManager = userManager; - } - - public void Run() - { - _timer = new PeriodicTimer(OnTimerFired, null, TimeSpan.FromMilliseconds(500), _frequency); - } - - /// - /// Called when [timer fired]. - /// - /// The state. - private async void OnTimerFired(object state) - { - var path = Path.Combine(_appPaths.CachePath, "news.json"); - - try - { - await DownloadNews(path).ConfigureAwait(false); - } - catch (Exception ex) - { - _logger.ErrorException("Error downloading news", ex); - } - } - - private async Task DownloadNews(string path) - { - DateTime? lastUpdate = null; - - if (_fileSystem.FileExists(path)) - { - lastUpdate = _fileSystem.GetLastWriteTimeUtc(path); - } - - var requestOptions = new HttpRequestOptions - { - Url = "http://emby.media/community/index.php?/blog/rss/1-media-browser-developers-blog", - Progress = new Progress(), - UserAgent = "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.42 Safari/537.36", - BufferContent = false - }; - - using (var stream = await _httpClient.Get(requestOptions).ConfigureAwait(false)) - { - var doc = new XmlDocument(); - doc.Load(stream); - - var news = ParseRssItems(doc).ToList(); - - _json.SerializeToFile(news, path); - - await CreateNotifications(news, lastUpdate, CancellationToken.None).ConfigureAwait(false); - } - } - - private Task CreateNotifications(List items, DateTime? lastUpdate, CancellationToken cancellationToken) - { - if (lastUpdate.HasValue) - { - items = items.Where(i => i.Date.ToUniversalTime() >= lastUpdate.Value) - .ToList(); - } - - var tasks = items.Select(i => _notifications.SendNotification(new NotificationRequest - { - Date = i.Date, - Name = i.Title, - Description = i.Description, - Url = i.Link, - UserIds = _userManager.Users.Select(u => u.Id.ToString("N")).ToList() - - }, cancellationToken)); - - return Task.WhenAll(tasks); - } - - private IEnumerable ParseRssItems(XmlDocument xmlDoc) - { - var nodes = xmlDoc.SelectNodes("rss/channel/item"); - - if (nodes != null) - { - foreach (XmlNode node in nodes) - { - var newsItem = new NewsItem(); - - newsItem.Title = ParseDocElements(node, "title"); - - newsItem.DescriptionHtml = ParseDocElements(node, "description"); - newsItem.Description = newsItem.DescriptionHtml.StripHtml(); - - newsItem.Link = ParseDocElements(node, "link"); - - var date = ParseDocElements(node, "pubDate"); - DateTime parsedDate; - - if (DateTime.TryParse(date, out parsedDate)) - { - newsItem.Date = parsedDate; - } - - yield return newsItem; - } - } - } - - private string ParseDocElements(XmlNode parent, string xPath) - { - var node = parent.SelectSingleNode(xPath); - - return node != null ? node.InnerText : string.Empty; - } - - public void Dispose() - { - if (_timer != null) - { - _timer.Dispose(); - _timer = null; - } - } - } -} diff --git a/MediaBrowser.Server.Implementations/packages.config b/MediaBrowser.Server.Implementations/packages.config index cdfb48abe..5a43abe0f 100644 --- a/MediaBrowser.Server.Implementations/packages.config +++ b/MediaBrowser.Server.Implementations/packages.config @@ -1,8 +1,7 @@  - + - diff --git a/MediaBrowser.Server.Startup.Common/ApplicationHost.cs b/MediaBrowser.Server.Startup.Common/ApplicationHost.cs index 294e780cc..861d59908 100644 --- a/MediaBrowser.Server.Startup.Common/ApplicationHost.cs +++ b/MediaBrowser.Server.Startup.Common/ApplicationHost.cs @@ -59,7 +59,6 @@ using MediaBrowser.Server.Implementations.HttpServer.Security; using MediaBrowser.Server.Implementations.IO; using MediaBrowser.Server.Implementations.LiveTv; using MediaBrowser.Server.Implementations.Localization; -using MediaBrowser.Server.Implementations.MediaEncoder; using MediaBrowser.Server.Implementations.Notifications; using MediaBrowser.Server.Implementations.Persistence; using MediaBrowser.Server.Implementations.Security; @@ -107,6 +106,7 @@ using Emby.Server.Implementations.Devices; using Emby.Server.Implementations.Dto; using Emby.Server.Implementations.FileOrganization; using Emby.Server.Implementations.Library; +using Emby.Server.Implementations.MediaEncoder; using Emby.Server.Implementations.Notifications; using Emby.Server.Implementations.Persistence; using Emby.Server.Implementations.Playlists; diff --git a/MediaBrowser.Server.Startup.Common/MediaBrowser.Server.Startup.Common.csproj b/MediaBrowser.Server.Startup.Common/MediaBrowser.Server.Startup.Common.csproj index c64f065d7..6a84ee0c5 100644 --- a/MediaBrowser.Server.Startup.Common/MediaBrowser.Server.Startup.Common.csproj +++ b/MediaBrowser.Server.Startup.Common/MediaBrowser.Server.Startup.Common.csproj @@ -38,6 +38,10 @@ ..\ThirdParty\emby\Emby.Dlna.dll + + ..\packages\MediaBrowser.Naming.1.0.0.59\lib\portable-net45+win8\MediaBrowser.Naming.dll + True + False ..\packages\Mono.Posix.4.0.0.0\lib\net40\Mono.Posix.dll diff --git a/MediaBrowser.Server.Startup.Common/packages.config b/MediaBrowser.Server.Startup.Common/packages.config index aa11730c7..ea3d0e7f8 100644 --- a/MediaBrowser.Server.Startup.Common/packages.config +++ b/MediaBrowser.Server.Startup.Common/packages.config @@ -1,5 +1,6 @@  + diff --git a/MediaBrowser.XbmcMetadata/MediaBrowser.XbmcMetadata.csproj b/MediaBrowser.XbmcMetadata/MediaBrowser.XbmcMetadata.csproj index 0a86e96a5..e84fa8e65 100644 --- a/MediaBrowser.XbmcMetadata/MediaBrowser.XbmcMetadata.csproj +++ b/MediaBrowser.XbmcMetadata/MediaBrowser.XbmcMetadata.csproj @@ -32,11 +32,6 @@ prompt 4 - - - ..\packages\Patterns.Logging.1.0.0.2\lib\portable-net45+sl4+wp71+win8+wpa81\Patterns.Logging.dll - - Properties\SharedVersion.cs diff --git a/MediaBrowser.XbmcMetadata/packages.config b/MediaBrowser.XbmcMetadata/packages.config index 79ff26ec6..6b8deb9c9 100644 --- a/MediaBrowser.XbmcMetadata/packages.config +++ b/MediaBrowser.XbmcMetadata/packages.config @@ -1,4 +1,3 @@  - \ No newline at end of file From f52373609eac871c2883e1052020ff5327b19707 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Thu, 3 Nov 2016 18:34:16 -0400 Subject: [PATCH 13/17] move classes to portable project --- .../Cryptography/CryptographyProvider.cs | 8 +++++++ .../Reflection/AssemblyInfo.cs | 6 +++++- .../TextEncoding/TextEncoding.cs | 5 ++--- .../Xml/XmlReaderSettingsFactory.cs | 4 +++- .../Emby.Server.Implementations.csproj | 21 ++++++++++++++++--- .../IO/ThrottledStream.cs | 7 ++++--- .../Sync/AppSyncProvider.cs | 2 +- .../Sync/CloudSyncProfile.cs | 2 +- .../Sync/IHasSyncQuality.cs | 2 +- .../Sync/MediaSync.cs | 20 ++++++++---------- .../Sync/MultiProviderSync.cs | 9 +++++--- .../Sync/ServerSyncScheduledTask.cs | 9 +++++--- .../Sync/SyncConfig.cs | 2 +- .../Sync/SyncConvertScheduledTask.cs | 2 +- .../Sync/SyncHelper.cs | 2 +- .../Sync/SyncJobOptions.cs | 2 +- .../Sync/SyncJobProcessor.cs | 2 +- .../Sync/SyncManager.cs | 11 +++++----- .../Sync/SyncNotificationEntryPoint.cs | 2 +- .../Sync/SyncRegistrationInfo.cs | 2 +- .../Sync/SyncedMediaSourceProvider.cs | 4 ++-- .../Sync/TargetDataProvider.cs | 2 +- .../Subtitles/SubtitleEncoder.cs | 4 +++- .../Cryptography/ICryptographyProvider.cs | 1 + .../IO/LibraryMonitor.cs | 2 +- ...MediaBrowser.Server.Implementations.csproj | 20 ------------------ .../ApplicationHost.cs | 7 ++++--- 27 files changed, 89 insertions(+), 71 deletions(-) rename {MediaBrowser.Server.Implementations => Emby.Common.Implementations}/Reflection/AssemblyInfo.cs (63%) rename {MediaBrowser.Server.Implementations => Emby.Common.Implementations}/TextEncoding/TextEncoding.cs (88%) rename {MediaBrowser.Server.Implementations => Emby.Common.Implementations}/Xml/XmlReaderSettingsFactory.cs (87%) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/IO/ThrottledStream.cs (98%) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/Sync/AppSyncProvider.cs (98%) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/Sync/CloudSyncProfile.cs (99%) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/Sync/IHasSyncQuality.cs (95%) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/Sync/MediaSync.cs (97%) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/Sync/MultiProviderSync.cs (88%) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/Sync/ServerSyncScheduledTask.cs (87%) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/Sync/SyncConfig.cs (93%) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/Sync/SyncConvertScheduledTask.cs (98%) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/Sync/SyncHelper.cs (92%) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/Sync/SyncJobOptions.cs (91%) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/Sync/SyncJobProcessor.cs (99%) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/Sync/SyncManager.cs (99%) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/Sync/SyncNotificationEntryPoint.cs (96%) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/Sync/SyncRegistrationInfo.cs (93%) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/Sync/SyncedMediaSourceProvider.cs (97%) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/Sync/TargetDataProvider.cs (99%) diff --git a/Emby.Common.Implementations/Cryptography/CryptographyProvider.cs b/Emby.Common.Implementations/Cryptography/CryptographyProvider.cs index e5e4b1c7c..7b8d95b96 100644 --- a/Emby.Common.Implementations/Cryptography/CryptographyProvider.cs +++ b/Emby.Common.Implementations/Cryptography/CryptographyProvider.cs @@ -35,5 +35,13 @@ namespace Emby.Common.Implementations.Cryptography return provider.ComputeHash(str); } } + + public byte[] GetMD5Bytes(byte[] bytes) + { + using (var provider = MD5.Create()) + { + return provider.ComputeHash(bytes); + } + } } } diff --git a/MediaBrowser.Server.Implementations/Reflection/AssemblyInfo.cs b/Emby.Common.Implementations/Reflection/AssemblyInfo.cs similarity index 63% rename from MediaBrowser.Server.Implementations/Reflection/AssemblyInfo.cs rename to Emby.Common.Implementations/Reflection/AssemblyInfo.cs index ec25e7951..820856da5 100644 --- a/MediaBrowser.Server.Implementations/Reflection/AssemblyInfo.cs +++ b/Emby.Common.Implementations/Reflection/AssemblyInfo.cs @@ -1,14 +1,18 @@ using System; using System.IO; using MediaBrowser.Model.Reflection; +using System.Reflection; -namespace MediaBrowser.Server.Implementations.Reflection +namespace Emby.Common.Implementations.Reflection { public class AssemblyInfo : IAssemblyInfo { public Stream GetManifestResourceStream(Type type, string resource) { +#if NET46 return type.Assembly.GetManifestResourceStream(resource); +#endif + return type.GetTypeInfo().Assembly.GetManifestResourceStream(resource); } } } diff --git a/MediaBrowser.Server.Implementations/TextEncoding/TextEncoding.cs b/Emby.Common.Implementations/TextEncoding/TextEncoding.cs similarity index 88% rename from MediaBrowser.Server.Implementations/TextEncoding/TextEncoding.cs rename to Emby.Common.Implementations/TextEncoding/TextEncoding.cs index 4c047b7d5..35b869e43 100644 --- a/MediaBrowser.Server.Implementations/TextEncoding/TextEncoding.cs +++ b/Emby.Common.Implementations/TextEncoding/TextEncoding.cs @@ -2,7 +2,7 @@ using MediaBrowser.Model.IO; using MediaBrowser.Model.TextEncoding; -namespace MediaBrowser.Server.Implementations.TextEncoding +namespace Emby.Common.Implementations.TextEncoding { public class TextEncoding : IEncoding { @@ -42,8 +42,7 @@ namespace MediaBrowser.Server.Implementations.TextEncoding if (buffer[0] == 0x2b && buffer[1] == 0x2f && buffer[2] == 0x76) return Encoding.UTF7; - // It's ok - anything aside from utf is ok since that's what we're looking for - return Encoding.Default; + return null; } } } diff --git a/MediaBrowser.Server.Implementations/Xml/XmlReaderSettingsFactory.cs b/Emby.Common.Implementations/Xml/XmlReaderSettingsFactory.cs similarity index 87% rename from MediaBrowser.Server.Implementations/Xml/XmlReaderSettingsFactory.cs rename to Emby.Common.Implementations/Xml/XmlReaderSettingsFactory.cs index ae7018ad4..806290cf4 100644 --- a/MediaBrowser.Server.Implementations/Xml/XmlReaderSettingsFactory.cs +++ b/Emby.Common.Implementations/Xml/XmlReaderSettingsFactory.cs @@ -1,7 +1,7 @@ using System.Xml; using MediaBrowser.Model.Xml; -namespace MediaBrowser.Server.Implementations.Xml +namespace Emby.Common.Implementations.Xml { public class XmlReaderSettingsFactory : IXmlReaderSettingsFactory { @@ -11,7 +11,9 @@ namespace MediaBrowser.Server.Implementations.Xml if (!enableValidation) { +#if NET46 settings.ValidationType = ValidationType.None; +#endif } return settings; diff --git a/Emby.Server.Implementations/Emby.Server.Implementations.csproj b/Emby.Server.Implementations/Emby.Server.Implementations.csproj index e3d404644..152a165e2 100644 --- a/Emby.Server.Implementations/Emby.Server.Implementations.csproj +++ b/Emby.Server.Implementations/Emby.Server.Implementations.csproj @@ -69,6 +69,7 @@ + @@ -161,14 +162,28 @@ + + + + + + + + + + + + + + + + - - - + {9142eefa-7570-41e1-bfcc-468bb571af2f} diff --git a/MediaBrowser.Server.Implementations/IO/ThrottledStream.cs b/Emby.Server.Implementations/IO/ThrottledStream.cs similarity index 98% rename from MediaBrowser.Server.Implementations/IO/ThrottledStream.cs rename to Emby.Server.Implementations/IO/ThrottledStream.cs index 538812dc0..81760b639 100644 --- a/MediaBrowser.Server.Implementations/IO/ThrottledStream.cs +++ b/Emby.Server.Implementations/IO/ThrottledStream.cs @@ -3,7 +3,7 @@ using System.IO; using System.Threading; using System.Threading.Tasks; -namespace MediaBrowser.Server.Implementations.IO +namespace Emby.Server.Implementations.IO { /// /// Class for streaming data with throttling support. @@ -326,9 +326,10 @@ namespace MediaBrowser.Server.Implementations.IO try { // The time to sleep is more then a millisecond, so sleep. - Thread.Sleep(toSleep); + var task = Task.Delay(toSleep); + Task.WaitAll(task); } - catch (ThreadAbortException) + catch { // Eatup ThreadAbortException. } diff --git a/MediaBrowser.Server.Implementations/Sync/AppSyncProvider.cs b/Emby.Server.Implementations/Sync/AppSyncProvider.cs similarity index 98% rename from MediaBrowser.Server.Implementations/Sync/AppSyncProvider.cs rename to Emby.Server.Implementations/Sync/AppSyncProvider.cs index 408ec717e..d405a0ff9 100644 --- a/MediaBrowser.Server.Implementations/Sync/AppSyncProvider.cs +++ b/Emby.Server.Implementations/Sync/AppSyncProvider.cs @@ -7,7 +7,7 @@ using System; using System.Collections.Generic; using System.Linq; -namespace MediaBrowser.Server.Implementations.Sync +namespace Emby.Server.Implementations.Sync { public class AppSyncProvider : ISyncProvider, IHasUniqueTargetIds, IHasSyncQuality, IHasDuplicateCheck { diff --git a/MediaBrowser.Server.Implementations/Sync/CloudSyncProfile.cs b/Emby.Server.Implementations/Sync/CloudSyncProfile.cs similarity index 99% rename from MediaBrowser.Server.Implementations/Sync/CloudSyncProfile.cs rename to Emby.Server.Implementations/Sync/CloudSyncProfile.cs index f40b64498..1a78c8ae6 100644 --- a/MediaBrowser.Server.Implementations/Sync/CloudSyncProfile.cs +++ b/Emby.Server.Implementations/Sync/CloudSyncProfile.cs @@ -1,7 +1,7 @@ using MediaBrowser.Model.Dlna; using System.Collections.Generic; -namespace MediaBrowser.Server.Implementations.Sync +namespace Emby.Server.Implementations.Sync { public class CloudSyncProfile : DeviceProfile { diff --git a/MediaBrowser.Server.Implementations/Sync/IHasSyncQuality.cs b/Emby.Server.Implementations/Sync/IHasSyncQuality.cs similarity index 95% rename from MediaBrowser.Server.Implementations/Sync/IHasSyncQuality.cs rename to Emby.Server.Implementations/Sync/IHasSyncQuality.cs index e7eee0923..bec8b37a7 100644 --- a/MediaBrowser.Server.Implementations/Sync/IHasSyncQuality.cs +++ b/Emby.Server.Implementations/Sync/IHasSyncQuality.cs @@ -1,7 +1,7 @@ using MediaBrowser.Model.Sync; using System.Collections.Generic; -namespace MediaBrowser.Server.Implementations.Sync +namespace Emby.Server.Implementations.Sync { public interface IHasSyncQuality { diff --git a/MediaBrowser.Server.Implementations/Sync/MediaSync.cs b/Emby.Server.Implementations/Sync/MediaSync.cs similarity index 97% rename from MediaBrowser.Server.Implementations/Sync/MediaSync.cs rename to Emby.Server.Implementations/Sync/MediaSync.cs index b6853267e..b420a3df4 100644 --- a/MediaBrowser.Server.Implementations/Sync/MediaSync.cs +++ b/Emby.Server.Implementations/Sync/MediaSync.cs @@ -13,15 +13,14 @@ using System.Collections.Generic; using System.Globalization; using System.IO; using System.Linq; -using System.Security.Cryptography; using System.Text; using System.Threading; using System.Threading.Tasks; +using Emby.Server.Implementations.IO; +using MediaBrowser.Model.Cryptography; using MediaBrowser.Model.IO; -using MediaBrowser.Common.IO; -using MediaBrowser.Server.Implementations.IO; -namespace MediaBrowser.Server.Implementations.Sync +namespace Emby.Server.Implementations.Sync { public class MediaSync { @@ -30,17 +29,19 @@ namespace MediaBrowser.Server.Implementations.Sync private readonly ILogger _logger; private readonly IFileSystem _fileSystem; private readonly IConfigurationManager _config; + private readonly ICryptographyProvider _cryptographyProvider; public const string PathSeparatorString = "/"; public const char PathSeparatorChar = '/'; - public MediaSync(ILogger logger, ISyncManager syncManager, IServerApplicationHost appHost, IFileSystem fileSystem, IConfigurationManager config) + public MediaSync(ILogger logger, ISyncManager syncManager, IServerApplicationHost appHost, IFileSystem fileSystem, IConfigurationManager config, ICryptographyProvider cryptographyProvider) { _logger = logger; _syncManager = syncManager; _appHost = appHost; _fileSystem = fileSystem; _config = config; + _cryptographyProvider = cryptographyProvider; } public async Task Sync(IServerSyncProvider provider, @@ -360,19 +361,16 @@ namespace MediaBrowser.Server.Implementations.Sync } } - private static string GetLocalId(string jobItemId, string itemId) + private string GetLocalId(string jobItemId, string itemId) { var bytes = Encoding.UTF8.GetBytes(jobItemId + itemId); bytes = CreateMd5(bytes); return BitConverter.ToString(bytes, 0, bytes.Length).Replace("-", string.Empty); } - private static byte[] CreateMd5(byte[] value) + private byte[] CreateMd5(byte[] value) { - using (var provider = MD5.Create()) - { - return provider.ComputeHash(value); - } + return _cryptographyProvider.GetMD5Bytes(value); } public LocalItem CreateLocalItem(IServerSyncProvider provider, SyncedItem syncedItem, SyncJob job, SyncTarget target, BaseItemDto libraryItem, string serverId, string serverName, string originalFileName) diff --git a/MediaBrowser.Server.Implementations/Sync/MultiProviderSync.cs b/Emby.Server.Implementations/Sync/MultiProviderSync.cs similarity index 88% rename from MediaBrowser.Server.Implementations/Sync/MultiProviderSync.cs rename to Emby.Server.Implementations/Sync/MultiProviderSync.cs index 471604117..db6cfcbd6 100644 --- a/MediaBrowser.Server.Implementations/Sync/MultiProviderSync.cs +++ b/Emby.Server.Implementations/Sync/MultiProviderSync.cs @@ -11,9 +11,10 @@ using System.Threading; using System.Threading.Tasks; using MediaBrowser.Common.IO; using MediaBrowser.Controller.IO; +using MediaBrowser.Model.Cryptography; using MediaBrowser.Model.IO; -namespace MediaBrowser.Server.Implementations.Sync +namespace Emby.Server.Implementations.Sync { public class MultiProviderSync { @@ -22,14 +23,16 @@ namespace MediaBrowser.Server.Implementations.Sync private readonly ILogger _logger; private readonly IFileSystem _fileSystem; private readonly IConfigurationManager _config; + private readonly ICryptographyProvider _cryptographyProvider; - public MultiProviderSync(SyncManager syncManager, IServerApplicationHost appHost, ILogger logger, IFileSystem fileSystem, IConfigurationManager config) + public MultiProviderSync(SyncManager syncManager, IServerApplicationHost appHost, ILogger logger, IFileSystem fileSystem, IConfigurationManager config, ICryptographyProvider cryptographyProvider) { _syncManager = syncManager; _appHost = appHost; _logger = logger; _fileSystem = fileSystem; _config = config; + _cryptographyProvider = cryptographyProvider; } public async Task Sync(IEnumerable providers, IProgress progress, CancellationToken cancellationToken) @@ -61,7 +64,7 @@ namespace MediaBrowser.Server.Implementations.Sync var dataProvider = _syncManager.GetDataProvider(target.Item1, target.Item2); - await new MediaSync(_logger, _syncManager, _appHost, _fileSystem, _config) + await new MediaSync(_logger, _syncManager, _appHost, _fileSystem, _config, _cryptographyProvider) .Sync(target.Item1, dataProvider, target.Item2, innerProgress, cancellationToken) .ConfigureAwait(false); diff --git a/MediaBrowser.Server.Implementations/Sync/ServerSyncScheduledTask.cs b/Emby.Server.Implementations/Sync/ServerSyncScheduledTask.cs similarity index 87% rename from MediaBrowser.Server.Implementations/Sync/ServerSyncScheduledTask.cs rename to Emby.Server.Implementations/Sync/ServerSyncScheduledTask.cs index dc7f925a0..17171633e 100644 --- a/MediaBrowser.Server.Implementations/Sync/ServerSyncScheduledTask.cs +++ b/Emby.Server.Implementations/Sync/ServerSyncScheduledTask.cs @@ -7,10 +7,11 @@ using System.Collections.Generic; using System.Linq; using System.Threading; using System.Threading.Tasks; +using MediaBrowser.Model.Cryptography; using MediaBrowser.Model.IO; using MediaBrowser.Model.Tasks; -namespace MediaBrowser.Server.Implementations.Sync +namespace Emby.Server.Implementations.Sync { class ServerSyncScheduledTask : IScheduledTask, IConfigurableScheduledTask { @@ -19,14 +20,16 @@ namespace MediaBrowser.Server.Implementations.Sync private readonly IFileSystem _fileSystem; private readonly IServerApplicationHost _appHost; private readonly IConfigurationManager _config; + private readonly ICryptographyProvider _cryptographyProvider; - public ServerSyncScheduledTask(ISyncManager syncManager, ILogger logger, IFileSystem fileSystem, IServerApplicationHost appHost, IConfigurationManager config) + public ServerSyncScheduledTask(ISyncManager syncManager, ILogger logger, IFileSystem fileSystem, IServerApplicationHost appHost, IConfigurationManager config, ICryptographyProvider cryptographyProvider) { _syncManager = syncManager; _logger = logger; _fileSystem = fileSystem; _appHost = appHost; _config = config; + _cryptographyProvider = cryptographyProvider; } public string Name @@ -49,7 +52,7 @@ namespace MediaBrowser.Server.Implementations.Sync public Task Execute(CancellationToken cancellationToken, IProgress progress) { - return new MultiProviderSync((SyncManager)_syncManager, _appHost, _logger, _fileSystem, _config) + return new MultiProviderSync((SyncManager)_syncManager, _appHost, _logger, _fileSystem, _config, _cryptographyProvider) .Sync(ServerSyncProviders, progress, cancellationToken); } diff --git a/MediaBrowser.Server.Implementations/Sync/SyncConfig.cs b/Emby.Server.Implementations/Sync/SyncConfig.cs similarity index 93% rename from MediaBrowser.Server.Implementations/Sync/SyncConfig.cs rename to Emby.Server.Implementations/Sync/SyncConfig.cs index 52c774330..8a97326bd 100644 --- a/MediaBrowser.Server.Implementations/Sync/SyncConfig.cs +++ b/Emby.Server.Implementations/Sync/SyncConfig.cs @@ -2,7 +2,7 @@ using MediaBrowser.Model.Sync; using System.Collections.Generic; -namespace MediaBrowser.Server.Implementations.Sync +namespace Emby.Server.Implementations.Sync { public class SyncConfigurationFactory : IConfigurationFactory { diff --git a/MediaBrowser.Server.Implementations/Sync/SyncConvertScheduledTask.cs b/Emby.Server.Implementations/Sync/SyncConvertScheduledTask.cs similarity index 98% rename from MediaBrowser.Server.Implementations/Sync/SyncConvertScheduledTask.cs rename to Emby.Server.Implementations/Sync/SyncConvertScheduledTask.cs index 3a5023fe5..8dafac7e1 100644 --- a/MediaBrowser.Server.Implementations/Sync/SyncConvertScheduledTask.cs +++ b/Emby.Server.Implementations/Sync/SyncConvertScheduledTask.cs @@ -13,7 +13,7 @@ using MediaBrowser.Controller.IO; using MediaBrowser.Model.IO; using MediaBrowser.Model.Tasks; -namespace MediaBrowser.Server.Implementations.Sync +namespace Emby.Server.Implementations.Sync { public class SyncConvertScheduledTask : IScheduledTask { diff --git a/MediaBrowser.Server.Implementations/Sync/SyncHelper.cs b/Emby.Server.Implementations/Sync/SyncHelper.cs similarity index 92% rename from MediaBrowser.Server.Implementations/Sync/SyncHelper.cs rename to Emby.Server.Implementations/Sync/SyncHelper.cs index fb4e0c6be..da475f003 100644 --- a/MediaBrowser.Server.Implementations/Sync/SyncHelper.cs +++ b/Emby.Server.Implementations/Sync/SyncHelper.cs @@ -1,6 +1,6 @@ using System; -namespace MediaBrowser.Server.Implementations.Sync +namespace Emby.Server.Implementations.Sync { public class SyncHelper { diff --git a/MediaBrowser.Server.Implementations/Sync/SyncJobOptions.cs b/Emby.Server.Implementations/Sync/SyncJobOptions.cs similarity index 91% rename from MediaBrowser.Server.Implementations/Sync/SyncJobOptions.cs rename to Emby.Server.Implementations/Sync/SyncJobOptions.cs index cb8141c89..8e4d8e2ed 100644 --- a/MediaBrowser.Server.Implementations/Sync/SyncJobOptions.cs +++ b/Emby.Server.Implementations/Sync/SyncJobOptions.cs @@ -1,6 +1,6 @@ using MediaBrowser.Model.Dlna; -namespace MediaBrowser.Server.Implementations.Sync +namespace Emby.Server.Implementations.Sync { public class SyncJobOptions { diff --git a/MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs b/Emby.Server.Implementations/Sync/SyncJobProcessor.cs similarity index 99% rename from MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs rename to Emby.Server.Implementations/Sync/SyncJobProcessor.cs index 8d2c0b20c..415757609 100644 --- a/MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs +++ b/Emby.Server.Implementations/Sync/SyncJobProcessor.cs @@ -28,7 +28,7 @@ using MediaBrowser.Model.IO; using MediaBrowser.Model.Extensions; using MediaBrowser.Model.IO; -namespace MediaBrowser.Server.Implementations.Sync +namespace Emby.Server.Implementations.Sync { public class SyncJobProcessor { diff --git a/MediaBrowser.Server.Implementations/Sync/SyncManager.cs b/Emby.Server.Implementations/Sync/SyncManager.cs similarity index 99% rename from MediaBrowser.Server.Implementations/Sync/SyncManager.cs rename to Emby.Server.Implementations/Sync/SyncManager.cs index 7bcb7b05e..d06ed49fd 100644 --- a/MediaBrowser.Server.Implementations/Sync/SyncManager.cs +++ b/Emby.Server.Implementations/Sync/SyncManager.cs @@ -23,6 +23,7 @@ using MediaBrowser.Model.Users; using System; using System.Collections.Concurrent; using System.Collections.Generic; +using System.Globalization; using System.IO; using System.Linq; using System.Threading; @@ -30,7 +31,7 @@ using System.Threading.Tasks; using MediaBrowser.Model.IO; using MediaBrowser.Model.Tasks; -namespace MediaBrowser.Server.Implementations.Sync +namespace Emby.Server.Implementations.Sync { public class SyncManager : ISyncManager { @@ -124,7 +125,7 @@ namespace MediaBrowser.Server.Implementations.Sync if (string.IsNullOrWhiteSpace(request.Name)) { - request.Name = DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString(); + request.Name = DateTime.Now.ToString("f1", CultureInfo.CurrentCulture); } var target = GetSyncTargets(request.UserId) @@ -419,7 +420,7 @@ namespace MediaBrowser.Server.Implementations.Sync { _fileSystem.DeleteDirectory(path, true); } - catch (DirectoryNotFoundException) + catch (IOException) { } @@ -574,7 +575,7 @@ namespace MediaBrowser.Server.Implementations.Sync { _fileSystem.DeleteDirectory(jobItem.TemporaryPath, true); } - catch (DirectoryNotFoundException) + catch (IOException) { } catch (Exception ex) @@ -1061,7 +1062,7 @@ namespace MediaBrowser.Server.Implementations.Sync { _fileSystem.DeleteDirectory(path, true); } - catch (DirectoryNotFoundException) + catch (IOException) { } diff --git a/MediaBrowser.Server.Implementations/Sync/SyncNotificationEntryPoint.cs b/Emby.Server.Implementations/Sync/SyncNotificationEntryPoint.cs similarity index 96% rename from MediaBrowser.Server.Implementations/Sync/SyncNotificationEntryPoint.cs rename to Emby.Server.Implementations/Sync/SyncNotificationEntryPoint.cs index 7017b422e..46cdb28a4 100644 --- a/MediaBrowser.Server.Implementations/Sync/SyncNotificationEntryPoint.cs +++ b/Emby.Server.Implementations/Sync/SyncNotificationEntryPoint.cs @@ -5,7 +5,7 @@ using MediaBrowser.Controller.Sync; using MediaBrowser.Model.Events; using MediaBrowser.Model.Sync; -namespace MediaBrowser.Server.Implementations.Sync +namespace Emby.Server.Implementations.Sync { public class SyncNotificationEntryPoint : IServerEntryPoint { diff --git a/MediaBrowser.Server.Implementations/Sync/SyncRegistrationInfo.cs b/Emby.Server.Implementations/Sync/SyncRegistrationInfo.cs similarity index 93% rename from MediaBrowser.Server.Implementations/Sync/SyncRegistrationInfo.cs rename to Emby.Server.Implementations/Sync/SyncRegistrationInfo.cs index 40b84b1c2..c2658c5c5 100644 --- a/MediaBrowser.Server.Implementations/Sync/SyncRegistrationInfo.cs +++ b/Emby.Server.Implementations/Sync/SyncRegistrationInfo.cs @@ -1,7 +1,7 @@ using MediaBrowser.Common.Security; using System.Threading.Tasks; -namespace MediaBrowser.Server.Implementations.Sync +namespace Emby.Server.Implementations.Sync { public class SyncRegistrationInfo : IRequiresRegistration { diff --git a/MediaBrowser.Server.Implementations/Sync/SyncedMediaSourceProvider.cs b/Emby.Server.Implementations/Sync/SyncedMediaSourceProvider.cs similarity index 97% rename from MediaBrowser.Server.Implementations/Sync/SyncedMediaSourceProvider.cs rename to Emby.Server.Implementations/Sync/SyncedMediaSourceProvider.cs index e0553b1b1..1e54885e6 100644 --- a/MediaBrowser.Server.Implementations/Sync/SyncedMediaSourceProvider.cs +++ b/Emby.Server.Implementations/Sync/SyncedMediaSourceProvider.cs @@ -12,7 +12,7 @@ using System.Linq; using System.Threading; using System.Threading.Tasks; -namespace MediaBrowser.Server.Implementations.Sync +namespace Emby.Server.Implementations.Sync { public class SyncedMediaSourceProvider : IMediaSourceProvider { @@ -144,7 +144,7 @@ namespace MediaBrowser.Server.Implementations.Sync { mediaSource.Id = item.Id; mediaSource.SupportsTranscoding = false; - if (mediaSource.Protocol == Model.MediaInfo.MediaProtocol.File) + if (mediaSource.Protocol == MediaBrowser.Model.MediaInfo.MediaProtocol.File) { mediaSource.ETag = item.Id; } diff --git a/MediaBrowser.Server.Implementations/Sync/TargetDataProvider.cs b/Emby.Server.Implementations/Sync/TargetDataProvider.cs similarity index 99% rename from MediaBrowser.Server.Implementations/Sync/TargetDataProvider.cs rename to Emby.Server.Implementations/Sync/TargetDataProvider.cs index 03df0d4e6..a0e0f4313 100644 --- a/MediaBrowser.Server.Implementations/Sync/TargetDataProvider.cs +++ b/Emby.Server.Implementations/Sync/TargetDataProvider.cs @@ -11,7 +11,7 @@ using System.Threading; using System.Threading.Tasks; using MediaBrowser.Model.IO; -namespace MediaBrowser.Server.Implementations.Sync +namespace Emby.Server.Implementations.Sync { public class TargetDataProvider : ISyncDataProvider { diff --git a/MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs b/MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs index 1248d138d..0baee67ea 100644 --- a/MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs +++ b/MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs @@ -793,7 +793,9 @@ namespace MediaBrowser.MediaEncoding.Subtitles { if (protocol == MediaProtocol.File) { - if (_textEncoding.GetFileEncoding(path).Equals(Encoding.UTF8)) + var fileEncoding = _textEncoding.GetFileEncoding(path); + + if (fileEncoding != null && fileEncoding.Equals(Encoding.UTF8)) { return string.Empty; } diff --git a/MediaBrowser.Model/Cryptography/ICryptographyProvider.cs b/MediaBrowser.Model/Cryptography/ICryptographyProvider.cs index 696a7c100..a3f86f9e2 100644 --- a/MediaBrowser.Model/Cryptography/ICryptographyProvider.cs +++ b/MediaBrowser.Model/Cryptography/ICryptographyProvider.cs @@ -9,5 +9,6 @@ namespace MediaBrowser.Model.Cryptography byte[] GetMD5Bytes(string str); byte[] GetSHA1Bytes(byte[] bytes); byte[] GetMD5Bytes(Stream str); + byte[] GetMD5Bytes(byte[] bytes); } } \ No newline at end of file diff --git a/MediaBrowser.Server.Implementations/IO/LibraryMonitor.cs b/MediaBrowser.Server.Implementations/IO/LibraryMonitor.cs index 1f2a6255e..49cb1e75f 100644 --- a/MediaBrowser.Server.Implementations/IO/LibraryMonitor.cs +++ b/MediaBrowser.Server.Implementations/IO/LibraryMonitor.cs @@ -4,7 +4,6 @@ using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Plugins; using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Logging; -using Microsoft.Win32; using System; using System.Collections.Concurrent; using System.Collections.Generic; @@ -17,6 +16,7 @@ using MediaBrowser.Controller; using MediaBrowser.Controller.IO; using MediaBrowser.Model.Tasks; using MediaBrowser.Model.Threading; +using Microsoft.Win32; namespace MediaBrowser.Server.Implementations.IO { diff --git a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj index b31c8286c..5d1d2fc38 100644 --- a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj +++ b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj @@ -144,7 +144,6 @@ - @@ -202,17 +201,12 @@ - - - - - @@ -235,23 +229,9 @@ - - - - - - - - - - - - - - diff --git a/MediaBrowser.Server.Startup.Common/ApplicationHost.cs b/MediaBrowser.Server.Startup.Common/ApplicationHost.cs index 861d59908..11d401670 100644 --- a/MediaBrowser.Server.Startup.Common/ApplicationHost.cs +++ b/MediaBrowser.Server.Startup.Common/ApplicationHost.cs @@ -83,7 +83,10 @@ using System.Threading; using System.Threading.Tasks; using Emby.Common.Implementations; using Emby.Common.Implementations.Networking; +using Emby.Common.Implementations.Reflection; +using Emby.Common.Implementations.TextEncoding; using Emby.Common.Implementations.Updates; +using Emby.Common.Implementations.Xml; using Emby.Photos; using MediaBrowser.Model.IO; using MediaBrowser.Api.Playback; @@ -110,6 +113,7 @@ using Emby.Server.Implementations.MediaEncoder; using Emby.Server.Implementations.Notifications; using Emby.Server.Implementations.Persistence; using Emby.Server.Implementations.Playlists; +using Emby.Server.Implementations.Sync; using Emby.Server.Implementations.TV; using Emby.Server.Implementations.Updates; using MediaBrowser.Model.Activity; @@ -124,10 +128,7 @@ using MediaBrowser.Model.Social; using MediaBrowser.Model.TextEncoding; using MediaBrowser.Model.Xml; using MediaBrowser.Server.Implementations.Archiving; -using MediaBrowser.Server.Implementations.Reflection; using MediaBrowser.Server.Implementations.Serialization; -using MediaBrowser.Server.Implementations.TextEncoding; -using MediaBrowser.Server.Implementations.Xml; using OpenSubtitlesHandler; using ServiceStack; using StringExtensions = MediaBrowser.Controller.Extensions.StringExtensions; From 8ef442c2e8f39307f72bc98d6c79a9b5f09e6d72 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Thu, 3 Nov 2016 18:53:02 -0400 Subject: [PATCH 14/17] move classes --- Emby.Dlna/DlnaManager.cs | 6 +++-- .../Emby.Server.Implementations.csproj | 7 ++++++ .../ServerManager/ServerManager.cs | 22 +++++++++---------- .../ServerManager/WebSocketConnection.cs | 11 ++++++---- .../TV/SeriesPostScanTask.cs | 11 ++++++---- Emby.Server.Implementations/project.json | 3 ++- .../Connect/ConnectEntryPoint.cs | 10 +++++---- .../EntryPoints/ExternalPortForwarding.cs | 10 +++++---- ...MediaBrowser.Server.Implementations.csproj | 4 ---- .../ApplicationHost.cs | 4 ++-- .../EntryPoints/KeepServerAwake.cs | 2 +- .../MediaBrowser.Server.Startup.Common.csproj | 1 + .../Threading/PeriodicTimer.cs | 6 ++--- 13 files changed, 57 insertions(+), 40 deletions(-) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/ServerManager/ServerManager.cs (93%) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/ServerManager/WebSocketConnection.cs (95%) rename {MediaBrowser.Server.Implementations => Emby.Server.Implementations}/TV/SeriesPostScanTask.cs (94%) rename {MediaBrowser.Server.Implementations => MediaBrowser.Server.Startup.Common}/Threading/PeriodicTimer.cs (87%) diff --git a/Emby.Dlna/DlnaManager.cs b/Emby.Dlna/DlnaManager.cs index c5798a5d1..c348e658c 100644 --- a/Emby.Dlna/DlnaManager.cs +++ b/Emby.Dlna/DlnaManager.cs @@ -560,17 +560,19 @@ namespace Emby.Dlna ? ImageFormat.Png : ImageFormat.Jpg; + var resource = GetType().Namespace + ".Images." + filename.ToLower(); + #if NET46 return new ImageStream { Format = format, - Stream = GetType().Assembly.GetManifestResourceStream("MediaBrowser.Dlna.Images." + filename.ToLower()) + Stream = GetType().Assembly.GetManifestResourceStream(resource) }; #elif NETSTANDARD1_6 return new ImageStream { Format = format, - Stream = GetType().GetTypeInfo().Assembly.GetManifestResourceStream("MediaBrowser.Dlna.Images." + filename.ToLower()) + Stream = GetType().GetTypeInfo().Assembly.GetManifestResourceStream(resource) }; #endif throw new NotImplementedException(); diff --git a/Emby.Server.Implementations/Emby.Server.Implementations.csproj b/Emby.Server.Implementations/Emby.Server.Implementations.csproj index 152a165e2..7829193c5 100644 --- a/Emby.Server.Implementations/Emby.Server.Implementations.csproj +++ b/Emby.Server.Implementations/Emby.Server.Implementations.csproj @@ -131,6 +131,8 @@ + + @@ -178,6 +180,7 @@ + @@ -197,6 +200,10 @@ {7eeeb4bb-f3e8-48fc-b4c5-70f0fff8329b} MediaBrowser.Model + + {442b5058-dcaf-4263-bb6a-f21e31120a1b} + MediaBrowser.Providers +