76 lines
2.0 KiB
C#
76 lines
2.0 KiB
C#
using System.Globalization;
|
|
using CinemaLib.API;
|
|
using Jellyfin.Database.Implementations.Entities;
|
|
using Jellyfin.Data.Enums;
|
|
using MediaBrowser.Controller.Entities;
|
|
using MediaBrowser.Controller.Entities.TV;
|
|
using MediaBrowser.Model.Querying;
|
|
|
|
namespace Jellyfin.Plugin.Cinema;
|
|
|
|
/// <summary>
|
|
/// Season folder item from Cinema.
|
|
/// </summary>
|
|
public sealed class CinemaSeason : Season, ICinemaChildrenCount
|
|
{
|
|
private CinemaSubfolderHelper _helper;
|
|
|
|
public CinemaSeason()
|
|
{
|
|
this._helper = new CinemaSubfolderHelper(this, FilterSortBy.Episode);
|
|
}
|
|
|
|
public override List<string> GetUserDataKeys()
|
|
{
|
|
return new List<string>() { ExternalId };
|
|
}
|
|
|
|
#region ICinemaChildrenCountMembers
|
|
|
|
public int ChildrenCount
|
|
{
|
|
get => _helper.ChildrenCount;
|
|
set => _helper.ChildrenCount = value;
|
|
}
|
|
|
|
public int TotalChildrenCount
|
|
{
|
|
get => _helper.TotalChildrenCount;
|
|
set => _helper.TotalChildrenCount = value;
|
|
}
|
|
|
|
#endregion
|
|
|
|
public sealed override string GetClientTypeName() => BaseItemKind.Season.ToString();
|
|
|
|
public override int GetChildCount(User user)
|
|
{
|
|
return _helper.ChildrenCount;
|
|
}
|
|
|
|
public override int GetRecursiveChildCount(User user)
|
|
{
|
|
return _helper.TotalChildrenCount;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Always false as it causes iteration of all our items that degrades performance
|
|
/// in the CinemaTvShowsFolder.
|
|
/// </summary>
|
|
public override bool SupportsPlayedStatus => false;
|
|
|
|
/// <summary>
|
|
/// Let the hack in <see cref="CinemaLibraryManager"/> find us.
|
|
/// </summary>
|
|
public override string CreatePresentationUniqueKey() => Id.ToString("N", CultureInfo.InvariantCulture);
|
|
|
|
public override List<BaseItem> GetChildren(User user, bool includeLinkedChildren, InternalItemsQuery query)
|
|
{
|
|
return (List<BaseItem>)_helper.GetItemsInternal<Folder>(query, false).Items;
|
|
}
|
|
|
|
protected override QueryResult<BaseItem> GetItemsInternal(InternalItemsQuery query)
|
|
{
|
|
return _helper.GetItemsInternal<Folder>(query, false);
|
|
}
|
|
} |