Allow all settings to be set via env variables
This commit is contained in:
parent
938d9d7d62
commit
d246f25bfc
2 changed files with 24 additions and 3 deletions
|
|
@ -132,11 +132,13 @@ If you configure FediFetcher this way, it'll fetch missing remote replies to the
|
|||
|
||||
#### Advanced Options
|
||||
|
||||
Please find the list of all configuration options, including descriptions, below:
|
||||
Below is a list of all configuration options, including their descriptions.
|
||||
Please note that configuration options may also be specified as environment variables starting with the prefix `FF_`, case-insensitive, and with `-` replaced with `_`.
|
||||
For example `max-favourites` can be set via `FF_MAX_FAVOURITES` or `ff_max_favourites`)
|
||||
|
||||
Option | Required? | Notes |
|
||||
|:----------------------------------------------------|-----------|:------|
|
||||
|`access-token` | Yes | The access token. If using GitHub action, this needs to be provided as a Secret called `ACCESS_TOKEN`. If running as a cron job or a container, you can supply this option as array, to [fetch posts for multiple users](https://blog.thms.uk/2023/04/muli-user-support-for-fedifetcher) on your instance. You may also provide this option as an environment variable starting with `ACCESS_TOKEN`. To fetch posts for multiple users, define multiple environment variables, eg. `ACCESS_TOKEN_USER1=…` and `ACCESS_TOKEN_USER2=…`|
|
||||
|`access-token` | Yes | The access token. If using GitHub action, this needs to be provided as a Secret called `ACCESS_TOKEN`. If running as a cron job or a container, you can supply this option as array, to [fetch posts for multiple users](https://blog.thms.uk/2023/04/muli-user-support-for-fedifetcher) on your instance. To set tokens for multiple users using environment variables, define multiple environment variables with `FF_ACCESS_TOKEN` prefix, eg. `FF_ACCESS_TOKEN_USER1=…` and `FF_ACCESS_TOKEN_USER2=…`|
|
||||
|`server`|Yes|The domain only of your mastodon server (without `https://` prefix) e.g. `mstdn.thms.uk`. |
|
||||
|`home-timeline-length` | No | Provide to fetch remote replies to posts in the API-Key owner's home timeline. Determines how many posts we'll fetch replies for. Recommended value: `200`.
|
||||
| `max-bookmarks` | No | Provide to fetch remote replies to any posts you have bookmarked. Determines how many of your bookmarks you want to get replies to. Recommended value: `80`. Requires an access token with `read:bookmarks` scope.
|
||||
|
|
|
|||
|
|
@ -1488,7 +1488,26 @@ if __name__ == "__main__":
|
|||
logger.critical(f"Config file {arguments.config} doesn't exist")
|
||||
sys.exit(1)
|
||||
|
||||
if tokens := [token for envvar, token in os.environ.items() if envvar.startswith("ACCESS_TOKEN")]:
|
||||
for envvar, value in os.environ.items():
|
||||
envvar = envvar.lower()
|
||||
if envvar.startswith("ff_") and not envvar.startswith("ff_access_token"):
|
||||
envvar = envvar[3:]
|
||||
# most settings are numerical
|
||||
if envvar not in [
|
||||
"server",
|
||||
"lock_file",
|
||||
"state_dir",
|
||||
"on_start",
|
||||
"on_done",
|
||||
"on_fail",
|
||||
"log_level",
|
||||
"log_format"
|
||||
]:
|
||||
value = int(value)
|
||||
setattr(arguments, envvar, value)
|
||||
|
||||
# remains special-cased for specifying multiple tokens
|
||||
if tokens := [token for envvar, token in os.environ.items() if envvar.lower().startswith("ff_access_token")]:
|
||||
arguments.access_token = tokens
|
||||
|
||||
logger.info(f"Starting FediFetcher")
|
||||
|
|
|
|||
Loading…
Reference in a new issue