Explorar el Código

Merge branch 'master' of https://github.com/MediaBrowser/MediaBrowser

Luke Pulverenti hace 12 años
padre
commit
8035fe19a6

+ 11 - 0
MediaBrowser.Controller/Entities/AggregateFolder.cs

@@ -11,6 +11,17 @@ namespace MediaBrowser.Controller.Entities
     /// </summary>
     public class AggregateFolder : Folder
     {
+        /// <summary>
+        /// We don't support manual shortcuts
+        /// </summary>
+        protected override bool SupportsShortcutChildren
+        {
+            get
+            {
+                return false;
+            }
+        }
+
         /// <summary>
         /// The _virtual children
         /// </summary>

+ 32 - 0
MediaBrowser.Controller/Entities/CollectionFolder.cs

@@ -67,6 +67,38 @@ namespace MediaBrowser.Controller.Entities
             return NullTaskResult;
         }
 
+        /// <summary>
+        /// Our children are actually just references to the ones in the physical root...
+        /// </summary>
+        /// <value>The linked children.</value>
+        public override List<LinkedChild> LinkedChildren
+        {
+            get
+            {
+                ItemResolveArgs resolveArgs;
+
+                try
+                {
+                    resolveArgs = ResolveArgs;
+                }
+                catch (IOException ex)
+                {
+                    Logger.ErrorException("Error getting ResolveArgs for {0}", ex, Path);
+                    return new List<LinkedChild>();
+                }
+
+                return LibraryManager.RootFolder.RecursiveChildren
+                    .OfType<Folder>()
+                    .Where(i => i.Path != null && resolveArgs.PhysicalLocations.Contains(i.Path, StringComparer.OrdinalIgnoreCase))
+                    .SelectMany(c => c.LinkedChildren).ToList();
+
+            }
+            set
+            {
+                base.LinkedChildren = value;
+            }
+        }
+
         /// <summary>
         /// Our children are actually just references to the ones in the physical root...
         /// </summary>

+ 2 - 2
MediaBrowser.Controller/Entities/Folder.cs

@@ -81,11 +81,11 @@ namespace MediaBrowser.Controller.Entities
             }
         }
 
-        public List<LinkedChild> LinkedChildren { get; set; }
+        public virtual List<LinkedChild> LinkedChildren { get; set; }
 
         protected virtual bool SupportsShortcutChildren
         {
-            get { return false; }
+            get { return true; }
         }
 
         /// <summary>

+ 0 - 7
MediaBrowser.Controller/Entities/Movies/BoxSet.cs

@@ -6,12 +6,5 @@ namespace MediaBrowser.Controller.Entities.Movies
     /// </summary>
     public class BoxSet : Folder
     {
-        protected override bool SupportsShortcutChildren
-        {
-            get
-            {
-                return true;
-            }
-        }
     }
 }

+ 1 - 1
MediaBrowser.Controller/Providers/BaseItemXmlParser.cs

@@ -571,7 +571,7 @@ namespace MediaBrowser.Controller.Providers
                     }
                     break;
 
-                case "CollectionNumber":
+                case "TMDbCollectionId":
                     var tmdbCollection = reader.ReadElementContentAsString();
                     if (!string.IsNullOrWhiteSpace(tmdbCollection))
                     {

+ 6 - 1
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))
                 {
@@ -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);
@@ -1177,6 +1181,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; }

+ 2 - 2
MediaBrowser.Providers/Savers/XmlSaverHelpers.cs

@@ -67,7 +67,7 @@ namespace MediaBrowser.Providers.Savers
                     "TVcomId",
                     "RottenTomatoesId",
                     "MusicbrainzId",
-                    "CollectionNumber",
+                    "TMDbCollectionId",
                     "Genres",
                     "Genre",
                     "Studios",
@@ -343,7 +343,7 @@ namespace MediaBrowser.Providers.Savers
 
             if (!string.IsNullOrEmpty(tmdbCollection))
             {
-                builder.Append("<CollectionNumber>" + SecurityElement.Escape(tmdbCollection) + "</CollectionNumber>");
+                builder.Append("<TMDbCollectionId>" + SecurityElement.Escape(tmdbCollection) + "</TMDbCollectionId>");
             }
 
             if (item.Taglines.Count > 0)