Browse Source

#643 - Support episodes directly in series folder

Luke Pulverenti 11 years ago
parent
commit
6247929a62

+ 1 - 15
MediaBrowser.Controller/Entities/TV/Episode.cs

@@ -86,7 +86,7 @@ namespace MediaBrowser.Controller.Entities.TV
         {
             get
             {
-                return Season;
+                return FindParent<Season>();
             }
         }
 
@@ -178,20 +178,6 @@ namespace MediaBrowser.Controller.Entities.TV
             get { return _series ?? (_series = FindParent<Series>()); }
         }
 
-        /// <summary>
-        /// The _season
-        /// </summary>
-        private Season _season;
-        /// <summary>
-        /// This Episode's Season Instance
-        /// </summary>
-        /// <value>The season.</value>
-        [IgnoreDataMember]
-        public Season Season
-        {
-            get { return _season ?? (_season = FindParent<Season>()); }
-        }
-
         /// <summary>
         /// This is the ending episode number for double episodes.
         /// </summary>

+ 10 - 0
MediaBrowser.Controller/Entities/TV/Series.cs

@@ -4,6 +4,7 @@ using MediaBrowser.Model.Entities;
 using System;
 using System.Collections.Generic;
 using System.IO;
+using System.Linq;
 using System.Runtime.Serialization;
 
 namespace MediaBrowser.Controller.Entities.TV
@@ -100,5 +101,14 @@ namespace MediaBrowser.Controller.Entities.TV
 
             return args;
         }
+
+        [IgnoreDataMember]
+        public bool ContainsEpisodesWithoutSeasonFolders
+        {
+            get
+            {
+                return Children.OfType<Video>().Any();
+            }
+        }
     }
 }

+ 6 - 3
MediaBrowser.Server.Implementations/Library/Resolvers/TV/EpisodeResolver.cs

@@ -20,7 +20,7 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.TV
             var season = args.Parent as Season;
 
             // If the parent is a Season or Series, then this is an Episode if the VideoResolver returns something
-            if (season != null)
+            if (season != null || args.Parent is Series)
             {
                 Episode episode = null;
 
@@ -51,8 +51,11 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.TV
 
                 if (episode != null)
                 {
-                    episode.ParentIndexNumber = season.IndexNumber;
-                    
+                    if (season != null)
+                    {
+                        episode.ParentIndexNumber = season.IndexNumber;
+                    }
+
                     if (episode.ParentIndexNumber == null)
                     {
                         episode.ParentIndexNumber = TVUtils.GetSeasonNumberFromEpisodeFile(args.Path);