From 2ed625d27eb1c2514e07b9187fe64262b2c23a5c Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Mon, 31 Jul 2017 01:16:22 -0400 Subject: update themes --- Emby.Server.Implementations/Library/LibraryManager.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Emby.Server.Implementations/Library/LibraryManager.cs') diff --git a/Emby.Server.Implementations/Library/LibraryManager.cs b/Emby.Server.Implementations/Library/LibraryManager.cs index 4846a5768..dbde5a251 100644 --- a/Emby.Server.Implementations/Library/LibraryManager.cs +++ b/Emby.Server.Implementations/Library/LibraryManager.cs @@ -2593,7 +2593,7 @@ namespace Emby.Server.Implementations.Library { var namingOptions = GetNamingOptions(); - var files = owner.DetectIsInMixedFolder() ? new List() : fileSystemChildren.Where(i => i.IsDirectory) + var files = owner.IsInMixedFolder ? new List() : fileSystemChildren.Where(i => i.IsDirectory) .Where(i => string.Equals(i.Name, BaseItem.TrailerFolderName, StringComparison.OrdinalIgnoreCase)) .SelectMany(i => _fileSystem.GetFiles(i.FullName, _videoFileExtensions, false, false)) .ToList(); -- cgit v1.2.3 From 994720c24a76a9480a0d621b8326c98bdec798bd Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Mon, 7 Aug 2017 16:36:41 -0400 Subject: deprecate hddvd videotype --- Emby.Server.Implementations/Library/LibraryManager.cs | 3 +-- .../Library/Resolvers/BaseVideoResolver.cs | 5 ----- .../MediaEncoder/EncodingManager.cs | 2 +- MediaBrowser.Controller/Entities/Video.cs | 17 ++++++++--------- MediaBrowser.Model/Entities/VideoType.cs | 6 +----- MediaBrowser.Providers/MediaInfo/FFProbeProvider.cs | 5 ----- MediaBrowser.Providers/MediaInfo/VideoImageProvider.cs | 2 +- MediaBrowser.XbmcMetadata/Savers/MovieNfoSaver.cs | 2 +- 8 files changed, 13 insertions(+), 29 deletions(-) (limited to 'Emby.Server.Implementations/Library/LibraryManager.cs') diff --git a/Emby.Server.Implementations/Library/LibraryManager.cs b/Emby.Server.Implementations/Library/LibraryManager.cs index dbde5a251..9588b648e 100644 --- a/Emby.Server.Implementations/Library/LibraryManager.cs +++ b/Emby.Server.Implementations/Library/LibraryManager.cs @@ -2395,8 +2395,7 @@ namespace Emby.Server.Implementations.Library var resolver = new EpisodeResolver(GetNamingOptions(), new NullLogger()); - var isFolder = episode.VideoType == VideoType.BluRay || episode.VideoType == VideoType.Dvd || - episode.VideoType == VideoType.HdDvd; + var isFolder = episode.VideoType == VideoType.BluRay || episode.VideoType == VideoType.Dvd; var locationType = episode.LocationType; diff --git a/Emby.Server.Implementations/Library/Resolvers/BaseVideoResolver.cs b/Emby.Server.Implementations/Library/Resolvers/BaseVideoResolver.cs index 9a5d6b105..ef32eccea 100644 --- a/Emby.Server.Implementations/Library/Resolvers/BaseVideoResolver.cs +++ b/Emby.Server.Implementations/Library/Resolvers/BaseVideoResolver.cs @@ -178,11 +178,6 @@ namespace Emby.Server.Implementations.Library.Resolvers { video.VideoType = VideoType.Dvd; } - else if (string.Equals(videoInfo.StubType, "hddvd", StringComparison.OrdinalIgnoreCase)) - { - video.VideoType = VideoType.HdDvd; - video.IsHD = true; - } else if (string.Equals(videoInfo.StubType, "bluray", StringComparison.OrdinalIgnoreCase)) { video.VideoType = VideoType.BluRay; diff --git a/Emby.Server.Implementations/MediaEncoder/EncodingManager.cs b/Emby.Server.Implementations/MediaEncoder/EncodingManager.cs index 60379f5ec..2cfa4601a 100644 --- a/Emby.Server.Implementations/MediaEncoder/EncodingManager.cs +++ b/Emby.Server.Implementations/MediaEncoder/EncodingManager.cs @@ -117,7 +117,7 @@ namespace Emby.Server.Implementations.MediaEncoder { if (extractImages) { - if (video.VideoType == VideoType.HdDvd || video.VideoType == VideoType.Iso) + if (video.VideoType == VideoType.Iso) { continue; } diff --git a/MediaBrowser.Controller/Entities/Video.cs b/MediaBrowser.Controller/Entities/Video.cs index 7734ab8b0..044ecf9b1 100644 --- a/MediaBrowser.Controller/Entities/Video.cs +++ b/MediaBrowser.Controller/Entities/Video.cs @@ -184,8 +184,7 @@ namespace MediaBrowser.Controller.Entities public override bool CanDownload() { - if (VideoType == VideoType.HdDvd || VideoType == VideoType.Dvd || - VideoType == VideoType.BluRay) + if (VideoType == VideoType.Dvd || VideoType == VideoType.BluRay) { return false; } @@ -335,8 +334,7 @@ namespace MediaBrowser.Controller.Entities if (!IsPlaceHolder) { - if (VideoType == VideoType.BluRay || VideoType == VideoType.Dvd || - VideoType == VideoType.HdDvd) + if (VideoType == VideoType.BluRay || VideoType == VideoType.Dvd) { return Path; } @@ -353,7 +351,7 @@ namespace MediaBrowser.Controller.Entities { if (LocationType == LocationType.FileSystem) { - if (VideoType == VideoType.BluRay || VideoType == VideoType.Dvd || VideoType == VideoType.HdDvd) + if (VideoType == VideoType.BluRay || VideoType == VideoType.Dvd) { return System.IO.Path.GetFileName(Path); } @@ -398,6 +396,11 @@ namespace MediaBrowser.Controller.Entities /// List{System.String}. public List GetPlayableStreamFiles(string rootPath) { + if (VideoType == VideoType.VideoFile) + { + return new List(); + } + var allFiles = FileSystem.GetFilePaths(rootPath, true).ToList(); var videoType = VideoType; @@ -737,10 +740,6 @@ namespace MediaBrowser.Controller.Entities { terms.Add("DVD"); } - else if (video.VideoType == VideoType.HdDvd) - { - terms.Add("HD-DVD"); - } else if (video.VideoType == VideoType.Iso) { if (video.IsoType.HasValue) diff --git a/MediaBrowser.Model/Entities/VideoType.cs b/MediaBrowser.Model/Entities/VideoType.cs index aa9a3c55f..05c2fa32c 100644 --- a/MediaBrowser.Model/Entities/VideoType.cs +++ b/MediaBrowser.Model/Entities/VideoType.cs @@ -21,10 +21,6 @@ namespace MediaBrowser.Model.Entities /// /// The blu ray /// - BluRay, - /// - /// The hd DVD - /// - HdDvd + BluRay } } diff --git a/MediaBrowser.Providers/MediaInfo/FFProbeProvider.cs b/MediaBrowser.Providers/MediaInfo/FFProbeProvider.cs index 17e48a835..333f3d593 100644 --- a/MediaBrowser.Providers/MediaInfo/FFProbeProvider.cs +++ b/MediaBrowser.Providers/MediaInfo/FFProbeProvider.cs @@ -141,11 +141,6 @@ namespace MediaBrowser.Providers.MediaInfo return _cachedTask; } - if (item.VideoType == VideoType.HdDvd) - { - return _cachedTask; - } - if (item.IsPlaceHolder) { return _cachedTask; diff --git a/MediaBrowser.Providers/MediaInfo/VideoImageProvider.cs b/MediaBrowser.Providers/MediaInfo/VideoImageProvider.cs index 0d0b680bd..26a795a7d 100644 --- a/MediaBrowser.Providers/MediaInfo/VideoImageProvider.cs +++ b/MediaBrowser.Providers/MediaInfo/VideoImageProvider.cs @@ -39,7 +39,7 @@ namespace MediaBrowser.Providers.MediaInfo var video = (Video)item; // No support for this - if (video.VideoType == VideoType.HdDvd || video.IsPlaceHolder) + if (video.IsPlaceHolder) { return Task.FromResult(new DynamicImageResponse { HasImage = false }); } diff --git a/MediaBrowser.XbmcMetadata/Savers/MovieNfoSaver.cs b/MediaBrowser.XbmcMetadata/Savers/MovieNfoSaver.cs index aea3f2c70..70fb4e5fa 100644 --- a/MediaBrowser.XbmcMetadata/Savers/MovieNfoSaver.cs +++ b/MediaBrowser.XbmcMetadata/Savers/MovieNfoSaver.cs @@ -35,7 +35,7 @@ namespace MediaBrowser.XbmcMetadata.Savers list.Add(Path.Combine(path, "VIDEO_TS", "VIDEO_TS.nfo")); } - if (!item.IsPlaceHolder && (item.VideoType == VideoType.Dvd || item.VideoType == VideoType.BluRay || item.VideoType == VideoType.HdDvd)) + if (!item.IsPlaceHolder && (item.VideoType == VideoType.Dvd || item.VideoType == VideoType.BluRay)) { var path = item.ContainingFolderPath; -- cgit v1.2.3 From 52aeb3c40b3e2f0fdc377ac7c793714add2be0ef Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Mon, 7 Aug 2017 17:06:13 -0400 Subject: consolidate interfaces --- Emby.Drawing/ImageProcessor.cs | 16 +- .../Channels/ChannelImageProvider.cs | 8 +- .../Collections/CollectionImageProvider.cs | 6 +- Emby.Server.Implementations/Dto/DtoService.cs | 4 +- .../Images/BaseDynamicImageProvider.cs | 28 +-- .../Library/LibraryManager.cs | 2 +- .../LiveTv/ChannelImageProvider.cs | 6 +- .../LiveTv/LiveTvDtoService.cs | 2 +- .../LiveTv/RecordingImageProvider.cs | 6 +- .../MediaEncoder/EncodingManager.cs | 2 +- .../Photos/PhotoAlbumImageProvider.cs | 4 +- .../Playlists/PlaylistImageProvider.cs | 10 +- .../UserViews/CollectionFolderImageProvider.cs | 16 +- .../UserViews/DynamicImageProvider.cs | 8 +- MediaBrowser.Api/Images/ImageService.cs | 10 +- MediaBrowser.Controller/Drawing/IImageProcessor.cs | 8 +- MediaBrowser.Controller/Drawing/ImageHelper.cs | 2 +- .../Drawing/ImageProcessingOptions.cs | 2 +- .../Drawing/ImageProcessorExtensions.cs | 4 +- MediaBrowser.Controller/Dto/IDtoService.cs | 4 +- MediaBrowser.Controller/Entities/BaseItem.cs | 2 +- MediaBrowser.Controller/Entities/IHasImages.cs | 260 --------------------- MediaBrowser.Controller/Entities/IHasMetadata.cs | 253 +++++++++++++++++++- MediaBrowser.Controller/Library/ILibraryManager.cs | 2 +- MediaBrowser.Controller/LiveTv/ILiveTvRecording.cs | 2 +- .../MediaBrowser.Controller.csproj | 1 - .../Providers/IDynamicImageProvider.cs | 4 +- .../Providers/IImageEnhancer.cs | 8 +- .../Providers/IImageProvider.cs | 2 +- .../Providers/ILocalImageFileProvider.cs | 2 +- .../Providers/IProviderManager.cs | 12 +- .../Providers/IRemoteImageProvider.cs | 4 +- .../Images/CollectionFolderImageProvider.cs | 4 +- .../Images/EpisodeLocalImageProvider.cs | 4 +- .../Images/ImagesByNameImageProvider.cs | 4 +- .../Images/InternalMetadataFolderImageProvider.cs | 4 +- .../Images/LocalImageProvider.cs | 16 +- .../BoxSets/MovieDbBoxSetImageProvider.cs | 6 +- MediaBrowser.Providers/ImagesByName/ImageUtils.cs | 2 +- MediaBrowser.Providers/Manager/ImageSaver.cs | 16 +- .../Manager/ItemImageProvider.cs | 30 +-- MediaBrowser.Providers/Manager/ProviderManager.cs | 24 +- .../MediaInfo/AudioImageProvider.cs | 6 +- .../MediaInfo/VideoImageProvider.cs | 6 +- .../Movies/FanartMovieImageProvider.cs | 6 +- .../Movies/MovieDbImageProvider.cs | 6 +- .../Music/AlbumImageFromSongProvider.cs | 6 +- .../Music/AudioDbAlbumImageProvider.cs | 6 +- .../Music/AudioDbArtistImageProvider.cs | 6 +- .../Music/FanArtAlbumProvider.cs | 6 +- .../Music/FanArtArtistProvider.cs | 6 +- MediaBrowser.Providers/Omdb/OmdbImageProvider.cs | 6 +- .../People/MovieDbPersonImageProvider.cs | 6 +- .../People/TvdbPersonImageProvider.cs | 6 +- .../Studios/StudiosImageProvider.cs | 10 +- .../TV/FanArt/FanArtSeasonProvider.cs | 6 +- .../TV/FanArt/FanartSeriesProvider.cs | 6 +- .../TV/TheMovieDb/MovieDbEpisodeImageProvider.cs | 6 +- .../TV/TheMovieDb/MovieDbSeriesImageProvider.cs | 6 +- .../TV/TheTVDB/TvdbEpisodeImageProvider.cs | 6 +- .../TV/TheTVDB/TvdbSeasonImageProvider.cs | 6 +- .../TV/TheTVDB/TvdbSeriesImageProvider.cs | 6 +- 62 files changed, 462 insertions(+), 472 deletions(-) delete mode 100644 MediaBrowser.Controller/Entities/IHasImages.cs (limited to 'Emby.Server.Implementations/Library/LibraryManager.cs') diff --git a/Emby.Drawing/ImageProcessor.cs b/Emby.Drawing/ImageProcessor.cs index 88ead3a5f..cc7b77de6 100644 --- a/Emby.Drawing/ImageProcessor.cs +++ b/Emby.Drawing/ImageProcessor.cs @@ -186,7 +186,7 @@ namespace Emby.Drawing } var originalImage = options.Image; - IHasImages item = options.Item; + IHasMetadata item = options.Item; if (!originalImage.IsLocalFile) { @@ -606,7 +606,7 @@ namespace Emby.Drawing /// The image. /// Guid. /// item - public string GetImageCacheTag(IHasImages item, ItemImageInfo image) + public string GetImageCacheTag(IHasMetadata item, ItemImageInfo image) { if (item == null) { @@ -631,7 +631,7 @@ namespace Emby.Drawing /// The image enhancers. /// Guid. /// item - public string GetImageCacheTag(IHasImages item, ItemImageInfo image, List imageEnhancers) + public string GetImageCacheTag(IHasMetadata item, ItemImageInfo image, List imageEnhancers) { if (item == null) { @@ -672,7 +672,7 @@ namespace Emby.Drawing /// Type of the image. /// Index of the image. /// Task{System.String}. - public async Task GetEnhancedImage(IHasImages item, ImageType imageType, int imageIndex) + public async Task GetEnhancedImage(IHasMetadata item, ImageType imageType, int imageIndex) { var enhancers = GetSupportedEnhancers(item, imageType).ToList(); @@ -684,7 +684,7 @@ namespace Emby.Drawing } private async Task> GetEnhancedImage(ItemImageInfo image, - IHasImages item, + IHasMetadata item, int imageIndex, List enhancers) { @@ -729,7 +729,7 @@ namespace Emby.Drawing /// item /// private async Task GetEnhancedImageInternal(string originalImagePath, - IHasImages item, + IHasMetadata item, ImageType imageType, int imageIndex, IEnumerable supportedEnhancers, @@ -783,7 +783,7 @@ namespace Emby.Drawing /// Type of the image. /// Index of the image. /// Task{EnhancedImage}. - private async Task ExecuteImageEnhancers(IEnumerable imageEnhancers, string inputPath, string outputPath, IHasImages item, ImageType imageType, int imageIndex) + private async Task ExecuteImageEnhancers(IEnumerable imageEnhancers, string inputPath, string outputPath, IHasMetadata item, ImageType imageType, int imageIndex) { // Run the enhancers sequentially in order of priority foreach (var enhancer in imageEnhancers) @@ -868,7 +868,7 @@ namespace Emby.Drawing _logger.Info("Completed creation of image collage and saved to {0}", options.OutputPath); } - public IEnumerable GetSupportedEnhancers(IHasImages item, ImageType imageType) + public IEnumerable GetSupportedEnhancers(IHasMetadata item, ImageType imageType) { return ImageEnhancers.Where(i => { diff --git a/Emby.Server.Implementations/Channels/ChannelImageProvider.cs b/Emby.Server.Implementations/Channels/ChannelImageProvider.cs index f892b1e62..0c363c585 100644 --- a/Emby.Server.Implementations/Channels/ChannelImageProvider.cs +++ b/Emby.Server.Implementations/Channels/ChannelImageProvider.cs @@ -18,12 +18,12 @@ namespace Emby.Server.Implementations.Channels _channelManager = channelManager; } - public IEnumerable GetSupportedImages(IHasImages item) + public IEnumerable GetSupportedImages(IHasMetadata item) { return GetChannel(item).GetSupportedChannelImages(); } - public Task GetImage(IHasImages item, ImageType type, CancellationToken cancellationToken) + public Task GetImage(IHasMetadata item, ImageType type, CancellationToken cancellationToken) { var channel = GetChannel(item); @@ -35,12 +35,12 @@ namespace Emby.Server.Implementations.Channels get { return "Channel Image Provider"; } } - public bool Supports(IHasImages item) + public bool Supports(IHasMetadata item) { return item is Channel; } - private IChannel GetChannel(IHasImages item) + private IChannel GetChannel(IHasMetadata item) { var channel = (Channel)item; diff --git a/Emby.Server.Implementations/Collections/CollectionImageProvider.cs b/Emby.Server.Implementations/Collections/CollectionImageProvider.cs index 463d276e5..c7378956d 100644 --- a/Emby.Server.Implementations/Collections/CollectionImageProvider.cs +++ b/Emby.Server.Implementations/Collections/CollectionImageProvider.cs @@ -21,7 +21,7 @@ namespace Emby.Server.Implementations.Collections { } - protected override bool Supports(IHasImages item) + protected override bool Supports(IHasMetadata item) { // Right now this is the only way to prevent this image from getting created ahead of internet image providers if (!item.IsLocked) @@ -32,7 +32,7 @@ namespace Emby.Server.Implementations.Collections return base.Supports(item); } - protected override List GetItemsWithImages(IHasImages item) + protected override List GetItemsWithImages(IHasMetadata item) { var playlist = (BoxSet)item; @@ -76,7 +76,7 @@ namespace Emby.Server.Implementations.Collections return GetFinalItems(items, 2); } - protected override string CreateImage(IHasImages item, List itemsWithImages, string outputPathWithoutExtension, ImageType imageType, int imageIndex) + protected override string CreateImage(IHasMetadata item, List itemsWithImages, string outputPathWithoutExtension, ImageType imageType, int imageIndex) { return CreateSingleImage(itemsWithImages, outputPathWithoutExtension, ImageType.Primary); } diff --git a/Emby.Server.Implementations/Dto/DtoService.cs b/Emby.Server.Implementations/Dto/DtoService.cs index 80576742e..daa5ff642 100644 --- a/Emby.Server.Implementations/Dto/DtoService.cs +++ b/Emby.Server.Implementations/Dto/DtoService.cs @@ -1581,12 +1581,12 @@ namespace Emby.Server.Implementations.Dto /// The dto. /// The item. /// Task. - public void AttachPrimaryImageAspectRatio(IItemDto dto, IHasImages item) + public void AttachPrimaryImageAspectRatio(IItemDto dto, IHasMetadata item) { dto.PrimaryImageAspectRatio = GetPrimaryImageAspectRatio(item); } - public double? GetPrimaryImageAspectRatio(IHasImages item) + public double? GetPrimaryImageAspectRatio(IHasMetadata item) { var imageInfo = item.GetImageInfo(ImageType.Primary, 0); diff --git a/Emby.Server.Implementations/Images/BaseDynamicImageProvider.cs b/Emby.Server.Implementations/Images/BaseDynamicImageProvider.cs index b8ce23a42..8e6f63f72 100644 --- a/Emby.Server.Implementations/Images/BaseDynamicImageProvider.cs +++ b/Emby.Server.Implementations/Images/BaseDynamicImageProvider.cs @@ -37,12 +37,12 @@ namespace Emby.Server.Implementations.Images ImageProcessor = imageProcessor; } - protected virtual bool Supports(IHasImages item) + protected virtual bool Supports(IHasMetadata item) { return true; } - public virtual IEnumerable GetSupportedImages(IHasImages item) + public virtual IEnumerable GetSupportedImages(IHasMetadata item) { return new List { @@ -51,7 +51,7 @@ namespace Emby.Server.Implementations.Images }; } - private IEnumerable GetEnabledImages(IHasImages item) + private IEnumerable GetEnabledImages(IHasMetadata item) { //var options = ProviderManager.GetMetadataOptions(item); @@ -84,7 +84,7 @@ namespace Emby.Server.Implementations.Images return updateType; } - protected async Task FetchAsync(IHasImages item, ImageType imageType, MetadataRefreshOptions options, CancellationToken cancellationToken) + protected async Task FetchAsync(IHasMetadata item, ImageType imageType, MetadataRefreshOptions options, CancellationToken cancellationToken) { var image = item.GetImageInfo(imageType, 0); @@ -106,7 +106,7 @@ namespace Emby.Server.Implementations.Images return await FetchToFileInternal(item, items, imageType, cancellationToken).ConfigureAwait(false); } - protected async Task FetchToFileInternal(IHasImages item, + protected async Task FetchToFileInternal(IHasMetadata item, List itemsWithImages, ImageType imageType, CancellationToken cancellationToken) @@ -132,14 +132,14 @@ namespace Emby.Server.Implementations.Images return ItemUpdateType.ImageUpdate; } - protected abstract List GetItemsWithImages(IHasImages item); + protected abstract List GetItemsWithImages(IHasMetadata item); - protected string CreateThumbCollage(IHasImages primaryItem, List items, string outputPath) + protected string CreateThumbCollage(IHasMetadata primaryItem, List items, string outputPath) { return CreateCollage(primaryItem, items, outputPath, 640, 360); } - protected virtual IEnumerable GetStripCollageImagePaths(IHasImages primaryItem, IEnumerable items) + protected virtual IEnumerable GetStripCollageImagePaths(IHasMetadata primaryItem, IEnumerable items) { return items .Select(i => @@ -161,22 +161,22 @@ namespace Emby.Server.Implementations.Images .Where(i => !string.IsNullOrWhiteSpace(i)); } - protected string CreatePosterCollage(IHasImages primaryItem, List items, string outputPath) + protected string CreatePosterCollage(IHasMetadata primaryItem, List items, string outputPath) { return CreateCollage(primaryItem, items, outputPath, 400, 600); } - protected string CreateSquareCollage(IHasImages primaryItem, List items, string outputPath) + protected string CreateSquareCollage(IHasMetadata primaryItem, List items, string outputPath) { return CreateCollage(primaryItem, items, outputPath, 600, 600); } - protected string CreateThumbCollage(IHasImages primaryItem, List items, string outputPath, int width, int height) + protected string CreateThumbCollage(IHasMetadata primaryItem, List items, string outputPath, int width, int height) { return CreateCollage(primaryItem, items, outputPath, width, height); } - private string CreateCollage(IHasImages primaryItem, List items, string outputPath, int width, int height) + private string CreateCollage(IHasMetadata primaryItem, List items, string outputPath, int width, int height) { FileSystem.CreateDirectory(FileSystem.GetDirectoryName(outputPath)); @@ -207,7 +207,7 @@ namespace Emby.Server.Implementations.Images get { return "Dynamic Image Provider"; } } - protected virtual string CreateImage(IHasImages item, + protected virtual string CreateImage(IHasMetadata item, List itemsWithImages, string outputPathWithoutExtension, ImageType imageType, @@ -267,7 +267,7 @@ namespace Emby.Server.Implementations.Images return false; } - protected bool HasChanged(IHasImages item, ImageType type) + protected bool HasChanged(IHasMetadata item, ImageType type) { var image = item.GetImageInfo(type, 0); diff --git a/Emby.Server.Implementations/Library/LibraryManager.cs b/Emby.Server.Implementations/Library/LibraryManager.cs index 9588b648e..5c7dc2507 100644 --- a/Emby.Server.Implementations/Library/LibraryManager.cs +++ b/Emby.Server.Implementations/Library/LibraryManager.cs @@ -2856,7 +2856,7 @@ namespace Emby.Server.Implementations.Library return ItemRepository.UpdatePeople(item.Id, people); } - public async Task ConvertImageToLocal(IHasImages item, ItemImageInfo image, int imageIndex) + public async Task ConvertImageToLocal(IHasMetadata item, ItemImageInfo image, int imageIndex) { foreach (var url in image.Path.Split('|')) { diff --git a/Emby.Server.Implementations/LiveTv/ChannelImageProvider.cs b/Emby.Server.Implementations/LiveTv/ChannelImageProvider.cs index 95cefd999..0c8049d8b 100644 --- a/Emby.Server.Implementations/LiveTv/ChannelImageProvider.cs +++ b/Emby.Server.Implementations/LiveTv/ChannelImageProvider.cs @@ -28,12 +28,12 @@ namespace Emby.Server.Implementations.LiveTv _appHost = appHost; } - public IEnumerable GetSupportedImages(IHasImages item) + public IEnumerable GetSupportedImages(IHasMetadata item) { return new[] { ImageType.Primary }; } - public async Task GetImage(IHasImages item, ImageType type, CancellationToken cancellationToken) + public async Task GetImage(IHasMetadata item, ImageType type, CancellationToken cancellationToken) { var liveTvItem = (LiveTvChannel)item; @@ -67,7 +67,7 @@ namespace Emby.Server.Implementations.LiveTv get { return "Live TV Service Provider"; } } - public bool Supports(IHasImages item) + public bool Supports(IHasMetadata item) { return item is LiveTvChannel; } diff --git a/Emby.Server.Implementations/LiveTv/LiveTvDtoService.cs b/Emby.Server.Implementations/LiveTv/LiveTvDtoService.cs index 5c5072192..f8ebdd05a 100644 --- a/Emby.Server.Implementations/LiveTv/LiveTvDtoService.cs +++ b/Emby.Server.Implementations/LiveTv/LiveTvDtoService.cs @@ -406,7 +406,7 @@ namespace Emby.Server.Implementations.LiveTv return dto; } - internal string GetImageTag(IHasImages info) + internal string GetImageTag(IHasMetadata info) { try { diff --git a/Emby.Server.Implementations/LiveTv/RecordingImageProvider.cs b/Emby.Server.Implementations/LiveTv/RecordingImageProvider.cs index 47663bdbc..992badbb5 100644 --- a/Emby.Server.Implementations/LiveTv/RecordingImageProvider.cs +++ b/Emby.Server.Implementations/LiveTv/RecordingImageProvider.cs @@ -19,12 +19,12 @@ namespace Emby.Server.Implementations.LiveTv _liveTvManager = liveTvManager; } - public IEnumerable GetSupportedImages(IHasImages item) + public IEnumerable GetSupportedImages(IHasMetadata item) { return new[] { ImageType.Primary }; } - public async Task GetImage(IHasImages item, ImageType type, CancellationToken cancellationToken) + public async Task GetImage(IHasMetadata item, ImageType type, CancellationToken cancellationToken) { var liveTvItem = (ILiveTvRecording)item; @@ -58,7 +58,7 @@ namespace Emby.Server.Implementations.LiveTv get { return "Live TV Service Provider"; } } - public bool Supports(IHasImages item) + public bool Supports(IHasMetadata item) { return item is ILiveTvRecording; } diff --git a/Emby.Server.Implementations/MediaEncoder/EncodingManager.cs b/Emby.Server.Implementations/MediaEncoder/EncodingManager.cs index 2cfa4601a..884f46f1f 100644 --- a/Emby.Server.Implementations/MediaEncoder/EncodingManager.cs +++ b/Emby.Server.Implementations/MediaEncoder/EncodingManager.cs @@ -45,7 +45,7 @@ namespace Emby.Server.Implementations.MediaEncoder /// Gets the chapter images data path. /// /// The chapter images data path. - private string GetChapterImagesPath(IHasImages item) + private string GetChapterImagesPath(IHasMetadata item) { return Path.Combine(item.GetInternalMetadataPath(), "chapters"); } diff --git a/Emby.Server.Implementations/Photos/PhotoAlbumImageProvider.cs b/Emby.Server.Implementations/Photos/PhotoAlbumImageProvider.cs index 17f9b491d..e23285425 100644 --- a/Emby.Server.Implementations/Photos/PhotoAlbumImageProvider.cs +++ b/Emby.Server.Implementations/Photos/PhotoAlbumImageProvider.cs @@ -18,7 +18,7 @@ namespace Emby.Server.Implementations.Photos { } - protected override List GetItemsWithImages(IHasImages item) + protected override List GetItemsWithImages(IHasMetadata item) { var photoAlbum = (PhotoAlbum)item; var items = GetFinalItems(photoAlbum.Children.ToList()); @@ -26,7 +26,7 @@ namespace Emby.Server.Implementations.Photos return items; } - protected override string CreateImage(IHasImages item, List itemsWithImages, string outputPathWithoutExtension, ImageType imageType, int imageIndex) + protected override string CreateImage(IHasMetadata item, List itemsWithImages, string outputPathWithoutExtension, ImageType imageType, int imageIndex) { return CreateSingleImage(itemsWithImages, outputPathWithoutExtension, ImageType.Primary); } diff --git a/Emby.Server.Implementations/Playlists/PlaylistImageProvider.cs b/Emby.Server.Implementations/Playlists/PlaylistImageProvider.cs index 127ce24ae..f5d0e314e 100644 --- a/Emby.Server.Implementations/Playlists/PlaylistImageProvider.cs +++ b/Emby.Server.Implementations/Playlists/PlaylistImageProvider.cs @@ -27,7 +27,7 @@ namespace Emby.Server.Implementations.Playlists { } - protected override List GetItemsWithImages(IHasImages item) + protected override List GetItemsWithImages(IHasMetadata item) { var playlist = (Playlist)item; @@ -81,7 +81,7 @@ namespace Emby.Server.Implementations.Playlists _libraryManager = libraryManager; } - protected override List GetItemsWithImages(IHasImages item) + protected override List GetItemsWithImages(IHasMetadata item) { var items = _libraryManager.GetItemList(new InternalItemsQuery { @@ -98,7 +98,7 @@ namespace Emby.Server.Implementations.Playlists return GetFinalItems(items); } - //protected override Task CreateImage(IHasImages item, List itemsWithImages, string outputPathWithoutExtension, ImageType imageType, int imageIndex) + //protected override Task CreateImage(IHasMetadata item, List itemsWithImages, string outputPathWithoutExtension, ImageType imageType, int imageIndex) //{ // return CreateSingleImage(itemsWithImages, outputPathWithoutExtension, ImageType.Primary); //} @@ -113,7 +113,7 @@ namespace Emby.Server.Implementations.Playlists _libraryManager = libraryManager; } - protected override List GetItemsWithImages(IHasImages item) + protected override List GetItemsWithImages(IHasMetadata item) { var items = _libraryManager.GetItemList(new InternalItemsQuery { @@ -130,7 +130,7 @@ namespace Emby.Server.Implementations.Playlists return GetFinalItems(items); } - //protected override Task CreateImage(IHasImages item, List itemsWithImages, string outputPathWithoutExtension, ImageType imageType, int imageIndex) + //protected override Task CreateImage(IHasMetadata item, List itemsWithImages, string outputPathWithoutExtension, ImageType imageType, int imageIndex) //{ // return CreateSingleImage(itemsWithImages, outputPathWithoutExtension, ImageType.Primary); //} diff --git a/Emby.Server.Implementations/UserViews/CollectionFolderImageProvider.cs b/Emby.Server.Implementations/UserViews/CollectionFolderImageProvider.cs index 863391eea..ac5bd128a 100644 --- a/Emby.Server.Implementations/UserViews/CollectionFolderImageProvider.cs +++ b/Emby.Server.Implementations/UserViews/CollectionFolderImageProvider.cs @@ -28,7 +28,7 @@ namespace Emby.Server.Implementations.UserViews { } - public override IEnumerable GetSupportedImages(IHasImages item) + public override IEnumerable GetSupportedImages(IHasMetadata item) { return new List { @@ -36,7 +36,7 @@ namespace Emby.Server.Implementations.UserViews }; } - protected override List GetItemsWithImages(IHasImages item) + protected override List GetItemsWithImages(IHasMetadata item) { var view = (CollectionFolder)item; @@ -94,12 +94,12 @@ namespace Emby.Server.Implementations.UserViews return GetFinalItems(items.Where(i => i.HasImage(ImageType.Primary) || i.HasImage(ImageType.Thumb)).ToList(), 8); } - protected override bool Supports(IHasImages item) + protected override bool Supports(IHasMetadata item) { return item is CollectionFolder; } - protected override string CreateImage(IHasImages item, List itemsWithImages, string outputPathWithoutExtension, ImageType imageType, int imageIndex) + protected override string CreateImage(IHasMetadata item, List itemsWithImages, string outputPathWithoutExtension, ImageType imageType, int imageIndex) { var outputPath = Path.ChangeExtension(outputPathWithoutExtension, ".png"); @@ -126,7 +126,7 @@ namespace Emby.Server.Implementations.UserViews _libraryManager = libraryManager; } - public override IEnumerable GetSupportedImages(IHasImages item) + public override IEnumerable GetSupportedImages(IHasMetadata item) { return new List { @@ -134,7 +134,7 @@ namespace Emby.Server.Implementations.UserViews }; } - protected override List GetItemsWithImages(IHasImages item) + protected override List GetItemsWithImages(IHasMetadata item) { var view = (ManualCollectionsFolder)item; @@ -152,12 +152,12 @@ namespace Emby.Server.Implementations.UserViews return GetFinalItems(items.Where(i => i.HasImage(ImageType.Primary) || i.HasImage(ImageType.Thumb)).ToList(), 8); } - protected override bool Supports(IHasImages item) + protected override bool Supports(IHasMetadata item) { return item is ManualCollectionsFolder; } - protected override string CreateImage(IHasImages item, List itemsWithImages, string outputPathWithoutExtension, ImageType imageType, int imageIndex) + protected override string CreateImage(IHasMetadata item, List itemsWithImages, string outputPathWithoutExtension, ImageType imageType, int imageIndex) { var outputPath = Path.ChangeExtension(outputPathWithoutExtension, ".png"); diff --git a/Emby.Server.Implementations/UserViews/DynamicImageProvider.cs b/Emby.Server.Implementations/UserViews/DynamicImageProvider.cs index 5230da8a6..6805080aa 100644 --- a/Emby.Server.Implementations/UserViews/DynamicImageProvider.cs +++ b/Emby.Server.Implementations/UserViews/DynamicImageProvider.cs @@ -31,7 +31,7 @@ namespace Emby.Server.Implementations.UserViews _libraryManager = libraryManager; } - public override IEnumerable GetSupportedImages(IHasImages item) + public override IEnumerable GetSupportedImages(IHasMetadata item) { var view = (UserView)item; if (IsUsingCollectionStrip(view)) @@ -48,7 +48,7 @@ namespace Emby.Server.Implementations.UserViews }; } - protected override List GetItemsWithImages(IHasImages item) + protected override List GetItemsWithImages(IHasMetadata item) { var view = (UserView)item; @@ -139,7 +139,7 @@ namespace Emby.Server.Implementations.UserViews return GetFinalItems(items.Where(i => i.HasImage(ImageType.Primary)).ToList()); } - protected override bool Supports(IHasImages item) + protected override bool Supports(IHasMetadata item) { var view = item as UserView; if (view != null) @@ -163,7 +163,7 @@ namespace Emby.Server.Implementations.UserViews return collectionStripViewTypes.Contains(view.ViewType ?? string.Empty); } - protected override string CreateImage(IHasImages item, List itemsWithImages, string outputPathWithoutExtension, ImageType imageType, int imageIndex) + protected override string CreateImage(IHasMetadata item, List itemsWithImages, string outputPathWithoutExtension, ImageType imageType, int imageIndex) { if (itemsWithImages.Count == 0) { diff --git a/MediaBrowser.Api/Images/ImageService.cs b/MediaBrowser.Api/Images/ImageService.cs index f6c97e091..a360e1183 100644 --- a/MediaBrowser.Api/Images/ImageService.cs +++ b/MediaBrowser.Api/Images/ImageService.cs @@ -312,7 +312,7 @@ namespace MediaBrowser.Api.Images return list; } - private ImageInfo GetImageInfo(IHasImages item, ItemImageInfo info, int? imageIndex) + private ImageInfo GetImageInfo(IHasMetadata item, ItemImageInfo info, int? imageIndex) { try { @@ -507,7 +507,7 @@ namespace MediaBrowser.Api.Images /// Index of the current. /// The new index. /// Task. - private Task UpdateItemIndex(IHasImages item, ImageType type, int currentIndex, int newIndex) + private Task UpdateItemIndex(IHasMetadata item, ImageType type, int currentIndex, int newIndex) { return item.SwapImages(type, currentIndex, newIndex); } @@ -520,7 +520,7 @@ namespace MediaBrowser.Api.Images /// if set to true [is head request]. /// System.Object. /// - public Task GetImage(ImageRequest request, IHasImages item, bool isHeadRequest) + public Task GetImage(ImageRequest request, IHasMetadata item, bool isHeadRequest) { if (request.PercentPlayed.HasValue) { @@ -603,7 +603,7 @@ namespace MediaBrowser.Api.Images isHeadRequest); } - private async Task GetImageResult(IHasImages item, + private async Task GetImageResult(IHasMetadata item, ImageRequest request, ItemImageInfo image, bool cropwhitespace, @@ -749,7 +749,7 @@ namespace MediaBrowser.Api.Images /// The request. /// The item. /// System.String. - private ItemImageInfo GetImageInfo(ImageRequest request, IHasImages item) + private ItemImageInfo GetImageInfo(ImageRequest request, IHasMetadata item) { var index = request.Index ?? 0; diff --git a/MediaBrowser.Controller/Drawing/IImageProcessor.cs b/MediaBrowser.Controller/Drawing/IImageProcessor.cs index 2832462a8..29363f492 100644 --- a/MediaBrowser.Controller/Drawing/IImageProcessor.cs +++ b/MediaBrowser.Controller/Drawing/IImageProcessor.cs @@ -54,7 +54,7 @@ namespace MediaBrowser.Controller.Drawing /// The item. /// Type of the image. /// IEnumerable{IImageEnhancer}. - IEnumerable GetSupportedEnhancers(IHasImages item, ImageType imageType); + IEnumerable GetSupportedEnhancers(IHasMetadata item, ImageType imageType); /// /// Gets the image cache tag. @@ -62,7 +62,7 @@ namespace MediaBrowser.Controller.Drawing /// The item. /// The image. /// Guid. - string GetImageCacheTag(IHasImages item, ItemImageInfo image); + string GetImageCacheTag(IHasMetadata item, ItemImageInfo image); /// /// Gets the image cache tag. @@ -71,7 +71,7 @@ namespace MediaBrowser.Controller.Drawing /// The image. /// The image enhancers. /// Guid. - string GetImageCacheTag(IHasImages item, ItemImageInfo image, List imageEnhancers); + string GetImageCacheTag(IHasMetadata item, ItemImageInfo image, List imageEnhancers); /// /// Processes the image. @@ -95,7 +95,7 @@ namespace MediaBrowser.Controller.Drawing /// Type of the image. /// Index of the image. /// Task{System.String}. - Task GetEnhancedImage(IHasImages item, ImageType imageType, int imageIndex); + Task GetEnhancedImage(IHasMetadata item, ImageType imageType, int imageIndex); /// /// Gets the supported image output formats. diff --git a/MediaBrowser.Controller/Drawing/ImageHelper.cs b/MediaBrowser.Controller/Drawing/ImageHelper.cs index 54f2ff987..9452446a1 100644 --- a/MediaBrowser.Controller/Drawing/ImageHelper.cs +++ b/MediaBrowser.Controller/Drawing/ImageHelper.cs @@ -48,7 +48,7 @@ namespace MediaBrowser.Controller.Drawing return new ImageSize(widthValue, height); } - private static double GetEstimatedAspectRatio(ImageType type, IHasImages item) + private static double GetEstimatedAspectRatio(ImageType type, IHasMetadata item) { switch (type) { diff --git a/MediaBrowser.Controller/Drawing/ImageProcessingOptions.cs b/MediaBrowser.Controller/Drawing/ImageProcessingOptions.cs index cfb3a97ee..fac21c744 100644 --- a/MediaBrowser.Controller/Drawing/ImageProcessingOptions.cs +++ b/MediaBrowser.Controller/Drawing/ImageProcessingOptions.cs @@ -12,7 +12,7 @@ namespace MediaBrowser.Controller.Drawing { public string ItemId { get; set; } public string ItemType { get; set; } - public IHasImages Item { get; set; } + public IHasMetadata Item { get; set; } public ItemImageInfo Image { get; set; } diff --git a/MediaBrowser.Controller/Drawing/ImageProcessorExtensions.cs b/MediaBrowser.Controller/Drawing/ImageProcessorExtensions.cs index c5601c49f..5dfa94e1e 100644 --- a/MediaBrowser.Controller/Drawing/ImageProcessorExtensions.cs +++ b/MediaBrowser.Controller/Drawing/ImageProcessorExtensions.cs @@ -5,12 +5,12 @@ namespace MediaBrowser.Controller.Drawing { public static class ImageProcessorExtensions { - public static string GetImageCacheTag(this IImageProcessor processor, IHasImages item, ImageType imageType) + public static string GetImageCacheTag(this IImageProcessor processor, IHasMetadata item, ImageType imageType) { return processor.GetImageCacheTag(item, imageType, 0); } - public static string GetImageCacheTag(this IImageProcessor processor, IHasImages item, ImageType imageType, int imageIndex) + public static string GetImageCacheTag(this IImageProcessor processor, IHasMetadata item, ImageType imageType, int imageIndex) { var imageInfo = item.GetImageInfo(imageType, imageIndex); diff --git a/MediaBrowser.Controller/Dto/IDtoService.cs b/MediaBrowser.Controller/Dto/IDtoService.cs index a6f807ce9..963092f52 100644 --- a/MediaBrowser.Controller/Dto/IDtoService.cs +++ b/MediaBrowser.Controller/Dto/IDtoService.cs @@ -24,14 +24,14 @@ namespace MediaBrowser.Controller.Dto /// /// The dto. /// The item. - void AttachPrimaryImageAspectRatio(IItemDto dto, IHasImages item); + void AttachPrimaryImageAspectRatio(IItemDto dto, IHasMetadata item); /// /// Gets the primary image aspect ratio. /// /// The item. /// System.Nullable<System.Double>. - double? GetPrimaryImageAspectRatio(IHasImages item); + double? GetPrimaryImageAspectRatio(IHasMetadata item); /// /// Gets the base item dto. diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs index cb345439a..7c375b937 100644 --- a/MediaBrowser.Controller/Entities/BaseItem.cs +++ b/MediaBrowser.Controller/Entities/BaseItem.cs @@ -39,7 +39,7 @@ namespace MediaBrowser.Controller.Entities /// /// Class BaseItem /// - public abstract class BaseItem : IHasProviderIds, IHasImages, IHasUserData, IHasMetadata, IHasLookupInfo + public abstract class BaseItem : IHasMetadata, IHasLookupInfo { protected BaseItem() { diff --git a/MediaBrowser.Controller/Entities/IHasImages.cs b/MediaBrowser.Controller/Entities/IHasImages.cs deleted file mode 100644 index 6d56b1525..000000000 --- a/MediaBrowser.Controller/Entities/IHasImages.cs +++ /dev/null @@ -1,260 +0,0 @@ -using MediaBrowser.Controller.Providers; -using MediaBrowser.Model.Entities; -using System.Collections.Generic; -using System.Threading; -using System.Threading.Tasks; - -using MediaBrowser.Controller.IO; -using MediaBrowser.Controller.Library; -using MediaBrowser.Model.IO; - -namespace MediaBrowser.Controller.Entities -{ - public interface IHasImages : IHasProviderIds, IHasUserData - { - /// - /// Gets the name. - /// - /// The name. - string Name { get; set; } - - /// - /// Gets the path. - /// - /// The path. - string Path { get; set; } - - /// - /// Gets the file name without extension. - /// - /// The file name without extension. - string FileNameWithoutExtension { get; } - - /// - /// Gets the type of the location. - /// - /// The type of the location. - LocationType LocationType { get; } - - /// - /// Gets the locked fields. - /// - /// The locked fields. - List LockedFields { get; } - - /// - /// Gets the images. - /// - /// Type of the image. - /// IEnumerable{ItemImageInfo}. - IEnumerable GetImages(ImageType imageType); - - /// - /// Gets the image path. - /// - /// Type of the image. - /// Index of the image. - /// System.String. - string GetImagePath(ImageType imageType, int imageIndex); - - /// - /// Gets the image information. - /// - /// Type of the image. - /// Index of the image. - /// ItemImageInfo. - ItemImageInfo GetImageInfo(ImageType imageType, int imageIndex); - - /// - /// Sets the image. - /// - /// The type. - /// The index. - /// The file. - void SetImagePath(ImageType type, int index, FileSystemMetadata file); - - /// - /// Determines whether the specified type has image. - /// - /// The type. - /// Index of the image. - /// true if the specified type has image; otherwise, false. - bool HasImage(ImageType type, int imageIndex); - - /// - /// Allowses the multiple images. - /// - /// The type. - /// true if XXXX, false otherwise. - bool AllowsMultipleImages(ImageType type); - - /// - /// Swaps the images. - /// - /// The type. - /// The index1. - /// The index2. - /// Task. - Task SwapImages(ImageType type, int index1, int index2); - - /// - /// Gets or sets the primary image path. - /// - /// The primary image path. - string PrimaryImagePath { get; } - - /// - /// Gets the preferred metadata language. - /// - /// System.String. - string GetPreferredMetadataLanguage(); - - /// - /// Validates the images and returns true or false indicating if any were removed. - /// - bool ValidateImages(IDirectoryService directoryService); - - /// - /// Gets a value indicating whether this instance is owned item. - /// - /// true if this instance is owned item; otherwise, false. - bool IsOwnedItem { get; } - - /// - /// Gets the containing folder path. - /// - /// The containing folder path. - string ContainingFolderPath { get; } - - /// - /// Adds the images. - /// - /// Type of the image. - /// The images. - /// true if XXXX, false otherwise. - bool AddImages(ImageType imageType, List images); - - /// - /// Determines whether [is save local metadata enabled]. - /// - /// true if [is save local metadata enabled]; otherwise, false. - bool IsSaveLocalMetadataEnabled(); - - /// - /// Gets a value indicating whether [supports local metadata]. - /// - /// true if [supports local metadata]; otherwise, false. - bool SupportsLocalMetadata { get; } - - bool IsInMixedFolder { get; } - - /// - /// Gets a value indicating whether this instance is locked. - /// - /// true if this instance is locked; otherwise, false. - bool IsLocked { get; } - - /// - /// Gets a value indicating whether [supports remote image downloading]. - /// - /// true if [supports remote image downloading]; otherwise, false. - bool SupportsRemoteImageDownloading { get; } - - /// - /// Gets the internal metadata path. - /// - /// System.String. - string GetInternalMetadataPath(); - - /// - /// Gets a value indicating whether [always scan internal metadata path]. - /// - /// true if [always scan internal metadata path]; otherwise, false. - bool AlwaysScanInternalMetadataPath { get; } - - /// - /// Determines whether [is internet metadata enabled]. - /// - /// true if [is internet metadata enabled]; otherwise, false. - bool IsInternetMetadataEnabled(); - - /// - /// Removes the image. - /// - /// The image. - void RemoveImage(ItemImageInfo image); - - /// - /// Updates to repository. - /// - /// The update reason. - /// The cancellation token. - /// Task. - Task UpdateToRepository(ItemUpdateType updateReason, CancellationToken cancellationToken); - - /// - /// Sets the image. - /// - /// The image. - /// The index. - void SetImage(ItemImageInfo image, int index); - - double? GetDefaultPrimaryImageAspectRatio(); - - int? ProductionYear { get; set; } - - List Tags { get; set; } - } - - public static class HasImagesExtensions - { - /// - /// Gets the image path. - /// - /// The item. - /// Type of the image. - /// System.String. - public static string GetImagePath(this IHasImages item, ImageType imageType) - { - return item.GetImagePath(imageType, 0); - } - - public static bool HasImage(this IHasImages item, ImageType imageType) - { - return item.HasImage(imageType, 0); - } - - /// - /// Sets the image path. - /// - /// The item. - /// Type of the image. - /// The file. - public static void SetImagePath(this IHasImages item, ImageType imageType, FileSystemMetadata file) - { - item.SetImagePath(imageType, 0, file); - } - - /// - /// Sets the image path. - /// - /// The item. - /// Type of the image. - /// The file. - public static void SetImagePath(this IHasImages item, ImageType imageType, string file) - { - if (file.StartsWith("http", System.StringComparison.OrdinalIgnoreCase)) - { - item.SetImage(new ItemImageInfo - { - Path = file, - Type = imageType - }, 0); - } - else - { - item.SetImagePath(imageType, BaseItem.FileSystem.GetFileInfo(file)); - } - } - } -} diff --git a/MediaBrowser.Controller/Entities/IHasMetadata.cs b/MediaBrowser.Controller/Entities/IHasMetadata.cs index 1d2e23a6c..a76f2fec3 100644 --- a/MediaBrowser.Controller/Entities/IHasMetadata.cs +++ b/MediaBrowser.Controller/Entities/IHasMetadata.cs @@ -1,12 +1,18 @@ using System; using System.Collections.Generic; +using System.Threading; +using System.Threading.Tasks; +using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Providers; +using MediaBrowser.Model.Entities; +using MediaBrowser.Model.IO; namespace MediaBrowser.Controller.Entities { /// /// Interface IHasMetadata /// - public interface IHasMetadata : IHasImages + public interface IHasMetadata : IHasProviderIds, IHasUserData { /// /// Gets the preferred metadata country code. @@ -65,5 +71,250 @@ namespace MediaBrowser.Controller.Entities int InheritedParentalRatingValue { get; set; } List GetInheritedTags(); long? RunTimeTicks { get; set; } + + /// + /// Gets the name. + /// + /// The name. + string Name { get; set; } + + /// + /// Gets the path. + /// + /// The path. + string Path { get; set; } + + /// + /// Gets the file name without extension. + /// + /// The file name without extension. + string FileNameWithoutExtension { get; } + + /// + /// Gets the type of the location. + /// + /// The type of the location. + LocationType LocationType { get; } + + /// + /// Gets the locked fields. + /// + /// The locked fields. + List LockedFields { get; } + + /// + /// Gets the images. + /// + /// Type of the image. + /// IEnumerable{ItemImageInfo}. + IEnumerable GetImages(ImageType imageType); + + /// + /// Gets the image path. + /// + /// Type of the image. + /// Index of the image. + /// System.String. + string GetImagePath(ImageType imageType, int imageIndex); + + /// + /// Gets the image information. + /// + /// Type of the image. + /// Index of the image. + /// ItemImageInfo. + ItemImageInfo GetImageInfo(ImageType imageType, int imageIndex); + + /// + /// Sets the image. + /// + /// The type. + /// The index. + /// The file. + void SetImagePath(ImageType type, int index, FileSystemMetadata file); + + /// + /// Determines whether the specified type has image. + /// + /// The type. + /// Index of the image. + /// true if the specified type has image; otherwise, false. + bool HasImage(ImageType type, int imageIndex); + + /// + /// Allowses the multiple images. + /// + /// The type. + /// true if XXXX, false otherwise. + bool AllowsMultipleImages(ImageType type); + + /// + /// Swaps the images. + /// + /// The type. + /// The index1. + /// The index2. + /// Task. + Task SwapImages(ImageType type, int index1, int index2); + + /// + /// Gets or sets the primary image path. + /// + /// The primary image path. + string PrimaryImagePath { get; } + + /// + /// Gets the preferred metadata language. + /// + /// System.String. + string GetPreferredMetadataLanguage(); + + /// + /// Validates the images and returns true or false indicating if any were removed. + /// + bool ValidateImages(IDirectoryService directoryService); + + /// + /// Gets a value indicating whether this instance is owned item. + /// + /// true if this instance is owned item; otherwise, false. + bool IsOwnedItem { get; } + + /// + /// Gets the containing folder path. + /// + /// The containing folder path. + string ContainingFolderPath { get; } + + /// + /// Adds the images. + /// + /// Type of the image. + /// The images. + /// true if XXXX, false otherwise. + bool AddImages(ImageType imageType, List images); + + /// + /// Determines whether [is save local metadata enabled]. + /// + /// true if [is save local metadata enabled]; otherwise, false. + bool IsSaveLocalMetadataEnabled(); + + /// + /// Gets a value indicating whether [supports local metadata]. + /// + /// true if [supports local metadata]; otherwise, false. + bool SupportsLocalMetadata { get; } + + bool IsInMixedFolder { get; } + + /// + /// Gets a value indicating whether this instance is locked. + /// + /// true if this instance is locked; otherwise, false. + bool IsLocked { get; } + + /// + /// Gets a value indicating whether [supports remote image downloading]. + /// + /// true if [supports remote image downloading]; otherwise, false. + bool SupportsRemoteImageDownloading { get; } + + /// + /// Gets the internal metadata path. + /// + /// System.String. + string GetInternalMetadataPath(); + + /// + /// Gets a value indicating whether [always scan internal metadata path]. + /// + /// true if [always scan internal metadata path]; otherwise, false. + bool AlwaysScanInternalMetadataPath { get; } + + /// + /// Determines whether [is internet metadata enabled]. + /// + /// true if [is internet metadata enabled]; otherwise, false. + bool IsInternetMetadataEnabled(); + + /// + /// Removes the image. + /// + /// The image. + void RemoveImage(ItemImageInfo image); + + /// + /// Updates to repository. + /// + /// The update reason. + /// The cancellation token. + /// Task. + Task UpdateToRepository(ItemUpdateType updateReason, CancellationToken cancellationToken); + + /// + /// Sets the image. + /// + /// The image. + /// The index. + void SetImage(ItemImageInfo image, int index); + + double? GetDefaultPrimaryImageAspectRatio(); + + int? ProductionYear { get; set; } + + List Tags { get; set; } + } + + public static class HasMetadataExtensions + { + /// + /// Gets the image path. + /// + /// The item. + /// Type of the image. + /// System.String. + public static string GetImagePath(this IHasMetadata item, ImageType imageType) + { + return item.GetImagePath(imageType, 0); + } + + public static bool HasImage(this IHasMetadata item, ImageType imageType) + { + return item.HasImage(imageType, 0); + } + + /// + /// Sets the image path. + /// + /// The item. + /// Type of the image. + /// The file. + public static void SetImagePath(this IHasMetadata item, ImageType imageType, FileSystemMetadata file) + { + item.SetImagePath(imageType, 0, file); + } + + /// + /// Sets the image path. + /// + /// The item. + /// Type of the image. + /// The file. + public static void SetImagePath(this IHasMetadata item, ImageType imageType, string file) + { + if (file.StartsWith("http", System.StringComparison.OrdinalIgnoreCase)) + { + item.SetImage(new ItemImageInfo + { + Path = file, + Type = imageType + }, 0); + } + else + { + item.SetImagePath(imageType, BaseItem.FileSystem.GetFileInfo(file)); + } + } } } diff --git a/MediaBrowser.Controller/Library/ILibraryManager.cs b/MediaBrowser.Controller/Library/ILibraryManager.cs index b726c267c..bf2ebac84 100644 --- a/MediaBrowser.Controller/Library/ILibraryManager.cs +++ b/MediaBrowser.Controller/Library/ILibraryManager.cs @@ -520,7 +520,7 @@ namespace MediaBrowser.Controller.Library /// The image. /// Index of the image. /// Task. - Task ConvertImageToLocal(IHasImages item, ItemImageInfo image, int imageIndex); + Task ConvertImageToLocal(IHasMetadata item, ItemImageInfo image, int imageIndex); /// /// Gets the items. diff --git a/MediaBrowser.Controller/LiveTv/ILiveTvRecording.cs b/MediaBrowser.Controller/LiveTv/ILiveTvRecording.cs index 1bbd1a008..27ff334ee 100644 --- a/MediaBrowser.Controller/LiveTv/ILiveTvRecording.cs +++ b/MediaBrowser.Controller/LiveTv/ILiveTvRecording.cs @@ -9,7 +9,7 @@ using System.Threading.Tasks; namespace MediaBrowser.Controller.LiveTv { - public interface ILiveTvRecording : IHasImages, IHasMediaSources, IHasUserData, IHasStartDate, IHasProgramAttributes + public interface ILiveTvRecording : IHasMetadata, IHasMediaSources, IHasUserData, IHasStartDate, IHasProgramAttributes { string ServiceName { get; set; } string ExternalId { get; set; } diff --git a/MediaBrowser.Controller/MediaBrowser.Controller.csproj b/MediaBrowser.Controller/MediaBrowser.Controller.csproj index e5fbf599a..b72b9027e 100644 --- a/MediaBrowser.Controller/MediaBrowser.Controller.csproj +++ b/MediaBrowser.Controller/MediaBrowser.Controller.csproj @@ -99,7 +99,6 @@ - diff --git a/MediaBrowser.Controller/Providers/IDynamicImageProvider.cs b/MediaBrowser.Controller/Providers/IDynamicImageProvider.cs index 9c3f94763..e96a2d65e 100644 --- a/MediaBrowser.Controller/Providers/IDynamicImageProvider.cs +++ b/MediaBrowser.Controller/Providers/IDynamicImageProvider.cs @@ -13,7 +13,7 @@ namespace MediaBrowser.Controller.Providers /// /// The item. /// IEnumerable{ImageType}. - IEnumerable GetSupportedImages(IHasImages item); + IEnumerable GetSupportedImages(IHasMetadata item); /// /// Gets the image. @@ -22,6 +22,6 @@ namespace MediaBrowser.Controller.Providers /// The type. /// The cancellation token. /// Task{DynamicImageResponse}. - Task GetImage(IHasImages item, ImageType type, CancellationToken cancellationToken); + Task GetImage(IHasMetadata item, ImageType type, CancellationToken cancellationToken); } } \ No newline at end of file diff --git a/MediaBrowser.Controller/Providers/IImageEnhancer.cs b/MediaBrowser.Controller/Providers/IImageEnhancer.cs index a43941607..a993f536d 100644 --- a/MediaBrowser.Controller/Providers/IImageEnhancer.cs +++ b/MediaBrowser.Controller/Providers/IImageEnhancer.cs @@ -13,7 +13,7 @@ namespace MediaBrowser.Controller.Providers /// The item. /// Type of the image. /// true if this enhancer will enhance the supplied image for the supplied item, false otherwise - bool Supports(IHasImages item, ImageType imageType); + bool Supports(IHasMetadata item, ImageType imageType); /// /// Gets the priority or order in which this enhancer should be run. @@ -27,7 +27,7 @@ namespace MediaBrowser.Controller.Providers /// The item. /// Type of the image. /// Cache key relating to the current state of this item and configuration - string GetConfigurationCacheKey(IHasImages item, ImageType imageType); + string GetConfigurationCacheKey(IHasMetadata item, ImageType imageType); /// /// Gets the size of the enhanced image. @@ -37,7 +37,7 @@ namespace MediaBrowser.Controller.Providers /// Index of the image. /// Size of the original image. /// ImageSize. - ImageSize GetEnhancedImageSize(IHasImages item, ImageType imageType, int imageIndex, ImageSize originalImageSize); + ImageSize GetEnhancedImageSize(IHasMetadata item, ImageType imageType, int imageIndex, ImageSize originalImageSize); /// /// Enhances the image async. @@ -49,6 +49,6 @@ namespace MediaBrowser.Controller.Providers /// Index of the image. /// Task{Image}. /// - Task EnhanceImageAsync(IHasImages item, string inputFile, string outputFile, ImageType imageType, int imageIndex); + Task EnhanceImageAsync(IHasMetadata item, string inputFile, string outputFile, ImageType imageType, int imageIndex); } } \ No newline at end of file diff --git a/MediaBrowser.Controller/Providers/IImageProvider.cs b/MediaBrowser.Controller/Providers/IImageProvider.cs index 1e5bdfeaf..2b43c9cb8 100644 --- a/MediaBrowser.Controller/Providers/IImageProvider.cs +++ b/MediaBrowser.Controller/Providers/IImageProvider.cs @@ -18,6 +18,6 @@ namespace MediaBrowser.Controller.Providers /// /// The item. /// true if XXXX, false otherwise - bool Supports(IHasImages item); + bool Supports(IHasMetadata item); } } diff --git a/MediaBrowser.Controller/Providers/ILocalImageFileProvider.cs b/MediaBrowser.Controller/Providers/ILocalImageFileProvider.cs index 7e5d82843..e93c73a52 100644 --- a/MediaBrowser.Controller/Providers/ILocalImageFileProvider.cs +++ b/MediaBrowser.Controller/Providers/ILocalImageFileProvider.cs @@ -5,6 +5,6 @@ namespace MediaBrowser.Controller.Providers { public interface ILocalImageFileProvider : ILocalImageProvider { - List GetImages(IHasImages item, IDirectoryService directoryService); + List GetImages(IHasMetadata item, IDirectoryService directoryService); } } \ No newline at end of file diff --git a/MediaBrowser.Controller/Providers/IProviderManager.cs b/MediaBrowser.Controller/Providers/IProviderManager.cs index 0ba573da8..703666d66 100644 --- a/MediaBrowser.Controller/Providers/IProviderManager.cs +++ b/MediaBrowser.Controller/Providers/IProviderManager.cs @@ -50,7 +50,7 @@ namespace MediaBrowser.Controller.Providers /// Index of the image. /// The cancellation token. /// Task. - Task SaveImage(IHasImages item, string url, ImageType type, int? imageIndex, CancellationToken cancellationToken); + Task SaveImage(IHasMetadata item, string url, ImageType type, int? imageIndex, CancellationToken cancellationToken); /// /// Saves the image. @@ -62,13 +62,13 @@ namespace MediaBrowser.Controller.Providers /// Index of the image. /// The cancellation token. /// Task. - Task SaveImage(IHasImages item, Stream source, string mimeType, ImageType type, int? imageIndex, CancellationToken cancellationToken); + Task SaveImage(IHasMetadata item, Stream source, string mimeType, ImageType type, int? imageIndex, CancellationToken cancellationToken); /// /// Saves the image. /// /// Task. - Task SaveImage(IHasImages item, string source, string mimeType, ImageType type, int? imageIndex, bool? saveLocallyWithMedia, CancellationToken cancellationToken); + Task SaveImage(IHasMetadata item, string source, string mimeType, ImageType type, int? imageIndex, bool? saveLocallyWithMedia, CancellationToken cancellationToken); /// /// Adds the metadata providers. @@ -84,14 +84,14 @@ namespace MediaBrowser.Controller.Providers /// The query. /// The cancellation token. /// Task{IEnumerable{RemoteImageInfo}}. - Task> GetAvailableRemoteImages(IHasImages item, RemoteImageQuery query, CancellationToken cancellationToken); + Task> GetAvailableRemoteImages(IHasMetadata item, RemoteImageQuery query, CancellationToken cancellationToken); /// /// Gets the image providers. /// /// The item. /// IEnumerable{ImageProviderInfo}. - IEnumerable GetRemoteImageProviderInfo(IHasImages item); + IEnumerable GetRemoteImageProviderInfo(IHasMetadata item); /// /// Gets all metadata plugins. @@ -135,7 +135,7 @@ namespace MediaBrowser.Controller.Providers /// /// The item. /// MetadataOptions. - MetadataOptions GetMetadataOptions(IHasImages item); + MetadataOptions GetMetadataOptions(IHasMetadata item); /// /// Gets the remote search results. diff --git a/MediaBrowser.Controller/Providers/IRemoteImageProvider.cs b/MediaBrowser.Controller/Providers/IRemoteImageProvider.cs index 6b94547bb..86a7939e6 100644 --- a/MediaBrowser.Controller/Providers/IRemoteImageProvider.cs +++ b/MediaBrowser.Controller/Providers/IRemoteImageProvider.cs @@ -18,7 +18,7 @@ namespace MediaBrowser.Controller.Providers /// /// The item. /// IEnumerable{ImageType}. - IEnumerable GetSupportedImages(IHasImages item); + IEnumerable GetSupportedImages(IHasMetadata item); /// /// Gets the images. @@ -26,7 +26,7 @@ namespace MediaBrowser.Controller.Providers /// The item. /// The cancellation token. /// Task{IEnumerable{RemoteImageInfo}}. - Task> GetImages(IHasImages item, CancellationToken cancellationToken); + Task> GetImages(IHasMetadata item, CancellationToken cancellationToken); /// /// Gets the image response. diff --git a/MediaBrowser.LocalMetadata/Images/CollectionFolderImageProvider.cs b/MediaBrowser.LocalMetadata/Images/CollectionFolderImageProvider.cs index 954e0c322..4ec2eeeb1 100644 --- a/MediaBrowser.LocalMetadata/Images/CollectionFolderImageProvider.cs +++ b/MediaBrowser.LocalMetadata/Images/CollectionFolderImageProvider.cs @@ -21,7 +21,7 @@ namespace MediaBrowser.LocalMetadata.Images get { return "Collection Folder Images"; } } - public bool Supports(IHasImages item) + public bool Supports(IHasMetadata item) { return item is CollectionFolder && item.SupportsLocalMetadata; } @@ -35,7 +35,7 @@ namespace MediaBrowser.LocalMetadata.Images } } - public List GetImages(IHasImages item, IDirectoryService directoryService) + public List GetImages(IHasMetadata item, IDirectoryService directoryService) { var collectionFolder = (CollectionFolder)item; diff --git a/MediaBrowser.LocalMetadata/Images/EpisodeLocalImageProvider.cs b/MediaBrowser.LocalMetadata/Images/EpisodeLocalImageProvider.cs index 2b5858aec..881d2a85a 100644 --- a/MediaBrowser.LocalMetadata/Images/EpisodeLocalImageProvider.cs +++ b/MediaBrowser.LocalMetadata/Images/EpisodeLocalImageProvider.cs @@ -31,12 +31,12 @@ namespace MediaBrowser.LocalMetadata.Images get { return 0; } } - public bool Supports(IHasImages item) + public bool Supports(IHasMetadata item) { return item is Episode && item.SupportsLocalMetadata; } - public List GetImages(IHasImages item, IDirectoryService directoryService) + public List GetImages(IHasMetadata item, IDirectoryService directoryService) { var parentPath = _fileSystem.GetDirectoryName(item.Path); diff --git a/MediaBrowser.LocalMetadata/Images/ImagesByNameImageProvider.cs b/MediaBrowser.LocalMetadata/Images/ImagesByNameImageProvider.cs index 83554f044..db57dcbfd 100644 --- a/MediaBrowser.LocalMetadata/Images/ImagesByNameImageProvider.cs +++ b/MediaBrowser.LocalMetadata/Images/ImagesByNameImageProvider.cs @@ -25,7 +25,7 @@ namespace MediaBrowser.LocalMetadata.Images get { return "Images By Name"; } } - public bool Supports(IHasImages item) + public bool Supports(IHasMetadata item) { return item is CollectionFolder; } @@ -39,7 +39,7 @@ namespace MediaBrowser.LocalMetadata.Images } } - public List GetImages(IHasImages item, IDirectoryService directoryService) + public List GetImages(IHasMetadata item, IDirectoryService directoryService) { var name = _fileSystem.GetValidFilename(item.Name); diff --git a/MediaBrowser.LocalMetadata/Images/InternalMetadataFolderImageProvider.cs b/MediaBrowser.LocalMetadata/Images/InternalMetadataFolderImageProvider.cs index 47579f870..469a31442 100644 --- a/MediaBrowser.LocalMetadata/Images/InternalMetadataFolderImageProvider.cs +++ b/MediaBrowser.LocalMetadata/Images/InternalMetadataFolderImageProvider.cs @@ -26,7 +26,7 @@ namespace MediaBrowser.LocalMetadata.Images get { return "Internal Images"; } } - public bool Supports(IHasImages item) + public bool Supports(IHasMetadata item) { if (item is Photo) { @@ -61,7 +61,7 @@ namespace MediaBrowser.LocalMetadata.Images } } - public List GetImages(IHasImages item, IDirectoryService directoryService) + public List GetImages(IHasMetadata item, IDirectoryService directoryService) { var path = item.GetInternalMetadataPath(); diff --git a/MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs b/MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs index 51572d20c..643c37427 100644 --- a/MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs +++ b/MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs @@ -32,7 +32,7 @@ namespace MediaBrowser.LocalMetadata.Images get { return 0; } } - public bool Supports(IHasImages item) + public bool Supports(IHasMetadata item) { if (item.SupportsLocalMetadata) { @@ -63,7 +63,7 @@ namespace MediaBrowser.LocalMetadata.Images return false; } - private IEnumerable GetFiles(IHasImages item, bool includeDirectories, IDirectoryService directoryService) + private IEnumerable GetFiles(IHasMetadata item, bool includeDirectories, IDirectoryService directoryService) { if (item.LocationType != LocationType.FileSystem) { @@ -85,7 +85,7 @@ namespace MediaBrowser.LocalMetadata.Images .OrderBy(i => BaseItem.SupportedImageExtensionsList.IndexOf(i.Extension ?? string.Empty)); } - public List GetImages(IHasImages item, IDirectoryService directoryService) + public List GetImages(IHasMetadata item, IDirectoryService directoryService) { var files = GetFiles(item, true, directoryService).ToList(); @@ -96,12 +96,12 @@ namespace MediaBrowser.LocalMetadata.Images return list; } - public List GetImages(IHasImages item, string path, bool isPathInMediaFolder, IDirectoryService directoryService) + public List GetImages(IHasMetadata item, string path, bool isPathInMediaFolder, IDirectoryService directoryService) { return GetImages(item, new[] { path }, isPathInMediaFolder, directoryService); } - public List GetImages(IHasImages item, IEnumerable paths, bool arePathsInMediaFolders, IDirectoryService directoryService) + public List GetImages(IHasMetadata item, IEnumerable paths, bool arePathsInMediaFolders, IDirectoryService directoryService) { IEnumerable files; @@ -131,7 +131,7 @@ namespace MediaBrowser.LocalMetadata.Images return list; } - private void PopulateImages(IHasImages item, List images, List files, bool supportParentSeriesFiles, IDirectoryService directoryService) + private void PopulateImages(IHasMetadata item, List images, List files, bool supportParentSeriesFiles, IDirectoryService directoryService) { if (supportParentSeriesFiles) { @@ -179,7 +179,7 @@ namespace MediaBrowser.LocalMetadata.Images PopulateScreenshots(images, files, imagePrefix, isInMixedFolder); } - private void PopulatePrimaryImages(IHasImages item, List images, List files, string imagePrefix, bool isInMixedFolder) + private void PopulatePrimaryImages(IHasMetadata item, List images, List files, string imagePrefix, bool isInMixedFolder) { var names = new List { @@ -231,7 +231,7 @@ namespace MediaBrowser.LocalMetadata.Images } } - private void PopulateBackdrops(IHasImages item, List images, List files, string imagePrefix, bool isInMixedFolder, IDirectoryService directoryService) + private void PopulateBackdrops(IHasMetadata item, List images, List files, string imagePrefix, bool isInMixedFolder, IDirectoryService directoryService) { if (!string.IsNullOrEmpty(item.Path)) { diff --git a/MediaBrowser.Providers/BoxSets/MovieDbBoxSetImageProvider.cs b/MediaBrowser.Providers/BoxSets/MovieDbBoxSetImageProvider.cs index 852feab37..4ee1826ad 100644 --- a/MediaBrowser.Providers/BoxSets/MovieDbBoxSetImageProvider.cs +++ b/MediaBrowser.Providers/BoxSets/MovieDbBoxSetImageProvider.cs @@ -33,12 +33,12 @@ namespace MediaBrowser.Providers.BoxSets get { return "TheMovieDb"; } } - public bool Supports(IHasImages item) + public bool Supports(IHasMetadata item) { return item is BoxSet; } - public IEnumerable GetSupportedImages(IHasImages item) + public IEnumerable GetSupportedImages(IHasMetadata item) { return new List { @@ -47,7 +47,7 @@ namespace MediaBrowser.Providers.BoxSets }; } - public async Task> GetImages(IHasImages item, CancellationToken cancellationToken) + public async Task> GetImages(IHasMetadata item, CancellationToken cancellationToken) { var tmdbId = item.GetProviderId(MetadataProviders.Tmdb); diff --git a/MediaBrowser.Providers/ImagesByName/ImageUtils.cs b/MediaBrowser.Providers/ImagesByName/ImageUtils.cs index 499fd2e0b..74c01fb5c 100644 --- a/MediaBrowser.Providers/ImagesByName/ImageUtils.cs +++ b/MediaBrowser.Providers/ImagesByName/ImageUtils.cs @@ -53,7 +53,7 @@ namespace MediaBrowser.Providers.ImagesByName return file; } - public static string FindMatch(IHasImages item, IEnumerable images) + public static string FindMatch(IHasMetadata item, IEnumerable images) { var name = GetComparableName(item.Name); diff --git a/MediaBrowser.Providers/Manager/ImageSaver.cs b/MediaBrowser.Providers/Manager/ImageSaver.cs index 2bf2d0ac7..384a911de 100644 --- a/MediaBrowser.Providers/Manager/ImageSaver.cs +++ b/MediaBrowser.Providers/Manager/ImageSaver.cs @@ -67,12 +67,12 @@ namespace MediaBrowser.Providers.Manager /// The cancellation token. /// Task. /// mimeType - public Task SaveImage(IHasImages item, Stream source, string mimeType, ImageType type, int? imageIndex, CancellationToken cancellationToken) + public Task SaveImage(IHasMetadata item, Stream source, string mimeType, ImageType type, int? imageIndex, CancellationToken cancellationToken) { return SaveImage(item, source, mimeType, type, imageIndex, null, cancellationToken); } - public async Task SaveImage(IHasImages item, Stream source, string mimeType, ImageType type, int? imageIndex, bool? saveLocallyWithMedia, CancellationToken cancellationToken) + public async Task SaveImage(IHasMetadata item, Stream source, string mimeType, ImageType type, int? imageIndex, bool? saveLocallyWithMedia, CancellationToken cancellationToken) { if (string.IsNullOrEmpty(mimeType)) { @@ -274,7 +274,7 @@ namespace MediaBrowser.Providers.Manager /// Type of the MIME. /// if set to true [save locally]. /// IEnumerable{System.String}. - private string[] GetSavePaths(IHasImages item, ImageType type, int? imageIndex, string mimeType, bool saveLocally) + private string[] GetSavePaths(IHasMetadata item, ImageType type, int? imageIndex, string mimeType, bool saveLocally) { if (!saveLocally || (_config.Configuration.ImageSavingConvention == ImageSavingConvention.Legacy)) { @@ -296,7 +296,7 @@ namespace MediaBrowser.Providers.Manager /// or /// imageIndex /// - private ItemImageInfo GetCurrentImage(IHasImages item, ImageType type, int imageIndex) + private ItemImageInfo GetCurrentImage(IHasMetadata item, ImageType type, int imageIndex) { return item.GetImageInfo(type, imageIndex); } @@ -311,7 +311,7 @@ namespace MediaBrowser.Providers.Manager /// imageIndex /// or /// imageIndex - private void SetImagePath(IHasImages item, ImageType type, int? imageIndex, string path) + private void SetImagePath(IHasMetadata item, ImageType type, int? imageIndex, string path) { item.SetImagePath(type, imageIndex ?? 0, _fileSystem.GetFileInfo(path)); } @@ -330,7 +330,7 @@ namespace MediaBrowser.Providers.Manager /// or /// imageIndex /// - private string GetStandardSavePath(IHasImages item, ImageType type, int? imageIndex, string mimeType, bool saveLocally) + private string GetStandardSavePath(IHasMetadata item, ImageType type, int? imageIndex, string mimeType, bool saveLocally) { var season = item as Season; var extension = MimeTypes.ToExtension(mimeType); @@ -483,7 +483,7 @@ namespace MediaBrowser.Providers.Manager /// Type of the MIME. /// IEnumerable{System.String}. /// imageIndex - private string[] GetCompatibleSavePaths(IHasImages item, ImageType type, int? imageIndex, string mimeType) + private string[] GetCompatibleSavePaths(IHasMetadata item, ImageType type, int? imageIndex, string mimeType) { var season = item as Season; @@ -603,7 +603,7 @@ namespace MediaBrowser.Providers.Manager /// The image filename. /// The extension. /// System.String. - private string GetSavePathForItemInMixedFolder(IHasImages item, ImageType type, string imageFilename, string extension) + private string GetSavePathForItemInMixedFolder(IHasMetadata item, ImageType type, string imageFilename, string extension) { if (type == ImageType.Primary) { diff --git a/MediaBrowser.Providers/Manager/ItemImageProvider.cs b/MediaBrowser.Providers/Manager/ItemImageProvider.cs index 39715a449..b360a2fcd 100644 --- a/MediaBrowser.Providers/Manager/ItemImageProvider.cs +++ b/MediaBrowser.Providers/Manager/ItemImageProvider.cs @@ -41,7 +41,7 @@ namespace MediaBrowser.Providers.Manager _fileSystem = fileSystem; } - public bool ValidateImages(IHasImages item, IEnumerable providers, IDirectoryService directoryService) + public bool ValidateImages(IHasMetadata item, IEnumerable providers, IDirectoryService directoryService) { var hasChanges = false; @@ -60,7 +60,7 @@ namespace MediaBrowser.Providers.Manager return hasChanges; } - public async Task RefreshImages(IHasImages item, LibraryOptions libraryOptions, IEnumerable imageProviders, ImageRefreshOptions refreshOptions, MetadataOptions savedOptions, CancellationToken cancellationToken) + public async Task RefreshImages(IHasMetadata item, LibraryOptions libraryOptions, IEnumerable imageProviders, ImageRefreshOptions refreshOptions, MetadataOptions savedOptions, CancellationToken cancellationToken) { if (refreshOptions.IsReplacingImage(ImageType.Backdrop)) { @@ -118,7 +118,7 @@ namespace MediaBrowser.Providers.Manager /// The result. /// The cancellation token. /// Task. - private async Task RefreshFromProvider(IHasImages item, + private async Task RefreshFromProvider(IHasMetadata item, IDynamicImageProvider provider, ImageRefreshOptions refreshOptions, MetadataOptions savedOptions, @@ -203,7 +203,7 @@ namespace MediaBrowser.Providers.Manager ImageType.Thumb }; - private bool HasImage(IHasImages item, ImageType type) + private bool HasImage(IHasMetadata item, ImageType type) { var image = item.GetImageInfo(type, 0); @@ -220,7 +220,7 @@ namespace MediaBrowser.Providers.Manager /// The backdrop limit. /// The screenshot limit. /// true if the specified item contains images; otherwise, false. - private bool ContainsImages(IHasImages item, List images, MetadataOptions savedOptions, int backdropLimit, int screenshotLimit) + private bool ContainsImages(IHasMetadata item, List images, MetadataOptions savedOptions, int backdropLimit, int screenshotLimit) { if (_singularImages.Any(i => images.Contains(i) && !HasImage(item, i) && savedOptions.GetLimit(i) > 0)) { @@ -253,7 +253,7 @@ namespace MediaBrowser.Providers.Manager /// The result. /// The cancellation token. /// Task. - private async Task RefreshFromProvider(IHasImages item, LibraryOptions libraryOptions, + private async Task RefreshFromProvider(IHasMetadata item, LibraryOptions libraryOptions, IRemoteImageProvider provider, ImageRefreshOptions refreshOptions, MetadataOptions savedOptions, @@ -333,7 +333,7 @@ namespace MediaBrowser.Providers.Manager } } - private bool IsEnabled(MetadataOptions options, ImageType type, IHasImages item) + private bool IsEnabled(MetadataOptions options, ImageType type, IHasMetadata item) { if (type == ImageType.Backdrop) { @@ -360,7 +360,7 @@ namespace MediaBrowser.Providers.Manager return options.IsEnabled(type); } - private void ClearImages(IHasImages item, ImageType type) + private void ClearImages(IHasMetadata item, ImageType type) { var deleted = false; var deletedImages = new List(); @@ -395,7 +395,7 @@ namespace MediaBrowser.Providers.Manager } } - public bool MergeImages(IHasImages item, List images) + public bool MergeImages(IHasMetadata item, List images) { var changed = false; @@ -453,7 +453,7 @@ namespace MediaBrowser.Providers.Manager return changed; } - private bool UpdateMultiImages(IHasImages item, List images, ImageType type) + private bool UpdateMultiImages(IHasMetadata item, List images, ImageType type) { var changed = false; @@ -471,7 +471,7 @@ namespace MediaBrowser.Providers.Manager return changed; } - private async Task DownloadImage(IHasImages item, LibraryOptions libraryOptions, + private async Task DownloadImage(IHasMetadata item, LibraryOptions libraryOptions, IRemoteImageProvider provider, RefreshResult result, IEnumerable images, @@ -517,7 +517,7 @@ namespace MediaBrowser.Providers.Manager return false; } - private bool EnableImageStub(IHasImages item, ImageType type, LibraryOptions libraryOptions) + private bool EnableImageStub(IHasMetadata item, ImageType type, LibraryOptions libraryOptions) { if (item is LiveTvProgram) { @@ -557,14 +557,14 @@ namespace MediaBrowser.Providers.Manager } } - private void SaveImageStub(IHasImages item, ImageType imageType, IEnumerable urls) + private void SaveImageStub(IHasMetadata item, ImageType imageType, IEnumerable urls) { var newIndex = item.AllowsMultipleImages(imageType) ? item.GetImages(imageType).Count() : 0; SaveImageStub(item, imageType, urls, newIndex); } - private void SaveImageStub(IHasImages item, ImageType imageType, IEnumerable urls, int newIndex) + private void SaveImageStub(IHasMetadata item, ImageType imageType, IEnumerable urls, int newIndex) { var path = string.Join("|", urls.Take(1).ToArray()); @@ -576,7 +576,7 @@ namespace MediaBrowser.Providers.Manager }, newIndex); } - private async Task DownloadBackdrops(IHasImages item, LibraryOptions libraryOptions, ImageType imageType, int limit, IRemoteImageProvider provider, RefreshResult result, IEnumerable images, int minWidth, CancellationToken cancellationToken) + private async Task DownloadBackdrops(IHasMetadata item, LibraryOptions libraryOptions, ImageType imageType, int limit, IRemoteImageProvider provider, RefreshResult result, IEnumerable images, int minWidth, CancellationToken cancellationToken) { foreach (var image in images.Where(i => i.Type == imageType)) { diff --git a/MediaBrowser.Providers/Manager/ProviderManager.cs b/MediaBrowser.Providers/Manager/ProviderManager.cs index ce995fe64..8cdb9a407 100644 --- a/MediaBrowser.Providers/Manager/ProviderManager.cs +++ b/MediaBrowser.Providers/Manager/ProviderManager.cs @@ -128,7 +128,7 @@ namespace MediaBrowser.Providers.Manager return Task.FromResult(ItemUpdateType.None); } - public async Task SaveImage(IHasImages item, string url, ImageType type, int? imageIndex, CancellationToken cancellationToken) + public async Task SaveImage(IHasMetadata item, string url, ImageType type, int? imageIndex, CancellationToken cancellationToken) { var response = await _httpClient.GetResponse(new HttpRequestOptions { @@ -142,12 +142,12 @@ namespace MediaBrowser.Providers.Manager .ConfigureAwait(false); } - public Task SaveImage(IHasImages item, Stream source, string mimeType, ImageType type, int? imageIndex, CancellationToken cancellationToken) + public Task SaveImage(IHasMetadata item, Stream source, string mimeType, ImageType type, int? imageIndex, CancellationToken cancellationToken) { return new ImageSaver(ConfigurationManager, _libraryMonitor, _fileSystem, _logger, _memoryStreamProvider).SaveImage(item, source, mimeType, type, imageIndex, cancellationToken); } - public Task SaveImage(IHasImages item, string source, string mimeType, ImageType type, int? imageIndex, bool? saveLocallyWithMedia, CancellationToken cancellationToken) + public Task SaveImage(IHasMetadata item, string source, string mimeType, ImageType type, int? imageIndex, bool? saveLocallyWithMedia, CancellationToken cancellationToken) { if (string.IsNullOrWhiteSpace(source)) { @@ -159,7 +159,7 @@ namespace MediaBrowser.Providers.Manager return new ImageSaver(ConfigurationManager, _libraryMonitor, _fileSystem, _logger, _memoryStreamProvider).SaveImage(item, fileStream, mimeType, type, imageIndex, saveLocallyWithMedia, cancellationToken); } - public async Task> GetAvailableRemoteImages(IHasImages item, RemoteImageQuery query, CancellationToken cancellationToken) + public async Task> GetAvailableRemoteImages(IHasMetadata item, RemoteImageQuery query, CancellationToken cancellationToken) { var providers = GetRemoteImageProviders(item, query.IncludeDisabledProviders); @@ -196,7 +196,7 @@ namespace MediaBrowser.Providers.Manager /// The preferred languages. /// The type. /// Task{IEnumerable{RemoteImageInfo}}. - private async Task> GetImages(IHasImages item, CancellationToken cancellationToken, IRemoteImageProvider provider, List preferredLanguages, ImageType? type = null) + private async Task> GetImages(IHasMetadata item, CancellationToken cancellationToken, IRemoteImageProvider provider, List preferredLanguages, ImageType? type = null) { try { @@ -232,7 +232,7 @@ namespace MediaBrowser.Providers.Manager /// /// The item. /// IEnumerable{IImageProvider}. - public IEnumerable GetRemoteImageProviderInfo(IHasImages item) + public IEnumerable GetRemoteImageProviderInfo(IHasMetadata item) { return GetRemoteImageProviders(item, true).Select(i => new ImageProviderInfo { @@ -241,12 +241,12 @@ namespace MediaBrowser.Providers.Manager }); } - public IEnumerable GetImageProviders(IHasImages item, ImageRefreshOptions refreshOptions) + public IEnumerable GetImageProviders(IHasMetadata item, ImageRefreshOptions refreshOptions) { return GetImageProviders(item, GetMetadataOptions(item), refreshOptions, false); } - private IEnumerable GetImageProviders(IHasImages item, MetadataOptions options, ImageRefreshOptions refreshOptions, bool includeDisabled) + private IEnumerable GetImageProviders(IHasMetadata item, MetadataOptions options, ImageRefreshOptions refreshOptions, bool includeDisabled) { // Avoid implicitly captured closure var currentOptions = options; @@ -291,7 +291,7 @@ namespace MediaBrowser.Providers.Manager .ThenBy(GetDefaultOrder); } - private IEnumerable GetRemoteImageProviders(IHasImages item, bool includeDisabled) + private IEnumerable GetRemoteImageProviders(IHasMetadata item, bool includeDisabled) { var options = GetMetadataOptions(item); @@ -339,7 +339,7 @@ namespace MediaBrowser.Providers.Manager return true; } - private bool CanRefresh(IImageProvider provider, IHasImages item, MetadataOptions options, ImageRefreshOptions refreshOptions, bool includeDisabled) + private bool CanRefresh(IImageProvider provider, IHasMetadata item, MetadataOptions options, ImageRefreshOptions refreshOptions, bool includeDisabled) { if (!includeDisabled) { @@ -530,7 +530,7 @@ namespace MediaBrowser.Providers.Manager } private void AddImagePlugins(List list, T item, List imageProviders) - where T : IHasImages + where T : IHasMetadata { // Locals @@ -550,7 +550,7 @@ namespace MediaBrowser.Providers.Manager })); } - public MetadataOptions GetMetadataOptions(IHasImages item) + public MetadataOptions GetMetadataOptions(IHasMetadata item) { var type = item.GetType().Name; diff --git a/MediaBrowser.Providers/MediaInfo/AudioImageProvider.cs b/MediaBrowser.Providers/MediaInfo/AudioImageProvider.cs index e406932ed..3e145e1f0 100644 --- a/MediaBrowser.Providers/MediaInfo/AudioImageProvider.cs +++ b/MediaBrowser.Providers/MediaInfo/AudioImageProvider.cs @@ -31,12 +31,12 @@ namespace MediaBrowser.Providers.MediaInfo _fileSystem = fileSystem; } - public IEnumerable GetSupportedImages(IHasImages item) + public IEnumerable GetSupportedImages(IHasMetadata item) { return new List { ImageType.Primary }; } - public Task GetImage(IHasImages item, ImageType type, CancellationToken cancellationToken) + public Task GetImage(IHasMetadata item, ImageType type, CancellationToken cancellationToken) { var audio = (Audio)item; @@ -127,7 +127,7 @@ namespace MediaBrowser.Providers.MediaInfo get { return "Image Extractor"; } } - public bool Supports(IHasImages item) + public bool Supports(IHasMetadata item) { var audio = item as Audio; diff --git a/MediaBrowser.Providers/MediaInfo/VideoImageProvider.cs b/MediaBrowser.Providers/MediaInfo/VideoImageProvider.cs index 26a795a7d..f666d8b7f 100644 --- a/MediaBrowser.Providers/MediaInfo/VideoImageProvider.cs +++ b/MediaBrowser.Providers/MediaInfo/VideoImageProvider.cs @@ -29,12 +29,12 @@ namespace MediaBrowser.Providers.MediaInfo _fileSystem = fileSystem; } - public IEnumerable GetSupportedImages(IHasImages item) + public IEnumerable GetSupportedImages(IHasMetadata item) { return new List { ImageType.Primary }; } - public Task GetImage(IHasImages item, ImageType type, CancellationToken cancellationToken) + public Task GetImage(IHasMetadata item, ImageType type, CancellationToken cancellationToken) { var video = (Video)item; @@ -129,7 +129,7 @@ namespace MediaBrowser.Providers.MediaInfo get { return "Screen Grabber"; } } - public bool Supports(IHasImages item) + public bool Supports(IHasMetadata item) { var video = item as Video; diff --git a/MediaBrowser.Providers/Movies/FanartMovieImageProvider.cs b/MediaBrowser.Providers/Movies/FanartMovieImageProvider.cs index c3aa87a22..0214788ab 100644 --- a/MediaBrowser.Providers/Movies/FanartMovieImageProvider.cs +++ b/MediaBrowser.Providers/Movies/FanartMovieImageProvider.cs @@ -60,12 +60,12 @@ namespace MediaBrowser.Providers.Movies get { return "FanArt"; } } - public bool Supports(IHasImages item) + public bool Supports(IHasMetadata item) { return item is Movie || item is BoxSet || item is MusicVideo; } - public IEnumerable GetSupportedImages(IHasImages item) + public IEnumerable GetSupportedImages(IHasMetadata item) { return new List { @@ -79,7 +79,7 @@ namespace MediaBrowser.Providers.Movies }; } - public async Task> GetImages(IHasImages item, CancellationToken cancellationToken) + public async Task> GetImages(IHasMetadata item, CancellationToken cancellationToken) { var baseItem = (BaseItem)item; var list = new List(); diff --git a/MediaBrowser.Providers/Movies/MovieDbImageProvider.cs b/MediaBrowser.Providers/Movies/MovieDbImageProvider.cs index 215b39181..257ecadd3 100644 --- a/MediaBrowser.Providers/Movies/MovieDbImageProvider.cs +++ b/MediaBrowser.Providers/Movies/MovieDbImageProvider.cs @@ -41,12 +41,12 @@ namespace MediaBrowser.Providers.Movies get { return "TheMovieDb"; } } - public bool Supports(IHasImages item) + public bool Supports(IHasMetadata item) { return item is Movie || item is MusicVideo || item is Trailer; } - public IEnumerable GetSupportedImages(IHasImages item) + public IEnumerable GetSupportedImages(IHasMetadata item) { return new List { @@ -55,7 +55,7 @@ namespace MediaBrowser.Providers.Movies }; } - public async Task> GetImages(IHasImages item, CancellationToken cancellationToken) + public async Task> GetImages(IHasMetadata item, CancellationToken cancellationToken) { var list = new List(); diff --git a/MediaBrowser.Providers/Music/AlbumImageFromSongProvider.cs b/MediaBrowser.Providers/Music/AlbumImageFromSongProvider.cs index 0cb1a7ff1..57e20b852 100644 --- a/MediaBrowser.Providers/Music/AlbumImageFromSongProvider.cs +++ b/MediaBrowser.Providers/Music/AlbumImageFromSongProvider.cs @@ -11,12 +11,12 @@ namespace MediaBrowser.Providers.Music { public class AlbumImageFromSongProvider : IDynamicImageProvider { - public IEnumerable GetSupportedImages(IHasImages item) + public IEnumerable GetSupportedImages(IHasMetadata item) { return new List { ImageType.Primary }; } - public Task GetImage(IHasImages item, ImageType type, CancellationToken cancellationToken) + public Task GetImage(IHasMetadata item, ImageType type, CancellationToken cancellationToken) { var album = (MusicAlbum)item; @@ -38,7 +38,7 @@ namespace MediaBrowser.Providers.Music get { return "Image Extractor"; } } - public bool Supports(IHasImages item) + public bool Supports(IHasMetadata item) { return item is MusicAlbum; } diff --git a/MediaBrowser.Providers/Music/AudioDbAlbumImageProvider.cs b/MediaBrowser.Providers/Music/AudioDbAlbumImageProvider.cs index c13d19c43..0ce221b06 100644 --- a/MediaBrowser.Providers/Music/AudioDbAlbumImageProvider.cs +++ b/MediaBrowser.Providers/Music/AudioDbAlbumImageProvider.cs @@ -25,7 +25,7 @@ namespace MediaBrowser.Providers.Music _json = json; } - public IEnumerable GetSupportedImages(IHasImages item) + public IEnumerable GetSupportedImages(IHasMetadata item) { return new List { @@ -34,7 +34,7 @@ namespace MediaBrowser.Providers.Music }; } - public async Task> GetImages(IHasImages item, CancellationToken cancellationToken) + public async Task> GetImages(IHasMetadata item, CancellationToken cancellationToken) { var id = item.GetProviderId(MetadataProviders.MusicBrainzReleaseGroup); @@ -105,7 +105,7 @@ namespace MediaBrowser.Providers.Music } } - public bool Supports(IHasImages item) + public bool Supports(IHasMetadata item) { return item is MusicAlbum; } diff --git a/MediaBrowser.Providers/Music/AudioDbArtistImageProvider.cs b/MediaBrowser.Providers/Music/AudioDbArtistImageProvider.cs index 6ca1d83d8..dded509e2 100644 --- a/MediaBrowser.Providers/Music/AudioDbArtistImageProvider.cs +++ b/MediaBrowser.Providers/Music/AudioDbArtistImageProvider.cs @@ -25,7 +25,7 @@ namespace MediaBrowser.Providers.Music _httpClient = httpClient; } - public IEnumerable GetSupportedImages(IHasImages item) + public IEnumerable GetSupportedImages(IHasMetadata item) { return new List { @@ -36,7 +36,7 @@ namespace MediaBrowser.Providers.Music }; } - public async Task> GetImages(IHasImages item, CancellationToken cancellationToken) + public async Task> GetImages(IHasMetadata item, CancellationToken cancellationToken) { var id = item.GetProviderId(MetadataProviders.MusicBrainzArtist); @@ -138,7 +138,7 @@ namespace MediaBrowser.Providers.Music get { return "TheAudioDB"; } } - public bool Supports(IHasImages item) + public bool Supports(IHasMetadata item) { return item is MusicArtist; } diff --git a/MediaBrowser.Providers/Music/FanArtAlbumProvider.cs b/MediaBrowser.Providers/Music/FanArtAlbumProvider.cs index 5700b2386..7a6826d31 100644 --- a/MediaBrowser.Providers/Music/FanArtAlbumProvider.cs +++ b/MediaBrowser.Providers/Music/FanArtAlbumProvider.cs @@ -47,12 +47,12 @@ namespace MediaBrowser.Providers.Music get { return "FanArt"; } } - public bool Supports(IHasImages item) + public bool Supports(IHasMetadata item) { return item is MusicAlbum; } - public IEnumerable GetSupportedImages(IHasImages item) + public IEnumerable GetSupportedImages(IHasMetadata item) { return new List { @@ -61,7 +61,7 @@ namespace MediaBrowser.Providers.Music }; } - public async Task> GetImages(IHasImages item, CancellationToken cancellationToken) + public async Task> GetImages(IHasMetadata item, CancellationToken cancellationToken) { var album = (MusicAlbum)item; diff --git a/MediaBrowser.Providers/Music/FanArtArtistProvider.cs b/MediaBrowser.Providers/Music/FanArtArtistProvider.cs index eefebed29..6094fd26e 100644 --- a/MediaBrowser.Providers/Music/FanArtArtistProvider.cs +++ b/MediaBrowser.Providers/Music/FanArtArtistProvider.cs @@ -58,12 +58,12 @@ namespace MediaBrowser.Providers.Music get { return "FanArt"; } } - public bool Supports(IHasImages item) + public bool Supports(IHasMetadata item) { return item is MusicArtist; } - public IEnumerable GetSupportedImages(IHasImages item) + public IEnumerable GetSupportedImages(IHasMetadata item) { return new List { @@ -75,7 +75,7 @@ namespace MediaBrowser.Providers.Music }; } - public async Task> GetImages(IHasImages item, CancellationToken cancellationToken) + public async Task> GetImages(IHasMetadata item, CancellationToken cancellationToken) { var artist = (MusicArtist)item; diff --git a/MediaBrowser.Providers/Omdb/OmdbImageProvider.cs b/MediaBrowser.Providers/Omdb/OmdbImageProvider.cs index f8b3ba155..74bfa6e03 100644 --- a/MediaBrowser.Providers/Omdb/OmdbImageProvider.cs +++ b/MediaBrowser.Providers/Omdb/OmdbImageProvider.cs @@ -32,7 +32,7 @@ namespace MediaBrowser.Providers.Omdb _configurationManager = configurationManager; } - public IEnumerable GetSupportedImages(IHasImages item) + public IEnumerable GetSupportedImages(IHasMetadata item) { return new List { @@ -40,7 +40,7 @@ namespace MediaBrowser.Providers.Omdb }; } - public async Task> GetImages(IHasImages item, CancellationToken cancellationToken) + public async Task> GetImages(IHasMetadata item, CancellationToken cancellationToken) { var imdbId = item.GetProviderId(MetadataProviders.Imdb); @@ -91,7 +91,7 @@ namespace MediaBrowser.Providers.Omdb get { return "The Open Movie Database"; } } - public bool Supports(IHasImages item) + public bool Supports(IHasMetadata item) { return item is Movie || item is Trailer || item is Episode; } diff --git a/MediaBrowser.Providers/People/MovieDbPersonImageProvider.cs b/MediaBrowser.Providers/People/MovieDbPersonImageProvider.cs index 372813790..78cc72836 100644 --- a/MediaBrowser.Providers/People/MovieDbPersonImageProvider.cs +++ b/MediaBrowser.Providers/People/MovieDbPersonImageProvider.cs @@ -37,12 +37,12 @@ namespace MediaBrowser.Providers.People get { return "TheMovieDb"; } } - public bool Supports(IHasImages item) + public bool Supports(IHasMetadata item) { return item is Person; } - public IEnumerable GetSupportedImages(IHasImages item) + public IEnumerable GetSupportedImages(IHasMetadata item) { return new List { @@ -50,7 +50,7 @@ namespace MediaBrowser.Providers.People }; } - public async Task> GetImages(IHasImages item, CancellationToken cancellationToken) + public async Task> GetImages(IHasMetadata item, CancellationToken cancellationToken) { var person = (Person)item; var id = person.GetProviderId(MetadataProviders.Tmdb); diff --git a/MediaBrowser.Providers/People/TvdbPersonImageProvider.cs b/MediaBrowser.Providers/People/TvdbPersonImageProvider.cs index efbf46cd6..2c3ba00c8 100644 --- a/MediaBrowser.Providers/People/TvdbPersonImageProvider.cs +++ b/MediaBrowser.Providers/People/TvdbPersonImageProvider.cs @@ -48,12 +48,12 @@ namespace MediaBrowser.Providers.People get { return "TheTVDB"; } } - public bool Supports(IHasImages item) + public bool Supports(IHasMetadata item) { return item is Person; } - public IEnumerable GetSupportedImages(IHasImages item) + public IEnumerable GetSupportedImages(IHasMetadata item) { return new List { @@ -61,7 +61,7 @@ namespace MediaBrowser.Providers.People }; } - public Task> GetImages(IHasImages item, CancellationToken cancellationToken) + public Task> GetImages(IHasMetadata item, CancellationToken cancellationToken) { var seriesWithPerson = _libraryManager.GetItemList(new InternalItemsQuery { diff --git a/MediaBrowser.Providers/Studios/StudiosImageProvider.cs b/MediaBrowser.Providers/Studios/StudiosImageProvider.cs index 8579bd16b..f63615430 100644 --- a/MediaBrowser.Providers/Studios/StudiosImageProvider.cs +++ b/MediaBrowser.Providers/Studios/StudiosImageProvider.cs @@ -37,12 +37,12 @@ namespace MediaBrowser.Providers.Studios get { return "Emby Designs"; } } - public bool Supports(IHasImages item) + public bool Supports(IHasMetadata item) { return item is Studio; } - public IEnumerable GetSupportedImages(IHasImages item) + public IEnumerable GetSupportedImages(IHasMetadata item) { return new List { @@ -51,12 +51,12 @@ namespace MediaBrowser.Providers.Studios }; } - public Task> GetImages(IHasImages item, CancellationToken cancellationToken) + public Task> GetImages(IHasMetadata item, CancellationToken cancellationToken) { return GetImages(item, true, true, cancellationToken); } - private async Task> GetImages(IHasImages item, bool posters, bool thumbs, CancellationToken cancellationToken) + private async Task> GetImages(IHasMetadata item, bool posters, bool thumbs, CancellationToken cancellationToken) { var list = new List(); @@ -83,7 +83,7 @@ namespace MediaBrowser.Providers.Studios return list.Where(i => i != null); } - private RemoteImageInfo GetImage(IHasImages item, string filename, ImageType type, string remoteFilename) + private RemoteImageInfo GetImage(IHasMetadata item, string filename, ImageType type, string remoteFilename) { var list = ImageUtils.GetAvailableImages(filename, _fileSystem); diff --git a/MediaBrowser.Providers/TV/FanArt/FanArtSeasonProvider.cs b/MediaBrowser.Providers/TV/FanArt/FanArtSeasonProvider.cs index b9f010bb6..002c98e95 100644 --- a/MediaBrowser.Providers/TV/FanArt/FanArtSeasonProvider.cs +++ b/MediaBrowser.Providers/TV/FanArt/FanArtSeasonProvider.cs @@ -50,12 +50,12 @@ namespace MediaBrowser.Providers.TV get { return "FanArt"; } } - public bool Supports(IHasImages item) + public bool Supports(IHasMetadata item) { return item is Season; } - public IEnumerable GetSupportedImages(IHasImages item) + public IEnumerable GetSupportedImages(IHasMetadata item) { return new List { @@ -66,7 +66,7 @@ namespace MediaBrowser.Providers.TV }; } - public async Task> GetImages(IHasImages item, CancellationToken cancellationToken) + public async Task> GetImages(IHasMetadata item, CancellationToken cancellationToken) { var list = new List(); diff --git a/MediaBrowser.Providers/TV/FanArt/FanartSeriesProvider.cs b/MediaBrowser.Providers/TV/FanArt/FanartSeriesProvider.cs index 644e9cbb5..583e5900d 100644 --- a/MediaBrowser.Providers/TV/FanArt/FanartSeriesProvider.cs +++ b/MediaBrowser.Providers/TV/FanArt/FanartSeriesProvider.cs @@ -59,12 +59,12 @@ namespace MediaBrowser.Providers.TV get { return "FanArt"; } } - public bool Supports(IHasImages item) + public bool Supports(IHasMetadata item) { return item is Series; } - public IEnumerable GetSupportedImages(IHasImages item) + public IEnumerable GetSupportedImages(IHasMetadata item) { return new List { @@ -77,7 +77,7 @@ namespace MediaBrowser.Providers.TV }; } - public async Task> GetImages(IHasImages item, CancellationToken cancellationToken) + public async Task> GetImages(IHasMetadata item, CancellationToken cancellationToken) { var list = new List(); diff --git a/MediaBrowser.Providers/TV/TheMovieDb/MovieDbEpisodeImageProvider.cs b/MediaBrowser.Providers/TV/TheMovieDb/MovieDbEpisodeImageProvider.cs index 854f9f06b..474036e7f 100644 --- a/MediaBrowser.Providers/TV/TheMovieDb/MovieDbEpisodeImageProvider.cs +++ b/MediaBrowser.Providers/TV/TheMovieDb/MovieDbEpisodeImageProvider.cs @@ -29,7 +29,7 @@ namespace MediaBrowser.Providers.TV : base(httpClient, configurationManager, jsonSerializer, fileSystem, localization, logManager) {} - public IEnumerable GetSupportedImages(IHasImages item) + public IEnumerable GetSupportedImages(IHasMetadata item) { return new List { @@ -37,7 +37,7 @@ namespace MediaBrowser.Providers.TV }; } - public async Task> GetImages(IHasImages item, CancellationToken cancellationToken) + public async Task> GetImages(IHasMetadata item, CancellationToken cancellationToken) { var episode = (Controller.Entities.TV.Episode)item; var series = episode.Series; @@ -125,7 +125,7 @@ namespace MediaBrowser.Providers.TV get { return "TheMovieDb"; } } - public bool Supports(IHasImages item) + public bool Supports(IHasMetadata item) { return item is Controller.Entities.TV.Episode; } diff --git a/MediaBrowser.Providers/TV/TheMovieDb/MovieDbSeriesImageProvider.cs b/MediaBrowser.Providers/TV/TheMovieDb/MovieDbSeriesImageProvider.cs index c746e0488..d4cda15aa 100644 --- a/MediaBrowser.Providers/TV/TheMovieDb/MovieDbSeriesImageProvider.cs +++ b/MediaBrowser.Providers/TV/TheMovieDb/MovieDbSeriesImageProvider.cs @@ -40,12 +40,12 @@ namespace MediaBrowser.Providers.TV get { return "TheMovieDb"; } } - public bool Supports(IHasImages item) + public bool Supports(IHasMetadata item) { return item is Series; } - public IEnumerable GetSupportedImages(IHasImages item) + public IEnumerable GetSupportedImages(IHasMetadata item) { return new List { @@ -54,7 +54,7 @@ namespace MediaBrowser.Providers.TV }; } - public async Task> GetImages(IHasImages item, CancellationToken cancellationToken) + public async Task> GetImages(IHasMetadata item, CancellationToken cancellationToken) { var list = new List(); diff --git a/MediaBrowser.Providers/TV/TheTVDB/TvdbEpisodeImageProvider.cs b/MediaBrowser.Providers/TV/TheTVDB/TvdbEpisodeImageProvider.cs index 48e50c2e1..7b6bcc4c7 100644 --- a/MediaBrowser.Providers/TV/TheTVDB/TvdbEpisodeImageProvider.cs +++ b/MediaBrowser.Providers/TV/TheTVDB/TvdbEpisodeImageProvider.cs @@ -35,12 +35,12 @@ namespace MediaBrowser.Providers.TV get { return "TheTVDB"; } } - public bool Supports(IHasImages item) + public bool Supports(IHasMetadata item) { return item is Episode; } - public IEnumerable GetSupportedImages(IHasImages item) + public IEnumerable GetSupportedImages(IHasMetadata item) { return new List { @@ -48,7 +48,7 @@ namespace MediaBrowser.Providers.TV }; } - public Task> GetImages(IHasImages item, CancellationToken cancellationToken) + public Task> GetImages(IHasMetadata item, CancellationToken cancellationToken) { var episode = (Episode)item; var series = episode.Series; diff --git a/MediaBrowser.Providers/TV/TheTVDB/TvdbSeasonImageProvider.cs b/MediaBrowser.Providers/TV/TheTVDB/TvdbSeasonImageProvider.cs index 395d419cf..822664bfd 100644 --- a/MediaBrowser.Providers/TV/TheTVDB/TvdbSeasonImageProvider.cs +++ b/MediaBrowser.Providers/TV/TheTVDB/TvdbSeasonImageProvider.cs @@ -48,12 +48,12 @@ namespace MediaBrowser.Providers.TV get { return "TheTVDB"; } } - public bool Supports(IHasImages item) + public bool Supports(IHasMetadata item) { return item is Season; } - public IEnumerable GetSupportedImages(IHasImages item) + public IEnumerable GetSupportedImages(IHasMetadata item) { return new List { @@ -63,7 +63,7 @@ namespace MediaBrowser.Providers.TV }; } - public async Task> GetImages(IHasImages item, CancellationToken cancellationToken) + public async Task> GetImages(IHasMetadata item, CancellationToken cancellationToken) { var season = (Season)item; var series = season.Series; diff --git a/MediaBrowser.Providers/TV/TheTVDB/TvdbSeriesImageProvider.cs b/MediaBrowser.Providers/TV/TheTVDB/TvdbSeriesImageProvider.cs index d7eea4226..e720827c5 100644 --- a/MediaBrowser.Providers/TV/TheTVDB/TvdbSeriesImageProvider.cs +++ b/MediaBrowser.Providers/TV/TheTVDB/TvdbSeriesImageProvider.cs @@ -49,12 +49,12 @@ namespace MediaBrowser.Providers.TV get { return "TheTVDB"; } } - public bool Supports(IHasImages item) + public bool Supports(IHasMetadata item) { return item is Series; } - public IEnumerable GetSupportedImages(IHasImages item) + public IEnumerable GetSupportedImages(IHasMetadata item) { return new List { @@ -64,7 +64,7 @@ namespace MediaBrowser.Providers.TV }; } - public async Task> GetImages(IHasImages item, CancellationToken cancellationToken) + public async Task> GetImages(IHasMetadata item, CancellationToken cancellationToken) { if (TvdbSeriesProvider.IsValidSeries(item.ProviderIds)) { -- cgit v1.2.3 From 40442f887ba717ae47620b152315f21b252fe049 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 9 Aug 2017 15:56:38 -0400 Subject: consolidate emby.server.core into emby.server.implementations --- .../Emby.Common.Implementations.csproj | 8 +- Emby.Common.Implementations/Logging/NlogManager.cs | 14 +- .../Networking/NetworkManager.cs | 2 +- .../ScheduledTasks/ScheduledTaskWorker.cs | 6 +- Emby.Common.Implementations/packages.config | 4 +- Emby.Dlna/ContentDirectory/ControlHandler.cs | 36 +- Emby.Dlna/DlnaManager.cs | 10 +- Emby.Dlna/PlayTo/Device.cs | 3 +- Emby.Dlna/Profiles/DefaultProfile.cs | 5 +- Emby.Dlna/Server/DescriptionXmlBuilder.cs | 2 +- Emby.Dlna/Service/BaseControlHandler.cs | 28 +- Emby.Drawing/ImageProcessor.cs | 6 +- Emby.Photos/PhotoProvider.cs | 2 +- Emby.Server.Core/ApplicationHost.cs | 1772 ------------------ Emby.Server.Core/ApplicationPathHelper.cs | 51 - Emby.Server.Core/Cryptography/ASN1.cs | 340 ---- Emby.Server.Core/Cryptography/ASN1Convert.cs | 207 --- Emby.Server.Core/Cryptography/BitConverterLE.cs | 239 --- .../Cryptography/CertificateGenerator.cs | 69 - Emby.Server.Core/Cryptography/CryptoConvert.cs | 745 -------- Emby.Server.Core/Cryptography/PKCS1.cs | 491 ----- Emby.Server.Core/Cryptography/PKCS12.cs | 1934 -------------------- Emby.Server.Core/Cryptography/PKCS7.cs | 1012 ---------- Emby.Server.Core/Cryptography/PKCS8.cs | 495 ----- Emby.Server.Core/Cryptography/PfxGenerator.cs | 75 - Emby.Server.Core/Cryptography/X501Name.cs | 393 ---- Emby.Server.Core/Cryptography/X509Builder.cs | 153 -- Emby.Server.Core/Cryptography/X509Certificate.cs | 563 ------ .../Cryptography/X509CertificateBuilder.cs | 245 --- .../Cryptography/X509CertificateCollection.cs | 201 -- Emby.Server.Core/Cryptography/X509Extension.cs | 208 --- Emby.Server.Core/Cryptography/X509Extensions.cs | 195 -- Emby.Server.Core/Cryptography/X520Attributes.cs | 346 ---- Emby.Server.Core/Emby.Server.Core.csproj | 176 -- .../EntryPoints/ExternalPortForwarding.cs | 334 ---- Emby.Server.Core/HttpServerFactory.cs | 112 -- Emby.Server.Core/IO/LibraryMonitor.cs | 653 ------- Emby.Server.Core/IO/MemoryStreamProvider.cs | 56 - Emby.Server.Core/Localization/TextLocalizer.cs | 64 - Emby.Server.Core/Logging/ConsoleLogger.cs | 16 - Emby.Server.Core/Properties/AssemblyInfo.cs | 34 - Emby.Server.Core/SystemEvents.cs | 50 - Emby.Server.Core/app.config | 11 - Emby.Server.Core/packages.config | 6 - .../Activity/ActivityLogEntryPoint.cs | 3 +- .../Activity/ActivityRepository.cs | 9 +- Emby.Server.Implementations/ApplicationHost.cs | 1749 ++++++++++++++++++ .../ApplicationPathHelper.cs | 51 + .../Channels/ChannelManager.cs | 39 +- .../Configuration/ServerConfigurationManager.cs | 5 +- Emby.Server.Implementations/Cryptography/ASN1.cs | 340 ++++ .../Cryptography/ASN1Convert.cs | 207 +++ .../Cryptography/BitConverterLE.cs | 239 +++ .../Cryptography/CertificateGenerator.cs | 69 + .../Cryptography/CryptoConvert.cs | 745 ++++++++ Emby.Server.Implementations/Cryptography/PKCS1.cs | 491 +++++ Emby.Server.Implementations/Cryptography/PKCS12.cs | 1934 ++++++++++++++++++++ Emby.Server.Implementations/Cryptography/PKCS7.cs | 1012 ++++++++++ Emby.Server.Implementations/Cryptography/PKCS8.cs | 495 +++++ .../Cryptography/PfxGenerator.cs | 75 + .../Cryptography/X501Name.cs | 393 ++++ .../Cryptography/X509Builder.cs | 153 ++ .../Cryptography/X509Certificate.cs | 563 ++++++ .../Cryptography/X509CertificateBuilder.cs | 245 +++ .../Cryptography/X509CertificateCollection.cs | 201 ++ .../Cryptography/X509Extension.cs | 208 +++ .../Cryptography/X509Extensions.cs | 195 ++ .../Cryptography/X520Attributes.cs | 346 ++++ .../Data/BaseSqliteRepository.cs | 25 +- .../Data/SqliteItemRepository.cs | 108 +- Emby.Server.Implementations/Dto/DtoService.cs | 14 +- .../Emby.Server.Implementations.csproj | 84 +- .../EntryPoints/ExternalPortForwarding.cs | 335 ++++ .../EntryPoints/UsageEntryPoint.cs | 3 +- .../HttpServer/HttpListenerHost.cs | 17 +- .../HttpServer/LoggerUtils.cs | 3 +- .../HttpServer/SocketSharp/HttpUtility.cs | 3 +- Emby.Server.Implementations/HttpServerFactory.cs | 110 ++ Emby.Server.Implementations/IO/LibraryMonitor.cs | 652 +++++++ .../IO/MemoryStreamProvider.cs | 56 + .../Images/BaseDynamicImageProvider.cs | 10 +- .../Library/LibraryManager.cs | 37 +- .../Library/LocalTrailerPostScanTask.cs | 5 +- .../Library/MusicManager.cs | 22 +- .../Library/Resolvers/BaseVideoResolver.cs | 7 +- .../Library/Resolvers/Movies/MovieResolver.cs | 12 +- .../Library/Resolvers/PhotoResolver.cs | 2 +- .../Library/Resolvers/TV/EpisodeResolver.cs | 9 +- .../Library/Resolvers/VideoResolver.cs | 12 +- .../Library/SearchEngine.cs | 5 +- .../Library/UserViewManager.cs | 5 +- .../Library/Validators/PeopleValidator.cs | 17 +- .../LiveTv/EmbyTV/EncodedRecorder.cs | 2 +- .../LiveTv/LiveTvDtoService.cs | 6 +- .../LiveTv/LiveTvManager.cs | 51 +- .../LiveTv/LiveTvMediaSourceProvider.cs | 3 +- .../Localization/LocalizationManager.cs | 6 +- .../Localization/TextLocalizer.cs | 63 + .../Logging/ConsoleLogger.cs | 13 + .../Notifications/SqliteNotificationsRepository.cs | 13 +- .../Notifications/WebSocketNotifier.cs | 3 +- .../Photos/PhotoAlbumImageProvider.cs | 2 +- .../Playlists/PlaylistImageProvider.cs | 7 +- .../ScheduledTasks/ChapterImagesTask.cs | 3 +- .../Security/AuthenticationRepository.cs | 9 +- .../Services/ServiceController.cs | 8 +- .../Services/ServiceExec.cs | 3 +- .../Services/ServicePath.cs | 11 +- .../Session/SessionManager.cs | 5 +- .../Social/SharingRepository.cs | 3 +- Emby.Server.Implementations/SystemEvents.cs | 50 + .../UserViews/CollectionFolderImageProvider.cs | 4 +- .../UserViews/DynamicImageProvider.cs | 8 +- Emby.Server.Implementations/packages.config | 5 +- MediaBrowser.Api/ApiEntryPoint.cs | 746 +------- MediaBrowser.Api/FilterService.cs | 2 +- MediaBrowser.Api/GamesService.cs | 7 +- MediaBrowser.Api/Images/ImageService.cs | 13 +- MediaBrowser.Api/ItemUpdateService.cs | 8 +- MediaBrowser.Api/Library/LibraryService.cs | 20 +- MediaBrowser.Api/LiveTv/LiveTvService.cs | 13 +- MediaBrowser.Api/LiveTv/ProgressiveFileCopier.cs | 164 ++ MediaBrowser.Api/LocalizationService.cs | 4 +- MediaBrowser.Api/MediaBrowser.Api.csproj | 18 +- MediaBrowser.Api/Movies/MoviesService.cs | 44 +- MediaBrowser.Api/Music/InstantMixService.cs | 10 +- MediaBrowser.Api/Playback/BaseStreamingService.cs | 1024 ----------- MediaBrowser.Api/Playback/Hls/BaseHlsService.cs | 331 ---- MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs | 970 ---------- MediaBrowser.Api/Playback/Hls/HlsSegmentService.cs | 163 -- MediaBrowser.Api/Playback/Hls/VideoHlsService.cs | 137 -- MediaBrowser.Api/Playback/MediaInfoService.cs | 614 ------- .../Playback/Progressive/AudioService.cs | 67 - .../Progressive/BaseProgressiveStreamingService.cs | 429 ----- .../Progressive/ProgressiveStreamWriter.cs | 193 -- .../Playback/Progressive/VideoService.cs | 100 - .../Playback/StaticRemoteStreamWriter.cs | 47 - MediaBrowser.Api/Playback/StreamRequest.cs | 63 - MediaBrowser.Api/Playback/StreamState.cs | 259 --- MediaBrowser.Api/Playback/TranscodingThrottler.cs | 176 -- MediaBrowser.Api/Playback/UniversalAudioService.cs | 349 ---- MediaBrowser.Api/PlaylistService.cs | 7 +- MediaBrowser.Api/Reports/Data/ReportBuilder.cs | 2 +- MediaBrowser.Api/SearchService.cs | 6 +- MediaBrowser.Api/Session/SessionsService.cs | 2 +- MediaBrowser.Api/SimilarItemsHelper.cs | 5 +- MediaBrowser.Api/SuggestionsService.cs | 3 +- MediaBrowser.Api/System/SystemService.cs | 5 +- MediaBrowser.Api/TestService.cs | 77 - MediaBrowser.Api/TvShowsService.cs | 23 +- .../UserLibrary/BaseItemsByNameService.cs | 3 +- MediaBrowser.Api/UserLibrary/BaseItemsRequest.cs | 4 +- MediaBrowser.Api/UserLibrary/ItemsService.cs | 7 +- MediaBrowser.Api/UserLibrary/PlaystateService.cs | 451 ----- MediaBrowser.Api/UserLibrary/UserLibraryService.cs | 6 +- .../Entities/AggregateFolder.cs | 4 +- .../Entities/Audio/MusicArtist.cs | 2 +- MediaBrowser.Controller/Entities/BaseItem.cs | 132 +- .../Entities/CollectionFolder.cs | 4 +- MediaBrowser.Controller/Entities/Folder.cs | 9 +- MediaBrowser.Controller/Entities/Game.cs | 4 +- MediaBrowser.Controller/Entities/IHasMetadata.cs | 6 +- MediaBrowser.Controller/Entities/TV/Series.cs | 30 +- MediaBrowser.Controller/Entities/TagExtensions.cs | 18 +- .../Entities/UserViewBuilder.cs | 4 +- MediaBrowser.Controller/Entities/Video.cs | 3 +- MediaBrowser.Controller/IO/FileData.cs | 17 +- MediaBrowser.Controller/Library/ILibraryManager.cs | 13 +- MediaBrowser.Controller/Library/IMusicManager.cs | 10 +- MediaBrowser.Controller/LiveTv/ILiveTvManager.cs | 2 +- .../Net/AuthenticatedAttribute.cs | 4 +- .../Persistence/IItemRepository.cs | 2 +- .../Providers/DirectoryService.cs | 55 +- .../Providers/IDirectoryService.cs | 8 +- .../Images/ImagesByNameImageProvider.cs | 58 - .../Images/LocalImageProvider.cs | 18 +- .../MediaBrowser.LocalMetadata.csproj | 1 - .../Parsers/BaseItemXmlParser.cs | 18 +- MediaBrowser.LocalMetadata/Savers/BaseXmlSaver.cs | 10 +- .../BdInfo/BdInfoExaminer.cs | 201 -- .../Configuration/EncodingConfigurationFactory.cs | 58 - MediaBrowser.MediaEncoding/Encoder/AudioEncoder.cs | 62 - MediaBrowser.MediaEncoding/Encoder/BaseEncoder.cs | 375 ---- .../Encoder/EncoderValidator.cs | 219 --- MediaBrowser.MediaEncoding/Encoder/EncodingJob.cs | 197 -- .../Encoder/EncodingJobFactory.cs | 305 --- .../Encoder/EncodingUtils.cs | 70 - .../Encoder/FontConfigLoader.cs | 182 -- MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs | 1129 ------------ MediaBrowser.MediaEncoding/Encoder/VideoEncoder.cs | 66 - .../MediaBrowser.MediaEncoding.csproj | 100 - .../MediaBrowser.MediaEncoding.nuget.targets | 6 - .../Probing/FFProbeHelpers.cs | 117 -- .../Probing/InternalMediaInfoResult.cs | 341 ---- .../Probing/ProbeResultNormalizer.cs | 1389 -------------- .../Properties/AssemblyInfo.cs | 33 - MediaBrowser.MediaEncoding/Subtitles/AssParser.cs | 120 -- .../Subtitles/ConfigurationExtension.cs | 29 - .../Subtitles/ISubtitleParser.cs | 17 - .../Subtitles/ISubtitleWriter.cs | 20 - MediaBrowser.MediaEncoding/Subtitles/JsonWriter.cs | 28 - .../Subtitles/OpenSubtitleDownloader.cs | 349 ---- .../Subtitles/ParserValues.cs | 7 - MediaBrowser.MediaEncoding/Subtitles/SrtParser.cs | 90 - MediaBrowser.MediaEncoding/Subtitles/SrtWriter.cs | 39 - MediaBrowser.MediaEncoding/Subtitles/SsaParser.cs | 394 ---- .../Subtitles/SubtitleEncoder.cs | 738 -------- MediaBrowser.MediaEncoding/Subtitles/TtmlWriter.cs | 60 - MediaBrowser.MediaEncoding/Subtitles/VttWriter.cs | 44 - MediaBrowser.MediaEncoding/packages.config | 3 - MediaBrowser.Model/Dlna/CodecProfile.cs | 1 - MediaBrowser.Model/Dlna/ConditionProcessor.cs | 1 - MediaBrowser.Model/Dlna/DirectPlayProfile.cs | 1 - MediaBrowser.Model/Dlna/StreamInfo.cs | 4 +- MediaBrowser.Model/Dto/BaseItemDto.cs | 36 +- MediaBrowser.Model/Entities/MediaStream.cs | 4 +- MediaBrowser.Model/Extensions/LinqExtensions.cs | 26 + .../Globalization/ILocalizationManager.cs | 4 +- MediaBrowser.Model/Net/ISocket.cs | 1 - MediaBrowser.Model/Services/IHttpRequest.cs | 1 - MediaBrowser.Model/Services/IHttpResponse.cs | 1 - MediaBrowser.Model/Services/IHttpResult.cs | 1 - .../Services/QueryParamCollection.cs | 3 +- MediaBrowser.Model/Social/ISharingRepository.cs | 6 +- MediaBrowser.Model/Tasks/ScheduledTaskHelpers.cs | 12 +- MediaBrowser.Model/Tasks/TaskInfo.cs | 4 +- .../Books/AudioBookMetadataService.cs | 2 +- .../Books/AudioPodcastMetadataService.cs | 2 +- .../Books/BookMetadataService.cs | 2 +- .../BoxSets/BoxSetMetadataService.cs | 2 +- .../BoxSets/MovieDbBoxSetImageProvider.cs | 6 +- .../Channels/ChannelMetadataService.cs | 2 +- .../Folders/CollectionFolderMetadataService.cs | 4 +- .../Folders/FolderMetadataService.cs | 2 +- .../Folders/UserViewMetadataService.cs | 2 +- .../GameGenres/GameGenreMetadataService.cs | 2 +- .../Games/GameMetadataService.cs | 2 +- .../Games/GameSystemMetadataService.cs | 2 +- .../Genres/GenreMetadataService.cs | 2 +- .../LiveTv/AudioRecordingService.cs | 2 +- .../LiveTv/ChannelMetadataService.cs | 2 +- .../LiveTv/ProgramMetadataService.cs | 2 +- .../LiveTv/VideoRecordingService.cs | 2 +- MediaBrowser.Providers/Manager/ImageSaver.cs | 3 +- .../Manager/ItemImageProvider.cs | 12 +- MediaBrowser.Providers/Manager/MetadataService.cs | 12 +- MediaBrowser.Providers/Manager/ProviderManager.cs | 4 +- MediaBrowser.Providers/Manager/ProviderUtils.cs | 18 +- .../MediaInfo/AudioImageProvider.cs | 3 +- .../MediaInfo/FFProbeAudioInfo.cs | 8 +- .../MediaInfo/FFProbeVideoInfo.cs | 9 +- .../MediaInfo/SubtitleResolver.cs | 2 +- .../MediaInfo/SubtitleScheduledTask.cs | 3 +- .../Movies/GenericMovieDbInfo.cs | 9 +- .../Movies/MovieDbImageProvider.cs | 6 +- MediaBrowser.Providers/Movies/MovieDbProvider.cs | 3 +- .../Movies/MovieMetadataService.cs | 4 +- .../Music/AlbumMetadataService.cs | 8 +- .../Music/ArtistMetadataService.cs | 4 +- .../Music/AudioMetadataService.cs | 5 +- .../Music/MusicBrainzAlbumProvider.cs | 6 +- .../Music/MusicBrainzArtistProvider.cs | 6 +- .../Music/MusicVideoMetadataService.cs | 5 +- .../MusicGenres/MusicGenreMetadataService.cs | 2 +- .../People/MovieDbPersonImageProvider.cs | 3 +- .../People/MovieDbPersonProvider.cs | 2 +- .../People/PersonMetadataService.cs | 2 +- .../Photos/PhotoAlbumMetadataService.cs | 2 +- .../Photos/PhotoMetadataService.cs | 2 +- .../Playlists/PlaylistMetadataService.cs | 2 +- .../Studios/StudioMetadataService.cs | 2 +- .../Subtitles/SubtitleManager.cs | 3 +- .../TV/EpisodeMetadataService.cs | 2 +- MediaBrowser.Providers/TV/SeasonMetadataService.cs | 2 +- MediaBrowser.Providers/TV/SeriesMetadataService.cs | 2 +- .../TV/TheMovieDb/MovieDbEpisodeImageProvider.cs | 3 +- .../TV/TheMovieDb/MovieDbSeriesImageProvider.cs | 6 +- .../TV/TheMovieDb/MovieDbSeriesProvider.cs | 3 +- .../TV/TheTVDB/TvdbPrescanTask.cs | 7 +- .../TV/TheTVDB/TvdbSeasonImageProvider.cs | 3 +- .../TV/TheTVDB/TvdbSeriesImageProvider.cs | 3 +- .../TV/TheTVDB/TvdbSeriesProvider.cs | 13 +- .../Users/UserMetadataService.cs | 2 +- .../Videos/VideoMetadataService.cs | 2 +- .../Years/YearMetadataService.cs | 2 +- .../MediaBrowser.Server.Mono.csproj | 22 +- MediaBrowser.Server.Mono/Program.cs | 4 +- MediaBrowser.Server.Mono/packages.config | 8 +- MediaBrowser.ServerApplication/MainStartup.cs | 7 +- .../MediaBrowser.ServerApplication.csproj | 22 +- MediaBrowser.ServerApplication/packages.config | 8 +- MediaBrowser.Tests/MediaBrowser.Tests.csproj | 29 +- .../MediaEncoding/Subtitles/AssParserTests.cs | 1 + .../MediaEncoding/Subtitles/SrtParserTests.cs | 2 +- .../MediaEncoding/Subtitles/VttWriterTest.cs | 2 +- MediaBrowser.WebDashboard/Api/PackageCreator.cs | 3 +- MediaBrowser.XbmcMetadata/EntryPoint.cs | 2 +- MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs | 15 +- MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs | 4 +- MediaBrowser.sln | 79 +- Mono.Nat/NatUtility.cs | 6 +- Mono.Nat/Pmp/PmpNatDevice.cs | 3 +- Nuget/MediaBrowser.Common.nuspec | 2 +- Nuget/MediaBrowser.Server.Core.nuspec | 4 +- SocketHttpListener/Net/WebHeaderCollection.cs | 3 +- 305 files changed, 12088 insertions(+), 25246 deletions(-) delete mode 100644 Emby.Server.Core/ApplicationHost.cs delete mode 100644 Emby.Server.Core/ApplicationPathHelper.cs delete mode 100644 Emby.Server.Core/Cryptography/ASN1.cs delete mode 100644 Emby.Server.Core/Cryptography/ASN1Convert.cs delete mode 100644 Emby.Server.Core/Cryptography/BitConverterLE.cs delete mode 100644 Emby.Server.Core/Cryptography/CertificateGenerator.cs delete mode 100644 Emby.Server.Core/Cryptography/CryptoConvert.cs delete mode 100644 Emby.Server.Core/Cryptography/PKCS1.cs delete mode 100644 Emby.Server.Core/Cryptography/PKCS12.cs delete mode 100644 Emby.Server.Core/Cryptography/PKCS7.cs delete mode 100644 Emby.Server.Core/Cryptography/PKCS8.cs delete mode 100644 Emby.Server.Core/Cryptography/PfxGenerator.cs delete mode 100644 Emby.Server.Core/Cryptography/X501Name.cs delete mode 100644 Emby.Server.Core/Cryptography/X509Builder.cs delete mode 100644 Emby.Server.Core/Cryptography/X509Certificate.cs delete mode 100644 Emby.Server.Core/Cryptography/X509CertificateBuilder.cs delete mode 100644 Emby.Server.Core/Cryptography/X509CertificateCollection.cs delete mode 100644 Emby.Server.Core/Cryptography/X509Extension.cs delete mode 100644 Emby.Server.Core/Cryptography/X509Extensions.cs delete mode 100644 Emby.Server.Core/Cryptography/X520Attributes.cs delete mode 100644 Emby.Server.Core/Emby.Server.Core.csproj delete mode 100644 Emby.Server.Core/EntryPoints/ExternalPortForwarding.cs delete mode 100644 Emby.Server.Core/HttpServerFactory.cs delete mode 100644 Emby.Server.Core/IO/LibraryMonitor.cs delete mode 100644 Emby.Server.Core/IO/MemoryStreamProvider.cs delete mode 100644 Emby.Server.Core/Localization/TextLocalizer.cs delete mode 100644 Emby.Server.Core/Logging/ConsoleLogger.cs delete mode 100644 Emby.Server.Core/Properties/AssemblyInfo.cs delete mode 100644 Emby.Server.Core/SystemEvents.cs delete mode 100644 Emby.Server.Core/app.config delete mode 100644 Emby.Server.Core/packages.config create mode 100644 Emby.Server.Implementations/ApplicationHost.cs create mode 100644 Emby.Server.Implementations/ApplicationPathHelper.cs create mode 100644 Emby.Server.Implementations/Cryptography/ASN1.cs create mode 100644 Emby.Server.Implementations/Cryptography/ASN1Convert.cs create mode 100644 Emby.Server.Implementations/Cryptography/BitConverterLE.cs create mode 100644 Emby.Server.Implementations/Cryptography/CertificateGenerator.cs create mode 100644 Emby.Server.Implementations/Cryptography/CryptoConvert.cs create mode 100644 Emby.Server.Implementations/Cryptography/PKCS1.cs create mode 100644 Emby.Server.Implementations/Cryptography/PKCS12.cs create mode 100644 Emby.Server.Implementations/Cryptography/PKCS7.cs create mode 100644 Emby.Server.Implementations/Cryptography/PKCS8.cs create mode 100644 Emby.Server.Implementations/Cryptography/PfxGenerator.cs create mode 100644 Emby.Server.Implementations/Cryptography/X501Name.cs create mode 100644 Emby.Server.Implementations/Cryptography/X509Builder.cs create mode 100644 Emby.Server.Implementations/Cryptography/X509Certificate.cs create mode 100644 Emby.Server.Implementations/Cryptography/X509CertificateBuilder.cs create mode 100644 Emby.Server.Implementations/Cryptography/X509CertificateCollection.cs create mode 100644 Emby.Server.Implementations/Cryptography/X509Extension.cs create mode 100644 Emby.Server.Implementations/Cryptography/X509Extensions.cs create mode 100644 Emby.Server.Implementations/Cryptography/X520Attributes.cs create mode 100644 Emby.Server.Implementations/EntryPoints/ExternalPortForwarding.cs create mode 100644 Emby.Server.Implementations/HttpServerFactory.cs create mode 100644 Emby.Server.Implementations/IO/LibraryMonitor.cs create mode 100644 Emby.Server.Implementations/IO/MemoryStreamProvider.cs create mode 100644 Emby.Server.Implementations/Localization/TextLocalizer.cs create mode 100644 Emby.Server.Implementations/Logging/ConsoleLogger.cs create mode 100644 Emby.Server.Implementations/SystemEvents.cs create mode 100644 MediaBrowser.Api/LiveTv/ProgressiveFileCopier.cs delete mode 100644 MediaBrowser.Api/Playback/BaseStreamingService.cs delete mode 100644 MediaBrowser.Api/Playback/Hls/BaseHlsService.cs delete mode 100644 MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs delete mode 100644 MediaBrowser.Api/Playback/Hls/HlsSegmentService.cs delete mode 100644 MediaBrowser.Api/Playback/Hls/VideoHlsService.cs delete mode 100644 MediaBrowser.Api/Playback/MediaInfoService.cs delete mode 100644 MediaBrowser.Api/Playback/Progressive/AudioService.cs delete mode 100644 MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs delete mode 100644 MediaBrowser.Api/Playback/Progressive/ProgressiveStreamWriter.cs delete mode 100644 MediaBrowser.Api/Playback/Progressive/VideoService.cs delete mode 100644 MediaBrowser.Api/Playback/StaticRemoteStreamWriter.cs delete mode 100644 MediaBrowser.Api/Playback/StreamRequest.cs delete mode 100644 MediaBrowser.Api/Playback/StreamState.cs delete mode 100644 MediaBrowser.Api/Playback/TranscodingThrottler.cs delete mode 100644 MediaBrowser.Api/Playback/UniversalAudioService.cs delete mode 100644 MediaBrowser.Api/TestService.cs delete mode 100644 MediaBrowser.Api/UserLibrary/PlaystateService.cs delete mode 100644 MediaBrowser.LocalMetadata/Images/ImagesByNameImageProvider.cs delete mode 100644 MediaBrowser.MediaEncoding/BdInfo/BdInfoExaminer.cs delete mode 100644 MediaBrowser.MediaEncoding/Configuration/EncodingConfigurationFactory.cs delete mode 100644 MediaBrowser.MediaEncoding/Encoder/AudioEncoder.cs delete mode 100644 MediaBrowser.MediaEncoding/Encoder/BaseEncoder.cs delete mode 100644 MediaBrowser.MediaEncoding/Encoder/EncoderValidator.cs delete mode 100644 MediaBrowser.MediaEncoding/Encoder/EncodingJob.cs delete mode 100644 MediaBrowser.MediaEncoding/Encoder/EncodingJobFactory.cs delete mode 100644 MediaBrowser.MediaEncoding/Encoder/EncodingUtils.cs delete mode 100644 MediaBrowser.MediaEncoding/Encoder/FontConfigLoader.cs delete mode 100644 MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs delete mode 100644 MediaBrowser.MediaEncoding/Encoder/VideoEncoder.cs delete mode 100644 MediaBrowser.MediaEncoding/MediaBrowser.MediaEncoding.csproj delete mode 100644 MediaBrowser.MediaEncoding/MediaBrowser.MediaEncoding.nuget.targets delete mode 100644 MediaBrowser.MediaEncoding/Probing/FFProbeHelpers.cs delete mode 100644 MediaBrowser.MediaEncoding/Probing/InternalMediaInfoResult.cs delete mode 100644 MediaBrowser.MediaEncoding/Probing/ProbeResultNormalizer.cs delete mode 100644 MediaBrowser.MediaEncoding/Properties/AssemblyInfo.cs delete mode 100644 MediaBrowser.MediaEncoding/Subtitles/AssParser.cs delete mode 100644 MediaBrowser.MediaEncoding/Subtitles/ConfigurationExtension.cs delete mode 100644 MediaBrowser.MediaEncoding/Subtitles/ISubtitleParser.cs delete mode 100644 MediaBrowser.MediaEncoding/Subtitles/ISubtitleWriter.cs delete mode 100644 MediaBrowser.MediaEncoding/Subtitles/JsonWriter.cs delete mode 100644 MediaBrowser.MediaEncoding/Subtitles/OpenSubtitleDownloader.cs delete mode 100644 MediaBrowser.MediaEncoding/Subtitles/ParserValues.cs delete mode 100644 MediaBrowser.MediaEncoding/Subtitles/SrtParser.cs delete mode 100644 MediaBrowser.MediaEncoding/Subtitles/SrtWriter.cs delete mode 100644 MediaBrowser.MediaEncoding/Subtitles/SsaParser.cs delete mode 100644 MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs delete mode 100644 MediaBrowser.MediaEncoding/Subtitles/TtmlWriter.cs delete mode 100644 MediaBrowser.MediaEncoding/Subtitles/VttWriter.cs delete mode 100644 MediaBrowser.MediaEncoding/packages.config (limited to 'Emby.Server.Implementations/Library/LibraryManager.cs') diff --git a/Emby.Common.Implementations/Emby.Common.Implementations.csproj b/Emby.Common.Implementations/Emby.Common.Implementations.csproj index 00c90d16e..879e8e82f 100644 --- a/Emby.Common.Implementations/Emby.Common.Implementations.csproj +++ b/Emby.Common.Implementations/Emby.Common.Implementations.csproj @@ -32,12 +32,10 @@ - ..\packages\NLog.4.4.11\lib\net45\NLog.dll - True + ..\packages\NLog.4.4.12\lib\net45\NLog.dll - - ..\packages\ServiceStack.Text.4.5.8\lib\net45\ServiceStack.Text.dll - True + + ..\packages\ServiceStack.Text.4.5.12\lib\net45\ServiceStack.Text.dll ..\packages\SharpCompress.0.14.0\lib\net45\SharpCompress.dll diff --git a/Emby.Common.Implementations/Logging/NlogManager.cs b/Emby.Common.Implementations/Logging/NlogManager.cs index f7b723e8b..4446e2cdb 100644 --- a/Emby.Common.Implementations/Logging/NlogManager.cs +++ b/Emby.Common.Implementations/Logging/NlogManager.cs @@ -152,13 +152,23 @@ namespace Emby.Common.Implementations.Logging RemoveTarget("ApplicationLogFileWrapper"); - var wrapper = new AsyncTargetWrapper(); + // https://github.com/NLog/NLog/wiki/Performance + var wrapper = new AsyncTargetWrapper + { + OverflowAction = AsyncTargetWrapperOverflowAction.Block, + QueueLimit = 10000, + BatchSize = 500, + TimeToSleepBetweenBatches = 50 + }; + wrapper.Name = "ApplicationLogFileWrapper"; var logFile = new FileTarget { FileName = path, - Layout = "${longdate} ${level} ${logger}: ${message}" + Layout = "${longdate} ${level} ${logger}: ${message}", + KeepFileOpen = true, + ConcurrentWrites = false }; logFile.Name = "ApplicationLogFile"; diff --git a/Emby.Common.Implementations/Networking/NetworkManager.cs b/Emby.Common.Implementations/Networking/NetworkManager.cs index 2f218656c..354107bb7 100644 --- a/Emby.Common.Implementations/Networking/NetworkManager.cs +++ b/Emby.Common.Implementations/Networking/NetworkManager.cs @@ -506,7 +506,7 @@ namespace Emby.Common.Implementations.Networking public async Task GetHostAddressesAsync(string host) { var addresses = await Dns.GetHostAddressesAsync(host).ConfigureAwait(false); - return addresses.Select(ToIpAddressInfo).ToArray(); + return addresses.Select(ToIpAddressInfo).ToArray(addresses.Length); } /// diff --git a/Emby.Common.Implementations/ScheduledTasks/ScheduledTaskWorker.cs b/Emby.Common.Implementations/ScheduledTasks/ScheduledTaskWorker.cs index c373ffddb..dd840677a 100644 --- a/Emby.Common.Implementations/ScheduledTasks/ScheduledTaskWorker.cs +++ b/Emby.Common.Implementations/ScheduledTasks/ScheduledTaskWorker.cs @@ -14,6 +14,7 @@ using MediaBrowser.Model.Logging; using MediaBrowser.Model.Serialization; using MediaBrowser.Model.System; using MediaBrowser.Model.Tasks; +using MediaBrowser.Model.Extensions; namespace Emby.Common.Implementations.ScheduledTasks { @@ -274,7 +275,8 @@ namespace Emby.Common.Implementations.ScheduledTasks { get { - return InternalTriggers.Select(i => i.Item1).ToArray(); + var triggers = InternalTriggers; + return triggers.Select(i => i.Item1).ToArray(triggers.Length); } set { @@ -288,7 +290,7 @@ namespace Emby.Common.Implementations.ScheduledTasks SaveTriggers(triggerList); - InternalTriggers = triggerList.Select(i => new Tuple(i, GetTrigger(i))).ToArray(); + InternalTriggers = triggerList.Select(i => new Tuple(i, GetTrigger(i))).ToArray(triggerList.Length); } } diff --git a/Emby.Common.Implementations/packages.config b/Emby.Common.Implementations/packages.config index a255465cc..a9fc75af6 100644 --- a/Emby.Common.Implementations/packages.config +++ b/Emby.Common.Implementations/packages.config @@ -1,7 +1,7 @@  - - + + \ No newline at end of file diff --git a/Emby.Dlna/ContentDirectory/ControlHandler.cs b/Emby.Dlna/ContentDirectory/ControlHandler.cs index 4d82b6b25..4be2dc945 100644 --- a/Emby.Dlna/ContentDirectory/ControlHandler.cs +++ b/Emby.Dlna/ContentDirectory/ControlHandler.cs @@ -30,6 +30,7 @@ using MediaBrowser.Controller.Playlists; using MediaBrowser.Controller.TV; using MediaBrowser.Model.Globalization; using MediaBrowser.Model.Xml; +using MediaBrowser.Model.Extensions; namespace Emby.Dlna.ContentDirectory { @@ -457,14 +458,14 @@ namespace Emby.Dlna.ContentDirectory { Limit = limit, StartIndex = startIndex, - SortBy = sortOrders.ToArray(), + SortBy = sortOrders.ToArray(sortOrders.Count), SortOrder = sort.SortOrder, User = user, Recursive = true, IsMissing = false, ExcludeItemTypes = new[] { typeof(Game).Name, typeof(Book).Name }, IsFolder = isFolder, - MediaTypes = mediaTypes.ToArray(), + MediaTypes = mediaTypes.ToArray(mediaTypes.Count), DtoOptions = GetDtoOptions() }); } @@ -508,12 +509,12 @@ namespace Emby.Dlna.ContentDirectory { ItemId = item.Id - }).ToArray(); + }); var result = new QueryResult { - Items = items.Select(i => new ServerItem(i)).ToArray(), - TotalRecordCount = items.Length + Items = items.Select(i => new ServerItem(i)).ToArray(items.Count), + TotalRecordCount = items.Count }; return ApplyPaging(result, startIndex, limit); @@ -662,7 +663,7 @@ namespace Emby.Dlna.ContentDirectory return new QueryResult { - Items = list.ToArray(), + Items = list.ToArray(list.Count), TotalRecordCount = list.Count }; } @@ -740,7 +741,7 @@ namespace Emby.Dlna.ContentDirectory return new QueryResult { - Items = list.ToArray(), + Items = list.ToArray(list.Count), TotalRecordCount = list.Count }; } @@ -828,7 +829,7 @@ namespace Emby.Dlna.ContentDirectory return new QueryResult { - Items = list.ToArray(), + Items = list.ToArray(list.Count), TotalRecordCount = list.Count }; } @@ -995,7 +996,7 @@ namespace Emby.Dlna.ContentDirectory var result = new QueryResult { TotalRecordCount = genresResult.TotalRecordCount, - Items = genresResult.Items.Select(i => i.Item1).ToArray() + Items = genresResult.Items.Select(i => i.Item1).ToArray(genresResult.Items.Length) }; return ToResult(result); @@ -1013,7 +1014,7 @@ namespace Emby.Dlna.ContentDirectory var result = new QueryResult { TotalRecordCount = genresResult.TotalRecordCount, - Items = genresResult.Items.Select(i => i.Item1).ToArray() + Items = genresResult.Items.Select(i => i.Item1).ToArray(genresResult.Items.Length) }; return ToResult(result); @@ -1031,7 +1032,7 @@ namespace Emby.Dlna.ContentDirectory var result = new QueryResult { TotalRecordCount = artists.TotalRecordCount, - Items = artists.Items.Select(i => i.Item1).ToArray() + Items = artists.Items.Select(i => i.Item1).ToArray(artists.Items.Length) }; return ToResult(result); @@ -1049,7 +1050,7 @@ namespace Emby.Dlna.ContentDirectory var result = new QueryResult { TotalRecordCount = artists.TotalRecordCount, - Items = artists.Items.Select(i => i.Item1).ToArray() + Items = artists.Items.Select(i => i.Item1).ToArray(artists.Items.Length) }; return ToResult(result); @@ -1068,7 +1069,7 @@ namespace Emby.Dlna.ContentDirectory var result = new QueryResult { TotalRecordCount = artists.TotalRecordCount, - Items = artists.Items.Select(i => i.Item1).ToArray() + Items = artists.Items.Select(i => i.Item1).ToArray(artists.Items.Length) }; return ToResult(result); @@ -1196,7 +1197,7 @@ namespace Emby.Dlna.ContentDirectory { var serverItems = result .Select(i => new ServerItem(i)) - .ToArray(); + .ToArray(result.Count); return new QueryResult { @@ -1210,7 +1211,7 @@ namespace Emby.Dlna.ContentDirectory var serverItems = result .Items .Select(i => new ServerItem(i)) - .ToArray(); + .ToArray(result.Items.Length); return new QueryResult { @@ -1227,7 +1228,7 @@ namespace Emby.Dlna.ContentDirectory sortOrders.Add(ItemSortBy.SortName); } - query.SortBy = sortOrders.ToArray(); + query.SortBy = sortOrders.ToArray(sortOrders.Count); query.SortOrder = sort.SortOrder; } @@ -1243,8 +1244,7 @@ namespace Emby.Dlna.ContentDirectory DtoOptions = GetDtoOptions() }); - var serverItems = itemsResult.Items.Select(i => new ServerItem(i)) - .ToArray(); + var serverItems = itemsResult.Items.Select(i => new ServerItem(i)).ToArray(itemsResult.Items.Length); return new QueryResult { diff --git a/Emby.Dlna/DlnaManager.cs b/Emby.Dlna/DlnaManager.cs index 82975ce22..847f63619 100644 --- a/Emby.Dlna/DlnaManager.cs +++ b/Emby.Dlna/DlnaManager.cs @@ -18,6 +18,7 @@ using System.Text; using System.Text.RegularExpressions; using MediaBrowser.Model.IO; using MediaBrowser.Model.Reflection; +using MediaBrowser.Model.Extensions; namespace Emby.Dlna { @@ -106,7 +107,6 @@ namespace Emby.Dlna } else { - _logger.Debug("No matching device profile found. The default will need to be used."); LogUnmatchedProfile(deviceInfo); } @@ -220,12 +220,8 @@ namespace Emby.Dlna } else { - var msg = new StringBuilder(); - foreach (var header in headers) - { - msg.AppendLine(header.Key + ": " + header.Value); - } - _logger.LogMultiline("No matching device profile found. The default will need to be used.", LogSeverity.Info, msg); + var headerString = string.Join(", ", headers.Select(i => string.Format("{0}={1}", i.Key, i.Value)).ToArray(headers.Count)); + _logger.Debug("No matching device profile found. {0}", headerString); } return profile; diff --git a/Emby.Dlna/PlayTo/Device.cs b/Emby.Dlna/PlayTo/Device.cs index e22298010..ff493e365 100644 --- a/Emby.Dlna/PlayTo/Device.cs +++ b/Emby.Dlna/PlayTo/Device.cs @@ -15,6 +15,7 @@ using System.Threading.Tasks; using System.Xml.Linq; using Emby.Dlna.Server; using MediaBrowser.Model.Threading; +using MediaBrowser.Model.Extensions; namespace Emby.Dlna.PlayTo { @@ -890,7 +891,7 @@ namespace Emby.Dlna.PlayTo if (room != null && !string.IsNullOrWhiteSpace(room.Value)) friendlyNames.Add(room.Value); - deviceProperties.Name = string.Join(" ", friendlyNames.ToArray()); + deviceProperties.Name = string.Join(" ", friendlyNames.ToArray(friendlyNames.Count)); var model = document.Descendants(uPnpNamespaces.ud.GetName("modelName")).FirstOrDefault(); if (model != null) diff --git a/Emby.Dlna/Profiles/DefaultProfile.cs b/Emby.Dlna/Profiles/DefaultProfile.cs index 06ce93640..ff025152a 100644 --- a/Emby.Dlna/Profiles/DefaultProfile.cs +++ b/Emby.Dlna/Profiles/DefaultProfile.cs @@ -1,6 +1,7 @@ using MediaBrowser.Model.Dlna; using System.Linq; using System.Xml.Serialization; +using MediaBrowser.Model.Extensions; namespace Emby.Dlna.Profiles { @@ -164,7 +165,7 @@ namespace Emby.Dlna.Profiles public void AddXmlRootAttribute(string name, string value) { var atts = XmlRootAttributes ?? new XmlAttribute[] { }; - var list = atts.ToList(); + var list = atts.ToList(atts.Length); list.Add(new XmlAttribute { @@ -172,7 +173,7 @@ namespace Emby.Dlna.Profiles Value = value }); - XmlRootAttributes = list.ToArray(); + XmlRootAttributes = list.ToArray(list.Count); } } } diff --git a/Emby.Dlna/Server/DescriptionXmlBuilder.cs b/Emby.Dlna/Server/DescriptionXmlBuilder.cs index 2a4a5792f..bba4adc5f 100644 --- a/Emby.Dlna/Server/DescriptionXmlBuilder.cs +++ b/Emby.Dlna/Server/DescriptionXmlBuilder.cs @@ -226,7 +226,7 @@ namespace Emby.Dlna.Server } } - var characters = characterList.ToArray(); + var characters = characterList.ToArray(characterList.Count); var serverName = new string(characters); diff --git a/Emby.Dlna/Service/BaseControlHandler.cs b/Emby.Dlna/Service/BaseControlHandler.cs index 3092589c1..7cd10bd01 100644 --- a/Emby.Dlna/Service/BaseControlHandler.cs +++ b/Emby.Dlna/Service/BaseControlHandler.cs @@ -11,6 +11,7 @@ using System.Xml; using Emby.Dlna.Didl; using MediaBrowser.Controller.Extensions; using MediaBrowser.Model.Xml; +using MediaBrowser.Model.Extensions; namespace Emby.Dlna.Service { @@ -235,26 +236,29 @@ namespace Emby.Dlna.Service private void LogRequest(ControlRequest request) { - var builder = new StringBuilder(); + if (!Config.GetDlnaConfiguration().EnableDebugLog) + { + return; + } - var headers = string.Join(", ", request.Headers.Select(i => string.Format("{0}={1}", i.Key, i.Value)).ToArray()); - builder.AppendFormat("Headers: {0}", headers); - builder.AppendLine(); - //builder.Append(request.InputXml); + var originalHeaders = request.Headers; + var headers = string.Join(", ", originalHeaders.Select(i => string.Format("{0}={1}", i.Key, i.Value)).ToArray(originalHeaders.Count)); - Logger.LogMultiline("Control request", LogSeverity.Debug, builder); + Logger.Debug("Control request. Headers: {0}", headers); } private void LogResponse(ControlResponse response) { - var builder = new StringBuilder(); + if (!Config.GetDlnaConfiguration().EnableDebugLog) + { + return; + } - var headers = string.Join(", ", response.Headers.Select(i => string.Format("{0}={1}", i.Key, i.Value)).ToArray()); - builder.AppendFormat("Headers: {0}", headers); - builder.AppendLine(); - builder.Append(response.Xml); + var originalHeaders = response.Headers; + var headers = string.Join(", ", originalHeaders.Select(i => string.Format("{0}={1}", i.Key, i.Value)).ToArray(originalHeaders.Count)); + //builder.Append(response.Xml); - Logger.LogMultiline("Control response", LogSeverity.Debug, builder); + Logger.Debug("Control response. Headers: {0}", headers); } } } diff --git a/Emby.Drawing/ImageProcessor.cs b/Emby.Drawing/ImageProcessor.cs index cc7b77de6..bd23eba7a 100644 --- a/Emby.Drawing/ImageProcessor.cs +++ b/Emby.Drawing/ImageProcessor.cs @@ -17,12 +17,10 @@ using System.Threading; using System.Threading.Tasks; using MediaBrowser.Model.IO; using Emby.Drawing.Common; - -using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; using MediaBrowser.Model.Net; using MediaBrowser.Model.Threading; -using TagLib; +using MediaBrowser.Model.Extensions; namespace Emby.Drawing { @@ -662,7 +660,7 @@ namespace Emby.Drawing var cacheKeys = imageEnhancers.Select(i => i.GetConfigurationCacheKey(item, imageType)).ToList(); cacheKeys.Add(originalImagePath + dateModified.Ticks); - return string.Join("|", cacheKeys.ToArray()).GetMD5().ToString("N"); + return string.Join("|", cacheKeys.ToArray(cacheKeys.Count)).GetMD5().ToString("N"); } /// diff --git a/Emby.Photos/PhotoProvider.cs b/Emby.Photos/PhotoProvider.cs index 57047cf81..c3c30ab6d 100644 --- a/Emby.Photos/PhotoProvider.cs +++ b/Emby.Photos/PhotoProvider.cs @@ -111,7 +111,7 @@ namespace Emby.Photos } item.Genres = image.ImageTag.Genres.ToList(); - item.Tags = image.ImageTag.Keywords.ToList(); + item.Tags = image.ImageTag.Keywords; item.Software = image.ImageTag.Software; if (image.ImageTag.Orientation == TagLib.Image.ImageOrientation.None) diff --git a/Emby.Server.Core/ApplicationHost.cs b/Emby.Server.Core/ApplicationHost.cs deleted file mode 100644 index 68cb2a4e3..000000000 --- a/Emby.Server.Core/ApplicationHost.cs +++ /dev/null @@ -1,1772 +0,0 @@ -using MediaBrowser.Api; -using MediaBrowser.Common; -using MediaBrowser.Common.Configuration; -using MediaBrowser.Common.Events; -using MediaBrowser.Common.Extensions; -using Emby.Common.Implementations.ScheduledTasks; -using MediaBrowser.Common.Net; -using MediaBrowser.Common.Progress; -using MediaBrowser.Controller; -using MediaBrowser.Controller.Channels; -using MediaBrowser.Controller.Chapters; -using MediaBrowser.Controller.Collections; -using MediaBrowser.Controller.Configuration; -using MediaBrowser.Controller.Connect; -using MediaBrowser.Controller.Devices; -using MediaBrowser.Controller.Dlna; -using MediaBrowser.Controller.Drawing; -using MediaBrowser.Controller.Dto; -using MediaBrowser.Controller.Entities; -using MediaBrowser.Controller.Library; -using MediaBrowser.Controller.LiveTv; -using MediaBrowser.Controller.MediaEncoding; -using MediaBrowser.Controller.Net; -using MediaBrowser.Controller.Notifications; -using MediaBrowser.Controller.Persistence; -using MediaBrowser.Controller.Playlists; -using MediaBrowser.Controller.Plugins; -using MediaBrowser.Controller.Providers; -using MediaBrowser.Controller.Resolvers; -using MediaBrowser.Controller.Security; -using MediaBrowser.Controller.Session; -using MediaBrowser.Controller.Sorting; -using MediaBrowser.Controller.Subtitles; -using MediaBrowser.Controller.Sync; -using MediaBrowser.Controller.TV; -using MediaBrowser.LocalMetadata.Savers; -using MediaBrowser.MediaEncoding.BdInfo; -using MediaBrowser.MediaEncoding.Encoder; -using MediaBrowser.MediaEncoding.Subtitles; -using MediaBrowser.Model.Logging; -using MediaBrowser.Model.MediaInfo; -using MediaBrowser.Model.System; -using MediaBrowser.Model.Updates; -using MediaBrowser.Providers.Chapters; -using MediaBrowser.Providers.Manager; -using MediaBrowser.Providers.Subtitles; -using MediaBrowser.WebDashboard.Api; -using MediaBrowser.XbmcMetadata.Providers; -using System; -using System.Collections.Concurrent; -using System.Collections.Generic; -using System.Globalization; -using System.IO; -using System.Linq; -using System.Net; -using System.Net.Sockets; -using System.Reflection; -using System.Security.Cryptography.X509Certificates; -using System.Threading; -using System.Threading.Tasks; -using Emby.Common.Implementations; -using Emby.Common.Implementations.Archiving; -using Emby.Common.Implementations.IO; -using Emby.Common.Implementations.Reflection; -using Emby.Common.Implementations.Serialization; -using Emby.Common.Implementations.TextEncoding; -using Emby.Common.Implementations.Xml; -using Emby.Photos; -using MediaBrowser.Model.IO; -using MediaBrowser.Api.Playback; -using MediaBrowser.Common.Plugins; -using MediaBrowser.Common.Security; -using MediaBrowser.Common.Updates; -using MediaBrowser.Controller.Entities.Audio; -using MediaBrowser.Controller.Entities.Movies; -using MediaBrowser.Controller.Entities.TV; -using Emby.Dlna; -using Emby.Dlna.ConnectionManager; -using Emby.Dlna.ContentDirectory; -using Emby.Dlna.Main; -using Emby.Dlna.MediaReceiverRegistrar; -using Emby.Dlna.Ssdp; -using Emby.Server.Core; -using Emby.Server.Implementations.Activity; -using Emby.Server.Implementations.Devices; -using Emby.Server.Implementations.FFMpeg; -using Emby.Server.Core.IO; -using Emby.Server.Core.Localization; -using Emby.Server.Implementations.Migrations; -using Emby.Server.Implementations.Security; -using Emby.Server.Implementations.Social; -using Emby.Server.Implementations.Channels; -using Emby.Server.Implementations.Collections; -using Emby.Server.Implementations.Dto; -using Emby.Server.Implementations.IO; -using Emby.Server.Implementations.HttpServer; -using Emby.Server.Implementations.HttpServer.Security; -using Emby.Server.Implementations.Library; -using Emby.Server.Implementations.LiveTv; -using Emby.Server.Implementations.Localization; -using Emby.Server.Implementations.MediaEncoder; -using Emby.Server.Implementations.Notifications; -using Emby.Server.Implementations.Data; -using Emby.Server.Implementations.Playlists; -using Emby.Server.Implementations; -using Emby.Server.Implementations.ServerManager; -using Emby.Server.Implementations.Session; -using Emby.Server.Implementations.TV; -using Emby.Server.Implementations.Updates; -using MediaBrowser.Model.Activity; -using MediaBrowser.Model.Configuration; -using MediaBrowser.Model.Dlna; -using MediaBrowser.Model.Globalization; -using MediaBrowser.Model.Net; -using MediaBrowser.Model.News; -using MediaBrowser.Model.Reflection; -using MediaBrowser.Model.Serialization; -using MediaBrowser.Model.Services; -using MediaBrowser.Model.Social; -using MediaBrowser.Model.Text; -using MediaBrowser.Model.Xml; -using OpenSubtitlesHandler; -using ServiceStack; -using SocketHttpListener.Primitives; -using StringExtensions = MediaBrowser.Controller.Extensions.StringExtensions; -using Emby.Drawing; -using Emby.Server.Implementations.Migrations; -using MediaBrowser.Model.Diagnostics; -using Emby.Common.Implementations.Diagnostics; -using Emby.Server.Implementations.Configuration; - -namespace Emby.Server.Core -{ - /// - /// Class CompositionRoot - /// - public abstract class ApplicationHost : BaseApplicationHost, IServerApplicationHost, IDependencyContainer - { - /// - /// Gets the server configuration manager. - /// - /// The server configuration manager. - public IServerConfigurationManager ServerConfigurationManager - { - get { return (IServerConfigurationManager)ConfigurationManager; } - } - - /// - /// Gets the configuration manager. - /// - /// IConfigurationManager. - protected override IConfigurationManager GetConfigurationManager() - { - return new ServerConfigurationManager(ApplicationPaths, LogManager, XmlSerializer, FileSystemManager); - } - - /// - /// Gets or sets the server manager. - /// - /// The server manager. - private IServerManager ServerManager { get; set; } - /// - /// Gets or sets the user manager. - /// - /// The user manager. - public IUserManager UserManager { get; set; } - /// - /// Gets or sets the library manager. - /// - /// The library manager. - internal ILibraryManager LibraryManager { get; set; } - /// - /// Gets or sets the directory watchers. - /// - /// The directory watchers. - private ILibraryMonitor LibraryMonitor { get; set; } - /// - /// Gets or sets the provider manager. - /// - /// The provider manager. - private IProviderManager ProviderManager { get; set; } - /// - /// Gets or sets the HTTP server. - /// - /// The HTTP server. - private IHttpServer HttpServer { get; set; } - private IDtoService DtoService { get; set; } - public IImageProcessor ImageProcessor { get; set; } - - /// - /// Gets or sets the media encoder. - /// - /// The media encoder. - private IMediaEncoder MediaEncoder { get; set; } - private ISubtitleEncoder SubtitleEncoder { get; set; } - - private IConnectManager ConnectManager { get; set; } - private ISessionManager SessionManager { get; set; } - - private ILiveTvManager LiveTvManager { get; set; } - - public ILocalizationManager LocalizationManager { get; set; } - - private IEncodingManager EncodingManager { get; set; } - private IChannelManager ChannelManager { get; set; } - private ISyncManager SyncManager { get; set; } - - /// - /// Gets or sets the user data repository. - /// - /// The user data repository. - private IUserDataManager UserDataManager { get; set; } - private IUserRepository UserRepository { get; set; } - internal IDisplayPreferencesRepository DisplayPreferencesRepository { get; set; } - internal IItemRepository ItemRepository { get; set; } - private INotificationsRepository NotificationsRepository { get; set; } - - private INotificationManager NotificationManager { get; set; } - private ISubtitleManager SubtitleManager { get; set; } - private IChapterManager ChapterManager { get; set; } - private IDeviceManager DeviceManager { get; set; } - - internal IUserViewManager UserViewManager { get; set; } - - private IAuthenticationRepository AuthenticationRepository { get; set; } - private ISyncRepository SyncRepository { get; set; } - private ITVSeriesManager TVSeriesManager { get; set; } - private ICollectionManager CollectionManager { get; set; } - private IMediaSourceManager MediaSourceManager { get; set; } - private IPlaylistManager PlaylistManager { get; set; } - - /// - /// Gets or sets the installation manager. - /// - /// The installation manager. - protected IInstallationManager InstallationManager { get; private set; } - /// - /// Gets the security manager. - /// - /// The security manager. - protected ISecurityManager SecurityManager { get; private set; } - - /// - /// Gets or sets the zip client. - /// - /// The zip client. - protected IZipClient ZipClient { get; private set; } - - protected IAuthService AuthService { get; private set; } - - protected readonly StartupOptions StartupOptions; - private readonly string _releaseAssetFilename; - - internal IPowerManagement PowerManagement { get; private set; } - internal IImageEncoder ImageEncoder { get; private set; } - - private readonly Action _certificateGenerator; - private readonly Func _defaultUserNameFactory; - - /// - /// Initializes a new instance of the class. - /// - public ApplicationHost(ServerApplicationPaths applicationPaths, - ILogManager logManager, - StartupOptions options, - IFileSystem fileSystem, - IPowerManagement powerManagement, - string releaseAssetFilename, - IEnvironmentInfo environmentInfo, - IImageEncoder imageEncoder, - ISystemEvents systemEvents, - IMemoryStreamFactory memoryStreamFactory, - INetworkManager networkManager, - Action certificateGenerator, - Func defaultUsernameFactory) - : base(applicationPaths, - logManager, - fileSystem, - environmentInfo, - systemEvents, - memoryStreamFactory, - networkManager) - { - StartupOptions = options; - _certificateGenerator = certificateGenerator; - _releaseAssetFilename = releaseAssetFilename; - _defaultUserNameFactory = defaultUsernameFactory; - PowerManagement = powerManagement; - - ImageEncoder = imageEncoder; - - SetBaseExceptionMessage(); - - if (environmentInfo.OperatingSystem == MediaBrowser.Model.System.OperatingSystem.Windows) - { - fileSystem.AddShortcutHandler(new LnkShortcutHandler()); - } - - fileSystem.AddShortcutHandler(new MbLinkShortcutHandler(fileSystem)); - } - - private Version _version; - /// - /// Gets the current application version - /// - /// The application version. - public override Version ApplicationVersion - { - get - { - return _version ?? (_version = GetAssembly(GetType()).GetName().Version); - } - } - - public virtual bool SupportsRunningAsService - { - get - { - return false; - } - } - - /// - /// Gets the name. - /// - /// The name. - public override string Name - { - get - { - return "Emby Server"; - } - } - - public virtual bool IsRunningAsService - { - get - { - return false; - } - } - - private Assembly GetAssembly(Type type) - { - return type.GetTypeInfo().Assembly; - } - - public virtual bool SupportsAutoRunAtStartup - { - get - { - return EnvironmentInfo.OperatingSystem == MediaBrowser.Model.System.OperatingSystem.Windows; - } - } - - private void SetBaseExceptionMessage() - { - var builder = GetBaseExceptionMessage(ApplicationPaths); - - // Skip if plugins haven't been loaded yet - //if (Plugins != null) - //{ - // var pluginString = string.Join("|", Plugins.Select(i => i.Name + "-" + i.Version.ToString()).ToArray()); - // builder.Insert(0, string.Format("Plugins: {0}{1}", pluginString, Environment.NewLine)); - //} - - builder.Insert(0, string.Format("Version: {0}{1}", ApplicationVersion, Environment.NewLine)); - builder.Insert(0, "*** Error Report ***" + Environment.NewLine); - - LogManager.ExceptionMessagePrefix = builder.ToString(); - } - - /// - /// Runs the startup tasks. - /// - public override async Task RunStartupTasks() - { - await PerformPreInitMigrations().ConfigureAwait(false); - - await base.RunStartupTasks().ConfigureAwait(false); - - await MediaEncoder.Init().ConfigureAwait(false); - - if (string.IsNullOrWhiteSpace(MediaEncoder.EncoderPath)) - { - if (ServerConfigurationManager.Configuration.IsStartupWizardCompleted) - { - ServerConfigurationManager.Configuration.IsStartupWizardCompleted = false; - ServerConfigurationManager.SaveConfiguration(); - } - } - - Logger.Info("ServerId: {0}", SystemId); - Logger.Info("Core startup complete"); - HttpServer.GlobalResponse = null; - - PerformPostInitMigrations(); - Logger.Info("Post-init migrations complete"); - - foreach (var entryPoint in GetExports().ToList()) - { - var name = entryPoint.GetType().FullName; - Logger.Info("Starting entry point {0}", name); - var now = DateTime.UtcNow; - try - { - entryPoint.Run(); - } - catch (Exception ex) - { - Logger.ErrorException("Error in {0}", ex, name); - } - Logger.Info("Entry point completed: {0}. Duration: {1} seconds", name, (DateTime.UtcNow - now).TotalSeconds.ToString(CultureInfo.InvariantCulture), "ImageInfos"); - } - Logger.Info("All entry points have started"); - - LogManager.RemoveConsoleOutput(); - } - - protected override IJsonSerializer CreateJsonSerializer() - { - try - { - // https://github.com/ServiceStack/ServiceStack/blob/master/tests/ServiceStack.WebHost.IntegrationTests/Web.config#L4 - Licensing.RegisterLicense("1001-e1JlZjoxMDAxLE5hbWU6VGVzdCBCdXNpbmVzcyxUeXBlOkJ1c2luZXNzLEhhc2g6UHVNTVRPclhvT2ZIbjQ5MG5LZE1mUTd5RUMzQnBucTFEbTE3TDczVEF4QUNMT1FhNXJMOWkzVjFGL2ZkVTE3Q2pDNENqTkQyUktRWmhvUVBhYTBiekJGUUZ3ZE5aZHFDYm9hL3lydGlwUHI5K1JsaTBYbzNsUC85cjVJNHE5QVhldDN6QkE4aTlvdldrdTgyTk1relY2eis2dFFqTThYN2lmc0JveHgycFdjPSxFeHBpcnk6MjAxMy0wMS0wMX0="); - } - catch - { - // Failing under mono - } - - var result = new JsonSerializer(FileSystemManager, LogManager.GetLogger("JsonSerializer")); - - ServiceStack.Text.JsConfig.ExcludePropertyNames = new[] { "ProviderIds" }; - ServiceStack.Text.JsConfig.ExcludePropertyNames = new[] { "ProviderIds" }; - ServiceStack.Text.JsConfig.ExcludePropertyNames = new[] { "ProviderIds" }; - ServiceStack.Text.JsConfig.ExcludePropertyNames = new[] { "ProviderIds" }; - ServiceStack.Text.JsConfig.ExcludePropertyNames = new[] { "ProviderIds" }; - ServiceStack.Text.JsConfig