From e42f768909fc750498998f8c57ef8cac4479526c Mon Sep 17 00:00:00 2001 From: janeczku Date: Fri, 17 Jun 2016 20:59:44 +0200 Subject: [PATCH] Check if epub file exists before trying to extract --- cps/web.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/cps/web.py b/cps/web.py index c9b59200..c33591f7 100755 --- a/cps/web.py +++ b/cps/web.py @@ -500,7 +500,11 @@ def read_book(book_id): os.mkdir(book_dir) for data in book.data: if data.format.lower() == "epub": - zfile = zipfile.ZipFile(os.path.join(config.DB_ROOT, book.path, data.name) + ".epub") + epub_file = os.path.join(config.DB_ROOT, book.path, data.name) + ".epub" + if not os.path.isfile(epub_file): + flash("Error opening eBook. File does not exist: %s" % epub_file, category="error") + return redirect(request.environ["HTTP_REFERER"]) + zfile = zipfile.ZipFile(epub_file) for name in zfile.namelist(): (dirName, fileName) = os.path.split(name) newDir = os.path.join(book_dir, dirName) @@ -517,6 +521,7 @@ def read_book(book_id): fd.write(zfile.read(name)) fd.close() zfile.close() + break return render_template('read.html', bookid=book_id, title="Read a Book") @app.route("/download//")