diff --git a/config.yaml b/config.yaml index e69de29..691a2bf 100644 --- a/config.yaml +++ b/config.yaml @@ -0,0 +1,4 @@ +upload_folder: "/Users/brett/Desktop/zordon-uploads/" +max_content_path: 100000000 +flask_log_level: error +queue_eval_seconds: 1 \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index f19acb4..92cd820 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,3 +5,4 @@ PyYAML~=6.0 Flask==2.2.2 rich==12.6.0 ffmpeg-python +Werkzeug~=2.2.2 \ No newline at end of file diff --git a/templates/upload.html b/templates/upload.html new file mode 100644 index 0000000..89a56d0 --- /dev/null +++ b/templates/upload.html @@ -0,0 +1,32 @@ + + + +

Upload a file

+ +
+
+
+
+
+ + +
+
+
+ Blender Engine: + + + + +
+
+ + +
+ + \ No newline at end of file diff --git a/zordon_server.py b/zordon_server.py index 5388fd8..1094cef 100755 --- a/zordon_server.py +++ b/zordon_server.py @@ -27,8 +27,8 @@ JSON_FILE = 'job_history.json' class RenderJob: - def __init__(self, render, priority, owner=None, client=None, notify=None): - self.id = str(uuid.uuid4()).split('-')[0] + def __init__(self, render, priority=2, owner=None, client=None, notify=None, custom_id=None): + self.id = custom_id or self.generate_id() self.owner = owner self.render = render self.priority = priority @@ -81,6 +81,10 @@ class RenderJob: logger.error("Error converting to JSON: {}".format(e)) return json_string + @classmethod + def generate_id(cls): + return str(uuid.uuid4()).split('-')[0] + class RenderServer: render_queue = [] @@ -380,11 +384,20 @@ def default(): return "Server running" -def start_server(background_thread=False): - def eval_loop(): - while True: - RenderServer.evaluate_queue() - time.sleep(1) +@app.route('/upload') +def upload_file_page(): + return render_template('upload.html') + + +@app.route('/uploader', methods=['GET', 'POST']) +def upload_file(): + + if request.method == 'POST': + try: + + uploaded_file = request.files['file'] + if not uploaded_file.filename: + return {'error': 'no file uploaded'} with open('config.yaml') as f: config = yaml.load(f, Loader=yaml.FullLoader)