about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--kcc/KCC_gui.py21
-rw-r--r--kcc/cbxarchive.py4
-rwxr-xr-xkcc/comic2ebook.py22
-rw-r--r--kcc/comic2panel.py20
-rw-r--r--kcc/dualmetafix.py49
-rwxr-xr-xkcc/image.py16
-rw-r--r--kcc/shared.py4
-rwxr-xr-xsetup.py2
8 files changed, 68 insertions, 70 deletions
diff --git a/kcc/KCC_gui.py b/kcc/KCC_gui.py
index 26a2f9b..421d73b 100644
--- a/kcc/KCC_gui.py
+++ b/kcc/KCC_gui.py
@@ -66,7 +66,6 @@ class QApplicationMessaging(QtWidgets.QApplication):
         socket.connectToServer(self._key, QtCore.QIODevice.WriteOnly)
         if not socket.waitForConnected(self._timeout):
             self._server = QtNetwork.QLocalServer(self)
-            # noinspection PyUnresolvedReferences
             self._server.newConnection.connect(self.handleMessage)
             self._server.listen(self._key)
         else:
@@ -139,7 +138,7 @@ class Icons:
 
 
 class WebServerHandler(BaseHTTPRequestHandler):
-    # noinspection PyAttributeOutsideInit, PyArgumentList
+    # noinspection PyAttributeOutsideInit
     def do_GET(self):
         if self.path == '/':
             self.path = '/index.html'
@@ -276,8 +275,8 @@ class VersionThread(QtCore.QThread):
             try:
                 MW.modeConvert.emit(-1)
                 MW.progressBarTick.emit('Downloading update')
-                path = urlretrieve('https://kcc.iosphe.re/Windows/KindleComicConverter_win_'
-                                   + self.newVersion + '.exe', reporthook=self.getNewVersionTick)
+                path = urlretrieve('https://kcc.iosphe.re/Windows/KindleComicConverter_win_' +
+                                   self.newVersion + '.exe', reporthook=self.getNewVersionTick)
                 if self.md5 != md5Checksum(path[0]):
                     raise Exception
                 move(path[0], path[0] + '.exe')
@@ -324,7 +323,6 @@ class ProgressThread(QtCore.QThread):
 
 
 class WorkerThread(QtCore.QThread):
-    # noinspection PyArgumentList
     def __init__(self):
         QtCore.QThread.__init__(self)
         self.conversionAlive = False
@@ -456,7 +454,7 @@ class WorkerThread(QtCore.QThread):
                     MW.addMessage.emit('Creating EPUB files... <b>Done!</b>', 'info', True)
                 if str(GUI.FormatBox.currentText()) == 'MOBI':
                     MW.progressBarTick.emit('Creating MOBI files')
-                    MW.progressBarTick.emit(str(len(outputPath)*2+1))
+                    MW.progressBarTick.emit(str(len(outputPath) * 2 + 1))
                     MW.progressBarTick.emit('tick')
                     MW.addMessage.emit('Creating MOBI files', 'info', False)
                     GUI.progress.content = 'Creating MOBI files'
@@ -515,7 +513,7 @@ class WorkerThread(QtCore.QThread):
                             MW.addTrayMessage.emit('Failed to process MOBI file!', 'Critical')
                     else:
                         GUI.progress.content = ''
-                        epubSize = (os.path.getsize(self.kindlegenErrorCode[2]))//1024//1024
+                        epubSize = (os.path.getsize(self.kindlegenErrorCode[2])) // 1024 // 1024
                         for item in outputPath:
                             if os.path.exists(item):
                                 os.remove(item)
@@ -552,7 +550,6 @@ class SystemTrayIcon(QtWidgets.QSystemTrayIcon):
         super().__init__()
         if self.isSystemTrayAvailable():
             QtWidgets.QSystemTrayIcon.__init__(self, GUI.icons.programIcon, MW)
-            # noinspection PyUnresolvedReferences
             self.activated.connect(self.catchClicks)
 
     def catchClicks(self):
