You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

31 lines
1.2 KiB
Python

from flask import Flask, request, jsonify
import subprocess
from win10toast import ToastNotifier
app = Flask(__name__)
toaster = ToastNotifier()
@app.route('/osiris_execute', methods=['POST'])
def execute_script():
data = request.get_json()
command = data.get('command')
if command:
# Hier neue Commands zur Prüfung einpflegen
if command.strip() == 'testcommand':
try:
toaster.show_toast("TestCommand", "Verbindung wurde getestet", duration=10)
return jsonify({'message': 'Test Command abgesetzt und Notification auf bei Host erstellt.'})
except Exception as exc:
return jsonify({'error': str(exc)}), 500
else:
try:
result = subprocess.run(['python','-c', command], capture_output=True, text=True, shell=True)
return jsonify({'output': result.stdout, 'error': result.stderr, 'returncode': result.returncode})
except Exception as exc:
return jsonify({'error': str(exc)}), 500
return jsonify({'error': 'Keinen gültigen Befehl gesendet.'}), 400
if __name__ == '__main__':
app.run(host='0.0.0.0', port=9713)