Search plugins: Properly uncompress gzipped responses in retrieve_url()

This commit is contained in:
Christophe Dumez 2013-01-08 21:30:43 +02:00
parent 4db73d421d
commit 1b3a758f28

View File

@ -22,7 +22,7 @@
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE. # POSSIBILITY OF SUCH DAMAGE.
#VERSION: 1.31 #VERSION: 1.32
# Author: # Author:
# Christophe DUMEZ (chris@qbittorrent.org) # Christophe DUMEZ (chris@qbittorrent.org)
@ -64,6 +64,13 @@ def retrieve_url(url):
req = urllib2.Request(url) req = urllib2.Request(url)
response = urllib2.urlopen(req) response = urllib2.urlopen(req)
dat = response.read() dat = response.read()
# Check if it is gzipped
if dat[:2] == '\037\213':
# Data is gzip encoded, decode it
compressedstream = StringIO.StringIO(dat)
gzipper = gzip.GzipFile(fileobj=compressedstream)
extracted_data = gzipper.read()
dat = extracted_data
info = response.info() info = response.info()
charset = 'utf-8' charset = 'utf-8'
try: try: