CameraUploadsFolder.cs 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. using MediaBrowser.Common.Configuration;
  2. using MediaBrowser.Controller.Entities;
  3. using System;
  4. using System.IO;
  5. using System.Linq;
  6. using MediaBrowser.Common.IO;
  7. namespace MediaBrowser.Server.Implementations.Devices
  8. {
  9. public class CameraUploadsFolder : BasePluginFolder
  10. {
  11. public CameraUploadsFolder()
  12. {
  13. Name = "Camera Uploads";
  14. }
  15. public override bool IsVisible(User user)
  16. {
  17. if (!user.Policy.EnableAllFolders && !user.Policy.EnabledFolders.Contains(Id.ToString("N"), StringComparer.OrdinalIgnoreCase))
  18. {
  19. return false;
  20. }
  21. return GetChildren(user, true).Any() &&
  22. base.IsVisible(user);
  23. }
  24. public override bool IsHidden
  25. {
  26. get
  27. {
  28. return base.IsHidden || !Children.Any();
  29. }
  30. }
  31. public override bool IsHiddenFromUser(User user)
  32. {
  33. return false;
  34. }
  35. public override string CollectionType
  36. {
  37. get { return Model.Entities.CollectionType.Photos; }
  38. }
  39. public override string GetClientTypeName()
  40. {
  41. return typeof(CollectionFolder).Name;
  42. }
  43. }
  44. public class CameraUploadsDynamicFolder : IVirtualFolderCreator
  45. {
  46. private readonly IApplicationPaths _appPaths;
  47. private readonly IFileSystem _fileSystem;
  48. public CameraUploadsDynamicFolder(IApplicationPaths appPaths, IFileSystem fileSystem)
  49. {
  50. _appPaths = appPaths;
  51. _fileSystem = fileSystem;
  52. }
  53. public BasePluginFolder GetFolder()
  54. {
  55. var path = Path.Combine(_appPaths.DataPath, "camerauploads");
  56. _fileSystem.CreateDirectory(path);
  57. return new CameraUploadsFolder
  58. {
  59. Path = path
  60. };
  61. }
  62. }
  63. }