No error 500 if kindlegen is not excecutable
This commit is contained in:
parent
0a08a07193
commit
e6c6c26fd1
2 changed files with 19 additions and 10 deletions
|
@ -86,8 +86,14 @@ def make_mobi(book_id, calibrepath):
|
||||||
|
|
||||||
file_path = os.path.join(calibrepath, book.path, data.name)
|
file_path = os.path.join(calibrepath, book.path, data.name)
|
||||||
if os.path.exists(file_path + u".epub"):
|
if os.path.exists(file_path + u".epub"):
|
||||||
p = subprocess.Popen((kindlegen + " \"" + file_path + u".epub\"").encode(sys.getfilesystemencoding()),
|
try:
|
||||||
stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
|
p = subprocess.Popen((kindlegen + " \"" + file_path + u".epub\"").encode(sys.getfilesystemencoding()),
|
||||||
|
stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
|
||||||
|
except:
|
||||||
|
error_message = _(u"kindlegen failed, no excecution permissions")
|
||||||
|
app.logger.error("make_mobi: "+error_message)
|
||||||
|
return error_message, RET_FAIL
|
||||||
|
|
||||||
# Poll process for new output until finished
|
# Poll process for new output until finished
|
||||||
while True:
|
while True:
|
||||||
nextline = p.stdout.readline()
|
nextline = p.stdout.readline()
|
||||||
|
@ -117,7 +123,7 @@ def make_mobi(book_id, calibrepath):
|
||||||
return file_path + ".mobi", RET_SUCCESS
|
return file_path + ".mobi", RET_SUCCESS
|
||||||
else:
|
else:
|
||||||
app.logger.error("make_mobi: kindlegen failed with error while converting book")
|
app.logger.error("make_mobi: kindlegen failed with error while converting book")
|
||||||
return error_message, RET_FAIL
|
return None, RET_FAIL
|
||||||
else:
|
else:
|
||||||
app.logger.error("make_mobi: epub not found: %s.epub" % file_path)
|
app.logger.error("make_mobi: epub not found: %s.epub" % file_path)
|
||||||
return None, RET_FAIL
|
return None, RET_FAIL
|
||||||
|
|
17
cps/web.py
17
cps/web.py
|
@ -1261,13 +1261,16 @@ def stats():
|
||||||
kindlegen = os.path.join(vendorpath, u"kindlegen")
|
kindlegen = os.path.join(vendorpath, u"kindlegen")
|
||||||
versions['KindlegenVersion'] = _('not installed')
|
versions['KindlegenVersion'] = _('not installed')
|
||||||
if os.path.exists(kindlegen):
|
if os.path.exists(kindlegen):
|
||||||
p = subprocess.Popen(kindlegen, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
try:
|
||||||
p.wait()
|
p = subprocess.Popen(kindlegen, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||||
for lines in p.stdout.readlines():
|
p.wait()
|
||||||
if isinstance(lines, bytes):
|
for lines in p.stdout.readlines():
|
||||||
lines = lines.decode('utf-8')
|
if isinstance(lines, bytes):
|
||||||
if re.search('Amazon kindlegen\(', lines):
|
lines = lines.decode('utf-8')
|
||||||
versions['KindlegenVersion'] = lines
|
if re.search('Amazon kindlegen\(', lines):
|
||||||
|
versions['KindlegenVersion'] = lines
|
||||||
|
except:
|
||||||
|
versions['KindlegenVersion'] = _('Excecution permissions missing')
|
||||||
versions['PythonVersion'] = sys.version
|
versions['PythonVersion'] = sys.version
|
||||||
versions['babel'] = babelVersion
|
versions['babel'] = babelVersion
|
||||||
versions['sqlalchemy'] = sqlalchemyVersion
|
versions['sqlalchemy'] = sqlalchemyVersion
|
||||||
|
|
Loading…
Reference in a new issue