This commit is contained in:
bean223 2026-04-20 07:19:24 +00:00 committed by GitHub
commit b59413b6ed
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -194,9 +194,9 @@ public List<Artist> SearchForNewArtist(string title)
{
var lowerTitle = title.ToLowerInvariant();
if (IsMbidQuery(lowerTitle))
if (IsMbidQuery(lowerTitle) || IsMbidUrl(lowerTitle))
{
var slug = lowerTitle.Split(':')[1].Trim();
var slug = ExtractGuidFromQuery(lowerTitle);
var isValid = Guid.TryParse(slug, out var searchGuid);
@ -256,9 +256,9 @@ public List<Album> SearchForNewAlbum(string title, string artist)
{
var lowerTitle = title.ToLowerInvariant();
if (IsMbidQuery(lowerTitle))
if (IsMbidQuery(lowerTitle) || IsMbidUrl(lowerTitle))
{
var slug = lowerTitle.Split(':')[1].Trim();
var slug = ExtractGuidFromQuery(lowerTitle);
var isValid = Guid.TryParse(slug, out var searchGuid);
@ -364,7 +364,7 @@ public List<object> SearchForNewEntity(string title)
{
var lowerTitle = title.ToLowerInvariant();
if (IsMbidQuery(lowerTitle))
if (IsMbidQuery(lowerTitle) || IsMbidUrl(lowerTitle))
{
try
{
@ -435,6 +435,37 @@ private static bool IsMbidQuery(string query)
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("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:"))
{
var parts = query.Split(':');
if (parts.Length > 1)
{
return parts[1].Trim();
}
return string.Empty;
}
return string.Empty;
}
private Artist MapSearchResult(ArtistResource resource)
{
var artist = _artistService.FindById(resource.Id);