diff options
| author | Luke <luke.pulverenti@gmail.com> | 2017-08-09 15:59:26 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-08-09 15:59:26 -0400 |
| commit | c2996935c8a873662e6d301f139c88df8a542ed2 (patch) | |
| tree | cf405f91e893fe6a3fc20dfa1622f027666d4848 /MediaBrowser.Providers | |
| parent | ab834f8fdffb64b562ece0512a53f361c62f7f6f (diff) | |
| parent | 7a74c705e584774534b74e11c1ab86144cb454c6 (diff) | |
Merge pull request #2800 from MediaBrowser/dev
Dev
Diffstat (limited to 'MediaBrowser.Providers')
73 files changed, 206 insertions, 234 deletions
diff --git a/MediaBrowser.Providers/Books/AudioBookMetadataService.cs b/MediaBrowser.Providers/Books/AudioBookMetadataService.cs index 7cce851053..b9e265d22e 100644 --- a/MediaBrowser.Providers/Books/AudioBookMetadataService.cs +++ b/MediaBrowser.Providers/Books/AudioBookMetadataService.cs @@ -16,7 +16,7 @@ namespace MediaBrowser.Providers.Books { public class AudioBookMetadataService : MetadataService<AudioBook, SongInfo> { - protected override void MergeData(MetadataResult<AudioBook> source, MetadataResult<AudioBook> target, List<MetadataFields> lockedFields, bool replaceData, bool mergeMetadataSettings) + protected override void MergeData(MetadataResult<AudioBook> source, MetadataResult<AudioBook> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings) { ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings); diff --git a/MediaBrowser.Providers/Books/AudioPodcastMetadataService.cs b/MediaBrowser.Providers/Books/AudioPodcastMetadataService.cs index 219f957997..2ea0a7ee96 100644 --- a/MediaBrowser.Providers/Books/AudioPodcastMetadataService.cs +++ b/MediaBrowser.Providers/Books/AudioPodcastMetadataService.cs @@ -16,7 +16,7 @@ namespace MediaBrowser.Providers.Books { public class AudioPodcastMetadataService : MetadataService<AudioPodcast, SongInfo> { - protected override void MergeData(MetadataResult<AudioPodcast> source, MetadataResult<AudioPodcast> target, List<MetadataFields> lockedFields, bool replaceData, bool mergeMetadataSettings) + protected override void MergeData(MetadataResult<AudioPodcast> source, MetadataResult<AudioPodcast> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings) { ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings); diff --git a/MediaBrowser.Providers/Books/BookMetadataService.cs b/MediaBrowser.Providers/Books/BookMetadataService.cs index ae7e734ccb..68b96486af 100644 --- a/MediaBrowser.Providers/Books/BookMetadataService.cs +++ b/MediaBrowser.Providers/Books/BookMetadataService.cs @@ -14,7 +14,7 @@ namespace MediaBrowser.Providers.Books { public class BookMetadataService : MetadataService<Book, BookInfo> { - protected override void MergeData(MetadataResult<Book> source, MetadataResult<Book> target, List<MetadataFields> lockedFields, bool replaceData, bool mergeMetadataSettings) + protected override void MergeData(MetadataResult<Book> source, MetadataResult<Book> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings) { ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings); diff --git a/MediaBrowser.Providers/BoxSets/BoxSetMetadataService.cs b/MediaBrowser.Providers/BoxSets/BoxSetMetadataService.cs index b391ce4d3c..a8400848d7 100644 --- a/MediaBrowser.Providers/BoxSets/BoxSetMetadataService.cs +++ b/MediaBrowser.Providers/BoxSets/BoxSetMetadataService.cs @@ -35,7 +35,7 @@ namespace MediaBrowser.Providers.BoxSets return updateType; } - protected override void MergeData(MetadataResult<BoxSet> source, MetadataResult<BoxSet> target, List<MetadataFields> lockedFields, bool replaceData, bool mergeMetadataSettings) + protected override void MergeData(MetadataResult<BoxSet> source, MetadataResult<BoxSet> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings) { ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings); diff --git a/MediaBrowser.Providers/BoxSets/MovieDbBoxSetImageProvider.cs b/MediaBrowser.Providers/BoxSets/MovieDbBoxSetImageProvider.cs index 852feab37c..7d1f2779b7 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<ImageType> GetSupportedImages(IHasImages item) + public IEnumerable<ImageType> GetSupportedImages(IHasMetadata item) { return new List<ImageType> { @@ -47,7 +47,7 @@ namespace MediaBrowser.Providers.BoxSets }; } - public async Task<IEnumerable<RemoteImageInfo>> GetImages(IHasImages item, CancellationToken cancellationToken) + public async Task<IEnumerable<RemoteImageInfo>> GetImages(IHasMetadata item, CancellationToken cancellationToken) { var tmdbId = item.GetProviderId(MetadataProviders.Tmdb); @@ -123,8 +123,7 @@ namespace MediaBrowser.Providers.BoxSets return 0; }) .ThenByDescending(i => i.CommunityRating ?? 0) - .ThenByDescending(i => i.VoteCount ?? 0) - .ToList(); + .ThenByDescending(i => i.VoteCount ?? 0); } /// <summary> @@ -145,8 +144,7 @@ namespace MediaBrowser.Providers.BoxSets private IEnumerable<MovieDbBoxSetProvider.Backdrop> GetBackdrops(MovieDbBoxSetProvider.Images images) { var eligibleBackdrops = images.backdrops == null ? new List<MovieDbBoxSetProvider.Backdrop>() : - images.backdrops - .ToList(); + images.backdrops; return eligibleBackdrops.OrderByDescending(i => i.vote_average) .ThenByDescending(i => i.vote_count); diff --git a/MediaBrowser.Providers/Channels/ChannelMetadataService.cs b/MediaBrowser.Providers/Channels/ChannelMetadataService.cs index 8a3da5bf4a..b22db559eb 100644 --- a/MediaBrowser.Providers/Channels/ChannelMetadataService.cs +++ b/MediaBrowser.Providers/Channels/ChannelMetadataService.cs @@ -14,7 +14,7 @@ namespace MediaBrowser.Providers.Channels { public class ChannelMetadataService : MetadataService<Channel, ItemLookupInfo> { - protected override void MergeData(MetadataResult<Channel> source, MetadataResult<Channel> target, List<MetadataFields> lockedFields, bool replaceData, bool mergeMetadataSettings) + protected override void MergeData(MetadataResult<Channel> source, MetadataResult<Channel> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings) { ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings); } diff --git a/MediaBrowser.Providers/Folders/CollectionFolderMetadataService.cs b/MediaBrowser.Providers/Folders/CollectionFolderMetadataService.cs index dc0fda72ef..1dab086715 100644 --- a/MediaBrowser.Providers/Folders/CollectionFolderMetadataService.cs +++ b/MediaBrowser.Providers/Folders/CollectionFolderMetadataService.cs @@ -15,7 +15,7 @@ namespace MediaBrowser.Providers.Folders { public class CollectionFolderMetadataService : MetadataService<CollectionFolder, ItemLookupInfo> { - protected override void MergeData(MetadataResult<CollectionFolder> source, MetadataResult<CollectionFolder> target, List<MetadataFields> lockedFields, bool replaceData, bool mergeMetadataSettings) + protected override void MergeData(MetadataResult<CollectionFolder> source, MetadataResult<CollectionFolder> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings) { ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings); } @@ -27,7 +27,7 @@ namespace MediaBrowser.Providers.Folders public class ManualCollectionsFolderMetadataService : MetadataService<ManualCollectionsFolder, ItemLookupInfo> { - protected override void MergeData(MetadataResult<ManualCollectionsFolder> source, MetadataResult<ManualCollectionsFolder> target, List<MetadataFields> lockedFields, bool replaceData, bool mergeMetadataSettings) + protected override void MergeData(MetadataResult<ManualCollectionsFolder> source, MetadataResult<ManualCollectionsFolder> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings) { ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings); } diff --git a/MediaBrowser.Providers/Folders/FolderMetadataService.cs b/MediaBrowser.Providers/Folders/FolderMetadataService.cs index ff8d87e2bc..687dac919f 100644 --- a/MediaBrowser.Providers/Folders/FolderMetadataService.cs +++ b/MediaBrowser.Providers/Folders/FolderMetadataService.cs @@ -23,7 +23,7 @@ namespace MediaBrowser.Providers.Folders } } - protected override void MergeData(MetadataResult<Folder> source, MetadataResult<Folder> target, List<MetadataFields> lockedFields, bool replaceData, bool mergeMetadataSettings) + protected override void MergeData(MetadataResult<Folder> source, MetadataResult<Folder> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings) { ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings); } diff --git a/MediaBrowser.Providers/Folders/UserViewMetadataService.cs b/MediaBrowser.Providers/Folders/UserViewMetadataService.cs index 06b62a98be..951794961e 100644 --- a/MediaBrowser.Providers/Folders/UserViewMetadataService.cs +++ b/MediaBrowser.Providers/Folders/UserViewMetadataService.cs @@ -14,7 +14,7 @@ namespace MediaBrowser.Providers.Folders { public class UserViewMetadataService : MetadataService<UserView, ItemLookupInfo> { - protected override void MergeData(MetadataResult<UserView> source, MetadataResult<UserView> target, List<MetadataFields> lockedFields, bool replaceData, bool mergeMetadataSettings) + protected override void MergeData(MetadataResult<UserView> source, MetadataResult<UserView> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings) { ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings); } diff --git a/MediaBrowser.Providers/GameGenres/GameGenreMetadataService.cs b/MediaBrowser.Providers/GameGenres/GameGenreMetadataService.cs index 13d40b4d90..edde0f5e3f 100644 --- a/MediaBrowser.Providers/GameGenres/GameGenreMetadataService.cs +++ b/MediaBrowser.Providers/GameGenres/GameGenreMetadataService.cs @@ -14,7 +14,7 @@ namespace MediaBrowser.Providers.GameGenres { public class GameGenreMetadataService : MetadataService<GameGenre, ItemLookupInfo> { - protected override void MergeData(MetadataResult<GameGenre> source, MetadataResult<GameGenre> target, List<MetadataFields> lockedFields, bool replaceData, bool mergeMetadataSettings) + protected override void MergeData(MetadataResult<GameGenre> source, MetadataResult<GameGenre> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings) { ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings); } diff --git a/MediaBrowser.Providers/Games/GameMetadataService.cs b/MediaBrowser.Providers/Games/GameMetadataService.cs index 10f74629fb..67becbf585 100644 --- a/MediaBrowser.Providers/Games/GameMetadataService.cs +++ b/MediaBrowser.Providers/Games/GameMetadataService.cs @@ -14,7 +14,7 @@ namespace MediaBrowser.Providers.Games { public class GameMetadataService : MetadataService<Game, GameInfo> { - protected override void MergeData(MetadataResult<Game> source, MetadataResult<Game> target, List<MetadataFields> lockedFields, bool replaceData, bool mergeMetadataSettings) + protected override void MergeData(MetadataResult<Game> source, MetadataResult<Game> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings) { ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings); diff --git a/MediaBrowser.Providers/Games/GameSystemMetadataService.cs b/MediaBrowser.Providers/Games/GameSystemMetadataService.cs index ca33563fad..474dd2fcf4 100644 --- a/MediaBrowser.Providers/Games/GameSystemMetadataService.cs +++ b/MediaBrowser.Providers/Games/GameSystemMetadataService.cs @@ -14,7 +14,7 @@ namespace MediaBrowser.Providers.Games { public class GameSystemMetadataService : MetadataService<GameSystem, GameSystemInfo> { - protected override void MergeData(MetadataResult<GameSystem> source, MetadataResult<GameSystem> target, List<MetadataFields> lockedFields, bool replaceData, bool mergeMetadataSettings) + protected override void MergeData(MetadataResult<GameSystem> source, MetadataResult<GameSystem> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings) { ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings); diff --git a/MediaBrowser.Providers/Genres/GenreMetadataService.cs b/MediaBrowser.Providers/Genres/GenreMetadataService.cs index a695fb3725..88fba18547 100644 --- a/MediaBrowser.Providers/Genres/GenreMetadataService.cs +++ b/MediaBrowser.Providers/Genres/GenreMetadataService.cs @@ -14,7 +14,7 @@ namespace MediaBrowser.Providers.Genres { public class GenreMetadataService : MetadataService<Genre, ItemLookupInfo> { - protected override void MergeData(MetadataResult<Genre> source, MetadataResult<Genre> target, List<MetadataFields> lockedFields, bool replaceData, bool mergeMetadataSettings) + protected override void MergeData(MetadataResult<Genre> source, MetadataResult<Genre> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings) { ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings); } diff --git a/MediaBrowser.Providers/ImagesByName/ImageUtils.cs b/MediaBrowser.Providers/ImagesByName/ImageUtils.cs index 499fd2e0b3..74c01fb5c6 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<string> images) + public static string FindMatch(IHasMetadata item, IEnumerable<string> images) { var name = GetComparableName(item.Name); diff --git a/MediaBrowser.Providers/LiveTv/AudioRecordingService.cs b/MediaBrowser.Providers/LiveTv/AudioRecordingService.cs index f4749c37d5..509c911889 100644 --- a/MediaBrowser.Providers/LiveTv/AudioRecordingService.cs +++ b/MediaBrowser.Providers/LiveTv/AudioRecordingService.cs @@ -14,7 +14,7 @@ namespace MediaBrowser.Providers.LiveTv { public class AudioRecordingService : MetadataService<LiveTvAudioRecording, ItemLookupInfo> { - protected override void MergeData(MetadataResult<LiveTvAudioRecording> source, MetadataResult<LiveTvAudioRecording> target, List<MetadataFields> lockedFields, bool replaceData, bool mergeMetadataSettings) + protected override void MergeData(MetadataResult<LiveTvAudioRecording> source, MetadataResult<LiveTvAudioRecording> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings) { ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings); } diff --git a/MediaBrowser.Providers/LiveTv/ChannelMetadataService.cs b/MediaBrowser.Providers/LiveTv/ChannelMetadataService.cs index 8012021abc..31e3ecaf4e 100644 --- a/MediaBrowser.Providers/LiveTv/ChannelMetadataService.cs +++ b/MediaBrowser.Providers/LiveTv/ChannelMetadataService.cs @@ -14,7 +14,7 @@ namespace MediaBrowser.Providers.LiveTv { public class ChannelMetadataService : MetadataService<LiveTvChannel, ItemLookupInfo> { - protected override void MergeData(MetadataResult<LiveTvChannel> source, MetadataResult<LiveTvChannel> target, List<MetadataFields> lockedFields, bool replaceData, bool mergeMetadataSettings) + protected override void MergeData(MetadataResult<LiveTvChannel> source, MetadataResult<LiveTvChannel> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings) { ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings); } diff --git a/MediaBrowser.Providers/LiveTv/ProgramMetadataService.cs b/MediaBrowser.Providers/LiveTv/ProgramMetadataService.cs index f203aa8c6a..28a12540bb 100644 --- a/MediaBrowser.Providers/LiveTv/ProgramMetadataService.cs +++ b/MediaBrowser.Providers/LiveTv/ProgramMetadataService.cs @@ -14,7 +14,7 @@ namespace MediaBrowser.Providers.LiveTv { public class ProgramMetadataService : MetadataService<LiveTvProgram, LiveTvProgramLookupInfo> { - protected override void MergeData(MetadataResult<LiveTvProgram> source, MetadataResult<LiveTvProgram> target, List<MetadataFields> lockedFields, bool replaceData, bool mergeMetadataSettings) + protected override void MergeData(MetadataResult<LiveTvProgram> source, MetadataResult<LiveTvProgram> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings) { ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings); } diff --git a/MediaBrowser.Providers/LiveTv/VideoRecordingService.cs b/MediaBrowser.Providers/LiveTv/VideoRecordingService.cs index 528e9a5ec9..8bfa916558 100644 --- a/MediaBrowser.Providers/LiveTv/VideoRecordingService.cs +++ b/MediaBrowser.Providers/LiveTv/VideoRecordingService.cs @@ -14,7 +14,7 @@ namespace MediaBrowser.Providers.LiveTv { public class VideoRecordingService : MetadataService<LiveTvVideoRecording, ItemLookupInfo> { - protected override void MergeData(MetadataResult<LiveTvVideoRecording> source, MetadataResult<LiveTvVideoRecording> target, List<MetadataFields> lockedFields, bool replaceData, bool mergeMetadataSettings) + protected override void MergeData(MetadataResult<LiveTvVideoRecording> source, MetadataResult<LiveTvVideoRecording> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings) { ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings); } diff --git a/MediaBrowser.Providers/Manager/ImageSaver.cs b/MediaBrowser.Providers/Manager/ImageSaver.cs index 2bf2d0ac75..7fdbdbcc7a 100644 --- a/MediaBrowser.Providers/Manager/ImageSaver.cs +++ b/MediaBrowser.Providers/Manager/ImageSaver.cs @@ -17,6 +17,7 @@ using System.Linq; using System.Threading; using System.Threading.Tasks; using MediaBrowser.Model.IO; +using MediaBrowser.Model.Extensions; namespace MediaBrowser.Providers.Manager { @@ -67,12 +68,12 @@ namespace MediaBrowser.Providers.Manager /// <param name="cancellationToken">The cancellation token.</param> /// <returns>Task.</returns> /// <exception cref="System.ArgumentNullException">mimeType</exception> - 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 +275,7 @@ namespace MediaBrowser.Providers.Manager /// <param name="mimeType">Type of the MIME.</param> /// <param name="saveLocally">if set to <c>true</c> [save locally].</param> /// <returns>IEnumerable{System.String}.</returns> - 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 +297,7 @@ namespace MediaBrowser.Providers.Manager /// or /// imageIndex /// </exception> - 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 +312,7 @@ namespace MediaBrowser.Providers.Manager /// <exception cref="System.ArgumentNullException">imageIndex /// or /// imageIndex</exception> - 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 +331,7 @@ namespace MediaBrowser.Providers.Manager /// or /// imageIndex /// </exception> - 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 +484,7 @@ namespace MediaBrowser.Providers.Manager /// <param name="mimeType">Type of the MIME.</param> /// <returns>IEnumerable{System.String}.</returns> /// <exception cref="System.ArgumentNullException">imageIndex</exception> - 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; @@ -541,7 +542,7 @@ namespace MediaBrowser.Providers.Manager { list.Add(Path.Combine(item.ContainingFolderPath, "extrathumbs", "thumb" + outputIndex.ToString(UsCulture) + extension)); } - return list.ToArray(); + return list.ToArray(list.Count); } if (type == ImageType.Primary) @@ -603,7 +604,7 @@ namespace MediaBrowser.Providers.Manager /// <param name="imageFilename">The image filename.</param> /// <param name="extension">The extension.</param> /// <returns>System.String.</returns> - 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 39715a4497..4864f455af 100644 --- a/MediaBrowser.Providers/Manager/ItemImageProvider.cs +++ b/MediaBrowser.Providers/Manager/ItemImageProvider.cs @@ -23,6 +23,7 @@ using MediaBrowser.Controller.Entities.TV; using MediaBrowser.Controller.IO; using MediaBrowser.Controller.LiveTv; using MediaBrowser.Model.MediaInfo; +using MediaBrowser.Model.Extensions; namespace MediaBrowser.Providers.Manager { @@ -41,7 +42,7 @@ namespace MediaBrowser.Providers.Manager _fileSystem = fileSystem; } - public bool ValidateImages(IHasImages item, IEnumerable<IImageProvider> providers, IDirectoryService directoryService) + public bool ValidateImages(IHasMetadata item, IEnumerable<IImageProvider> providers, IDirectoryService directoryService) { var hasChanges = false; @@ -60,7 +61,7 @@ namespace MediaBrowser.Providers.Manager return hasChanges; } - public async Task<RefreshResult> RefreshImages(IHasImages item, LibraryOptions libraryOptions, IEnumerable<IImageProvider> imageProviders, ImageRefreshOptions refreshOptions, MetadataOptions savedOptions, CancellationToken cancellationToken) + public async Task<RefreshResult> RefreshImages(IHasMetadata item, LibraryOptions libraryOptions, List<IImageProvider> providers, ImageRefreshOptions refreshOptions, MetadataOptions savedOptions, CancellationToken cancellationToken) { if (refreshOptions.IsReplacingImage(ImageType.Backdrop)) { @@ -73,8 +74,6 @@ namespace MediaBrowser.Providers.Manager var result = new RefreshResult { UpdateType = ItemUpdateType.None }; - var providers = imageProviders.ToList(); - var providerIds = new List<Guid>(); // In order to avoid duplicates, only download these if there are none already @@ -118,7 +117,7 @@ namespace MediaBrowser.Providers.Manager /// <param name="result">The result.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns>Task.</returns> - private async Task RefreshFromProvider(IHasImages item, + private async Task RefreshFromProvider(IHasMetadata item, IDynamicImageProvider provider, ImageRefreshOptions refreshOptions, MetadataOptions savedOptions, @@ -203,7 +202,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 +219,7 @@ namespace MediaBrowser.Providers.Manager /// <param name="backdropLimit">The backdrop limit.</param> /// <param name="screenshotLimit">The screenshot limit.</param> /// <returns><c>true</c> if the specified item contains images; otherwise, <c>false</c>.</returns> - private bool ContainsImages(IHasImages item, List<ImageType> images, MetadataOptions savedOptions, int backdropLimit, int screenshotLimit) + private bool ContainsImages(IHasMetadata item, List<ImageType> images, MetadataOptions savedOptions, int backdropLimit, int screenshotLimit) { if (_singularImages.Any(i => images.Contains(i) && !HasImage(item, i) && savedOptions.GetLimit(i) > 0)) { @@ -253,7 +252,7 @@ namespace MediaBrowser.Providers.Manager /// <param name="result">The result.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns>Task.</returns> - private async Task RefreshFromProvider(IHasImages item, LibraryOptions libraryOptions, + private async Task RefreshFromProvider(IHasMetadata item, LibraryOptions libraryOptions, IRemoteImageProvider provider, ImageRefreshOptions refreshOptions, MetadataOptions savedOptions, @@ -333,7 +332,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 +359,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<ItemImageInfo>(); @@ -384,10 +383,7 @@ namespace MediaBrowser.Providers.Manager } } - foreach (var image in deletedImages) - { - item.RemoveImage(image); - } + item.RemoveImages(deletedImages); if (deleted) { @@ -395,7 +391,7 @@ namespace MediaBrowser.Providers.Manager } } - public bool MergeImages(IHasImages item, List<LocalImageInfo> images) + public bool MergeImages(IHasMetadata item, List<LocalImageInfo> images) { var changed = false; @@ -453,7 +449,7 @@ namespace MediaBrowser.Providers.Manager return changed; } - private bool UpdateMultiImages(IHasImages item, List<LocalImageInfo> images, ImageType type) + private bool UpdateMultiImages(IHasMetadata item, List<LocalImageInfo> images, ImageType type) { var changed = false; @@ -461,7 +457,7 @@ namespace MediaBrowser.Providers.Manager var newImageFileInfos = newImages .Select(i => i.FileInfo) - .ToList(); + .ToList(newImages.Count); if (item.AddImages(type, newImageFileInfos)) { @@ -471,7 +467,7 @@ namespace MediaBrowser.Providers.Manager return changed; } - private async Task<bool> DownloadImage(IHasImages item, LibraryOptions libraryOptions, + private async Task<bool> DownloadImage(IHasMetadata item, LibraryOptions libraryOptions, IRemoteImageProvider provider, RefreshResult result, IEnumerable<RemoteImageInfo> images, @@ -517,7 +513,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 +553,14 @@ namespace MediaBrowser.Providers.Manager } } - private void SaveImageStub(IHasImages item, ImageType imageType, IEnumerable<string> urls) + private void SaveImageStub(IHasMetadata item, ImageType imageType, IEnumerable<string> urls) { var newIndex = item.AllowsMultipleImages(imageType) ? item.GetImages(imageType).Count() : 0; SaveImageStub(item, imageType, urls, newIndex); } - private void SaveImageStub(IHasImages item, ImageType imageType, IEnumerable<string> urls, int newIndex) + private void SaveImageStub(IHasMetadata item, ImageType imageType, IEnumerable<string> urls, int newIndex) { var path = string.Join("|", urls.Take(1).ToArray()); @@ -576,7 +572,7 @@ namespace MediaBrowser.Providers.Manager }, newIndex); } - private async Task DownloadBackdrops(IHasImages item, LibraryOptions libraryOptions, ImageType imageType, int limit, IRemoteImageProvider provider, RefreshResult result, IEnumerable<RemoteImageInfo> images, int minWidth, CancellationToken cancellationToken) + private async Task DownloadBackdrops(IHasMetadata item, LibraryOptions libraryOptions, ImageType imageType, int limit, IRemoteImageProvider provider, RefreshResult result, IEnumerable<RemoteImageInfo> images, int minWidth, CancellationToken cancellationToken) { foreach (var image in images.Where(i => i.Type == imageType)) { diff --git a/MediaBrowser.Providers/Manager/MetadataService.cs b/MediaBrowser.Providers/Manager/MetadataService.cs index 01aee9b92e..5d531c95c6 100644 --- a/MediaBrowser.Providers/Manager/MetadataService.cs +++ b/MediaBrowser.Providers/Manager/MetadataService.cs @@ -201,7 +201,7 @@ namespace MediaBrowser.Providers.Manager { var baseItem = result.Item as BaseItem; - await LibraryManager.UpdatePeople(baseItem, result.People.ToList()); + await LibraryManager.UpdatePeople(baseItem, result.People); await SavePeopleMetadata(result.People, libraryOptions, cancellationToken).ConfigureAwait(false); } await result.Item.UpdateToRepository(reason, cancellationToken).ConfigureAwait(false); @@ -314,7 +314,7 @@ namespace MediaBrowser.Providers.Manager var folder = item as Folder; if (folder != null && folder.SupportsCumulativeRunTimeTicks) { - var items = folder.GetRecursiveChildren(i => !i.IsFolder).ToList(); + var items = folder.GetRecursiveChildren(i => !i.IsFolder); var ticks = items.Select(i => i.RunTimeTicks ?? 0).Sum(); if (!folder.RunTimeTicks.HasValue || folder.RunTimeTicks.Value != ticks) @@ -519,7 +519,7 @@ namespace MediaBrowser.Providers.Manager userDataList.AddRange(localItem.UserDataList); } - MergeData(localItem, temp, new List<MetadataFields>(), !options.ReplaceAllMetadata, true); + MergeData(localItem, temp, new MetadataFields[]{}, !options.ReplaceAllMetadata, true); refreshResult.UpdateType = refreshResult.UpdateType | ItemUpdateType.MetadataImport; // Only one local provider allowed per item @@ -567,7 +567,7 @@ namespace MediaBrowser.Providers.Manager else { // TODO: If the new metadata from above has some blank data, this can cause old data to get filled into those empty fields - MergeData(metadata, temp, new List<MetadataFields>(), false, false); + MergeData(metadata, temp, new MetadataFields[]{}, false, false); MergeData(temp, metadata, item.LockedFields, true, false); } } @@ -704,7 +704,7 @@ namespace MediaBrowser.Providers.Manager foreach (var result in results) { - MergeData(result, temp, new List<MetadataFields>(), false, false); + MergeData(result, temp, new MetadataFields[]{}, false, false); } return refreshResult; @@ -736,7 +736,7 @@ namespace MediaBrowser.Providers.Manager protected abstract void MergeData(MetadataResult<TItemType> source, MetadataResult<TItemType> target, - List<MetadataFields> lockedFields, + MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings); diff --git a/MediaBrowser.Providers/Manager/ProviderManager.cs b/MediaBrowser.Providers/Manager/ProviderManager.cs index ce995fe647..139bd6d588 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<IEnumerable<RemoteImageInfo>> GetAvailableRemoteImages(IHasImages item, RemoteImageQuery query, CancellationToken cancellationToken) + public async Task<IEnumerable<RemoteImageInfo>> GetAvailableRemoteImages(IHasMetadata item, RemoteImageQuery query, CancellationToken cancellationToken) { var providers = GetRemoteImageProviders(item, query.IncludeDisabledProviders); @@ -182,9 +182,7 @@ namespace MediaBrowser.Providers.Manager var results = await Task.WhenAll(tasks).ConfigureAwait(false); - var images = results.SelectMany(i => i.ToList()); - - return images; + return results.SelectMany(i => i.ToList()); } /// <summary> @@ -196,7 +194,7 @@ namespace MediaBrowser.Providers.Manager /// <param name="preferredLanguages">The preferred languages.</param> /// <param name="type">The type.</param> /// <returns>Task{IEnumerable{RemoteImageInfo}}.</returns> - private async Task<IEnumerable<RemoteImageInfo>> GetImages(IHasImages item, CancellationToken cancellationToken, IRemoteImageProvider provider, List<string> preferredLanguages, ImageType? type = null) + private async Task<IEnumerable<RemoteImageInfo>> GetImages(IHasMetadata item, CancellationToken cancellationToken, IRemoteImageProvider provider, List<string> preferredLanguages, ImageType? type = null) { try { @@ -232,7 +230,7 @@ namespace MediaBrowser.Providers.Manager /// </summary> /// <param name="item">The item.</param> /// <returns>IEnumerable{IImageProvider}.</returns> - public IEnumerable<ImageProviderInfo> GetRemoteImageProviderInfo(IHasImages item) + public IEnumerable<ImageProviderInfo> GetRemoteImageProviderInfo(IHasMetadata item) { return GetRemoteImageProviders(item, true).Select(i => new ImageProviderInfo { @@ -241,12 +239,12 @@ namespace MediaBrowser.Providers.Manager }); } - public IEnumerable<IImageProvider> GetImageProviders(IHasImages item, ImageRefreshOptions refreshOptions) + public IEnumerable<IImageProvider> GetImageProviders(IHasMetadata item, ImageRefreshOptions refreshOptions) { return GetImageProviders(item, GetMetadataOptions(item), refreshOptions, false); } - private IEnumerable<IImageProvider> GetImageProviders(IHasImages item, MetadataOptions options, ImageRefreshOptions refreshOptions, bool includeDisabled) + private IEnumerable<IImageProvider> GetImageProviders(IHasMetadata item, MetadataOptions options, ImageRefreshOptions refreshOptions, bool includeDisabled) { // Avoid implicitly captured closure var currentOptions = options; @@ -291,7 +289,7 @@ namespace MediaBrowser.Providers.Manager .ThenBy(GetDefaultOrder); } - private IEnumerable<IRemoteImageProvider> GetRemoteImageProviders(IHasImages item, bool includeDisabled) + private IEnumerable<IRemoteImageProvider> GetRemoteImageProviders(IHasMetadata item, bool includeDisabled) { var options = GetMetadataOptions(item); @@ -339,7 +337,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 +528,7 @@ namespace MediaBrowser.Providers.Manager } private void AddImagePlugins<T>(List<MetadataPlugin> list, T item, List<IImageProvider> imageProviders) - where T : IHasImages + where T : IHasMetadata { // Locals @@ -550,7 +548,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/Manager/ProviderUtils.cs b/MediaBrowser.Providers/Manager/ProviderUtils.cs index 93a386ed59..a200b18b57 100644 --- a/MediaBrowser.Providers/Manager/ProviderUtils.cs +++ b/MediaBrowser.Providers/Manager/ProviderUtils.cs @@ -13,7 +13,7 @@ namespace MediaBrowser.Providers.Manager { public static void MergeBaseItemData<T>(MetadataResult<T> sourceResult, MetadataResult<T> targetResult, - List<MetadataFields> lockedFields, + MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings) where T : BaseItem @@ -150,7 +150,7 @@ namespace MediaBrowser.Providers.Manager if (!lockedFields.Contains(MetadataFields.Studios)) { - if (replaceData || target.Studios.Count == 0) + if (replaceData || target.Studios.Length == 0) { target.Studios = source.Studios; } @@ -158,7 +158,7 @@ namespace MediaBrowser.Providers.Manager if (!lockedFields.Contains(MetadataFields.Tags)) { - if (replaceData || target.Tags.Count == 0) + if (replaceData || target.Tags.Length == 0) { target.Tags = source.Tags; } @@ -166,7 +166,7 @@ namespace MediaBrowser.Providers.Manager if (!lockedFields.Contains(MetadataFields.ProductionLocations)) { - if (replaceData || target.ProductionLocations.Count == 0) + if (replaceData || target.ProductionLocations.Length == 0) { target.ProductionLocations = source.ProductionLocations; } @@ -266,7 +266,7 @@ namespace MediaBrowser.Providers.Manager target.PreferredMetadataLanguage = source.PreferredMetadataLanguage; } - private static void MergeDisplayOrder(BaseItem source, BaseItem target, List<MetadataFields> lockedFields, bool replaceData) + private static void MergeDisplayOrder(BaseItem source, BaseItem target, MetadataFields[] lockedFields, bool replaceData) { var sourceHasDisplayOrder = source as IHasDisplayOrder; var targetHasDisplayOrder = target as IHasDisplayOrder; @@ -277,7 +277,7 @@ namespace MediaBrowser.Providers.Manager } } - private static void MergeAlbumArtist(BaseItem source, BaseItem target, List<MetadataFields> lockedFields, bool replaceData) + private static void MergeAlbumArtist(BaseItem source, BaseItem target, MetadataFields[] lockedFields, bool replaceData) { var sourceHasAlbumArtist = source as IHasAlbumArtist; var targetHasAlbumArtist = target as IHasAlbumArtist; @@ -291,7 +291,7 @@ namespace MediaBrowser.Providers.Manager } } - private static void MergeCriticRating(BaseItem source, BaseItem target, List<MetadataFields> lockedFields, bool replaceData) + private static void MergeCriticRating(BaseItem source, BaseItem target, MetadataFields[] lockedFields, bool replaceData) { if (replaceData || !target.CriticRating.HasValue) { @@ -299,7 +299,7 @@ namespace MediaBrowser.Providers.Manager } } - private static void MergeTrailers(BaseItem source, BaseItem target, List<MetadataFields> lockedFields, bool replaceData) + private static void MergeTrailers(BaseItem source, BaseItem target, MetadataFields[] lockedFields, bool replaceData) { var sourceCast = source as IHasTrailers; var targetCast = target as IHasTrailers; @@ -313,7 +313,7 @@ namespace MediaBrowser.Providers.Manager } } - private static void MergeVideoInfo(BaseItem source, BaseItem target, List<MetadataFields> lockedFields, bool replaceData) + private static void MergeVideoInfo(BaseItem source, BaseItem target, MetadataFields[] lockedFields, bool replaceData) { var sourceCast = source as Video; var targetCast = target as Video; diff --git a/MediaBrowser.Providers/MediaInfo/AudioImageProvider.cs b/MediaBrowser.Providers/MediaInfo/AudioImageProvider.cs index e406932ed8..b8b6032452 100644 --- a/MediaBrowser.Providers/MediaInfo/AudioImageProvider.cs +++ b/MediaBrowser.Providers/MediaInfo/AudioImageProvider.cs @@ -12,6 +12,7 @@ using System.Linq; using System.Threading; using System.Threading.Tasks; using MediaBrowser.Model.IO; +using MediaBrowser.Model.Extensions; namespace MediaBrowser.Providers.MediaInfo { @@ -31,12 +32,12 @@ namespace MediaBrowser.Providers.MediaInfo _fileSystem = fileSystem; } - public IEnumerable<ImageType> GetSupportedImages(IHasImages item) + public IEnumerable<ImageType> GetSupportedImages(IHasMetadata item) { return new List<ImageType> { ImageType.Primary }; } - public Task<DynamicImageResponse> GetImage(IHasImages item, ImageType type, CancellationToken cancellationToken) + public Task<DynamicImageResponse> GetImage(IHasMetadata item, ImageType type, CancellationToken cancellationToken) { var audio = (Audio)item; @@ -92,7 +93,7 @@ namespace MediaBrowser.Providers.MediaInfo private string GetAudioImagePath(Audio item) { var filename = item.Album ?? string.Empty; - filename += string.Join(",", item.Artists.ToArray()); + filename += string.Join(",", item.Artists.ToArray(item.Artists.Count)); if (!string.IsNullOrWhiteSpace(item.Album)) { @@ -127,7 +128,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/FFProbeAudioInfo.cs b/MediaBrowser.Providers/MediaInfo/FFProbeAudioInfo.cs index 12d1d3468b..b0785298b8 100644 --- a/MediaBrowser.Providers/MediaInfo/FFProbeAudioInfo.cs +++ b/MediaBrowser.Providers/MediaInfo/FFProbeAudioInfo.cs @@ -13,6 +13,7 @@ using System.Globalization; using System.IO; using System.Threading; using System.Threading.Tasks; +using System.Linq; namespace MediaBrowser.Providers.MediaInfo { @@ -165,12 +166,7 @@ namespace MediaBrowser.Providers.MediaInfo if (!audio.LockedFields.Contains(MetadataFields.Studios)) { - audio.Studios.Clear(); - - foreach (var studio in data.Studios) - { - audio.AddStudio(studio); - } + audio.SetStudios(data.Studios); } audio.SetProviderId(MetadataProviders.MusicBrainzAlbumArtist, data.GetProviderId(MetadataProviders.MusicBrainzAlbumArtist)); diff --git a/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs b/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs index 143ec8fdd6..7956b52af9 100644 --- a/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs +++ b/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs @@ -376,14 +376,9 @@ namespace MediaBrowser.Providers.MediaInfo if (!video.IsLocked && !video.LockedFields.Contains(MetadataFields.Studios)) { - if (video.Studios.Count == 0 || isFullRefresh) + if (video.Studios.Length == 0 || isFullRefresh) { - video.Studios.Clear(); - - foreach (var studio in data.Studios) - { - video.AddStudio(studio); - } + video.SetStudios(data.Studios); } } diff --git a/MediaBrowser.Providers/MediaInfo/SubtitleResolver.cs b/MediaBrowser.Providers/MediaInfo/SubtitleResolver.cs index dfa705126a..465c417e72 100644 --- a/MediaBrowser.Providers/MediaInfo/SubtitleResolver.cs +++ b/MediaBrowser.Providers/MediaInfo/SubtitleResolver.cs @@ -133,7 +133,7 @@ namespace MediaBrowser.Providers.MediaInfo throw new ArgumentException(string.Format("Cannot search for items that don't have a path: {0} {1}", video.Name, video.Id)); } - var files = directoryService.GetFilePaths(containingPath, clearCache); + var files = fileSystem.GetFilePaths(containingPath, clearCache); var videoFileNameWithoutExtension = fileSystem.GetFileNameWithoutExtension(video.Path); diff --git a/MediaBrowser.Providers/MediaInfo/SubtitleScheduledTask.cs b/MediaBrowser.Providers/MediaInfo/SubtitleScheduledTask.cs index 200615a5d0..61cf1cfc3c 100644 --- a/MediaBrowser.Providers/MediaInfo/SubtitleScheduledTask.cs +++ b/MediaBrowser.Providers/MediaInfo/SubtitleScheduledTask.cs @@ -17,6 +17,7 @@ using System.IO; using MediaBrowser.Controller.Dto; using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Tasks; +using MediaBrowser.Model.Extensions; namespace MediaBrowser.Providers.MediaInfo { @@ -83,7 +84,7 @@ namespace MediaBrowser.Providers.MediaInfo { MediaTypes = new string[] { MediaType.Video }, IsVirtualItem = false, - IncludeItemTypes = types.ToArray(), + IncludeItemTypes = types.ToArray(types.Count), DtoOptions = new DtoOptions(true) }).OfType<Video>() diff --git a/MediaBrowser.Providers/MediaInfo/VideoImageProvider.cs b/MediaBrowser.Providers/MediaInfo/VideoImageProvider.cs index 26a795a7db..f666d8b7ff 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<ImageType> GetSupportedImages(IHasImages item) + public IEnumerable<ImageType> GetSupportedImages(IHasMetadata item) { return new List<ImageType> { ImageType.Primary }; } - public Task<DynamicImageResponse> GetImage(IHasImages item, ImageType type, CancellationToken cancellationToken) + public Task<DynamicImageResponse> 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 c3aa87a22f..0214788ab4 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<ImageType> GetSupportedImages(IHasImages item) + public IEnumerable<ImageType> GetSupportedImages(IHasMetadata item) { return new List<ImageType> { @@ -79,7 +79,7 @@ namespace MediaBrowser.Providers.Movies }; } - public async Task<IEnumerable<RemoteImageInfo>> GetImages(IHasImages item, CancellationToken cancellationToken) + public async Task<IEnumerable<RemoteImageInfo>> GetImages(IHasMetadata item, CancellationToken cancellationToken) { var baseItem = (BaseItem)item; var list = new List<RemoteImageInfo>(); diff --git a/MediaBrowser.Providers/Movies/GenericMovieDbInfo.cs b/MediaBrowser.Providers/Movies/GenericMovieDbInfo.cs index db621e554b..ddf3e4d1a2 100644 --- a/MediaBrowser.Providers/Movies/GenericMovieDbInfo.cs +++ b/MediaBrowser.Providers/Movies/GenericMovieDbInfo.cs @@ -146,7 +146,7 @@ namespace MediaBrowser.Providers.Movies movie.ProductionLocations = movieData .production_countries .Select(i => i.name) - .ToList(); + .ToArray(movieData.production_countries.Count); } movie.SetProviderId(MetadataProviders.Tmdb, movieData.id.ToString(_usCulture)); @@ -213,12 +213,7 @@ namespace MediaBrowser.Providers.Movies //studios if (movieData.production_companies != null) { - movie.Studios.Clear(); - - foreach (var studio in movieData.production_companies.Select(c => c.name)) - { - movie.AddStudio(studio); - } + movie.SetStudios(movieData.production_companies.Select(c => c.name)); } // genres diff --git a/MediaBrowser.Providers/Movies/MovieDbImageProvider.cs b/MediaBrowser.Providers/Movies/MovieDbImageProvider.cs index 215b391817..8dc4bd56ac 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<ImageType> GetSupportedImages(IHasImages item) + public IEnumerable<ImageType> GetSupportedImages(IHasMetadata item) { return new List<ImageType> { @@ -55,7 +55,7 @@ namespace MediaBrowser.Providers.Movies }; } - public async Task<IEnumerable<RemoteImageInfo>> GetImages(IHasImages item, CancellationToken cancellationToken) + public async Task<IEnumerable<RemoteImageInfo>> GetImages(IHasMetadata item, CancellationToken cancellationToken) { var list = new List<RemoteImageInfo>(); @@ -127,8 +127,7 @@ namespace MediaBrowser.Providers.Movies return 0; }) .ThenByDescending(i => i.CommunityRating ?? 0) - .ThenByDescending(i => i.VoteCount ?? 0) - .ToList(); + .ThenByDescending(i => i.VoteCount ?? 0); } /// <summary> @@ -149,8 +148,7 @@ namespace MediaBrowser.Providers.Movies private IEnumerable<MovieDbProvider.Backdrop> GetBackdrops(MovieDbProvider.Images images) { var eligibleBackdrops = images.backdrops == null ? new List<MovieDbProvider.Backdrop>() : - images.backdrops - .ToList(); + images.backdrops; return eligibleBackdrops.OrderByDescending(i => i.vote_average) .ThenByDescending(i => i.vote_count); diff --git a/MediaBrowser.Providers/Movies/MovieDbProvider.cs b/MediaBrowser.Providers/Movies/MovieDbProvider.cs index fe190afb41..ec1c497426 100644 --- a/MediaBrowser.Providers/Movies/MovieDbProvider.cs +++ b/MediaBrowser.Providers/Movies/MovieDbProvider.cs @@ -22,6 +22,7 @@ using MediaBrowser.Common; using MediaBrowser.Controller.IO; using MediaBrowser.Model.Globalization; using MediaBrowser.Model.Net; +using MediaBrowser.Model.Extensions; namespace MediaBrowser.Providers.Movies { @@ -282,7 +283,7 @@ namespace MediaBrowser.Providers.Movies languages.Add("en"); } - return string.Join(",", languages.ToArray()); + return string.Join(",", languages.ToArray(languages.Count)); } public static string NormalizeLanguage(string language) diff --git a/MediaBrowser.Providers/Movies/MovieMetadataService.cs b/MediaBrowser.Providers/Movies/MovieMetadataService.cs index 333d289ec7..dc3146f2a9 100644 --- a/MediaBrowser.Providers/Movies/MovieMetadataService.cs +++ b/MediaBrowser.Providers/Movies/MovieMetadataService.cs @@ -28,7 +28,7 @@ namespace MediaBrowser.Providers.Movies return base.IsFullLocalMetadata(item); } - protected override void MergeData(MetadataResult<Movie> source, MetadataResult<Movie> target, List<MetadataFields> lockedFields, bool replaceData, bool mergeMetadataSettings) + protected override void MergeData(MetadataResult<Movie> source, MetadataResult<Movie> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings) { ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings); @@ -61,7 +61,7 @@ namespace MediaBrowser.Providers.Movies return base.IsFullLocalMetadata(item); } - protected override void MergeData(MetadataResult<Trailer> source, MetadataResult<Trailer> target, List<MetadataFields> lockedFields, bool replaceData, bool mergeMetadataSettings) + protected override void MergeData(MetadataResult<Trailer> source, MetadataResult<Trailer> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings) { ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings); diff --git a/MediaBrowser.Providers/Music/AlbumImageFromSongProvider.cs b/MediaBrowser.Providers/Music/AlbumImageFromSongProvider.cs index 0cb1a7ff13..57e20b8526 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<ImageType> GetSupportedImages(IHasImages item) + public IEnumerable<ImageType> GetSupportedImages(IHasMetadata item) { return new List<ImageType> { ImageType.Primary }; } - public Task<DynamicImageResponse> GetImage(IHasImages item, ImageType type, CancellationToken cancellationToken) + public Task<DynamicImageResponse> 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/AlbumMetadataService.cs b/MediaBrowser.Providers/Music/AlbumMetadataService.cs index bba40608c6..839bec6045 100644 --- a/MediaBrowser.Providers/Music/AlbumMetadataService.cs +++ b/MediaBrowser.Providers/Music/AlbumMetadataService.cs @@ -44,13 +44,13 @@ namespace MediaBrowser.Providers.Music if (!item.LockedFields.Contains(MetadataFields.Studios)) { - var currentList = item.Studios.ToList(); + var currentList = item.Studios; item.Studios = songs.SelectMany(i => i.Studios) .Distinct(StringComparer.OrdinalIgnoreCase) - .ToList(); + .ToArray(); - if (currentList.Count != item.Studios.Count || !currentList.OrderBy(i => i).SequenceEqual(item.Studios.OrderBy(i => i), StringComparer.OrdinalIgnoreCase)) + if (currentList.Length != item.Studios.Length || !currentList.OrderBy(i => i).SequenceEqual(item.Studios.OrderBy(i => i), StringComparer.OrdinalIgnoreCase)) { updateType = updateType | ItemUpdateType.MetadataEdit; } @@ -151,7 +151,7 @@ namespace MediaBrowser.Providers.Music return updateType; } - protected override void MergeData(MetadataResult<MusicAlbum> source, MetadataResult<MusicAlbum> target, List<MetadataFields> lockedFields, bool replaceData, bool mergeMetadataSettings) + protected override void MergeData(MetadataResult<MusicAlbum> source, MetadataResult<MusicAlbum> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings) { ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings); diff --git a/MediaBrowser.Providers/Music/ArtistMetadataService.cs b/MediaBrowser.Providers/Music/ArtistMetadataService.cs index 98fe766e0a..c8008ba1ec 100644 --- a/MediaBrowser.Providers/Music/ArtistMetadataService.cs +++ b/MediaBrowser.Providers/Music/ArtistMetadataService.cs @@ -29,7 +29,7 @@ namespace MediaBrowser.Providers.Music Recursive = true, IsFolder = false }) : - item.GetRecursiveChildren(i => i is IHasArtist && !i.IsFolder).ToList(); + item.GetRecursiveChildren(i => i is IHasArtist && !i.IsFolder); var currentList = item.Genres.ToList(); @@ -47,7 +47,7 @@ namespace MediaBrowser.Providers.Music return updateType; } - protected override void MergeData(MetadataResult<MusicArtist> source, MetadataResult<MusicArtist> target, List<MetadataFields> lockedFields, bool replaceData, bool mergeMetadataSettings) + protected override void MergeData(MetadataResult<MusicArtist> source, MetadataResult<MusicArtist> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings) { ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings); } diff --git a/MediaBrowser.Providers/Music/AudioDbAlbumImageProvider.cs b/MediaBrowser.Providers/Music/AudioDbAlbumImageProvider.cs index c13d19c436..0ce221b065 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<ImageType> GetSupportedImages(IHasImages item) + public IEnumerable<ImageType> GetSupportedImages(IHasMetadata item) { return new List<ImageType> { @@ -34,7 +34,7 @@ namespace MediaBrowser.Providers.Music }; } - public async Task<IEnumerable<RemoteImageInfo>> GetImages(IHasImages item, CancellationToken cancellationToken) + public async Task<IEnumerable<RemoteImageInfo>> 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 6ca1d83d8a..dded509e2f 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<ImageType> GetSupportedImages(IHasImages item) + public IEnumerable<ImageType> GetSupportedImages(IHasMetadata item) { return new List<ImageType> { @@ -36,7 +36,7 @@ namespace MediaBrowser.Providers.Music }; } - public async Task<IEnumerable<RemoteImageInfo>> GetImages(IHasImages item, CancellationToken cancellationToken) + public async Task<IEnumerable<RemoteImageInfo>> 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/AudioMetadataService.cs b/MediaBrowser.Providers/Music/AudioMetadataService.cs index 4d791be01a..647ac2bff3 100644 --- a/MediaBrowser.Providers/Music/AudioMetadataService.cs +++ b/MediaBrowser.Providers/Music/AudioMetadataService.cs @@ -8,12 +8,13 @@ using MediaBrowser.Providers.Manager; using System.Collections.Generic; using System.Linq; using MediaBrowser.Model.IO; +using MediaBrowser.Model.Extensions; namespace MediaBrowser.Providers.Music { public class AudioMetadataService : MetadataService<Audio, SongInfo> { - protected override void MergeData(MetadataResult<Audio> source, MetadataResult<Audio> target, List<MetadataFields> lockedFields, bool replaceData, bool mergeMetadataSettings) + protected override void MergeData(MetadataResult<Audio> source, MetadataResult<Audio> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings) { ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings); @@ -22,7 +23,7 @@ namespace MediaBrowser.Providers.Music if (replaceData || targetItem.Artists.Count == 0) { - targetItem.Artists = sourceItem.Artists.ToList(); + targetItem.Artists = sourceItem.Artists.ToList(sourceItem.Artists.Count); } if (replaceData || string.IsNullOrEmpty(targetItem.Album)) diff --git a/MediaBrowser.Providers/Music/FanArtAlbumProvider.cs b/MediaBrowser.Providers/Music/FanArtAlbumProvider.cs index 5700b23866..7a6826d319 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<ImageType> GetSupportedImages(IHasImages item) + public IEnumerable<ImageType> GetSupportedImages(IHasMetadata item) { return new List<ImageType> { @@ -61,7 +61,7 @@ namespace MediaBrowser.Providers.Music }; } - public async Task<IEnumerable<RemoteImageInfo>> GetImages(IHasImages item, CancellationToken cancellationToken) + public async Task<IEnumerable<RemoteImageInfo>> GetImages(IHasMetadata item, CancellationToken cancellationToken) { var album = (MusicAlbum)item; diff --git a/MediaBrowser.Providers/Music/FanArtArtistProvider.cs b/MediaBrowser.Providers/Music/FanArtArtistProvider.cs index eefebed292..6094fd26ec 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<ImageType> GetSupportedImages(IHasImages item) + public IEnumerable<ImageType> GetSupportedImages(IHasMetadata item) { return new List<ImageType> { @@ -75,7 +75,7 @@ namespace MediaBrowser.Providers.Music }; } - public async Task<IEnumerable<RemoteImageInfo>> GetImages(IHasImages item, CancellationToken cancellationToken) + public async Task<IEnumerable<RemoteImageInfo>> GetImages(IHasMetadata item, CancellationToken cancellationToken) { var artist = (MusicArtist)item; diff --git a/MediaBrowser.Providers/Music/MusicBrainzAlbumProvider.cs b/MediaBrowser.Providers/Music/MusicBrainzAlbumProvider.cs index b77fcf1b28..17b5196de0 100644 --- a/MediaBrowser.Providers/Music/MusicBrainzAlbumProvider.cs +++ b/MediaBrowser.Providers/Music/MusicBrainzAlbumProvider.cs @@ -17,6 +17,7 @@ using System.Threading.Tasks; using System.Xml; using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Xml; +using MediaBrowser.Model.Extensions; namespace MediaBrowser.Providers.Music { @@ -123,7 +124,8 @@ namespace MediaBrowser.Providers.Music } return result; - }).ToList(); + + }).ToList(results.Count); } } } @@ -619,7 +621,7 @@ namespace MediaBrowser.Providers.Music } } - _mbzUrls = list.ToList(); + _mbzUrls = list.ToList(list.Count); return list; } diff --git a/MediaBrowser.Providers/Music/MusicBrainzArtistProvider.cs b/MediaBrowser.Providers/Music/MusicBrainzArtistProvider.cs index 1a2b13e946..06f60c8a37 100644 --- a/MediaBrowser.Providers/Music/MusicBrainzArtistProvider.cs +++ b/MediaBrowser.Providers/Music/MusicBrainzArtistProvider.cs @@ -50,7 +50,7 @@ namespace MediaBrowser.Providers.Music using (var stream = await MusicBrainzAlbumProvider.Current.GetMusicBrainzResponse(url, true, cancellationToken).ConfigureAwait(false)) { - var results = GetResultsFromResponse(stream).ToList(); + var results = GetResultsFromResponse(stream); if (results.Count > 0) { @@ -73,7 +73,7 @@ namespace MediaBrowser.Providers.Music return new List<RemoteSearchResult>(); } - private IEnumerable<RemoteSearchResult> GetResultsFromResponse(Stream stream) + private List<RemoteSearchResult> GetResultsFromResponse(Stream stream) { using (var oReader = new StreamReader(stream, Encoding.UTF8)) { @@ -125,7 +125,7 @@ namespace MediaBrowser.Providers.Music } } - private IEnumerable<RemoteSearchResult> ParseArtistList(XmlReader reader) + private List<RemoteSearchResult> ParseArtistList(XmlReader reader) { var list = new List<RemoteSearchResult>(); diff --git a/MediaBrowser.Providers/Music/MusicVideoMetadataService.cs b/MediaBrowser.Providers/Music/MusicVideoMetadataService.cs index b8f6e2c633..40736619a7 100644 --- a/MediaBrowser.Providers/Music/MusicVideoMetadataService.cs +++ b/MediaBrowser.Providers/Music/MusicVideoMetadataService.cs @@ -10,12 +10,13 @@ using System.Linq; using MediaBrowser.Controller.IO; using MediaBrowser.Model.IO; +using MediaBrowser.Model.Extensions; namespace MediaBrowser.Providers.Music { class MusicVideoMetadataService : MetadataService<MusicVideo, MusicVideoInfo> { - protected override void MergeData(MetadataResult<MusicVideo> source, MetadataResult<MusicVideo> target, List<MetadataFields> lockedFields, bool replaceData, bool mergeMetadataSettings) + protected override void MergeData(MetadataResult<MusicVideo> source, MetadataResult<MusicVideo> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings) { ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings); @@ -29,7 +30,7 @@ namespace MediaBrowser.Providers.Music if (replaceData || targetItem.Artists.Count == 0) { - targetItem.Artists = sourceItem.Artists.ToList(); + targetItem.Artists = sourceItem.Artists.ToList(sourceItem.Artists.Count); } } diff --git a/MediaBrowser.Providers/MusicGenres/MusicGenreMetadataService.cs b/MediaBrowser.Providers/MusicGenres/MusicGenreMetadataService.cs index ba059bd7b8..3828f8d274 100644 --- a/MediaBrowser.Providers/MusicGenres/MusicGenreMetadataService.cs +++ b/MediaBrowser.Providers/MusicGenres/MusicGenreMetadataService.cs @@ -14,7 +14,7 @@ namespace MediaBrowser.Providers.MusicGenres { public class MusicGenreMetadataService : MetadataService<MusicGenre, ItemLookupInfo> { - protected override void MergeData(MetadataResult<MusicGenre> source, MetadataResult<MusicGenre> target, List<MetadataFields> lockedFields, bool replaceData, bool mergeMetadataSettings) + protected override void MergeData(MetadataResult<MusicGenre> source, MetadataResult<MusicGenre> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings) { ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings); } diff --git a/MediaBrowser.Providers/Omdb/OmdbImageProvider.cs b/MediaBrowser.Providers/Omdb/OmdbImageProvider.cs index f8b3ba1551..74bfa6e039 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<ImageType> GetSupportedImages(IHasImages item) + public IEnumerable<ImageType> GetSupportedImages(IHasMetadata item) { return new List<ImageType> { @@ -40,7 +40,7 @@ namespace MediaBrowser.Providers.Omdb }; } - public async Task<IEnumerable<RemoteImageInfo>> GetImages(IHasImages item, CancellationToken cancellationToken) + public async Task<IEnumerable<RemoteImageInfo>> 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 3728137902..4dfcdba09f 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<ImageType> GetSupportedImages(IHasImages item) + public IEnumerable<ImageType> GetSupportedImages(IHasMetadata item) { return new List<ImageType> { @@ -50,7 +50,7 @@ namespace MediaBrowser.Providers.People }; } - public async Task<IEnumerable<RemoteImageInfo>> GetImages(IHasImages item, CancellationToken cancellationToken) + public async Task<IEnumerable<RemoteImageInfo>> GetImages(IHasMetadata item, CancellationToken cancellationToken) { var person = (Person)item; var id = person.GetProviderId(MetadataProviders.Tmdb); @@ -116,8 +116,7 @@ namespace MediaBrowser.Providers.People return 0; }) .ThenByDescending(i => i.CommunityRating ?? 0) - .ThenByDescending(i => i.VoteCount ?? 0) - .ToList(); + .ThenByDescending(i => i.VoteCount ?? 0); } private string GetLanguage(MovieDbPersonProvider.Profile profile) diff --git a/MediaBrowser.Providers/People/MovieDbPersonProvider.cs b/MediaBrowser.Providers/People/MovieDbPersonProvider.cs index 986c4b4a98..d8c9ce8018 100644 --- a/MediaBrowser.Providers/People/MovieDbPersonProvider.cs +++ b/MediaBrowser.Providers/People/MovieDbPersonProvider.cs @@ -184,7 +184,7 @@ namespace MediaBrowser.Providers.People if (!string.IsNullOrWhiteSpace(info.place_of_birth)) { - item.ProductionLocations = new List<string> { info.place_of_birth }; + item.ProductionLocations = new string[] { info.place_of_birth }; } item.Overview = info.biography; diff --git a/MediaBrowser.Providers/People/PersonMetadataService.cs b/MediaBrowser.Providers/People/PersonMetadataService.cs index 5d70fc1d60..bbfaa43b40 100644 --- a/MediaBrowser.Providers/People/PersonMetadataService.cs +++ b/MediaBrowser.Providers/People/PersonMetadataService.cs @@ -14,7 +14,7 @@ namespace MediaBrowser.Providers.People { public class PersonMetadataService : MetadataService<Person, PersonLookupInfo> { - protected override void MergeData(MetadataResult<Person> source, MetadataResult<Person> target, List<MetadataFields> lockedFields, bool replaceData, bool mergeMetadataSettings) + protected override void MergeData(MetadataResult<Person> source, MetadataResult<Person> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings) { ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings); } diff --git a/MediaBrowser.Providers/People/TvdbPersonImageProvider.cs b/MediaBrowser.Providers/People/TvdbPersonImageProvider.cs index efbf46cd67..2c3ba00c82 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<ImageType> GetSupportedImages(IHasImages item) + public IEnumerable<ImageType> GetSupportedImages(IHasMetadata item) { return new List<ImageType> { @@ -61,7 +61,7 @@ namespace MediaBrowser.Providers.People }; } - public Task<IEnumerable<RemoteImageInfo>> GetImages(IHasImages item, CancellationToken cancellationToken) + public Task<IEnumerable<RemoteImageInfo>> GetImages(IHasMetadata item, CancellationToken cancellationToken) { var seriesWithPerson = _libraryManager.GetItemList(new InternalItemsQuery { diff --git a/MediaBrowser.Providers/Photos/PhotoAlbumMetadataService.cs b/MediaBrowser.Providers/Photos/PhotoAlbumMetadataService.cs index 85b9dafd46..bff933ccfa 100644 --- a/MediaBrowser.Providers/Photos/PhotoAlbumMetadataService.cs +++ b/MediaBrowser.Providers/Photos/PhotoAlbumMetadataService.cs @@ -14,7 +14,7 @@ namespace MediaBrowser.Providers.Photos { class PhotoAlbumMetadataService : MetadataService<PhotoAlbum, ItemLookupInfo> { - protected override void MergeData(MetadataResult<PhotoAlbum> source, MetadataResult<PhotoAlbum> target, List<MetadataFields> lockedFields, bool replaceData, bool mergeMetadataSettings) + protected override void MergeData(MetadataResult<PhotoAlbum> source, MetadataResult<PhotoAlbum> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings) { ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings); } diff --git a/MediaBrowser.Providers/Photos/PhotoMetadataService.cs b/MediaBrowser.Providers/Photos/PhotoMetadataService.cs index 909d359b99..d7f4982e4b 100644 --- a/MediaBrowser.Providers/Photos/PhotoMetadataService.cs +++ b/MediaBrowser.Providers/Photos/PhotoMetadataService.cs @@ -12,7 +12,7 @@ namespace MediaBrowser.Providers.Photos { class PhotoMetadataService : MetadataService<Photo, ItemLookupInfo> { - protected override void MergeData(MetadataResult<Photo> source, MetadataResult<Photo> target, List<MetadataFields> lockedFields, bool replaceData, bool mergeMetadataSettings) + protected override void MergeData(MetadataResult<Photo> source, MetadataResult<Photo> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings) { ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings); } diff --git a/MediaBrowser.Providers/Playlists/PlaylistMetadataService.cs b/MediaBrowser.Providers/Playlists/PlaylistMetadataService.cs index c4ea106fb4..dccef3a09a 100644 --- a/MediaBrowser.Providers/Playlists/PlaylistMetadataService.cs +++ b/MediaBrowser.Providers/Playlists/PlaylistMetadataService.cs @@ -15,7 +15,7 @@ namespace MediaBrowser.Providers.Playlists { class PlaylistMetadataService : MetadataService<Playlist, ItemLookupInfo> { - protected override void MergeData(MetadataResult<Playlist> source, MetadataResult<Playlist> target, List<MetadataFields> lockedFields, bool replaceData, bool mergeMetadataSettings) + protected override void MergeData(MetadataResult<Playlist> source, MetadataResult<Playlist> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings) { ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings); diff --git a/MediaBrowser.Providers/Studios/StudioMetadataService.cs b/MediaBrowser.Providers/Studios/StudioMetadataService.cs index ef5ced3e2b..23953b0d3e 100644 --- a/MediaBrowser.Providers/Studios/StudioMetadataService.cs +++ b/MediaBrowser.Providers/Studios/StudioMetadataService.cs @@ -12,7 +12,7 @@ namespace MediaBrowser.Providers.Studios { public class StudioMetadataService : MetadataService<Studio, ItemLookupInfo> { - protected override void MergeData(MetadataResult<Studio> source, MetadataResult<Studio> target, List<MetadataFields> lockedFields, bool replaceData, bool mergeMetadataSettings) + protected override void MergeData(MetadataResult<Studio> source, MetadataResult<Studio> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings) { ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings); } diff --git a/MediaBrowser.Providers/Studios/StudiosImageProvider.cs b/MediaBrowser.Providers/Studios/StudiosImageProvider.cs index 8579bd16b9..f63615430f 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<ImageType> GetSupportedImages(IHasImages item) + public IEnumerable<ImageType> GetSupportedImages(IHasMetadata item) { return new List<ImageType> { @@ -51,12 +51,12 @@ namespace MediaBrowser.Providers.Studios }; } - public Task<IEnumerable<RemoteImageInfo>> GetImages(IHasImages item, CancellationToken cancellationToken) + public Task<IEnumerable<RemoteImageInfo>> GetImages(IHasMetadata item, CancellationToken cancellationToken) { return GetImages(item, true, true, cancellationToken); } - private async Task<IEnumerable<RemoteImageInfo>> GetImages(IHasImages item, bool posters, bool thumbs, CancellationToken cancellationToken) + private async Task<IEnumerable<RemoteImageInfo>> GetImages(IHasMetadata item, bool posters, bool thumbs, CancellationToken cancellationToken) { var list = new List<RemoteImageInfo>(); @@ -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/Subtitles/SubtitleManager.cs b/MediaBrowser.Providers/Subtitles/SubtitleManager.cs index f7071f519e..fce95364ef 100644 --- a/MediaBrowser.Providers/Subtitles/SubtitleManager.cs +++ b/MediaBrowser.Providers/Subtitles/SubtitleManager.cs @@ -295,8 +295,7 @@ namespace MediaBrowser.Providers.Subtitles } var providers = _subtitleProviders - .Where(i => i.SupportedMediaTypes.Contains(mediaType)) - .ToList(); + .Where(i => i.SupportedMediaTypes.Contains(mediaType)); return providers.Select(i => new SubtitleProviderInfo { diff --git a/MediaBrowser.Providers/TV/EpisodeMetadataService.cs b/MediaBrowser.Providers/TV/EpisodeMetadataService.cs index 8adb6d4d24..29533a46be 100644 --- a/MediaBrowser.Providers/TV/EpisodeMetadataService.cs +++ b/MediaBrowser.Providers/TV/EpisodeMetadataService.cs @@ -58,7 +58,7 @@ namespace MediaBrowser.Providers.TV return updateType; } - protected override void MergeData(MetadataResult<Episode> source, MetadataResult<Episode> target, List<MetadataFields> lockedFields, bool replaceData, bool mergeMetadataSettings) + protected override void MergeData(MetadataResult<Episode> source, MetadataResult<Episode> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings) { ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings); diff --git a/MediaBrowser.Providers/TV/FanArt/FanArtSeasonProvider.cs b/MediaBrowser.Providers/TV/FanArt/FanArtSeasonProvider.cs index b9f010bb64..002c98e957 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<ImageType> GetSupportedImages(IHasImages item) + public IEnumerable<ImageType> GetSupportedImages(IHasMetadata item) { return new List<ImageType> { @@ -66,7 +66,7 @@ namespace MediaBrowser.Providers.TV }; } - public async Task<IEnumerable<RemoteImageInfo>> GetImages(IHasImages item, CancellationToken cancellationToken) + public async Task<IEnumerable<RemoteImageInfo>> GetImages(IHasMetadata item, CancellationToken cancellationToken) { var list = new List<RemoteImageInfo>(); diff --git a/MediaBrowser.Providers/TV/FanArt/FanartSeriesProvider.cs b/MediaBrowser.Providers/TV/FanArt/FanartSeriesProvider.cs index 644e9cbb53..583e5900de 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<ImageType> GetSupportedImages(IHasImages item) + public IEnumerable<ImageType> GetSupportedImages(IHasMetadata item) { return new List<ImageType> { @@ -77,7 +77,7 @@ namespace MediaBrowser.Providers.TV }; } - public async Task<IEnumerable<RemoteImageInfo>> GetImages(IHasImages item, CancellationToken cancellationToken) + public async Task<IEnumerable<RemoteImageInfo>> GetImages(IHasMetadata item, CancellationToken cancellationToken) { var list = new List<RemoteImageInfo>(); diff --git a/MediaBrowser.Providers/TV/SeasonMetadataService.cs b/MediaBrowser.Providers/TV/SeasonMetadataService.cs index 1b4e3f44fd..c10b0ef9db 100644 --- a/MediaBrowser.Providers/TV/SeasonMetadataService.cs +++ b/MediaBrowser.Providers/TV/SeasonMetadataService.cs @@ -61,7 +61,7 @@ namespace MediaBrowser.Providers.TV return updateType; } - protected override void MergeData(MetadataResult<Season> source, MetadataResult<Season> target, List<MetadataFields> lockedFields, bool replaceData, bool mergeMetadataSettings) + protected override void MergeData(MetadataResult<Season> source, MetadataResult<Season> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings) { ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings); } diff --git a/MediaBrowser.Providers/TV/SeriesMetadataService.cs b/MediaBrowser.Providers/TV/SeriesMetadataService.cs index 7559a15de3..cfea0c3157 100644 --- a/MediaBrowser.Providers/TV/SeriesMetadataService.cs +++ b/MediaBrowser.Providers/TV/SeriesMetadataService.cs @@ -57,7 +57,7 @@ namespace MediaBrowser.Providers.TV return base.IsFullLocalMetadata(item); } - protected override void MergeData(MetadataResult<Series> source, MetadataResult<Series> target, List<MetadataFields> lockedFields, bool replaceData, bool mergeMetadataSettings) + protected override void MergeData(MetadataResult<Series> source, MetadataResult<Series> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings) { ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings); diff --git a/MediaBrowser.Providers/TV/TheMovieDb/MovieDbEpisodeImageProvider.cs b/MediaBrowser.Providers/TV/TheMovieDb/MovieDbEpisodeImageProvider.cs index 854f9f06b8..728bbc505a 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<ImageType> GetSupportedImages(IHasImages item) + public IEnumerable<ImageType> GetSupportedImages(IHasMetadata item) { return new List<ImageType> { @@ -37,7 +37,7 @@ namespace MediaBrowser.Providers.TV }; } - public async Task<IEnumerable<RemoteImageInfo>> GetImages(IHasImages item, CancellationToken cancellationToken) + public async Task<IEnumerable<RemoteImageInfo>> GetImages(IHasMetadata item, CancellationToken cancellationToken) { var episode = (Controller.Entities.TV.Episode)item; var series = episode.Series; @@ -104,8 +104,7 @@ namespace MediaBrowser.Providers.TV return 0; }) .ThenByDescending(i => i.CommunityRating ?? 0) - .ThenByDescending(i => i.VoteCount ?? 0) - .ToList(); + .ThenByDescending(i => i.VoteCount ?? 0); } @@ -125,7 +124,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 c746e04880..f05f7bb309 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<ImageType> GetSupportedImages(IHasImages item) + public IEnumerable<ImageType> GetSupportedImages(IHasMetadata item) { return new List<ImageType> { @@ -54,7 +54,7 @@ namespace MediaBrowser.Providers.TV }; } - public async Task<IEnumerable<RemoteImageInfo>> GetImages(IHasImages item, CancellationToken cancellationToken) + public async Task<IEnumerable<RemoteImageInfo>> GetImages(IHasMetadata item, CancellationToken cancellationToken) { var list = new List<RemoteImageInfo>(); @@ -118,8 +118,7 @@ namespace MediaBrowser.Providers.TV return 0; }) .ThenByDescending(i => i.CommunityRating ?? 0) - .ThenByDescending(i => i.VoteCount ?? 0) - .ToList(); + .ThenByDescending(i => i.VoteCount ?? 0); } /// <summary> @@ -138,8 +137,7 @@ namespace MediaBrowser.Providers.TV private IEnumerable<MovieDbSeriesProvider.Backdrop> GetBackdrops(MovieDbSeriesProvider.Images images) { var eligibleBackdrops = images.backdrops == null ? new List<MovieDbSeriesProvider.Backdrop>() : - images.backdrops - .ToList(); + images.backdrops; return eligibleBackdrops.OrderByDescending(i => i.vote_average) .ThenByDescending(i => i.vote_count); diff --git a/MediaBrowser.Providers/TV/TheMovieDb/MovieDbSeriesProvider.cs b/MediaBrowser.Providers/TV/TheMovieDb/MovieDbSeriesProvider.cs index 0b5708b568..4de1712d20 100644 --- a/MediaBrowser.Providers/TV/TheMovieDb/MovieDbSeriesProvider.cs +++ b/MediaBrowser.Providers/TV/TheMovieDb/MovieDbSeriesProvider.cs @@ -21,6 +21,7 @@ using System.Threading.Tasks; using MediaBrowser.Controller.IO; using MediaBrowser.Model.IO; using MediaBrowser.Model.Globalization; +using MediaBrowser.Model.Extensions; namespace MediaBrowser.Providers.TV { @@ -231,7 +232,7 @@ namespace MediaBrowser.Providers.TV if (seriesInfo.networks != null) { - series.Studios = seriesInfo.networks.Select(i => i.name).ToList(); + series.Studios = seriesInfo.networks.Select(i => i.name).ToArray(seriesInfo.networks.Count); } if (seriesInfo.genres != null) diff --git a/MediaBrowser.Providers/TV/TheTVDB/TvdbEpisodeImageProvider.cs b/MediaBrowser.Providers/TV/TheTVDB/TvdbEpisodeImageProvider.cs index 48e50c2e14..7b6bcc4c7c 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<ImageType> GetSupportedImages(IHasImages item) + public IEnumerable<ImageType> GetSupportedImages(IHasMetadata item) { return new List<ImageType> { @@ -48,7 +48,7 @@ namespace MediaBrowser.Providers.TV }; } - public Task<IEnumerable<RemoteImageInfo>> GetImages(IHasImages item, CancellationToken cancellationToken) + public Task<IEnumerable<RemoteImageInfo>> GetImages(IHasMetadata item, CancellationToken cancellationToken) { var episode = (Episode)item; var series = episode.Series; diff --git a/MediaBrowser.Providers/TV/TheTVDB/TvdbPrescanTask.cs b/MediaBrowser.Providers/TV/TheTVDB/TvdbPrescanTask.cs index 9a457ba948..30d2691e3b 100644 --- a/MediaBrowser.Providers/TV/TheTVDB/TvdbPrescanTask.cs +++ b/MediaBrowser.Providers/TV/TheTVDB/TvdbPrescanTask.cs @@ -320,9 +320,8 @@ namespace MediaBrowser.Providers.TV /// <param name="progress">The progress.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns>Task.</returns> - private async Task UpdateSeries(IEnumerable<string> seriesIds, string seriesDataPath, long? lastTvDbUpdateTime, IProgress<double> progress, CancellationToken cancellationToken) + private async Task UpdateSeries(List<string> seriesIds, string seriesDataPath, long? lastTvDbUpdateTime, IProgress<double> progress, CancellationToken cancellationToken) { - var list = seriesIds.ToList(); var numComplete = 0; var seriesList = _libraryManager.GetItemList(new InternalItemsQuery() @@ -342,7 +341,7 @@ namespace MediaBrowser.Providers.TV .Where(i => !string.IsNullOrEmpty(i.GetProviderId(MetadataProviders.Tvdb))) .ToLookup(i => i.GetProviderId(MetadataProviders.Tvdb)); - foreach (var seriesId in list) + foreach (var seriesId in seriesIds) { // Find the preferred language(s) for the movie in the library var languages = allSeries[seriesId] @@ -371,7 +370,7 @@ namespace MediaBrowser.Providers.TV numComplete++; double percent = numComplete; - percent /= list.Count; + percent /= seriesIds.Count; percent *= 100; progress.Report(percent); diff --git a/MediaBrowser.Providers/TV/TheTVDB/TvdbSeasonImageProvider.cs b/MediaBrowser.Providers/TV/TheTVDB/TvdbSeasonImageProvider.cs index 395d419cfc..22dab1cd7c 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<ImageType> GetSupportedImages(IHasImages item) + public IEnumerable<ImageType> GetSupportedImages(IHasMetadata item) { return new List<ImageType> { @@ -63,7 +63,7 @@ namespace MediaBrowser.Providers.TV }; } - public async Task<IEnumerable<RemoteImageInfo>> GetImages(IHasImages item, CancellationToken cancellationToken) + public async Task<IEnumerable<RemoteImageInfo>> GetImages(IHasMetadata item, CancellationToken cancellationToken) { var season = (Season)item; var series = season.Series; @@ -175,8 +175,7 @@ namespace MediaBrowser.Providers.TV return 0; }) .ThenByDescending(i => i.CommunityRating ?? 0) - .ThenByDescending(i => i.VoteCount ?? 0) - .ToList(); + .ThenByDescending(i => i.VoteCount ?? 0); } private static void AddImage(XmlReader reader, List<RemoteImageInfo> images, int seasonNumber) diff --git a/MediaBrowser.Providers/TV/TheTVDB/TvdbSeriesImageProvider.cs b/MediaBrowser.Providers/TV/TheTVDB/TvdbSeriesImageProvider.cs index d7eea42267..6f3d763e24 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<ImageType> GetSupportedImages(IHasImages item) + public IEnumerable<ImageType> GetSupportedImages(IHasMetadata item) { return new List<ImageType> { @@ -64,7 +64,7 @@ namespace MediaBrowser.Providers.TV }; } - public async Task<IEnumerable<RemoteImageInfo>> GetImages(IHasImages item, CancellationToken cancellationToken) + public async Task<IEnumerable<RemoteImageInfo>> GetImages(IHasMetadata item, CancellationToken cancellationToken) { if (TvdbSeriesProvider.IsValidSeries(item.ProviderIds)) { @@ -169,8 +169,7 @@ namespace MediaBrowser.Providers.TV return 0; }) .ThenByDescending(i => i.CommunityRating ?? 0) - .ThenByDescending(i => i.VoteCount ?? 0) - .ToList(); + .ThenByDescending(i => i.VoteCount ?? 0); } private void AddImage(XmlReader reader, List<RemoteImageInfo> images) diff --git a/MediaBrowser.Providers/TV/TheTVDB/TvdbSeriesProvider.cs b/MediaBrowser.Providers/TV/TheTVDB/TvdbSeriesProvider.cs index 8a10affb90..78556c5a45 100644 --- a/MediaBrowser.Providers/TV/TheTVDB/TvdbSeriesProvider.cs +++ b/MediaBrowser.Providers/TV/TheTVDB/TvdbSeriesProvider.cs @@ -482,7 +482,7 @@ namespace MediaBrowser.Providers.TV /// <returns>Task{System.String}.</returns> private async Task<IEnumerable<RemoteSearchResult>> FindSeries(string name, int? year, string language, CancellationToken cancellationToken) { - var results = (await FindSeriesInternal(name, language, cancellationToken).ConfigureAwait(false)).ToList(); + var results = (await FindSeriesInternal(name, language, cancellationToken).ConfigureAwait(false)); if (results.Count == 0) { @@ -491,7 +491,7 @@ namespace MediaBrowser.Providers.TV if (!string.IsNullOrWhiteSpace(nameWithoutYear) && !string.Equals(nameWithoutYear, name, StringComparison.OrdinalIgnoreCase)) { - results = (await FindSeriesInternal(nameWithoutYear, language, cancellationToken).ConfigureAwait(false)).ToList(); + results = (await FindSeriesInternal(nameWithoutYear, language, cancellationToken).ConfigureAwait(false)); } } @@ -507,7 +507,7 @@ namespace MediaBrowser.Providers.TV }); } - private async Task<IEnumerable<RemoteSearchResult>> FindSeriesInternal(string name, string language, CancellationToken cancellationToken) + private async Task<List<RemoteSearchResult>> FindSeriesInternal(string name, string language, CancellationToken cancellationToken) { var url = string.Format(SeriesSearchUrl, WebUtility.UrlEncode(name), NormalizeLanguage(language)); var searchResults = new List<RemoteSearchResult>(); @@ -1273,12 +1273,7 @@ namespace MediaBrowser.Providers.TV if (vals.Count > 0) { - item.Studios.Clear(); - - foreach (var genre in vals) - { - item.AddStudio(genre); - } + item.SetStudios(vals); } } diff --git a/MediaBrowser.Providers/Users/UserMetadataService.cs b/MediaBrowser.Providers/Users/UserMetadataService.cs index 88df704d6b..694315c180 100644 --- a/MediaBrowser.Providers/Users/UserMetadataService.cs +++ b/MediaBrowser.Providers/Users/UserMetadataService.cs @@ -14,7 +14,7 @@ namespace MediaBrowser.Providers.Users { public class UserMetadataService : MetadataService<User, ItemLookupInfo> { - protected override void MergeData(MetadataResult<User> source, MetadataResult<User> target, List<MetadataFields> lockedFields, bool replaceData, bool mergeMetadataSettings) + protected override void MergeData(MetadataResult<User> source, MetadataResult<User> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings) { ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings); } diff --git a/MediaBrowser.Providers/Videos/VideoMetadataService.cs b/MediaBrowser.Providers/Videos/VideoMetadataService.cs index a07cc5949a..f493eb31f9 100644 --- a/MediaBrowser.Providers/Videos/VideoMetadataService.cs +++ b/MediaBrowser.Providers/Videos/VideoMetadataService.cs @@ -21,7 +21,7 @@ namespace MediaBrowser.Providers.Videos } } - protected override void MergeData(MetadataResult<Video> source, MetadataResult<Video> target, List<MetadataFields> lockedFields, bool replaceData, bool mergeMetadataSettings) + protected override void MergeData(MetadataResult<Video> source, MetadataResult<Video> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings) { ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings); } diff --git a/MediaBrowser.Providers/Years/YearMetadataService.cs b/MediaBrowser.Providers/Years/YearMetadataService.cs index 36c2fd1dd1..7838336562 100644 --- a/MediaBrowser.Providers/Years/YearMetadataService.cs +++ b/MediaBrowser.Providers/Years/YearMetadataService.cs @@ -14,7 +14,7 @@ namespace MediaBrowser.Providers.Years { public class YearMetadataService : MetadataService<Year, ItemLookupInfo> { - protected override void MergeData(MetadataResult<Year> source, MetadataResult<Year> target, List<MetadataFields> lockedFields, bool replaceData, bool mergeMetadataSettings) + protected override void MergeData(MetadataResult<Year> source, MetadataResult<Year> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings) { ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings); } |
