Бот для администрирования сообществ ВКонтакте, посвященных игре Perfect World. Автоматизирует публикацию промокодов, акций и взаимодействие с подписчиками.
Проект состоит из 4 микросервисов в Docker-контейнерах:
- postgres — PostgreSQL для хранения основных данных
- redis — Redis для кэширования и очередей задач
- bot — Основной бот на VKBottle
- parser — Сервис парсинга новых промокодов и акций
начать— Приветственное сообщениепомощь— Список доступных командping— Уведомление администраторапромокоды— Список активных промокодовакции— Список текущих акцийподписка— Управление подпиской (включает клавиатуру)
- Парсинг новых промокодов и акций
- Автоматическая рассылка новостей подписчикам
- Управление подписками через inline-клавиатуру
- Бот: VKBottle (Python)
- Базы данных: PostgreSQL (основная), Redis (кеш/очереди)
- Контейнеризация: Docker
- Парсинг: Python (aiohttp/BeautifulSoup)
cp .env.example .env
Отредактируйте .env файл:
DB_NAME— Имя вашей базы данныхDB_USER— Имя пользователя базы данныхDB_PASSWORD— Пароль для подключения к базе данныхTOKEN— токен группы ВКонтактеADMIN_ID— ID администратораGROUP_ID- ID Сообщества (всегда начинается с - )
docker-compose up -d
docker-compose logs -f bot
DB_NAME = bot_database
DB_USER = admin
DB_PASSWORD = password
TOKEN = vk1.a.TOKEN
ADMIN_ID = 111111
GROUP_ID = -111111
Назначение: Хранение ID пользователей, подписанных на рассылку
Поля:
user_id(BIGINT) — уникальный идентификатор пользователя ВКонтакте (первичный ключ)
Назначение: Хранение информации о промокодах Perfect World
Поля:
promo_code(VARCHAR) — уникальный код промокода (первичный ключ)link(TEXT) — ссылка на активацию промокодаdate(TEXT) — дата добавления/публикации промокода
Назначение: Хранение информации об акциях и игровых событиях
Поля:
action_name(VARCHAR) — название акции (первичный ключ)link(TEXT) — ссылка на подробности акцииdescription(TEXT) — описание акцииdate(TEXT) — дата проведения акции
docker-compose down
docker-compose restart bot
docker-compose logs -f parser
docker-compose pull && docker-compose up -d
- Проверьте токен ВК:
echo $TOKEN - Проверьте логи:
docker-compose logs bot
- Проверьте работу PostgreSQL:
docker-compose exec postgres_db
- Проверьте настройки парсера в
.env - Проверьте логи парсера:
docker-compose logs parser
- Форкните репозиторий
- Создайте ветку для фичи:
git checkout -b feature/amazing - Закоммитьте изменения:
git commit -m 'Add amazing feature' - Запушьте ветку:
git push origin feature/amazing - Откройте Pull Request
Этот проект распространяется под лицензией MIT.
По вопросам работы бота обращайтесь в мой телеграмм @THEChrismoth.