mirror of https://github.com/jellyfin/jellyfin.git
Added an adult video entity
This commit is contained in:
parent
27c644e6c8
commit
2c22db8b8d
|
@ -204,7 +204,8 @@ namespace MediaBrowser.Api
|
||||||
SeriesCount = items.OfType<Series>().Count(),
|
SeriesCount = items.OfType<Series>().Count(),
|
||||||
SongCount = items.OfType<Audio>().Count(),
|
SongCount = items.OfType<Audio>().Count(),
|
||||||
TrailerCount = items.OfType<Trailer>().Count(),
|
TrailerCount = items.OfType<Trailer>().Count(),
|
||||||
MusicVideoCount = items.OfType<MusicVideo>().Count()
|
MusicVideoCount = items.OfType<MusicVideo>().Count(),
|
||||||
|
AdultVideoCount = items.OfType<AdultVideo>().Count()
|
||||||
};
|
};
|
||||||
|
|
||||||
return ToOptimizedResult(counts);
|
return ToOptimizedResult(counts);
|
||||||
|
|
|
@ -169,7 +169,9 @@ namespace MediaBrowser.Api.UserLibrary
|
||||||
|
|
||||||
SeriesCount = items.OfType<Series>().Count(),
|
SeriesCount = items.OfType<Series>().Count(),
|
||||||
|
|
||||||
GameCount = items.OfType<Game>().Count()
|
GameCount = items.OfType<Game>().Count(),
|
||||||
|
|
||||||
|
AdultVideoCount = items.OfType<AdultVideo>().Count()
|
||||||
};
|
};
|
||||||
|
|
||||||
return ToOptimizedResult(counts);
|
return ToOptimizedResult(counts);
|
||||||
|
|
|
@ -168,7 +168,9 @@ namespace MediaBrowser.Api.UserLibrary
|
||||||
|
|
||||||
EpisodeCount = items.OfType<Episode>().Count(),
|
EpisodeCount = items.OfType<Episode>().Count(),
|
||||||
|
|
||||||
MusicVideoCount = items.OfType<MusicVideo>().Count()
|
MusicVideoCount = items.OfType<MusicVideo>().Count(),
|
||||||
|
|
||||||
|
AdultVideoCount = items.OfType<AdultVideo>().Count()
|
||||||
};
|
};
|
||||||
|
|
||||||
return ToOptimizedResult(counts);
|
return ToOptimizedResult(counts);
|
||||||
|
|
|
@ -138,7 +138,9 @@ namespace MediaBrowser.Api.UserLibrary
|
||||||
|
|
||||||
AlbumCount = items.OfType<MusicAlbum>().Count(),
|
AlbumCount = items.OfType<MusicAlbum>().Count(),
|
||||||
|
|
||||||
MusicVideoCount = items.OfType<MusicVideo>().Count()
|
MusicVideoCount = items.OfType<MusicVideo>().Count(),
|
||||||
|
|
||||||
|
AdultVideoCount = items.OfType<AdultVideo>().Count()
|
||||||
};
|
};
|
||||||
|
|
||||||
return ToOptimizedResult(counts);
|
return ToOptimizedResult(counts);
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
|
||||||
|
namespace MediaBrowser.Controller.Entities
|
||||||
|
{
|
||||||
|
public class AdultVideo : Video
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
|
@ -21,19 +21,6 @@ namespace MediaBrowser.Controller.Entities.Movies
|
||||||
SpecialFeatureIds = new List<Guid>();
|
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>
|
/// <summary>
|
||||||
/// Gets the user data key.
|
/// Gets the user data key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -43,18 +30,6 @@ namespace MediaBrowser.Controller.Entities.Movies
|
||||||
return this.GetProviderId(MetadataProviders.Tmdb) ?? this.GetProviderId(MetadataProviders.Imdb) ?? base.GetUserDataKey();
|
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>
|
/// <summary>
|
||||||
/// Overrides the base implementation to refresh metadata for special features
|
/// Overrides the base implementation to refresh metadata for special features
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
using MediaBrowser.Model.Entities;
|
using MediaBrowser.Model.Entities;
|
||||||
using System;
|
using System;
|
||||||
using System.Runtime.Serialization;
|
|
||||||
|
|
||||||
namespace MediaBrowser.Controller.Entities
|
namespace MediaBrowser.Controller.Entities
|
||||||
{
|
{
|
||||||
|
@ -17,19 +16,6 @@ namespace MediaBrowser.Controller.Entities
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <value>The album.</value>
|
/// <value>The album.</value>
|
||||||
public string Album { get; set; }
|
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>
|
/// <summary>
|
||||||
/// Determines whether the specified name has artist.
|
/// 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();
|
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -65,6 +65,31 @@ namespace MediaBrowser.Controller.Entities
|
||||||
return GetPlayableStreamFiles(Path);
|
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>
|
/// <summary>
|
||||||
/// Gets the playable stream files.
|
/// Gets the playable stream files.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -70,6 +70,7 @@
|
||||||
<Compile Include="..\SharedVersion.cs">
|
<Compile Include="..\SharedVersion.cs">
|
||||||
<Link>Properties\SharedVersion.cs</Link>
|
<Link>Properties\SharedVersion.cs</Link>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="Entities\AdultVideo.cs" />
|
||||||
<Compile Include="Notifications\Configuration\IServerConfigurationManager.cs" />
|
<Compile Include="Notifications\Configuration\IServerConfigurationManager.cs" />
|
||||||
<Compile Include="Dto\SessionInfoDtoBuilder.cs" />
|
<Compile Include="Dto\SessionInfoDtoBuilder.cs" />
|
||||||
<Compile Include="Entities\Audio\MusicAlbumDisc.cs" />
|
<Compile Include="Entities\Audio\MusicAlbumDisc.cs" />
|
||||||
|
|
|
@ -11,6 +11,7 @@ namespace MediaBrowser.Model.Dto
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <value>The total count.</value>
|
/// <value>The total count.</value>
|
||||||
public int TotalCount { get; set; }
|
public int TotalCount { get; set; }
|
||||||
|
public int AdultVideoCount { get; set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the movie count.
|
/// Gets or sets the movie count.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -6,6 +6,7 @@ namespace MediaBrowser.Model.Dto
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class ItemCounts
|
public class ItemCounts
|
||||||
{
|
{
|
||||||
|
public int AdultVideoCount { get; set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the movie count.
|
/// Gets or sets the movie count.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -16,5 +16,7 @@ namespace MediaBrowser.Model.Entities
|
||||||
public const string HomeVideos = "homevideos";
|
public const string HomeVideos = "homevideos";
|
||||||
|
|
||||||
public const string BoxSets = "boxsets";
|
public const string BoxSets = "boxsets";
|
||||||
|
|
||||||
|
public const string AdultVideos = "adultvideos";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -353,7 +353,7 @@ namespace MediaBrowser.Providers.MediaInfo
|
||||||
/// <param name="video">The video.</param>
|
/// <param name="video">The video.</param>
|
||||||
private void AddExternalSubtitles(Video video)
|
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)
|
if (useParent && video.Parent == null)
|
||||||
{
|
{
|
||||||
|
|
|
@ -47,7 +47,7 @@ namespace MediaBrowser.Providers.Savers
|
||||||
return !trailer.IsLocalTrailer;
|
return !trailer.IsLocalTrailer;
|
||||||
}
|
}
|
||||||
|
|
||||||
return item is Movie || item is MusicVideo;
|
return item is Movie || item is MusicVideo || item is AdultVideo;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -89,6 +89,12 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Movies
|
||||||
return FindMovie<MusicVideo>(args.Path, args.FileSystemChildren);
|
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) &&
|
if (!string.IsNullOrEmpty(collectionType) &&
|
||||||
!string.Equals(collectionType, CollectionType.Movies, StringComparison.OrdinalIgnoreCase))
|
!string.Equals(collectionType, CollectionType.Movies, StringComparison.OrdinalIgnoreCase))
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue