Files
DeletedPosts/config/config.py
2026-02-24 21:45:13 +00:00

60 lines
1.9 KiB
Python

"""
Configuration for the DeletedPosts bot.
This module exposes a single dictionary called ``config`` which holds all
of the parameters required to connect to Reddit and control the behaviour of
the bot. When you first run the program the file will be created for you
with empty values; you should edit it before starting the bot. You can also
reset the file to defaults by running the application with the
``reset_config`` command-line argument.
Example usage::
from config import config
print(config['client_id'])
"""
import os
config = {
"client_id": "",
"client_secret": "",
"user_agent": "",
"username": "",
"password": "",
"sub_name": "",
# numeric settings are stored as integers here rather than strings
"max_days": 180,
"max_posts": 180,
"sleep_minutes": 5,
}
# allow container/WC users to override values via environment variables
# variables are expected to be UPPERCASE versions of the keys (or prefixed
# with DP_). Numeric values will be converted to ints automatically.
for key in list(config):
# check both bare and prefixed variants
env_names = [key.upper(), f"DP_{key.upper()}"]
for env in env_names:
val = os.getenv(env)
if val is not None:
# cast numeric entries back to int when appropriate
if isinstance(config[key], int):
try:
config[key] = int(val)
except ValueError:
pass # leave original if conversion fails
else:
config[key] = val
break
# same data as a text template. both ``main.py`` and ``utils.actions`` import
# this so that the file can be created or reset without duplicating the
# literal configuration body.
TEMPLATE = f"""# configuration for DeletedPosts bot
# edit the values of the dictionary below and restart the bot
config = {config!r}
"""