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