1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- using MediaBrowser.Common.Configuration;
- using MediaBrowser.Controller.Entities;
- using System;
- using System.IO;
- using System.Linq;
- using System.Runtime.Serialization;
- using System.Threading;
- using System.Threading.Tasks;
- using CommonIO;
- using MediaBrowser.Controller.Providers;
- namespace MediaBrowser.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();
- }
- public override string CollectionType
- {
- get { return Model.Entities.CollectionType.Photos; }
- }
- public override string GetClientTypeName()
- {
- return typeof(CollectionFolder).Name;
- }
- private bool? _hasChildren;
- private bool HasChildren()
- {
- if (!_hasChildren.HasValue)
- {
- _hasChildren = LibraryManager.GetItemIds(new InternalItemsQuery { ParentId = Id }).Count > 0;
- }
- return _hasChildren.Value;
- }
- protected override Task ValidateChildrenInternal(IProgress<double> 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; }
- }
- }
- public class CameraUploadsDynamicFolder : IVirtualFolderCreator
- {
- private readonly IApplicationPaths _appPaths;
- private readonly IFileSystem _fileSystem;
- public CameraUploadsDynamicFolder(IApplicationPaths appPaths, IFileSystem fileSystem)
- {
- _appPaths = appPaths;
- _fileSystem = fileSystem;
- }
- public BasePluginFolder GetFolder()
- {
- var path = Path.Combine(_appPaths.DataPath, "camerauploads");
- _fileSystem.CreateDirectory(path);
- return new CameraUploadsFolder
- {
- Path = path
- };
- }
- }
- }
|