AstraOS Ver. 1.15:

- Bot Path geändert
This commit is contained in:
MrWhiff 2025-12-21 18:13:22 +01:00
parent 7f487e6bf7
commit 9e82d74452
2 changed files with 2 additions and 15 deletions

View file

@ -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/' MONGO_URI='mongodb+srv://MrSniff:5169Galaxy@chainsaw.d0shx.mongodb.net/'
SSH_HOST='89.144.42.175' SSH_HOST='89.144.42.175'
SSH_USER='root' SSH_USER='root'

View file

@ -24,17 +24,14 @@ app = Flask(__name__,
template_folder='Frontend/HTML', template_folder='Frontend/HTML',
static_folder='Frontend') static_folder='Frontend')
socketio = SocketIO(app, async_mode=async_mode) socketio = SocketIO(app, async_mode=async_mode)
# Speichere Discord-Bots standardmäßig in /opt/astraos/Discord_Bots BOT_UPLOAD_FOLDER = '/root/chainsaw'
BOT_UPLOAD_FOLDER = '/opt/astraos/Discord_Bots'
try: try:
os.makedirs(BOT_UPLOAD_FOLDER, exist_ok=True) os.makedirs(BOT_UPLOAD_FOLDER, exist_ok=True)
try: try:
os.chmod(BOT_UPLOAD_FOLDER, 0o755) os.chmod(BOT_UPLOAD_FOLDER, 0o755)
except Exception: except Exception:
# Wenn chmod fehlschlägt (z.B. Windows), ignoriere
pass pass
except Exception as e: 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') BOT_UPLOAD_FOLDER = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'Bots')
os.makedirs(BOT_UPLOAD_FOLDER, exist_ok=True) 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}") 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('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) 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': if os.environ.get('WERKZEUG_RUN_MAIN') != 'true':
with app.app_context(): with app.app_context():
start_bots_on_startup() start_bots_on_startup()
@ -250,7 +246,6 @@ def login_required(f):
flash("Benutzer nicht gefunden.", "danger") flash("Benutzer nicht gefunden.", "danger")
return redirect(url_for('login')) 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']: 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')) return redirect(url_for('link_discord'))
@ -303,7 +298,6 @@ def login():
session['permissions'] = get_user_permissions(str(user['_id'])) session['permissions'] = get_user_permissions(str(user['_id']))
add_log("Benutzer-Login") add_log("Benutzer-Login")
# Prüfen, ob Discord verknüpft ist
if not user.get('discord_id'): if not user.get('discord_id'):
flash("Bitte verknüpfe deinen Discord-Account, um fortzufahren.", "info") flash("Bitte verknüpfe deinen Discord-Account, um fortzufahren.", "info")
return redirect(url_for('link_discord')) return redirect(url_for('link_discord'))
@ -661,10 +655,8 @@ def callback_discord():
discord_username = f"{discord_user['username']}" discord_username = f"{discord_user['username']}"
discord_avatar = discord_user.get('avatar') discord_avatar = discord_user.get('avatar')
# Fall 1: Benutzer ist bereits eingeloggt und möchte verknüpfen
if 'user_id' in session: if 'user_id' in session:
user_id = session['user_id'] 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}) existing_link = accounts_collection.find_one({'discord_id': discord_id})
if existing_link and str(existing_link['_id']) != user_id: if existing_link and str(existing_link['_id']) != user_id:
flash("Dieser Discord-Account ist bereits mit einem anderen Benutzer verknüpft.", "danger") 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") flash("Discord-Account erfolgreich verknüpft!", "success")
return redirect(url_for('dashboard')) return redirect(url_for('dashboard'))
# Fall 2: Benutzer meldet sich direkt über Discord an
else: else:
user = accounts_collection.find_one({'discord_id': discord_id}) user = accounts_collection.find_one({'discord_id': discord_id})
if user: if user:
@ -759,10 +750,8 @@ def delete_role(role_id):
def calculate_current_age(birthdate_str): def calculate_current_age(birthdate_str):
try: try:
# Versuche zuerst das DD.MM.YYYY Format
birthdate_dt = datetime.strptime(birthdate_str, '%d.%m.%Y') birthdate_dt = datetime.strptime(birthdate_str, '%d.%m.%Y')
except ValueError: 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') birthdate_dt = datetime.strptime(birthdate_str, '%Y-%m-%d')
today = datetime.today() today = datetime.today()
return today.year - birthdate_dt.year - ((today.month, today.day) < (birthdate_dt.month, birthdate_dt.day)) 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')) return redirect(url_for('age_verification'))
can_delete = False can_delete = False
# Benutzer mit 'manage_age_verification' können immer löschen
if 'manage_age_verification' in session.get('permissions', []): if 'manage_age_verification' in session.get('permissions', []):
can_delete = True can_delete = True
# Benutzer können ihre eigenen Einträge immer löschen
elif entry.get('checked_by') == session.get('username'): elif entry.get('checked_by') == session.get('username'):
can_delete = True can_delete = True