Browse Source

Added an adult video entity

Luke Pulverenti 12 years ago
parent
commit
2c22db8b8d

+ 2 - 1
MediaBrowser.Api/LibraryService.cs

@@ -204,7 +204,8 @@ namespace MediaBrowser.Api
                 SeriesCount = items.OfType<Series>().Count(),
                 SongCount = items.OfType<Audio>().Count(),
                 TrailerCount = items.OfType<Trailer>().Count(),
-                MusicVideoCount = items.OfType<MusicVideo>().Count()
+                MusicVideoCount = items.OfType<MusicVideo>().Count(),
+                AdultVideoCount = items.OfType<AdultVideo>().Count()
             };
 
             return ToOptimizedResult(counts);

+ 3 - 1
MediaBrowser.Api/UserLibrary/GenresService.cs

@@ -169,7 +169,9 @@ namespace MediaBrowser.Api.UserLibrary
 
                 SeriesCount = items.OfType<Series>().Count(),
 
-                GameCount = items.OfType<Game>().Count()
+                GameCount = items.OfType<Game>().Count(),
+
+                AdultVideoCount = items.OfType<AdultVideo>().Count()
             };
 
             return ToOptimizedResult(counts);

+ 3 - 1
MediaBrowser.Api/UserLibrary/PersonsService.cs

@@ -168,7 +168,9 @@ namespace MediaBrowser.Api.UserLibrary
 
                 EpisodeCount = items.OfType<Episode>().Count(),
 
-                MusicVideoCount = items.OfType<MusicVideo>().Count()
+                MusicVideoCount = items.OfType<MusicVideo>().Count(),
+
+                AdultVideoCount = items.OfType<AdultVideo>().Count()
             };
 
             return ToOptimizedResult(counts);

+ 3 - 1
MediaBrowser.Api/UserLibrary/StudiosService.cs

@@ -138,7 +138,9 @@ namespace MediaBrowser.Api.UserLibrary
 
                 AlbumCount = items.OfType<MusicAlbum>().Count(),
 
-                MusicVideoCount = items.OfType<MusicVideo>().Count()
+                MusicVideoCount = items.OfType<MusicVideo>().Count(),
+
+                AdultVideoCount = items.OfType<AdultVideo>().Count()
             };
 
             return ToOptimizedResult(counts);

+ 7 - 0
MediaBrowser.Controller/Entities/AdultVideo.cs

@@ -0,0 +1,7 @@
+
+namespace MediaBrowser.Controller.Entities
+{
+    public class AdultVideo : Video
+    {
+    }
+}

+ 0 - 25
MediaBrowser.Controller/Entities/Movies/Movie.cs

@@ -21,19 +21,6 @@ namespace MediaBrowser.Controller.Entities.Movies
             SpecialFeatureIds = new List<Guid>();
         }
 
-        /// <summary>
-        /// Should be overridden to return the proper folder where metadata lives
-        /// </summary>
-        /// <value>The meta location.</value>
-        [IgnoreDataMember]
-        public override string MetaLocation
-        {
-            get
-            {
-                return VideoType == VideoType.VideoFile || VideoType == VideoType.Iso || IsMultiPart ? System.IO.Path.GetDirectoryName(Path) : Path;
-            }
-        }
-
         /// <summary>
         /// Gets the user data key.
         /// </summary>
@@ -43,18 +30,6 @@ namespace MediaBrowser.Controller.Entities.Movies
             return this.GetProviderId(MetadataProviders.Tmdb) ?? this.GetProviderId(MetadataProviders.Imdb) ?? base.GetUserDataKey();
         }
 
-        /// <summary>
-        /// Needed because the resolver stops at the movie folder and we find the video inside.
-        /// </summary>
-        /// <value><c>true</c> if [use parent path to create resolve args]; otherwise, <c>false</c>.</value>
-        protected override bool UseParentPathToCreateResolveArgs
-        {
-            get
-            {
-                return VideoType == VideoType.VideoFile || VideoType == VideoType.Iso || IsMultiPart;
-            }
-        }
-
         /// <summary>
         /// Overrides the base implementation to refresh metadata for special features
         /// </summary>

+ 0 - 26
MediaBrowser.Controller/Entities/MusicVideo.cs

@@ -1,6 +1,5 @@
 using MediaBrowser.Model.Entities;
 using System;
-using System.Runtime.Serialization;
 
 namespace MediaBrowser.Controller.Entities
 {
@@ -17,19 +16,6 @@ namespace MediaBrowser.Controller.Entities
         /// </summary>
         /// <value>The album.</value>
         public string Album { get; set; }
-        
-        /// <summary>
-        /// Should be overridden to return the proper folder where metadata lives
-        /// </summary>
-        /// <value>The meta location.</value>
-        [IgnoreDataMember]
-        public override string MetaLocation
-        {
-            get
-            {
-                return VideoType == VideoType.VideoFile || VideoType == VideoType.Iso || IsMultiPart ? System.IO.Path.GetDirectoryName(Path) : Path;
-            }
-        }
 
         /// <summary>
         /// Determines whether the specified name has artist.
@@ -49,17 +35,5 @@ namespace MediaBrowser.Controller.Entities
         {
             return this.GetProviderId(MetadataProviders.Tmdb) ?? this.GetProviderId(MetadataProviders.Imdb) ?? base.GetUserDataKey();
         }
-
-        /// <summary>
-        /// Needed because the resolver stops at the movie folder and we find the video inside.
-        /// </summary>
-        /// <value><c>true</c> if [use parent path to create resolve args]; otherwise, <c>false</c>.</value>
-        protected override bool UseParentPathToCreateResolveArgs
-        {
-            get
-            {
-                return VideoType == VideoType.VideoFile || VideoType == VideoType.Iso || IsMultiPart;
-            }
-        }
     }
 }

