Forráskód Böngészése

Add a configuration flag to allow/disallow duplicates in playlists

Mark Monteiro 5 éve
szülő
commit
79413d9f33

+ 2 - 1
Emby.Server.Implementations/ConfigurationOptions.cs

@@ -9,7 +9,8 @@ namespace Emby.Server.Implementations
         {
             { "HttpListenerHost:DefaultRedirectPath", "web/index.html" },
             { FfmpegProbeSizeKey, "1G" },
-            { FfmpegAnalyzeDurationKey, "200M" }
+            { FfmpegAnalyzeDurationKey, "200M" },
+            { PlaylistsAllowDuplicatesKey, bool.TrueString }
         };
     }
 }

+ 19 - 6
MediaBrowser.Controller/Extensions/ConfigurationExtensions.cs

@@ -13,24 +13,37 @@ namespace MediaBrowser.Controller.Extensions
         public const string FfmpegProbeSizeKey = "FFmpeg:probesize";
 
         /// <summary>
-        /// The key for the FFmpeg analyse duration option.
+        /// The key for the FFmpeg analyze duration option.
         /// </summary>
         public const string FfmpegAnalyzeDurationKey = "FFmpeg:analyzeduration";
 
         /// <summary>
-        /// Retrieves the FFmpeg probe size from the <see cref="IConfiguration" />.
+        /// The key for a setting that indicates whether playlists should allow duplicate entries.
         /// </summary>
-        /// <param name="configuration">This configuration.</param>
+        public const string PlaylistsAllowDuplicatesKey = "playlists:allowDuplicates";
+
+        /// <summary>
+        /// Gets the FFmpeg probe size from the <see cref="IConfiguration" />.
+        /// </summary>
+        /// <param name="configuration">The configuration to read the setting from.</param>
         /// <returns>The FFmpeg probe size option.</returns>
         public static string GetFFmpegProbeSize(this IConfiguration configuration)
             => configuration[FfmpegProbeSizeKey];
 
         /// <summary>
-        /// Retrieves the FFmpeg analyse duration from the <see cref="IConfiguration" />.
+        /// Gets the FFmpeg analyze duration from the <see cref="IConfiguration" />.
         /// </summary>
-        /// <param name="configuration">This configuration.</param>
-        /// <returns>The FFmpeg analyse duration option.</returns>
+        /// <param name="configuration">The configuration to read the setting from.</param>
+        /// <returns>The FFmpeg analyze duration option.</returns>
         public static string GetFFmpegAnalyzeDuration(this IConfiguration configuration)
             => configuration[FfmpegAnalyzeDurationKey];
+
+        /// <summary>
+        /// Gets a value indicating whether playlists should allow duplicate entries from the <see cref="IConfiguration"/>.
+        /// </summary>
+        /// <param name="configuration">The configuration to read the setting from.</param>
+        /// <returns>True if playlists should allow duplicates, otherwise false.</returns>
+        public static bool DoPlaylistsAllowDuplicates(this IConfiguration configuration)
+            => configuration.GetValue<bool>(PlaylistsAllowDuplicatesKey);
     }
 }

+ 1 - 0
MediaBrowser.Controller/MediaBrowser.Controller.csproj

@@ -9,6 +9,7 @@
 
   <ItemGroup>
     <PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="3.1.1" />
+    <PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="3.1.1" />
   </ItemGroup>
 
   <ItemGroup>