Skip to content

drbuilderpro/BotListBot

 
 

Repository files navigation

The Telegram @BotListBot

This is the Chatbot in charge of maintaining the Telegram BotList, a channel that is a community-driven approach to collect the best Bots on Telegram.

The bot simplifies navigation by acting as a mirror of the BotList, and automates the process of submitting, reviewing and publishing bots by the BotListChat community.

This repository is meant as inspiration and technical guidance for bot builders, mainly for folks using the amazing python-telegram-bot library.

JosXa/BotListBot is licensed under the MIT License.

Setup Guide

Prerequesites

Mandatory

  • Python 3.7.x
  • A PostgreSQL database instance or Docker (see below)
  • Pipenv installed globally (pip install pipenv)
  • Your own bot token for local development

Optional

  • A sentry.io account (logging)
  • An S3-compatible object storage (e.g. Minio)

Development Setup

Using PyCharm...
  1. VCS -> Get from Version Control... -> https://github.com/JosXa/BotListBot (or your own fork)
  2. Add a new project Interpreter using Pipenv (not virtualenv) and let PyCharm install the packages for you
  3. Modify the variables in template.env and save the file as just .env in the root folder
  4. Run the file scripts/initialize_database.py once. Then open its run configuration, add the word "seed" to the arguments list, and run it again. This will fill the database with some initial, required values.
  5. Run botlistbot/main.py using a default configuration
Not using PyCharm...
  1. Clone from GitHub: git clone https://github.com/JosXa/BotListBot (or your own fork)
  2. Run pipenv install
  3. Modify the variables in template.env and save the file as just .env in the root folder of the checkout.
  4. Create and seed the database via pipenv run python scripts/initialize_database.py seed
  5. Run the project via pipenv run python botlistbot/main.py
Setup a PostgreSQL database instance with Docker
  1. Install Docker
  2. Run docker-compose up -d
  3. Create and seed the database via pipenv run python scripts/initialize_database.py seed
  4. To stop the database, run docker-compose down

Further details on configuration

If you have a look at settings.py, you can see a bunch of environment variables that are being retrieved via decouple.config(...) calls. Those settings can be controlled via the .env file you created at the root folder.

About

Repository of Telegram's BotListBot

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.0%
  • Other 1.0%