diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-05-05 09:27:20 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-05-05 09:27:20 -0400 |
| commit | 7adc62393055cbfe2b71581bac05f61913268d1c (patch) | |
| tree | 581da16e91b6ca33b8514ee2f80a4b2d41383c18 | |
| parent | fc8abe1ac31723350243744cbe9bbe088f4561f9 (diff) | |
fixes #235 - U2 Matched to musicbrainz ID of U2 the person
| -rw-r--r-- | MediaBrowser.Controller/Providers/Music/LastfmArtistProvider.cs | 30 | ||||
| -rw-r--r-- | MediaBrowser.Controller/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 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"; } } |
