Abuse-Schutz fertig
Dieser Commit ist enthalten in:
@ -112,6 +112,20 @@ class BasePlatformController(QObject):
|
||||
Args:
|
||||
params: Parameter für die Account-Erstellung
|
||||
"""
|
||||
# Feature 5: Process Guard - Prüfe ob Prozess starten darf
|
||||
from utils.process_guard import get_guard
|
||||
guard = get_guard()
|
||||
|
||||
can_start, error_msg = guard.can_start("Account-Erstellung", self.platform_name)
|
||||
if not can_start:
|
||||
# Zeige Fehlermeldung
|
||||
generator_tab = self.get_generator_tab()
|
||||
generator_tab.show_error(error_msg)
|
||||
return
|
||||
|
||||
# Guard Lock setzen
|
||||
guard.start("Account-Erstellung", self.platform_name)
|
||||
|
||||
self.logger.info(f"Account-Erstellung für {self.platform_name} gestartet")
|
||||
# In Unterklassen implementieren
|
||||
|
||||
|
||||
@ -48,6 +48,9 @@ class BaseAccountCreationWorkerThread(QThread):
|
||||
|
||||
def run(self):
|
||||
"""Gemeinsame Logik für Account-Erstellung - IDENTISCH zum Original"""
|
||||
# Feature 5: Tracke Erfolg für Process Guard
|
||||
success = False
|
||||
|
||||
try:
|
||||
self.update_signal.emit("Status: Initialisierung...")
|
||||
self.log_signal.emit(f"{self.platform_name}-Account-Erstellung gestartet...")
|
||||
@ -185,6 +188,9 @@ class BaseAccountCreationWorkerThread(QThread):
|
||||
if save_result is not None:
|
||||
result["save_result"] = save_result
|
||||
|
||||
# Feature 5: Markiere als erfolgreich für Process Guard
|
||||
success = True
|
||||
|
||||
self.finished_signal.emit(result)
|
||||
else:
|
||||
error_msg = result.get("error", "Unbekannter Fehler")
|
||||
@ -197,11 +203,17 @@ class BaseAccountCreationWorkerThread(QThread):
|
||||
error_msg = str(e)
|
||||
self.log_signal.emit(f"Schwerwiegender Fehler: {error_msg}")
|
||||
self.log_signal.emit(traceback.format_exc())
|
||||
|
||||
|
||||
interpreted_error = self._interpret_error(error_msg)
|
||||
self.error_signal.emit(interpreted_error)
|
||||
self.progress_signal.emit(0) # Reset progress on error
|
||||
|
||||
|
||||
finally:
|
||||
# Feature 5: Process Guard freigeben
|
||||
from utils.process_guard import get_guard
|
||||
guard = get_guard()
|
||||
guard.end(success)
|
||||
|
||||
def _interpret_error(self, error_message: str) -> str:
|
||||
"""Interpretiert Fehler mit Fuzzy-Matching"""
|
||||
error_lower = error_message.lower()
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren