mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Tweaks to the header
This commit is contained in:
parent
d6c7ce3d7d
commit
03a6e4ad62
@ -43,7 +43,10 @@ class MOBIHeader(Header): # {{{
|
|||||||
# 10: Text record size
|
# 10: Text record size
|
||||||
record_size = {record_size}
|
record_size = {record_size}
|
||||||
|
|
||||||
# 12: Unused
|
# 12: Encryption Type
|
||||||
|
encryption_type
|
||||||
|
|
||||||
|
# 14: Unused
|
||||||
unused2
|
unused2
|
||||||
|
|
||||||
# 16: Ident
|
# 16: Ident
|
||||||
@ -65,8 +68,8 @@ class MOBIHeader(Header): # {{{
|
|||||||
# 36: File version
|
# 36: File version
|
||||||
file_version = {file_version}
|
file_version = {file_version}
|
||||||
|
|
||||||
# 40: Meta orth record (Chunk table index in KF8)
|
# 40: Meta orth record (used in dictionaries)
|
||||||
meta_orth_record = DYN
|
meta_orth_record = NULL
|
||||||
|
|
||||||
# 44: Meta infl index
|
# 44: Meta infl index
|
||||||
meta_infl_index = NULL
|
meta_infl_index = NULL
|
||||||
@ -107,24 +110,23 @@ class MOBIHeader(Header): # {{{
|
|||||||
huff_first_record
|
huff_first_record
|
||||||
huff_count
|
huff_count
|
||||||
|
|
||||||
# 120: DATP records
|
# 120: Unknown (Maybe DATP related, maybe HUFF/CDIC related)
|
||||||
datp_first_record
|
maybe_datp = zeroes(8)
|
||||||
datp_count
|
|
||||||
|
|
||||||
# 128: EXTH flags
|
# 128: EXTH flags
|
||||||
exth_flags = DYN
|
exth_flags = DYN
|
||||||
|
|
||||||
# 132: Unknown
|
# 132: Unknown
|
||||||
unknown = zeroes(32)
|
unknown = zeroes(36)
|
||||||
|
|
||||||
# 164: DRM
|
# 168: DRM
|
||||||
drm_offset = NULL
|
drm_offset
|
||||||
drm_count = NULL
|
drm_count
|
||||||
drm_size
|
drm_size
|
||||||
drm_flags
|
drm_flags
|
||||||
|
|
||||||
# 180: Unknown
|
# 184: Unknown
|
||||||
unknown2 = zeroes(12)
|
unknown2 = zeroes(8)
|
||||||
|
|
||||||
# 192: FDST
|
# 192: FDST
|
||||||
fdst_record = DYN
|
fdst_record = DYN
|
||||||
@ -171,7 +173,8 @@ class MOBIHeader(Header): # {{{
|
|||||||
padding = zeroes(8192)
|
padding = zeroes(8192)
|
||||||
'''.format(record_size=RECORD_SIZE, file_version=FILE_VERSION)
|
'''.format(record_size=RECORD_SIZE, file_version=FILE_VERSION)
|
||||||
|
|
||||||
SHORT_FIELDS = {'compression', 'last_text_record', 'record_size'}
|
SHORT_FIELDS = {'compression', 'last_text_record', 'record_size',
|
||||||
|
'encryption_type', 'unused2'}
|
||||||
ALIGN = True
|
ALIGN = True
|
||||||
POSITIONS = {'title_offset':'full_title'}
|
POSITIONS = {'title_offset':'full_title'}
|
||||||
|
|
||||||
@ -198,7 +201,7 @@ class KF8Book(object):
|
|||||||
self.text_length = writer.text_length
|
self.text_length = writer.text_length
|
||||||
|
|
||||||
# KF8 Indices
|
# KF8 Indices
|
||||||
self.chunk_index = self.meta_orth_record = len(self.records)
|
self.chunk_index = len(self.records)
|
||||||
self.records.extend(writer.chunk_records)
|
self.records.extend(writer.chunk_records)
|
||||||
self.skel_index = len(self.records)
|
self.skel_index = len(self.records)
|
||||||
self.records.extend(writer.skel_records)
|
self.records.extend(writer.skel_records)
|
||||||
@ -264,12 +267,11 @@ class KF8Book(object):
|
|||||||
start_offset=self.start_offset, mobi_doctype=self.book_type)
|
start_offset=self.start_offset, mobi_doctype=self.book_type)
|
||||||
|
|
||||||
kwargs = {field:getattr(self, field) for field in
|
kwargs = {field:getattr(self, field) for field in
|
||||||
('compression', 'text_length', 'last_text_record',
|
('compression', 'text_length', 'last_text_record', 'book_type',
|
||||||
'book_type', 'meta_orth_record', 'first_non_text_record',
|
'first_non_text_record', 'title_length', 'language_code',
|
||||||
'title_length', 'language_code', 'first_resource_record',
|
'first_resource_record', 'exth_flags', 'fdst_record',
|
||||||
'exth_flags', 'fdst_record', 'fdst_count', 'ncx_index',
|
'fdst_count', 'ncx_index', 'chunk_index', 'skel_index',
|
||||||
'chunk_index', 'skel_index', 'guide_index', 'exth',
|
'guide_index', 'exth', 'full_title')}
|
||||||
'full_title')}
|
|
||||||
return MOBIHeader()(**kwargs)
|
return MOBIHeader()(**kwargs)
|
||||||
|
|
||||||
def write(self, outpath):
|
def write(self, outpath):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user