Автоматизированная система репостинга контента из VKontakte в Telegram с поддержкой персональных подписок и VK API интеграцией https://t.me/vkportalbot
Find a file
2025-06-30 20:09:41 +03:00
code v. 1.0 2024-02-12 18:26:35 +07:00
db v. 1.0 2024-02-12 18:26:35 +07:00
README.md README.md 2025-06-30 20:09:41 +03:00
requirements.txt requirements 2025-06-30 20:03:40 +03:00

Repost from Vk to Tg 🔄

Python Aiogram VK API License

Автоматизированная система репостинга контента из VKontakte в Telegram

Telegram-бот для автоматического мониторинга и репостинга публикаций из социальной сети ВКонтакте с поддержкой персонализированных подписок и расширенным функционалом взаимодействия.

🎯 Основная функциональность

Ключевые возможности

  • Автоматический мониторинг публикаций из VK страниц и сообществ
  • Персонализированные подписки до 10 источников на пользователя
  • Интеграция с VK API через пользовательские токены
  • Интерактивное взаимодействие с лайками постов через Telegram
  • Многоформатная поддержка медиа-контента (фото, видео, аудио, документы)

Архитектурные особенности

  • Асинхронная обработка запросов с использованием asyncio
  • Двухуровневая система баз данных (пользователи/группы)
  • Токен-ротация для обхода ограничений API
  • Централизованное управление подписками

🚀 Быстрый старт

Предварительные требования

pip install -r requirements.txt

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

  1. Создайте Telegram-бота через @BotFather
  2. Получите служебный токен VK API
  3. Настройте файл 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                -- Количество подписок

Алгоритм работы

Цикл мониторинга

  1. Сканирование источников (интервал: 60 секунд)
  2. Проверка новых публикаций через VK API
  3. Форматирование контента под Telegram
  4. Массовая рассылка подписчикам
  5. Обновление метаданных в базе данных

Обработка медиа-контента

  • Фотографии: Группировка в медиа-альбомы
  • Видео: Информационные заглушки с ссылками
  • Аудио: Отдельные медиа-сообщения
  • Документы: Прямые ссылки с метаданными
  • Опросы: Текстовое представление с результатами

🔧 Расширенные возможности

Система токенов

  • Служебный токен: Базовый доступ к публичному контенту
  • Пользовательские токены: Доступ к закрытым страницам и функции лайков
  • Автоматическая ротация: Распределение нагрузки между токенами

Обработка ошибок

  • Graceful handling VK API лимитов
  • Автоматический фallback на служебный токен
  • Логирование критических ошибок

📊 Метрики производительности

  • Пропускная способность: До 1000 пользователей
  • Частота обновлений: 60 секунд
  • Лимит подписок: 10 на пользователя
  • Поддерживаемые форматы: 6 типов медиа

📄 Лицензия

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

👨‍💻 Автор

Деев Егор Викторович


Проект носит некоммерческий характер и предназначен для образовательных целей и личного использования.

Создано с ❤️ от вашего дорогого - deev.space ©