summaryrefslogtreecommitdiff
path: root/fbin/monkey.py
diff options
context:
space:
mode:
authorJon Bergli Heier <snakebite@jvnv.net>2017-04-09 09:02:09 +0200
committerJon Bergli Heier <snakebite@jvnv.net>2017-04-09 09:02:09 +0200
commitb36f9c05071ea549ed59e703270fcf223b60df03 (patch)
tree8992c6bcaa5b0d64cbd589588b2539523125548c /fbin/monkey.py
parentaf750a6598d53b8a5cb58092dd5b523ea7e967ca (diff)
Major rewrite to use jab/oauth.
Highlights: - Uses the oauth branch of jab. - Changed design to use bootstrap. - Some minor changes to functionality in file uploading and listing. - API is currently disabled and incomplete.
Diffstat (limited to 'fbin/monkey.py')
-rw-r--r--fbin/monkey.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/fbin/monkey.py b/fbin/monkey.py
new file mode 100644
index 0000000..c6458ad
--- /dev/null
+++ b/fbin/monkey.py
@@ -0,0 +1,25 @@
+import tempfile
+
+from flask import current_app
+import werkzeug.formparser
+import werkzeug.wrappers
+
+def werkzeug_patch():
+ global werkzeug_orig_stream_factory
+
+ werkzeug_orig_stream_factory = werkzeug.formparser.default_stream_factory
+
+ def custom_stream_factory(total_content_length, filename, content_type, content_length=None):
+ if total_content_length > 1024 * 500:
+ return tempfile.NamedTemporaryFile('wb+', prefix = 'upload_', dir = current_app.config['FILE_DIRECTORY'], delete = True)
+ return werkzeug_orig_stream_factory(total_content_length, filename, content_type, content_length)
+
+ werkzeug.formparser.default_stream_factory = custom_stream_factory
+ werkzeug.wrappers.default_stream_factory = custom_stream_factory
+
+def werkzeug_reset():
+ werkzeug.formparser.default_stream_factory = werkzeug_orig_stream_factory
+ werkzeug.wrappers.default_stream_factory = werkzeug_orig_stream_factory
+
+def patch():
+ werkzeug_patch()