World Conquest Chronicles

World Conquest Chronicles

Telegram Bot, v1.3

Telegram channel bot.

Improve a decor of voting keyboards.

Change Log

  • support placeholders in a buttons text:
    • for a number of votes;
    • for a percent of votes;
  • support a reverse of a buttons order;
  • support emojis in a buttons text.

Features

  • publication into a specified channel:
    • sending of text messages;
    • sending of photo messages;
  • voting for messages:
    • 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;
  • 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:

  • -v, --version — show the version message and exit;
  • -h, --help — show this help message and exit.

Environment variables:

  • TELEGRAM_BOT_TOKENTelegram API access token;
  • TELEGRAM_BOT_CHANNELTelegram channel name;
  • TELEGRAM_BOT_PORT — bot API port (default: 4000);
  • TELEGRAM_BOT_ACCEPT_TEXT — text of the accept button (default: :thumbsup: #{number} (#{percents}%));
  • TELEGRAM_BOT_REJECT_TEXT — text of the reject button (default: :thumbsdown: #{number} (#{percents}%));
  • TELEGRAM_BOT_DATABASE — path to the SQLite database file (default: ./votes.db);
  • TELEGRAM_BOT_CHANGEABLE_VOTE — flag denoting changeability of a vote (allowed: FALSE and TRUE; default: TRUE);
  • TELEGRAM_BOT_SWAP_BUTTONS — flag denoting inversion of the order of the buttons (allowed: FALSE and TRUE; default: TRUE).

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.3.

Content: code.

License: GPL-3.0-or-later.

Copyrights