mirror of
https://github.com/Lidarr/Lidarr
synced 2026-05-07 03:52:42 +02:00
Merge c9a76454bf into 58a1d9357b
This commit is contained in:
commit
b59413b6ed
1 changed files with 36 additions and 5 deletions
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Reference in a new issue