瀏覽代碼

use the custom server for external ids

dkanada 5 年之前
父節點
當前提交
e80444d11b

+ 32 - 4
MediaBrowser.Providers/Plugins/MusicBrainz/Configuration/PluginConfiguration.cs

@@ -1,13 +1,41 @@
-using System.Collections.Generic;
-using MediaBrowser.Model.Plugins;
+using MediaBrowser.Model.Plugins;
 
 namespace MediaBrowser.Providers.Plugins.MusicBrainz
 {
     public class PluginConfiguration : BasePluginConfiguration
     {
-        public string Server { get; set; } = "https://www.musicbrainz.org";
+        private string server = Plugin.Instance.DefaultServer;
 
-        public long RateLimit { get; set; } = 1000u;
+        private long rateLimit = Plugin.Instance.DefaultRateLimit;
+
+        public string Server
+        {
+            get
+            {
+                return server;
+            }
+
+            set
+            {
+                server = value.TrimEnd('/');
+            }
+        }
+
+        public long RateLimit
+        {
+            get
+            {
+                return rateLimit;
+            }
+
+            set
+            {
+                if (value < 2000u && server == Plugin.Instance.DefaultServer)
+                {
+                    RateLimit = Plugin.Instance.DefaultRateLimit;
+                }
+            }
+        }
 
         public bool Enable { get; set; }
 

+ 4 - 4
MediaBrowser.Providers/Plugins/MusicBrainz/Configuration/config.html

@@ -9,12 +9,12 @@
             <div class="content-primary">
                 <form class="musicBrainzConfigForm">
                     <div class="inputContainer">
-                        <input is="emby-input" type="text" id="server" label="Server:" />
-                        <div class="fieldDescription">This can either be a mirror of the official server or a custom server.</div>
+                        <input is="emby-input" type="text" id="server" required label="Server" />
+                        <div class="fieldDescription">This can be a mirror of the official server or even a custom server.</div>
                     </div>
                     <div class="inputContainer">
-                        <input is="emby-input" type="number" id="rateLimit" pattern="[0-9]*" required min="400" max="10000" label="Rate Limit:" />
-                        <div class="fieldDescription">Span of time between each request in milliseconds.</div>
+                        <input is="emby-input" type="number" id="rateLimit" pattern="[0-9]*" required min="0" max="10000" label="Rate Limit" />
+                        <div class="fieldDescription">Span of time between requests in milliseconds. The official server is limited to one request every two seconds.</div>
                     </div>
                     <label class="checkboxContainer">
                         <input is="emby-checkbox" type="checkbox" id="enable" />

+ 11 - 14
MediaBrowser.Providers/Plugins/MusicBrainz/ExternalIds.cs

@@ -1,6 +1,7 @@
 using MediaBrowser.Controller.Entities.Audio;
 using MediaBrowser.Controller.Providers;
 using MediaBrowser.Model.Entities;
+using MediaBrowser.Providers.Plugins.MusicBrainz;
 
 namespace MediaBrowser.Providers.Music
 {
@@ -13,11 +14,10 @@ namespace MediaBrowser.Providers.Music
         public string Key => MetadataProviders.MusicBrainzReleaseGroup.ToString();
 
         /// <inheritdoc />
-        public string UrlFormatString => "https://musicbrainz.org/release-group/{0}";
+        public string UrlFormatString => Plugin.Instance.Configuration.Server + "/release-group/{0}";
 
         /// <inheritdoc />
-        public bool Supports(IHasProviderIds item)
-            => item is Audio || item is MusicAlbum;
+        public bool Supports(IHasProviderIds item) => item is Audio || item is MusicAlbum;
     }
 
     public class MusicBrainzAlbumArtistExternalId : IExternalId
@@ -29,11 +29,10 @@ namespace MediaBrowser.Providers.Music
         public string Key => MetadataProviders.MusicBrainzAlbumArtist.ToString();
 
         /// <inheritdoc />
-        public string UrlFormatString => "https://musicbrainz.org/artist/{0}";
+        public string UrlFormatString => Plugin.Instance.Configuration.Server + "/artist/{0}";
 
         /// <inheritdoc />
-        public bool Supports(IHasProviderIds item)
-            => item is Audio;
+        public bool Supports(IHasProviderIds item) => item is Audio;
     }
 
     public class MusicBrainzAlbumExternalId : IExternalId
@@ -45,11 +44,10 @@ namespace MediaBrowser.Providers.Music
         public string Key => MetadataProviders.MusicBrainzAlbum.ToString();
 
         /// <inheritdoc />
-        public string UrlFormatString => "https://musicbrainz.org/release/{0}";
+        public string UrlFormatString => Plugin.Instance.Configuration.Server + "/release/{0}";
 
         /// <inheritdoc />
-        public bool Supports(IHasProviderIds item)
-            => item is Audio || item is MusicAlbum;
+        public bool Supports(IHasProviderIds item) => item is Audio || item is MusicAlbum;
     }
 
     public class MusicBrainzArtistExternalId : IExternalId
