]> git.phdru.name Git - dotfiles.git/blobdiff - bin/webbrowser-encode-url
Fix(Py3): Use `urllib.parse.urlsplit()`
[dotfiles.git] / bin / webbrowser-encode-url
index 8c88c9a6fadadfa435544edeabc5d5d43cf70d8c..e30b6ff26d496d86ac49d8d627653216be927a92 100755 (executable)
@@ -1,17 +1,9 @@
 #! /usr/bin/env python3
 
-try:
-    from urllib.parse import parse_qsl, urlencode, \
-        quote, quote_plus, unquote, unquote_plus, \
-        splittype, splithost, splituser, splitpasswd, \
-        splitport, splittag, splitquery
-except ImportError:
-    from cgi import parse_qsl
-    from urllib import urlencode, quote, quote_plus, unquote, unquote_plus, \
-        splittype, splithost, splituser, splitpasswd, \
-        splitport, splittag, splitquery
 from getopt import getopt, GetoptError
+from urllib.parse import urlsplit, parse_qsl, quote, quote_plus, urlencode
 import sys
+
 from m_lib.defenc import default_encoding
 
 # This must be imported and called before webbrowser
@@ -19,13 +11,17 @@ from m_lib.defenc import default_encoding
 from browser_stack import set_current_browser
 set_current_browser()
 
-import webbrowser
+import webbrowser  # noqa: E402 module level import not at top of file
+
 
 def usage():
-    sys.exit('Usage: %s [-e|--encoding=encoding] [-n|--newwin|-t|--tab] URL' % sys.argv[0])
+    sys.exit('Usage: %s [-e|--encoding=encoding] [-n|--newwin|-t|--tab] URL'
+             % sys.argv[0])
+
 
 try:
-    options, arguments = getopt(sys.argv[1:], 'e:nt', ['encoding=', 'newwin', 'tab'])
+    options, arguments = getopt(
+        sys.argv[1:], 'e:nt', ['encoding=', 'newwin', 'tab'])
 except GetoptError:
     usage()
 
@@ -47,19 +43,13 @@ if not encoding:
     encoding = default_encoding
 
 url = arguments[0]
-protocol, request = splittype(url)
-user, password, port = None, None, None
-host, path = splithost(request)
-if host:
-    user, host = splituser(host)
-    if user:
-        user, password = splitpasswd(user)
-    host, port = splitport(host)
-    if port: port = int(port)
-path, tag = splittag(path)
-path, query = splitquery(path)
-path = unquote(path)
-if tag: tag = unquote_plus(tag)
+
+split_results = urlsplit(url)
+protocol, netloc, path, query, tag = split_results
+user = split_results.username
+password = split_results.password
+host = split_results.hostname
+port = split_results.port
 
 if query:
     qlist = []