mirror of
https://github.com/blw1138/Zordon.git
synced 2025-12-17 08:48:13 +00:00
Add proof-of-concept file uploading for job creation
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
upload_folder: "/Users/brett/Desktop/zordon-uploads/"
|
||||
max_content_path: 100000000
|
||||
flask_log_level: error
|
||||
queue_eval_seconds: 1
|
||||
@@ -5,3 +5,4 @@ PyYAML~=6.0
|
||||
Flask==2.2.2
|
||||
rich==12.6.0
|
||||
ffmpeg-python
|
||||
Werkzeug~=2.2.2
|
||||
32
templates/upload.html
Normal file
32
templates/upload.html
Normal file
@@ -0,0 +1,32 @@
|
||||
<html>
|
||||
|
||||
<body>
|
||||
<h1>Upload a file</h1>
|
||||
|
||||
<form action="http://localhost:8080/uploader" method="POST"
|
||||
enctype="multipart/form-data">
|
||||
<div>
|
||||
<input type="file" name="file"/><br>
|
||||
</div>
|
||||
<div>
|
||||
<label for="renderer">Renderer:</label>
|
||||
<select id="renderer" name="renderer" onchange="javascript:rendererCheck();">
|
||||
<option value="aerender">After Effects</option>
|
||||
<option value="blender">Blender</option>
|
||||
<option value="ffmpeg">FFMPEG</option>
|
||||
</select>
|
||||
</div>
|
||||
<br>
|
||||
<div id="show_blender">
|
||||
Blender Engine:
|
||||
<input type="radio" id="cycles" name="blender_engine" value="CYCLES" checked>
|
||||
<label for="cycles">Cycles</label>
|
||||
<input type="radio" id="eevee" name="blender_engine" value="BLENDER_EEVEE">
|
||||
<label for="eevee">Eevee</label>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<input type="submit"/>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user