social media crossposting tool. 3rd time's the charm
mastodon
misskey
crossposting
bluesky
1import logging
2import sys
3import os
4from typing import Any
5
6logging.basicConfig(stream=sys.stderr, level=logging.INFO)
7LOGGER = logging.getLogger("XPost")
8
9def read_env(data: dict[str, Any]) -> None:
10 keys = list(data.keys())
11 for key in keys:
12 val = data[key]
13 match val:
14 case str():
15 if val.startswith('env:'):
16 envval = os.environ.get(val[4:])
17 if envval is None:
18 del data[key]
19 else:
20 data[key] = envval
21 case dict():
22 read_env(val)
23 case _:
24 pass