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
teloxide
framework 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_ID
andOWNER_ID
(optional) environmental variables to your tokens and IDs. You can find yourCHANNEL_ID
andOWNER_ID
using @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 git@github.com: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.rs
in any text editor and change theMONITORED_DISTRICTS
constant to your liking.
- Streamline deployment using Docker
- Reduce binary size (current: 9.8MB)
Pull requests welcome!