Have downloaded periodicals recognized when transferred via USB to the Kindle Fire

This commit is contained in:
Kovid Goyal 2011-11-20 08:13:11 +05:30
parent 17f9da26c4
commit 8f3fff04e3

View File

@ -302,7 +302,19 @@ class MobiWriter(object):
def generate_record0(self): # MOBI header {{{
metadata = self.oeb.metadata
exth = self.build_exth()
bt = 0x002
if self.primary_index_record_idx is not None:
if False and self.indexer.is_flat_periodical:
# Disabled as setting this to 0x102 causes the Kindle to not
# auto archive the issues
bt = 0x102
elif self.indexer.is_periodical:
# If you change this, remember to change the cdetype in the EXTH
# header as well
bt = {'newspaper':0x101}.get(self.publication_type, 0x103)
exth = self.build_exth(bt)
first_image_record = None
if self.image_records:
first_image_record = len(self.records)
@ -351,17 +363,6 @@ class MobiWriter(object):
# 0x10 - 0x13 : UID
# 0x14 - 0x17 : Generator version
bt = 0x002
if self.primary_index_record_idx is not None:
if False and self.indexer.is_flat_periodical:
# Disabled as setting this to 0x102 causes the Kindle to not
# auto archive the issues
bt = 0x102
elif self.indexer.is_periodical:
# If you change this, remember to change the cdetype in the EXTH
# header as well
bt = {'newspaper':0x101}.get(self.publication_type, 0x103)
record0.write(pack(b'>IIIII',
0xe8, bt, 65001, uid, 6))
@ -479,7 +480,7 @@ class MobiWriter(object):
self.records[0] = align_block(record0)
# }}}
def build_exth(self): # EXTH Header {{{
def build_exth(self, mobi_doctype): # EXTH Header {{{
oeb = self.oeb
exth = StringIO()
nrecs = 0
@ -535,16 +536,17 @@ class MobiWriter(object):
nrecs += 1
# Write cdetype
if not self.is_periodical and not self.opts.share_not_sync:
exth.write(pack(b'>II', 501, 12))
exth.write(b'EBOK')
nrecs += 1
if not self.is_periodical:
if not self.opts.share_not_sync:
exth.write(pack(b'>II', 501, 12))
exth.write(b'EBOK')
nrecs += 1
else:
# Should be b'NWPR' for doc type of 0x101 and b'MAGZ' for doctype
# of 0x103 but the old writer didn't write them, and I dont know
# what it should be for type 0x102 (b'BLOG'?) so write nothing
# instead
pass
ids = {0x101:b'NWPR', 0x103:b'MAGZ'}.get(mobi_doctype, None)
if ids:
exth.write(pack(b'>II', 501, 12))
exth.write(ids)
nrecs += 1
# Add a publication date entry
if oeb.metadata['date']: