birthdaybot/README.md
2023-07-10 20:46:12 +02:00

60 lines
1.9 KiB
Markdown

[![pipeline status](https://gitlab.ctrlz.es/mgdelacroix/birthdaybot/badges/main/pipeline.svg)](https://gitlab.ctrlz.es/mgdelacroix/birthdaybot/-/commits/main)
# 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](./example-config.yml) that
can be used as a base to create your own configuration, and there is a
[birthdays example CSV file](./birthdays.csv) 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:
```sh
$ ./birthdaybot -help
Usage of ./birthdaybot:
-config string
path to the configuration file (default "birthdaybot.yml")
```
To run the server with the development defaults, run:
```sh
$ make run
```
## Roadmap
- [X] Create the bot scaffold
- [X] Define how to read the birthdays info
- [X] Add a logger instance to the config
- [X] Add config validation on server creation
- [X] Add options to the server
- [X] Pass logger to the server through an option
- [X] Configure logger through config (levels and such)
- [X] Reduce logger verbosity (through levels)
- [ ] Add pictures to birthday notifications
- [X] Create a configurable template to fill with each notification
- [ ] Create different message systems to use with the bot
- [X] Telegram
- [ ] Email
- [ ] Mattermost
- [ ] Enjoy!