X-Problem gelöst
Dieser Commit ist enthalten in:
@ -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}")
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren