Async Telegram bot written in Rust to monitor CoWin API for available vaccination slots.
You can find one instance of this bot running at @COVID_Vaccine_Updates
- Exponential backoff to gradually find a stable API query rate
teloxideframework usingasync- Strongly typed commands and JSON decoding
- Download Rust.
- Create a new bot using @Botfather to get a token in the format
123456789:abcdefgh. - Initialise the
TELOXIDE_TOKEN,CHANNEL_IDandOWNER_ID(optional) environmental variables to your tokens and IDs. You can find yourCHANNEL_IDandOWNER_IDusing @userinfobot
$ export TELOXIDE_TOKEN=<Your token here>
$ export CHANNEL_ID=<Your channel_id here>
$ export OWNER_ID=<Your owner_id here>
...- Make sure that your Rust compiler is up to date:
$ rustup update stable
$ rustup override set stable- Clone this repository and run:
$ git clone [email protected]:obviyus/vnb
$ cd vnb
$ cargo run- Get your state ID from:
https://cdn-api.co-vin.in/api/v2/admin/location/states - Get your district ID from:
https://cdn-api.co-vin.in/api/v2/admin/location/districts/<STATE_ID> - Open
src/response.rsin any text editor and change theMONITORED_DISTRICTSconstant to your liking.
- Streamline deployment using Docker
- Reduce binary size (current: 9.8MB)
Pull requests welcome!