mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
...
This commit is contained in:
parent
d925899691
commit
4804badefe
@ -14,6 +14,7 @@ from lxml import html
|
|||||||
|
|
||||||
from calibre.utils.date import utc_tz
|
from calibre.utils.date import utc_tz
|
||||||
from calibre.ebooks.mobi.langcodes import main_language, sub_language
|
from calibre.ebooks.mobi.langcodes import main_language, sub_language
|
||||||
|
from calibre.ebooks.mobi.reader.headers import NULL_INDEX
|
||||||
from calibre.ebooks.mobi.utils import (decode_hex_number, decint,
|
from calibre.ebooks.mobi.utils import (decode_hex_number, decint,
|
||||||
get_trailing_data, decode_tbs, read_font_record)
|
get_trailing_data, decode_tbs, read_font_record)
|
||||||
from calibre.utils.magick.draw import identify_data
|
from calibre.utils.magick.draw import identify_data
|
||||||
@ -343,9 +344,9 @@ class MOBIHeader(object): # {{{
|
|||||||
ans.append('File version: %d'%self.file_version)
|
ans.append('File version: %d'%self.file_version)
|
||||||
ans.append('Reserved: %r'%self.reserved)
|
ans.append('Reserved: %r'%self.reserved)
|
||||||
ans.append('Secondary index record: %d (null val: %d)'%(
|
ans.append('Secondary index record: %d (null val: %d)'%(
|
||||||
self.secondary_index_record, 0xffffffff))
|
self.secondary_index_record, NULL_INDEX))
|
||||||
ans.append('Reserved2: %r'%self.reserved2)
|
ans.append('Reserved2: %r'%self.reserved2)
|
||||||
ans.append('First non-book record (null value: %d): %d'%(0xffffffff,
|
ans.append('First non-book record (null value: %d): %d'%(NULL_INDEX,
|
||||||
self.first_non_book_record))
|
self.first_non_book_record))
|
||||||
ans.append('Full name offset: %d'%self.fullname_offset)
|
ans.append('Full name offset: %d'%self.fullname_offset)
|
||||||
ans.append('Full name length: %d bytes'%self.fullname_length)
|
ans.append('Full name length: %d bytes'%self.fullname_length)
|
||||||
@ -384,7 +385,7 @@ class MOBIHeader(object): # {{{
|
|||||||
'(has indexing: %s) (has uncrossable breaks: %s)')%(
|
'(has indexing: %s) (has uncrossable breaks: %s)')%(
|
||||||
bin(self.extra_data_flags), self.has_multibytes,
|
bin(self.extra_data_flags), self.has_multibytes,
|
||||||
self.has_indexing_bytes, self.has_uncrossable_breaks ))
|
self.has_indexing_bytes, self.has_uncrossable_breaks ))
|
||||||
ans.append('Primary index record (null value: %d): %d'%(0xffffffff,
|
ans.append('Primary index record (null value: %d): %d'%(NULL_INDEX,
|
||||||
self.primary_index_record))
|
self.primary_index_record))
|
||||||
|
|
||||||
ans = '\n'.join(ans)
|
ans = '\n'.join(ans)
|
||||||
@ -1406,7 +1407,7 @@ class MOBIFile(object): # {{{
|
|||||||
self.index_header = self.index_record = None
|
self.index_header = self.index_record = None
|
||||||
self.indexing_record_nums = set()
|
self.indexing_record_nums = set()
|
||||||
pir = self.mobi_header.primary_index_record
|
pir = self.mobi_header.primary_index_record
|
||||||
if pir != 0xffffffff:
|
if pir != NULL_INDEX:
|
||||||
self.index_header = IndexHeader(self.records[pir])
|
self.index_header = IndexHeader(self.records[pir])
|
||||||
self.cncx = CNCX(self.records[
|
self.cncx = CNCX(self.records[
|
||||||
pir+2:pir+2+self.index_header.num_of_cncx_blocks],
|
pir+2:pir+2+self.index_header.num_of_cncx_blocks],
|
||||||
@ -1417,7 +1418,7 @@ class MOBIFile(object): # {{{
|
|||||||
pir+2+self.index_header.num_of_cncx_blocks))
|
pir+2+self.index_header.num_of_cncx_blocks))
|
||||||
self.secondary_index_record = self.secondary_index_header = None
|
self.secondary_index_record = self.secondary_index_header = None
|
||||||
sir = self.mobi_header.secondary_index_record
|
sir = self.mobi_header.secondary_index_record
|
||||||
if sir != 0xffffffff:
|
if sir != NULL_INDEX:
|
||||||
self.secondary_index_header = SecondaryIndexHeader(self.records[sir])
|
self.secondary_index_header = SecondaryIndexHeader(self.records[sir])
|
||||||
self.indexing_record_nums.add(sir)
|
self.indexing_record_nums.add(sir)
|
||||||
self.secondary_index_record = SecondaryIndexRecord(
|
self.secondary_index_record = SecondaryIndexRecord(
|
||||||
@ -1428,7 +1429,7 @@ class MOBIFile(object): # {{{
|
|||||||
ntr = self.mobi_header.number_of_text_records
|
ntr = self.mobi_header.number_of_text_records
|
||||||
fntbr = self.mobi_header.first_non_book_record
|
fntbr = self.mobi_header.first_non_book_record
|
||||||
fii = self.mobi_header.first_image_index
|
fii = self.mobi_header.first_image_index
|
||||||
if fntbr == 0xffffffff:
|
if fntbr == NULL_INDEX:
|
||||||
fntbr = len(self.records)
|
fntbr = len(self.records)
|
||||||
self.text_records = [TextRecord(r, self.records[r],
|
self.text_records = [TextRecord(r, self.records[r],
|
||||||
self.mobi_header.extra_data_flags, decompress) for r in xrange(1,
|
self.mobi_header.extra_data_flags, decompress) for r in xrange(1,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user