0.8.0
Changelog
Nachfolgend eine Zusammenfassung der wichtigsten Änderungen an den Dateien. Die Auflistung bezieht sich jeweils auf den Vergleich zwischen der alten und der neuen Version der entsprechenden Datei.
main.py
-
Datenbank-Integration hinzugefügt
- Neu:
from utils.database import Databasewird importiert. - Im
on_ready-Event wird eineDatabase()-Instanz angelegt, um Einstellungen wie den Ticket-Button (Channel/Message-ID) zu laden und ggf. erneut herzustellen.
- Neu:
-
Ticket-Button-Wiederherstellung
- Es wird aus der Datenbank (
db.get_bot_setting(...)) die zuletzt gespeicherte Ticket-Button-Nachricht geholt (Channel-ID, Message-ID). - Falls vorhanden, wird die alte Nachricht im entsprechenden Channel gesucht und die
CreateTicketViewerneut an diese Nachricht geheftet.
- Es wird aus der Datenbank (
-
Vereinfachung und Aufräumarbeiten
- Die Permission-Einstellungen für die drei Ticket-Kategorien (
created_cat,claimed_cat,closed_cat) sind jetzt kompakt gehalten. - Die
fix_category_perms-Funktion ist nahezu unverändert, allerdings werden die Aufrufe bei fehlenden Kategorien nur ausgeführt, wenn die jeweilige Kategorie existiert.
- Die Permission-Einstellungen für die drei Ticket-Kategorien (
-
Slash-Command-Sync
- Die Registrierung der Slash-Befehle erfolgt weiterhin per
bot.sync_commands(). - Neue Log-Ausgaben informieren über die Anzahl der registrierten Slash-Befehle oder über potenzielle Fehler beim Sync.
- Die Registrierung der Slash-Befehle erfolgt weiterhin per
cogs/ticket_cog.py
-
Aufteilung der Views
- Neu: Zwei eigenständige Klassen,
CreateTicketViewundTicketAdminView, die jeweils Buttons beinhalten. CreateTicketViewenthält einen Button zum Erstellen eines Tickets.TicketAdminViewenthält Buttons zum Ticket-Beanspruchen, Schließen und Löschen.
- Neu: Zwei eigenständige Klassen,
-
Slash-Befehl
/setup_ticket_button- Der Befehl legt nun eine Nachricht mit einem
CreateTicketView-Button an und speichert die Channel- und Message-ID in der Datenbank (Tabellebot_settings). - Dadurch kann der Button nach Bot-Neustarts wiederhergestellt werden.
- Der Befehl legt nun eine Nachricht mit einem
-
Neue Callback-Methoden für Buttons
- Statt
on_interaction+custom_id-Checks gibt es jetzt strukturierte Methoden in den Views. create_ticket(...),claim_ticket(...),close_ticket(...)unddelete_ticket(...)sind jeweils als eigene Cog-Methoden vorhanden und werden direkt von den Button-Callbacks aufgerufen.
- Statt
-
Erweiterte KI-Logik bleibt erhalten
- Weiterhin sind Features wie kooperativ/unkooperativ-Klassifikation, ID-Erkennung und das Einfordern einer Stellungnahme vorhanden.
- Die KI-Kommunikation wird jetzt jedoch über neuere OpenAI-Methoden (
openai.chat_completions.create(...)) abgewickelt.
-
Kleine Anpassungen an der Ticket-Erstellung
- Beim Erstellen eines Tickets wird nun konsequent der Nickname des Nutzers (falls vorhanden) bevorzugt, um den Channelnamen zu setzen.
- Die KI wird direkt bei der Erstellung des Tickets aktiviert und sendet die erste Hinweismeldung („Bitte teile mir zuerst deine ID mit …“).
utils/database.py
-
Neue Tabelle
bot_settings- In der Datenbank wird mit
CREATE TABLE IF NOT EXISTS bot_settings ...eine Key/Value-Tabelle angelegt. - Methoden
save_bot_setting(key, value)undget_bot_setting(key)hinzugefügt, um z. B. die Ticket-Button-ID und -Channel zu speichern.
- In der Datenbank wird mit
-
Bereinigung des Codes
- Die alte Logik mit
ALTER TABLE ... ADD COLUMN user_nameist nun überflüssig, weil die Spalteuser_namedirekt in derCREATE TABLE-Definition integriert ist. - Die Funktionen für Ticket-Logs (
log_ticket_created,log_ticket_claimed,log_ticket_closedusw.) bleiben inhaltlich gleich, sind aber etwas übersichtlicher strukturiert.
- Die alte Logik mit
-
Unveränderte Kern-Funktionen
- Methoden zur Ticket-ID-Ermittlung (
get_next_ticket_id), zum Speichern von Transkripten und zum Abrufen von Tickets funktionieren weitgehend wie zuvor. - Nur minimale Anpassungen im Code-Stil (z. B. bessere Lesbarkeit, modernere String-Formatierung).
- Methoden zur Ticket-ID-Ermittlung (
Zusammenfassung der Hauptpunkte
- Ticket-Button-Wiederherstellung: Das neue System speichert die Ticket-Button-Nachricht in der Datenbank und stellt sie beim Bot-Start automatisch wieder her.
- Aufteilung in Views: Die Buttons zum Erstellen und Verwalten (Claim/Close/Delete) der Tickets sind jetzt in dedizierten UI-Klassen gekapselt.
- KI- und Datenbank-Integration: Die KI-Logik ist nahezu identisch geblieben, nutzt aber nun an einigen Stellen aktualisierte OpenAI-Methoden. Zusätzlich wird die Datenbank in
main.pyverwendet, um Einstellungen (z. B. Button-Nachricht) zu laden. - Allgemeine Code-Verbesserungen: Bessere Logs, klarere Struktur bei der Erstellung und Verwaltung von Tickets sowie eine neu strukturierte
database.pyfür mehr Übersichtlichkeit.