Kiltisbot is a bot that provides many telegram integrations to Guild of Physics' services. Its features e.g. printing Guild's calendar events to telegram user, notifying in group chats about new posts in Fiirumi and digital stoke system for Guild's candy closet. Try it: https://t.me/@Fk_kiltisbot
Using kiltisbot requires python3
and the Poetry package manager.
Activate virtual environment with
poetry install
poetry shell
Configure the bot by copying config-example.py
to config.py
and filling in the missing parts. For the production configuration reach out to the Guilds tech team.
After configuring the bot, you can run it with
mkdir data/ # Create directory for SQLite DB
poe run
Run & detach. Copy Google credentials to google_service_account_creds.json
and set up config.py
in project root. Docker will create or mount a data/
directory for the SQLite DB and create kiltis.db
file there.
docker-compose up --build -d
Bot is configured with python file. File config-example.py
contains all variables that are needed to enjoy full functionality of kiltisbot. Copy file and name it config.py
and fill missing parts.
The calendar functionality and Drive backups use a Google service account. This can be created in the Google Cloud Console. The service account needs to have the following permissions:
- Google Calendar API (read-only)
- Google Drive API (read-write)
The sheets used for backup need to be shared with the service account email ([email protected]) with edit permissions for the backup to work.
Press /subscribe
in chat where you want to have notifications about new posts after you have added bot to chat.
The subscribed chats are persisted in data/fiirumi_data.json
. If you want to unsubscribe Fiirumi notifications from some chat, you can remove the chat from the file.
Drive backend uses same token as calendar module. Drive backend enables importing and exporting database with telegram commands that are only available for admin users.
Many. Some of them are documented in the source code as TODO comments. You can find them by typing
grep -r TODO $(ls -I env)
in the roof folder. Opening new issues in Github and sending pull requests is welcomed.