aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Emby.Server.Implementations/ConfigurationOptions.cs1
-rw-r--r--Emby.Server.Implementations/HttpServer/HttpListenerHost.cs2
-rw-r--r--MediaBrowser.Controller/Extensions/ConfigurationExtensions.cs31
-rw-r--r--MediaBrowser.Providers/Music/MusicBrainzAlbumProvider.cs2
4 files changed, 34 insertions, 2 deletions
diff --git a/Emby.Server.Implementations/ConfigurationOptions.cs b/Emby.Server.Implementations/ConfigurationOptions.cs
index cc0d314ed..08a493cb7 100644
--- a/Emby.Server.Implementations/ConfigurationOptions.cs
+++ b/Emby.Server.Implementations/ConfigurationOptions.cs
@@ -15,6 +15,7 @@ namespace Emby.Server.Implementations
/// </summary>
public static Dictionary<string, string> DefaultConfiguration => new Dictionary<string, string>
{
+ { NoWebContentKey, bool.FalseString },
{ HttpListenerHost.DefaultRedirectKey, "web/index.html" },
{ MusicBrainzAlbumProvider.BaseUrlKey, "https://www.musicbrainz.org" },
{ FfmpegProbeSizeKey, "1G" },
diff --git a/Emby.Server.Implementations/HttpServer/HttpListenerHost.cs b/Emby.Server.Implementations/HttpServer/HttpListenerHost.cs
index 7f16c6834..546a59517 100644
--- a/Emby.Server.Implementations/HttpServer/HttpListenerHost.cs
+++ b/Emby.Server.Implementations/HttpServer/HttpListenerHost.cs
@@ -31,7 +31,7 @@ namespace Emby.Server.Implementations.HttpServer
public class HttpListenerHost : IHttpServer, IDisposable
{
/// <summary>
- /// The settings key for a setting that specifies the default redirect path
+ /// The key for a setting that specifies the default redirect path
/// to use for requests where the URL base prefix is invalid or missing.
/// </summary>
public const string DefaultRedirectKey = "HttpListenerHost:DefaultRedirectPath";
diff --git a/MediaBrowser.Controller/Extensions/ConfigurationExtensions.cs b/MediaBrowser.Controller/Extensions/ConfigurationExtensions.cs
index 76c9b4b26..9dbc1a243 100644
--- a/MediaBrowser.Controller/Extensions/ConfigurationExtensions.cs
+++ b/MediaBrowser.Controller/Extensions/ConfigurationExtensions.cs
@@ -1,3 +1,4 @@
+using System;
using Microsoft.Extensions.Configuration;
namespace MediaBrowser.Controller.Extensions
@@ -8,6 +9,11 @@ namespace MediaBrowser.Controller.Extensions
public static class ConfigurationExtensions
{
/// <summary>
+ /// The key for a setting that indicates whether the application should host static web content.
+ /// </summary>
+ public const string NoWebContentKey = "nowebcontent";
+
+ /// <summary>
/// The key for the FFmpeg probe size option.
/// </summary>
public const string FfmpegProbeSizeKey = "FFmpeg:probesize";
@@ -18,6 +24,16 @@ namespace MediaBrowser.Controller.Extensions
public const string FfmpegAnalyzeDurationKey = "FFmpeg:analyzeduration";
/// <summary>
+ /// Retrieves a config value indicating whether the application should not host
+ /// static web content from the <see cref="IConfiguration"/>.
+ /// </summary>
+ /// <param name="configuration">The configuration to retrieve the value from.</param>
+ /// <returns>The parsed config value.</returns>
+ /// <exception cref="FormatException">The config value is not a valid bool string. See <see cref="bool.Parse(string)"/>.</exception>
+ public static bool IsNoWebContent(this IConfiguration configuration)
+ => configuration.ParseBoolean(NoWebContentKey);
+
+ /// <summary>
/// Retrieves the FFmpeg probe size from the <see cref="IConfiguration" />.
/// </summary>
/// <param name="configuration">This configuration.</param>
@@ -32,5 +48,20 @@ namespace MediaBrowser.Controller.Extensions
/// <returns>The FFmpeg analyse duration option.</returns>
public static string GetFFmpegAnalyzeDuration(this IConfiguration configuration)
=> configuration[FfmpegAnalyzeDurationKey];
+
+ /// <summary>
+ /// Convert the specified configuration string value its <see cref="bool"/> equivalent.
+ /// </summary>
+ /// <param name="configuration">The configuration to retrieve and parse the setting from.</param>
+ /// <param name="key">The key to use to retrieve the string value from the configuration.</param>
+ /// <returns>The parsed boolean value.</returns>
+ /// <exception cref="FormatException">The config value is not a valid bool string. See <see cref="bool.Parse(string)"/>.</exception>
+ public static bool ParseBoolean(this IConfiguration configuration, string key)
+ {
+ string configValue = configuration[key];
+ return bool.TryParse(configValue, out bool result) ?
+ result :
+ throw new FormatException($"Invalid value for configuration option '{key}' (expected a boolean): {configValue}");
+ }
}
}
diff --git a/MediaBrowser.Providers/Music/MusicBrainzAlbumProvider.cs b/MediaBrowser.Providers/Music/MusicBrainzAlbumProvider.cs
index ed7688e5a..d217c6ad2 100644
--- a/MediaBrowser.Providers/Music/MusicBrainzAlbumProvider.cs
+++ b/MediaBrowser.Providers/Music/MusicBrainzAlbumProvider.cs
@@ -23,7 +23,7 @@ namespace MediaBrowser.Providers.Music
public class MusicBrainzAlbumProvider : IRemoteMetadataProvider<MusicAlbum, AlbumInfo>, IHasOrder
{
/// <summary>
- /// The settings key for a setting that specifies the base URL to use for sending requests to MusicBrainz.
+ /// The key for a setting that specifies the base URL to use for sending requests to MusicBrainz.
/// </summary>
public const string BaseUrlKey = "MusicBrainz:BaseUrl";