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 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)) { |
