diff --git a/README.md b/README.md index bd84860..220ebd2 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,155 @@ -# VkTgRepostBot -Portal in VK - (https://t.me/vkportalbot) - этот бот не коммерческий проект, для получения постов из социальной сети ВКонтакте. Бот работает на сервисном токене VK API, пока вы не предоставите собственный. Токен необходим для получения постов с закрытых страниц и возможности ставить лайки на посты через бота! +# Repost fron Vk to Tg 🔄 + +[![Python](https://img.shields.io/badge/Python-3.8+-blue.svg)](https://python.org) +[![Aiogram](https://img.shields.io/badge/Aiogram-2.x-green.svg)](https://aiogram.dev) +[![VK API](https://img.shields.io/badge/VK%20API-5.131-orange.svg)](https://dev.vk.com) +[![License](https://img.shields.io/badge/License-MIT-yellow.svg)](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 ©

+