No description
cmd/birthdaybot | ||
model | ||
notification | ||
parser | ||
server | ||
.envrc | ||
.gitignore | ||
.gitlab-ci.yml | ||
birthdays.csv | ||
example-config.yml | ||
go.mod | ||
go.sum | ||
Makefile | ||
README.md | ||
sample.tmpl | ||
shell.nix |
Birthday bot
A simple bot that notifies of birthdays, posting the contact information of the subject so you can reach them easily.
Configuration
There is an example configuration file that can be used as a base to create your own configuration, and there is a birthdays example CSV file to load the data.
Template file
The template can be configured using the birthday_template
config
parameter to point to the template file. The template uses the Go
Template Format, and has the following properties available:
.Name
: the name of the person whose birthday we're notifying..Email
: the email of the person..Phone
: the phone of the person, as a string..YearOfBirth
: the year that the person was born, as number..MonthOfBirth
: the month that the person was born, as number..DayOfBirth
: the day that the person was born, as number.
Run the bot
To get help for the bot command, run:
$ ./birthdaybot -help
Usage of ./birthdaybot:
-config string
path to the configuration file (default "birthdaybot.yml")
To run the server with the development defaults, run:
$ make run
Roadmap
- Create the bot scaffold
- Define how to read the birthdays info
- Add a logger instance to the config
- Add config validation on server creation
- Add options to the server
- Pass logger to the server through an option
- Configure logger through config (levels and such)
- Reduce logger verbosity (through levels)
- Add pictures to birthday notifications
- Create a configurable template to fill with each notification
- Create different message systems to use with the bot
- Telegram
- Mattermost
- Enjoy!