aboutsummaryrefslogtreecommitdiff
path: root/app/views/utils.py
diff options
context:
space:
mode:
authorrubenwardy <rw@rubenwardy.com>2018-03-26 10:52:25 +0100
committerrubenwardy <rw@rubenwardy.com>2018-03-26 10:52:25 +0100
commitc19f93e36db24303b77757d5cfe6c9ec2aaee30e (patch)
treedb2a03c7a985ff6d8ed9db2147a48aabf03f36b5 /app/views/utils.py
parent4b7bf9d778046c96a0d699700a208cdc0ab6076a (diff)
downloadcheatdb-c19f93e36db24303b77757d5cfe6c9ec2aaee30e.tar.xz
Add screenshot support
Fixes #21
Diffstat (limited to 'app/views/utils.py')
-rw-r--r--app/views/utils.py28
1 files changed, 25 insertions, 3 deletions
diff --git a/app/views/utils.py b/app/views/utils.py
index 7a5303e..488e32e 100644
--- a/app/views/utils.py
+++ b/app/views/utils.py
@@ -1,9 +1,31 @@
-from flask import request
+from flask import request, flash
+from app import app
+import random, string, os
+
+def getExtension(filename):
+ return filename.rsplit(".", 1)[1].lower() if "." in filename else None
def isFilenameAllowed(filename, exts):
- return "." in filename and \
- filename.rsplit(".", 1)[1].lower() in exts
+ return getExtension(filename) in exts
def shouldReturnJson():
return "application/json" in request.accept_mimetypes and \
not "text/html" in request.accept_mimetypes
+
+def randomString(n):
+ return ''.join(random.choice(string.ascii_lowercase + \
+ string.ascii_uppercase + string.digits) for _ in range(n))
+
+def doFileUpload(file, allowedExtensions, fileTypeName):
+ if not file or file is None or file.filename == "":
+ flash("No selected file", "error")
+ return None
+
+ ext = getExtension(file.filename)
+ if ext is None or not ext in allowedExtensions:
+ flash("Please upload load " + fileTypeName, "error")
+ return None
+
+ filename = randomString(10) + "." + ext
+ file.save(os.path.join(app.config["UPLOAD_FOLDER"], filename))
+ return "/uploads/" + filename