mirror of
https://github.com/EDeev/vkrepost_to_tg.git
synced 2026-06-15 10:51:00 +03:00
Автоматизированная система репостинга контента из VKontakte в Telegram с поддержкой персональных подписок и VK API интеграцией
https://t.me/vkportalbot
aiogramapi-integrationasyncioautomationcontent-monitoringpythonrepost-botsocial-mediasqlitetelegram-botvk-apivkontakte
| code | ||
| db | ||
| README.md | ||
| requirements.txt | ||
Repost from Vk to Tg 🔄
Автоматизированная система репостинга контента из VKontakte в Telegram
Telegram-бот для автоматического мониторинга и репостинга публикаций из социальной сети ВКонтакте с поддержкой персонализированных подписок и расширенным функционалом взаимодействия.
🎯 Основная функциональность
Ключевые возможности
- Автоматический мониторинг публикаций из VK страниц и сообществ
- Персонализированные подписки до 10 источников на пользователя
- Интеграция с VK API через пользовательские токены
- Интерактивное взаимодействие с лайками постов через Telegram
- Многоформатная поддержка медиа-контента (фото, видео, аудио, документы)
Архитектурные особенности
- Асинхронная обработка запросов с использованием
asyncio - Двухуровневая система баз данных (пользователи/группы)
- Токен-ротация для обхода ограничений API
- Централизованное управление подписками
🚀 Быстрый старт
Предварительные требования
pip install -r requirements.txt
Конфигурация
- Создайте Telegram-бота через @BotFather
- Получите служебный токен VK API
- Настройте файл
config.py:
# TOKENS
botToken = 'YOUR_TELEGRAM_BOT_TOKEN'
serviceToken = "YOUR_VK_SERVICE_TOKEN"
# URL
loginUrl = "https://oauth.vk.com/authorize?client_id=YOUR_APP_ID&display=page&redirect_uri=https://oauth.vk.com/blank.html&scope=wall,likes&response_type=token&v=5.131"
Запуск системы
python bot.py
📋 Структура команд
| Команда | Описание | Синтаксис |
|---|---|---|
/start |
Инициализация пользователя | /start |
/add |
Добавление подписки | /add domain_name |
/del |
Удаление подписки | /del domain_name |
/list |
Просмотр активных подписок | /list |
/like |
Лайк поста (ответ на сообщение) | /like |
/notif |
Переключение уведомлений | /notif |
/last_post |
Получение последней публикации | /last_post domain_name |
🏗️ Архитектура системы
Компоненты системы
├── bot.py # Основной модуль бота
├── vk_scripts.py # VK API интеграция
├── sql.py # Управление базами данных
├── scripts.py # Вспомогательные функции
├── config.py # Конфигурация проекта
└── db/
├── users.db # База пользователей
└── base.db # Основная база данных
Технологический стек
- Backend: Python 3.8+
- Telegram Framework: Aiogram 2.x
- VK Integration: vk_api
- Database: SQLite
- Async Processing: asyncio
- Media Processing: Built-in handlers
Схема базы данных
Таблица user (users.db)
user_id INTEGER PRIMARY KEY -- Telegram ID пользователя
id INTEGER AUTOINCREMENT -- Внутренний ID
Таблица user (base.db)
user_id INTEGER -- Ссылка на users.db
status BOOLEAN -- Статус уведомлений
groups TEXT -- Список подписок (разделитель ;)
token TEXT -- VK access token
count INTEGER -- Количество подписок
⚡ Алгоритм работы
Цикл мониторинга
- Сканирование источников (интервал: 60 секунд)
- Проверка новых публикаций через VK API
- Форматирование контента под Telegram
- Массовая рассылка подписчикам
- Обновление метаданных в базе данных
Обработка медиа-контента
- Фотографии: Группировка в медиа-альбомы
- Видео: Информационные заглушки с ссылками
- Аудио: Отдельные медиа-сообщения
- Документы: Прямые ссылки с метаданными
- Опросы: Текстовое представление с результатами
🔧 Расширенные возможности
Система токенов
- Служебный токен: Базовый доступ к публичному контенту
- Пользовательские токены: Доступ к закрытым страницам и функции лайков
- Автоматическая ротация: Распределение нагрузки между токенами
Обработка ошибок
- Graceful handling VK API лимитов
- Автоматический фallback на служебный токен
- Логирование критических ошибок
📊 Метрики производительности
- Пропускная способность: До 1000 пользователей
- Частота обновлений: 60 секунд
- Лимит подписок: 10 на пользователя
- Поддерживаемые форматы: 6 типов медиа
📄 Лицензия
Проект распространяется под лицензией MIT.
👨💻 Автор
Деев Егор Викторович
- GitHub: @EDeev
- Email: egor@deev.space
- Telegram: @Egor_Deev
Проект носит некоммерческий характер и предназначен для образовательных целей и личного использования.
Создано с ❤️ от вашего дорогого - deev.space ©