< Summary - Jellyfin

Information
Class: MediaBrowser.Controller.Providers.MetadataRefreshOptions
Assembly: MediaBrowser.Controller
File(s): /srv/git/jellyfin/MediaBrowser.Controller/Providers/MetadataRefreshOptions.cs
Line coverage
86%
Covered lines: 19
Uncovered lines: 3
Coverable lines: 22
Total lines: 77
Line coverage: 86.3%
Branch coverage
25%
Covered branches: 3
Total branches: 12
Branch coverage: 25%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Coverage history

Coverage history 0 25 50 75 100 5/6/2026 - 12:15:23 AM Line coverage: 22.7% (5/22) Branch coverage: 16.6% (2/12) Total lines: 778/6/2026 - 12:17:15 AM Line coverage: 86.3% (19/22) Branch coverage: 25% (3/12) Total lines: 77 5/6/2026 - 12:15:23 AM Line coverage: 22.7% (5/22) Branch coverage: 16.6% (2/12) Total lines: 778/6/2026 - 12:17:15 AM Line coverage: 86.3% (19/22) Branch coverage: 25% (3/12) Total lines: 77

Coverage delta

Coverage delta 64 -64

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
.ctor(...)16.66%6687.5%
RefreshItem(...)33.33%7666.66%

File(s)

/srv/git/jellyfin/MediaBrowser.Controller/Providers/MetadataRefreshOptions.cs

#LineLine coverage
 1#nullable disable
 2
 3#pragma warning disable CA1819, CS1591
 4
 5using System;
 6using System.Linq;
 7using Jellyfin.Extensions;
 8using MediaBrowser.Controller.Entities;
 9using MediaBrowser.Model.Providers;
 10
 11namespace MediaBrowser.Controller.Providers
 12{
 13    public class MetadataRefreshOptions : ImageRefreshOptions
 14    {
 15        public MetadataRefreshOptions(IDirectoryService directoryService)
 12816            : base(directoryService)
 17        {
 12818            MetadataRefreshMode = MetadataRefreshMode.Default;
 12819        }
 20
 21        public MetadataRefreshOptions(MetadataRefreshOptions copy)
 222            : base(copy.DirectoryService)
 23        {
 224            MetadataRefreshMode = copy.MetadataRefreshMode;
 225            ForceSave = copy.ForceSave;
 226            ReplaceAllMetadata = copy.ReplaceAllMetadata;
 227            EnableRemoteContentProbe = copy.EnableRemoteContentProbe;
 28
 229            IsAutomated = copy.IsAutomated;
 230            ImageRefreshMode = copy.ImageRefreshMode;
 231            ReplaceAllImages = copy.ReplaceAllImages;
 232            RegenerateTrickplay = copy.RegenerateTrickplay;
 233            ReplaceImages = copy.ReplaceImages;
 234            SearchResult = copy.SearchResult;
 235            RemoveOldMetadata = copy.RemoveOldMetadata;
 36
 237            if (copy.RefreshPaths is not null && copy.RefreshPaths.Length > 0)
 38            {
 039                RefreshPaths ??= Array.Empty<string>();
 40
 041                RefreshPaths = copy.RefreshPaths.ToArray();
 42            }
 243        }
 44
 45        /// <summary>
 46        /// Gets or sets a value indicating whether all existing data should be overwritten with new data from providers
 47        /// when paired with MetadataRefreshMode=FullRefresh.
 48        /// </summary>
 49        public bool ReplaceAllMetadata { get; set; }
 50
 51        /// <summary>
 52        /// Gets or sets a value indicating whether all existing trickplay images should be overwritten
 53        /// when paired with MetadataRefreshMode=FullRefresh.
 54        /// </summary>
 55        public bool RegenerateTrickplay { get; set; }
 56
 57        public MetadataRefreshMode MetadataRefreshMode { get; set; }
 58
 59        public RemoteSearchResult SearchResult { get; set; }
 60
 61        public string[] RefreshPaths { get; set; }
 62
 63        public bool ForceSave { get; set; }
 64
 65        public bool EnableRemoteContentProbe { get; set; }
 66
 67        public bool RefreshItem(BaseItem item)
 68        {
 769            if (RefreshPaths is not null && RefreshPaths.Length > 0)
 70            {
 071                return RefreshPaths.Contains(item.Path ?? string.Empty, StringComparison.OrdinalIgnoreCase);
 72            }
 73
 774            return true;
 75        }
 76    }
 77}