Changeset 1043

Show
Ignore:
Timestamp:
12/29/09 07:40:52 (8 months ago)
Author:
gazpachoking
Message:

Implements gzip handling from #292 fixes #292 #345

Location:
trunk/flexget/plugins
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/flexget/plugins/output_deluge.py

    r1026 r1043  
    289289            def on_fail(result, feed, entry): 
    290290                log.info("%s was not added to deluge! %s" % (entry['title'], result)) 
    291                 # TODO: Need to figure out how to fail entries properly from here. 
    292291                feed.fail(entry, "Could not be added to deluge") 
    293292 
  • trunk/flexget/plugins/output_download.py

    r1035 r1043  
    66import shutil 
    77import filecmp 
     8import zlib 
    89from flexget.plugin import * 
    910from sqlalchemy import Column, String, Integer, DateTime 
     
    177178        mimetype = f.headers.gettype() 
    178179 
     180        if f.headers.get('content-encoding') in ('gzip', 'x-gzip', 'deflate'): 
     181            decompressor = zlib.decompressobj(15 + 32) 
     182        else: 
     183            decompressor = None 
     184 
    179185        # generate temp file, with random md5 sum ..  
    180186        # url alone is not random enough, it has happened that there are two entries with same url 
     
    194200        try: 
    195201            while 1: 
    196                 data = f.read(buffer_size) 
     202                if decompressor: 
     203                    data = decompressor.decompress(f.read(buffer_size)) 
     204                else: 
     205                    data = f.read(buffer_size) 
    197206                if not data: 
    198207                    log.debug('wrote file %s' % datafile)