Tool
Control AI
Control AI Discord Bot
Erstellt für Control AI
Ein Discord-Bot zur Verfolgung von Serverstatistiken und Mitgliederaktivität für den Control-AI-Discord-Server. Er sammelt tägliche Metriken, pflegt eine persistente Nutzerdatenbank und exportiert Daten automatisch nach Google Sheets.
Features
- Tägliche Statistikverfolgung – zählt Nachrichten, einzigartige Schreiber, beitretende/austretende Mitglieder und den höchsten gleichzeitigen Online-Count pro Tag
- Einladungslink-Tracking – erkennt, welcher Einladungslink von jedem neuen Mitglied verwendet wurde
- Nutzerdatenbank – speichert Nutzerdaten dauerhaft, inkl. Beitritts-/Austrittsdatum, Nachrichten-Timestamps und verwendetem Einladungslink
- Inaktivitätserkennung – Mitglieder identifizieren, die innerhalb einer konfigurierbaren Anzahl von Tagen keine Nachricht gesendet haben
- Google-Sheets-Export – schreibt täglich Statistiken und Einladungslink-Statistiken um Mitternacht in ein Google-Spreadsheet
- Automatische tägliche Backups – speichert die Nutzerdatenbank am Ende jedes Tages in db_backups/
- Fehler-Benachrichtigungen – informiert den Bot-Entwickler per Discord, wenn eine geplante Aufgabe eine Ausnahme wirft
Geplante Aufgaben
- Mitternachtsaufgabe – Statistiken nach Google Sheets schreiben, Zusammenfassung im Stat-Log-Kanal posten, Nutzerdatenbank speichern und sichern, dann alle täglichen Zähler zurücksetzen
- Online-Mitglieder-Check (alle 10 Minuten) – aktualisiert den höchsten gleichzeitigen Online-Count für den Tag
Admin-Befehle
Alle Befehle beginnen mit ! und sind auf Nutzer mit Moderationsrolle beschränkt.
| Befehl | Beschreibung |
|---|---|
| !stats | Heutige Statistiken bis jetzt im aktuellen Kanal ausgeben |
| !inactive <days> | Mitglieder auflisten, die in den letzten <Tage> Tagen keine Nachricht gesendet haben |
| !getuniquechatters <YYYY-MM-DD> <YYYY-MM-DD> | Einzigartige Schreiber zwischen zwei Daten zählen |
| !invite | Neuen permanenten Einladungslink im aktuellen Kanal generieren |
| !setinvite <user_id> <invite_code> | Einladungscode für einen Nutzer manuell setzen |
| !filldb | Fehlende Servermitglieder in die Nutzerdatenbank aufnehmen (Einladungslink wird unknown sein) |
| !writeuserdb | Nutzerdatenbank manuell auf Disk speichern |
| !loaduserdb | Nutzerdatenbank vom Disk neu laden |
| !backup | Sofortiges Datenbank-Backup ausführen |
| !debugwrite | Heutige (unvollständige) Statistiken erzwungen in das Google-Spreadsheet schreiben |
| !help | Befehlsliste anzeigen |
Tech Stack
Python
discord.py
Discord API
Google Sheets API
gspread
JSON