https://github.com/edeev/vkrepost_to_tg
Автоматизированная система репостинга контента из VKontakte в Telegram с поддержкой персональных подписок и VK API интеграцией
https://github.com/edeev/vkrepost_to_tg
aiogram api-integration asyncio automation content-monitoring python repost-bot social-media sqlite telegram-bot vk-api vkontakte
Last synced: about 2 months ago
JSON representation
Автоматизированная система репостинга контента из VKontakte в Telegram с поддержкой персональных подписок и VK API интеграцией
- Host: GitHub
- URL: https://github.com/edeev/vkrepost_to_tg
- Owner: EDeev
- Created: 2024-02-12T11:24:18.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-06-30T17:09:41.000Z (12 months ago)
- Last Synced: 2025-06-30T18:23:09.548Z (12 months ago)
- Topics: aiogram, api-integration, asyncio, automation, content-monitoring, python, repost-bot, social-media, sqlite, telegram-bot, vk-api, vkontakte
- Language: Python
- Homepage: https://t.me/vkportalbot
- Size: 20.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Repost from Vk to Tg 🔄
[](https://python.org)
[](https://aiogram.dev)
[](https://dev.vk.com)
[](LICENSE)
**Автоматизированная система репостинга контента из VKontakte в Telegram**
Telegram-бот для автоматического мониторинга и репостинга публикаций из социальной сети ВКонтакте с поддержкой персонализированных подписок и расширенным функционалом взаимодействия.
## 🎯 Основная функциональность
### Ключевые возможности
- **Автоматический мониторинг** публикаций из VK страниц и сообществ
- **Персонализированные подписки** до 10 источников на пользователя
- **Интеграция с VK API** через пользовательские токены
- **Интерактивное взаимодействие** с лайками постов через Telegram
- **Многоформатная поддержка** медиа-контента (фото, видео, аудио, документы)
### Архитектурные особенности
- Асинхронная обработка запросов с использованием `asyncio`
- Двухуровневая система баз данных (пользователи/группы)
- Токен-ротация для обхода ограничений API
- Централизованное управление подписками
## 🚀 Быстрый старт
### Предварительные требования
```bash
pip install -r requirements.txt
```
### Конфигурация
1. Создайте Telegram-бота через [@BotFather](https://t.me/botfather)
2. Получите служебный токен VK API
3. Настройте файл `config.py`:
```python
# 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"
```
### Запуск системы
```bash
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)
```sql
user_id INTEGER PRIMARY KEY -- Telegram ID пользователя
id INTEGER AUTOINCREMENT -- Внутренний ID
```
#### Таблица `user` (base.db)
```sql
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.
## 👨💻 Автор
**Деев Егор Викторович**
- GitHub: [@EDeev](https://github.com/EDeev)
- Email: egor@deev.space
- Telegram: [@Egor_Deev](https://t.me/Egor_Deev)
---
Проект носит некоммерческий характер и предназначен для образовательных целей и личного использования.
Создано с ❤️ от вашего дорогого - deev.space ©