# web_panel/app.py from flask import Flask, render_template, redirect, url_for, request, session import os import subprocess import psutil app = Flask(__name__) app.secret_key = os.getenv("FLASK_SECRET_KEY", "default_secret_key") def bot_status(): """Überprüft, ob der Bot läuft.""" for proc in psutil.process_iter(['pid', 'name', 'cmdline']): if 'python' in proc.info['name'] and 'bot.py' in proc.info['cmdline']: return True return False def start_bot(): """Startet den Bot.""" subprocess.Popen(["python", "bot.py"], cwd=os.path.dirname(os.path.abspath(__file__))) def stop_bot(): """Stoppt den Bot.""" for proc in psutil.process_iter(['pid', 'name', 'cmdline']): if 'python' in proc.info['name'] and 'bot.py' in proc.info['cmdline']: proc.terminate() break @app.route("/") def index(): if "username" in session: return render_template("index.html", bot_running=bot_status()) return redirect(url_for("login")) @app.route("/login", methods=["GET", "POST"]) def login(): if request.method == "POST": username = request.form["username"] password = request.form["password"] if username == os.getenv("ADMIN_USER") and password == os.getenv("ADMIN_PASS"): session["username"] = username return redirect(url_for("index")) else: return "Invalid credentials!" return render_template("login.html") @app.route("/logout") def logout(): session.pop("username", None) return redirect(url_for("login")) @app.route("/start_bot") def start(): if "username" in session: start_bot() return redirect(url_for("index")) return redirect(url_for("login")) @app.route("/stop_bot") def stop(): if "username" in session: stop_bot() return redirect(url_for("index")) return redirect(url_for("login")) @app.route("/settings", methods=["GET", "POST"]) def settings(): if "username" in session: if request.method == "POST": # Hier kannst du Formulareingaben für Bot-Einstellungen verarbeiten pass return render_template("settings.html") return redirect(url_for("login")) if __name__ == "__main__": app.run(host="0.0.0.0", port=5000, debug=True)