@@ -61,7 +59,7 @@ namespace MediaBrowser.Providers.Music
         public string Key => MetadataProviders.MusicBrainzArtist.ToString();
 
         /// <inheritdoc />
-        public string UrlFormatString => "https://musicbrainz.org/artist/{0}";
+        public string UrlFormatString => Plugin.Instance.Configuration.Server + "/artist/{0}";
 
         /// <inheritdoc />
         public bool Supports(IHasProviderIds item) => item is MusicArtist;
@@ -77,11 +75,10 @@ namespace MediaBrowser.Providers.Music
         public string Key => MetadataProviders.MusicBrainzArtist.ToString();
 
         /// <inheritdoc />
-        public string UrlFormatString => "https://musicbrainz.org/artist/{0}";
+        public string UrlFormatString => Plugin.Instance.Configuration.Server + "/artist/{0}";
 
         /// <inheritdoc />
-        public bool Supports(IHasProviderIds item)
-            => item is Audio || item is MusicAlbum;
+        public bool Supports(IHasProviderIds item) => item is Audio || item is MusicAlbum;
     }
 
     public class MusicBrainzTrackId : IExternalId
@@ -93,7 +90,7 @@ namespace MediaBrowser.Providers.Music
         public string Key => MetadataProviders.MusicBrainzTrack.ToString();
 
         /// <inheritdoc />
-        public string UrlFormatString => "https://musicbrainz.org/track/{0}";
+        public string UrlFormatString => Plugin.Instance.Configuration.Server + "/track/{0}";
 
         /// <inheritdoc />
         public bool Supports(IHasProviderIds item) => item is Audio;

+ 12 - 8
MediaBrowser.Providers/Plugins/MusicBrainz/Plugin.cs

@@ -9,6 +9,18 @@ namespace MediaBrowser.Providers.Plugins.MusicBrainz
 {
     public class Plugin : BasePlugin<PluginConfiguration>, IHasWebPages
     {
+        public static Plugin Instance { get; private set; }
+
+        public override Guid Id => new Guid("8c95c4d2-e50c-4fb0-a4f3-6c06ff0f9a1a");
+
+        public override string Name => "MusicBrainz";
+
+        public override string Description => "Get artist and album metadata from any MusicBrainz server.";
+
+        public string DefaultServer = "https://musicbrainz.org";
+
+        public long DefaultRateLimit = 2000u;
+
         public Plugin(IApplicationPaths applicationPaths, IXmlSerializer xmlSerializer)
             : base(applicationPaths, xmlSerializer)
         {
@@ -23,13 +35,5 @@ namespace MediaBrowser.Providers.Plugins.MusicBrainz
                 EmbeddedResourcePath = GetType().Namespace + ".Configuration.config.html"
             };
         }
-
-        public override Guid Id => new Guid("8c95c4d2-e50c-4fb0-a4f3-6c06ff0f9a1a");
-
-        public override string Name => "MusicBrainz";
-
-        public override string Description => "Get artist and album metadata from any MusicBrainz server.";
-
-        public static Plugin Instance { get; private set; }
     }
 }