From eec9e0482525c400e9dc7cb17bc000434adba105 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Thu, 13 Feb 2014 00:11:54 -0500 Subject: take photos into the core --- MediaBrowser.Controller/Entities/AdultVideo.cs | 22 ++++++++++ .../Entities/AggregateFolder.cs | 2 +- MediaBrowser.Controller/Entities/BaseItem.cs | 48 ++++++++++++---------- .../Entities/CollectionFolder.cs | 2 +- MediaBrowser.Controller/Entities/Folder.cs | 2 +- MediaBrowser.Controller/Entities/IHasMetadata.cs | 6 +-- MediaBrowser.Controller/Entities/Movies/Movie.cs | 30 ++++++++++++-- MediaBrowser.Controller/Entities/Photo.cs | 24 +++++++++++ MediaBrowser.Controller/Entities/TV/Episode.cs | 27 ++++++++---- MediaBrowser.Controller/Entities/TV/Season.cs | 12 +++--- MediaBrowser.Controller/Entities/TV/Series.cs | 21 ++++++++++ MediaBrowser.Controller/Entities/UserRootFolder.cs | 11 +++-- MediaBrowser.Controller/Entities/Video.cs | 6 +-- MediaBrowser.Controller/Library/ILibraryManager.cs | 15 ++++++- MediaBrowser.Controller/Library/ItemResolveArgs.cs | 6 ++- .../MediaBrowser.Controller.csproj | 1 + .../Providers/IRemoteImageProvider.cs | 11 +---- .../Resolvers/EntityResolutionHelper.cs | 30 +++++++------- 18 files changed, 194 insertions(+), 82 deletions(-) create mode 100644 MediaBrowser.Controller/Entities/Photo.cs (limited to 'MediaBrowser.Controller') diff --git a/MediaBrowser.Controller/Entities/AdultVideo.cs b/MediaBrowser.Controller/Entities/AdultVideo.cs index fc7632152c..9791f7cf79 100644 --- a/MediaBrowser.Controller/Entities/AdultVideo.cs +++ b/MediaBrowser.Controller/Entities/AdultVideo.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using MediaBrowser.Controller.Providers; namespace MediaBrowser.Controller.Entities { @@ -22,5 +23,26 @@ namespace MediaBrowser.Controller.Entities { Taglines = new List(); } + + public override bool BeforeMetadataRefresh() + { + var hasChanges = base.BeforeMetadataRefresh(); + + if (!ProductionYear.HasValue) + { + int? yearInName = null; + string name; + + NameParser.ParseName(Name, out name, out yearInName); + + if (yearInName.HasValue) + { + ProductionYear = yearInName; + hasChanges = true; + } + } + + return hasChanges; + } } } diff --git a/MediaBrowser.Controller/Entities/AggregateFolder.cs b/MediaBrowser.Controller/Entities/AggregateFolder.cs index 5cabe1cfe4..362096b5e3 100644 --- a/MediaBrowser.Controller/Entities/AggregateFolder.cs +++ b/MediaBrowser.Controller/Entities/AggregateFolder.cs @@ -66,7 +66,7 @@ namespace MediaBrowser.Controller.Entities { var path = ContainingFolderPath; - var args = new ItemResolveArgs(ConfigurationManager.ApplicationPaths, LibraryManager) + var args = new ItemResolveArgs(ConfigurationManager.ApplicationPaths, LibraryManager, directoryService) { FileInfo = new DirectoryInfo(path), Path = path, diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs index 8dcf086425..415b49f808 100644 --- a/MediaBrowser.Controller/Entities/BaseItem.cs +++ b/MediaBrowser.Controller/Entities/BaseItem.cs @@ -472,7 +472,7 @@ namespace MediaBrowser.Controller.Entities /// Loads local trailers from the file system /// /// List{Video}. - private IEnumerable LoadLocalTrailers(List fileSystemChildren) + private IEnumerable LoadLocalTrailers(List fileSystemChildren, IDirectoryService directoryService) { var files = fileSystemChildren.OfType() .Where(i => string.Equals(i.Name, TrailerFolderName, StringComparison.OrdinalIgnoreCase)) @@ -484,7 +484,7 @@ namespace MediaBrowser.Controller.Entities .Where(i => System.IO.Path.GetFileNameWithoutExtension(i.Name).EndsWith(XbmcTrailerFileSuffix, StringComparison.OrdinalIgnoreCase) && !string.Equals(Path, i.FullName, StringComparison.OrdinalIgnoreCase)) ); - return LibraryManager.ResolvePaths(files, null).Select(video => + return LibraryManager.ResolvePaths(files, directoryService, null).Select(video => { // Try to retrieve it from the db. If we don't find it, use the resolved version var dbItem = LibraryManager.GetItemById(video.Id) as Trailer; @@ -504,7 +504,7 @@ namespace MediaBrowser.Controller.Entities /// Loads the theme songs. /// /// List{Audio.Audio}. - private IEnumerable LoadThemeSongs(List fileSystemChildren) + private IEnumerable LoadThemeSongs(List fileSystemChildren, IDirectoryService directoryService) { var files = fileSystemChildren.OfType() .Where(i => string.Equals(i.Name, ThemeSongsFolderName, StringComparison.OrdinalIgnoreCase)) @@ -516,7 +516,7 @@ namespace MediaBrowser.Controller.Entities .Where(i => string.Equals(System.IO.Path.GetFileNameWithoutExtension(i.Name), ThemeSongFilename, StringComparison.OrdinalIgnoreCase)) ); - return LibraryManager.ResolvePaths(files, null).Select(audio => + return LibraryManager.ResolvePaths(files, directoryService, null).Select(audio => { // Try to retrieve it from the db. If we don't find it, use the resolved version var dbItem = LibraryManager.GetItemById(audio.Id) as Audio.Audio; @@ -536,13 +536,13 @@ namespace MediaBrowser.Controller.Entities /// Loads the video backdrops. /// /// List{Video}. - private IEnumerable