mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Fix #743533 (Enhancement: Active book highlight bar to move with metadata) and when setting metadata in MOBI files automatically create an EXTH record of type 113 if not already present to enable Amazon syncing
This commit is contained in:
commit
6e80c5f200
@ -271,11 +271,11 @@ class MetadataUpdater(object):
|
||||
FILTER=''.join([(len(repr(chr(x)))==3) and chr(x) or '.' for x in range(256)])
|
||||
N=0; result=''
|
||||
while src:
|
||||
s,src = src[:length],src[length:]
|
||||
hexa = ' '.join(["%02X"%ord(x) for x in s])
|
||||
s = s.translate(FILTER)
|
||||
result += "%04X %-*s %s\n" % (N, length*3, hexa, s)
|
||||
N+=length
|
||||
s,src = src[:length],src[length:]
|
||||
hexa = ' '.join(["%02X"%ord(x) for x in s])
|
||||
s = s.translate(FILTER)
|
||||
result += "%04X %-*s %s\n" % (N, length*3, hexa, s)
|
||||
N+=length
|
||||
print result
|
||||
|
||||
def get_pdbrecords(self):
|
||||
@ -323,6 +323,7 @@ class MetadataUpdater(object):
|
||||
"\tThis is a '%s' file of type '%s'" % (self.type[0:4], self.type[4:8]))
|
||||
|
||||
recs = []
|
||||
added_501 = False
|
||||
try:
|
||||
from calibre.ebooks.conversion.config import load_defaults
|
||||
prefs = load_defaults('mobi_output')
|
||||
@ -355,6 +356,7 @@ class MetadataUpdater(object):
|
||||
update_exth_record((105, normalize(subjects).encode(self.codec, 'replace')))
|
||||
|
||||
if kindle_pdoc and kindle_pdoc in mi.tags:
|
||||
added_501 = True
|
||||
update_exth_record((501, str('PDOC')))
|
||||
|
||||
if mi.pubdate:
|
||||
@ -370,6 +372,12 @@ class MetadataUpdater(object):
|
||||
update_exth_record((203, pack('>I', 0)))
|
||||
if self.thumbnail_record is not None:
|
||||
update_exth_record((202, pack('>I', self.thumbnail_rindex)))
|
||||
# Add a 113 record if not present to allow Amazon syncing
|
||||
if (113 not in self.original_exth_records and
|
||||
self.original_exth_records.get(501, None) == 'EBOK' and
|
||||
not added_501):
|
||||
from uuid import uuid4
|
||||
update_exth_record((113, str(uuid4())))
|
||||
if 503 in self.original_exth_records:
|
||||
update_exth_record((503, mi.title.encode(self.codec, 'replace')))
|
||||
|
||||
|
@ -164,6 +164,8 @@ class EditMetadataAction(InterfaceAction):
|
||||
if d.row_delta == 0:
|
||||
break
|
||||
current_row += d.row_delta
|
||||
self.gui.library_view.set_current_row(current_row)
|
||||
self.gui.library_view.scroll_to_row(current_row)
|
||||
|
||||
|
||||
if changed:
|
||||
|
Loading…
x
Reference in New Issue
Block a user