From a57c887f7f367402cd1e3e215a8b8052f3c603da Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 16 Aug 2017 13:30:16 -0400 Subject: update components --- Emby.Server.Implementations/ApplicationHost.cs | 10 +-- .../ApplicationPathHelper.cs | 51 ---------------- .../Data/SqliteItemRepository.cs | 4 +- .../Devices/CameraUploadsDynamicFolder.cs | 1 - .../Devices/CameraUploadsFolder.cs | 71 ++++++++++++++++++++++ .../Emby.Server.Implementations.csproj | 15 ++--- Emby.Server.Implementations/IO/FileRefresher.cs | 6 +- .../Playlists/ManualPlaylistsFolder.cs | 58 ++++++++++++++++++ .../Playlists/PlaylistsDynamicFolder.cs | 1 - Emby.Server.Implementations/packages.config | 4 +- 10 files changed, 146 insertions(+), 75 deletions(-) delete mode 100644 Emby.Server.Implementations/ApplicationPathHelper.cs create mode 100644 Emby.Server.Implementations/Devices/CameraUploadsFolder.cs create mode 100644 Emby.Server.Implementations/Playlists/ManualPlaylistsFolder.cs (limited to 'Emby.Server.Implementations') diff --git a/Emby.Server.Implementations/ApplicationHost.cs b/Emby.Server.Implementations/ApplicationHost.cs index b8506eb867..3ad8fe7df9 100644 --- a/Emby.Server.Implementations/ApplicationHost.cs +++ b/Emby.Server.Implementations/ApplicationHost.cs @@ -1254,7 +1254,7 @@ namespace Emby.Server.Implementations { switch (EnvironmentInfo.SystemArchitecture) { - case Architecture.X64: + case MediaBrowser.Model.System.Architecture.X64: return new[] { "https://embydata.com/downloads/ffmpeg/osx/ffmpeg-x64-20170308.7z" @@ -1268,12 +1268,12 @@ namespace Emby.Server.Implementations { switch (EnvironmentInfo.SystemArchitecture) { - case Architecture.X64: + case MediaBrowser.Model.System.Architecture.X64: return new[] { "https://embydata.com/downloads/ffmpeg/windows/ffmpeg-20170308-win64.7z" }; - case Architecture.X86: + case MediaBrowser.Model.System.Architecture.X86: return new[] { "https://embydata.com/downloads/ffmpeg/windows/ffmpeg-20170308-win32.7z" @@ -1287,12 +1287,12 @@ namespace Emby.Server.Implementations { switch (EnvironmentInfo.SystemArchitecture) { - case Architecture.X64: + case MediaBrowser.Model.System.Architecture.X64: return new[] { "https://embydata.com/downloads/ffmpeg/linux/ffmpeg-git-20170301-64bit-static.7z" }; - case Architecture.X86: + case MediaBrowser.Model.System.Architecture.X86: return new[] { "https://embydata.com/downloads/ffmpeg/linux/ffmpeg-git-20170301-32bit-static.7z" diff --git a/Emby.Server.Implementations/ApplicationPathHelper.cs b/Emby.Server.Implementations/ApplicationPathHelper.cs deleted file mode 100644 index 262cc526ec..0000000000 --- a/Emby.Server.Implementations/ApplicationPathHelper.cs +++ /dev/null @@ -1,51 +0,0 @@ -using System; -using System.Configuration; -using System.IO; - -namespace Emby.Server.Implementations -{ - public static class ApplicationPathHelper - { - /// - /// Gets the path to the application's ProgramDataFolder - /// - /// System.String. - public static string GetProgramDataPath(string applicationPath) - { - var useDebugPath = false; - -#if DEBUG - useDebugPath = true; -#endif - - var programDataPath = useDebugPath ? - ConfigurationManager.AppSettings["DebugProgramDataPath"] : - ConfigurationManager.AppSettings["ReleaseProgramDataPath"]; - - programDataPath = programDataPath.Replace("%ApplicationData%", Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)); - - programDataPath = programDataPath - .Replace('/', Path.DirectorySeparatorChar) - .Replace('\\', Path.DirectorySeparatorChar); - - // If it's a relative path, e.g. "..\" - if (!Path.IsPathRooted(programDataPath)) - { - var path = Path.GetDirectoryName(applicationPath); - - if (string.IsNullOrEmpty(path)) - { - throw new ApplicationException("Unable to determine running assembly location"); - } - - programDataPath = Path.Combine(path, programDataPath); - - programDataPath = Path.GetFullPath(programDataPath); - } - - Directory.CreateDirectory(programDataPath); - - return programDataPath; - } - } -} diff --git a/Emby.Server.Implementations/Data/SqliteItemRepository.cs b/Emby.Server.Implementations/Data/SqliteItemRepository.cs index 7fb2f02dbf..6743e96fd3 100644 --- a/Emby.Server.Implementations/Data/SqliteItemRepository.cs +++ b/Emby.Server.Implementations/Data/SqliteItemRepository.cs @@ -7,6 +7,8 @@ using System.Runtime.Serialization; using System.Text; using System.Threading; using System.Threading.Tasks; +using Emby.Server.Implementations.Devices; +using Emby.Server.Implementations.Playlists; using MediaBrowser.Controller.Channels; using MediaBrowser.Controller.Collections; using MediaBrowser.Controller.Configuration; @@ -25,8 +27,6 @@ using MediaBrowser.Model.LiveTv; using MediaBrowser.Model.Logging; using MediaBrowser.Model.Querying; using MediaBrowser.Model.Serialization; -using MediaBrowser.Server.Implementations.Devices; -using MediaBrowser.Server.Implementations.Playlists; using MediaBrowser.Model.Reflection; using SQLitePCL.pretty; using MediaBrowser.Model.System; diff --git a/Emby.Server.Implementations/Devices/CameraUploadsDynamicFolder.cs b/Emby.Server.Implementations/Devices/CameraUploadsDynamicFolder.cs index 52979f085c..bb9ef157c4 100644 --- a/Emby.Server.Implementations/Devices/CameraUploadsDynamicFolder.cs +++ b/Emby.Server.Implementations/Devices/CameraUploadsDynamicFolder.cs @@ -10,7 +10,6 @@ using MediaBrowser.Controller.IO; using MediaBrowser.Model.IO; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Serialization; -using MediaBrowser.Server.Implementations.Devices; namespace Emby.Server.Implementations.Devices { diff --git a/Emby.Server.Implementations/Devices/CameraUploadsFolder.cs b/Emby.Server.Implementations/Devices/CameraUploadsFolder.cs new file mode 100644 index 0000000000..55063872c1 --- /dev/null +++ b/Emby.Server.Implementations/Devices/CameraUploadsFolder.cs @@ -0,0 +1,71 @@ +using System; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; +using MediaBrowser.Controller.Entities; +using MediaBrowser.Controller.Providers; +using MediaBrowser.Model.Serialization; + +namespace Emby.Server.Implementations.Devices +{ + public class CameraUploadsFolder : BasePluginFolder, ISupportsUserSpecificView + { + public CameraUploadsFolder() + { + Name = "Camera Uploads"; + } + + public override bool IsVisible(User user) + { + if (!user.Policy.EnableAllFolders && !user.Policy.EnabledFolders.Contains(Id.ToString("N"), StringComparer.OrdinalIgnoreCase)) + { + return false; + } + + return base.IsVisible(user) && HasChildren(); + } + + [IgnoreDataMember] + public override string CollectionType + { + get { return MediaBrowser.Model.Entities.CollectionType.Photos; } + } + + [IgnoreDataMember] + public override bool SupportsInheritedParentImages + { + get + { + return false; + } + } + + public override string GetClientTypeName() + { + return typeof(CollectionFolder).Name; + } + + private bool? _hasChildren; + private bool HasChildren() + { + if (!_hasChildren.HasValue) + { + _hasChildren = LibraryManager.GetItemIds(new InternalItemsQuery { Parent = this }).Count > 0; + } + + return _hasChildren.Value; + } + + protected override Task ValidateChildrenInternal(IProgress progress, CancellationToken cancellationToken, bool recursive, bool refreshChildMetadata, MetadataRefreshOptions refreshOptions, IDirectoryService directoryService) + { + _hasChildren = null; + return base.ValidateChildrenInternal(progress, cancellationToken, recursive, refreshChildMetadata, refreshOptions, directoryService); + } + + [IgnoreDataMember] + public bool EnableUserSpecificView + { + get { return true; } + } + } +} diff --git a/Emby.Server.Implementations/Emby.Server.Implementations.csproj b/Emby.Server.Implementations/Emby.Server.Implementations.csproj index 89b9325a25..1e897016e3 100644 --- a/Emby.Server.Implementations/Emby.Server.Implementations.csproj +++ b/Emby.Server.Implementations/Emby.Server.Implementations.csproj @@ -43,7 +43,6 @@ - @@ -83,6 +82,7 @@ + @@ -458,6 +458,7 @@ + @@ -635,10 +636,6 @@ {442b5058-dcaf-4263-bb6a-f21e31120a1b} MediaBrowser.Providers - - {2e781478-814d-4a48-9d80-bff206441a65} - MediaBrowser.Server.Implementations - {5624b7b5-b5a7-41d8-9f10-cc5611109619} MediaBrowser.WebDashboard @@ -663,12 +660,10 @@ ..\ThirdParty\emby\Emby.Server.MediaEncoding.dll - ..\packages\Emby.XmlTv.1.0.9\lib\portable-net45+win8\Emby.XmlTv.dll - True + ..\packages\Emby.XmlTv.1.0.10\lib\portable-net45+netstandard2.0+win8\Emby.XmlTv.dll - - ..\packages\MediaBrowser.Naming.1.0.5\lib\portable-net45+win8\MediaBrowser.Naming.dll - True + + ..\packages\MediaBrowser.Naming.1.0.6\lib\portable-net45+netstandard2.0+win8\MediaBrowser.Naming.dll ..\packages\ServiceStack.Text.4.5.8\lib\net45\ServiceStack.Text.dll diff --git a/Emby.Server.Implementations/IO/FileRefresher.cs b/Emby.Server.Implementations/IO/FileRefresher.cs index b2554049d1..0ec62d8958 100644 --- a/Emby.Server.Implementations/IO/FileRefresher.cs +++ b/Emby.Server.Implementations/IO/FileRefresher.cs @@ -121,7 +121,7 @@ namespace Emby.Server.Implementations.IO RestartTimer(); } - private async void OnTimerCallback(object state) + private void OnTimerCallback(object state) { List paths; @@ -137,7 +137,7 @@ namespace Emby.Server.Implementations.IO try { - await ProcessPathChanges(paths.ToList()).ConfigureAwait(false); + ProcessPathChanges(paths.ToList()); } catch (Exception ex) { @@ -145,7 +145,7 @@ namespace Emby.Server.Implementations.IO } } - private async Task ProcessPathChanges(List paths) + private void ProcessPathChanges(List paths) { var itemsToRefresh = paths .Distinct(StringComparer.OrdinalIgnoreCase) diff --git a/Emby.Server.Implementations/Playlists/ManualPlaylistsFolder.cs b/Emby.Server.Implementations/Playlists/ManualPlaylistsFolder.cs new file mode 100644 index 0000000000..2a178895cc --- /dev/null +++ b/Emby.Server.Implementations/Playlists/ManualPlaylistsFolder.cs @@ -0,0 +1,58 @@ +using System.Collections.Generic; +using System.Linq; +using MediaBrowser.Controller.Entities; +using MediaBrowser.Controller.Playlists; +using MediaBrowser.Model.Querying; +using MediaBrowser.Model.Serialization; + +namespace Emby.Server.Implementations.Playlists +{ + public class PlaylistsFolder : BasePluginFolder + { + public PlaylistsFolder() + { + Name = "Playlists"; + } + + public override bool IsVisible(User user) + { + return base.IsVisible(user) && GetChildren(user, true).Any(); + } + + protected override IEnumerable GetEligibleChildrenForRecursiveChildren(User user) + { + return base.GetEligibleChildrenForRecursiveChildren(user).OfType(); + } + + [IgnoreDataMember] + public override bool IsHidden + { + get + { + return true; + } + } + + [IgnoreDataMember] + public override bool SupportsInheritedParentImages + { + get + { + return false; + } + } + + [IgnoreDataMember] + public override string CollectionType + { + get { return MediaBrowser.Model.Entities.CollectionType.Playlists; } + } + + protected override QueryResult GetItemsInternal(InternalItemsQuery query) + { + query.Recursive = false; + return base.GetItemsInternal(query); + } + } +} + diff --git a/Emby.Server.Implementations/Playlists/PlaylistsDynamicFolder.cs b/Emby.Server.Implementations/Playlists/PlaylistsDynamicFolder.cs index dacc937e1a..2ce835576e 100644 --- a/Emby.Server.Implementations/Playlists/PlaylistsDynamicFolder.cs +++ b/Emby.Server.Implementations/Playlists/PlaylistsDynamicFolder.cs @@ -2,7 +2,6 @@ using MediaBrowser.Common.Configuration; using MediaBrowser.Controller.Entities; using MediaBrowser.Model.IO; -using MediaBrowser.Server.Implementations.Playlists; namespace Emby.Server.Implementations.Playlists { diff --git a/Emby.Server.Implementations/packages.config b/Emby.Server.Implementations/packages.config index 0933cd5e43..8d4d249950 100644 --- a/Emby.Server.Implementations/packages.config +++ b/Emby.Server.Implementations/packages.config @@ -1,7 +1,7 @@  - - + + -- cgit v1.2.3