A cron-like python script that checks dropbox for new files
1.2K
A simple python and cron combination to send alerts when files are added to a dropbox folder
apt-get install python3apt-get install python3-pippip install pipenvpipenv installpipenv shellpython unit_testing.pydocker build . -t qutecoacoustics/notification-system:latest NS_CONFIG=$(pwd)docker run --mount "type=bind,source=$NS_CONFIG,destination=/config" qutecoacoustics/notification-system:latestPlace a config.json file alongside toad_functions.py etc with the following format:
{
"sendgrid_api_key": "<place your key here>",
"dropbox_api_key": "<place your key here>",
"send_from": "\"<project name>\" <[email protected]>",
// the path to the file in dropbox containing the receiver list
"filename_send_to": "email_alert_list.txt",
"pause_duration": 3600,
// An array of (time start, time end) tuples for allowed notification times
// The default if omitted is `[["00:00", "24:00"]]`.
// The times are interpreted against the local time of the matched file,
// parsed from it's filename.
"whitelist_times_of_day" : [ ["20:00", "24:00"], ["00:00", "04:00"]],
// If no utc offset found in filename, then assume this utc offset (in seconds)
// e.g. 36000 for +10:00
"fallback_utc_offset": 0,
// the folder containing uploaded audio files. Must be supplied.
"root_folder": "/instance/audio",
// the folder containing log folders. optional
"log_folder": "/instance/logs",
// the folder where status reports should be stored. optional. defaults to `log_folder`
"save_status_reports_folder": "/instance/status",
// when to update the status report
"update_status_report_at": ["00:00", "12:00"],
// a name that can be used to identify the instance that sent the notification
// in an email
"name": "Testing notifier"
}
The first argument to toad_notification_system.py is the config path. Use that
to override the default config file path.
Note that email_alert_list.txt is a file in the same Dropbox directory containing a newline-delimited list of emails to send notifications to.
pause_duration is the number of seconds to wait before letting a sensor trigger another notification after it has previously triggered one.
root_folder is the location of the Dropbox directory where the files are stored.
Be sure to rebuild docker image after customization.
Edit the schedule in the crontab file.
Every a schedule like:
0/5 * * * *
means run every fifth minute, starting from the zeroth minute of the hour.
Content type
Image
Digest
Size
56.9 MB
Last updated
almost 8 years ago
docker pull qutecoacoustics/notification-system