BBDC Practical Slot Booking Bot
Note: TPDS booking not included
Note2: Supports the new BBDC UI
- Periodically check and book practical lessons
- Send Telegram message when booking is found
- Auto book preferred slots
- Setup a Telegram bot via @BotFather
- Get your chat id via @RawDataBot, it should look something like this:
512345678 - Create your own config under the
configfolder using the template: config/example.yaml
Docker Desktop ^4.11.1docker-compose ^2.7.0
- Update
CONFIG_PATHenv in docker-compose.yml - In your console run:
docker compose up -d
Poetry ^1.1.13
export CONFIG_PATH=config/my_config.yamlpoetry shellpoetry installpython -m bbdc-bot
| Config | Description |
|---|---|
interval |
Query interval, in minutes, preferably 50 minutes to prevent getting blacklisted |
course_type |
Course Type for which you want to book slots |
query_months |
Preferred months, in YYYYMM (e.g. 202211) |
accounts |
|
.username |
BBDC Username (Supports multiple account) |
.password |
BBDC Password |
.chat_id |
Telegram chat id, telegram bot will send a message to this chat when a slot is booked |
.preferred_slots |
|
.slot_type |
Target slot type |
.date |
Preferred date in YYYY-MM-DD |
.sessions |
Preferred sessions |
telegram |
|
.token |
Telegram bot token |
.broadcast_chat_id |
Telegram chat to broadcast the found slots. Can be personal chat or a channel |
How do I know if my config is loaded properly?
Test it with python -m bbdc-bot.config. You should see your configs printed in your console.
How do I know if my telegram bot is working?
Test it with python -m bbdc-bot.telegram. You should see the message "test" being sent to your chat.
To support other types of slot booking (E.g. BTP,BTE etc.), implement BaseAPI interface.
Add the implemented API in main(), use find_and_book() utility to call the API.
Use practical.py as a reference