Wrap call to addinfourl for compatibility with Python 2.4
authorRicardo Garcia <sarbalap+freshmeat@gmail.com>
Tue, 18 Jan 2011 19:52:37 +0000 (20:52 +0100)
committerRicardo Garcia <sarbalap+freshmeat@gmail.com>
Tue, 18 Jan 2011 19:52:37 +0000 (20:52 +0100)
youtube-dl

index 8bdde1704075be5e2667c594be96798f32b038ef..1b20025e7d7ea91da1e3d9fccfe6d5a56e2c4b29 100755 (executable)
@@ -189,6 +189,12 @@ class YoutubeDLHandler(urllib2.HTTPHandler):
                except zlib.error:
                        return zlib.decompress(data)
        
+       @staticmethod
+       def addinfourl_wrapper(stream, headers, url, code):
+               if hasattr(urllib2.addinfourl, 'getcode'):
+                       return urllib2.addinfourl(stream, headers, url, code)
+               return urllib2.addinfourl(stream, headers, url)
+       
        def http_request(self, req):
                for h in std_headers:
                        if h in req.headers:
@@ -205,12 +211,12 @@ class YoutubeDLHandler(urllib2.HTTPHandler):
                # gzip
                if resp.headers.get('Content-encoding', '') == 'gzip':
                        gz = gzip.GzipFile(fileobj=StringIO.StringIO(resp.read()), mode='r')
-                       resp = urllib2.addinfourl(gz, old_resp.headers, old_resp.url)
+                       resp = self.addinfourl_wrapper(gz, old_resp.headers, old_resp.url, old_resp.code)
                        resp.msg = old_resp.msg
                # deflate
                if resp.headers.get('Content-encoding', '') == 'deflate':
                        gz = StringIO.StringIO(self.deflate(resp.read()))
-                       resp = urllib2.addinfourl(gz, old_resp.headers, old_resp.url)
+                       resp = self.addinfourl_wrapper(gz, old_resp.headers, old_resp.url, old_resp.code)
                        resp.msg = old_resp.msg
                return resp