X-Problem gelöst

Dieser Commit ist enthalten in:
Claude Project Manager
2025-09-14 02:47:52 +02:00
Ursprung ba0ba3fcec
Commit f0320a9298
14 geänderte Dateien mit 674 neuen und 116 gelöschten Zeilen

Datei anzeigen

@ -21,6 +21,7 @@ from utils.theme_manager import ThemeManager
from localization.language_manager import LanguageManager
from licensing.license_manager import LicenseManager
from updates.update_checker import UpdateChecker
from application.services.platform_service import PlatformService
logger = logging.getLogger("main")
@ -50,6 +51,7 @@ class MainController:
self.proxy_rotator = ProxyRotator()
self.email_handler = EmailHandler()
self.update_checker = UpdateChecker(self.license_manager.api_client)
self.platform_service = PlatformService(self.db_manager)
# Haupt-View erstellen
self.view = MainWindow(self.theme_manager, self.language_manager, self.db_manager)
@ -64,72 +66,9 @@ class MainController:
)
self.session_controller = SessionController(self.db_manager)
# Plattform-Controller initialisieren
# Plattform-Controller initialisieren - nur für aktive Plattformen
self.platform_controllers = {}
# Instagram Controller hinzufügen
instagram_controller = InstagramController(
self.db_manager,
self.proxy_rotator,
self.email_handler,
self.language_manager
)
# Signal für Rückkehr zur Hauptseite verbinden
instagram_controller.return_to_main_requested = lambda: self.show_platform_selector_and_reset()
# SessionController referenz hinzufügen
instagram_controller.session_controller = self.session_controller
self.platform_controllers["instagram"] = instagram_controller
# TikTok Controller hinzufügen
tiktok_controller = TikTokController(
self.db_manager,
self.proxy_rotator,
self.email_handler,
self.language_manager
)
# Signal für Rückkehr zur Hauptseite verbinden
tiktok_controller.return_to_main_requested = lambda: self.show_platform_selector_and_reset()
# SessionController referenz hinzufügen
tiktok_controller.session_controller = self.session_controller
self.platform_controllers["tiktok"] = tiktok_controller
# X (Twitter) Controller hinzufügen
from controllers.platform_controllers.x_controller import XController
x_controller = XController(
self.db_manager,
self.proxy_rotator,
self.email_handler,
self.language_manager
)
# Signal für Rückkehr zur Hauptseite verbinden
x_controller.return_to_main_requested = lambda: self.show_platform_selector_and_reset()
# SessionController referenz hinzufügen
x_controller.session_controller = self.session_controller
self.platform_controllers["x"] = x_controller
# Gmail Controller hinzufügen
from controllers.platform_controllers.gmail_controller import GmailController
gmail_controller = GmailController(
self.db_manager,
self.proxy_rotator,
self.email_handler,
self.language_manager
)
# Signal für Rückkehr zur Hauptseite verbinden
gmail_controller.return_to_main_requested = lambda: self.show_platform_selector_and_reset()
# SessionController referenz hinzufügen
gmail_controller.session_controller = self.session_controller
self.platform_controllers["gmail"] = gmail_controller
# Facebook Controller hinzufügen
from controllers.platform_controllers.facebook_controller import FacebookController
facebook_controller = FacebookController(
self.db_manager,
self.proxy_rotator,
self.email_handler,
self.language_manager
)
self.platform_controllers["facebook"] = facebook_controller
self._initialize_active_platform_controllers()
# Signals verbinden
self.connect_signals()
@ -406,4 +345,65 @@ class MainController:
self.view,
"Fehler",
f"Fehler beim Herunterladen des Updates:\n{str(e)}"
)
)
def _initialize_active_platform_controllers(self):
"""Initialisiert nur Controller für aktive Plattformen."""
active_platforms = self.platform_service.get_active_platforms()
for platform in active_platforms:
platform_id = platform.id.lower()
try:
if platform_id == "instagram":
controller = InstagramController(
self.db_manager,
self.proxy_rotator,
self.email_handler,
self.language_manager
)
controller.return_to_main_requested = lambda: self.show_platform_selector_and_reset()
controller.session_controller = self.session_controller
self.platform_controllers["instagram"] = controller
elif platform_id == "tiktok":
controller = TikTokController(
self.db_manager,
self.proxy_rotator,
self.email_handler,
self.language_manager
)
controller.return_to_main_requested = lambda: self.show_platform_selector_and_reset()
controller.session_controller = self.session_controller
self.platform_controllers["tiktok"] = controller
elif platform_id == "x":
from controllers.platform_controllers.x_controller import XController
controller = XController(
self.db_manager,
self.proxy_rotator,
self.email_handler,
self.language_manager
)
controller.return_to_main_requested = lambda: self.show_platform_selector_and_reset()
controller.session_controller = self.session_controller
self.platform_controllers["x"] = controller
elif platform_id == "facebook":
from controllers.platform_controllers.facebook_controller import FacebookController
controller = FacebookController(
self.db_manager,
self.proxy_rotator,
self.email_handler,
self.language_manager
)
controller.return_to_main_requested = lambda: self.show_platform_selector_and_reset()
controller.session_controller = self.session_controller
self.platform_controllers["facebook"] = controller
logger.info(f"Controller für Plattform '{platform_id}' initialisiert")
except ImportError as e:
logger.warning(f"Controller für Plattform '{platform_id}' konnte nicht geladen werden: {e}")
except Exception as e:
logger.error(f"Fehler beim Initialisieren des Controllers für '{platform_id}': {e}")