From 9fdaa039c4b1e95842a219499f80ac963bbdb91e Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Fri, 13 Oct 2017 15:18:05 -0400 Subject: rework device repository --- MediaBrowser.Controller/Devices/IDeviceManager.cs | 13 ++++--------- MediaBrowser.Controller/Devices/IDeviceRepository.cs | 13 ++++--------- 2 files changed, 8 insertions(+), 18 deletions(-) (limited to 'MediaBrowser.Controller') diff --git a/MediaBrowser.Controller/Devices/IDeviceManager.cs b/MediaBrowser.Controller/Devices/IDeviceManager.cs index 2846bcfc6..676db09aa 100644 --- a/MediaBrowser.Controller/Devices/IDeviceManager.cs +++ b/MediaBrowser.Controller/Devices/IDeviceManager.cs @@ -28,7 +28,7 @@ namespace MediaBrowser.Controller.Devices /// The application version. /// The used by user identifier. /// Task. - Task RegisterDevice(string reportedId, string name, string appName, string appVersion, string usedByUserId); + DeviceInfo RegisterDevice(string reportedId, string name, string appName, string appVersion, string usedByUserId); /// /// Saves the capabilities. @@ -36,7 +36,7 @@ namespace MediaBrowser.Controller.Devices /// The reported identifier. /// The capabilities. /// Task. - Task SaveCapabilities(string reportedId, ClientCapabilities capabilities); + void SaveCapabilities(string reportedId, ClientCapabilities capabilities); /// /// Gets the capabilities. @@ -58,7 +58,7 @@ namespace MediaBrowser.Controller.Devices /// The identifier. /// The options. /// Task. - Task UpdateDeviceInfo(string id, DeviceOptions options); + void UpdateDeviceInfo(string id, DeviceOptions options); /// /// Gets the devices. @@ -67,12 +67,7 @@ namespace MediaBrowser.Controller.Devices /// IEnumerable<DeviceInfo>. QueryResult GetDevices(DeviceQuery query); - /// - /// Deletes the device. - /// - /// The identifier. - /// Task. - Task DeleteDevice(string id); + void DeleteDevice(string id); /// /// Gets the upload history. diff --git a/MediaBrowser.Controller/Devices/IDeviceRepository.cs b/MediaBrowser.Controller/Devices/IDeviceRepository.cs index 736504da3..b9ebbb6c7 100644 --- a/MediaBrowser.Controller/Devices/IDeviceRepository.cs +++ b/MediaBrowser.Controller/Devices/IDeviceRepository.cs @@ -1,7 +1,6 @@ using MediaBrowser.Model.Devices; using MediaBrowser.Model.Session; using System.Collections.Generic; -using System.Threading.Tasks; namespace MediaBrowser.Controller.Devices { @@ -12,7 +11,7 @@ namespace MediaBrowser.Controller.Devices /// /// The device. /// Task. - Task SaveDevice(DeviceInfo device); + void SaveDevice(DeviceInfo device); /// /// Saves the capabilities. @@ -20,7 +19,7 @@ namespace MediaBrowser.Controller.Devices /// The identifier. /// The capabilities. /// Task. - Task SaveCapabilities(string id, ClientCapabilities capabilities); + void SaveCapabilities(string id, ClientCapabilities capabilities); /// /// Gets the capabilities. @@ -36,18 +35,14 @@ namespace MediaBrowser.Controller.Devices /// DeviceInfo. DeviceInfo GetDevice(string id); - /// - /// Gets the devices. - /// - /// IEnumerable<DeviceInfo>. - IEnumerable GetDevices(); + List GetDevices(); /// /// Deletes the device. /// /// The identifier. /// Task. - Task DeleteDevice(string id); + void DeleteDevice(string id); /// /// Gets the upload history. -- cgit v1.2.3 From 0351c968c303da53db03aa2b99051d69c45f3ab8 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Fri, 13 Oct 2017 15:22:24 -0400 Subject: reduce file checks during library scan --- Emby.Photos/PhotoProvider.cs | 16 +------------ .../Library/MediaSourceManager.cs | 16 ++++--------- MediaBrowser.Controller/Entities/AudioBook.cs | 6 ----- MediaBrowser.Controller/Entities/Book.cs | 6 ----- MediaBrowser.Controller/Entities/Game.cs | 6 ----- MediaBrowser.Controller/LiveTv/LiveTvChannel.cs | 3 ++- .../MediaBrowser.Controller.csproj | 1 - .../Providers/IHasChangeMonitor.cs | 17 -------------- .../MediaInfo/AudioImageProvider.cs | 16 +------------ .../MediaInfo/FFProbeProvider.cs | 27 ---------------------- .../MediaInfo/VideoImageProvider.cs | 16 +------------ 11 files changed, 10 insertions(+), 120 deletions(-) delete mode 100644 MediaBrowser.Controller/Providers/IHasChangeMonitor.cs (limited to 'MediaBrowser.Controller') diff --git a/Emby.Photos/PhotoProvider.cs b/Emby.Photos/PhotoProvider.cs index b2d6ecdcb..3a29b86a5 100644 --- a/Emby.Photos/PhotoProvider.cs +++ b/Emby.Photos/PhotoProvider.cs @@ -17,7 +17,7 @@ using TagLib.IFD.Tags; namespace Emby.Photos { - public class PhotoProvider : ICustomMetadataProvider, IHasItemChangeMonitor, IForcedProvider + public class PhotoProvider : ICustomMetadataProvider, IForcedProvider { private readonly ILogger _logger; private readonly IFileSystem _fileSystem; @@ -177,19 +177,5 @@ namespace Emby.Photos { get { return "Embedded Information"; } } - - public bool HasChanged(IHasMetadata item, IDirectoryService directoryService) - { - if (item.EnableRefreshOnDateModifiedChange && !string.IsNullOrWhiteSpace(item.Path) && item.LocationType == LocationType.FileSystem) - { - var file = directoryService.GetFile(item.Path); - if (file != null && file.LastWriteTimeUtc != item.DateModified) - { - return true; - } - } - - return false; - } } } diff --git a/Emby.Server.Implementations/Library/MediaSourceManager.cs b/Emby.Server.Implementations/Library/MediaSourceManager.cs index d60a04353..688da5764 100644 --- a/Emby.Server.Implementations/Library/MediaSourceManager.cs +++ b/Emby.Server.Implementations/Library/MediaSourceManager.cs @@ -96,23 +96,17 @@ namespace Emby.Server.Implementations.Library return GetMediaStreamsForItem(list); } - private List GetMediaStreamsForItem(IEnumerable streams) + private List GetMediaStreamsForItem(List streams) { - var list = streams.ToList(); - - var subtitleStreams = list - .Where(i => i.Type == MediaStreamType.Subtitle) - .ToList(); - - if (subtitleStreams.Count > 0) + foreach (var stream in streams) { - foreach (var subStream in subtitleStreams) + if (stream.Type == MediaStreamType.Subtitle) { - subStream.SupportsExternalStream = StreamSupportsExternalStream(subStream); + stream.SupportsExternalStream = StreamSupportsExternalStream(stream); } } - return list; + return streams; } public async Task> GetPlayackMediaSources(string id, string userId, bool enablePathSubstitution, string[] supportedLiveMediaTypes, CancellationToken cancellationToken) diff --git a/MediaBrowser.Controller/Entities/AudioBook.cs b/MediaBrowser.Controller/Entities/AudioBook.cs index 78fb10253..374bb21f7 100644 --- a/MediaBrowser.Controller/Entities/AudioBook.cs +++ b/MediaBrowser.Controller/Entities/AudioBook.cs @@ -51,12 +51,6 @@ namespace MediaBrowser.Controller.Entities return null; } - [IgnoreDataMember] - public override bool EnableRefreshOnDateModifiedChange - { - get { return true; } - } - public Guid? FindSeriesId() { return SeriesId; diff --git a/MediaBrowser.Controller/Entities/Book.cs b/MediaBrowser.Controller/Entities/Book.cs index 9b1a52f83..45e3915ce 100644 --- a/MediaBrowser.Controller/Entities/Book.cs +++ b/MediaBrowser.Controller/Entities/Book.cs @@ -38,12 +38,6 @@ namespace MediaBrowser.Controller.Entities return SeriesPresentationUniqueKey; } - [IgnoreDataMember] - public override bool EnableRefreshOnDateModifiedChange - { - get { return true; } - } - public Guid? FindSeriesId() { return SeriesId; diff --git a/MediaBrowser.Controller/Entities/Game.cs b/MediaBrowser.Controller/Entities/Game.cs index a99058925..fd45f7c82 100644 --- a/MediaBrowser.Controller/Entities/Game.cs +++ b/MediaBrowser.Controller/Entities/Game.cs @@ -28,12 +28,6 @@ namespace MediaBrowser.Controller.Entities locationType != LocationType.Virtual; } - [IgnoreDataMember] - public override bool EnableRefreshOnDateModifiedChange - { - get { return true; } - } - [IgnoreDataMember] public override bool SupportsThemeMedia { diff --git a/MediaBrowser.Controller/LiveTv/LiveTvChannel.cs b/MediaBrowser.Controller/LiveTv/LiveTvChannel.cs index 4a93d0399..16010b7f5 100644 --- a/MediaBrowser.Controller/LiveTv/LiveTvChannel.cs +++ b/MediaBrowser.Controller/LiveTv/LiveTvChannel.cs @@ -136,7 +136,8 @@ namespace MediaBrowser.Controller.LiveTv Name = Name, Path = Path, RunTimeTicks = RunTimeTicks, - Type = MediaSourceType.Placeholder + Type = MediaSourceType.Placeholder, + IsInfiniteStream = RunTimeTicks == null }; list.Add(info); diff --git a/MediaBrowser.Controller/MediaBrowser.Controller.csproj b/MediaBrowser.Controller/MediaBrowser.Controller.csproj index 960ff0aa7..dafca0598 100644 --- a/MediaBrowser.Controller/MediaBrowser.Controller.csproj +++ b/MediaBrowser.Controller/MediaBrowser.Controller.csproj @@ -220,7 +220,6 @@ - diff --git a/MediaBrowser.Controller/Providers/IHasChangeMonitor.cs b/MediaBrowser.Controller/Providers/IHasChangeMonitor.cs deleted file mode 100644 index aa0b0e3c9..000000000 --- a/MediaBrowser.Controller/Providers/IHasChangeMonitor.cs +++ /dev/null @@ -1,17 +0,0 @@ -using MediaBrowser.Controller.Entities; -using System; - -namespace MediaBrowser.Controller.Providers -{ - public interface IHasChangeMonitor - { - /// - /// Determines whether the specified item has changed. - /// - /// The item. - /// The directory service. - /// The date. - /// true if the specified item has changed; otherwise, false. - bool HasChanged(IHasMetadata item, IDirectoryService directoryService, DateTime date); - } -} diff --git a/MediaBrowser.Providers/MediaInfo/AudioImageProvider.cs b/MediaBrowser.Providers/MediaInfo/AudioImageProvider.cs index a4f2053a9..3499d5d3f 100644 --- a/MediaBrowser.Providers/MediaInfo/AudioImageProvider.cs +++ b/MediaBrowser.Providers/MediaInfo/AudioImageProvider.cs @@ -19,7 +19,7 @@ namespace MediaBrowser.Providers.MediaInfo /// /// Uses ffmpeg to create video images /// - public class AudioImageProvider : IDynamicImageProvider, IHasItemChangeMonitor + public class AudioImageProvider : IDynamicImageProvider { private readonly IMediaEncoder _mediaEncoder; private readonly IServerConfigurationManager _config; @@ -134,19 +134,5 @@ namespace MediaBrowser.Providers.MediaInfo return item.LocationType == LocationType.FileSystem && audio != null; } - - public bool HasChanged(IHasMetadata item, IDirectoryService directoryService) - { - if (item.EnableRefreshOnDateModifiedChange && !string.IsNullOrWhiteSpace(item.Path) && item.LocationType == LocationType.FileSystem) - { - var file = directoryService.GetFile(item.Path); - if (file != null && file.LastWriteTimeUtc != item.DateModified) - { - return true; - } - } - - return false; - } } } diff --git a/MediaBrowser.Providers/MediaInfo/FFProbeProvider.cs b/MediaBrowser.Providers/MediaInfo/FFProbeProvider.cs index a9aa71bfa..bce421901 100644 --- a/MediaBrowser.Providers/MediaInfo/FFProbeProvider.cs +++ b/MediaBrowser.Providers/MediaInfo/FFProbeProvider.cs @@ -34,7 +34,6 @@ namespace MediaBrowser.Providers.MediaInfo ICustomMetadataProvider