Ver Fonte

move classes to portable project

Luke Pulverenti há 8 anos atrás
pai
commit
f52373609e
27 ficheiros alterados com 89 adições e 71 exclusões
  1. 8 0
      Emby.Common.Implementations/Cryptography/CryptographyProvider.cs
  2. 5 1
      Emby.Common.Implementations/Reflection/AssemblyInfo.cs
  3. 2 3
      Emby.Common.Implementations/TextEncoding/TextEncoding.cs
  4. 3 1
      Emby.Common.Implementations/Xml/XmlReaderSettingsFactory.cs
  5. 18 3
      Emby.Server.Implementations/Emby.Server.Implementations.csproj
  6. 4 3
      Emby.Server.Implementations/IO/ThrottledStream.cs
  7. 1 1
      Emby.Server.Implementations/Sync/AppSyncProvider.cs
  8. 1 1
      Emby.Server.Implementations/Sync/CloudSyncProfile.cs
  9. 1 1
      Emby.Server.Implementations/Sync/IHasSyncQuality.cs
  10. 9 11
      Emby.Server.Implementations/Sync/MediaSync.cs
  11. 6 3
      Emby.Server.Implementations/Sync/MultiProviderSync.cs
  12. 6 3
      Emby.Server.Implementations/Sync/ServerSyncScheduledTask.cs
  13. 1 1
      Emby.Server.Implementations/Sync/SyncConfig.cs
  14. 1 1
      Emby.Server.Implementations/Sync/SyncConvertScheduledTask.cs
  15. 1 1
      Emby.Server.Implementations/Sync/SyncHelper.cs
  16. 1 1
      Emby.Server.Implementations/Sync/SyncJobOptions.cs
  17. 1 1
      Emby.Server.Implementations/Sync/SyncJobProcessor.cs
  18. 6 5
      Emby.Server.Implementations/Sync/SyncManager.cs
  19. 1 1
      Emby.Server.Implementations/Sync/SyncNotificationEntryPoint.cs
  20. 1 1
      Emby.Server.Implementations/Sync/SyncRegistrationInfo.cs
  21. 2 2
      Emby.Server.Implementations/Sync/SyncedMediaSourceProvider.cs
  22. 1 1
      Emby.Server.Implementations/Sync/TargetDataProvider.cs
  23. 3 1
      MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs
  24. 1 0
      MediaBrowser.Model/Cryptography/ICryptographyProvider.cs
  25. 1 1
      MediaBrowser.Server.Implementations/IO/LibraryMonitor.cs
  26. 0 20
      MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj
  27. 4 3
      MediaBrowser.Server.Startup.Common/ApplicationHost.cs

+ 8 - 0
Emby.Common.Implementations/Cryptography/CryptographyProvider.cs

@@ -35,5 +35,13 @@ namespace Emby.Common.Implementations.Cryptography
                 return provider.ComputeHash(str);
                 return provider.ComputeHash(str);
             }
             }
         }
         }
+
+        public byte[] GetMD5Bytes(byte[] bytes)
+        {
+            using (var provider = MD5.Create())
+            {
+                return provider.ComputeHash(bytes);
+            }
+        }
     }
     }
 }
 }

+ 5 - 1
MediaBrowser.Server.Implementations/Reflection/AssemblyInfo.cs → Emby.Common.Implementations/Reflection/AssemblyInfo.cs

@@ -1,14 +1,18 @@
 using System;
 using System;
 using System.IO;
 using System.IO;
 using MediaBrowser.Model.Reflection;
 using MediaBrowser.Model.Reflection;
+using System.Reflection;
 
 
-namespace MediaBrowser.Server.Implementations.Reflection
+namespace Emby.Common.Implementations.Reflection
 {
 {
     public class AssemblyInfo : IAssemblyInfo
     public class AssemblyInfo : IAssemblyInfo
     {
     {
         public Stream GetManifestResourceStream(Type type, string resource)
         public Stream GetManifestResourceStream(Type type, string resource)
         {
         {
+#if NET46
             return type.Assembly.GetManifestResourceStream(resource);
             return type.Assembly.GetManifestResourceStream(resource);
+#endif
+            return type.GetTypeInfo().Assembly.GetManifestResourceStream(resource);
         }
         }
     }
     }
 }
 }

+ 2 - 3
MediaBrowser.Server.Implementations/TextEncoding/TextEncoding.cs → Emby.Common.Implementations/TextEncoding/TextEncoding.cs

@@ -2,7 +2,7 @@
 using MediaBrowser.Model.IO;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Model.TextEncoding;
 using MediaBrowser.Model.TextEncoding;
 
 
