1
0
mirror of https://github.com/ciromattia/kcc synced 2025-12-13 17:56:30 +00:00

Revert "Changed output extension to AZW3"

This reverts commit 64b199ef74.
This commit is contained in:
Paweł Jastrzębski
2014-05-04 21:37:26 +02:00
parent df5ee1badf
commit 942a828b7e

View File

@@ -58,8 +58,8 @@ class Icons:
self.deviceOther = QtGui.QIcon()
self.deviceOther.addPixmap(QtGui.QPixmap(":/Devices/icons/Other.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.MOBIAZW3Format = QtGui.QIcon()
self.MOBIAZW3Format.addPixmap(QtGui.QPixmap(":/Formats/icons/MOBI.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.MOBIFormat = QtGui.QIcon()
self.MOBIFormat.addPixmap(QtGui.QPixmap(":/Formats/icons/MOBI.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.CBZFormat = QtGui.QIcon()
self.CBZFormat.addPixmap(QtGui.QPixmap(":/Formats/icons/CBZ.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.EPUBFormat = QtGui.QIcon()
@@ -100,9 +100,6 @@ class WebServerHandler(BaseHTTPRequestHandler):
if self.path.endswith('.mobi'):
mimetype = 'application/x-mobipocket-ebook'
sendReply = True
if self.path.endswith('.azw3'):
mimetype = 'application/x-mobipocket-ebook'
sendReply = True
if self.path.endswith('.epub'):
mimetype = 'application/epub+zip'
sendReply = True
@@ -133,12 +130,9 @@ class WebServerHandler(BaseHTTPRequestHandler):
'</body>\n'
'</html>\n', 'UTF-8'))
elif sendReply:
# Some Kindle browsers don't suport AZW3 extension
filename = unquote(self.path[1:]).replace('.azw3', '.azw')
outputFile = GUI.completedWork[unquote(self.path[1:])]
fp = open(outputFile, 'rb')
self.send_response(200)
self.send_header('Content-disposition', 'attachment;filename="' + filename + '"')
self.send_header('Content-type', mimetype)
self.send_header('Content-Length', os.path.getsize(outputFile))
self.end_headers()
@@ -317,17 +311,19 @@ class KindleUnpackThread(QtCore.QRunnable):
def run(self):
item = self.work[0]
extension = self.work[1]
profile = self.work[1]
os.remove(item)
if extension == '.azw3':
newKindle = True
else:
newKindle = False
mobiPath = item.replace('.epub', '.mobi')
move(mobiPath, mobiPath + '_toclean')
try:
# MOBI file produced by KindleGen is hybrid. KF8 + M7 + Source header
# KindleSplit is removing redundant data as we need only KF8 part for new Kindle models
if profile in ['K345', 'KHD', 'KF', 'KFHD', 'KFHD8', 'KFHDX', 'KFHDX8', 'KFA']:
newKindle = True
else:
newKindle = False
mobisplit = kindlesplit.mobi_split(mobiPath + '_toclean', newKindle)
open(mobiPath.replace('.mobi', extension), 'wb').write(mobisplit.getResult())
open(mobiPath, 'wb').write(mobisplit.getResult())
self.signals.result.emit([True])
except Exception as err:
self.signals.result.emit([False, format(err)])
@@ -378,13 +374,6 @@ class WorkerThread(QtCore.QThread):
def run(self):
MW.modeConvert.emit(0)
profile = GUI.profiles[str(GUI.DeviceBox.currentText())]['Label']
# Extenstion is purely cosmetic
if profile in ['K345', 'KHD', 'KF', 'KFHD', 'KFHD8', 'KFHDX', 'KFHDX8', 'KFA']:
extension = '.azw3'
extensionC = 'AZW3'
else:
extension = '.mobi'
extensionC = 'MOBI'
argv = ["--profile=" + profile]
currentJobs = []
if GUI.MangaBox.isChecked():
@@ -420,7 +409,7 @@ class WorkerThread(QtCore.QThread):
if float(GUI.GammaValue) > 0.09:
# noinspection PyTypeChecker
argv.append("--gamma=" + GUI.GammaValue)
if str(GUI.FormatBox.currentText()) == 'MOBI/AZW3':
if str(GUI.FormatBox.currentText()) == 'MOBI':
argv.append("--batchsplit")
if GUI.currentMode > 2:
argv.append("--customwidth=" + str(GUI.customWidth.text()))
@@ -480,12 +469,12 @@ class WorkerThread(QtCore.QThread):
MW.addMessage.emit('Creating CBZ files... <b>Done!</b>', 'info', True)
else:
MW.addMessage.emit('Creating EPUB files... <b>Done!</b>', 'info', True)
if str(GUI.FormatBox.currentText()) == 'MOBI/AZW3':
MW.progressBarTick.emit('Creating ' + extensionC + ' files')
if str(GUI.FormatBox.currentText()) == 'MOBI':
MW.progressBarTick.emit('Creating MOBI files')
MW.progressBarTick.emit(str(len(outputPath)*2+1))
MW.progressBarTick.emit('tick')
MW.addMessage.emit('Creating ' + extensionC + ' files', 'info', False)
GUI.progress.content = 'Creating ' + extensionC + ' files'
MW.addMessage.emit('Creating MOBI files', 'info', False)
GUI.progress.content = 'Creating MOBI files'
self.workerOutput = []
# Number of KindleGen threads depends on the size of RAM
self.pool.setMaxThreadCount(self.threadNumber)
@@ -511,15 +500,15 @@ class WorkerThread(QtCore.QThread):
return
if self.kindlegenErrorCode[0] == 0:
GUI.progress.content = ''
MW.addMessage.emit('Creating ' + extensionC + ' files... <b>Done!</b>', 'info', True)
MW.addMessage.emit('Cleaning ' + extensionC + ' files', 'info', False)
GUI.progress.content = 'Cleaning ' + extensionC + ' files'
MW.addMessage.emit('Creating MOBI files... <b>Done!</b>', 'info', True)
MW.addMessage.emit('Cleaning MOBI files', 'info', False)
GUI.progress.content = 'Cleaning MOBI files'
self.workerOutput = []
# Multithreading KindleUnpack in current form is a waste of resources.
# Unless we higly optimise KindleUnpack or drop 32bit support this will not change.
self.pool.setMaxThreadCount(1)
for item in outputPath:
worker = KindleUnpackThread([item, extension])
worker = KindleUnpackThread([item, profile])
worker.signals.result.connect(self.addResult)
self.pool.start(worker)
self.pool.waitForDone()
@@ -533,7 +522,6 @@ class WorkerThread(QtCore.QThread):
GUI.progress.content = ''
mobiPath = item.replace('.epub', '.mobi')
os.remove(mobiPath + '_toclean')
mobiPath = item.replace('.epub', extension)
if GUI.targetDirectory and GUI.targetDirectory != os.path.split(mobiPath)[0]:
try:
move(mobiPath, GUI.targetDirectory)
@@ -541,18 +529,17 @@ class WorkerThread(QtCore.QThread):
except Exception:
pass
GUI.completedWork[os.path.basename(mobiPath)] = mobiPath
MW.addMessage.emit('Cleaning ' + extensionC + ' files... <b>Done!</b>', 'info', True)
MW.addMessage.emit('Cleaning MOBI files... <b>Done!</b>', 'info', True)
else:
GUI.progress.content = ''
for item in outputPath:
mobiPath = item.replace('.epub', extension)
mobiPath = item.replace('.epub', '.mobi')
if os.path.exists(mobiPath):
os.remove(mobiPath)
mobiPath = item.replace('.epub', '.mobi')
if os.path.exists(mobiPath + '_toclean'):
os.remove(mobiPath + '_toclean')
MW.addMessage.emit('KindleUnpack failed to clean ' + extensionC + ' file!', 'error', False)
MW.addTrayMessage.emit('KindleUnpack failed to clean ' + extensionC + ' file!', 'Critical')
MW.addMessage.emit('KindleUnpack failed to clean MOBI file!', 'error', False)
MW.addTrayMessage.emit('KindleUnpack failed to clean MOBI file!', 'Critical')
else:
GUI.progress.content = ''
epubSize = (os.path.getsize(self.kindlegenErrorCode[2]))//1024//1024
@@ -562,8 +549,8 @@ class WorkerThread(QtCore.QThread):
sleep(1)
if os.path.exists(item.replace('.epub', '.mobi')):
os.remove(item.replace('.epub', '.mobi'))
MW.addMessage.emit('KindleGen failed to create ' + extensionC + '!', 'error', False)
MW.addTrayMessage.emit('KindleGen failed to create ' + extensionC + '!', 'Critical')
MW.addMessage.emit('KindleGen failed to create MOBI!', 'error', False)
MW.addTrayMessage.emit('KindleGen failed to create MOBI!', 'Critical')
if self.kindlegenErrorCode[0] == 1 and self.kindlegenErrorCode[1] != '':
MW.showDialog.emit("KindleGen error:\n\n" + self.kindlegenErrorCode[1], 'error')
if self.kindlegenErrorCode[0] == 23026:
@@ -1193,7 +1180,7 @@ class KCCGUI(KCC_ui.Ui_KCC):
kindleGenExitCode = Popen('kindlegen -locale en', stdout=PIPE, stderr=STDOUT, shell=True)
if kindleGenExitCode.wait() == 0:
self.KindleGen = True
formats = ['MOBI/AZW3', 'EPUB', 'CBZ']
formats = ['MOBI', 'EPUB', 'CBZ']
versionCheck = Popen('kindlegen -locale en', stdout=PIPE, stderr=STDOUT, shell=True)
for line in versionCheck.stdout:
line = line.decode("utf-8")
@@ -1201,7 +1188,7 @@ class KCCGUI(KCC_ui.Ui_KCC):
versionCheck = line.split('V')[1].split(' ')[0]
if tuple(map(int, (versionCheck.split(".")))) < tuple(map(int, ('2.9'.split(".")))):
self.addMessage('Your <a href="http://www.amazon.com/gp/feature.html?ie=UTF8&docId='
'1000765211">kindlegen</a> is outdated! Creating MOBI/AZW3 might fail.'
'1000765211">kindlegen</a> is outdated! Creating MOBI might fail.'
' Please update <a href="http://www.amazon.com/gp/feature.html?ie=UTF8&docId='
'1000765211">kindlegen</a> from Amazon\'s website.', 'warning')
break
@@ -1210,10 +1197,10 @@ class KCCGUI(KCC_ui.Ui_KCC):
formats = ['EPUB', 'CBZ']
if sys.platform.startswith('win'):
self.addMessage('Cannot find <a href="http://www.amazon.com/gp/feature.html?ie=UTF8&docId=1000765211">'
'kindlegen</a> in KCC directory! MOBI/AZW3 creation will be disabled.', 'warning')
'kindlegen</a> in KCC directory! MOBI creation will be disabled.', 'warning')
else:
self.addMessage('Cannot find <a href="http://www.amazon.com/gp/feature.html?ie=UTF8&docId=1000765211">'
'kindlegen</a> in PATH! MOBI/AZW3 creation will be disabled.', 'warning')
'kindlegen</a> in PATH! MOBI creation will be disabled.', 'warning')
rarExitCode = Popen('unrar', stdout=PIPE, stderr=STDOUT, shell=True)
rarExitCode = rarExitCode.wait()
if rarExitCode == 0 or rarExitCode == 7:
@@ -1269,7 +1256,7 @@ class KCCGUI(KCC_ui.Ui_KCC):
else:
GUI.DeviceBox.addItem(self.icons.deviceKindle, profile)
for f in formats:
GUI.FormatBox.addItem(eval('self.icons.' + f.replace('/', '') + 'Format'), f)
GUI.FormatBox.addItem(eval('self.icons.' + f + 'Format'), f)
if self.lastDevice > GUI.DeviceBox.count():
self.lastDevice = 0
if profilesGUI[self.lastDevice] == "Separator":