diff --git a/Bot/utils/constants.py b/Bot/utils/constants.py index e8ac1e6..ac46d38 100644 --- a/Bot/utils/constants.py +++ b/Bot/utils/constants.py @@ -8,6 +8,6 @@ __all__ = ( ) -BOT_NAME = 'CraftSleuthBot' +BOT_NAME = 'DeletedPostsBot' BASE_DIR = Path(__file__).parent.parent.parent MSG_AWAIT_THRESHOLD = 5 diff --git a/config/config.py b/config/config.py index 43a3215..67170c0 100644 --- a/config/config.py +++ b/config/config.py @@ -3,7 +3,7 @@ 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 + 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. @@ -12,9 +12,10 @@ Example usage:: from config import config print(config['client_id']) - """ +import os + config = { "client_id": "", "client_secret": "", @@ -28,6 +29,26 @@ config = { "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. diff --git a/docker-compose.yml b/docker-compose.yml index ec81927..94c7b18 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,5 +5,13 @@ services: restart: unless-stopped volumes: - /docker/data/deletedposts:/app/config - - + environment: + CLIENT_ID: "abc123" + CLIENT_SECRET: "secret" + USER_AGENT: "DeletedPostsBot/1.0" + USERNAME: "botuser" + PASSWORD: "botpass" + SUB_NAME: "my_subreddit" + MAX_DAYS: "90" # strings are converted to ints when the + MAX_POSTS: "500" # corresponding config value is an int + SLEEP_MINUTES: "10"