Позволяет регистрировать пользователей, генерировать для них пригласительные коды и выводить статистику приглашенных участников. Зарегистрироваться можно только после ввода пригласительного код (для админа - админ кода), полученного от другого человека. Как только пользователь регистрируется, ему выдается 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
и начинаем пользоваться:)