Files
m365-workingwith/app/main.py
2026-02-02 12:40:51 +01:00

61 lines
1.6 KiB
Python

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 <email>")
print(" python -m app.main manager <manager_email>")
print(" python -m app.main emails <email1> [<email2> ...]")
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)