diff --git a/AstraOS/.env b/AstraOS/.env index 3ff1a5f..f1b1f85 100644 --- a/AstraOS/.env +++ b/AstraOS/.env @@ -1,4 +1,4 @@ -SECRET_KEY='super-secret-key-that-you-should-change' +SECRET_KEY='GYUZ!EPtMkVMD!xUL6*2sPMVeeqoGXxWYhZs3MQJDDoJb8kHfEDbgJVwEsbTJBtXduBm9ujtncL@puXPM4TMFQ2qemJrYHPT93R_RYiZXCK4mrUuzGidCiUXqx9EZP6*ZGD6vAdog.n8CcqtMrtsdbvA_NP4r@33dNPZQjmP93!mNahzjFi3JzfkN.nd3KvLrMDfVs7t' MONGO_URI='mongodb+srv://MrSniff:5169Galaxy@chainsaw.d0shx.mongodb.net/' SSH_HOST='89.144.42.175' SSH_USER='root' diff --git a/AstraOS/astra_os.py b/AstraOS/astra_os.py index b3d97b7..1d242f4 100644 --- a/AstraOS/astra_os.py +++ b/AstraOS/astra_os.py @@ -24,17 +24,14 @@ app = Flask(__name__, template_folder='Frontend/HTML', static_folder='Frontend') socketio = SocketIO(app, async_mode=async_mode) -# Speichere Discord-Bots standardmäßig in /opt/astraos/Discord_Bots -BOT_UPLOAD_FOLDER = '/opt/astraos/Discord_Bots' +BOT_UPLOAD_FOLDER = '/root/chainsaw' try: os.makedirs(BOT_UPLOAD_FOLDER, exist_ok=True) try: os.chmod(BOT_UPLOAD_FOLDER, 0o755) except Exception: - # Wenn chmod fehlschlägt (z.B. Windows), ignoriere pass except Exception as e: - # Falls kein Zugriff auf /opt/... möglich (z. B. lokale Entwicklung), Fallback auf lokalen Ordner BOT_UPLOAD_FOLDER = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'Bots') os.makedirs(BOT_UPLOAD_FOLDER, exist_ok=True) print(f"WARNUNG: Konnte '/opt/astraos/Discord_Bots' nicht erstellen ({e}), benutze lokalen Ordner: {BOT_UPLOAD_FOLDER}") @@ -206,7 +203,6 @@ def stream_bot_output(bot_id, process): socketio.emit('status_update', {'bot_id': bot_id, 'status': 'stopped'}, room=bot_id) socketio.emit('console_output', {'bot_id': bot_id, 'type': 'system', 'data': '--- Bot-Prozess beendet ---'}, room=bot_id) -# Nach Definition von stream_bot_output: Autostart aufrufen (nur einmal; verhindert Doppelexekution beim Werkzeug-Reloader) if os.environ.get('WERKZEUG_RUN_MAIN') != 'true': with app.app_context(): start_bots_on_startup() @@ -250,7 +246,6 @@ def login_required(f): flash("Benutzer nicht gefunden.", "danger") return redirect(url_for('login')) - # Discord-Verknüpfung prüfen if not user.get('discord_id') and request.endpoint not in ['link_discord', 'login_discord', 'callback_discord', 'logout', 'static']: return redirect(url_for('link_discord')) @@ -303,7 +298,6 @@ def login(): session['permissions'] = get_user_permissions(str(user['_id'])) add_log("Benutzer-Login") - # Prüfen, ob Discord verknüpft ist if not user.get('discord_id'): flash("Bitte verknüpfe deinen Discord-Account, um fortzufahren.", "info") return redirect(url_for('link_discord')) @@ -661,10 +655,8 @@ def callback_discord(): discord_username = f"{discord_user['username']}" discord_avatar = discord_user.get('avatar') - # Fall 1: Benutzer ist bereits eingeloggt und möchte verknüpfen if 'user_id' in session: user_id = session['user_id'] - # Prüfen, ob dieser Discord-Account bereits von einem anderen Benutzer verwendet wird existing_link = accounts_collection.find_one({'discord_id': discord_id}) if existing_link and str(existing_link['_id']) != user_id: flash("Dieser Discord-Account ist bereits mit einem anderen Benutzer verknüpft.", "danger") @@ -682,7 +674,6 @@ def callback_discord(): flash("Discord-Account erfolgreich verknüpft!", "success") return redirect(url_for('dashboard')) - # Fall 2: Benutzer meldet sich direkt über Discord an else: user = accounts_collection.find_one({'discord_id': discord_id}) if user: @@ -759,10 +750,8 @@ def delete_role(role_id): def calculate_current_age(birthdate_str): try: - # Versuche zuerst das DD.MM.YYYY Format birthdate_dt = datetime.strptime(birthdate_str, '%d.%m.%Y') except ValueError: - # Wenn das fehlschlägt, versuche das YYYY-MM-DD Format (für alte Einträge) birthdate_dt = datetime.strptime(birthdate_str, '%Y-%m-%d') today = datetime.today() return today.year - birthdate_dt.year - ((today.month, today.day) < (birthdate_dt.month, birthdate_dt.day)) @@ -865,10 +854,8 @@ def delete_age_verification(user_id): return redirect(url_for('age_verification')) can_delete = False - # Benutzer mit 'manage_age_verification' können immer löschen if 'manage_age_verification' in session.get('permissions', []): can_delete = True - # Benutzer können ihre eigenen Einträge immer löschen elif entry.get('checked_by') == session.get('username'): can_delete = True