aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MediaBrowser.Api/LibraryService.cs3
-rw-r--r--MediaBrowser.Api/UserLibrary/GenresService.cs4
-rw-r--r--MediaBrowser.Api/UserLibrary/PersonsService.cs4
-rw-r--r--MediaBrowser.Api/UserLibrary/StudiosService.cs4
-rw-r--r--MediaBrowser.Controller/Entities/AdultVideo.cs7
-rw-r--r--MediaBrowser.Controller/Entities/Movies/Movie.cs25
-rw-r--r--MediaBrowser.Controller/Entities/MusicVideo.cs26
-rw-r--r--MediaBrowser.Controller/Entities/Video.cs25
-rw-r--r--MediaBrowser.Controller/MediaBrowser.Controller.csproj1
-rw-r--r--MediaBrowser.Model/Dto/ItemByNameCounts.cs1
-rw-r--r--MediaBrowser.Model/Dto/ItemCounts.cs1
-rw-r--r--MediaBrowser.Model/Entities/CollectionType.cs2
-rw-r--r--MediaBrowser.Providers/MediaInfo/FFProbeVideoInfoProvider.cs2
-rw-r--r--MediaBrowser.Providers/Savers/MovieXmlSaver.cs2
-rw-r--r--MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs6
15 files changed, 56 insertions, 57 deletions
diff --git a/MediaBrowser.Api/LibraryService.cs b/MediaBrowser.Api/LibraryService.cs
index 7eed64de1..f070431c6 100644
--- a/MediaBrowser.Api/LibraryService.cs
+++ b/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);
diff --git a/MediaBrowser.Api/UserLibrary/GenresService.cs b/MediaBrowser.Api/UserLibrary/GenresService.cs
index 4c383f0d7..7d434aef0 100644
--- a/MediaBrowser.Api/UserLibrary/GenresService.cs
+++ b/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);
diff --git a/MediaBrowser.Api/UserLibrary/PersonsService.cs b/MediaBrowser.Api/UserLibrary/PersonsService.cs
index 2a6edae2c..d5134de0a 100644
--- a/MediaBrowser.Api/UserLibrary/PersonsService.cs
+++ b/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);
diff --git a/MediaBrowser.Api/UserLibrary/StudiosService.cs b/MediaBrowser.Api/UserLibrary/StudiosService.cs
index 26a13a4b8..e19c2bc20 100644
--- a/MediaBrowser.Api/UserLibrary/StudiosService.cs
+++ b/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);
diff --git a/MediaBrowser.Controller/Entities/AdultVideo.cs b/MediaBrowser.Controller/Entities/AdultVideo.cs
new file mode 100644
index 000000000..9bb0f8355
--- /dev/null
+++ b/MediaBrowser.Controller/Entities/AdultVideo.cs
@@ -0,0 +1,7 @@
+
+namespace MediaBrowser.Controller.Entities
+{
+ public class AdultVideo : Video
+ {
+ }
+}
diff --git a/MediaBrowser.Controller/Entities/Movies/Movie.cs b/MediaBrowser.Controller/Entities/Movies/Movie.cs
index 22972df0c..54f2093f4 100644
--- a/MediaBrowser.Controller/Entities/Movies/Movie.cs
+++ b/MediaBrowser.Controller/Entities/Movies/Movie.cs
@@ -22,19 +22,6 @@ namespace MediaBrowser.Controller.Entities.Movies
}
/// <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>
/// <returns>System.String.</returns>
@@ -44,18 +31,6 @@ namespace MediaBrowser.Controller.Entities.Movies
}
/// <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>
/// <param name="cancellationToken">The cancellation token.</param>
diff --git a/MediaBrowser.Controller/Entities/MusicVideo.cs b/MediaBrowser.Controller/Entities/MusicVideo.cs
index 09f99f500..6b2601687 100644
--- a/MediaBrowser.Controller/Entities/MusicVideo.cs
+++ b/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;
- }
- }
}
}
diff --git a/MediaBrowser.Controller/Entities/Video.cs b/MediaBrowser.Controller/Entities/Video.cs
index 78f4e3fc2..67648ecc8 100644
--- a/MediaBrowser.Controller/Entities/Video.cs
+++ b/MediaBrowser.Controller/Entities/Video.cs
@@ -66,6 +66,31 @@ namespace MediaBrowser.Controller.Entities
}
/// <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>
/// <param name="rootPath">The root path.</param>
diff --git a/MediaBrowser.Controller/MediaBrowser.Controller.csproj b/MediaBrowser.Controller/MediaBrowser.Controller.csproj
index 814f6d5a1..2dfaee758 100644
--- a/MediaBrowser.Controller/MediaBrowser.Controller.csproj
+++ b/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" />
diff --git a/MediaBrowser.Model/Dto/ItemByNameCounts.cs b/MediaBrowser.Model/Dto/ItemByNameCounts.cs
index 20a8a4fa7..eff5ab5c8 100644
--- a/MediaBrowser.Model/Dto/ItemByNameCounts.cs
+++ b/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>
diff --git a/MediaBrowser.Model/Dto/ItemCounts.cs b/MediaBrowser.Model/Dto/ItemCounts.cs
index 6c60c183e..65c554b62 100644
--- a/MediaBrowser.Model/Dto/ItemCounts.cs
+++ b/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>
diff --git a/MediaBrowser.Model/Entities/CollectionType.cs b/MediaBrowser.Model/Entities/CollectionType.cs
index 6d3a73aae..60509567e 100644
--- a/MediaBrowser.Model/Entities/CollectionType.cs
+++ b/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";
}
}
diff --git a/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfoProvider.cs b/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfoProvider.cs
index 8d0d2cb96..ee5df7dca 100644
--- a/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfoProvider.cs
+++ b/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)
{
diff --git a/MediaBrowser.Providers/Savers/MovieXmlSaver.cs b/MediaBrowser.Providers/Savers/MovieXmlSaver.cs
index 66eeeed9e..4dd756d54 100644
--- a/MediaBrowser.Providers/Savers/MovieXmlSaver.cs
+++ b/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;
diff --git a/MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs b/MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs
index 278805069..0df2cd059 100644
--- a/MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs
+++ b/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))
{