Search C++ proposals directly in Telegram.
- Rust 1.64 or newer
- Cargo
Older Rust compiler versions possibly able to build the project, but I didn't test it.
- Clone this repository
cargo build --release
I recommend running this bot as a service(e.g. as systemd service) on a machine. Also, Docker images are available here: https://hub.docker.com/repository/docker/zamazan4ik/npaperbot-telegram
The bot can be configured only with environment variables. For now there are we support the following variables:
| Name | Description | Values | Default value | Required |
|---|---|---|---|---|
| TELOXIDE_TOKEN | Telegram bot token | Any valid and registered Telegram bot token | None | All mods |
| WEBHOOK_MODE | Run bot in webhook mode or long-polling mode | true for webhook, 'false' for long-polling |
false |
All mods |
| PAPERS_DATABASE_URI | HTTP(S) URI with C++ proposals JSON file | Any valid URI | https://wg21.link/index.json |
All mods |
| MAX_RESULTS_PER_REQUEST | Number of at most permitted results per request. Other results will be truncated | Unsigned 8-bit integer | 20 |
All mods |
| DATABASE_UPDATE_PERIODICITY_IN_HOURS | Papers database update periodicity in hours | Any reasonable positive i64 integer | 1 |
All mods |
| BIND_ADDRESS | Address for binding the web-service | Any valid IP address | 0.0.0.0 |
Webhook mode |
| BIND_PORT | Port for binding the web-service | Any valid port | 8080 |
Webhook mode |
| HOST | Host, where Telegram will send updates in webhook mode | Any valid host address | None | Webhook mode |
| BOT_NAME | Telegram bot name | Any string | None | All mods |
If for any variable there is no default value, and you didn't provide any value - the bot won't start.
Bot automatically registers webhook (if is launched in webhook mode) with address https://$HOST/$TELOXIDE_TOKEN/api/v1/message.
- Inline mode. Write any C++ proposal number (like
p1000) in any paired brackets (e.g.[p1000]or{p1000}) and the bot will return all corresponding results. - Search command. Type
/search patternand bot will try to find corresponding paper. Pattern shall be a paper number or a title part or an author. Currently, search is case-insensitive (but without fuzzy search support).
If you have any suggestions or want to report a bug - feel free to create in issue in this repo. Thank you!