Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/whiletruedoend/vk-to-telegram-transfer-bot
Бот, пересылающий сообщения из чатов ВК в Telegram и обратно
https://github.com/whiletruedoend/vk-to-telegram-transfer-bot
bot bot-settings botfather pytelegrambotapi python pythonanywhere telegram telegram-bot telegram-transfer-bot vk vk-bot
Last synced: 27 days ago
JSON representation
Бот, пересылающий сообщения из чатов ВК в Telegram и обратно
- Host: GitHub
- URL: https://github.com/whiletruedoend/vk-to-telegram-transfer-bot
- Owner: Whiletruedoend
- License: gpl-3.0
- Created: 2017-09-16T21:17:21.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2022-05-21T19:19:02.000Z (over 2 years ago)
- Last Synced: 2024-10-09T13:23:32.822Z (27 days ago)
- Topics: bot, bot-settings, botfather, pytelegrambotapi, python, pythonanywhere, telegram, telegram-bot, telegram-transfer-bot, vk, vk-bot
- Language: Python
- Homepage:
- Size: 81.1 KB
- Stars: 312
- Watchers: 19
- Forks: 63
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Vk-to-telegram-transfer-bot
### Описание
Многофункциональный, написанный одной ногой на питоне бот для пересылки сообщений из ВК в Telegram и наоборот. Изначально он планировался исключительно для личного пользования, однако я передумал и решил выложить в общий доступ в связи с тем, что, возможно, он может кому-то понадобиться.### Возможности:
- Пересылка текстовых сообщений из ВК в Telegram и наоборот
- Пересылка изображений/стикеров/аудио/видео/документов/голосовых сообщений (Только из ВК в Telegram!)
- Пересылка стикеров из Telegram в ВК
- Поддержка личных сообщений и групповых чатов
- Удобный файл конфигурации
- Поддержка прокси для Telegram### Установка
Для работы вам понадобиться:- [Python 3](https://www.python.org/downloads/)
- Git клиент ( я использую [Git Bash](https://git-scm.com/download/win ) )
- Аккаунт в ВК ( будем использовать в качестве ботинка )
- Бот в Telegram ( можно создать через [BotFather](https://t.me/BotFather) )
- (При желании) Хостинг, на котором будет работать бот (Например, PythonAnywhere)Для начала займёмся установкой скрипта. Открываем Git и пишем:
```sh
git clone https://github.com/Whiletruedoend/Vk-to-telegram-transfer-bot
cd Vk-to-telegram-transfer-bot
pip3 install -r requirements.txt
или же (если вдруг не сработало):
python -m pip install -r requirements.txt
```### Запуск в docker
Для запуска в docker'е необходимо собрать образ и запустить его.
Для сборки образа необходимо в корневой директории проекта выполнить команду
```sh
docker build . -t vk_to_telegram_transfer_bot
```Для запуска образа необходимо в корневой директории проекта выполнить команду
```sh
docker run vk_to_telegram_transfer_bot
```### Запуск при помощи docker-compose
Для запуска в docker'е необходимо собрать образ и запустить его.
Для сборки образа необходимо в корневой директории проекта выполнить команду
```sh
docker-compose up -d
```### Настройка бота
Все настройки будут производиться в файле config.py
Для начала откроем его и вставим логин и пароль от аккаунта в ВК (таблицы ‘vk_login’ и ‘vk_password’ ) и токен бота в Telegram’e ( таблица ‘telegram_token’ )Далее мы будем настраивать чат для передачи сообщений. Для этого необходимо:
1) Создать чат в Telegram’e
2) Добавить туда бота
3) Написать ‘Дай ID’, после чего бот должен написать вам ID чата
4) Взять ID чата/пользователя, откуда/куда будут пересылаться сообщения
5) Добавить в конфиг поля:
```sh
setCell( "vk_", '-' )
setCell( "t_-", '' )
```
, где - локальный ID чата для бота (!), либо ID пользователя, с которым будет связан чат в Telegram’e, а - - тот самый ID чата, который мы получили, прописав команду ‘Дай ID’. Отбратите внимание, что - всегда идёт с минусом в начале, кроме того, знаки <> прописывать не нужно!
‘Живой пример’:```sh
setCell( "vk_1", '-249416176' )
setCell( "t_-249416176", '1' )
```
Здесь мы видим, что для аккаунта ВК из чата 1 все сообщения будут пересылаться в чат '-249416176' в Telegram, и наоборот. Надеюсь, всё понятно, по какому принципу нужно всё делать.
P.S. Я дальнейшем я планирую облегчить систему создания тоннелей ВК <===> телега, но, пока что, пусть всё останется так.### Важно!
У бота в Telegram должен быть:
1) Отключен режим приватности ( Bot Father —> Ваш бот —> Bot Settings —> Group Privacy —> Turn **Off** )
2) Включена поддержка групповых чатов ( Bot Father —> Ваш бот —> Bot Settings —> Allow groups? Turn groups **On** )[Установка бота на хостинг + его настройка](https://youtu.be/QS_jKQPZTD4)
### Планы на будущее
- ~~Доработать отправку картинок ( Сейчас устроено так, что если отправлено несколько фоточек в ВК, то в телегу придёт только первая)~~ *Done!*
- ~~Улучшить отображение пересланных сообщений ( сейчас это еле работает, спасибо хоть на этом)~~ *Done!*
- ~~Сделать реагирование на различные события (Ex. при обновлении аватарки чата в ВК, инвайте/кике пользователя, бот оповещал об этом в Telegram )~~ *Done!*
- ~~При отправке стикера из Telegram в ВК он конвертировался из формата webp в png и отправлялся как картинка ( Я уже знаю как это можно сделать, но не могу найти годный конвертер )~~ *Done!*
- Переписать проект с нуля
- Настроить передачу картинок/видео/файлов/документов из Telegram в ВК
- Более удобная конфигурация прямо в боте
- Синхронизация чатов (Название, аватарка)
### Обратная связь
Если у вас есть какие-то идеи или собственные наработки, или же просто вопросы по поводу работоспособности кода, то вы всегда можете обратиться ко мне по следующим адресам:
- [Matrix](https://matrix.to/#/@whiletruedoend:matrix.org)
- Jabber: [email protected]### Скриншоты
![Скриншот 1](https://i.imgur.com/87oOXs4.gif)
![Скриншот 2](https://i.imgur.com/5VOyeLb.png)