aboutsummaryrefslogtreecommitdiff
path: root/deskutils/bookworm/files/patch-data_scripts_mobi__lib_mobi__k8proc.py
blob: 3c198a5d1216b0676c344660732fa10549565f2d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
--- 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 <div> (and <p>) 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 <guide> 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]