diff options
-rwxr-xr-x | kcc.py | 20 | ||||
-rw-r--r-- | kindlecomicconverter/KCC_gui.py | 20 | ||||
-rw-r--r-- | kindlecomicconverter/cbxarchive.py | 21 | ||||
-rwxr-xr-x | kindlecomicconverter/comic2ebook.py | 100 | ||||
-rw-r--r-- | kindlecomicconverter/comic2panel.py | 9 | ||||
-rwxr-xr-x | kindlecomicconverter/image.py | 52 | ||||
-rw-r--r-- | kindlecomicconverter/pdfjpgextract.py | 11 | ||||
-rw-r--r-- | kindlecomicconverter/shared.py | 8 |
8 files changed, 109 insertions, 132 deletions
diff --git a/kcc.py b/kcc.py index 618c2cb..a6020d9 100755 --- a/kcc.py +++ b/kcc.py @@ -34,24 +34,6 @@ if sys.platform.startswith('darwin'): else: os.environ['PATH'] = os.path.dirname(os.path.abspath(__file__)) + '/other/osx/:' + os.environ['PATH'] elif sys.platform.startswith('win'): - ''' - import multiprocessing.popen_spawn_win32 as forking - - class _Popen(forking.Popen): - def __init__(self, *args, **kw): - if hasattr(sys, 'frozen'): - # noinspection PyUnresolvedReferences,PyProtectedMember - os.putenv('_MEIPASS2', sys._MEIPASS) - try: - super(_Popen, self).__init__(*args, **kw) - finally: - if hasattr(sys, 'frozen'): - if hasattr(os, 'unsetenv'): - os.unsetenv('_MEIPASS2') - else: - os.putenv('_MEIPASS2', '') - forking.Popen = _Popen - ''' if getattr(sys, 'frozen', False): os.chdir(os.path.dirname(os.path.abspath(sys.executable))) else: @@ -61,7 +43,7 @@ elif sys.platform.startswith('win'): if getattr(sys, 'frozen', False): try: import kindlecomicconverter.sentry - except: + except ImportError: pass from multiprocessing import freeze_support diff --git a/kindlecomicconverter/KCC_gui.py b/kindlecomicconverter/KCC_gui.py index a98585a..651026a 100644 --- a/kindlecomicconverter/KCC_gui.py +++ b/kindlecomicconverter/KCC_gui.py @@ -156,8 +156,8 @@ class VersionThread(QtCore.QThread): '(<a href="https://github.com/ciromattia/kcc/releases/">' 'Changelog</a>)', 'warning', False) - def setAnswer(self, dialogAnswer): - self.answer = dialogAnswer + def setAnswer(self, dialoganswer): + self.answer = dialoganswer def getNewVersion(self): while self.answer is None: @@ -180,8 +180,8 @@ class VersionThread(QtCore.QThread): MW.hideProgressBar.emit() MW.modeConvert.emit(1) - def getNewVersionTick(self, size, blockSize, totalSize): - progress = int((size / (totalSize // blockSize)) * 100) + def getNewVersionTick(self, size, blocksize, totalsize): + progress = int((size / (totalsize // blocksize)) * 100) if size == 0: MW.progressBarTick.emit('100') if progress > self.barProgress: @@ -667,10 +667,10 @@ class KCCGUI(KCC_ui.Ui_mainWindow): self.addMessage('<a href="https://github.com/ciromattia/kcc/wiki/NonKindle-devices">' 'List of supported Non-Kindle devices.</a>', 'info') - def changeFormat(self, outputFormat=None): + def changeFormat(self, outputformat=None): profile = GUI.profiles[str(GUI.deviceBox.currentText())] - if outputFormat is not None: - GUI.formatBox.setCurrentIndex(outputFormat) + if outputformat is not None: + GUI.formatBox.setCurrentIndex(outputformat) else: GUI.formatBox.setCurrentIndex(profile['DefaultFormat']) if not GUI.webtoonBox.isChecked(): @@ -881,10 +881,10 @@ class KCCGUI(KCC_ui.Ui_mainWindow): else: self.addMessage('Download it and place executable in /usr/local/bin directory.', 'error') - def __init__(self, KCCAplication, KCCWindow): + def __init__(self, kccapp, kccwindow): global APP, MW, GUI - APP = KCCAplication - MW = KCCWindow + APP = kccapp + MW = kccwindow GUI = self self.setupUi(MW) self.editor = KCCGUI_MetaEditor() diff --git a/kindlecomicconverter/cbxarchive.py b/kindlecomicconverter/cbxarchive.py index 7aba70f..fdb6393 100644 --- a/kindlecomicconverter/cbxarchive.py +++ b/kindlecomicconverter/cbxarchive.py @@ -26,13 +26,13 @@ from .shared import check7ZFile as is_7zfile class CBxArchive: - def __init__(self, origFileName): - self.origFileName = origFileName - if is_zipfile(origFileName): + def __init__(self, fname): + self.fname = fname + if is_zipfile(fname): self.compressor = 'zip' - elif rarfile.is_rarfile(origFileName): + elif rarfile.is_rarfile(fname): self.compressor = 'rar' - elif is_7zfile(origFileName): + elif is_7zfile(fname): self.compressor = '7z' else: self.compressor = None @@ -41,22 +41,19 @@ class CBxArchive: return self.compressor is not None def extractCBZ(self, targetdir): - cbzFile = ZipFile(self.origFileName) + cbzFile = ZipFile(self.fname) filelist = [] for f in cbzFile.namelist(): if f.startswith('__MACOSX') or f.endswith('.DS_Store') or f.endswith('humbs.db'): pass elif f.endswith('/'): - try: - os.makedirs(os.path.join(targetdir, f)) - except Exception: - pass + os.makedirs(os.path.join(targetdir, f), exist_ok=True) else: filelist.append(f) cbzFile.extractall(targetdir, filelist) def extractCBR(self, targetdir): - cbrFile = rarfile.RarFile(self.origFileName) + cbrFile = rarfile.RarFile(self.fname) cbrFile.extractall(targetdir) for root, _, filenames in os.walk(targetdir): for filename in filenames: @@ -64,7 +61,7 @@ class CBxArchive: os.remove(os.path.join(root, filename)) def extractCB7(self, targetdir): - output = Popen('7za x "' + self.origFileName + '" -xr!__MACOSX -xr!.DS_Store -xr!thumbs.db -xr!Thumbs.db -o"' + + output = Popen('7za x "' + self.fname + '" -xr!__MACOSX -xr!.DS_Store -xr!thumbs.db -xr!Thumbs.db -o"' + targetdir + '"', stdout=PIPE, stderr=STDOUT, stdin=PIPE, shell=True) extracted = False for line in output.stdout: diff --git a/kindlecomicconverter/comic2ebook.py b/kindlecomicconverter/comic2ebook.py index e27d5e6..1689d8d 100755 --- a/kindlecomicconverter/comic2ebook.py +++ b/kindlecomicconverter/comic2ebook.py @@ -198,7 +198,7 @@ def buildHTML(path, imgfile, imgfilepath): return path, imgfile -def buildNCX(dstdir, title, chapters, chapterNames): +def buildNCX(dstdir, title, chapters, chapternames): ncxfile = os.path.join(dstdir, 'OEBPS', 'toc.ncx') f = open(ncxfile, "w", encoding='UTF-8') f.writelines(["<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n", @@ -217,10 +217,10 @@ def buildNCX(dstdir, title, chapters, chapterNames): filename = getImageFileName(os.path.join(folder, chapter[1])) navID = folder.replace('/', '_').replace('\\', '_') if options.chapters: - title = chapterNames[chapter[1]] + title = chapternames[chapter[1]] navID = filename[0].replace('/', '_').replace('\\', '_') elif os.path.basename(folder) != "Text": - title = chapterNames[os.path.basename(folder)] + title = chapternames[os.path.basename(folder)] f.write("<navPoint id=\"" + navID + "\"><navLabel><text>" + escape(title) + "</text></navLabel><content src=\"" + filename[0].replace("\\", "/") + ".xhtml\"/></navPoint>\n") @@ -228,7 +228,7 @@ def buildNCX(dstdir, title, chapters, chapterNames): f.close() -def buildNAV(dstdir, title, chapters, chapterNames): +def buildNAV(dstdir, title, chapters, chapternames): navfile = os.path.join(dstdir, 'OEBPS', 'nav.xhtml') f = open(navfile, "w", encoding='UTF-8') f.writelines(["<?xml version=\"1.0\" encoding=\"utf-8\"?>\n", @@ -245,9 +245,9 @@ def buildNAV(dstdir, title, chapters, chapterNames): folder = chapter[0].replace(os.path.join(dstdir, 'OEBPS'), '').lstrip('/').lstrip('\\\\') filename = getImageFileName(os.path.join(folder, chapter[1])) if options.chapters: - title = chapterNames[chapter[1]] + title = chapternames[chapter[1]] elif os.path.basename(folder) != "Text": - title = chapterNames[os.path.basename(folder)] + title = chapternames[os.path.basename(folder)] f.write("<li><a href=\"" + filename[0].replace("\\", "/") + ".xhtml\">" + escape(title) + "</a></li>\n") f.writelines(["</ol>\n", "</nav>\n", @@ -257,9 +257,9 @@ def buildNAV(dstdir, title, chapters, chapterNames): folder = chapter[0].replace(os.path.join(dstdir, 'OEBPS'), '').lstrip('/').lstrip('\\\\') filename = getImageFileName(os.path.join(folder, chapter[1])) if options.chapters: - title = chapterNames[chapter[1]] + title = chapternames[chapter[1]] elif os.path.basename(folder) != "Text": - title = chapterNames[os.path.basename(folder)] + title = chapternames[os.path.basename(folder)] f.write("<li><a href=\"" + filename[0].replace("\\", "/") + ".xhtml\">" + escape(title) + "</a></li>\n") f.write("</ol>\n</nav>\n</body>\n</html>") f.close() @@ -348,7 +348,7 @@ def buildOPF(dstdir, title, filelist, cover=None): f.close() -def buildEPUB(path, chapterNames, tomeNumber): +def buildEPUB(path, chapternames, tomenumber): filelist = [] chapterlist = [] cover = None @@ -439,9 +439,9 @@ def buildEPUB(path, chapterNames, tomeNumber): cover = os.path.join(os.path.join(path, 'OEBPS', 'Images'), 'cover' + getImageFileName(filelist[-1][1])[1]) options.covers.append((image.Cover(os.path.join(filelist[-1][0], filelist[-1][1]), cover, options, - tomeNumber), options.uuid)) + tomenumber), options.uuid)) # Overwrite chapternames if tree is flat and ComicInfo.xml has bookmarks - if not chapterNames and options.chapters: + if not chapternames and options.chapters: chapterlist = [] globaldiff = 0 for aChapter in options.chapters: @@ -453,10 +453,10 @@ def buildEPUB(path, chapterNames, tomeNumber): pageid -= 1 filename = filelist[pageid][1] chapterlist.append((filelist[pageid][0].replace('Images', 'Text'), filename)) - chapterNames[filename] = aChapter[1] + chapternames[filename] = aChapter[1] globaldiff = pageid - (aChapter[0] + globaldiff) - buildNCX(path, options.title, chapterlist, chapterNames) - buildNAV(path, options.title, chapterlist, chapterNames) + buildNCX(path, options.title, chapterlist, chapternames) + buildNAV(path, options.title, chapterlist, chapternames) buildOPF(path, options.title, filelist, cover) @@ -542,7 +542,7 @@ def getWorkFolder(afile): copytree(afile, fullPath) sanitizePermissions(fullPath) return workdir - except: + except Exception: rmtree(workdir, True) raise UserWarning("Failed to prepare a workspace.") elif os.path.isfile(afile): @@ -560,7 +560,7 @@ def getWorkFolder(afile): if cbx.isCbxFile(): try: path = cbx.extract(workdir) - except: + except Exception: rmtree(workdir, True) raise UserWarning("Failed to extract archive.") else: @@ -575,7 +575,7 @@ def getWorkFolder(afile): return newpath -def getOutputFilename(srcpath, wantedname, ext, tomeNumber): +def getOutputFilename(srcpath, wantedname, ext, tomenumber): if srcpath[-1] == os.path.sep: srcpath = srcpath[:-1] if 'Ko' in options.profile and options.format == 'EPUB': @@ -589,16 +589,16 @@ def getOutputFilename(srcpath, wantedname, ext, tomeNumber): filename = os.path.join(os.path.abspath(options.output), os.path.basename(os.path.splitext(srcpath)[0]) + ext) elif os.path.isdir(srcpath): - filename = srcpath + tomeNumber + ext + filename = srcpath + tomenumber + ext else: if 'Ko' in options.profile and options.format == 'EPUB': path = srcpath.split(os.path.sep) - path[-1] = ''.join(e for e in path[-1].split('.')[0] if e.isalnum()) + tomeNumber + ext + path[-1] = ''.join(e for e in path[-1].split('.')[0] if e.isalnum()) + tomenumber + ext if not path[-1].split('.')[0]: - path[-1] = 'KCCPlaceholder' + tomeNumber + ext + path[-1] = 'KCCPlaceholder' + tomenumber + ext filename = os.path.sep.join(path) else: - filename = os.path.splitext(srcpath)[0] + tomeNumber + ext + filename = os.path.splitext(srcpath)[0] + tomenumber + ext if os.path.isfile(filename): counter = 0 basename = os.path.splitext(filename)[0] @@ -608,7 +608,7 @@ def getOutputFilename(srcpath, wantedname, ext, tomeNumber): return filename -def getComicInfo(path, originalPath): +def getComicInfo(path, originalpath): xmlPath = os.path.join(path, 'ComicInfo.xml') options.authors = ['KCC'] options.remoteCovers = {} @@ -617,10 +617,10 @@ def getComicInfo(path, originalPath): titleSuffix = '' if options.title == 'defaulttitle': defaultTitle = True - if os.path.isdir(originalPath): - options.title = os.path.basename(originalPath) + if os.path.isdir(originalpath): + options.title = os.path.basename(originalpath) else: - options.title = os.path.splitext(os.path.basename(originalPath))[0] + options.title = os.path.splitext(os.path.basename(originalpath))[0] else: defaultTitle = False if os.path.exists(xmlPath): @@ -655,10 +655,10 @@ def getComicInfo(path, originalPath): os.remove(xmlPath) -def getCoversFromMCB(mangaID): +def getCoversFromMCB(mangaid): covers = {} try: - jsonRaw = urlopen(Request('http://mcd.iosphe.re/api/v1/series/' + mangaID + '/', + jsonRaw = urlopen(Request('http://mcd.iosphe.re/api/v1/series/' + mangaid + '/', headers={'User-Agent': 'KindleComicConverter/' + __version__})) jsonData = loads(jsonRaw.read().decode('utf-8')) for volume in jsonData['Covers']['a']: @@ -683,9 +683,9 @@ def getTopMargin(deviceres, size): return str(round(y, 1)) -def getPanelViewResolution(imageSize, deviceRes): - scale = float(deviceRes[0]) / float(imageSize[0]) - return int(deviceRes[0]), int(scale * imageSize[1]) +def getPanelViewResolution(imagesize, deviceres): + scale = float(deviceres[0]) / float(imagesize[0]) + return int(deviceres[0]), int(scale * imagesize[1]) def getPanelViewSize(deviceres, size): @@ -804,19 +804,19 @@ def splitProcess(path, mode): return output -def detectCorruption(tmpPath, orgPath): +def detectCorruption(tmppath, orgpath): imageNumber = 0 imageSmaller = 0 alreadyProcessed = False - for root, _, files in os.walk(tmpPath, False): + for root, _, files in os.walk(tmppath, False): for name in files: if getImageFileName(name) is not None: if not alreadyProcessed and getImageFileName(name)[0].endswith('-kcc'): alreadyProcessed = True path = os.path.join(root, name) - pathOrg = orgPath + path.split('OEBPS' + os.path.sep + 'Images')[1] + pathOrg = orgpath + path.split('OEBPS' + os.path.sep + 'Images')[1] if os.path.getsize(path) == 0: - rmtree(os.path.join(tmpPath, '..', '..'), True) + rmtree(os.path.join(tmppath, '..', '..'), True) raise RuntimeError('Image file %s is corrupted.' % pathOrg) try: img = Image.open(path) @@ -827,7 +827,7 @@ def detectCorruption(tmpPath, orgPath): if options.profileData[1][0] > img.size[0] and options.profileData[1][1] > img.size[1]: imageSmaller += 1 except Exception as err: - rmtree(os.path.join(tmpPath, '..', '..'), True) + rmtree(os.path.join(tmppath, '..', '..'), True) if 'decoder' in str(err) and 'not available' in str(err): raise RuntimeError('Pillow was compiled without JPG and/or PNG decoder.') else: @@ -856,8 +856,8 @@ def createNewTome(): return tomePath, tomePathRoot -def slugify(value, isDir): - if isDir: +def slugify(value, isdir): + if isdir: value = slugifyExt(value, regex_pattern=r'[^-a-z0-9_\.]+') else: value = slugifyExt(value) @@ -865,19 +865,19 @@ def slugify(value, isDir): return value -def makeZIP(zipFilename, baseDir, isEPUB=False): - zipFilename = os.path.abspath(zipFilename) + '.zip' - zipOutput = ZipFile(zipFilename, 'w', ZIP_DEFLATED) - if isEPUB: +def makeZIP(zipfilename, basedir, isepub=False): + zipfilename = os.path.abspath(zipfilename) + '.zip' + zipOutput = ZipFile(zipfilename, 'w', ZIP_DEFLATED) + if isepub: zipOutput.writestr('mimetype', 'application/epub+zip', ZIP_STORED) - for dirpath, _, filenames in os.walk(baseDir): + for dirpath, _, filenames in os.walk(basedir): for name in filenames: path = os.path.normpath(os.path.join(dirpath, name)) - aPath = os.path.normpath(os.path.join(dirpath.replace(baseDir, ''), name)) + aPath = os.path.normpath(os.path.join(dirpath.replace(basedir, ''), name)) if os.path.isfile(path): zipOutput.write(path, aPath) zipOutput.close() - return zipFilename + return zipfilename def makeParser(): @@ -1039,13 +1039,13 @@ def checkPre(source): try: with TemporaryFile(prefix='KCC-', dir=src): pass - except: + except Exception: raise UserWarning("Target directory is not writable.") -def makeBook(source, qtGUI=None): +def makeBook(source, qtgui=None): global GUI - GUI = qtGUI + GUI = qtgui if GUI: GUI.progressBarTick.emit('1') else: @@ -1061,7 +1061,7 @@ def makeBook(source, qtGUI=None): y = 1024 else: y = image.ProfileData.Profiles[options.profile][1][1] - comic2panel.main(['-y ' + str(y), '-i', '-m', path], qtGUI) + comic2panel.main(['-y ' + str(y), '-i', '-m', path], qtgui) print("Processing images...") if GUI: GUI.progressBarTick.emit('Processing images') @@ -1192,9 +1192,9 @@ def makeMOBIWorker(item): return [kindlegenErrorCode, kindlegenError, item] -def makeMOBI(work, qtGUI=None): +def makeMOBI(work, qtgui=None): global GUI, makeMOBIWorkerPool, makeMOBIWorkerOutput - GUI = qtGUI + GUI = qtgui makeMOBIWorkerOutput = [] availableMemory = virtual_memory().total / 1000000000 if availableMemory <= 2: diff --git a/kindlecomicconverter/comic2panel.py b/kindlecomicconverter/comic2panel.py index 14b3294..03093e0 100644 --- a/kindlecomicconverter/comic2panel.py +++ b/kindlecomicconverter/comic2panel.py @@ -93,6 +93,7 @@ def splitImageTick(output): splitWorkerPool.terminate() +# noinspection PyUnboundLocalVariable def splitImage(work): try: path = work[0] @@ -140,9 +141,7 @@ def splitImage(work): if opt.debug: for panel in panelsProcessed: - # noinspection PyUnboundLocalVariable draw.rectangle([(0, panel[0]), (widthImg, panel[1])], (0, 255, 0, 128), (0, 0, 255, 255)) - # noinspection PyUnboundLocalVariable debugImage = Image.alpha_composite(imgOrg.convert(mode='RGBA'), drawImg) debugImage.save(os.path.join(path, os.path.splitext(name)[0] + '-debug.png'), 'PNG') @@ -185,7 +184,7 @@ def splitImage(work): return str(sys.exc_info()[1]), sanitizeTrace(sys.exc_info()[2]) -def main(argv=None, qtGUI=None): +def main(argv=None, qtgui=None): global options, GUI, splitWorkerPool, splitWorkerOutput, mergeWorkerPool, mergeWorkerOutput parser = OptionParser(usage="Usage: kcc-c2p [options] comic_folder", add_help_option=False) mainOptions = OptionGroup(parser, "MANDATORY") @@ -203,8 +202,8 @@ def main(argv=None, qtGUI=None): parser.add_option_group(mainOptions) parser.add_option_group(otherOptions) options, args = parser.parse_args(argv) - if qtGUI: - GUI = qtGUI + if qtgui: + GUI = qtgui else: GUI = None if len(args) != 1: diff --git a/kindlecomicconverter/image.py b/kindlecomicconverter/image.py index e7f29a4..fdb2ed4 100755 --- a/kindlecomicconverter/image.py +++ b/kindlecomicconverter/image.py @@ -299,53 +299,53 @@ class ComicPage: if self.image.size[0] > self.size[0] or self.image.size[1] > self.size[1]: self.image.thumbnail(self.size, Image.LANCZOS) - def getBoundingBox(self, tmpImg): - min_margin = [int(0.005 * i + 0.5) for i in tmpImg.size] - max_margin = [int(0.1 * i + 0.5) for i in tmpImg.size] - bbox = tmpImg.getbbox() + def getBoundingBox(self, tmptmg): + min_margin = [int(0.005 * i + 0.5) for i in tmptmg.size] + max_margin = [int(0.1 * i + 0.5) for i in tmptmg.size] + bbox = tmptmg.getbbox() bbox = ( max(0, min(max_margin[0], bbox[0] - min_margin[0])), max(0, min(max_margin[1], bbox[1] - min_margin[1])), - min(tmpImg.size[0], - max(tmpImg.size[0] - max_margin[0], bbox[2] + min_margin[0])), - min(tmpImg.size[1], - max(tmpImg.size[1] - max_margin[1], bbox[3] + min_margin[1])), + min(tmptmg.size[0], + max(tmptmg.size[0] - max_margin[0], bbox[2] + min_margin[0])), + min(tmptmg.size[1], + max(tmptmg.size[1] - max_margin[1], bbox[3] + min_margin[1])), ) return bbox def cropPageNumber(self, power): if self.fill != 'white': - tmpImg = self.image.convert(mode='L') + tmptmg = self.image.convert(mode='L') else: - tmpImg = ImageOps.invert(self.image.convert(mode='L')) - tmpImg = tmpImg.point(lambda x: x and 255) - tmpImg = tmpImg.filter(ImageFilter.MinFilter(size=3)) - tmpImg = tmpImg.filter(ImageFilter.GaussianBlur(radius=5)) - tmpImg = tmpImg.point(lambda x: (x >= 16 * power) and x) - self.image = self.image.crop(tmpImg.getbbox()) if tmpImg.getbbox() else self.image + tmptmg = ImageOps.invert(self.image.convert(mode='L')) + tmptmg = tmptmg.point(lambda x: x and 255) + tmptmg = tmptmg.filter(ImageFilter.MinFilter(size=3)) + tmptmg = tmptmg.filter(ImageFilter.GaussianBlur(radius=5)) + tmptmg = tmptmg.point(lambda x: (x >= 16 * power) and x) + self.image = self.image.crop(tmptmg.getbbox()) if tmptmg.getbbox() else self.image def cropMargin(self, power): if self.fill != 'white': - tmpImg = self.image.convert(mode='L') + tmptmg = self.image.convert(mode='L') else: - tmpImg = ImageOps.invert(self.image.convert(mode='L')) - tmpImg = tmpImg.filter(ImageFilter.GaussianBlur(radius=3)) - tmpImg = tmpImg.point(lambda x: (x >= 16 * power) and x) - self.image = self.image.crop(self.getBoundingBox(tmpImg)) if tmpImg.getbbox() else self.image + tmptmg = ImageOps.invert(self.image.convert(mode='L')) + tmptmg = tmptmg.filter(ImageFilter.GaussianBlur(radius=3)) + tmptmg = tmptmg.point(lambda x: (x >= 16 * power) and x) + self.image = self.image.crop(self.getBoundingBox(tmptmg)) if tmptmg.getbbox() else self.image class Cover: - def __init__(self, source, target, opt, tomeNumber): + def __init__(self, source, target, opt, tomeid): self.options = opt self.source = source self.target = target - if tomeNumber == 0: - self.tomeNumber = 1 + if tomeid == 0: + self.tomeid = 1 else: - self.tomeNumber = tomeNumber - if self.tomeNumber in self.options.remoteCovers: + self.tomeid = tomeid + if self.tomeid in self.options.remoteCovers: try: - source = urlopen(Request(quote(self.options.remoteCovers[self.tomeNumber]).replace('%3A', ':', 1), + source = urlopen(Request(quote(self.options.remoteCovers[self.tomeid]).replace('%3A', ':', 1), headers={'User-Agent': 'KindleComicConverter/' + __version__})).read() self.image = Image.open(BytesIO(source)) except Exception: diff --git a/kindlecomicconverter/pdfjpgextract.py b/kindlecomicconverter/pdfjpgextract.py index 90d0643..0889eda 100644 --- a/kindlecomicconverter/pdfjpgextract.py +++ b/kindlecomicconverter/pdfjpgextract.py @@ -25,17 +25,16 @@ from string import ascii_uppercase, digits class PdfJpgExtract: - def __init__(self, origFileName): - self.origFileName = origFileName - self.filename = os.path.splitext(origFileName) - # noinspection PyUnusedLocal - self.path = self.filename[0] + "-KCC-" + ''.join(choice(ascii_uppercase + digits) for x in range(3)) + def __init__(self, fname): + self.fname = fname + self.filename = os.path.splitext(fname) + self.path = self.filename[0] + "-KCC-" + ''.join(choice(ascii_uppercase + digits) for _ in range(3)) def getPath(self): return self.path def extract(self): - pdf = open(self.origFileName, "rb").read() + pdf = open(self.fname, "rb").read() startmark = b"\xff\xd8" startfix = 0 endmark = b"\xff\xd9" diff --git a/kindlecomicconverter/shared.py b/kindlecomicconverter/shared.py index c2a8ecf..6f3a0aa 100644 --- a/kindlecomicconverter/shared.py +++ b/kindlecomicconverter/shared.py @@ -73,8 +73,8 @@ def walkLevel(some_dir, level=1): del dirs[:] -def md5Checksum(filePath): - with open(filePath, 'rb') as fh: +def md5Checksum(fpath): + with open(fpath, 'rb') as fh: m = md5() while True: data = fh.read(8192) @@ -84,8 +84,8 @@ def md5Checksum(filePath): return m.hexdigest() -def check7ZFile(filePath): - with open(filePath, 'rb') as fh: +def check7ZFile(fpath): + with open(fpath, 'rb') as fh: header = fh.read(6) return header == b"7z\xbc\xaf'\x1c" |