Releases: hackletloose/hall-mic-master
Releases · hackletloose/hall-mic-master
1.1.0
Changelog
-
Einführung einer
Config-Klasse- Anstelle der vielen globalen Variablen (
API_TOKEN,API_BASE_URL,MESSAGE_CONTENT, etc.) gibt es jetzt eine zentrale Klasse, die die Werte lädt. - Das vereinfacht Wartung und Konfiguration, weil Konfigurationslogik (z. B. Laden von
.env, Fallback-Werte) gekapselt ist.
- Anstelle der vielen globalen Variablen (
-
Sprachdateien hinzugefügt
- Unterstützung für Englisch und Deutsch hinzugefügt.
-
Sprach-Strings aus
language.jsonausgelagert- Alle Texte (Logmeldungen, Fehlernachrichten, Hinweistexte an die Spieler) werden nun aus einer externen JSON-Datei gelesen.
- Dies erlaubt ein einfaches Umschalten zwischen Deutsch und Englisch (oder weiteren Sprachen), ohne den Code anpassen zu müssen.
-
Kein Gebrauch globaler Variablen mehr
- Die Funktionen, die vorher globale Variablen nutzten (
hours,minutes,secondsodermessages_sent), wurden umstrukturiert. - Stattdessen wird der Rückgabewert direkt verwendet oder über Objektattribute (bzw. lokale Variablen) gesteuert.
- Die Funktionen, die vorher globale Variablen nutzten (
-
Einheitliche Nutzung einer asynchronen
ClientSession- Im neuen Code wird konsequent im Konstruktor von
APIClienteine einzelne aiohttp-Session genutzt, die nur einmal erstellt und am Ende geschlossen wird (statt wiederholt neue Sessions pro Request zu eröffnen).
- Im neuen Code wird konsequent im Konstruktor von
-
Struktur für bessere Wartung und Testbarkeit
- Durch die Auftrennung in Hauptskript (z. B.
mic-master.pyoderbot.py),api_client.pyundlanguage.jsonsind die Verantwortlichkeiten klar getrennt. - Die Hauptlogik (z. B. Schleife zum Prüfen der Spielzeit, Versenden von Nachrichten) ist stärker modularisiert und damit auch leichter testbar.
- Durch die Auftrennung in Hauptskript (z. B.
-
Verbessertes Exception-Handling und Logging
- Statt einfachen
print()-Ausgaben wird nunloggingverwendet (bzw. umfassender genutzt), inkl. Warn- oder Error-Meldungen. KeyboardInterrupt(Ctrl + C) wird durch einentry/exceptabgefangen, um das Skript sauber zu schließen, die Session aufzuräumen und über das Ereignis zu informieren.
- Statt einfachen
-
Internationalisierung (i18n)
- Neben der ausgelagerten Sprachdatei wird nun über eine Umgebungsvariable gesteuert, ob Deutsch oder Englisch verwendet wird.
- Die Log- und Konsolenmeldungen werden in der jeweils gewählten Sprache ausgegeben, ebenso wie der Nachrichtentext an die Spieler.
Insgesamt ergeben sich dadurch:
- bessere Wartbarkeit (durch eine klarere Struktur und Kapselung),
- leichteres Hinzufügen weiterer Sprachen (via
language.json), - robusteres Fehlerhandling (kein globaler Zustand, ordentliche Exception-Behandlung),
- stärkere Konfigurierbarkeit (alles an zentralen Stellen statt global verteilt).