diff options
4 files changed, 59 insertions, 30 deletions
diff --git a/MediaBrowser.Providers/Plugins/MusicBrainz/Configuration/PluginConfiguration.cs b/MediaBrowser.Providers/Plugins/MusicBrainz/Configuration/PluginConfiguration.cs index 607ba0cbc..bd13cdddd 100644 --- a/MediaBrowser.Providers/Plugins/MusicBrainz/Configuration/PluginConfiguration.cs +++ b/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; } diff --git a/MediaBrowser.Providers/Plugins/MusicBrainz/Configuration/config.html b/MediaBrowser.Providers/Plugins/MusicBrainz/Configuration/config.html index dfffa9065..1f02461da 100644 --- a/MediaBrowser.Providers/Plugins/MusicBrainz/Configuration/config.html +++ b/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" /> diff --git a/MediaBrowser.Providers/Plugins/MusicBrainz/ExternalIds.cs b/MediaBrowser.Providers/Plugins/MusicBrainz/ExternalIds.cs index fd85465f3..03565a34c 100644 --- a/MediaBrowser.Providers/Plugins/MusicBrainz/ExternalIds.cs +++ b/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; diff --git a/MediaBrowser.Providers/Plugins/MusicBrainz/Plugin.cs b/MediaBrowser.Providers/Plugins/MusicBrainz/Plugin.cs index 2211d513f..eb80a9452 100644 --- a/MediaBrowser.Providers/Plugins/MusicBrainz/Plugin.cs +++ b/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; } } } |
