Erster Checkin: Tool arbeitet
This commit is contained in:
60
app/main.py
Normal file
60
app/main.py
Normal file
@@ -0,0 +1,60 @@
|
||||
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)
|
||||
Reference in New Issue
Block a user