Git Product home page Git Product logo

delitel-web / vk-tg-sync Goto Github PK

View Code? Open in Web Editor NEW
10.0 0.0 1.0 126 KB

Синхронизация чатов между Вконтакте и Телеграмом. Упростите коммуникацию, перенеся чаты из Вконтакте в Телеграм.

Python 97.27% Mako 2.11% Dockerfile 0.62%
bot bot-telegram bot-telegram-python bot-vk python python-3 python-script python3 sync synchronization

vk-tg-sync's Introduction

VK-TG-SYNC | Синхронизация чатов между Вконтакте и Телеграмом

Note

Этот скрипт предназначен для пользователей, которые уже давно сделали Телеграм своим основным мессенджером, но у них все еще есть чаты во Вконтакте, в которых им приходится участвовать. Скрипт позволяет перенести эти чаты из Вконтакте в Телеграм и упростить процесс коммуникации.

Warning

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

Поддерживаемые версии Python

Запуск в Docker

Вы также можете запустить vk-tg-sync в Docker, прочитать об этом подробнее можете здесь

🚀 Установка

  1. Склонируйте репозиторий GitHub:

    git clone https://github.com/Delitel-WEB/vk-tg-sync.git
  2. Перейдите в директорию проекта:

    cd vk-tg-sync
  3. Установите необходимые пакеты Python из файла req.txt:

    pip install -r req.txt

⚙️ Настройка

  1. Создайте файл settings.sh для Linux.

    export TG_BOT_TOKEN="ВАШ_ТОКЕН_ТЕЛЕГРАМ_БОТА"
    export VK_BOT_TOKEN="ВАШ_ТОКЕН_ПОЛЬЗОВАТЕЛЬСКОГО_АККАУНТА"
    export DB_PASS="ПАРОЛЬ_К_БД_MYSQL"
    export DB_IP="IP_БАЗЫ_ДАННЫХ"
    export DB_NAME="НАЗВАНИЕ БД"

    Токен ВК можно получить здесь. У токена должно быть разрешение к сообщениям!

  2. Создайте таблицы в базе данных:

    alembic upgrade head

    ⚠️ Перед выполнением этой команды убедитесь, что у вас установлена база данных MySQL и создана указанная таблица DB_NAME.

▶️ Запуск бота

⚠️ Перед запуском убедитесь, что вы установили значения переменных в файле settings.sh.

Перед запуском выполните следующую команду для установки переменных в окружение терминала:

source settings.sh

И запустите скрипт:

python main.py

🚀 Инструкция по использованию

После запуска бота, вы можете связать чаты во ВКонтакте и Telegram, отправив боту команду /bind_chat.

Бот предложит вам выбрать тип чата во ВКонтакте: групповой или личный чат.

Выбор типа чата

Личный чат

Выбор личного чата

Для связи личного чата вам потребуется предоставить боту ID пользователя ВКонтакте.

Вы можете найти ID пользователя в ссылке на его профиль, которая может выглядеть, например, как vk.com/id1.

Если у ссылки на профиль пользователя есть пользовательское имя, например, vk.com/durov, вы можете извлечь ID его профиля с помощью любого приложения, позволяющего извлекать ID из ссылок, например, это приложение.

После ввода ID пользователя, бот напишет вам имя выбранного вами пользователя и попросит подтвердить ваш выбор.

Подтверждение

Группа

Выбор группы

Для связи бесед ВКонтакте вам потребуется получить их ID.

Для каждой беседы ID имеет свой уникальный идентификатор.

Получить его можно, кликнув в браузере на беседу и посмотрев в ссылку https://vk.com/im?sel=c147. Число 147 в этой ссылке является ID беседы ВКонтакте.

После ввода ID группы, бот напишет вам название выбранной вами беседы и попросит подтвердить ваш выбор.

Подтверждение

После этого бот попросит вас отправить ID группы в Telegram.

⚠️ Бот должен находиться в этой группе и быть администратором.

⚠️ Внимание!!! Если группа станет супергруппой, ее ID изменится.

ID группы Telegram можно получить, отправив команду /id в группе, в которую добавлен бот.

После успешного связывания чатов, бот изменит название и фотографию группы в Telegram на такие же, как во ВКонтакте.

Что реализовано на данный момент

Синхронизация указана в виде мессенджер ➔ мессенджер. То есть если галочка стоит у ВКонтакте, то сделана синхронизация VK ➔ Telegram и наоборот. Если галочки стоят сразу на двух мессенджерах, значит, синхронизация двусторонняя.

Виды синхронизации Telegram VKontakte
Сообщения
Текстовые сообщения
Голосовые сообщения
Стикеры
Пересланные сообщения
Документы
Удаление сообщений
Редактирование сообщений
Медиа
Фото
Видео
Кружки
Геолокация
Посты
Действия с чатами
Изменение Фото
Изменение Названия Чата

vk-tg-sync's People

Contributors

delitel-web avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

miwkichan2013

vk-tg-sync's Issues

При получении в `attachments` отправляется первый тип файлов

При получении в сообщении вк attachments в котором одновременно присутствуют и video и photo, будут отправлены только файлы которые имеют такой же тип как у первого файла в списке!

Другими словами, если в списке:

 attachments = ['video1', 'photo1', 'photo2', 'photo3', 'video2', 'photo4']

будут отправлены только video1 и video2

Ветки группы в телеграм

Сделать возможность синхронизации чатов в вк не только с обычной группой в тг, но и с любой её веткой.

Underline symbol, wrong amount.

1 letter = 1 ‾

Example:
Lorem Ipsum
‾‾‾‾‾‾‾‾‾‾‾‾‾‾

Lorem LoremLorem
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾

Когда группа в тг становится супергруппой, её id меняется

Traceback (most recent call last):
  File "/home/vk-tg-sync/env/lib/python3.8/site-packages/vkbottle/dispatch/base.py", line 22, in route
    await view.handle_event(event, ctx_api, self.state_dispenser)
  File "/home/vk-tg-sync/env/lib/python3.8/site-packages/vkbottle/dispatch/views/abc/message.py", line 73, in handle_event
    handler_response = await handler.handle(message, **context_variables)
  File "/home/vk-tg-sync/env/lib/python3.8/site-packages/vkbottle/dispatch/handlers/from_func_handler.py", line 32, in handle
    return await self.handler(event, **acceptable_context)
  File "/home/vk-tg-sync/sync/vk/handlers/messages.py", line 18, in on_message
    await tg.send_message(
  File "/home/vk-tg-sync/env/lib/python3.8/site-packages/aiogram/bot/bot.py", line 346, in send_message
    result = await self.request(api.Methods.SEND_MESSAGE, payload)
  File "/home/vk-tg-sync/env/lib/python3.8/site-packages/aiogram/bot/base.py", line 236, in request
    return await api.make_request(await self.get_session(), self.server, self.__token, method, data, files,
  File "/home/vk-tg-sync/env/lib/python3.8/site-packages/aiogram/bot/api.py", line 140, in make_request
    return check_result(method, response.content_type, response.status, await response.text())
  File "/home/vk-tg-sync/env/lib/python3.8/site-packages/aiogram/bot/api.py", line 113, in check_result
    raise exceptions.MigrateToChat(parameters.migrate_to_chat_id)

Обработка записей со стены

При обработке записей со стены (Репост), необходимо обернуть запись в telegra.ph статью для возможности предпосмотра поста/статьи не выходя из телеграма.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.