Skip to content

NameLeSS-93/telegram-pyramid

Repository files navigation

Telegram бот пирамида

Позволяет регистрировать пользователей, генерировать для них пригласительные коды и выводить статистику приглашенных участников. Зарегистрироваться можно только после ввода пригласительного код (для админа - админ кода), полученного от другого человека. Как только пользователь регистрируется, ему выдается 10 кодов приглашений для других людей. Код можно использовать только один раз, поэтому один человек, может пригласить до 10 участников.

Как запускать

В docker-compose.yml добавляем переменную окружения:

API_TOKEN — API токен телеграм бота

И поднимаем контейнеры:

docker-compose up -d --build

Настройка админ доступа

Бот различает два вида пользователей: администратор, и юзер. Администратор обладает привилегией генерировать произвольное множество пригласительных кодов, а юзеру доступно лишь 10.

Для того чтобы зарегистрироваться как администратор, необходимо добавить хэш пароля в таблицу admin. В качестве админ пароля рекомендуется использовать случайно сгенерированный секрет:

import secrets
from passlib.hash import pbkdf2_sha256

admin_key = secrets.token_hex(16) # Запомним, это наш админ пароль '82f90e80e6de60862b71b51f47b2a615'
pbkdf2_sha256.hash(admin_key) 
# Хэш $pbkdf2-sha256$29000$XIvxXivlfI9R6p3zvrdWKg$YhnkDFAjnb.nnSFgpC/mMG8cyoH2MqoBLe6UR1N21Hs

Подключаемся к контейнеру с базой

$ docker exec -it postgres-12.6 psql -U postgres -d bot_db

И добавляем хэш

insert into admin(admin_code) values('$pbkdf2-sha256$29000$XIvxXivlfI9R6p3zvrdWKg$YhnkDFAjnb.nnSFgpC/mMG8cyoH2MqoBLe6UR1N21Hs');

Профит! Теперь можно регистрироваться, как админ, используя пароль 82f90e80e6de60862b71b51f47b2a615

Количество админов неограниченно.

Как пользоваться

В боте вводим команду /start или /help и начинаем пользоваться:)