[utils:YoutubeDLHandler] Work around brain-dead Python 2.6 httplib
authorPhilipp Hagemeister <phihag@phihag.de>
Mon, 29 Sep 2014 04:15:46 +0000 (06:15 +0200)
committerPhilipp Hagemeister <phihag@phihag.de>
Mon, 29 Sep 2014 04:15:46 +0000 (06:15 +0200)
In 2.6, the httplib sends fragments! Remove those (fixes generic_26 on 2.6).

youtube_dl/utils.py

index 9f49507c1256a707a139bbbba407a2b17d3a87ad..950cd1a7a0babd08fa3e6d0157da52ec97ccb4bc 100644 (file)
@@ -799,6 +799,12 @@ class YoutubeDLHandler(compat_urllib_request.HTTPHandler):
                 del req.headers['User-agent']
             req.headers['User-agent'] = req.headers['Youtubedl-user-agent']
             del req.headers['Youtubedl-user-agent']
+
+        if sys.version_info < (2, 7) and '#' in req.get_full_url():
+            # Python 2.6 is brain-dead when it comes to fragments
+            req._Request__original = req._Request__original.partition('#')[0]
+            req._Request__r_type = req._Request__r_type.partition('#')[0]
+
         return req
 
     def http_response(self, req, resp):