from __future__ import annotations import asyncio import sys from pathlib import Path from .auth import ensure_login_sync from .extractor import ( extract_relations_for_manager, extract_relations_for_emails, write_relations_to_csv, ) from .aggregator import aggregate_department_links OUTPUT_DIR = Path("output") OUTPUT_DIR.mkdir(exist_ok=True) def main(argv: list[str]) -> None: if len(argv) < 2: print("Verwendung:") print(" python -m app.main login ") print(" python -m app.main manager ") print(" python -m app.main emails [ ...]") sys.exit(1) mode = argv[1].lower() if mode == "login": if len(argv) != 3: print("login-Modus benötigt genau 1 E-Mail-Adresse.") sys.exit(1) email = argv[2] ensure_login_sync(email) return elif mode == "manager": if len(argv) != 3: print("manager-Modus benötigt genau 1 Manager-E-Mail.") sys.exit(1) manager_email = argv[2] relations = asyncio.run(extract_relations_for_manager(manager_email)) elif mode == "emails": if len(argv) < 3: print("emails-Modus benötigt mindestens 1 E-Mail-Adresse.") sys.exit(1) emails = argv[2:] relations = asyncio.run(extract_relations_for_emails(emails)) else: print(f"Unbekannter Modus: {mode}") sys.exit(1) csv_path = OUTPUT_DIR / "relations.csv" write_relations_to_csv(relations, csv_path) print(f"CSV geschrieben: {csv_path}") if __name__ == "__main__": main(sys.argv)