< Summary - Jellyfin

Information
Class: MediaBrowser.Controller.Entities.Book
Assembly: MediaBrowser.Controller
File(s): /srv/git/jellyfin/MediaBrowser.Controller/Entities/Book.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 15
Coverable lines: 15
Total lines: 83
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 2
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Coverage history

Coverage history 0 25 50 75 100 4/15/2026 - 12:14:34 AM Line coverage: 16.6% (3/18) Branch coverage: 0% (0/2) Total lines: 887/22/2026 - 12:16:22 AM Line coverage: 0% (0/15) Branch coverage: 0% (0/2) Total lines: 83 4/15/2026 - 12:14:34 AM Line coverage: 16.6% (3/18) Branch coverage: 0% (0/2) Total lines: 887/22/2026 - 12:16:22 AM Line coverage: 0% (0/15) Branch coverage: 0% (0/2) Total lines: 83

Coverage delta

Coverage delta 17 -17

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_MediaType()100%210%
get_SupportsPlayedStatus()100%210%
get_SupportsPositionTicksResume()100%210%
get_SupportsPeople()100%210%
FindSeriesSortName()100%210%
FindSeriesName()100%210%
FindSeriesPresentationUniqueKey()100%210%
FindSeriesId()100%210%
CanDownload()100%210%
GetBlockUnratedType()100%210%
GetLookupInfo()0%620%

File(s)

/srv/git/jellyfin/MediaBrowser.Controller/Entities/Book.cs

#LineLine coverage
 1#nullable disable
 2
 3#pragma warning disable CS1591
 4
 5using System;
 6using System.Linq;
 7using System.Text.Json.Serialization;
 8using Jellyfin.Data.Enums;
 9using MediaBrowser.Controller.Providers;
 10
 11namespace MediaBrowser.Controller.Entities
 12{
 13    [Common.RequiresSourceSerialisation]
 14    public class Book : BaseItem, IHasLookupInfo<BookInfo>, IHasSeries
 15    {
 16        [JsonIgnore]
 017        public override MediaType MediaType => MediaType.Book;
 18
 019        public override bool SupportsPlayedStatus => true;
 20
 021        public override bool SupportsPositionTicksResume => true;
 22
 23        [JsonIgnore]
 024        public override bool SupportsPeople => true;
 25
 26        [JsonIgnore]
 27        public string SeriesPresentationUniqueKey { get; set; }
 28
 29        [JsonIgnore]
 30        public string SeriesName { get; set; }
 31
 32        [JsonIgnore]
 33        public Guid SeriesId { get; set; }
 34
 35        public string FindSeriesSortName()
 36        {
 037            return SeriesName;
 38        }
 39
 40        public string FindSeriesName()
 41        {
 042            return SeriesName;
 43        }
 44
 45        public string FindSeriesPresentationUniqueKey()
 46        {
 047            return SeriesPresentationUniqueKey;
 48        }
 49
 50        public Guid FindSeriesId()
 51        {
 052            return SeriesId;
 53        }
 54
 55        /// <inheritdoc />
 56        public override bool CanDownload()
 57        {
 058            return IsFileProtocol;
 59        }
 60
 61        /// <inheritdoc />
 62        public override UnratedItem GetBlockUnratedType()
 63        {
 064            return UnratedItem.Book;
 65        }
 66
 67        public BookInfo GetLookupInfo()
 68        {
 069            var info = GetItemLookupInfo<BookInfo>();
 70
 071            if (string.IsNullOrEmpty(SeriesName))
 72            {
 073                info.SeriesName = GetParents().Select(i => i.Name).FirstOrDefault();
 74            }
 75            else
 76            {
 077                info.SeriesName = SeriesName;
 78            }
 79
 080            return info;
 81        }
 82    }
 83}