[Pywikipedia-l] SVN: [4692] trunk/pywikipedia/wikipedia.py
btongminh at svn.wikimedia.org
btongminh at svn.wikimedia.org
Mon Dec 10 21:22:21 UTC 2007
Revision: 4692
Author: btongminh
Date: 2007-12-10 21:22:16 +0000 (Mon, 10 Dec 2007)
Log Message:
-----------
Fix incomplete gets. (bug 1831698)
Modified Paths:
--------------
trunk/pywikipedia/wikipedia.py
Modified: trunk/pywikipedia/wikipedia.py
===================================================================
--- trunk/pywikipedia/wikipedia.py 2007-12-10 17:29:45 UTC (rev 4691)
+++ trunk/pywikipedia/wikipedia.py 2007-12-10 21:22:16 UTC (rev 4692)
@@ -3806,16 +3806,7 @@
return self.getUrl(path, retry, sysop, data, compress)
text = response.read()
- contentType = response.getheader('Content-Type')
- contentEncoding = response.getheader('Content-Encoding')
-
- # Ensure that all sent data is received
- if int(response.getheader('Content-Length', '0')) != len(text):
- output(u'Warning! len(text) does not match content-length: %s != %s' % \
- (len(text), response.getheader('Content-Length', '0')))
- self.conn.close()
- self.conn.connect()
- return self.getUrl(path, retry, sysop, data, compress)
+ headers = dict(response.getheaders())
else:
if self.hostname() in config.authenticate.keys():
@@ -3867,11 +3858,20 @@
else:
raise
text = f.read()
+
+ headers = f.info()
+
+ contentType = headers.get('content-type', '')
+ contentEncoding = headers.get('content-encoding', '')
+
+ # Ensure that all sent data is received
+ if int(headers.get('content-length', '0')) != len(text) and 'content-length' in headers:
+ output(u'Warning! len(text) does not match content-length: %s != %s' % \
+ (len(text), headers.get('content-length')))
+ self.conn.close()
+ self.conn.connect()
+ return self.getUrl(path, retry, sysop, data, compress)
- # Find charset in the content-type meta tag
- contentType = f.info()['Content-Type']
- contentEncoding = f.headers.get('Content-Encoding')
-
if compress and contentEncoding == 'gzip':
# Use cStringIO if available
# TODO: rewrite gzip.py such that it supports unseekable fileobjects.
More information about the Pywikipedia-l
mailing list