--- data/scripts/mobi_lib/mobi_k8proc.py.orig 2021-08-16 04:24:52 UTC
+++ data/scripts/mobi_lib/mobi_k8proc.py
@@ -33,11 +33,11 @@ class K8Processor:
sections = header[0x0c:]
self.fdsttbl = struct.unpack_from('>%dL' % (num_sections*2), sections, 0)[::2] + (0xfffffff, )
else:
- print "Error: K8 Mobi with Missing FDST info"
+ print("Error: K8 Mobi with Missing FDST info")
if self.DEBUG:
- print "\nFDST Section Map: %d entries" % len(self.fdsttbl)
+ print("\nFDST Section Map: %d entries" % len(self.fdsttbl))
for j in xrange(len(self.fdsttbl)):
- print " %d - %0x" % (j, self.fdsttbl[j])
+ print(" %d - %0x" % (j, self.fdsttbl[j]))
# read/process skeleton index info to create the skeleton table
skeltbl = []
@@ -50,10 +50,10 @@ class K8Processor:
fileptr += 1
self.skeltbl = skeltbl
if self.DEBUG:
- print "\nSkel Table: %d entries" % len(self.skeltbl)
- print "table: filenum, skeleton name, div tbl record count, start position, length"
+ print("\nSkel Table: %d entries" % len(self.skeltbl))
+ print("table: filenum, skeleton name, div tbl record count, start position, length")
for j in xrange(len(self.skeltbl)):
- print self.skeltbl[j]
+ print(self.skeltbl[j])
# read/process the div index to create to
(and
) table
divtbl = []
@@ -66,10 +66,10 @@ class K8Processor:
divtbl.append([int(text), ctocdata, tagMap[3][0], tagMap[4][0], tagMap[6][0], tagMap[6][1]])
self.divtbl = divtbl
if self.DEBUG:
- print "\nDiv (Fragment) Table: %d entries" % len(self.divtbl)
- print "table: file position, link id text, file num, sequence number, start position, length"
+ print("\nDiv (Fragment) Table: %d entries" % len(self.divtbl))
+ print("table: file position, link id text, file num, sequence number, start position, length")
for j in xrange(len(self.divtbl)):
- print self.divtbl[j]
+ print(self.divtbl[j])
# read / process other index element of opf
othtbl = []
@@ -88,10 +88,10 @@ class K8Processor:
othtbl.append([ref_type, ref_title, fileno])
self.othtbl = othtbl
if self.DEBUG:
- print "\nOther (Guide) Table: %d entries" % len(self.othtbl)
- print "table: ref_type, ref_title, divtbl entry number"
+ print("\nOther (Guide) Table: %d entries" % len(self.othtbl))
+ print("table: ref_type, ref_title, divtbl entry number")
for j in xrange(len(self.othtbl)):
- print self.othtbl[j]
+ print(self.othtbl[j])
def buildParts(self, rawML):
@@ -103,7 +103,7 @@ class K8Processor:
if end == 0xffffffff:
end = len(rawML)
if self.DEBUG:
- print "splitting rawml starting at %d and ending at %d into flow piece %d" % (start, end, j)
+ print("splitting rawml starting at %d and ending at %d into flow piece %d" % (start, end, j))
self.flows.append(rawML[start:end])
# the first piece represents the xhtml text
@@ -114,7 +114,7 @@ class K8Processor:
# *without* destroying any file position information needed for later href processing
# and create final list of file separation start: stop points and etc in partinfo
if self.DEBUG:
- print "\nRebuilding flow piece 0: the main body of the ebook"
+ print("\nRebuilding flow piece 0: the main body of the ebook")
self.parts = []
self.partinfo = []
divptr = 0
@@ -125,8 +125,8 @@ class K8Processor:
for i in range(divcnt):
[insertpos, idtext, filenum, seqnum, startpos, length] = self.divtbl[divptr]
if self.DEBUG:
- print " moving div/frag %d starting at %d of length %d" % (divptr, startpos, length)
- print " inside of skeleton number %d at postion %d" % (skelnum, insertpos)
+ print(" moving div/frag %d starting at %d of length %d" % (divptr, startpos, length))
+ print(" inside of skeleton number %d at postion %d" % (skelnum, insertpos))
if i == 0:
aidtext = idtext[12:-2]
filename = 'part%04d.xhtml' % filenum
@@ -198,14 +198,14 @@ class K8Processor:
self.flowinfo.append([type, format, dir, fname])
if self.DEBUG:
- print "\nFlow Map: %d entries" % len(self.flowinfo)
+ print("\nFlow Map: %d entries" % len(self.flowinfo))
for fi in self.flowinfo:
- print fi
- print "\n"
+ print(fi)
+ print("\n")
- print "\nXHTML File Part Position Information: %d entries" % len(self.partinfo)
+ print("\nXHTML File Part Position Information: %d entries" % len(self.partinfo))
for pi in self.partinfo:
- print pi
+ print(pi)
if False: # self.DEBUG:
# dump all of the locations of the aid tags used in TEXT
@@ -214,12 +214,12 @@ class K8Processor:
# [^>]* means match any amount of chars except for '>' char
# [^'"] match any amount of chars except for the quote character
# \s* means match any amount of whitespace
- print "\npositions of all aid= pieces"
+ print("\npositions of all aid= pieces")
id_pattern = re.compile(r'''<[^>]*\said\s*=\s*['"]([^'"]*)['"][^>]*>''',re.IGNORECASE)
for m in re.finditer(id_pattern, rawML):
- print "%0x %s %0x" % (m.start(), m.group(1), fromBase32(m.group(1)))
+ print("%0x %s %0x" % (m.start(), m.group(1), fromBase32(m.group(1))))
[filename, partnum, start, end] = self.getFileInfo(m.start())
- print " in %d %0x %0x" % (partnum, start, end)
+ print(" in %d %0x %0x" % (partnum, start, end))
return
@@ -300,7 +300,7 @@ class K8Processor:
n = len(idtbl)
if n == 0:
if self.DEBUG:
- print "Found no id in the textblock, link must be to top of file"
+ print("Found no id in the textblock, link must be to top of file")
return ''
# if npos is before first id= inside a tag, return the first
if npos < idtbl[0][0] :
@@ -315,7 +315,7 @@ class K8Processor:
tgt = r-1
break
if self.DEBUG:
- print pos, npos, idtbl[tgt]
+ print(pos, npos, idtbl[tgt])
return idtbl[tgt][1]