Этот проект выполнен в рамках курса "Python" бакалавриата ЮУРГУ - МФТИ (блокирующая работа Web Code Review). Проект представляет собой телеграм-бота на aiogram 3.15.0 с использованием базы данных PostgreSQL 16, уведомляющего пользователя о появлении новых бесплатных игр на Epic Games.
Бот работает по принципам асинхронного программирования. Он адаптируется под предпочтения пользователя, который выбирает жанры и особенности игр, и в дальнейшем получает уведомления только о тех раздачах, которые ему интересны. Кроме того, бот предоставляет возможность просматривать текущие раздачи как с учетом предпочтений, так и все доступные раздачи подряд.
Ссылка на бота: @epicgames_free_games_bot
susu-mipt-py-review/
├── app/ # Основная директория приложения
│ ├── bot.py # Алгоритмы работы бота (хендлеры, коллбэки и уведомления)
│ ├── config.py # Конфигурационные настройки
│ ├── db.py # Взаимодействие с базой данных Postgres
│ ├── keyboards.py # Функции создания клавиатур (Reply, Inline)
│ ├── main.py # Основной файл проекта
│ ├── requirements.txt # Список зависимостей приложения
│ ├── scraper.py # Функции скрапинга с Epic Games
│ └── webdriver.py # Файл для работы с webdriver
├── .env.example # Файл с названиями переменных виртуального окружения
├── .gitignore # Файл с перечислением игнорируемых файлов и директорий
├── build.sh # Сценарий запуска проекта
├── docker-compose.yml # Конфигурация запуска проекта в docker-контейнерах
├── Dockerfile # Конфигурация контейнера приложения
└── README.md # Описание проекта
- Склонируйте репозиторий в директорию.
- Создайте файл
.envи укажите переменные окружения:
BOT_TOKEN=<YOUR_API_TOKEN>
POSTGRES_HOST=db
POSTGRES_PORT=<YOUR_POSTGRES_PORT>
POSTGRES_USER=<YOUR_POSTGRES_USER>
POSTGRES_PASSWORD=<YOUR_POSTGRES_USER_PASSWORD>
POSTGRES_DB=<YOUR_POSTGRES_DB>
WEBDRIVER_PATH=/usr/bin/chromedriver- Запустите ./build.sh:
#!/bin/bash
docker-compose up --buildПримечание: Для запуска проекта необходимо установить
dockerиdocker-compose.
Docker Compose собирает два сервиса: базу данных и веб-приложение с ботом. Вы можете отключить сервис с базой данных и
привязать свою PostgreSQL, указав ее в .env файле.
- Установите PostgreSQL 16 на вашем компьютере. Для этого следуйте официальной документации, подходящей для вашей операционной системы.
- Создайте базу данных и пользователя.
CREATE
DATABASE <YOUR_POSTGRES_DB>;
CREATE
USER <YOUR_POSTGRES_USER> WITH PASSWORD '<YOUR_POSTGRES_USER_PASSWORD>';
GRANT ALL PRIVILEGES ON DATABASE
<YOUR_POSTGRES_DB> TO <YOUR_POSTGRES_USER>;Создайте файл .env в корневой директории проекта, заменив значения на ваши.
- Установите ChromeDriver, который соответствует версии вашего браузера.
- Укажите путь к ChromeDriver в переменной
WEBDRIVER_PATHв.envфайле.
Поскольку скрапер работает с использованием Selenium, необходимо установить веб-драйвер. Вы можете использовать свой, но
также потребуется изменить app/webdriver.py и .env, указав путь к вашему драйверу.
- Установите зависимости, указанные в
requirements.txt. Рекомендуется использовать виртуальное окружение.
python -m venv venv
source venv/bin/activate # Для Windows используйте venv\Scripts\activate
pip install -r app/requirements.txt- Запустите проект.
python app/main.pyДанный проект был написан исключительно в образовательных целях. Автор не несет никакой ответственности за использование данного продукта сторонними лицами. Все права принадлежат их правообладателям.