binary-newsreaderusenetkodistabletvshowsqnaptautullifanartsickbeardtvseriesplexswizzinembyseedboxtvdbnzbgetsubtitlewebuiquickboxtrakt
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
950 B
35 lines
950 B
6 years ago
|
from hachoir_py3.field import CompressedField
|
||
11 years ago
|
|
||
|
try:
|
||
|
from zlib import decompressobj, MAX_WBITS
|
||
|
|
||
|
class DeflateStream:
|
||
6 years ago
|
|
||
11 years ago
|
def __init__(self, stream, wbits=None):
|
||
|
if wbits:
|
||
|
self.gzip = decompressobj(-MAX_WBITS)
|
||
|
else:
|
||
|
self.gzip = decompressobj()
|
||
|
|
||
|
def __call__(self, size, data=None):
|
||
|
if data is None:
|
||
6 years ago
|
data = b''
|
||
7 years ago
|
return self.gzip.decompress(self.gzip.unconsumed_tail + data, size)
|
||
|
|
||
11 years ago
|
class DeflateStreamWbits(DeflateStream):
|
||
6 years ago
|
|
||
11 years ago
|
def __init__(self, stream):
|
||
|
DeflateStream.__init__(self, stream, True)
|
||
|
|
||
|
def Deflate(field, wbits=True):
|
||
|
if wbits:
|
||
|
CompressedField(field, DeflateStreamWbits)
|
||
|
else:
|
||
|
CompressedField(field, DeflateStream)
|
||
|
return field
|
||
|
has_deflate = True
|
||
|
except ImportError:
|
||
|
def Deflate(field, wbits=True):
|
||
|
return field
|
||
7 years ago
|
has_deflate = False
|