This commit is contained in:
Kovid Goyal 2011-08-04 12:13:38 -06:00
parent 4192578a7c
commit 38808d4902
3 changed files with 13 additions and 8 deletions

View File

@ -320,7 +320,7 @@ class MOBIHeader(object): # {{{
self.exth = EXTHHeader(self.raw[self.exth_offset:])
self.end_of_exth = self.exth_offset + self.exth.length
self.bytes_after_exth = self.fullname_offset - self.end_of_exth
self.bytes_after_exth = self.raw[self.end_of_exth:self.fullname_offset]
def __str__(self):
ans = ['*'*20 + ' MOBI Header '+ '*'*20]
@ -386,7 +386,9 @@ class MOBIHeader(object): # {{{
if self.has_exth:
ans += '\n\n' + str(self.exth)
ans += '\n\nBytes after EXTH: %d'%self.bytes_after_exth
ans += '\n\nBytes after EXTH (%d bytes): %s'%(
len(self.bytes_after_exth),
format_bytes(self.bytes_after_exth))
ans += '\nNumber of bytes after full name: %d' % (len(self.raw) - (self.fullname_offset +
self.fullname_length))
@ -588,7 +590,7 @@ class IndexHeader(object): # {{{
def __str__(self):
ans = ['*'*20 + ' Index Header '+ '*'*20]
ans = ['*'*20 + ' Index Header (%d bytes)'%len(self.record.raw)+ '*'*20]
a = ans.append
def u(w):
a('Unknown: %r (%d bytes) (All zeros: %r)'%(w,

View File

@ -246,7 +246,8 @@ class SecondaryIndexEntry(IndexEntry):
tag = self.INDEX_MAP[index]
# The values for this index entry
self.secondary = [len(self.INDEX_MAP) if tag == min(
# I dont know what the 5 means, it is not the number of entries
self.secondary = [5 if tag == min(
self.INDEX_MAP.itervalues()) else 0, 0, tag]
@property

View File

@ -334,7 +334,9 @@ class MobiWriter(object):
if self.indexer.is_flat_periodical:
bt = 0x102
elif self.indexer.is_periodical:
bt = 0x101
# If you change this, remember to change the cdetype in the EXTH
# header as well
bt = 0x103
record0.write(pack(b'>IIIII',
0xe8, bt, 65001, uid, 6))
@ -509,7 +511,9 @@ class MobiWriter(object):
# Write cdetype
if self.is_periodical:
data = b'NWPR'
# If you set the book type header field to 0x101 use NWPR here if
# you use 0x103 use MAGZ
data = b'MAGZ'
else:
data = b'EBOK'
exth.write(pack(b'>II', 501, len(data)+8))
@ -533,8 +537,6 @@ class MobiWriter(object):
exth.write(pack(b'>II', EXTH_CODES['lastupdatetime'], len(datestr) + 8))
exth.write(datestr)
nrecs += 1
exth.write(pack(b'>III', EXTH_CODES['versionnumber'], 12, 7))
nrecs += 1
if self.is_periodical:
# Pretend to be amazon's super secret periodical generator