mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
...
This commit is contained in:
commit
868d4ce31a
@ -75,15 +75,20 @@ class SNBFile:
|
|||||||
for i in range(self.plainBlock):
|
for i in range(self.plainBlock):
|
||||||
bzdc = bz2.BZ2Decompressor()
|
bzdc = bz2.BZ2Decompressor()
|
||||||
if (i < self.plainBlock - 1):
|
if (i < self.plainBlock - 1):
|
||||||
bSize = self.blocks[self.binBlock + i + 1].Offset - self.blocks[self.binBlock + i].Offset;
|
bSize = self.blocks[self.binBlock + i + 1].Offset - self.blocks[self.binBlock + i].Offset
|
||||||
else:
|
else:
|
||||||
bSize = self.tailOffset - self.blocks[self.binBlock + i].Offset;
|
bSize = self.tailOffset - self.blocks[self.binBlock + i].Offset
|
||||||
snbFile.seek(self.blocks[self.binBlock + i].Offset);
|
snbFile.seek(self.blocks[self.binBlock + i].Offset)
|
||||||
try:
|
try:
|
||||||
data = snbFile.read(bSize)
|
data = snbFile.read(bSize)
|
||||||
uncompressedData += bzdc.decompress(data)
|
if len(data) < 32768:
|
||||||
|
uncompressedData += bzdc.decompress(data)
|
||||||
|
else:
|
||||||
|
uncompressedData += data
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
print e
|
print e
|
||||||
|
if len(uncompressedData) != self.plainStreamSizeUncompressed:
|
||||||
|
raise Exception()
|
||||||
f.fileBody = uncompressedData[plainPos:plainPos+f.fileSize]
|
f.fileBody = uncompressedData[plainPos:plainPos+f.fileSize]
|
||||||
plainPos += f.fileSize
|
plainPos += f.fileSize
|
||||||
elif f.attr & 0x01000000 == 0x01000000:
|
elif f.attr & 0x01000000 == 0x01000000:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user