@@ -840,7 +837,7 @@ class KCCGUI(KCC_ui.Ui_KCC):
 
     def changeGamma(self, value):
         value = float(value)
-        value = '%.2f' % (value/100)
+        value = '%.2f' % (value / 100)
         if float(value) <= 0.09:
             GUI.GammaLabel.setText('Gamma: Auto')
         else:
@@ -908,7 +905,7 @@ class KCCGUI(KCC_ui.Ui_KCC):
         else:
             item = QtWidgets.QListWidgetItem('    ' + self.stripTags(message))
         if replace:
-            GUI.JobList.takeItem(GUI.JobList.count()-1)
+            GUI.JobList.takeItem(GUI.JobList.count() - 1)
         # Due to lack of HTML support in QListWidgetItem we overlay text field with QLabel
         # We still fill original text field with transparent content to trigger creation of horizontal scrollbar
         item.setForeground(QtGui.QColor('transparent'))
@@ -1048,7 +1045,7 @@ class KCCGUI(KCC_ui.Ui_KCC):
                                            'ColorBox': GUI.ColorBox.checkState(),
                                            'customWidth': GUI.customWidth.text(),
                                            'customHeight': GUI.customHeight.text(),
-                                           'GammaSlider': float(self.GammaValue)*100})
+                                           'GammaSlider': float(self.GammaValue) * 100})
         self.settings.sync()
         self.tray.hide()
 
@@ -1295,7 +1292,7 @@ class KCCGUI(KCC_ui.Ui_KCC):
             if profile == "Other":
                 GUI.DeviceBox.addItem(self.icons.deviceOther, profile)
             elif profile == "Separator":
-                GUI.DeviceBox.insertSeparator(GUI.DeviceBox.count()+1)
+                GUI.DeviceBox.insertSeparator(GUI.DeviceBox.count() + 1)
             elif 'Ko' in profile:
                 GUI.DeviceBox.addItem(self.icons.deviceKobo, profile)
             else:
diff --git a/kcc/cbxarchive.py b/kcc/cbxarchive.py
index 823a4c8..9332eef 100644
--- a/kcc/cbxarchive.py
+++ b/kcc/cbxarchive.py
@@ -70,8 +70,8 @@ class CBxArchive:
         if sys.platform.startswith('darwin'):
             copy(self.origFileName, os.path.join(os.path.dirname(self.origFileName), 'TMP_KCC_TMP'))
             self.origFileName = os.path.join(os.path.dirname(self.origFileName), 'TMP_KCC_TMP')
-        output = Popen('7za x "' + self.origFileName + '" -xr!__MACOSX -xr!.DS_Store -xr!thumbs.db -xr!Thumbs.db -o"'
-                       + targetdir + '"', stdout=PIPE, stderr=STDOUT, shell=True)
+        output = Popen('7za x "' + self.origFileName + '" -xr!__MACOSX -xr!.DS_Store -xr!thumbs.db -xr!Thumbs.db -o"' +
+                       targetdir + '"', stdout=PIPE, stderr=STDOUT, shell=True)
         extracted = False
         for line in output.stdout:
             if b"Everything is Ok" in line:
diff --git a/kcc/comic2ebook.py b/kcc/comic2ebook.py
index f074c43..a80fa50 100755
--- a/kcc/comic2ebook.py
+++ b/kcc/comic2ebook.py
@@ -43,7 +43,7 @@ try:
     from PyQt5 import QtCore
 except ImportError:
     QtCore = None
-from .shared import md5Checksum, getImageFileName,  walkSort, walkLevel, saferReplace
+from .shared import md5Checksum, getImageFileName, walkSort, walkLevel, saferReplace
 from . import comic2panel
 from . import image
 from . import cbxarchive
@@ -242,9 +242,9 @@ def buildNCX(dstdir, title, chapters, chapterNames):
             navID = filename[0].replace('/', '_').replace('\\', '_')
         elif os.path.basename(folder) != "Text":
             title = chapterNames[os.path.basename(folder)]
