Skip to content

THEChrismoth/Perfect_World_Community_Bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Perfect World Community Bot для ВКонтакте

Бот для администрирования сообществ ВКонтакте, посвященных игре Perfect World. Автоматизирует публикацию промокодов, акций и взаимодействие с подписчиками.

🏗 Архитектура проекта

Проект состоит из 4 микросервисов в Docker-контейнерах:

  1. postgres — PostgreSQL для хранения основных данных
  2. redis — Redis для кэширования и очередей задач
  3. bot — Основной бот на VKBottle
  4. parser — Сервис парсинга новых промокодов и акций

🚀 Функционал

Команды для пользователей:

  • начать — Приветственное сообщение
  • помощь — Список доступных команд
  • ping — Уведомление администратора
  • промокоды — Список активных промокодов
  • акции — Список текущих акций
  • подписка — Управление подпиской (включает клавиатуру)

Автоматические функции:

  • Парсинг новых промокодов и акций
  • Автоматическая рассылка новостей подписчикам
  • Управление подписками через inline-клавиатуру

🛠 Технологии

  • Бот: VKBottle (Python)
  • Базы данных: PostgreSQL (основная), Redis (кеш/очереди)
  • Контейнеризация: Docker
  • Парсинг: Python (aiohttp/BeautifulSoup)

📦 Быстрый старт

1. Настройка переменных окружения

cp .env.example .env

Отредактируйте .env файл:

  • DB_NAME — Имя вашей базы данных
  • DB_USER — Имя пользователя базы данных
  • DB_PASSWORD — Пароль для подключения к базе данных
  • TOKEN — токен группы ВКонтакте
  • ADMIN_ID — ID администратора
  • GROUP_ID - ID Сообщества (всегда начинается с - )

2. Запуск контейнеров

docker-compose up -d

3. Мониторинг логов

docker-compose logs -f bot

⚙️ Конфигурация

Основные настройки в .env:

DB_NAME = bot_database
DB_USER = admin
DB_PASSWORD = password
TOKEN = vk1.a.TOKEN
ADMIN_ID = 111111
GROUP_ID = -111111

🗄️ Структура базы данных

Таблица subscribers (Подписчики)

Назначение: Хранение ID пользователей, подписанных на рассылку
Поля:

  • user_id (BIGINT) — уникальный идентификатор пользователя ВКонтакте (первичный ключ)

Таблица promo (Промокоды)

Назначение: Хранение информации о промокодах Perfect World
Поля:

  • promo_code (VARCHAR) — уникальный код промокода (первичный ключ)
  • link (TEXT) — ссылка на активацию промокода
  • date (TEXT) — дата добавления/публикации промокода

Таблица action (Акции/Ивенты)

Назначение: Хранение информации об акциях и игровых событиях
Поля:

  • 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

🐛 Устранение неполадок

Бот не запускается:

  1. Проверьте токен ВК: echo $TOKEN
  2. Проверьте логи: docker-compose logs bot

Нет подключения к БД:

  1. Проверьте работу PostgreSQL: docker-compose exec postgres_db

Парсер не находит промокоды:

  1. Проверьте настройки парсера в .env
  2. Проверьте логи парсера: docker-compose logs parser

🤝 Вклад в проект

  1. Форкните репозиторий
  2. Создайте ветку для фичи: git checkout -b feature/amazing
  3. Закоммитьте изменения: git commit -m 'Add amazing feature'
  4. Запушьте ветку: git push origin feature/amazing
  5. Откройте Pull Request

📄 Лицензия

Этот проект распространяется под лицензией MIT.

👨‍💻 Контакты

По вопросам работы бота обращайтесь в мой телеграмм @THEChrismoth.

About

Бот для администрирования сообществ ВКонтакте, посвященных игре Perfect World. Автоматизирует публикацию промокодов, акций и взаимодействие с подписчиками.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors