Rollbackpoint - Overlay kein Emoji

Dieser Commit ist enthalten in:
Claude Project Manager
2025-10-11 22:40:30 +02:00
Ursprung 93cecee315
Commit 877cfdaf8b
5 geänderte Dateien mit 97 neuen und 95 gelöschten Zeilen

Datei anzeigen

@ -17,6 +17,28 @@ from utils.text_similarity import TextSimilarity, fuzzy_find_element, click_fuzz
# Konfiguriere Logger
logger = logging.getLogger("base_automation")
def _clean_message(message: str) -> str:
"""
Entfernt Emojis und normalisiert Leerzeichen aus Log-Nachrichten.
Diese zentrale Funktion filtert alle Emojis und Sonderzeichen aus Display-Nachrichten,
um eine konsistente und saubere Anzeige im ForgeAnimationDialog zu gewährleisten.
Args:
message: Die zu bereinigende Nachricht
Returns:
str: Bereinigte Nachricht ohne Emojis und normalisierte Leerzeichen
"""
import re
# Entferne alle Zeichen außer: Buchstaben, Zahlen, Leerzeichen, Satzzeichen, Umlaute
clean = re.sub(r'[^\w\s\-.,!?äöüÄÖÜß():/@]', '', message)
# Normalisiere mehrfache Leerzeichen zu einem
clean = ' '.join(clean.split())
return clean
class BaseAutomation(ABC):
"""
Abstrakte Basisklasse für die Automatisierung von sozialen Netzwerken.
@ -108,11 +130,15 @@ class BaseAutomation(ABC):
def set_customer_log_callback(self, callback):
"""Setzt den Callback für kundenfreundliche Log-Nachrichten."""
self.customer_log_callback = callback
def _emit_customer_log(self, message: str):
"""Sendet eine kundenfreundliche Log-Nachricht."""
"""
Sendet eine kundenfreundliche Log-Nachricht.
Filtert automatisch Emojis für saubere Anzeige.
"""
clean_message = _clean_message(message)
if self.customer_log_callback:
self.customer_log_callback(message)
self.customer_log_callback(clean_message)
def _initialize_browser(self) -> bool:
"""
@ -240,33 +266,37 @@ class BaseAutomation(ABC):
def _send_status_update(self, status: str) -> None:
"""
Sendet ein Status-Update über den Callback.
Filtert automatisch Emojis für saubere Anzeige.
Args:
status: Status-Nachricht
"""
clean_status = _clean_message(status)
if self.status_update_callback:
try:
self.status_update_callback(status)
self.status_update_callback(clean_status)
except Exception as e:
logger.error(f"Fehler beim Senden des Status-Updates: {e}")
def _send_log_update(self, message: str) -> None:
"""
Sendet ein Log-Update über den Callback.
Filtert automatisch Emojis für saubere Anzeige.
Args:
message: Log-Nachricht
"""
clean_message = _clean_message(message)
if self.log_update_callback:
try:
self.log_update_callback(message)
self.log_update_callback(clean_message)
except Exception as e:
logger.error(f"Fehler beim Senden des Log-Updates: {e}")
# Auch über customer_log_callback senden für Kompatibilität
if self.customer_log_callback:
elif self.customer_log_callback:
# Fallback für Plattformen, die nur customer_log_callback setzen
try:
self.customer_log_callback(message)
self.customer_log_callback(clean_message)
except Exception as e:
logger.error(f"Fehler beim Senden des Customer-Log-Updates: {e}")