Rollbackpunkt, alles außer TikTok geht, die wollen wieder so eine extra locke bei Login

Dieser Commit ist enthalten in:
Claude Project Manager
2025-10-18 02:26:44 +02:00
Ursprung 9c1d7d8a8f
Commit 7261f70073
12 geänderte Dateien mit 754 neuen und 254 gelöschten Zeilen

Binäre Datei nicht angezeigt.

Datei anzeigen

@ -103,12 +103,15 @@ class DatabaseManager:
def add_account(self, account_data: Dict[str, Any]) -> int:
"""
Fügt einen Account zur Datenbank hinzu.
Args:
account_data: Dictionary mit Account-Daten
Returns:
ID des hinzugefügten Accounts oder -1 im Fehlerfall
ID des hinzugefügten Accounts
-1: Pflichtfeld fehlt oder ist leer
-2: Duplikat (Account existiert bereits)
-3: Datenbankverbindungsfehler
"""
try:
# Prüfe, ob erforderliche Felder vorhanden sind
@ -122,35 +125,50 @@ class DatabaseManager:
logger.error(f"Pflichtfeld ist leer: {field} = '{account_data[field]}'")
logger.error(f"Account-Daten: {account_data}")
return -1
# Sicherstellen, dass created_at vorhanden ist
if "created_at" not in account_data:
account_data["created_at"] = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
conn = sqlite3.connect(self.db_path)
cursor = conn.cursor()
# SQL-Anweisung vorbereiten
fields = ", ".join(account_data.keys())
placeholders = ", ".join(["?" for _ in account_data])
query = f"INSERT INTO accounts ({fields}) VALUES ({placeholders})"
# Anweisung ausführen
cursor.execute(query, list(account_data.values()))
# ID des hinzugefügten Datensatzes abrufen
account_id = cursor.lastrowid
conn.commit()
conn.close()
logger.info(f"Account hinzugefügt: {account_data['username']} (ID: {account_id})")
return account_id
except sqlite3.IntegrityError as e:
# UNIQUE constraint failed - Duplikat
error_str = str(e).lower()
if "unique" in error_str:
logger.error(f"Account existiert bereits (Duplikat): {e}")
logger.error(f"Account-Daten: username={account_data.get('username')}, platform={account_data.get('platform')}")
return -2
else:
logger.error(f"Integritätsfehler bei Account-Erstellung: {e}")
return -3
except sqlite3.OperationalError as e:
# Datenbankverbindungsfehler
logger.error(f"Datenbankverbindungsfehler: {e}")
return -3
except sqlite3.Error as e:
logger.error(f"Fehler beim Hinzufügen des Accounts: {e}")
return -1
# Generischer DB-Fehler
logger.error(f"Datenbankfehler beim Hinzufügen des Accounts: {e}")
return -3
def get_account(self, account_id: int) -> Optional[Dict[str, Any]]:
"""