The code for my Bluesky feed generator
1import os
2import logging
3
4from dotenv import load_dotenv
5
6from server.logger import logger
7
8load_dotenv()
9
10SERVICE_DID = os.environ.get("SERVICE_DID")
11HOSTNAME = os.environ.get("HOSTNAME")
12FLASK_RUN_FROM_CLI = os.environ.get("FLASK_RUN_FROM_CLI")
13LOG_LEVEL = os.environ.get("LOG_LEVEL")
14
15if FLASK_RUN_FROM_CLI:
16 logger.setLevel(LOG_LEVEL)
17else:
18 logger.setLevel(logging.INFO)
19
20if not HOSTNAME:
21 raise RuntimeError('You should set "HOSTNAME" environment variable first.')
22
23if not SERVICE_DID:
24 SERVICE_DID = f"did:web:{HOSTNAME}"
25
26
27FEED_URI = os.environ.get("FEED_URI")
28if not FEED_URI:
29 raise RuntimeError(
30 "Publish your feed first (run publish_feed.py) to obtain Feed URI. "
31 'Set this URI to "FEED_URI" environment variable.'
32 )
33
34
35def _get_bool_env_var(value: str) -> bool:
36 if value is None:
37 return False
38
39 normalized_value = value.strip().lower()
40 if normalized_value in {"1", "true", "t", "yes", "y"}:
41 return True
42
43 return False
44
45
46IGNORE_OLD_POSTS = _get_bool_env_var(os.environ.get("IGNORE_OLD_POSTS"))
47IGNORE_REPLY_POSTS = _get_bool_env_var(os.environ.get("IGNORE_REPLY_POSTS"))