From 4649226b9bca3718d38974784b24fe4567b70b1a Mon Sep 17 00:00:00 2001 From: Johnny Robeson Date: Mon, 20 Jun 2016 01:17:36 -0400 Subject: [PATCH] use urllib from six.moves --- beets/autotag/mb.py | 2 +- beets/util/artresizer.py | 5 ++--- beetsplug/bpd/gstplayer.py | 4 ++-- beetsplug/embyupdate.py | 4 ++-- beetsplug/lyrics.py | 12 ++++++------ beetsplug/metasync/itunes.py | 6 +++--- beetsplug/plexupdate.py | 3 +-- test/test_spotify.py | 4 ++-- 8 files changed, 19 insertions(+), 21 deletions(-) diff --git a/beets/autotag/mb.py b/beets/autotag/mb.py index 2e8109fb9..4df0187e4 100644 --- a/beets/autotag/mb.py +++ b/beets/autotag/mb.py @@ -20,7 +20,7 @@ from __future__ import division, absolute_import, print_function import musicbrainzngs import re import traceback -from urlparse import urljoin +from six.moves.urllib.parse import urljoin from beets import logging import beets.autotag.hooks diff --git a/beets/util/artresizer.py b/beets/util/artresizer.py index 8f7ae7514..8468a6ccc 100644 --- a/beets/util/artresizer.py +++ b/beets/util/artresizer.py @@ -18,12 +18,11 @@ public resizing proxy if neither is available. """ from __future__ import division, absolute_import, print_function -import urllib import subprocess import os import re from tempfile import NamedTemporaryFile - +from six.moves.urllib.parse import urlencode from beets import logging from beets import util @@ -41,7 +40,7 @@ def resize_url(url, maxwidth): """Return a proxied image URL that resizes the original image to maxwidth (preserving aspect ratio). """ - return '{0}?{1}'.format(PROXY_URL, urllib.urlencode({ + return '{0}?{1}'.format(PROXY_URL, urlencode({ 'url': url.replace('http://', ''), 'w': bytes(maxwidth), })) diff --git a/beetsplug/bpd/gstplayer.py b/beetsplug/bpd/gstplayer.py index 7d29764cb..e90a5a44e 100644 --- a/beetsplug/bpd/gstplayer.py +++ b/beetsplug/bpd/gstplayer.py @@ -24,7 +24,7 @@ import time from six.moves import _thread import os import copy -import urllib +from six.moves import urllib from beets import ui import gi @@ -130,7 +130,7 @@ class GstPlayer(object): self.player.set_state(Gst.State.NULL) if isinstance(path, unicode): path = path.encode('utf8') - uri = 'file://' + urllib.quote(path) + uri = 'file://' + urllib.parse.quote(path) self.player.set_property("uri", uri) self.player.set_state(Gst.State.PLAYING) self.playing = True diff --git a/beetsplug/embyupdate.py b/beetsplug/embyupdate.py index 1237762fe..73fa3dcc3 100644 --- a/beetsplug/embyupdate.py +++ b/beetsplug/embyupdate.py @@ -12,8 +12,8 @@ from __future__ import division, absolute_import, print_function from beets import config from beets.plugins import BeetsPlugin -from urllib import urlencode -from urlparse import urljoin, parse_qs, urlsplit, urlunsplit +from six.moves.urllib.parse import urlencode +from six.moves.urllib.parse import urljoin, parse_qs, urlsplit, urlunsplit import hashlib import requests diff --git a/beetsplug/lyrics.py b/beetsplug/lyrics.py index cb455ab36..f7bc674fb 100644 --- a/beetsplug/lyrics.py +++ b/beetsplug/lyrics.py @@ -24,9 +24,9 @@ import json import re import requests import unicodedata -import urllib import warnings from six.moves.html_parser import HTMLParseError +from six.moves import urllib try: from bs4 import SoupStrainer, BeautifulSoup @@ -181,7 +181,7 @@ class Backend(object): for char, repl in URL_CHARACTERS.items(): s = s.replace(char, repl) s = s.encode('utf8', 'ignore') - return urllib.quote(s) + return urllib.parse.quote(s) def build_url(self, artist, title): return self.URL_PATTERN % (self._encode(artist.title()), @@ -256,7 +256,7 @@ class Genius(Backend): def search_genius(self, artist, title): query = u"%s %s" % (artist, title) url = u'https://api.genius.com/search?q=%s' \ - % (urllib.quote(query.encode('utf8'))) + % (urllib.parse.quote(query.encode('utf8'))) self._log.debug(u'genius: requesting search {}', url) try: @@ -542,9 +542,9 @@ class Google(Backend): query = u"%s %s" % (artist, title) url = u'https://www.googleapis.com/customsearch/v1?key=%s&cx=%s&q=%s' \ % (self.api_key, self.engine_id, - urllib.quote(query.encode('utf8'))) + urllib.parse.quote(query.encode('utf8'))) - data = urllib.urlopen(url) + data = urllib.request.urlopen(url) data = json.load(data) if 'error' in data: reason = data['error']['errors'][0]['reason'] @@ -643,7 +643,7 @@ class LyricsPlugin(plugins.BeetsPlugin): oauth_url = 'https://datamarket.accesscontrol.windows.net/v2/OAuth2-13' oauth_token = json.loads(requests.post( oauth_url, - data=urllib.urlencode(params)).content) + data=urllib.parse.urlencode(params)).content) if 'access_token' in oauth_token: return "Bearer " + oauth_token['access_token'] else: diff --git a/beetsplug/metasync/itunes.py b/beetsplug/metasync/itunes.py index a62746848..17ab1637f 100644 --- a/beetsplug/metasync/itunes.py +++ b/beetsplug/metasync/itunes.py @@ -23,8 +23,8 @@ import os import shutil import tempfile import plistlib -import urllib -from urlparse import urlparse + +from six.moves.urllib.parse import urlparse, unquote from time import mktime from beets import util @@ -57,7 +57,7 @@ def _norm_itunes_path(path): # E.g., '\\G:\\Music\\bar' needs to be stripped to 'G:\\Music\\bar' return util.bytestring_path(os.path.normpath( - urllib.unquote(urlparse(path).path)).lstrip('\\')).lower() + unquote(urlparse(path).path)).lstrip('\\')).lower() class Itunes(MetaSource): diff --git a/beetsplug/plexupdate.py b/beetsplug/plexupdate.py index ef50fde73..7dbc8b018 100644 --- a/beetsplug/plexupdate.py +++ b/beetsplug/plexupdate.py @@ -12,9 +12,8 @@ Put something like the following in your config.yaml to configure: from __future__ import division, absolute_import, print_function import requests -from urlparse import urljoin -from urllib import urlencode import xml.etree.ElementTree as ET +from six.moves.urllib.parse import urljoin, urlencode from beets import config from beets.plugins import BeetsPlugin diff --git a/test/test_spotify.py b/test/test_spotify.py index 721d4f953..20101d76c 100644 --- a/test/test_spotify.py +++ b/test/test_spotify.py @@ -13,7 +13,7 @@ from beets import config from beets.library import Item from beetsplug import spotify from test.helper import TestHelper -import urlparse +from six.moves.urllib.parse import parse_qs, urlparse class ArgumentsMock(object): @@ -25,7 +25,7 @@ class ArgumentsMock(object): def _params(url): """Get the query parameters from a URL.""" - return urlparse.parse_qs(urlparse.urlparse(url).query) + return parse_qs(urlparse(url).query) class SpotifyPluginTest(_common.TestCase, TestHelper):