Rollbackpunkt, alles außer TikTok geht, die wollen wieder so eine extra locke bei Login
Dieser Commit ist enthalten in:
@ -180,50 +180,28 @@ class FacebookController(BasePlatformController):
|
||||
self.forge_dialog.start_animation()
|
||||
self.forge_dialog.show()
|
||||
|
||||
def handle_account_created(self, result: Dict[str, Any]):
|
||||
"""Verarbeitet erfolgreich erstellte Accounts mit Clean Architecture."""
|
||||
def handle_account_created(self, result: Dict[str, Any]) -> bool:
|
||||
"""
|
||||
Verarbeitet erfolgreich erstellte Accounts mit Clean Architecture.
|
||||
|
||||
Returns:
|
||||
bool: True bei erfolgreicher Speicherung, False bei Fehler
|
||||
"""
|
||||
generator_tab = self.get_generator_tab()
|
||||
generator_tab.set_running(False)
|
||||
|
||||
# Account-Daten aus dem Ergebnis holen
|
||||
account_data = result.get("account_data", {})
|
||||
|
||||
# Account und Session über SessionController speichern (Clean Architecture)
|
||||
if hasattr(self, 'session_controller') and self.session_controller:
|
||||
save_result = result.get("save_result")
|
||||
|
||||
# Account und Session nur speichern, wenn Worker es nicht bereits erledigt hat
|
||||
if save_result is None and hasattr(self, 'session_controller') and self.session_controller:
|
||||
try:
|
||||
session_data = result.get("session_data", {})
|
||||
save_result = self.session_controller.create_and_save_account(
|
||||
platform=self.platform_name,
|
||||
account_data=account_data
|
||||
)
|
||||
|
||||
if save_result.get('success'):
|
||||
logger.info(f"Account und Session erfolgreich gespeichert")
|
||||
|
||||
# Erfolgsmeldung anzeigen (nur einmal!)
|
||||
account_info = save_result.get('account_data', {})
|
||||
from PyQt5.QtWidgets import QMessageBox
|
||||
QMessageBox.information(
|
||||
generator_tab,
|
||||
"Erfolg",
|
||||
f"Account erfolgreich erstellt!\n\n"
|
||||
f"Benutzername: {account_info.get('username', '')}\n"
|
||||
f"Passwort: {account_info.get('password', '')}\n"
|
||||
f"E-Mail/Telefon: {account_info.get('email') or account_info.get('phone', '')}"
|
||||
)
|
||||
|
||||
# Signal senden, um zur Hauptseite zurückzukehren
|
||||
if hasattr(self, 'return_to_main_requested') and callable(self.return_to_main_requested):
|
||||
self.return_to_main_requested()
|
||||
else:
|
||||
error_msg = save_result.get('message', 'Unbekannter Fehler')
|
||||
logger.error(f"Fehler beim Speichern: {error_msg}")
|
||||
from views.widgets.modern_message_box import show_error
|
||||
show_error(
|
||||
generator_tab,
|
||||
"Fehler beim Speichern",
|
||||
f"Beim Speichern des Accounts ist ein Fehler aufgetreten:\n\n{error_msg}"
|
||||
)
|
||||
except Exception as e:
|
||||
logger.error(f"Fehler beim Speichern des Accounts: {e}")
|
||||
from views.widgets.modern_message_box import show_critical
|
||||
@ -232,12 +210,47 @@ class FacebookController(BasePlatformController):
|
||||
"Unerwarteter Fehler",
|
||||
f"Ein unerwarteter Fehler ist beim Speichern des Accounts aufgetreten:\n\n{str(e)}"
|
||||
)
|
||||
return False # FEHLER
|
||||
|
||||
if save_result is not None:
|
||||
if save_result.get('success'):
|
||||
logger.info("Account und Session erfolgreich gespeichert")
|
||||
|
||||
account_info = save_result.get('account_data', account_data)
|
||||
from PyQt5.QtWidgets import QMessageBox
|
||||
QMessageBox.information(
|
||||
generator_tab,
|
||||
"Erfolg",
|
||||
f"Account erfolgreich erstellt!\n\n"
|
||||
f"Benutzername: {account_info.get('username', '')}\n"
|
||||
f"Passwort: {account_info.get('password', '')}\n"
|
||||
f"E-Mail/Telefon: {account_info.get('email') or account_info.get('phone', '')}"
|
||||
)
|
||||
|
||||
if hasattr(self, 'return_to_main_requested') and callable(self.return_to_main_requested):
|
||||
self.return_to_main_requested()
|
||||
|
||||
return True
|
||||
|
||||
error_msg = save_result.get('message') or save_result.get('error') or 'Unbekannter Fehler'
|
||||
error_code = save_result.get('error_code', 0)
|
||||
logger.error(f"Fehler beim Speichern (Code {error_code}): {error_msg}")
|
||||
|
||||
from views.widgets.modern_message_box import show_error
|
||||
show_error(
|
||||
generator_tab,
|
||||
"Fehler beim Speichern",
|
||||
f"Beim Speichern des Accounts ist ein Fehler aufgetreten:\n\n{error_msg}"
|
||||
)
|
||||
return False
|
||||
|
||||
else:
|
||||
# Fallback: Alte Methode falls SessionController nicht verfügbar
|
||||
logger.warning("SessionController nicht verfügbar, verwende alte Methode")
|
||||
generator_tab.account_created.emit(self.platform_name, account_data)
|
||||
if hasattr(self, 'return_to_main_requested') and callable(self.return_to_main_requested):
|
||||
self.return_to_main_requested()
|
||||
return True # Annahme: Erfolgreich (keine Validierung möglich)
|
||||
|
||||
def _handle_error(self, error_msg: str):
|
||||
"""Behandelt Fehler während der Account-Erstellung"""
|
||||
@ -253,13 +266,25 @@ class FacebookController(BasePlatformController):
|
||||
|
||||
def _handle_finished(self, result: dict):
|
||||
"""Behandelt das Ende der Account-Erstellung"""
|
||||
# Forge-Dialog schließen
|
||||
# Dialog NICHT schließen - zeige Speicherstatus
|
||||
if hasattr(self, 'forge_dialog') and self.forge_dialog:
|
||||
self.forge_dialog.close()
|
||||
self.forge_dialog = None
|
||||
self.forge_dialog.set_status("Speichere Account in Datenbank...")
|
||||
self.forge_dialog.add_log("Prüfe Account-Daten...")
|
||||
|
||||
# Normale Verarbeitung
|
||||
self.handle_account_created(result)
|
||||
# Account-Speicherung durchführen
|
||||
save_success = self.handle_account_created(result)
|
||||
|
||||
# JETZT erst Dialog schließen (nach Speicherung)
|
||||
if hasattr(self, 'forge_dialog') and self.forge_dialog:
|
||||
if save_success:
|
||||
self.forge_dialog.add_log("Account erfolgreich gespeichert!")
|
||||
# Kurz warten, damit User die Meldung sieht
|
||||
from PyQt5.QtCore import QTimer
|
||||
QTimer.singleShot(1000, self.forge_dialog.close)
|
||||
else:
|
||||
# Bei Fehler sofort schließen (Fehler-Dialog wird separat angezeigt)
|
||||
self.forge_dialog.close()
|
||||
self.forge_dialog = None
|
||||
|
||||
def stop_account_creation(self):
|
||||
"""Stoppt die Facebook-Account-Erstellung."""
|
||||
@ -301,4 +326,4 @@ class FacebookController(BasePlatformController):
|
||||
def cleanup(self):
|
||||
"""Räumt Ressourcen auf."""
|
||||
self.stop_account_creation()
|
||||
logger.info("Facebook Controller aufgeräumt")
|
||||
logger.info("Facebook Controller aufgeräumt")
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren