From df246d8ea6029b63bc7318212be43f47a899eaf7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Lalinsk=C3=BD?= Date: Wed, 12 Mar 2008 14:50:44 +0100 Subject: [PATCH] Double URL-encode track and artist names for the Last.fm web service --- contrib/plugins/lastfm/__init__.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/contrib/plugins/lastfm/__init__.py b/contrib/plugins/lastfm/__init__.py index a96257fc8..8a4650efd 100644 --- a/contrib/plugins/lastfm/__init__.py +++ b/contrib/plugins/lastfm/__init__.py @@ -74,18 +74,21 @@ def get_tags(album, metadata, path, min_usage, ignore, next, current): return False +def encode_str(s): + # Yes, that's right, Last.fm prefers double URL-encoding + s = QtCore.QUrl.toPercentEncoding(s) + s = QtCore.QUrl.toPercentEncoding(unicode(s)) + return s + def get_track_tags(album, metadata, artist, track, min_usage, ignore, next, current): """Get track top tags.""" - path = "/1.0/track/%s/%s/toptags.xml" % ( - QtCore.QUrl.toPercentEncoding(artist), - QtCore.QUrl.toPercentEncoding(track)) + path = "/1.0/track/%s/%s/toptags.xml" % (encode_str(artist), encode_str(track)) return get_tags(album, metadata, path, min_usage, ignore, next, current) def get_artist_tags(album, metadata, artist, min_usage, ignore, next, current): """Get artist top tags.""" - path = "/1.0/artist/%s/toptags.xml" % ( - QtCore.QUrl.toPercentEncoding(artist),) + path = "/1.0/artist/%s/toptags.xml" % (encode_str(artist),) return get_tags(album, metadata, path, min_usage, ignore, next, current)