-        f.write("<navPoint id=\"" + navID + "\"><navLabel><text>"
-                + title + "</text></navLabel><content src=\"" + filename[0].replace("\\", "/")
-                + ".html\"/></navPoint>\n")
+        f.write("<navPoint id=\"" + navID + "\"><navLabel><text>" +
+                title + "</text></navLabel><content src=\"" + filename[0].replace("\\", "/") +
+                ".html\"/></navPoint>\n")
     f.write("</navMap>\n</ncx>")
     f.close()
 
@@ -341,15 +341,15 @@ def buildOPF(dstdir, title, filelist, cover=None):
         filename = getImageFileName(path[1])
         uniqueid = os.path.join(folder, filename[0]).replace('/', '_').replace('\\', '_')
         reflist.append(uniqueid)
-        f.write("<item id=\"page_" + str(uniqueid) + "\" href=\""
-                + folder.replace('Images', 'Text') + "/" + filename[0]
-                + ".html\" media-type=\"application/xhtml+xml\"/>\n")
+        f.write("<item id=\"page_" + str(uniqueid) + "\" href=\"" +
+                folder.replace('Images', 'Text') + "/" + filename[0] +
+                ".html\" media-type=\"application/xhtml+xml\"/>\n")
         if '.png' == filename[1]:
             mt = 'image/png'
         else:
             mt = 'image/jpeg'
-        f.write("<item id=\"img_" + str(uniqueid) + "\" href=\"" + folder + "/" + path[1] + "\" media-type=\""
-                + mt + "\"/>\n")
+        f.write("<item id=\"img_" + str(uniqueid) + "\" href=\"" + folder + "/" + path[1] + "\" media-type=\"" +
+                mt + "\"/>\n")
     f.write("<item id=\"css\" href=\"Text/style.css\" media-type=\"text/css\"/>\n")
     if options.righttoleft:
         f.write("</manifest>\n<spine page-progression-direction=\"rtl\" toc=\"ncx\">\n")
@@ -1188,7 +1188,7 @@ def checkOptions():
         if options.customheight != 0:
             Y = options.customheight
         newProfile = ("Custom", (int(X), int(Y)), image.ProfileData.Palette16,
-                      image.ProfileData.Profiles[options.profile][3], (int(int(X)*1.5), int(int(Y)*1.5)))
+                      image.ProfileData.Profiles[options.profile][3], (int(int(X) * 1.5), int(int(Y) * 1.5)))
         image.ProfileData.Profiles["Custom"] = newProfile
         options.profile = "Custom"
     options.profileData = image.ProfileData.Profiles[options.profile]
@@ -1356,7 +1356,7 @@ def makeMOBI(work, qtGUI=None):
     global GUI, makeMOBIWorkerPool, makeMOBIWorkerOutput
     GUI = qtGUI
     makeMOBIWorkerOutput = []
-    availableMemory = virtual_memory().total/1000000000
+    availableMemory = virtual_memory().total / 1000000000
     if availableMemory <= 2:
         threadNumber = 1
     elif 2 < availableMemory <= 4:
diff --git a/kcc/comic2panel.py b/kcc/comic2panel.py
index c68103e..2bfe3d9 100644
--- a/kcc/comic2panel.py
+++ b/kcc/comic2panel.py
@@ -85,19 +85,19 @@ def sanitizePanelSize(panel, opt):
     newPanels = []
     if panel[2] > 6 * opt.height:
         diff = int(panel[2] / 8)
