Бот для Telegram с функцией сбора данных (анкет) пользователей. Бот предлагает пользователю заполнить анкеты с типовыми вопросами (фото, имя, возраст и т.д). Собранные данные отправляются модератору на проверку, а также добавляются в базу данных анкет (данные разделяются на мужские и женские анкеты). Также все пользователи вне зависимости от пола и того заполнили они анкету или нет добавляются в отдельную таблицу базы данных (добавляемые данные: user id телеграм, ссылка в телеграм, first_name). Есть функция перехода пользователя на преобретение платной подписки без запонения анкеты. Также имеется возможность отправки сообщений (логов) об ошибках в телеграм.
Добавлена функция распознования лица на фотографии загружаемой пользователями, (если лицо отсутствует бот не пропустит к заполнению следующего шага и будет просить загрузить фото с лицом). Новые возможности для администраторов:
- Функция проверки анкеты в один клик и отправка с сообщения пользователю с результатом проверки.
- Возможность проверки не промодерированных анкет.
- Функция выгрузки данных в CSV (таблицы) файл по всем пользователям бота (формат данных из телеграм: user name, user id, user url), а также отдельно женские или мужские анкеты пользователей.
- Для разработчиков. Проект частично покрыт тестами. Добавлена возможность проверки flake8.
- Добавлен новый пункт в таблицу Users базы данных сигнализирующий о наличии или отсутствии анкеты у пользователя.
- Добавлена возможность для пользователю связаться с администратором после заполнения анкеты.
Добавлена функция рассылки сообщений пользователям.
- Python==3.11,
- aiogram==3.3.0,
- python-dotenv==1.0.0,
- urllib3==2.2.1
- sqlite == 3.45.2
- redis==5.0.3
📦love_bot
- ┣ 📦data (пакет модулей для работы с БД)
- ┣ 📦handlers (пакет работы с hendlrs бота)
- ┣ 📦keyboards (пакет работы с клавиатурами бота)
- ┣ 📦utils (вспомогательный пакет с дополнительными модулями)
- ┣ 📜bot.py (модуль запуска телеграм бота)
- ┣ 📜.gitignore
- ┗ 📜requirements.txt
- Создаем бота в телеграм при помощи BotFather
- Скачиваем репозиторий с ботом при помощи команды:
git clone https://github.com/IPRepin/love_bot.git
- Устанавливаем библиотеки из файла requirements.txt
- В корневой папке проекта содаем файл с именем
.env
- Помещаем в него:
- Токен Telegram для бота
TELEGRAM_TOKEN='Ваш_телеграмм_токен'
- Токен Telegram для отправки сообщений о ошибках
TELEGRAM_LOGS_TOKEN='Телеграмм_токен_бота_сообщений_о_ошибках'
- Chat id Телеграм бота сообщений о ошибках
TG_CHAT_ID='Ваш_chat_id_бота_сообщений_о_ошибках'
- Путь к файлу баз данных
PATH_TO_DB='путь/до/файла/базы_данных
- Токен Telegram для бота
python bot.py
Работающего телеграм бота можно посмотреть тут