From 7adc62393055cbfe2b71581bac05f61913268d1c Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sun, 5 May 2013 09:27:20 -0400 Subject: [PATCH] fixes #235 - U2 Matched to musicbrainz ID of U2 the person --- .../Providers/Music/LastfmArtistProvider.cs | 30 ++++++++++++++----- .../Providers/Music/LastfmBaseProvider.cs | 2 +- 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/MediaBrowser.Controller/Providers/Music/LastfmArtistProvider.cs b/MediaBrowser.Controller/Providers/Music/LastfmArtistProvider.cs index dd24880f56..761278a307 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 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); - return node != null ? node.Value : null; + 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 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 f07ea0a6ae..3d4a495440 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"; } }