From 8f105fb618c28b1bbaf20b28498b18d350f4241e Mon Sep 17 00:00:00 2001 From: Eric Reed Date: Mon, 19 Aug 2013 14:15:25 -0400 Subject: [PATCH 1/5] Fix name not filled in for Box Sets --- MediaBrowser.Providers/Movies/MovieDbProvider.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/MediaBrowser.Providers/Movies/MovieDbProvider.cs b/MediaBrowser.Providers/Movies/MovieDbProvider.cs index 25653ef599..d442b70e3a 100644 --- a/MediaBrowser.Providers/Movies/MovieDbProvider.cs +++ b/MediaBrowser.Providers/Movies/MovieDbProvider.cs @@ -653,7 +653,7 @@ namespace MediaBrowser.Providers.Movies { if (!movie.LockedFields.Contains(MetadataFields.Name)) { - movie.Name = movieData.title ?? movieData.original_title ?? movie.Name; + movie.Name = movieData.title ?? movieData.original_title ?? movieData.name ?? movie.Name; } if (!movie.LockedFields.Contains(MetadataFields.Overview)) { @@ -1177,6 +1177,7 @@ namespace MediaBrowser.Providers.Movies public string homepage { get; set; } public int id { get; set; } public string imdb_id { get; set; } + public string name { get; set; } public string original_title { get; set; } public string overview { get; set; } public double popularity { get; set; } From 50bb545b538632f2fb92ed77236357a119522d7d Mon Sep 17 00:00:00 2001 From: Eric Reed Date: Mon, 19 Aug 2013 15:37:44 -0400 Subject: [PATCH 2/5] Clear old collection numbers if not there on new fetch --- MediaBrowser.Providers/Movies/MovieDbProvider.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/MediaBrowser.Providers/Movies/MovieDbProvider.cs b/MediaBrowser.Providers/Movies/MovieDbProvider.cs index d442b70e3a..37b4ce3866 100644 --- a/MediaBrowser.Providers/Movies/MovieDbProvider.cs +++ b/MediaBrowser.Providers/Movies/MovieDbProvider.cs @@ -676,6 +676,10 @@ namespace MediaBrowser.Providers.Movies { movie.SetProviderId(MetadataProviders.TmdbCollection, movieData.belongs_to_collection.id.ToString(CultureInfo.InvariantCulture)); } + else + { + movie.SetProviderId(MetadataProviders.TmdbCollection, null); // clear out any old entry + } float rating; string voteAvg = movieData.vote_average.ToString(CultureInfo.InvariantCulture); From 426bf48c7a0044b37c0283f50932f63dd48c6304 Mon Sep 17 00:00:00 2001 From: Eric Reed Date: Mon, 19 Aug 2013 15:52:03 -0400 Subject: [PATCH 3/5] Update collection id in xml reader and saver --- MediaBrowser.Controller/Providers/BaseItemXmlParser.cs | 2 +- MediaBrowser.Providers/Savers/XmlSaverHelpers.cs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs b/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs index 0084fe96c6..e9d3306b24 100644 --- a/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs +++ b/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs @@ -571,7 +571,7 @@ namespace MediaBrowser.Controller.Providers } break; - case "CollectionNumber": + case "BelongsToCollection": var tmdbCollection = reader.ReadElementContentAsString(); if (!string.IsNullOrWhiteSpace(tmdbCollection)) { diff --git a/MediaBrowser.Providers/Savers/XmlSaverHelpers.cs b/MediaBrowser.Providers/Savers/XmlSaverHelpers.cs index 07f4da342d..d8f43a36a6 100644 --- a/MediaBrowser.Providers/Savers/XmlSaverHelpers.cs +++ b/MediaBrowser.Providers/Savers/XmlSaverHelpers.cs @@ -67,7 +67,7 @@ namespace MediaBrowser.Providers.Savers "TVcomId", "RottenTomatoesId", "MusicbrainzId", - "CollectionNumber", + "BelongsToCollection", "Genres", "Genre", "Studios", @@ -343,7 +343,7 @@ namespace MediaBrowser.Providers.Savers if (!string.IsNullOrEmpty(tmdbCollection)) { - builder.Append("" + SecurityElement.Escape(tmdbCollection) + ""); + builder.Append("" + SecurityElement.Escape(tmdbCollection) + ""); } if (item.Taglines.Count > 0) From eec92175f99b963bc853674dd164446316f302d1 Mon Sep 17 00:00:00 2001 From: Eric Reed Date: Mon, 19 Aug 2013 16:00:23 -0400 Subject: [PATCH 4/5] Use TMDbCollectionId instead --- MediaBrowser.Controller/Providers/BaseItemXmlParser.cs | 2 +- MediaBrowser.Providers/Savers/XmlSaverHelpers.cs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs b/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs index e9d3306b24..2761c51e02 100644 --- a/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs +++ b/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs @@ -571,7 +571,7 @@ namespace MediaBrowser.Controller.Providers } break; - case "BelongsToCollection": + case "TMDbCollectionId": var tmdbCollection = reader.ReadElementContentAsString(); if (!string.IsNullOrWhiteSpace(tmdbCollection)) { diff --git a/MediaBrowser.Providers/Savers/XmlSaverHelpers.cs b/MediaBrowser.Providers/Savers/XmlSaverHelpers.cs index d8f43a36a6..5c9e903129 100644 --- a/MediaBrowser.Providers/Savers/XmlSaverHelpers.cs +++ b/MediaBrowser.Providers/Savers/XmlSaverHelpers.cs @@ -67,7 +67,7 @@ namespace MediaBrowser.Providers.Savers "TVcomId", "RottenTomatoesId", "MusicbrainzId", - "BelongsToCollection", + "TMDbCollectionId", "Genres", "Genre", "Studios", @@ -343,7 +343,7 @@ namespace MediaBrowser.Providers.Savers if (!string.IsNullOrEmpty(tmdbCollection)) { - builder.Append("" + SecurityElement.Escape(tmdbCollection) + ""); + builder.Append("" + SecurityElement.Escape(tmdbCollection) + ""); } if (item.Taglines.Count > 0) From 80fb3c9eb4a94b435f56e9011853aae4397f6af9 Mon Sep 17 00:00:00 2001 From: Eric Reed Date: Mon, 19 Aug 2013 17:17:03 -0400 Subject: [PATCH 5/5] Initial support of shortcuts everywhere --- .../Entities/AggregateFolder.cs | 11 +++++++ .../Entities/CollectionFolder.cs | 32 +++++++++++++++++++ MediaBrowser.Controller/Entities/Folder.cs | 4 +-- .../Entities/Movies/BoxSet.cs | 7 ---- 4 files changed, 45 insertions(+), 9 deletions(-) diff --git a/MediaBrowser.Controller/Entities/AggregateFolder.cs b/MediaBrowser.Controller/Entities/AggregateFolder.cs index c4fda4fa27..302842e7e8 100644 --- a/MediaBrowser.Controller/Entities/AggregateFolder.cs +++ b/MediaBrowser.Controller/Entities/AggregateFolder.cs @@ -11,6 +11,17 @@ namespace MediaBrowser.Controller.Entities /// public class AggregateFolder : Folder { + /// + /// We don't support manual shortcuts + /// + protected override bool SupportsShortcutChildren + { + get + { + return false; + } + } + /// /// The _virtual children /// diff --git a/MediaBrowser.Controller/Entities/CollectionFolder.cs b/MediaBrowser.Controller/Entities/CollectionFolder.cs index 7d7d60ae53..b080478b80 100644 --- a/MediaBrowser.Controller/Entities/CollectionFolder.cs +++ b/MediaBrowser.Controller/Entities/CollectionFolder.cs @@ -67,6 +67,38 @@ namespace MediaBrowser.Controller.Entities return NullTaskResult; } + /// + /// Our children are actually just references to the ones in the physical root... + /// + /// The linked children. + public override List LinkedChildren + { + get + { + ItemResolveArgs resolveArgs; + + try + { + resolveArgs = ResolveArgs; + } + catch (IOException ex) + { + Logger.ErrorException("Error getting ResolveArgs for {0}", ex, Path); + return new List(); + } + + return LibraryManager.RootFolder.RecursiveChildren + .OfType() + .Where(i => i.Path != null && resolveArgs.PhysicalLocations.Contains(i.Path, StringComparer.OrdinalIgnoreCase)) + .SelectMany(c => c.LinkedChildren).ToList(); + + } + set + { + base.LinkedChildren = value; + } + } + /// /// Our children are actually just references to the ones in the physical root... /// diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs index 3eda96d3d2..ca43ca616b 100644 --- a/MediaBrowser.Controller/Entities/Folder.cs +++ b/MediaBrowser.Controller/Entities/Folder.cs @@ -81,11 +81,11 @@ namespace MediaBrowser.Controller.Entities } } - public List LinkedChildren { get; set; } + public virtual List LinkedChildren { get; set; } protected virtual bool SupportsShortcutChildren { - get { return false; } + get { return true; } } /// diff --git a/MediaBrowser.Controller/Entities/Movies/BoxSet.cs b/MediaBrowser.Controller/Entities/Movies/BoxSet.cs index 5c99a62f7d..e52ece502b 100644 --- a/MediaBrowser.Controller/Entities/Movies/BoxSet.cs +++ b/MediaBrowser.Controller/Entities/Movies/BoxSet.cs @@ -6,12 +6,5 @@ namespace MediaBrowser.Controller.Entities.Movies /// public class BoxSet : Folder { - protected override bool SupportsShortcutChildren - { - get - { - return true; - } - } } }