+ 25 - 0
MediaBrowser.Controller/Entities/Video.cs

@@ -65,6 +65,31 @@ namespace MediaBrowser.Controller.Entities
             return GetPlayableStreamFiles(Path);
         }
 
+        /// <summary>
+        /// Should be overridden to return the proper folder where metadata lives
+        /// </summary>
+        /// <value>The meta location.</value>
+        [IgnoreDataMember]
+        public override string MetaLocation
+        {
+            get
+            {
+                return VideoType == VideoType.VideoFile || VideoType == VideoType.Iso || IsMultiPart ? System.IO.Path.GetDirectoryName(Path) : Path;
+            }
+        }
+
+        /// <summary>
+        /// Needed because the resolver stops at the movie folder and we find the video inside.
+        /// </summary>
+        /// <value><c>true</c> if [use parent path to create resolve args]; otherwise, <c>false</c>.</value>
+        protected override bool UseParentPathToCreateResolveArgs
+        {
+            get
+            {
+                return VideoType == VideoType.VideoFile || VideoType == VideoType.Iso || IsMultiPart;
+            }
+        }
+
         /// <summary>
         /// Gets the playable stream files.
         /// </summary>

+ 1 - 0
MediaBrowser.Controller/MediaBrowser.Controller.csproj

@@ -70,6 +70,7 @@
     <Compile Include="..\SharedVersion.cs">
       <Link>Properties\SharedVersion.cs</Link>
     </Compile>
+    <Compile Include="Entities\AdultVideo.cs" />
     <Compile Include="Notifications\Configuration\IServerConfigurationManager.cs" />
     <Compile Include="Dto\SessionInfoDtoBuilder.cs" />
     <Compile Include="Entities\Audio\MusicAlbumDisc.cs" />

+ 1 - 0
MediaBrowser.Model/Dto/ItemByNameCounts.cs

@@ -11,6 +11,7 @@ namespace MediaBrowser.Model.Dto
         /// </summary>
         /// <value>The total count.</value>
         public int TotalCount { get; set; }
+        public int AdultVideoCount { get; set; }
         /// <summary>
         /// Gets or sets the movie count.
         /// </summary>

+ 1 - 0
MediaBrowser.Model/Dto/ItemCounts.cs

@@ -6,6 +6,7 @@ namespace MediaBrowser.Model.Dto
     /// </summary>
     public class ItemCounts
     {
+        public int AdultVideoCount { get; set; }
         /// <summary>
         /// Gets or sets the movie count.
         /// </summary>

+ 2 - 0
MediaBrowser.Model/Entities/CollectionType.cs

@@ -16,5 +16,7 @@ namespace MediaBrowser.Model.Entities
         public const string HomeVideos = "homevideos";
 
         public const string BoxSets = "boxsets";
+
+        public const string AdultVideos = "adultvideos";
     }
 }

+ 1 - 1
MediaBrowser.Providers/MediaInfo/FFProbeVideoInfoProvider.cs

@@ -353,7 +353,7 @@ namespace MediaBrowser.Providers.MediaInfo
         /// <param name="video">The video.</param>
         private void AddExternalSubtitles(Video video)
         {
-            var useParent = (video.VideoType == VideoType.VideoFile || video.VideoType == VideoType.Iso) && !(video is Movie) && !(video is MusicVideo);
+            var useParent = !video.ResolveArgs.IsDirectory;
 
             if (useParent && video.Parent == null)
             {

+ 1 - 1
MediaBrowser.Providers/Savers/MovieXmlSaver.cs

@@ -47,7 +47,7 @@ namespace MediaBrowser.Providers.Savers
                     return !trailer.IsLocalTrailer;
                 }
 
-                return item is Movie || item is MusicVideo;
+                return item is Movie || item is MusicVideo || item is AdultVideo;
             }
 
             return false;

+ 6 - 0
MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs

@@ -89,6 +89,12 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Movies
                     return FindMovie<MusicVideo>(args.Path, args.FileSystemChildren);
                 }
 
+                if (args.Path.IndexOf("[adultvideos]", StringComparison.OrdinalIgnoreCase) != -1 ||
+                    string.Equals(collectionType, CollectionType.AdultVideos, StringComparison.OrdinalIgnoreCase))
+                {
+                    return FindMovie<AdultVideo>(args.Path, args.FileSystemChildren);
+                }
+
                 if (!string.IsNullOrEmpty(collectionType) && 
                     !string.Equals(collectionType, CollectionType.Movies, StringComparison.OrdinalIgnoreCase))
                 {