]> code.delx.au - webdl/commitdiff
Handle URLs without scheme, fixes SBS issue #27
authorJames Bunton <jamesbunton@delx.net.au>
Mon, 5 Oct 2015 14:09:17 +0000 (01:09 +1100)
committerJames Bunton <jamesbunton@delx.net.au>
Mon, 5 Oct 2015 14:09:17 +0000 (01:09 +1100)
common.py

index 7bf8298601ed8e447d3d5d4620eaf91b08c2db54..fb1cf161f9d1007fe960c4ddf60adc7aa2740877 100644 (file)
--- a/common.py
+++ b/common.py
@@ -77,9 +77,18 @@ def sanify_filename(filename):
     assert len(filename) > 0
     return filename
 
+def ensure_scheme(url):
+    parts = urllib.parse.urlparse(url)
+    if parts.scheme:
+        return url
+    parts = list(parts)
+    parts[0] = "http"
+    return urllib.parse.urlunparse(parts)
+
 cookiejar = http.cookiejar.CookieJar()
 urlopener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cookiejar))
 def _urlopen(url, referrer=None):
+    url = ensure_scheme(url)
     req = urllib.request.Request(url)
     req.add_header("User-Agent", USER_AGENT)
     if referrer: