154 lines
4.9 KiB
C#
154 lines
4.9 KiB
C#
#pragma warning disable CS1591
|
|
|
|
using System;
|
|
using System.ComponentModel;
|
|
|
|
namespace MediaBrowser.Model.Configuration
|
|
{
|
|
public class LibraryOptions
|
|
{
|
|
private static readonly char[] _defaultTagDelimiters = ['/', '|', ';', '\\'];
|
|
|
|
public LibraryOptions()
|
|
{
|
|
TypeOptions = Array.Empty<TypeOptions>();
|
|
DisabledSubtitleFetchers = Array.Empty<string>();
|
|
DisabledMediaSegmentProviders = Array.Empty<string>();
|
|
MediaSegmentProvideOrder = Array.Empty<string>();
|
|
SubtitleFetcherOrder = Array.Empty<string>();
|
|
DisabledLocalMetadataReaders = Array.Empty<string>();
|
|
DisabledLyricFetchers = Array.Empty<string>();
|
|
LyricFetcherOrder = Array.Empty<string>();
|
|
|
|
SkipSubtitlesIfAudioTrackMatches = true;
|
|
RequirePerfectSubtitleMatch = true;
|
|
AllowEmbeddedSubtitles = EmbeddedSubtitleOptions.AllowAll;
|
|
|
|
AutomaticallyAddToCollection = false;
|
|
EnablePhotos = true;
|
|
SaveSubtitlesWithMedia = true;
|
|
SaveLyricsWithMedia = false;
|
|
SaveTrickplayWithMedia = false;
|
|
PathInfos = Array.Empty<MediaPathInfo>();
|
|
EnableAutomaticSeriesGrouping = true;
|
|
SeasonZeroDisplayName = "Specials";
|
|
|
|
PreferNonstandardArtistsTag = false;
|
|
UseCustomTagDelimiters = false;
|
|
CustomTagDelimiters = _defaultTagDelimiters;
|
|
DelimiterWhitelist = Array.Empty<string>();
|
|
}
|
|
|
|
public bool Enabled { get; set; } = true;
|
|
|
|
public bool EnablePhotos { get; set; }
|
|
|
|
public bool EnableRealtimeMonitor { get; set; }
|
|
|
|
public bool EnableLUFSScan { get; set; }
|
|
|
|
public bool EnableChapterImageExtraction { get; set; }
|
|
|
|
public bool ExtractChapterImagesDuringLibraryScan { get; set; }
|
|
|
|
public bool EnableTrickplayImageExtraction { get; set; }
|
|
|
|
public bool ExtractTrickplayImagesDuringLibraryScan { get; set; }
|
|
|
|
public MediaPathInfo[] PathInfos { get; set; }
|
|
|
|
public bool SaveLocalMetadata { get; set; }
|
|
|
|
[Obsolete("Disable remote providers in TypeOptions instead")]
|
|
public bool EnableInternetProviders { get; set; }
|
|
|
|
public bool EnableAutomaticSeriesGrouping { get; set; }
|
|
|
|
public bool EnableEmbeddedTitles { get; set; }
|
|
|
|
public bool EnableEmbeddedExtrasTitles { get; set; }
|
|
|
|
public bool EnableEmbeddedEpisodeInfos { get; set; }
|
|
|
|
public int AutomaticRefreshIntervalDays { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets the preferred metadata language.
|
|
/// </summary>
|
|
/// <value>The preferred metadata language.</value>
|
|
public string? PreferredMetadataLanguage { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets the metadata country code.
|
|
/// </summary>
|
|
/// <value>The metadata country code.</value>
|
|
public string? MetadataCountryCode { get; set; }
|
|
|
|
public string SeasonZeroDisplayName { get; set; }
|
|
|
|
public string[]? MetadataSavers { get; set; }
|
|
|
|
public string[] DisabledLocalMetadataReaders { get; set; }
|
|
|
|
public string[]? LocalMetadataReaderOrder { get; set; }
|
|
|
|
public string[] DisabledSubtitleFetchers { get; set; }
|
|
|
|
public string[] SubtitleFetcherOrder { get; set; }
|
|
|
|
public string[] DisabledMediaSegmentProviders { get; set; }
|
|
|
|
public string[] MediaSegmentProvideOrder { get; set; }
|
|
|
|
public bool SkipSubtitlesIfEmbeddedSubtitlesPresent { get; set; }
|
|
|
|
public bool SkipSubtitlesIfAudioTrackMatches { get; set; }
|
|
|
|
public string[]? SubtitleDownloadLanguages { get; set; }
|
|
|
|
public bool RequirePerfectSubtitleMatch { get; set; }
|
|
|
|
public bool SaveSubtitlesWithMedia { get; set; }
|
|
|
|
[DefaultValue(false)]
|
|
public bool SaveLyricsWithMedia { get; set; }
|
|
|
|
[DefaultValue(false)]
|
|
public bool SaveTrickplayWithMedia { get; set; }
|
|
|
|
public string[] DisabledLyricFetchers { get; set; }
|
|
|
|
public string[] LyricFetcherOrder { get; set; }
|
|
|
|
[DefaultValue(false)]
|
|
public bool PreferNonstandardArtistsTag { get; set; }
|
|
|
|
[DefaultValue(false)]
|
|
public bool UseCustomTagDelimiters { get; set; }
|
|
|
|
[DefaultValue(typeof(LibraryOptions), nameof(_defaultTagDelimiters))]
|
|
public char[] CustomTagDelimiters { get; set; }
|
|
|
|
public string[] DelimiterWhitelist { get; set; }
|
|
|
|
public bool AutomaticallyAddToCollection { get; set; }
|
|
|
|
public EmbeddedSubtitleOptions AllowEmbeddedSubtitles { get; set; }
|
|
|
|
public TypeOptions[] TypeOptions { get; set; }
|
|
|
|
public TypeOptions? GetTypeOptions(string type)
|
|
{
|
|
foreach (var options in TypeOptions)
|
|
{
|
|
if (string.Equals(options.Type, type, StringComparison.OrdinalIgnoreCase))
|
|
{
|
|
return options;
|
|
}
|
|
}
|
|
|
|
return null;
|
|
}
|
|
}
|
|
}
|