-        newPanels.append([panel[0], panel[1] - diff*7, diff])
-        newPanels.append([panel[1] - diff*7, panel[1] - diff*6, diff])
-        newPanels.append([panel[1] - diff*6, panel[1] - diff*5, diff])
-        newPanels.append([panel[1] - diff*5, panel[1] - diff*4, diff])
-        newPanels.append([panel[1] - diff*4, panel[1] - diff*3, diff])
-        newPanels.append([panel[1] - diff*3, panel[1] - diff*2, diff])
-        newPanels.append([panel[1] - diff*2, panel[1] - diff, diff])
+        newPanels.append([panel[0], panel[1] - diff * 7, diff])
+        newPanels.append([panel[1] - diff * 7, panel[1] - diff * 6, diff])
+        newPanels.append([panel[1] - diff * 6, panel[1] - diff * 5, diff])
+        newPanels.append([panel[1] - diff * 5, panel[1] - diff * 4, diff])
+        newPanels.append([panel[1] - diff * 4, panel[1] - diff * 3, diff])
+        newPanels.append([panel[1] - diff * 3, panel[1] - diff * 2, diff])
+        newPanels.append([panel[1] - diff * 2, panel[1] - diff, diff])
         newPanels.append([panel[1] - diff, panel[1], diff])
     elif panel[2] > 3 * opt.height:
         diff = int(panel[2] / 4)
-        newPanels.append([panel[0], panel[1] - diff*3, diff])
-        newPanels.append([panel[1] - diff*3, panel[1] - diff*2, diff])
-        newPanels.append([panel[1] - diff*2, panel[1] - diff, diff])
+        newPanels.append([panel[0], panel[1] - diff * 3, diff])
+        newPanels.append([panel[1] - diff * 3, panel[1] - diff * 2, diff])
+        newPanels.append([panel[1] - diff * 2, panel[1] - diff, diff])
         newPanels.append([panel[1] - diff, panel[1], diff])
     elif panel[2] > 1.5 * opt.height:
         newPanels.append([panel[0], panel[1] - int(panel[2] / 2), int(panel[2] / 2)])
diff --git a/kcc/dualmetafix.py b/kcc/dualmetafix.py
index 0eec68b..0d0ce04 100644
--- a/kcc/dualmetafix.py
+++ b/kcc/dualmetafix.py
@@ -36,15 +36,15 @@ title_offset = 84
 
 
 def getint(data, ofs, sz='L'):
-    i, = struct.unpack_from('>'+sz, data, ofs)
+    i, = struct.unpack_from('>' + sz, data, ofs)
     return i
 
 
 def writeint(data, ofs, n, slen='L'):
     if slen == 'L':
-        return data[:ofs]+struct.pack('>L', n)+data[ofs+4:]
+        return data[:ofs] + struct.pack('>L', n) + data[ofs + 4:]
     else:
-        return data[:ofs]+struct.pack('>H', n)+data[ofs+2:]
+        return data[:ofs] + struct.pack('>H', n) + data[ofs + 2:]
 
 
 def getsecaddr(datain, secno):
@@ -52,11 +52,11 @@ def getsecaddr(datain, secno):
     if (secno < 0) | (secno >= nsec):
         emsg = 'requested section number %d out of range (nsec=%d)' % (secno, nsec)
         raise DualMetaFixException(emsg)
-    secstart = getint(datain, first_pdb_record+secno*8)
-    if secno == nsec-1:
+    secstart = getint(datain, first_pdb_record + secno * 8)
+    if secno == nsec - 1:
         secend = len(datain)
     else:
-        secend = getint(datain, first_pdb_record+(secno+1)*8)
+        secend = getint(datain, first_pdb_record + (secno + 1) * 8)
     return secstart, secend
 
 
@@ -71,28 +71,28 @@ def replacesection(datain, secno, secdata):
     seclen = secend - secstart
     if len(secdata) != seclen:
         raise DualMetaFixException('section length change in replacesection')
-    datain[secstart:secstart+seclen] = secdata
+    datain[secstart:secstart + seclen] = secdata
 
 
 def get_exth_params(rec0):
     ebase = mobi_header_base + getint(rec0, mobi_header_length)
-    if rec0[ebase:ebase+4] != b'EXTH':
+    if rec0[ebase:ebase + 4] != b'EXTH':
         raise DualMetaFixException('EXTH tag not found where expected')
