mirror of
https://github.com/ciromattia/kcc
synced 2025-12-13 09:46:25 +00:00
Paths should support UTF-8 now
This commit is contained in:
@@ -159,7 +159,7 @@ class WorkerThread(QtCore.QThread):
|
||||
argv.append("--forcecolor")
|
||||
for i in range(GUI.JobList.count()):
|
||||
if GUI.JobList.item(i).icon().isNull():
|
||||
currentJobs.append(str(GUI.JobList.item(i).text()))
|
||||
currentJobs.append(unicode(GUI.JobList.item(i).text()))
|
||||
GUI.JobList.clear()
|
||||
for job in currentJobs:
|
||||
time.sleep(0.5)
|
||||
@@ -215,8 +215,8 @@ class WorkerThread(QtCore.QThread):
|
||||
try:
|
||||
self.kindlegenErrorCode = 0
|
||||
if os.path.getsize(item) < 367001600:
|
||||
output = Popen('kindlegen -locale en "' + item + '"', stdout=PIPE, stderr=STDOUT,
|
||||
shell=True)
|
||||
output = Popen('kindlegen -locale en "' + item.encode(sys.getfilesystemencoding()) +
|
||||
'"', stdout=PIPE, stderr=STDOUT, shell=True)
|
||||
for line in output.stdout:
|
||||
# ERROR: Generic error
|
||||
if "Error(" in line:
|
||||
@@ -312,18 +312,11 @@ class Ui_KCC(object):
|
||||
dnames = dirDialog.selectedFiles()
|
||||
else:
|
||||
dnames = ""
|
||||
# Lame UTF-8 security measure
|
||||
for dname in dnames:
|
||||
try:
|
||||
str(dname)
|
||||
except Exception:
|
||||
QtGui.QMessageBox.critical(MainWindow, 'KCC - Error', 'Path cannot contain non-ASCII characters.',
|
||||
QtGui.QMessageBox.Ok)
|
||||
return
|
||||
if str(dname) != "":
|
||||
if unicode(dname) != "":
|
||||
if sys.platform == 'win32':
|
||||
dname = dname.replace('/', '\\')
|
||||
self.lastPath = os.path.abspath(os.path.join(str(dname), os.pardir))
|
||||
self.lastPath = os.path.abspath(os.path.join(unicode(dname), os.pardir))
|
||||
GUI.JobList.addItem(dname)
|
||||
|
||||
def selectFile(self):
|
||||
@@ -344,16 +337,9 @@ class Ui_KCC(object):
|
||||
else:
|
||||
fnames = QtGui.QFileDialog.getOpenFileNames(MainWindow, 'Select file', self.lastPath,
|
||||
'*.cbz *.zip *.pdf')
|
||||
# Lame UTF-8 security measure
|
||||
for fname in fnames:
|
||||
try:
|
||||
str(fname)
|
||||
except Exception:
|
||||
QtGui.QMessageBox.critical(MainWindow, 'KCC - Error', 'Path cannot contain non-ASCII characters.',
|
||||
QtGui.QMessageBox.Ok)
|
||||
return
|
||||
if str(fname) != "":
|
||||
self.lastPath = os.path.abspath(os.path.join(str(fname), os.pardir))
|
||||
if unicode(fname) != "":
|
||||
self.lastPath = os.path.abspath(os.path.join(unicode(fname), os.pardir))
|
||||
GUI.JobList.addItem(fname)
|
||||
|
||||
def clearJobs(self):
|
||||
|
||||
@@ -184,7 +184,7 @@ def buildNCX(dstdir, title, chapters):
|
||||
"<meta name=\"dtb:maxPageNumber\" content=\"0\"/>\n",
|
||||
"<meta name=\"generated\" content=\"true\"/>\n",
|
||||
"</head>\n",
|
||||
"<docTitle><text>", title, "</text></docTitle>\n",
|
||||
"<docTitle><text>", title.encode('utf-8'), "</text></docTitle>\n",
|
||||
"<navMap>"
|
||||
])
|
||||
for chapter in chapters:
|
||||
@@ -192,8 +192,9 @@ def buildNCX(dstdir, title, chapters):
|
||||
if os.path.basename(folder) != "Text":
|
||||
title = os.path.basename(folder)
|
||||
filename = getImageFileName(os.path.join(folder, chapter[1]))
|
||||
f.write("<navPoint id=\"" + folder.replace('/', '_').replace('\\', '_') + "\"><navLabel><text>" + title
|
||||
+ "</text></navLabel><content src=\"" + filename[0].replace("\\", "/") + ".html\"/></navPoint>\n")
|
||||
f.write("<navPoint id=\"" + folder.replace('/', '_').replace('\\', '_') + "\"><navLabel><text>"
|
||||
+ title.encode('utf-8') + "</text></navLabel><content src=\"" + filename[0].replace("\\", "/")
|
||||
+ ".html\"/></navPoint>\n")
|
||||
f.write("</navMap>\n</ncx>")
|
||||
f.close()
|
||||
return
|
||||
@@ -213,7 +214,7 @@ def buildOPF(dstdir, title, filelist, cover=None):
|
||||
"xmlns=\"http://www.idpf.org/2007/opf\">\n",
|
||||
"<metadata xmlns:opf=\"http://www.idpf.org/2007/opf\" ",
|
||||
"xmlns:dc=\"http://purl.org/dc/elements/1.1/\">\n",
|
||||
"<dc:title>", title, "</dc:title>\n",
|
||||
"<dc:title>", title.encode('utf-8'), "</dc:title>\n",
|
||||
"<dc:language>en-US</dc:language>\n",
|
||||
"<dc:identifier id=\"BookID\" opf:scheme=\"UUID\">", options.uuid, "</dc:identifier>\n",
|
||||
"<dc:Creator>KCC</dc:Creator>\n",
|
||||
|
||||
Reference in New Issue
Block a user