Add gui.py
This commit is contained in:
parent
cb3f171b60
commit
cf5adc149b
53
gui.py
Normal file
53
gui.py
Normal 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)
|
||||||
|
|
||||||
Loading…
Reference in New Issue
Block a user