-    elen = getint(rec0, ebase+4)
-    enum = getint(rec0, ebase+8)
+    elen = getint(rec0, ebase + 4)
+    enum = getint(rec0, ebase + 8)
     rlen = len(rec0)
     return ebase, elen, enum, rlen
 
 
 def add_exth(rec0, exth_num, exth_bytes):
     ebase, elen, enum, rlen = get_exth_params(rec0)
-    newrecsize = 8+len(exth_bytes)
-    newrec0 = rec0[0:ebase+4]+struct.pack('>L', elen+newrecsize)+struct.pack('>L', enum+1)+struct.pack('>L', exth_num)\
-        + struct.pack('>L', newrecsize)+exth_bytes+rec0[ebase+12:]
-    newrec0 = writeint(newrec0, title_offset, getint(newrec0, title_offset)+newrecsize)
+    newrecsize = 8 + len(exth_bytes)
+    newrec0 = rec0[0:ebase + 4] + struct.pack('>L', elen + newrecsize) + struct.pack('>L', enum + 1) + \
+        struct.pack('>L', exth_num) + struct.pack('>L', newrecsize) + exth_bytes + rec0[ebase + 12:]
+    newrec0 = writeint(newrec0, title_offset, getint(newrec0, title_offset) + newrecsize)
     # keep constant record length by removing newrecsize null bytes from end
     sectail = newrec0[-newrecsize:]
-    if sectail != b'\0'*newrecsize:
+    if sectail != b'\0' * newrecsize:
         raise DualMetaFixException('add_exth: trimmed non-null bytes at end of section')
     newrec0 = newrec0[0:rlen]
     return newrec0
@@ -106,30 +106,31 @@ def read_exth(rec0, exth_num):
         exth_id = getint(rec0, ebase)
         if exth_id == exth_num:
             # We might have multiple exths, so build a list.
-            exth_values.append(rec0[ebase+8:ebase+getint(rec0, ebase+4)])
+            exth_values.append(rec0[ebase + 8:ebase + getint(rec0, ebase + 4)])
         enum -= 1
-        ebase = ebase+getint(rec0, ebase+4)
+        ebase = ebase + getint(rec0, ebase + 4)
     return exth_values
 
 
 def del_exth(rec0, exth_num):
     ebase, elen, enum, rlen = get_exth_params(rec0)
-    ebase_idx = ebase+12
+    ebase_idx = ebase + 12
     enum_idx = 0
     while enum_idx < enum:
         exth_id = getint(rec0, ebase_idx)
-        exth_size = getint(rec0, ebase_idx+4)
+        exth_size = getint(rec0, ebase_idx + 4)
         if exth_id == exth_num:
             newrec0 = rec0
-            newrec0 = writeint(newrec0, title_offset, getint(newrec0, title_offset)-exth_size)
-            newrec0 = newrec0[:ebase_idx]+newrec0[ebase_idx+exth_size:]
-            newrec0 = newrec0[0:ebase+4]+struct.pack('>L', elen-exth_size)+struct.pack('>L', enum-1)+newrec0[ebase+12:]
-            newrec0 += b'\0'*exth_size
+            newrec0 = writeint(newrec0, title_offset, getint(newrec0, title_offset) - exth_size)
+            newrec0 = newrec0[:ebase_idx] + newrec0[ebase_idx + exth_size:]
+            newrec0 = newrec0[0:ebase + 4] + struct.pack('>L', elen - exth_size) + \
+                struct.pack('>L', enum - 1) + newrec0[ebase + 12:]
+            newrec0 += b'\0' * exth_size
             if rlen != len(newrec0):
                 raise DualMetaFixException('del_exth: incorrect section size change')
             return newrec0
         enum_idx += 1
-        ebase_idx = ebase_idx+exth_size
+        ebase_idx = ebase_idx + exth_size
     return rec0
 
 
