from telegram import Update from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes import configparser import json import os import datetime import shutil # /liste Handler (nur privat für Admins) async def liste(update: Update, context: ContextTypes.DEFAULT_TYPE): if update.effective_user.id not in config['admin']['ids']: await update.message.reply_text("Epic fail, kein Zugriff für dich") return if event_list: antwort = "*Aktuelle Anmeldungen:*\n\n" for i, name in enumerate(event_list, start=1): antwort += f"{i}. {name}\n" antwort += f"\n Insgesamt angemeldet: *{len(event_list)}*" await update.message.reply_text( antwort, parse_mode="Markdown" ) else: await update.message.reply_text("Chill, es is noch gar keiner angemeldet.") # /reset Handler (nur privat für Admins, mit Archivierung) async def reset(update: Update, context: ContextTypes.DEFAULT_TYPE): if update.effective_user.id not in config['admin']['ids']: await update.message.reply_text("Epic fail, Zugriff verweigert") return # Nur archivieren, wenn es überhaupt etwas gibt if event_list: timestamp = datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S") backup_file = f"event_list_{timestamp}.json" try: shutil.copy(list_file, backup_file) await update.message.reply_text( f"Ich hab die Liste mal gespeichert, falls du sie aus Versehen resettet hast, liegt jetz unter:\n`{backup_file}`", parse_mode="Markdown" ) except Exception as e: await update.message.reply_text(f"Fehler beim Sichern: {e}") else: await update.message.reply_text("Liste ist leer, nichts zu sichern") # Liste zurücksetzen (neue, leere Liste) event_list.clear() save_list() await update.message.reply_text("WOOOSH! Und die Liste is wieder leer.")