Book.cs 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. #nullable disable
  2. #pragma warning disable CS1591
  3. using System;
  4. using System.Linq;
  5. using System.Text.Json.Serialization;
  6. using Jellyfin.Data.Enums;
  7. using MediaBrowser.Controller.Providers;
  8. namespace MediaBrowser.Controller.Entities
  9. {
  10. [Common.RequiresSourceSerialisation]
  11. public class Book : BaseItem, IHasLookupInfo<BookInfo>, IHasSeries
  12. {
  13. public Book()
  14. {
  15. this.RunTimeTicks = TimeSpan.TicksPerSecond;
  16. }
  17. [JsonIgnore]
  18. public override MediaType MediaType => MediaType.Book;
  19. public override bool SupportsPlayedStatus => true;
  20. public override bool SupportsPositionTicksResume => true;
  21. [JsonIgnore]
  22. public override bool SupportsPeople => true;
  23. [JsonIgnore]
  24. public string SeriesPresentationUniqueKey { get; set; }
  25. [JsonIgnore]
  26. public string SeriesName { get; set; }
  27. [JsonIgnore]
  28. public Guid SeriesId { get; set; }
  29. public string FindSeriesSortName()
  30. {
  31. return SeriesName;
  32. }
  33. public string FindSeriesName()
  34. {
  35. return SeriesName;
  36. }
  37. public string FindSeriesPresentationUniqueKey()
  38. {
  39. return SeriesPresentationUniqueKey;
  40. }
  41. public Guid FindSeriesId()
  42. {
  43. return SeriesId;
  44. }
  45. /// <inheritdoc />
  46. public override bool CanDownload()
  47. {
  48. return IsFileProtocol;
  49. }
  50. /// <inheritdoc />
  51. public override UnratedItem GetBlockUnratedType()
  52. {
  53. return UnratedItem.Book;
  54. }
  55. public BookInfo GetLookupInfo()
  56. {
  57. var info = GetItemLookupInfo<BookInfo>();
  58. if (string.IsNullOrEmpty(SeriesName))
  59. {
  60. info.SeriesName = GetParents().Select(i => i.Name).FirstOrDefault();
  61. }
  62. else
  63. {
  64. info.SeriesName = SeriesName;
  65. }
  66. return info;
  67. }
  68. }
  69. }