Skip to content

0.8.0

Choose a tag to compare

@bumseb1ene bumseb1ene released this 28 Mar 16:13
· 8 commits to main since this release

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

  1. Datenbank-Integration hinzugefügt

    • Neu: from utils.database import Database wird importiert.
    • Im on_ready-Event wird eine Database()-Instanz angelegt, um Einstellungen wie den Ticket-Button (Channel/Message-ID) zu laden und ggf. erneut herzustellen.
  2. 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 CreateTicketView erneut an diese Nachricht geheftet.
  3. 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.
  4. 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.

cogs/ticket_cog.py

  1. Aufteilung der Views

    • Neu: Zwei eigenständige Klassen, CreateTicketView und TicketAdminView, die jeweils Buttons beinhalten.
    • CreateTicketView enthält einen Button zum Erstellen eines Tickets.
    • TicketAdminView enthält Buttons zum Ticket-Beanspruchen, Schließen und Löschen.
  2. 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 (Tabelle bot_settings).
    • Dadurch kann der Button nach Bot-Neustarts wiederhergestellt werden.
  3. 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(...) und delete_ticket(...) sind jeweils als eigene Cog-Methoden vorhanden und werden direkt von den Button-Callbacks aufgerufen.
  4. 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.
  5. 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

  1. 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) und get_bot_setting(key) hinzugefügt, um z. B. die Ticket-Button-ID und -Channel zu speichern.
  2. Bereinigung des Codes

    • Die alte Logik mit ALTER TABLE ... ADD COLUMN user_name ist nun überflüssig, weil die Spalte user_name direkt in der CREATE TABLE-Definition integriert ist.
    • Die Funktionen für Ticket-Logs (log_ticket_created, log_ticket_claimed, log_ticket_closed usw.) bleiben inhaltlich gleich, sind aber etwas übersichtlicher strukturiert.
  3. 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).

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.py verwendet, 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.py für mehr Übersichtlichkeit.