mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
...
This commit is contained in:
parent
1fb9cd8256
commit
8d23a63a46
@ -33,7 +33,8 @@ def update_internal_links(mobi8_reader):
|
|||||||
for m in posfid_index_pattern.finditer(tag):
|
for m in posfid_index_pattern.finditer(tag):
|
||||||
posfid = m.group(1)
|
posfid = m.group(1)
|
||||||
offset = m.group(2)
|
offset = m.group(2)
|
||||||
filename, idtag = mr.get_id_tag_by_pos_fid(posfid, offset)
|
filename, idtag = mr.get_id_tag_by_pos_fid(int(posfid, 32),
|
||||||
|
int(offset, 32))
|
||||||
suffix = (b'#' + idtag) if idtag else b''
|
suffix = (b'#' + idtag) if idtag else b''
|
||||||
replacement = filename.encode(mr.header.codec) + suffix
|
replacement = filename.encode(mr.header.codec) + suffix
|
||||||
tag = posfid_index_pattern.sub(replacement, tag, 1)
|
tag = posfid_index_pattern.sub(replacement, tag, 1)
|
||||||
|
@ -230,11 +230,10 @@ class Mobi8Reader(object):
|
|||||||
|
|
||||||
def get_id_tag_by_pos_fid(self, posfid, offset):
|
def get_id_tag_by_pos_fid(self, posfid, offset):
|
||||||
# first convert kindle:pos:fid and offset info to position in file
|
# first convert kindle:pos:fid and offset info to position in file
|
||||||
row = int(posfid, 32)
|
insertpos, idtext, filenum, seqnm, startpos, length = self.elems[posfid]
|
||||||
off = int(offset, 32)
|
pos = insertpos + offset
|
||||||
[insertpos, idtext, filenum, seqnm, startpos, length] = self.elems[row]
|
fi = self.get_file_info(pos)
|
||||||
pos = insertpos + off
|
fname = fi.filename
|
||||||
fname = self.get_file_info(pos).filename
|
|
||||||
# an existing "id=" must exist in original xhtml otherwise it would not
|
# an existing "id=" must exist in original xhtml otherwise it would not
|
||||||
# have worked for linking. Amazon seems to have added its own
|
# have worked for linking. Amazon seems to have added its own
|
||||||
# additional "aid=" inside tags whose contents seem to represent some
|
# additional "aid=" inside tags whose contents seem to represent some
|
||||||
@ -318,7 +317,6 @@ class Mobi8Reader(object):
|
|||||||
for entry in index_entries:
|
for entry in index_entries:
|
||||||
pos = entry['pos']
|
pos = entry['pos']
|
||||||
fi = self.get_file_info(pos)
|
fi = self.get_file_info(pos)
|
||||||
#print (11111111, fi, entry['pos_fid'])
|
|
||||||
if fi.filename is None:
|
if fi.filename is None:
|
||||||
raise ValueError('Index entry has invalid pos: %d'%pos)
|
raise ValueError('Index entry has invalid pos: %d'%pos)
|
||||||
idtag = self.get_id_tag(pos).decode(self.header.codec)
|
idtag = self.get_id_tag(pos).decode(self.header.codec)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user