-namespace MediaBrowser.Server.Implementations.TextEncoding
+namespace Emby.Common.Implementations.TextEncoding
 {
 {
     public class TextEncoding : IEncoding
     public class TextEncoding : IEncoding
     {
     {
@@ -42,8 +42,7 @@ namespace MediaBrowser.Server.Implementations.TextEncoding
             if (buffer[0] == 0x2b && buffer[1] == 0x2f && buffer[2] == 0x76)
             if (buffer[0] == 0x2b && buffer[1] == 0x2f && buffer[2] == 0x76)
                 return Encoding.UTF7;
                 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;
         }
         }
     }
     }
 }
 }

+ 3 - 1
MediaBrowser.Server.Implementations/Xml/XmlReaderSettingsFactory.cs → Emby.Common.Implementations/Xml/XmlReaderSettingsFactory.cs

@@ -1,7 +1,7 @@
 using System.Xml;
 using System.Xml;
 using MediaBrowser.Model.Xml;
 using MediaBrowser.Model.Xml;
 
 
-namespace MediaBrowser.Server.Implementations.Xml
+namespace Emby.Common.Implementations.Xml
 {
 {
     public class XmlReaderSettingsFactory : IXmlReaderSettingsFactory
     public class XmlReaderSettingsFactory : IXmlReaderSettingsFactory
     {
     {
@@ -11,7 +11,9 @@ namespace MediaBrowser.Server.Implementations.Xml
 
 
             if (!enableValidation)
             if (!enableValidation)
             {
             {
+#if NET46
                 settings.ValidationType = ValidationType.None;
                 settings.ValidationType = ValidationType.None;
+#endif
             }
             }
 
 
             return settings;
             return settings;

+ 18 - 3
Emby.Server.Implementations/Emby.Server.Implementations.csproj

@@ -69,6 +69,7 @@
     <Compile Include="FileOrganization\TvFolderOrganizer.cs" />
     <Compile Include="FileOrganization\TvFolderOrganizer.cs" />
     <Compile Include="Images\BaseDynamicImageProvider.cs" />
     <Compile Include="Images\BaseDynamicImageProvider.cs" />
     <Compile Include="Intros\DefaultIntroProvider.cs" />
     <Compile Include="Intros\DefaultIntroProvider.cs" />
+    <Compile Include="IO\ThrottledStream.cs" />
     <Compile Include="Library\CoreResolutionIgnoreRule.cs" />
     <Compile Include="Library\CoreResolutionIgnoreRule.cs" />
     <Compile Include="Library\LibraryManager.cs" />
     <Compile Include="Library\LibraryManager.cs" />
     <Compile Include="Library\LocalTrailerPostScanTask.cs" />
     <Compile Include="Library\LocalTrailerPostScanTask.cs" />
@@ -161,14 +162,28 @@
     <Compile Include="Sorting\SortNameComparer.cs" />
     <Compile Include="Sorting\SortNameComparer.cs" />
     <Compile Include="Sorting\StartDateComparer.cs" />
     <Compile Include="Sorting\StartDateComparer.cs" />
     <Compile Include="Sorting\StudioComparer.cs" />
     <Compile Include="Sorting\StudioComparer.cs" />
+    <Compile Include="Sync\AppSyncProvider.cs" />
+    <Compile Include="Sync\CloudSyncProfile.cs" />
+    <Compile Include="Sync\IHasSyncQuality.cs" />
+    <Compile Include="Sync\MediaSync.cs" />
+    <Compile Include="Sync\MultiProviderSync.cs" />
+    <Compile Include="Sync\ServerSyncScheduledTask.cs" />
+    <Compile Include="Sync\SyncConfig.cs" />
+    <Compile Include="Sync\SyncConvertScheduledTask.cs" />
+    <Compile Include="Sync\SyncedMediaSourceProvider.cs" />
+    <Compile Include="Sync\SyncHelper.cs" />
+    <Compile Include="Sync\SyncJobOptions.cs" />
+    <Compile Include="Sync\SyncJobProcessor.cs" />
+    <Compile Include="Sync\SyncManager.cs" />
+    <Compile Include="Sync\SyncNotificationEntryPoint.cs" />
+    <Compile Include="Sync\SyncRegistrationInfo.cs" />
+    <Compile Include="Sync\TargetDataProvider.cs" />
     <Compile Include="TV\TVSeriesManager.cs" />
     <Compile Include="TV\TVSeriesManager.cs" />
     <Compile Include="Updates\InstallationManager.cs" />
     <Compile Include="Updates\InstallationManager.cs" />
     <Compile Include="UserViews\CollectionFolderImageProvider.cs" />
     <Compile Include="UserViews\CollectionFolderImageProvider.cs" />
     <Compile Include="UserViews\DynamicImageProvider.cs" />
     <Compile Include="UserViews\DynamicImageProvider.cs" />
   </ItemGroup>
   </ItemGroup>
-  <ItemGroup>
-    <Folder Include="IO\" />
-  </ItemGroup>
+  <ItemGroup />
   <ItemGroup>
   <ItemGroup>
     <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj">
     <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj">
       <Project>{9142eefa-7570-41e1-bfcc-468bb571af2f}</Project>
       <Project>{9142eefa-7570-41e1-bfcc-468bb571af2f}</Project>

+ 4 - 3
MediaBrowser.Server.Implementations/IO/ThrottledStream.cs → Emby.Server.Implementations/IO/ThrottledStream.cs

@@ -3,7 +3,7 @@ using System.IO;
 using System.Threading;
 using System.Threading;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
 
 
-namespace MediaBrowser.Server.Implementations.IO
+namespace Emby.Server.Implementations.IO
 {
 {
     /// <summary>
     /// <summary>
     /// Class for streaming data with throttling support.
     /// Class for streaming data with throttling support.
@@ -326,9 +326,10 @@ namespace MediaBrowser.Server.Implementations.IO
                         try
                         try
                         {
                         {
                             // The time to sleep is more then a millisecond, so sleep.
                             // 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.
                             // Eatup ThreadAbortException.
                         }
                         }

+ 1 - 1
MediaBrowser.Server.Implementations/Sync/AppSyncProvider.cs → Emby.Server.Implementations/Sync/AppSyncProvider.cs

@@ -7,7 +7,7 @@ using System;
 using System.Collections.Generic;
 using System.Collections.Generic;
 using System.Linq;
 using System.Linq;
 
 
-namespace MediaBrowser.Server.Implementations.Sync
+namespace Emby.Server.Implementations.Sync
 {
 {
     public class AppSyncProvider : ISyncProvider, IHasUniqueTargetIds, IHasSyncQuality, IHasDuplicateCheck
     public class AppSyncProvider : ISyncProvider, IHasUniqueTargetIds, IHasSyncQuality, IHasDuplicateCheck
     {
     {

+ 1 - 1
MediaBrowser.Server.Implementations/Sync/CloudSyncProfile.cs → Emby.Server.Implementations/Sync/CloudSyncProfile.cs

@@ -1,7 +1,7 @@
 using MediaBrowser.Model.Dlna;
 using MediaBrowser.Model.Dlna;
 using System.Collections.Generic;
 using System.Collections.Generic;
 
 
-namespace MediaBrowser.Server.Implementations.Sync
+namespace Emby.Server.Implementations.Sync
 {
 {
     public class CloudSyncProfile : DeviceProfile
     public class CloudSyncProfile : DeviceProfile
     {
     {

+ 1 - 1
MediaBrowser.Server.Implementations/Sync/IHasSyncQuality.cs → Emby.Server.Implementations/Sync/IHasSyncQuality.cs

@@ -1,7 +1,7 @@
 using MediaBrowser.Model.Sync;
 using MediaBrowser.Model.Sync;
 using System.Collections.Generic;
 using System.Collections.Generic;
 
 
-namespace MediaBrowser.Server.Implementations.Sync
+namespace Emby.Server.Implementations.Sync
 {
 {
     public interface IHasSyncQuality
     public interface IHasSyncQuality
     {
     {

+ 9 - 11
MediaBrowser.Server.Implementations/Sync/MediaSync.cs → Emby.Server.Implementations/Sync/MediaSync.cs

@@ -13,15 +13,14 @@ using System.Collections.Generic;
 using System.Globalization;
 using System.Globalization;
 using System.IO;
 using System.IO;
 using System.Linq;
 using System.Linq;
-using System.Security.Cryptography;
 using System.Text;
 using System.Text;
 using System.Threading;
 using System.Threading;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
+using Emby.Server.Implementations.IO;
+using MediaBrowser.Model.Cryptography;
 using MediaBrowser.Model.IO;
 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
     public class MediaSync
     {
     {
@@ -30,17 +29,19 @@ namespace MediaBrowser.Server.Implementations.Sync
         private readonly ILogger _logger;
         private readonly ILogger _logger;
         private readonly IFileSystem _fileSystem;
         private readonly IFileSystem _fileSystem;
         private readonly IConfigurationManager _config;
         private readonly IConfigurationManager _config;
+        private readonly ICryptographyProvider _cryptographyProvider;
 
 
         public const string PathSeparatorString = "/";
         public const string PathSeparatorString = "/";
         public const char PathSeparatorChar = '/';
         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;
             _logger = logger;
             _syncManager = syncManager;
             _syncManager = syncManager;
             _appHost = appHost;
             _appHost = appHost;
             _fileSystem = fileSystem;
             _fileSystem = fileSystem;
             _config = config;
             _config = config;
+            _cryptographyProvider = cryptographyProvider;
         }
         }
 
 
         public async Task Sync(IServerSyncProvider provider,
         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);
             var bytes = Encoding.UTF8.GetBytes(jobItemId + itemId);
             bytes = CreateMd5(bytes);
             bytes = CreateMd5(bytes);
             return BitConverter.ToString(bytes, 0, bytes.Length).Replace("-", string.Empty);
             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)
         public LocalItem CreateLocalItem(IServerSyncProvider provider, SyncedItem syncedItem, SyncJob job, SyncTarget target, BaseItemDto libraryItem, string serverId, string serverName, string originalFileName)

+ 6 - 3
MediaBrowser.Server.Implementations/Sync/MultiProviderSync.cs → Emby.Server.Implementations/Sync/MultiProviderSync.cs

@@ -11,9 +11,10 @@ using System.Threading;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
 using MediaBrowser.Common.IO;
 using MediaBrowser.Common.IO;
 using MediaBrowser.Controller.IO;
 using MediaBrowser.Controller.IO;
+using MediaBrowser.Model.Cryptography;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Model.IO;
 
 
-namespace MediaBrowser.Server.Implementations.Sync
+namespace Emby.Server.Implementations.Sync
 {
 {
     public class MultiProviderSync
     public class MultiProviderSync
     {
     {
@@ -22,14 +23,16 @@ namespace MediaBrowser.Server.Implementations.Sync
         private readonly ILogger _logger;
         private readonly ILogger _logger;
         private readonly IFileSystem _fileSystem;
         private readonly IFileSystem _fileSystem;
         private readonly IConfigurationManager _config;
         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;
             _syncManager = syncManager;
             _appHost = appHost;
             _appHost = appHost;
             _logger = logger;
             _logger = logger;
             _fileSystem = fileSystem;
             _fileSystem = fileSystem;
             _config = config;
             _config = config;
+            _cryptographyProvider = cryptographyProvider;
         }
         }
 
 
         public async Task Sync(IEnumerable<IServerSyncProvider> providers, IProgress<double> progress, CancellationToken cancellationToken)
         public async Task Sync(IEnumerable<IServerSyncProvider> providers, IProgress<double> progress, CancellationToken cancellationToken)
@@ -61,7 +64,7 @@ namespace MediaBrowser.Server.Implementations.Sync
 
 
                 var dataProvider = _syncManager.GetDataProvider(target.Item1, target.Item2);
                 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)
                     .Sync(target.Item1, dataProvider, target.Item2, innerProgress, cancellationToken)
                     .ConfigureAwait(false);
                     .ConfigureAwait(false);
 
 

+ 6 - 3
MediaBrowser.Server.Implementations/Sync/ServerSyncScheduledTask.cs → Emby.Server.Implementations/Sync/ServerSyncScheduledTask.cs

@@ -7,10 +7,11 @@ using System.Collections.Generic;
 using System.Linq;
 using System.Linq;
 using System.Threading;
 using System.Threading;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
+using MediaBrowser.Model.Cryptography;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Model.Tasks;
 using MediaBrowser.Model.Tasks;
 
 
-namespace MediaBrowser.Server.Implementations.Sync
+namespace Emby.Server.Implementations.Sync
 {
 {
     class ServerSyncScheduledTask : IScheduledTask, IConfigurableScheduledTask
     class ServerSyncScheduledTask : IScheduledTask, IConfigurableScheduledTask
     {
     {
@@ -19,14 +20,16 @@ namespace MediaBrowser.Server.Implementations.Sync
         private readonly IFileSystem _fileSystem;
         private readonly IFileSystem _fileSystem;
         private readonly IServerApplicationHost _appHost;
         private readonly IServerApplicationHost _appHost;
         private readonly IConfigurationManager _config;
         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;
             _syncManager = syncManager;
             _logger = logger;
             _logger = logger;
             _fileSystem = fileSystem;
             _fileSystem = fileSystem;
             _appHost = appHost;
             _appHost = appHost;
             _config = config;
             _config = config;
+            _cryptographyProvider = cryptographyProvider;
         }
         }
 
 
         public string Name
         public string Name
@@ -49,7 +52,7 @@ namespace MediaBrowser.Server.Implementations.Sync
 
 
         public Task Execute(CancellationToken cancellationToken, IProgress<double> progress)
         public Task Execute(CancellationToken cancellationToken, IProgress<double> progress)
         {
         {
-            return new MultiProviderSync((SyncManager)_syncManager, _appHost, _logger, _fileSystem, _config)
+            return new MultiProviderSync((SyncManager)_syncManager, _appHost, _logger, _fileSystem, _config, _cryptographyProvider)
                 .Sync(ServerSyncProviders, progress, cancellationToken);
                 .Sync(ServerSyncProviders, progress, cancellationToken);
         }
         }
 
 

+ 1 - 1
MediaBrowser.Server.Implementations/Sync/SyncConfig.cs → Emby.Server.Implementations/Sync/SyncConfig.cs

@@ -2,7 +2,7 @@
 using MediaBrowser.Model.Sync;
 using MediaBrowser.Model.Sync;
 using System.Collections.Generic;
 using System.Collections.Generic;
 
 
-namespace MediaBrowser.Server.Implementations.Sync
+namespace Emby.Server.Implementations.Sync
 {
 {
     public class SyncConfigurationFactory : IConfigurationFactory
     public class SyncConfigurationFactory : IConfigurationFactory
     {
     {

+ 1 - 1
MediaBrowser.Server.Implementations/Sync/SyncConvertScheduledTask.cs → Emby.Server.Implementations/Sync/SyncConvertScheduledTask.cs

@@ -13,7 +13,7 @@ using MediaBrowser.Controller.IO;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Model.Tasks;
 using MediaBrowser.Model.Tasks;
 
 
-namespace MediaBrowser.Server.Implementations.Sync
+namespace Emby.Server.Implementations.Sync
 {
 {
     public class SyncConvertScheduledTask : IScheduledTask
     public class SyncConvertScheduledTask : IScheduledTask
     {
     {

+ 1 - 1
MediaBrowser.Server.Implementations/Sync/SyncHelper.cs → Emby.Server.Implementations/Sync/SyncHelper.cs

@@ -1,6 +1,6 @@
 using System;
 using System;
 
 
-namespace MediaBrowser.Server.Implementations.Sync
+namespace Emby.Server.Implementations.Sync
 {
 {
     public class SyncHelper
     public class SyncHelper
     {
     {

+ 1 - 1
MediaBrowser.Server.Implementations/Sync/SyncJobOptions.cs → Emby.Server.Implementations/Sync/SyncJobOptions.cs

@@ -1,6 +1,6 @@
 using MediaBrowser.Model.Dlna;
 using MediaBrowser.Model.Dlna;
 
 
-namespace MediaBrowser.Server.Implementations.Sync
+namespace Emby.Server.Implementations.Sync
 {
 {
     public class SyncJobOptions
     public class SyncJobOptions
     {
     {

+ 1 - 1
MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs → Emby.Server.Implementations/Sync/SyncJobProcessor.cs

@@ -28,7 +28,7 @@ using MediaBrowser.Model.IO;
 using MediaBrowser.Model.Extensions;
 using MediaBrowser.Model.Extensions;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Model.IO;
 
 
-namespace MediaBrowser.Server.Implementations.Sync
+namespace Emby.Server.Implementations.Sync
 {
 {
     public class SyncJobProcessor
     public class SyncJobProcessor
     {
     {

+ 6 - 5
MediaBrowser.Server.Implementations/Sync/SyncManager.cs → Emby.Server.Implementations/Sync/SyncManager.cs

@@ -23,6 +23,7 @@ using MediaBrowser.Model.Users;
 using System;
 using System;
 using System.Collections.Concurrent;
 using System.Collections.Concurrent;
 using System.Collections.Generic;
 using System.Collections.Generic;
+using System.Globalization;
 using System.IO;
 using System.IO;
 using System.Linq;
 using System.Linq;
 using System.Threading;
 using System.Threading;
@@ -30,7 +31,7 @@ using System.Threading.Tasks;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Model.Tasks;
 using MediaBrowser.Model.Tasks;
 
 
-namespace MediaBrowser.Server.Implementations.Sync
+namespace Emby.Server.Implementations.Sync
 {
 {
     public class SyncManager : ISyncManager
     public class SyncManager : ISyncManager
     {
     {
@@ -124,7 +125,7 @@ namespace MediaBrowser.Server.Implementations.Sync
 
 
             if (string.IsNullOrWhiteSpace(request.Name))
             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)
             var target = GetSyncTargets(request.UserId)
@@ -419,7 +420,7 @@ namespace MediaBrowser.Server.Implementations.Sync
             {
             {
                 _fileSystem.DeleteDirectory(path, true);
                 _fileSystem.DeleteDirectory(path, true);
             }
             }
-            catch (DirectoryNotFoundException)
+            catch (IOException)
             {
             {
 
 
             }
             }
@@ -574,7 +575,7 @@ namespace MediaBrowser.Server.Implementations.Sync
                 {
                 {
                     _fileSystem.DeleteDirectory(jobItem.TemporaryPath, true);
                     _fileSystem.DeleteDirectory(jobItem.TemporaryPath, true);
                 }
                 }
-                catch (DirectoryNotFoundException)
+                catch (IOException)
                 {
                 {
                 }
                 }
                 catch (Exception ex)
                 catch (Exception ex)
@@ -1061,7 +1062,7 @@ namespace MediaBrowser.Server.Implementations.Sync
             {
             {
                 _fileSystem.DeleteDirectory(path, true);
                 _fileSystem.DeleteDirectory(path, true);
             }
             }
-            catch (DirectoryNotFoundException)
+            catch (IOException)
             {
             {
 
 
             }
             }

+ 1 - 1
MediaBrowser.Server.Implementations/Sync/SyncNotificationEntryPoint.cs → Emby.Server.Implementations/Sync/SyncNotificationEntryPoint.cs

@@ -5,7 +5,7 @@ using MediaBrowser.Controller.Sync;
 using MediaBrowser.Model.Events;
 using MediaBrowser.Model.Events;
 using MediaBrowser.Model.Sync;
 using MediaBrowser.Model.Sync;
 
 
-namespace MediaBrowser.Server.Implementations.Sync
+namespace Emby.Server.Implementations.Sync
 {
 {
     public class SyncNotificationEntryPoint : IServerEntryPoint
     public class SyncNotificationEntryPoint : IServerEntryPoint
     {
     {

+ 1 - 1
MediaBrowser.Server.Implementations/Sync/SyncRegistrationInfo.cs → Emby.Server.Implementations/Sync/SyncRegistrationInfo.cs

@@ -1,7 +1,7 @@
 using MediaBrowser.Common.Security;
 using MediaBrowser.Common.Security;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
 
 
-namespace MediaBrowser.Server.Implementations.Sync
+namespace Emby.Server.Implementations.Sync
 {
 {
     public class SyncRegistrationInfo : IRequiresRegistration
     public class SyncRegistrationInfo : IRequiresRegistration
     {
     {

+ 2 - 2
MediaBrowser.Server.Implementations/Sync/SyncedMediaSourceProvider.cs → Emby.Server.Implementations/Sync/SyncedMediaSourceProvider.cs

@@ -12,7 +12,7 @@ using System.Linq;
 using System.Threading;
 using System.Threading;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
 
 
-namespace MediaBrowser.Server.Implementations.Sync
+namespace Emby.Server.Implementations.Sync
 {
 {
     public class SyncedMediaSourceProvider : IMediaSourceProvider
     public class SyncedMediaSourceProvider : IMediaSourceProvider
     {
     {
@@ -144,7 +144,7 @@ namespace MediaBrowser.Server.Implementations.Sync
         {
         {
             mediaSource.Id = item.Id;
             mediaSource.Id = item.Id;
             mediaSource.SupportsTranscoding = false;
             mediaSource.SupportsTranscoding = false;
-            if (mediaSource.Protocol == Model.MediaInfo.MediaProtocol.File)
+            if (mediaSource.Protocol == MediaBrowser.Model.MediaInfo.MediaProtocol.File)
             {
             {
                 mediaSource.ETag = item.Id;
                 mediaSource.ETag = item.Id;
             }
             }

+ 1 - 1
MediaBrowser.Server.Implementations/Sync/TargetDataProvider.cs → Emby.Server.Implementations/Sync/TargetDataProvider.cs

@@ -11,7 +11,7 @@ using System.Threading;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Model.IO;
 
 
-namespace MediaBrowser.Server.Implementations.Sync
+namespace Emby.Server.Implementations.Sync
 {
 {
     public class TargetDataProvider : ISyncDataProvider
     public class TargetDataProvider : ISyncDataProvider
     {
     {

+ 3 - 1
MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs

@@ -793,7 +793,9 @@ namespace MediaBrowser.MediaEncoding.Subtitles
         {
         {
             if (protocol == MediaProtocol.File)
             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;
                     return string.Empty;
                 }
                 }

+ 1 - 0
MediaBrowser.Model/Cryptography/ICryptographyProvider.cs

@@ -9,5 +9,6 @@ namespace MediaBrowser.Model.Cryptography
         byte[] GetMD5Bytes(string str);
         byte[] GetMD5Bytes(string str);
         byte[] GetSHA1Bytes(byte[] bytes);
         byte[] GetSHA1Bytes(byte[] bytes);
         byte[] GetMD5Bytes(Stream str);
         byte[] GetMD5Bytes(Stream str);
+        byte[] GetMD5Bytes(byte[] bytes);
     }
     }
 }
 }

+ 1 - 1
MediaBrowser.Server.Implementations/IO/LibraryMonitor.cs

@@ -4,7 +4,6 @@ using MediaBrowser.Controller.Library;
 using MediaBrowser.Controller.Plugins;
 using MediaBrowser.Controller.Plugins;
 using MediaBrowser.Model.Configuration;
 using MediaBrowser.Model.Configuration;
 using MediaBrowser.Model.Logging;
 using MediaBrowser.Model.Logging;
-using Microsoft.Win32;
 using System;
 using System;
 using System.Collections.Concurrent;
 using System.Collections.Concurrent;
 using System.Collections.Generic;
 using System.Collections.Generic;
@@ -17,6 +16,7 @@ using MediaBrowser.Controller;
 using MediaBrowser.Controller.IO;
 using MediaBrowser.Controller.IO;
 using MediaBrowser.Model.Tasks;
 using MediaBrowser.Model.Tasks;
 using MediaBrowser.Model.Threading;
 using MediaBrowser.Model.Threading;
+using Microsoft.Win32;
 
 
 namespace MediaBrowser.Server.Implementations.IO
 namespace MediaBrowser.Server.Implementations.IO
 {
 {

+ 0 - 20
MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj

@@ -144,7 +144,6 @@
     <Compile Include="IO\FileRefresher.cs" />
     <Compile Include="IO\FileRefresher.cs" />
     <Compile Include="IO\LibraryMonitor.cs" />
     <Compile Include="IO\LibraryMonitor.cs" />
     <Compile Include="IO\MemoryStreamProvider.cs" />
     <Compile Include="IO\MemoryStreamProvider.cs" />
-    <Compile Include="IO\ThrottledStream.cs" />
     <Compile Include="LiveTv\ChannelImageProvider.cs" />
     <Compile Include="LiveTv\ChannelImageProvider.cs" />
     <Compile Include="LiveTv\EmbyTV\DirectRecorder.cs" />
     <Compile Include="LiveTv\EmbyTV\DirectRecorder.cs" />
     <Compile Include="LiveTv\EmbyTV\EmbyTV.cs" />
     <Compile Include="LiveTv\EmbyTV\EmbyTV.cs" />
@@ -202,17 +201,12 @@
     <Compile Include="Persistence\DataExtensions.cs" />
     <Compile Include="Persistence\DataExtensions.cs" />
     <Compile Include="Persistence\IDbConnector.cs" />
     <Compile Include="Persistence\IDbConnector.cs" />
     <Compile Include="Persistence\MediaStreamColumns.cs" />
     <Compile Include="Persistence\MediaStreamColumns.cs" />
-    <Compile Include="Reflection\AssemblyInfo.cs" />
     <Compile Include="Security\MBLicenseFile.cs" />
     <Compile Include="Security\MBLicenseFile.cs" />
     <Compile Include="Security\PluginSecurityManager.cs" />
     <Compile Include="Security\PluginSecurityManager.cs" />
     <Compile Include="Security\RegRecord.cs" />
     <Compile Include="Security\RegRecord.cs" />
     <Compile Include="Serialization\JsonSerializer.cs" />
     <Compile Include="Serialization\JsonSerializer.cs" />
     <Compile Include="Social\SharingManager.cs" />
     <Compile Include="Social\SharingManager.cs" />
     <Compile Include="Social\SharingRepository.cs" />
     <Compile Include="Social\SharingRepository.cs" />
-    <Compile Include="Sync\SyncHelper.cs" />
-    <Compile Include="Sync\SyncJobOptions.cs" />
-    <Compile Include="Sync\SyncNotificationEntryPoint.cs" />
-    <Compile Include="TextEncoding\TextEncoding.cs" />
     <Compile Include="Threading\PeriodicTimer.cs" />
     <Compile Include="Threading\PeriodicTimer.cs" />
     <Compile Include="TV\SeriesPostScanTask.cs" />
     <Compile Include="TV\SeriesPostScanTask.cs" />
     <Compile Include="Persistence\SqliteFileOrganizationRepository.cs" />
     <Compile Include="Persistence\SqliteFileOrganizationRepository.cs" />
@@ -235,23 +229,9 @@
     <Compile Include="Persistence\SqliteItemRepository.cs" />
     <Compile Include="Persistence\SqliteItemRepository.cs" />
     <Compile Include="Persistence\SqliteUserDataRepository.cs" />
     <Compile Include="Persistence\SqliteUserDataRepository.cs" />
     <Compile Include="Persistence\SqliteUserRepository.cs" />
     <Compile Include="Persistence\SqliteUserRepository.cs" />
-    <Compile Include="Sync\AppSyncProvider.cs" />
-    <Compile Include="Sync\CloudSyncProfile.cs" />
-    <Compile Include="Sync\IHasSyncQuality.cs" />
-    <Compile Include="Sync\MediaSync.cs" />
-    <Compile Include="Sync\MultiProviderSync.cs" />
-    <Compile Include="Sync\ServerSyncScheduledTask.cs" />
-    <Compile Include="Sync\SyncedMediaSourceProvider.cs" />
-    <Compile Include="Sync\SyncRegistrationInfo.cs" />
-    <Compile Include="Sync\SyncConfig.cs" />
-    <Compile Include="Sync\SyncJobProcessor.cs" />
-    <Compile Include="Sync\SyncManager.cs" />
     <Compile Include="Sync\SyncRepository.cs" />
     <Compile Include="Sync\SyncRepository.cs" />
-    <Compile Include="Sync\SyncConvertScheduledTask.cs" />
-    <Compile Include="Sync\TargetDataProvider.cs" />
     <Compile Include="Udp\UdpMessageReceivedEventArgs.cs" />
     <Compile Include="Udp\UdpMessageReceivedEventArgs.cs" />
     <Compile Include="Udp\UdpServer.cs" />
     <Compile Include="Udp\UdpServer.cs" />
-    <Compile Include="Xml\XmlReaderSettingsFactory.cs" />
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
     <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj">
     <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj">

+ 4 - 3
MediaBrowser.Server.Startup.Common/ApplicationHost.cs

@@ -83,7 +83,10 @@ using System.Threading;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
 using Emby.Common.Implementations;
 using Emby.Common.Implementations;
 using Emby.Common.Implementations.Networking;
 using Emby.Common.Implementations.Networking;
+using Emby.Common.Implementations.Reflection;
+using Emby.Common.Implementations.TextEncoding;
 using Emby.Common.Implementations.Updates;
 using Emby.Common.Implementations.Updates;
+using Emby.Common.Implementations.Xml;
 using Emby.Photos;
 using Emby.Photos;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Api.Playback;
 using MediaBrowser.Api.Playback;
@@ -110,6 +113,7 @@ using Emby.Server.Implementations.MediaEncoder;
 using Emby.Server.Implementations.Notifications;
 using Emby.Server.Implementations.Notifications;
 using Emby.Server.Implementations.Persistence;
 using Emby.Server.Implementations.Persistence;
 using Emby.Server.Implementations.Playlists;
 using Emby.Server.Implementations.Playlists;
+using Emby.Server.Implementations.Sync;
 using Emby.Server.Implementations.TV;
 using Emby.Server.Implementations.TV;
 using Emby.Server.Implementations.Updates;
 using Emby.Server.Implementations.Updates;
 using MediaBrowser.Model.Activity;
 using MediaBrowser.Model.Activity;
@@ -124,10 +128,7 @@ using MediaBrowser.Model.Social;
 using MediaBrowser.Model.TextEncoding;
 using MediaBrowser.Model.TextEncoding;
 using MediaBrowser.Model.Xml;
 using MediaBrowser.Model.Xml;
 using MediaBrowser.Server.Implementations.Archiving;
 using MediaBrowser.Server.Implementations.Archiving;
-using MediaBrowser.Server.Implementations.Reflection;
 using MediaBrowser.Server.Implementations.Serialization;
 using MediaBrowser.Server.Implementations.Serialization;
-using MediaBrowser.Server.Implementations.TextEncoding;
-using MediaBrowser.Server.Implementations.Xml;
 using OpenSubtitlesHandler;
 using OpenSubtitlesHandler;
 using ServiceStack;
 using ServiceStack;
 using StringExtensions = MediaBrowser.Controller.Extensions.StringExtensions;
 using StringExtensions = MediaBrowser.Controller.Extensions.StringExtensions;