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
|
Flask==2.2.2
|
||||||
rich==12.6.0
|
rich==12.6.0
|
||||||
ffmpeg-python
|
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:
|
class RenderJob:
|
||||||
|
|
||||||
def __init__(self, render, priority, owner=None, client=None, notify=None):
|
def __init__(self, render, priority=2, owner=None, client=None, notify=None, custom_id=None):
|
||||||
self.id = str(uuid.uuid4()).split('-')[0]
|
self.id = custom_id or self.generate_id()
|
||||||
self.owner = owner
|
self.owner = owner
|
||||||
self.render = render
|
self.render = render
|
||||||
self.priority = priority
|
self.priority = priority
|
||||||
@@ -81,6 +81,10 @@ class RenderJob:
|
|||||||
logger.error("Error converting to JSON: {}".format(e))
|
logger.error("Error converting to JSON: {}".format(e))
|
||||||
return json_string
|
return json_string
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def generate_id(cls):
|
||||||
|
return str(uuid.uuid4()).split('-')[0]
|
||||||
|
|
||||||
|
|
||||||
class RenderServer:
|
class RenderServer:
|
||||||
render_queue = []
|
render_queue = []
|
||||||
@@ -380,11 +384,20 @@ def default():
|
|||||||
return "Server running"
|
return "Server running"
|
||||||
|
|
||||||
|
|
||||||
def start_server(background_thread=False):
|
@app.route('/upload')
|
||||||
def eval_loop():
|
def upload_file_page():
|
||||||
while True:
|
return render_template('upload.html')
|
||||||
RenderServer.evaluate_queue()
|
|
||||||
time.sleep(1)
|
|
||||||
|
@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:
|
with open('config.yaml') as f:
|
||||||
config = yaml.load(f, Loader=yaml.FullLoader)
|
config = yaml.load(f, Loader=yaml.FullLoader)
|
||||||
|
|||||||
Reference in New Issue
Block a user