From c9a76454bf22d06550927a3f931eb0fd5994cf3b Mon Sep 17 00:00:00 2001 From: bean223 <116837163+bean223@users.noreply.github.com> Date: Thu, 18 Sep 2025 07:36:00 +0100 Subject: [PATCH] Update SkyHookProxy.cs --- .../MetadataSource/SkyHook/SkyHookProxy.cs | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookProxy.cs b/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookProxy.cs index 5395e889b..ef38a5fd5 100644 --- a/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookProxy.cs +++ b/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookProxy.cs @@ -194,9 +194,10 @@ public List SearchForNewArtist(string title) { var lowerTitle = title.ToLowerInvariant(); - if (IsMbidQuery(lowerTitle)) + if (IsMbidQuery(lowerTitle) || IsMbidUrl(lowerTitle)) { var slug = ExtractGuidFromQuery(lowerTitle); + var isValid = Guid.TryParse(slug, out var searchGuid); if (slug.IsNullOrWhiteSpace() || slug.Any(char.IsWhiteSpace) || isValid == false) @@ -255,9 +256,10 @@ public List SearchForNewAlbum(string title, string artist) { var lowerTitle = title.ToLowerInvariant(); - if (IsMbidQuery(lowerTitle)) + if (IsMbidQuery(lowerTitle) || IsMbidUrl(lowerTitle)) { var slug = ExtractGuidFromQuery(lowerTitle); + var isValid = Guid.TryParse(slug, out var searchGuid); if (slug.IsNullOrWhiteSpace() || slug.Any(char.IsWhiteSpace) || isValid == false) @@ -362,7 +364,7 @@ public List SearchForNewEntity(string title) { var lowerTitle = title.ToLowerInvariant(); - if (IsMbidQuery(lowerTitle)) + if (IsMbidQuery(lowerTitle) || IsMbidUrl(lowerTitle)) { try { @@ -430,19 +432,24 @@ public List SearchForNewEntity(string title) private static bool IsMbidQuery(string query) { - return query.StartsWith("lidarr:") || query.StartsWith("lidarrid:") || query.StartsWith("mbid:") || - query.StartsWith("http://") || query.StartsWith("https://"); + return query.StartsWith("lidarr:") || query.StartsWith("lidarrid:") || query.StartsWith("mbid:"); + } + + private static bool IsMbidUrl(string query) + { + return query.StartsWith("https://musicbrainz.org/") || query.StartsWith("http://musicbrainz.org/"); } private static string ExtractGuidFromQuery(string query) { - if (query.StartsWith("http://") || query.StartsWith("https://")) + if (query.StartsWith("https://musicbrainz.org/") || query.StartsWith("http://musicbrainz.org/")) { var lastSlash = query.LastIndexOf('/'); if (lastSlash >= 0 && lastSlash < query.Length - 1) { return query.Substring(lastSlash + 1).Trim(); } + return string.Empty; } else if (query.StartsWith("lidarr:") || query.StartsWith("lidarrid:") || query.StartsWith("mbid:")) @@ -452,8 +459,10 @@ private static string ExtractGuidFromQuery(string query) { return parts[1].Trim(); } + return string.Empty; } + return string.Empty; }