2024-04-05 18:13:16 -04:00
|
|
|
from pathlib import Path
|
|
|
|
import tomllib
|
2024-04-05 18:47:33 -04:00
|
|
|
from types import SimpleNamespace
|
|
|
|
import sys
|
2024-04-05 18:13:16 -04:00
|
|
|
|
|
|
|
|
2024-04-05 18:47:33 -04:00
|
|
|
def get_config(profile):
|
|
|
|
with open(Path.home() / ".o365-auth-config.toml", "rb") as f:
|
|
|
|
toplevel_data = tomllib.load(f)
|
2024-04-05 18:13:16 -04:00
|
|
|
|
|
|
|
|
2024-04-05 18:49:50 -04:00
|
|
|
default_data = toplevel_data["default"]
|
|
|
|
config_data = default_data | toplevel_data.get(profile, {})
|
2024-04-05 18:47:33 -04:00
|
|
|
cache_path = Path.home() / ".cache/o365-oauth" / profile
|
|
|
|
cache_path.mkdir(parents=True, exist_ok=True)
|
|
|
|
|
|
|
|
return SimpleNamespace(
|
|
|
|
ClientId = config_data["ClientId"],
|
|
|
|
ClientSecret = config_data["ClientSecret"],
|
|
|
|
Scopes = config_data["Scopes"],
|
|
|
|
RefreshTokenFileName = cache_path / "imap_smtp_refresh_token",
|
|
|
|
AccessTokenFileName = cache_path / "imap_smtp_access_token",
|
2024-04-05 20:16:31 -04:00
|
|
|
Authority = config_data["Authority"] or None,
|
|
|
|
Timeout = config_data.get("Timeout", 60 * 60))
|