""" Platform-spezifische Konfiguration """ from typing import Dict, List, Any PLATFORM_CONFIG: Dict[str, Dict[str, Any]] = { 'instagram': { 'mobile_probability': 0.7, 'min_age': 13, 'max_age': 99, 'supported_registration': ['email'], 'default_email_domain': 'z5m7q9dk3ah2v1plx6ju.com', 'requires_phone_verification': False, 'session_expiry_days': 30, 'rate_limits': { 'registrations_per_hour': 3, 'registrations_per_day': 10, 'cooldown_minutes': 15 }, 'error_patterns': { 'already taken': 'Dieser Benutzername ist bereits vergeben', 'weak password': 'Das Passwort ist zu schwach', 'rate limit': 'Zu viele Versuche - bitte später erneut versuchen', 'network error': 'Netzwerkfehler - bitte Internetverbindung prüfen', 'captcha': 'Captcha-Verifizierung erforderlich', 'verification': 'Es gab ein Problem mit der Verifizierung des Accounts', 'proxy': 'Problem mit der Proxy-Verbindung', 'timeout': 'Zeitüberschreitung bei der Verbindung', 'username': 'Der gewählte Benutzername ist bereits vergeben oder nicht zulässig', 'password': 'Das Passwort erfüllt nicht die Anforderungen von Instagram', 'email': 'Die E-Mail-Adresse konnte nicht verwendet werden', 'phone': 'Die Telefonnummer konnte nicht für die Registrierung verwendet werden' }, 'ui_config': { 'primary_color': '#E4405F', 'secondary_color': '#C13584', 'icon': 'instagram.svg' } }, 'tiktok': { 'mobile_probability': 0.9, 'min_age': 13, 'max_age': 99, 'supported_registration': ['email', 'phone'], 'default_email_domain': 'z5m7q9dk3ah2v1plx6ju.com', 'requires_phone_verification': True, 'session_expiry_days': 14, 'rate_limits': { 'registrations_per_hour': 2, 'registrations_per_day': 5, 'cooldown_minutes': 30 }, 'error_patterns': { 'captcha': 'TikTok hat einen Captcha-Test angefordert', 'verification': 'Es gab ein Problem mit der Verifizierung des Accounts', 'proxy': 'Problem mit der Proxy-Verbindung', 'timeout': 'Zeitüberschreitung bei der Verbindung', 'username': 'Der gewählte Benutzername ist bereits vergeben oder nicht zulässig', 'password': 'Das Passwort erfüllt nicht die Anforderungen von TikTok', 'email': 'Die E-Mail-Adresse konnte nicht verwendet werden', 'phone': 'Die Telefonnummer konnte nicht für die Registrierung verwendet werden', 'phone number required': 'Telefonnummer erforderlich', 'invalid code': 'Ungültiger Verifizierungscode', 'age': 'Das eingegebene Alter erfüllt nicht die Anforderungen von TikTok', 'too_many_attempts': 'Zu viele Registrierungsversuche', 'rate limit': 'Zu viele Versuche - bitte später erneut versuchen', 'already taken': 'Der gewählte Benutzername ist bereits vergeben', 'weak password': 'Das Passwort ist zu schwach', 'network error': 'Netzwerkfehler - bitte Internetverbindung prüfen' }, 'ui_config': { 'primary_color': '#000000', 'secondary_color': '#FE2C55', 'icon': 'tiktok.svg' } }, 'facebook': { 'mobile_probability': 0.5, 'min_age': 13, 'max_age': 99, 'supported_registration': ['email', 'phone'], 'default_email_domain': 'z5m7q9dk3ah2v1plx6ju.com', 'requires_phone_verification': False, 'session_expiry_days': 90, 'rate_limits': { 'registrations_per_hour': 2, 'registrations_per_day': 8, 'cooldown_minutes': 20 }, 'error_patterns': { # Facebook-spezifische Fehler hier hinzufügen }, 'ui_config': { 'primary_color': '#1877F2', 'secondary_color': '#42B883', 'icon': 'facebook.svg' } }, 'ok': { 'mobile_probability': 0.3, 'min_age': 16, 'max_age': 99, 'supported_registration': ['email', 'phone'], 'default_email_domain': 'z5m7q9dk3ah2v1plx6ju.com', 'requires_phone_verification': True, 'session_expiry_days': 60, 'rate_limits': { 'registrations_per_hour': 2, 'registrations_per_day': 6, 'cooldown_minutes': 25 }, 'error_patterns': { 'already taken': 'Dieser Benutzername ist bereits vergeben', 'weak password': 'Das Passwort ist zu schwach', 'rate limit': 'Zu viele Versuche - bitte später erneut versuchen', 'network error': 'Netzwerkfehler - bitte Internetverbindung prüfen', 'captcha': 'Captcha-Verifizierung erforderlich', 'verification': 'Es gab ein Problem mit der Verifizierung des Accounts', 'proxy': 'Problem mit der Proxy-Verbindung', 'timeout': 'Zeitüberschreitung bei der Verbindung', 'phone required': 'Telefonnummer erforderlich für OK.ru', 'invalid phone': 'Ungültige Telefonnummer', 'blocked region': 'Registrierung aus dieser Region nicht möglich' }, 'ui_config': { 'primary_color': '#FF6600', 'secondary_color': '#FF8533', 'icon': 'ok.svg' } }, 'gmail': { 'mobile_probability': 0.4, 'min_age': 13, 'max_age': 99, 'supported_registration': ['phone'], 'default_email_domain': 'gmail.com', 'requires_phone_verification': True, 'session_expiry_days': 365, 'rate_limits': { 'registrations_per_hour': 1, 'registrations_per_day': 3, 'cooldown_minutes': 60 }, 'error_patterns': { 'phone required': 'Telefonnummer erforderlich für Gmail', 'phone already used': 'Diese Telefonnummer wurde bereits verwendet', 'invalid phone': 'Ungültige Telefonnummer', 'verification failed': 'SMS-Verifizierung fehlgeschlagen', 'account suspended': 'Account-Erstellung gesperrt', 'rate limit': 'Zu viele Versuche - bitte später erneut versuchen', 'captcha': 'Captcha-Verifizierung erforderlich', 'username taken': 'Gewünschter Benutzername nicht verfügbar', 'weak password': 'Passwort erfüllt nicht die Sicherheitsanforderungen', 'network error': 'Netzwerkfehler - bitte Internetverbindung prüfen' }, 'ui_config': { 'primary_color': '#EA4335', 'secondary_color': '#4285F4', 'icon': 'gmail.svg' } } } def get_platform_config(platform: str) -> Dict[str, Any]: """Gibt die Konfiguration für eine Platform zurück""" platform_lower = platform.lower() if platform_lower not in PLATFORM_CONFIG: # Fallback zu Standard-Konfiguration return { 'mobile_probability': 0.5, 'min_age': 13, 'max_age': 99, 'supported_registration': ['email'], 'default_email_domain': 'z5m7q9dk3ah2v1plx6ju.com', 'requires_phone_verification': False, 'session_expiry_days': 30, 'rate_limits': { 'registrations_per_hour': 3, 'registrations_per_day': 10, 'cooldown_minutes': 15 }, 'error_patterns': {}, 'ui_config': { 'primary_color': '#000000', 'secondary_color': '#666666', 'icon': 'default.svg' } } return PLATFORM_CONFIG[platform_lower] def get_error_patterns(platform: str) -> Dict[str, str]: """Gibt die Error-Patterns für eine Platform zurück""" config = get_platform_config(platform) return config.get('error_patterns', {}) def get_rate_limits(platform: str) -> Dict[str, int]: """Gibt die Rate-Limits für eine Platform zurück""" config = get_platform_config(platform) return config.get('rate_limits', {}) def is_registration_method_supported(platform: str, method: str) -> bool: """Prüft ob eine Registrierungsmethode unterstützt wird""" config = get_platform_config(platform) supported = config.get('supported_registration', ['email']) return method in supported