Telegram Bot, v1.7
Posted on

Telegram channel bot.
Make voting for messages optional.
Change Log
- make voting for messages optional.
Features
- publication into a specified channel:
- sending of text messages;
- sending of photo messages;
- voting for messages (optional):
- restrictions (via a remembering in an SQLite database):
- one vote per one user;
- possibility change an own vote (optionally, i.e. may be disabled);
- decor:
- voting by an inline keyboard;
- reverse of a buttons order (optionally);
- customizable a buttons text via individual templates;
- displaying of a voting result on buttons instead placeholders:
- number of votes;
- percent of votes;
- support emojis (with aliases) in a buttons text;
- restrictions (via a remembering in an SQLite database):
- working mode:
- run as a web service;
- control via the RESTful API;
- utility for a sending of requests to the API:
- making of a path to a photo absolute.
Usage
$ telegram-bot -v | --version
$ telegram-bot -h | --help
$ telegram-bot [options]
Options:
-v,--version— show the version message and exit;-h,--help— show this help message and exit;-f PATH,--log-file PATH— base filename for rotated log files (default:./logs/app.log);-l NAME,--log-level NAME— minimal allowed log level (default:info).
Environment variables:
TELEGRAM_BOT_TOKEN— Telegram API access token;TELEGRAM_BOT_CHANNEL— Telegram channel name;TELEGRAM_BOT_PORT— bot API port (default:4000);TELEGRAM_BOT_VOTING— flag denoting allowing of voting (allowed:FALSEandTRUE; default:TRUE);TELEGRAM_BOT_ACCEPT_TEXT— text of the accept button (default:Accept);TELEGRAM_BOT_REJECT_TEXT— text of the reject button (default:Reject);TELEGRAM_BOT_DATABASE— path to the SQLite database file (default:./votes.db);TELEGRAM_BOT_CHANGEABLE_VOTE— flag denoting changeability of a vote (allowed:FALSEandTRUE; default:TRUE);TELEGRAM_BOT_SWAP_BUTTONS— flag denoting inversion of the order of the buttons (allowed:FALSEandTRUE; default:TRUE);TELEGRAM_BOT_RESTART_DELAY— delay before a bot polling restart (in milliseconds; default:1000).
Environment variables can be specified in a .env config in the format:
NAME_1=value_1
NAME_2=value_2
...
See details about the format: https://github.com/motdotla/dotenv#rules.
A .env config will never modify any environment variables that have already been set.
Repository
Link: https://github.com/thewizardplusplus/telegram-bot/tree/v1.7.
Content: code.
License: GPL-3.0-or-later.
Screenshots
Run of the web service
