Add gui.py

This commit is contained in:
Mark 2024-07-16 23:33:22 +02:00
parent cb3f171b60
commit cf5adc149b

53
gui.py Normal file
View File

@ -0,0 +1,53 @@
from flask import Flask, render_template, request, jsonify, url_for
import subprocess
import json
import logging
app = Flask(__name__)
# Set up logging
logging.basicConfig(level=logging.INFO)
@app.route('/')
def index():
return render_template('index.html')
@app.route('/favion.ico')
def favicon():
return url_for('static', filename='favicon.ico')
@app.route('/run_script', methods=['POST'])
def run_script():
settings = request.json
logging.info(f"Received settings: {settings}")
# Ensure Count is an integer
settings['Count'] = int(settings['Count'])
with open('config.json', 'w') as json_file:
json.dump(settings, json_file)
logging.info("Settings written to config.json")
try:
# Add a timeout to the subprocess to prevent it from hanging indefinitely
result = subprocess.run(['python3', 'main.py', 'config.json'], capture_output=True, text=True, timeout=15)
output = result.stdout
error = result.stderr
logging.info(f"Script output: {output}")
logging.error(f"Script error: {error}")
except subprocess.TimeoutExpired as e:
error_message = "The script execution timed out."
logging.error(error_message)
output = e.stdout if e.stdout else ""
error = e.stderr if e.stderr else error_message
return jsonify({"output": output, "error": error})
except Exception as e:
logging.error(f"An error occurred: {str(e)}")
return jsonify({"error": str(e)})
return jsonify({"output": output, "error": error})
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000, debug=False)