VK-бот для отслеживания бесплатных раздач игр в Epic Games Store (EGS). Проект представляет собой модульное приложение на Python 3.10+, реализующее периодический опрос API EGS, фильтрацию раздач и рассылку уведомлений подписчикам.
Архитектура построена на базе библиотеки SimpleVK (v1.0.1+) для взаимодействия с VK API и Peewee ORM для работы с SQLite.
- Устойчивый парсинг EGS: Алгоритм фильтрации корректно отличает 100% скидки (бесплатные игры) от обычных скидок, обрабатывает будущие раздачи и использует региональные настройки (FR) для обхода ограничений на просмотр игр (не протестировано).
- Кэширование:
- Списков игр (TTL 5 минут).
- Списков администраторов бесед (TTL 30 секунд).
- Загруженных вложения VK (в SQLite).
- Модульная архитектура: Разделение на слои сервисов, хендлеров и моделей данных.
- Фоновый воркер: Рассылка осуществляется в отдельном потоке.
- Python 3.10+
- SimpleVK: Работа с LongPoll, клавиатуры.
- Peewee ORM: Взаимодействие с SQLite.
- Requests: Синхронные HTTP-запросы.
- Cachebox: In-memory кэширование.
git clone https://github.com/tslyf/epicnotify-bot.git
cd epicnotify-botСоздайте файл .env в корне проекта и укажите необходимые переменные:
VK_TOKEN=vk1.a.YourTokenHere...
GROUP_ID=123456789
DB_NAME=epicnotify.dbИспользуя uv (рекомендуется):
uv sync --lockedПри первом запуске приложение автоматически создаст структуру таблиц в SQLite.
python main.pyMIT