diff options
Diffstat (limited to 'MediaBrowser.Server.Implementations/UserViews')
| -rw-r--r-- | MediaBrowser.Server.Implementations/UserViews/CollectionFolderImageProvider.cs | 114 | ||||
| -rw-r--r-- | MediaBrowser.Server.Implementations/UserViews/DynamicImageProvider.cs | 106 | ||||
| -rw-r--r-- | MediaBrowser.Server.Implementations/UserViews/livetv/1.jpg | bin | 62382 -> 0 bytes | |||
| -rw-r--r-- | MediaBrowser.Server.Implementations/UserViews/livetv/2.jpg | bin | 20550 -> 0 bytes | |||
| -rw-r--r-- | MediaBrowser.Server.Implementations/UserViews/livetv/3.jpg | bin | 27983 -> 0 bytes | |||
| -rw-r--r-- | MediaBrowser.Server.Implementations/UserViews/livetv/4.jpg | bin | 75468 -> 0 bytes | |||
| -rw-r--r-- | MediaBrowser.Server.Implementations/UserViews/livetv/5.jpg | bin | 50933 -> 0 bytes | |||
| -rw-r--r-- | MediaBrowser.Server.Implementations/UserViews/livetv/6.jpg | bin | 15931 -> 0 bytes | |||
| -rw-r--r-- | MediaBrowser.Server.Implementations/UserViews/livetv/7.jpg | bin | 19916 -> 0 bytes | |||
| -rw-r--r-- | MediaBrowser.Server.Implementations/UserViews/livetv/8.jpg | bin | 67721 -> 0 bytes |
10 files changed, 120 insertions, 100 deletions
diff --git a/MediaBrowser.Server.Implementations/UserViews/CollectionFolderImageProvider.cs b/MediaBrowser.Server.Implementations/UserViews/CollectionFolderImageProvider.cs new file mode 100644 index 000000000..7054515b6 --- /dev/null +++ b/MediaBrowser.Server.Implementations/UserViews/CollectionFolderImageProvider.cs @@ -0,0 +1,114 @@ +using MediaBrowser.Common.Configuration; +using MediaBrowser.Common.IO; +using MediaBrowser.Controller.Drawing; +using MediaBrowser.Controller.Entities; +using MediaBrowser.Controller.Entities.Audio; +using MediaBrowser.Controller.Entities.TV; +using MediaBrowser.Controller.Providers; +using MediaBrowser.Model.Entities; +using MediaBrowser.Server.Implementations.Photos; +using MoreLinq; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace MediaBrowser.Server.Implementations.UserViews +{ + public class CollectionFolderImageProvider : BaseDynamicImageProvider<CollectionFolder> + { + public CollectionFolderImageProvider(IFileSystem fileSystem, IProviderManager providerManager, IApplicationPaths applicationPaths, IImageProcessor imageProcessor) : base(fileSystem, providerManager, applicationPaths, imageProcessor) + { + } + + public override IEnumerable<ImageType> GetSupportedImages(IHasImages item) + { + return new List<ImageType> + { + ImageType.Primary + }; + } + + protected override async Task<List<BaseItem>> GetItemsWithImages(IHasImages item) + { + var view = (CollectionFolder)item; + + var recursive = !new[] { CollectionType.Playlists, CollectionType.Channels }.Contains(view.CollectionType ?? string.Empty, StringComparer.OrdinalIgnoreCase); + + var result = await view.GetItems(new InternalItemsQuery + { + CollapseBoxSetItems = false, + Recursive = recursive, + ExcludeItemTypes = new[] { "UserView", "CollectionFolder", "Playlist" } + + }).ConfigureAwait(false); + + var items = result.Items.Select(i => + { + var episode = i as Episode; + if (episode != null) + { + var series = episode.Series; + if (series != null) + { + return series; + } + var episodeSeason = episode.Season; + if (episodeSeason != null) + { + return episodeSeason; + } + + return episode; + } + + var season = i as Season; + if (season != null) + { + var series = season.Series; + if (series != null) + { + return series; + } + + return season; + } + + var audio = i as Audio; + if (audio != null) + { + var album = audio.AlbumEntity; + if (album != null && album.HasImage(ImageType.Primary)) + { + return album; + } + } + + return i; + + }).DistinctBy(i => i.Id); + + return GetFinalItems(items.Where(i => i.HasImage(ImageType.Primary) || i.HasImage(ImageType.Thumb)).ToList(), 8); + } + + public override bool Supports(IHasImages item) + { + return item is CollectionFolder; + } + + protected override async Task<bool> CreateImage(IHasImages item, List<BaseItem> itemsWithImages, string outputPath, ImageType imageType, int imageIndex) + { + if (imageType == ImageType.Primary) + { + if (itemsWithImages.Count == 0) + { + return false; + } + + return await CreateThumbCollage(item, itemsWithImages, outputPath, 960, 540).ConfigureAwait(false); + } + + return await base.CreateImage(item, itemsWithImages, outputPath, imageType, imageIndex).ConfigureAwait(false); + } + } +} diff --git a/MediaBrowser.Server.Implementations/UserViews/DynamicImageProvider.cs b/MediaBrowser.Server.Implementations/UserViews/DynamicImageProvider.cs index 918d07f97..8321ab952 100644 --- a/MediaBrowser.Server.Implementations/UserViews/DynamicImageProvider.cs +++ b/MediaBrowser.Server.Implementations/UserViews/DynamicImageProvider.cs @@ -11,8 +11,6 @@ using MediaBrowser.Server.Implementations.Photos; using MoreLinq; using System; using System.Collections.Generic; -using System.Globalization; -using System.IO; using System.Linq; using System.Threading.Tasks; @@ -49,11 +47,6 @@ namespace MediaBrowser.Server.Implementations.UserViews { var view = (UserView)item; - if (!view.UserId.HasValue) - { - return new List<BaseItem>(); - } - if (string.Equals(view.ViewType, CollectionType.LiveTv, StringComparison.OrdinalIgnoreCase)) { return new List<BaseItem>(); @@ -66,7 +59,6 @@ namespace MediaBrowser.Server.Implementations.UserViews { var userItemsResult = await view.GetItems(new InternalItemsQuery { - User = _userManager.GetUserById(view.UserId.Value), CollapseBoxSetItems = false }); @@ -78,7 +70,7 @@ namespace MediaBrowser.Server.Implementations.UserViews var result = await view.GetItems(new InternalItemsQuery { - User = _userManager.GetUserById(view.UserId.Value), + User = (view.UserId.HasValue ? _userManager.GetUserById(view.UserId.Value) : null), CollapseBoxSetItems = false, Recursive = recursive, ExcludeItemTypes = new[] { "UserView", "CollectionFolder", "Playlist" } @@ -141,51 +133,9 @@ namespace MediaBrowser.Server.Implementations.UserViews public override bool Supports(IHasImages item) { var view = item as UserView; - - if (view != null && view.UserId.HasValue) + if (view != null) { - var supported = new[] - { - SpecialFolder.TvFavoriteEpisodes, - SpecialFolder.TvFavoriteSeries, - SpecialFolder.TvGenres, - SpecialFolder.TvGenre, - SpecialFolder.TvLatest, - SpecialFolder.TvNextUp, - SpecialFolder.TvResume, - SpecialFolder.TvShowSeries, - - SpecialFolder.MovieCollections, - SpecialFolder.MovieFavorites, - SpecialFolder.MovieGenres, - SpecialFolder.MovieGenre, - SpecialFolder.MovieLatest, - SpecialFolder.MovieMovies, - SpecialFolder.MovieResume, - - SpecialFolder.GameFavorites, - SpecialFolder.GameGenres, - SpecialFolder.GameGenre, - SpecialFolder.GameSystems, - SpecialFolder.LatestGames, - SpecialFolder.RecentlyPlayedGames, - - SpecialFolder.MusicArtists, - SpecialFolder.MusicAlbumArtists, - SpecialFolder.MusicAlbums, - SpecialFolder.MusicGenres, - SpecialFolder.MusicGenre, - SpecialFolder.MusicLatest, - SpecialFolder.MusicPlaylists, - SpecialFolder.MusicSongs, - SpecialFolder.MusicFavorites, - SpecialFolder.MusicFavoriteArtists, - SpecialFolder.MusicFavoriteAlbums, - SpecialFolder.MusicFavoriteSongs - }; - - return (IsUsingCollectionStrip(view) || supported.Contains(view.ViewType, StringComparer.OrdinalIgnoreCase)) && - _userManager.GetUserById(view.UserId.Value) != null; + return (IsUsingCollectionStrip(view)); } return false; @@ -197,17 +147,7 @@ namespace MediaBrowser.Server.Implementations.UserViews { CollectionType.Movies, CollectionType.TvShows, - CollectionType.Games, - CollectionType.Music, - CollectionType.BoxSets, - CollectionType.Playlists, - CollectionType.Channels, - CollectionType.LiveTv, - CollectionType.Books, - CollectionType.Photos, - CollectionType.HomeVideos, - CollectionType.MusicVideos, - string.Empty + CollectionType.Music }; return collectionStripViewTypes.Contains(view.ViewType ?? string.Empty); @@ -218,49 +158,15 @@ namespace MediaBrowser.Server.Implementations.UserViews var view = (UserView)item; if (imageType == ImageType.Primary && IsUsingCollectionStrip(view)) { - if (itemsWithImages.Count == 0 && !string.Equals(view.ViewType, CollectionType.LiveTv, StringComparison.OrdinalIgnoreCase)) + if (itemsWithImages.Count == 0) { return false; } - return await CreateThumbCollage(item, itemsWithImages, outputPath, 960, 540, false, item.Name).ConfigureAwait(false); + return await CreateThumbCollage(item, itemsWithImages, outputPath, 960, 540).ConfigureAwait(false); } return await base.CreateImage(item, itemsWithImages, outputPath, imageType, imageIndex).ConfigureAwait(false); } - - protected override IEnumerable<String> GetStripCollageImagePaths(IHasImages primaryItem, IEnumerable<BaseItem> items) - { - var userView = primaryItem as UserView; - - if (userView != null && string.Equals(userView.ViewType, CollectionType.LiveTv, StringComparison.OrdinalIgnoreCase)) - { - var list = new List<string>(); - for (int i = 1; i <= 8; i++) - { - list.Add(ExtractLiveTvResource(i.ToString(CultureInfo.InvariantCulture), ApplicationPaths)); - } - return list; - } - - return base.GetStripCollageImagePaths(primaryItem, items); - } - - private string ExtractLiveTvResource(string name, IApplicationPaths paths) - { - var namespacePath = GetType().Namespace + ".livetv." + name + ".jpg"; - var tempPath = Path.Combine(paths.TempDirectory, Guid.NewGuid().ToString("N") + ".jpg"); - Directory.CreateDirectory(Path.GetDirectoryName(tempPath)); - - using (var stream = GetType().Assembly.GetManifestResourceStream(namespacePath)) - { - using (var fileStream = new FileStream(tempPath, FileMode.Create, FileAccess.Write, FileShare.Read)) - { - stream.CopyTo(fileStream); - } - } - - return tempPath; - } } } diff --git a/MediaBrowser.Server.Implementations/UserViews/livetv/1.jpg b/MediaBrowser.Server.Implementations/UserViews/livetv/1.jpg Binary files differdeleted file mode 100644 index 2594b68a4..000000000 --- a/MediaBrowser.Server.Implementations/UserViews/livetv/1.jpg +++ /dev/null diff --git a/MediaBrowser.Server.Implementations/UserViews/livetv/2.jpg b/MediaBrowser.Server.Implementations/UserViews/livetv/2.jpg Binary files differdeleted file mode 100644 index e5c87b96b..000000000 --- a/MediaBrowser.Server.Implementations/UserViews/livetv/2.jpg +++ /dev/null diff --git a/MediaBrowser.Server.Implementations/UserViews/livetv/3.jpg b/MediaBrowser.Server.Implementations/UserViews/livetv/3.jpg Binary files differdeleted file mode 100644 index c19f7e612..000000000 --- a/MediaBrowser.Server.Implementations/UserViews/livetv/3.jpg +++ /dev/null diff --git a/MediaBrowser.Server.Implementations/UserViews/livetv/4.jpg b/MediaBrowser.Server.Implementations/UserViews/livetv/4.jpg Binary files differdeleted file mode 100644 index 93ee18044..000000000 --- a/MediaBrowser.Server.Implementations/UserViews/livetv/4.jpg +++ /dev/null diff --git a/MediaBrowser.Server.Implementations/UserViews/livetv/5.jpg b/MediaBrowser.Server.Implementations/UserViews/livetv/5.jpg Binary files differdeleted file mode 100644 index 4c2cd580d..000000000 --- a/MediaBrowser.Server.Implementations/UserViews/livetv/5.jpg +++ /dev/null diff --git a/MediaBrowser.Server.Implementations/UserViews/livetv/6.jpg b/MediaBrowser.Server.Implementations/UserViews/livetv/6.jpg Binary files differdeleted file mode 100644 index 6f496b6ac..000000000 --- a/MediaBrowser.Server.Implementations/UserViews/livetv/6.jpg +++ /dev/null diff --git a/MediaBrowser.Server.Implementations/UserViews/livetv/7.jpg b/MediaBrowser.Server.Implementations/UserViews/livetv/7.jpg Binary files differdeleted file mode 100644 index e7dba2760..000000000 --- a/MediaBrowser.Server.Implementations/UserViews/livetv/7.jpg +++ /dev/null diff --git a/MediaBrowser.Server.Implementations/UserViews/livetv/8.jpg b/MediaBrowser.Server.Implementations/UserViews/livetv/8.jpg Binary files differdeleted file mode 100644 index c69ba908c..000000000 --- a/MediaBrowser.Server.Implementations/UserViews/livetv/8.jpg +++ /dev/null |
