Files
Discord-ai-chatbot/app.py
SimolZimol 78f144535c modified: app.py
modified:   requirements.txt
2024-09-02 17:36:03 +02:00

76 lines
2.3 KiB
Python

# 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)