Skip to content

jonowo/on9wordchainbot

Repository files navigation

On9 Word Chain Bot

On9 Word Chain Bot logo

(Epic icon by @AdriTheDreamer)

On9 Word Chain Bot hosts games of word chain in Telegram groups.

Telegram Links

Roadmap

  • Make required letter game more reasonable
  • Group leaderboard
  • Switch from Markdown to HTML completely
  • i18n for text strings

Installation

Requirements

Python 3.7+
PostgreSQL 11+
2 Telegram bots

It is highly recommended that you turn off privacy mode for On9 Word Chain Bot via @BotFather, which is on by default. Otherwise, leaving privacy mode on, the bot will only receive players' answers when they reply to the bot.

Configuration

Rename config_format.json to config.json and edit the following constants:

  • TOKEN*: A Telegram bot token.
  • ON9BOT_TOKEN*: Another Telegram bot token for the virtual player bot.
  • DB_URI: A PostgresSQL database URI.
  • PROVIDER_TOKEN*#: A Telegram payment provider token.
  • OWNER_ID: Telegram user id of the bot owner.
  • ADMIN_GROUP_ID^: Telegram group id of the bot admin group. Error messages and word addition requests are sent here.
  • OFFICIAL_GROUP_ID^: Telegram group id of the official group of the bot.
  • WORD_ADDITION_CHANNEL_ID^: Telegram channel id of the channel to announce word additions.
  • VIP: A list of Telegram user ids designated as VIPs.
  • VIP_GROUP: A list of Telegram group ids designated as VIP groups.

*: Obtained via BotFather.
#: Optional if payment-related functions are commented out.
^: Set to the same throwaway group if these features are not used.

Table Creation

Create the required tables in your PostgreSQL database by running init.sql.

Deployment

Install and update dependencies with pip install -Ur requirements.txt.
Run python -m on9wordchainbot.