diff --git a/kcc/image.py b/kcc/image.py
index cd0213b..c0f0bf2 100755
--- a/kcc/image.py
+++ b/kcc/image.py
@@ -148,8 +148,8 @@ class ComicPage:
                 if self.noVPV:
                     flags.append('NoVerticalPanelView')
                 if self.border:
-                    flags.append('Margins-' + str(self.border[0]) + '-' + str(self.border[1]) + '-'
-                                 + str(self.border[2]) + '-' + str(self.border[3]))
+                    flags.append('Margins-' + str(self.border[0]) + '-' + str(self.border[1]) + '-' +
+                                 str(self.border[2]) + '-' + str(self.border[3]))
             if self.fill != 'white':
                 flags.append('BlackFill')
             if self.opt.quality == 2:
@@ -199,10 +199,10 @@ class ComicPage:
         else:
             multiplier = 1.5
         if border is not None:
-            self.border = [round(float(border[0])/float(self.image.size[0])*150, 3),
-                           round(float(border[1])/float(self.image.size[1])*150, 3),
-                           round(float(self.image.size[0]-border[2])/float(self.image.size[0])*150, 3),
-                           round(float(self.image.size[1]-border[3])/float(self.image.size[1])*150, 3)]
+            self.border = [round(float(border[0]) / float(self.image.size[0]) * 150, 3),
+                           round(float(border[1]) / float(self.image.size[1]) * 150, 3),
+                           round(float(self.image.size[0] - border[2]) / float(self.image.size[0]) * 150, 3),
+                           round(float(self.image.size[1] - border[3]) / float(self.image.size[1]) * 150, 3)]
             if int((border[2] - border[0]) * multiplier) < self.size[0] + 10:
                 self.noHPV = True
             if int((border[3] - border[1]) * multiplier) < self.size[1] + 10:
@@ -428,13 +428,13 @@ class ComicPage:
             while startY < bw.size[1]:
                 if startY + 5 > bw.size[1]:
                     startY = bw.size[1] - 5
-                fill += self.getImageHistogram(bw.crop((0, startY, bw.size[0], startY+5)))
+                fill += self.getImageHistogram(bw.crop((0, startY, bw.size[0], startY + 5)))
                 startY += 5
             startX = 0
             while startX < bw.size[0]:
                 if startX + 5 > bw.size[0]:
                     startX = bw.size[0] - 5
-                fill += self.getImageHistogram(bw.crop((startX, 0, startX+5, bw.size[1])))
+                fill += self.getImageHistogram(bw.crop((startX, 0, startX + 5, bw.size[1])))
                 startX += 5
             if fill > 0:
                 self.fill = 'black'
diff --git a/kcc/shared.py b/kcc/shared.py
index 8624775..fdde6e6 100644
--- a/kcc/shared.py
+++ b/kcc/shared.py
@@ -46,6 +46,9 @@ class HTMLStripper(HTMLParser):
     def get_data(self):
         return ''.join(self.fed)
 
+    def error(self, message):
+        pass
+
 
 def getImageFileName(imgfile):
     name, ext = os.path.splitext(imgfile)
@@ -125,7 +128,6 @@ def sanitizeTrace(traceback):
         .replace('C:\\Python34_64\\', '')
 
 
-# noinspection PyUnresolvedReferences
 def dependencyCheck(level):
     missing = []
     if level > 2:
diff --git a/setup.py b/setup.py
index 95b712c..ede43b3 100755
--- a/setup.py
+++ b/setup.py
@@ -22,7 +22,6 @@ VERSION = __version__
 MAIN = 'kcc.py'
 extra_options = {}
 
-# noinspection PyUnresolvedReferences
 if platform == 'darwin':
     from setuptools import setup
     from os import chmod, makedirs
@@ -60,7 +59,6 @@ if platform == 'darwin':
         )
     )
 elif platform == 'win32':
-    # noinspection PyUnresolvedReferences
     import py2exe
     from platform import architecture
     from distutils.core import setup