aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MediaBrowser.Controller/Providers/Music/LastfmArtistProvider.cs30
-rw-r--r--MediaBrowser.Controller/Providers/Music/LastfmBaseProvider.cs2
2 files changed, 23 insertions, 9 deletions
diff --git a/MediaBrowser.Controller/Providers/Music/LastfmArtistProvider.cs b/MediaBrowser.Controller/Providers/Music/LastfmArtistProvider.cs
index dd24880f5..761278a30 100644
--- a/MediaBrowser.Controller/Providers/Music/LastfmArtistProvider.cs
+++ b/MediaBrowser.Controller/Providers/Music/LastfmArtistProvider.cs
@@ -22,22 +22,36 @@ namespace MediaBrowser.Controller.Providers.Music
LocalMetaFileName = LastfmHelper.LocalArtistMetaFileName;
}
- protected override bool NeedsRefreshInternal(BaseItem item, BaseProviderInfo providerInfo)
- {
- return true;
- }
-
protected override async Task<string> FindId(BaseItem item, CancellationToken cancellationToken)
{
- var url = string.Format("http://www.musicbrainz.org/ws/2/artist/?query=artistaccent:{0}", UrlEncode(item.Name));
+ var url = string.Format("http://www.musicbrainz.org/ws/2/artist/?query=artist:{0}", UrlEncode(item.Name));
var doc = await FanArtAlbumProvider.Current.GetMusicBrainzResponse(url, cancellationToken).ConfigureAwait(false);
var ns = new XmlNamespaceManager(doc.NameTable);
ns.AddNamespace("mb", "http://musicbrainz.org/ns/mmd-2.0#");
- var node = doc.SelectSingleNode("//mb:artist-list/mb:artist/@id", ns);
+ var node = doc.SelectSingleNode("//mb:artist-list/mb:artist[@type='Group']/@id", ns);
+
+ if (node != null && node.Value != null)
+ {
+ return node.Value;
+ }
+
+ // Try again using the search with accent characters url
+ url = string.Format("http://www.musicbrainz.org/ws/2/artist/?query=artistaccent:{0}", UrlEncode(item.Name));
+
+ doc = await FanArtAlbumProvider.Current.GetMusicBrainzResponse(url, cancellationToken).ConfigureAwait(false);
+
+ ns = new XmlNamespaceManager(doc.NameTable);
+ ns.AddNamespace("mb", "http://musicbrainz.org/ns/mmd-2.0#");
+ node = doc.SelectSingleNode("//mb:artist-list/mb:artist[@type='Group']/@id", ns);
+
+ if (node != null && node.Value != null)
+ {
+ return node.Value;
+ }
- return node != null ? node.Value : null;
+ return null;
}
protected override async Task FetchLastfmData(BaseItem item, string id, CancellationToken cancellationToken)
diff --git a/MediaBrowser.Controller/Providers/Music/LastfmBaseProvider.cs b/MediaBrowser.Controller/Providers/Music/LastfmBaseProvider.cs
index f07ea0a6a..3d4a49544 100644
--- a/MediaBrowser.Controller/Providers/Music/LastfmBaseProvider.cs
+++ b/MediaBrowser.Controller/Providers/Music/LastfmBaseProvider.cs
@@ -46,7 +46,7 @@ namespace MediaBrowser.Controller.Providers.Music
{
get
{
- return "4";
+ return "5";
}
}