diff options
| -rw-r--r-- | MediaBrowser.Api/LibraryService.cs | 3 | ||||
| -rw-r--r-- | MediaBrowser.Api/UserLibrary/GenresService.cs | 4 | ||||
| -rw-r--r-- | MediaBrowser.Api/UserLibrary/PersonsService.cs | 4 | ||||
| -rw-r--r-- | MediaBrowser.Api/UserLibrary/StudiosService.cs | 4 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/AdultVideo.cs | 7 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/Movies/Movie.cs | 25 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/MusicVideo.cs | 26 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/Video.cs | 25 | ||||
| -rw-r--r-- | MediaBrowser.Controller/MediaBrowser.Controller.csproj | 1 | ||||
| -rw-r--r-- | MediaBrowser.Model/Dto/ItemByNameCounts.cs | 1 | ||||
| -rw-r--r-- | MediaBrowser.Model/Dto/ItemCounts.cs | 1 | ||||
| -rw-r--r-- | MediaBrowser.Model/Entities/CollectionType.cs | 2 | ||||
| -rw-r--r-- | MediaBrowser.Providers/MediaInfo/FFProbeVideoInfoProvider.cs | 2 | ||||
| -rw-r--r-- | MediaBrowser.Providers/Savers/MovieXmlSaver.cs | 2 | ||||
| -rw-r--r-- | MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs | 6 |
15 files changed, 56 insertions, 57 deletions
diff --git a/MediaBrowser.Api/LibraryService.cs b/MediaBrowser.Api/LibraryService.cs index 7eed64de1c..f070431c61 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 4c383f0d72..7d434aef06 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 2a6edae2cd..d5134de0a5 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 26a13a4b86..e19c2bc20a 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 0000000000..9bb0f83550 --- /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 22972df0c6..54f2093f43 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 09f99f500a..6b26016878 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 78f4e3fc24..67648ecc89 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 814f6d5a11..2dfaee7586 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 20a8a4fa7c..eff5ab5c8f 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 6c60c183ea..65c554b621 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 6d3a73aae9..60509567e0 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 8d0d2cb965..ee5df7dca3 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 66eeeed9e8..4dd756d54c 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 2788050690..0df2cd0591 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)) { |
