diff options
Diffstat (limited to 'MediaBrowser.Controller/Entities')
21 files changed, 156 insertions, 71 deletions
diff --git a/MediaBrowser.Controller/Entities/Audio/Audio.cs b/MediaBrowser.Controller/Entities/Audio/Audio.cs index 4cc6a7c7e..59b5a3869 100644 --- a/MediaBrowser.Controller/Entities/Audio/Audio.cs +++ b/MediaBrowser.Controller/Entities/Audio/Audio.cs @@ -46,6 +46,11 @@ namespace MediaBrowser.Controller.Entities.Audio AlbumArtists = new List<string>(); } + public override double? GetDefaultPrimaryImageAspectRatio() + { + return 1; + } + [IgnoreDataMember] public override bool SupportsPlayedStatus { diff --git a/MediaBrowser.Controller/Entities/Audio/AudioPodcast.cs b/MediaBrowser.Controller/Entities/Audio/AudioPodcast.cs index 8c820d367..cdb6f3f61 100644 --- a/MediaBrowser.Controller/Entities/Audio/AudioPodcast.cs +++ b/MediaBrowser.Controller/Entities/Audio/AudioPodcast.cs @@ -12,5 +12,10 @@ namespace MediaBrowser.Controller.Entities.Audio return true; } } + + public override double? GetDefaultPrimaryImageAspectRatio() + { + return null; + } } } diff --git a/MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs b/MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs index ffdbba6f2..6ad38033a 100644 --- a/MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs +++ b/MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs @@ -119,6 +119,11 @@ namespace MediaBrowser.Controller.Entities.Audio return Tracks; } + public override double? GetDefaultPrimaryImageAspectRatio() + { + return 1; + } + public override List<string> GetUserDataKeys() { var list = base.GetUserDataKeys(); diff --git a/MediaBrowser.Controller/Entities/Audio/MusicArtist.cs b/MediaBrowser.Controller/Entities/Audio/MusicArtist.cs index 37631bbe8..20b2529c0 100644 --- a/MediaBrowser.Controller/Entities/Audio/MusicArtist.cs +++ b/MediaBrowser.Controller/Entities/Audio/MusicArtist.cs @@ -68,6 +68,11 @@ namespace MediaBrowser.Controller.Entities.Audio } } + public override double? GetDefaultPrimaryImageAspectRatio() + { + return 1; + } + public override bool CanDelete() { return !IsAccessedByName; diff --git a/MediaBrowser.Controller/Entities/Audio/MusicGenre.cs b/MediaBrowser.Controller/Entities/Audio/MusicGenre.cs index bbe1a54a4..74679b474 100644 --- a/MediaBrowser.Controller/Entities/Audio/MusicGenre.cs +++ b/MediaBrowser.Controller/Entities/Audio/MusicGenre.cs @@ -63,6 +63,11 @@ namespace MediaBrowser.Controller.Entities.Audio } } + public override double? GetDefaultPrimaryImageAspectRatio() + { + return 1; + } + public override bool CanDelete() { return false; diff --git a/MediaBrowser.Controller/Entities/AudioBook.cs b/MediaBrowser.Controller/Entities/AudioBook.cs index c15cae8b1..8b1c338f1 100644 --- a/MediaBrowser.Controller/Entities/AudioBook.cs +++ b/MediaBrowser.Controller/Entities/AudioBook.cs @@ -47,6 +47,11 @@ namespace MediaBrowser.Controller.Entities return SeriesPresentationUniqueKey; } + public override double? GetDefaultPrimaryImageAspectRatio() + { + return null; + } + [IgnoreDataMember] public override bool EnableRefreshOnDateModifiedChange { diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs index cab7588f0..52e150aa4 100644 --- a/MediaBrowser.Controller/Entities/BaseItem.cs +++ b/MediaBrowser.Controller/Entities/BaseItem.cs @@ -156,7 +156,7 @@ namespace MediaBrowser.Controller.Entities { if (SupportsIsInMixedFolderDetection) { - + } return IsInMixedFolder; @@ -1260,6 +1260,11 @@ namespace MediaBrowser.Controller.Entities get { return null; } } + public virtual double? GetDefaultPrimaryImageAspectRatio() + { + return null; + } + public virtual string CreatePresentationUniqueKey() { return Id.ToString("N"); @@ -2073,9 +2078,31 @@ namespace MediaBrowser.Controller.Entities /// Gets the file system path to delete when the item is to be deleted /// </summary> /// <returns></returns> - public virtual IEnumerable<string> GetDeletePaths() + public virtual IEnumerable<FileSystemMetadata> GetDeletePaths() { - return new[] { Path }; + return new[] { + new FileSystemMetadata + { + FullName = Path, + IsDirectory = IsFolder + } + }.Concat(GetLocalMetadataFilesToDelete()); + } + + protected List<FileSystemMetadata> GetLocalMetadataFilesToDelete() + { + if (IsFolder || !IsInMixedFolder) + { + return new List<FileSystemMetadata>(); + } + + var filename = System.IO.Path.GetFileNameWithoutExtension(Path); + var extensions = new[] { ".nfo", ".xml", ".srt" }.ToList(); + extensions.AddRange(SupportedImageExtensionsList); + + return FileSystem.GetFiles(System.IO.Path.GetDirectoryName(Path)) + .Where(i => extensions.Contains(i.Extension, StringComparer.OrdinalIgnoreCase) && System.IO.Path.GetFileNameWithoutExtension(i.FullName).StartsWith(filename, StringComparison.OrdinalIgnoreCase)) + .ToList(); } public bool AllowsMultipleImages(ImageType type) diff --git a/MediaBrowser.Controller/Entities/Game.cs b/MediaBrowser.Controller/Entities/Game.cs index 8bfb8be99..d19552c07 100644 --- a/MediaBrowser.Controller/Entities/Game.cs +++ b/MediaBrowser.Controller/Entities/Game.cs @@ -4,6 +4,7 @@ using MediaBrowser.Model.Entities; using System; using System.Collections.Generic; using System.Linq; +using MediaBrowser.Model.IO; using MediaBrowser.Model.Serialization; namespace MediaBrowser.Controller.Entities @@ -97,11 +98,17 @@ namespace MediaBrowser.Controller.Entities return list; } - public override IEnumerable<string> GetDeletePaths() + public override IEnumerable<FileSystemMetadata> GetDeletePaths() { if (!DetectIsInMixedFolder()) { - return new[] { System.IO.Path.GetDirectoryName(Path) }; + return new[] { + new FileSystemMetadata + { + FullName = System.IO.Path.GetDirectoryName(Path), + IsDirectory = true + } + }; } return base.GetDeletePaths(); diff --git a/MediaBrowser.Controller/Entities/IHasImages.cs b/MediaBrowser.Controller/Entities/IHasImages.cs index 888e2080d..4c033dc00 100644 --- a/MediaBrowser.Controller/Entities/IHasImages.cs +++ b/MediaBrowser.Controller/Entities/IHasImages.cs @@ -204,6 +204,8 @@ namespace MediaBrowser.Controller.Entities /// <param name="image">The image.</param> /// <param name="index">The index.</param> void SetImage(ItemImageInfo image, int index); + + double? GetDefaultPrimaryImageAspectRatio(); } public static class HasImagesExtensions diff --git a/MediaBrowser.Controller/Entities/InternalItemsQuery.cs b/MediaBrowser.Controller/Entities/InternalItemsQuery.cs index f03531270..ea4d60a44 100644 --- a/MediaBrowser.Controller/Entities/InternalItemsQuery.cs +++ b/MediaBrowser.Controller/Entities/InternalItemsQuery.cs @@ -141,7 +141,7 @@ namespace MediaBrowser.Controller.Entities public string ExternalSeriesId { get; set; } public string ExternalId { get; set; } - public string[] AlbumNames { get; set; } + public string[] AlbumIds { get; set; } public string[] ArtistIds { get; set; } public string[] ExcludeArtistIds { get; set; } public string AncestorWithPresentationUniqueKey { get; set; } @@ -202,7 +202,7 @@ namespace MediaBrowser.Controller.Entities EnableTotalRecordCount = true; DtoOptions = new DtoOptions(); - AlbumNames = new string[] { }; + AlbumIds = new string[] { }; ArtistIds = new string[] { }; ExcludeArtistIds = new string[] { }; ExcludeProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); diff --git a/MediaBrowser.Controller/Entities/Movies/BoxSet.cs b/MediaBrowser.Controller/Entities/Movies/BoxSet.cs index 3e6c88a85..030831717 100644 --- a/MediaBrowser.Controller/Entities/Movies/BoxSet.cs +++ b/MediaBrowser.Controller/Entities/Movies/BoxSet.cs @@ -57,6 +57,14 @@ namespace MediaBrowser.Controller.Entities.Movies return config.BlockUnratedItems.Contains(UnratedItem.Movie); } + public override double? GetDefaultPrimaryImageAspectRatio() + { + double value = 2; + value /= 3; + + return value; + } + public override UnratedItem GetBlockUnratedType() { return UnratedItem.Movie; diff --git a/MediaBrowser.Controller/Entities/Movies/Movie.cs b/MediaBrowser.Controller/Entities/Movies/Movie.cs index ec04879b5..de465b2f5 100644 --- a/MediaBrowser.Controller/Entities/Movies/Movie.cs +++ b/MediaBrowser.Controller/Entities/Movies/Movie.cs @@ -70,6 +70,14 @@ namespace MediaBrowser.Controller.Entities.Movies set { TmdbCollectionName = value; } } + public override double? GetDefaultPrimaryImageAspectRatio() + { + double value = 2; + value /= 3; + + return value; + } + [IgnoreDataMember] protected override bool SupportsIsInMixedFolderDetection { diff --git a/MediaBrowser.Controller/Entities/Person.cs b/MediaBrowser.Controller/Entities/Person.cs index 0c36442af..ee1aea938 100644 --- a/MediaBrowser.Controller/Entities/Person.cs +++ b/MediaBrowser.Controller/Entities/Person.cs @@ -38,6 +38,14 @@ namespace MediaBrowser.Controller.Entities return GetItemLookupInfo<PersonLookupInfo>(); } + public override double? GetDefaultPrimaryImageAspectRatio() + { + double value = 2; + value /= 3; + + return value; + } + public IEnumerable<BaseItem> GetTaggedItems(InternalItemsQuery query) { query.PersonIds = new[] { Id.ToString("N") }; diff --git a/MediaBrowser.Controller/Entities/Studio.cs b/MediaBrowser.Controller/Entities/Studio.cs index dbd9d1cef..b8ad691a9 100644 --- a/MediaBrowser.Controller/Entities/Studio.cs +++ b/MediaBrowser.Controller/Entities/Studio.cs @@ -57,6 +57,14 @@ namespace MediaBrowser.Controller.Entities } } + public override double? GetDefaultPrimaryImageAspectRatio() + { + double value = 16; + value /= 9; + + return value; + } + public override bool CanDelete() { return false; diff --git a/MediaBrowser.Controller/Entities/TV/Episode.cs b/MediaBrowser.Controller/Entities/TV/Episode.cs index e6ebcb7fd..31bf8d28b 100644 --- a/MediaBrowser.Controller/Entities/TV/Episode.cs +++ b/MediaBrowser.Controller/Entities/TV/Episode.cs @@ -5,6 +5,7 @@ using System; using System.Collections.Generic; using System.Globalization; using System.Linq; +using MediaBrowser.Model.IO; using MediaBrowser.Model.Serialization; namespace MediaBrowser.Controller.Entities.TV @@ -114,6 +115,14 @@ namespace MediaBrowser.Controller.Entities.TV { return false; } + }
+
+ public override double? GetDefaultPrimaryImageAspectRatio()
+ {
+ double value = 16;
+ value /= 9;
+
+ return value;
} public override List<string> GetUserDataKeys() @@ -311,10 +320,16 @@ namespace MediaBrowser.Controller.Entities.TV return list; } - public override IEnumerable<string> GetDeletePaths() - { - return new[] { Path }; - } + public override IEnumerable<FileSystemMetadata> GetDeletePaths()
+ {
+ return new[] {
+ new FileSystemMetadata
+ {
+ FullName = Path,
+ IsDirectory = IsFolder
+ }
+ }.Concat(GetLocalMetadataFilesToDelete());
+ }
public override UnratedItem GetBlockUnratedType() { @@ -330,7 +345,6 @@ namespace MediaBrowser.Controller.Entities.TV if (series != null) { id.SeriesProviderIds = series.ProviderIds; - id.AnimeSeriesIndex = series.AnimeSeriesIndex; } id.IsMissingEpisode = IsMissingEpisode; diff --git a/MediaBrowser.Controller/Entities/TV/Season.cs b/MediaBrowser.Controller/Entities/TV/Season.cs index f2a6586e2..be268782d 100644 --- a/MediaBrowser.Controller/Entities/TV/Season.cs +++ b/MediaBrowser.Controller/Entities/TV/Season.cs @@ -54,6 +54,14 @@ namespace MediaBrowser.Controller.Entities.TV [IgnoreDataMember] public string SeriesSortName { get; set; } + public override double? GetDefaultPrimaryImageAspectRatio() + { + double value = 2; + value /= 3; + + return value; + } + public string FindSeriesSortName() { var series = Series; @@ -243,7 +251,6 @@ namespace MediaBrowser.Controller.Entities.TV if (series != null) { id.SeriesProviderIds = series.ProviderIds; - id.AnimeSeriesIndex = series.AnimeSeriesIndex; } return id; diff --git a/MediaBrowser.Controller/Entities/TV/Series.cs b/MediaBrowser.Controller/Entities/TV/Series.cs index eea11b167..7641c9523 100644 --- a/MediaBrowser.Controller/Entities/TV/Series.cs +++ b/MediaBrowser.Controller/Entities/TV/Series.cs @@ -19,8 +19,6 @@ namespace MediaBrowser.Controller.Entities.TV /// </summary> public class Series : Folder, IHasTrailers, IHasDisplayOrder, IHasLookupInfo<SeriesInfo>, IMetadataContainer { - public int? AnimeSeriesIndex { get; set; } - public Series() { AirDays = new List<DayOfWeek>(); @@ -93,6 +91,14 @@ namespace MediaBrowser.Controller.Entities.TV } } + public override double? GetDefaultPrimaryImageAspectRatio() + { + double value = 2; + value /= 3; + + return value; + } + public override string CreatePresentationUniqueKey() { if (LibraryManager.GetLibraryOptions(this).EnableAutomaticSeriesGrouping) @@ -546,8 +552,6 @@ namespace MediaBrowser.Controller.Entities.TV { var info = GetItemLookupInfo<SeriesInfo>(); - info.AnimeSeriesIndex = AnimeSeriesIndex; - return info; } diff --git a/MediaBrowser.Controller/Entities/Trailer.cs b/MediaBrowser.Controller/Entities/Trailer.cs index dd6d8a999..b4a142a8e 100644 --- a/MediaBrowser.Controller/Entities/Trailer.cs +++ b/MediaBrowser.Controller/Entities/Trailer.cs @@ -29,6 +29,14 @@ namespace MediaBrowser.Controller.Entities get { return TrailerTypes.Contains(TrailerType.LocalTrailer); } } + public override double? GetDefaultPrimaryImageAspectRatio() + { + double value = 2; + value /= 3; + + return value; + } + public override UnratedItem GetBlockUnratedType() { return UnratedItem.Trailer; diff --git a/MediaBrowser.Controller/Entities/UserView.cs b/MediaBrowser.Controller/Entities/UserView.cs index 5ac5843d7..fb00937fb 100644 --- a/MediaBrowser.Controller/Entities/UserView.cs +++ b/MediaBrowser.Controller/Entities/UserView.cs @@ -20,11 +20,6 @@ namespace MediaBrowser.Controller.Entities public static ITVSeriesManager TVSeriesManager; public static IPlaylistManager PlaylistManager; - public bool ContainsDynamicCategories(User user) - { - return true; - } - public override IEnumerable<Guid> GetIdsForAncestorQuery() { var list = new List<Guid>(); diff --git a/MediaBrowser.Controller/Entities/UserViewBuilder.cs b/MediaBrowser.Controller/Entities/UserViewBuilder.cs index 6e0f4ada9..f879d0fd8 100644 --- a/MediaBrowser.Controller/Entities/UserViewBuilder.cs +++ b/MediaBrowser.Controller/Entities/UserViewBuilder.cs @@ -1719,53 +1719,6 @@ namespace MediaBrowser.Controller.Entities } } - // Artists - if (query.ArtistIds.Length > 0) - { - var audio = item as IHasArtist; - - //if (!(audio != null && query.ArtistNames.Any(audio.HasAnyArtist))) - //{ - // return false; - //} - } - - // Albums - if (query.AlbumNames.Length > 0) - { - var audio = item as Audio.Audio; - - if (audio != null) - { - if (!query.AlbumNames.Any(a => string.Equals(a, audio.Album, StringComparison.OrdinalIgnoreCase))) - { - return false; - } - } - - var album = item as MusicAlbum; - - if (album != null) - { - if (!query.AlbumNames.Any(a => string.Equals(a, album.Name, StringComparison.OrdinalIgnoreCase))) - { - return false; - } - } - - var musicVideo = item as MusicVideo; - - if (musicVideo != null) - { - if (!query.AlbumNames.Any(a => string.Equals(a, musicVideo.Album, StringComparison.OrdinalIgnoreCase))) - { - return false; - } - } - - return false; - } - return true; } diff --git a/MediaBrowser.Controller/Entities/Video.cs b/MediaBrowser.Controller/Entities/Video.cs index fb9c3d213..78f907d61 100644 --- a/MediaBrowser.Controller/Entities/Video.cs +++ b/MediaBrowser.Controller/Entities/Video.cs @@ -477,11 +477,17 @@ namespace MediaBrowser.Controller.Entities } } - public override IEnumerable<string> GetDeletePaths() + public override IEnumerable<FileSystemMetadata> GetDeletePaths() { if (!DetectIsInMixedFolder()) { - return new[] { ContainingFolderPath }; + return new[] { + new FileSystemMetadata + { + FullName = System.IO.Path.GetDirectoryName(Path), + IsDirectory = true + } + }; } return base.GetDeletePaths(); |
