50 lines
1.9 KiB
Python
50 lines
1.9 KiB
Python
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.") |