BarbaricDev
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
!statsHeutige 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
!inviteNeuen permanenten Einladungslink im aktuellen Kanal generieren
!setinvite <user_id> <invite_code>Einladungscode für einen Nutzer manuell setzen
!filldbFehlende Servermitglieder in die Nutzerdatenbank aufnehmen (Einladungslink wird unknown sein)
!writeuserdbNutzerdatenbank manuell auf Disk speichern
!loaduserdbNutzerdatenbank vom Disk neu laden
!backupSofortiges Datenbank-Backup ausführen
!debugwriteHeutige (unvollständige) Statistiken erzwungen in das Google-Spreadsheet schreiben
!helpBefehlsliste anzeigen

Tech Stack

Python discord.py Discord API Google Sheets API gspread JSON