Giter VIP home page Giter VIP logo

vk-to-telegram-transfer-bot's Introduction

Vk-to-telegram-transfer-bot

Описание

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

Возможности:

  • Пересылка текстовых сообщений из ВК в Telegram и наоборот
  • Пересылка изображений/стикеров/аудио/видео/документов/голосовых сообщений (Только из ВК в Telegram!)
  • Пересылка стикеров из Telegram в ВК
  • Поддержка личных сообщений и групповых чатов
  • Удобный файл конфигурации
  • Поддержка прокси для Telegram

Установка

Для работы вам понадобиться:

  • Python 3
  • Git клиент ( я использую Git Bash )
  • Аккаунт в ВК ( будем использовать в качестве ботинка )
  • Бот в Telegram ( можно создать через BotFather )
  • (При желании) Хостинг, на котором будет работать бот (Например, PythonAnywhere)

Для начала займёмся установкой скрипта. Открываем Git и пишем:

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'е необходимо собрать образ и запустить его. Для сборки образа необходимо в корневой директории проекта выполнить команду

docker build . -t vk_to_telegram_transfer_bot

Для запуска образа необходимо в корневой директории проекта выполнить команду

docker run vk_to_telegram_transfer_bot

Запуск при помощи docker-compose

Для запуска в docker'е необходимо собрать образ и запустить его. Для сборки образа необходимо в корневой директории проекта выполнить команду

docker-compose up -d

Настройка бота

Все настройки будут производиться в файле config.py Для начала откроем его и вставим логин и пароль от аккаунта в ВК (таблицы ‘vk_login’ и ‘vk_password’ ) и токен бота в Telegram’e ( таблица ‘telegram_token’ )

Далее мы будем настраивать чат для передачи сообщений. Для этого необходимо:

  1. Создать чат в Telegram’e
  2. Добавить туда бота
  3. Написать ‘Дай ID’, после чего бот должен написать вам ID чата
  4. Взять ID чата/пользователя, откуда/куда будут пересылаться сообщения
  5. Добавить в конфиг поля:
	setCell( "vk_<chatid/userid>", '-<telegramid>' )
	setCell( "t_-<telegramid>", '<chatid/userid>' )

, где <chatid/userid> - локальный ID чата для бота (!), либо ID пользователя, с которым будет связан чат в Telegram’e, а - - тот самый ID чата, который мы получили, прописав команду ‘Дай ID’. Отбратите внимание, что - всегда идёт с минусом в начале, кроме того, знаки <> прописывать не нужно! ‘Живой пример’:

	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 )

Установка бота на хостинг + его настройка

Планы на будущее

  • Доработать отправку картинок ( Сейчас устроено так, что если отправлено несколько фоточек в ВК, то в телегу придёт только первая) Done!
  • Улучшить отображение пересланных сообщений ( сейчас это еле работает, спасибо хоть на этом) Done!
  • Сделать реагирование на различные события (Ex. при обновлении аватарки чата в ВК, инвайте/кике пользователя, бот оповещал об этом в Telegram ) Done!
  • При отправке стикера из Telegram в ВК он конвертировался из формата webp в png и отправлялся как картинка ( Я уже знаю как это можно сделать, но не могу найти годный конвертер ) Done!
  • Переписать проект с нуля
  • Настроить передачу картинок/видео/файлов/документов из Telegram в ВК
  • Более удобная конфигурация прямо в боте
  • Синхронизация чатов (Название, аватарка)

Обратная связь

Если у вас есть какие-то идеи или собственные наработки, или же просто вопросы по поводу работоспособности кода, то вы всегда можете обратиться ко мне по следующим адресам:

Скриншоты

Скриншот 1

Скриншот 2

vk-to-telegram-transfer-bot's People

Contributors

crazymoonkin avatar dima-a avatar genryeden avatar mashed-potatoes avatar whiletruedoend avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vk-to-telegram-transfer-bot's Issues

Поддержка API версии 5.92

Бот перестал работать после обновления vkAPI до версии 5.92. Планируется ли обновление? Спасибо!

Групповые чаты

Работает только с 1 юзером? Не работает в групповых чатах на reply любого юзера? Буду примного признателен если подскажете как это сделать на основе данного модуля🙏🏻 Заранее спасибо за Ваши труды!

Ввод капчи

Собственно, бот работает в контейнере. После того, как добавил новый чат, и перезагрузил его, стала прилетать капча... а куда вводить её - непонятно(

Enter Captcha https://api.vk.com/captcha.php?sid=191789883349: login in vk as: *****************

Successfully loginned in telegram!

Exception in thread Thread-1 (init_vk):

Traceback (most recent call last):

  File "/usr/local/lib/python3.10/threading.py", line 1016, in _bootstrap_inner

    self.run()

  File "/usr/local/lib/python3.10/threading.py", line 953, in run

    self._target(*self._args, **self._kwargs)

  File "/usr/src/app/./main.py", line 395, in init_vk

    vk_session.auth()

  File "/usr/local/lib/python3.10/site-packages/vk_api/vk_api.py", line 187, in auth

    self._auth_cookies(reauth=reauth)

  File "/usr/local/lib/python3.10/site-packages/vk_api/vk_api.py", line 207, in _auth_cookies

    self._vk_login()

  File "/usr/local/lib/python3.10/site-packages/vk_api/vk_api.py", line 312, in _vk_login

    return self.error_handlers[CAPTCHA_ERROR_CODE](captcha)

  File "/usr/src/app/./main.py", line 379, in captcha_handler

    key = input( "Enter Captcha {0}: ".format( captcha.get_url() ) ).strip()

EOFError: EOF when reading a line

Перестали транслироваться сообщения из группы вк в тг

В файле config.py такая строчка
setCell( "vk_1", '-100128347912' )

Раньше норм всё работало, потом вдруг перестало.
URL группы выглядит так: https://vk.com/im?sel=c1

Пробовал обновлять все модули питона, не помогло. При том что разговоры из личных чатов норм пересылает:
setCell( "vk_124872198", '-100128347912' )

В чём может быть проблема?

Перестало работать

Работал бот довольно долго но потом стал выдавать такую ошибку
User authorization failed: no access_token passed. Что-то пошло не так... [5] User authorization failed: no access_token passed. Что-то пошло не так... [5] User authorization failed: no access_token passed. Что-то пошло не так...

Пробовал заново накатить но ошибка осталась

Хэлп

vk transfer

До 25.07 числа все работало на ура, после началась такая история.
Может вк что-то сделал с API?

Скачал заново с репозитория, залил на дедик, ничего не изменилось :(

bot_v

Здравствуйте, во-первых спасибо!
У вас отличная работа получилось!
Можете, пожалуйста, выделить часть кода, где бот только принимает и отправляет текстовые сообщения с обновленными апи и настройками?
Или хотя бы упростить то, что написали, чтоб только text.messages, а не как у вас (все подробно)
vk>tg
tg<vk
Думаю, поможете)
Заранее спасибо)

Не работает пересылка сообщений из вк в телеграм

Суть в чем, я настроил на pythonanywhere хостинг по твоему видеоуроку. Потом отредачил конфиг. Запустил main.py, консоль пишет, что все ок
login in vk as: 89998887766 Successfully loginned in telegram!
Работает переадресация сообщений из телеграм в вк, но не работает наоборот. Вот настройка из конфига
setCell( "vk_21", '-123456789' ) # Пример переадресации из чата ВК в Telegram
setCell( "t_-123456789", '21' ) # Пример переадресации из чата ВК в Telegram
Прошерстил конфиг, попробовал без - vk_ t_ и попробовал с ними, комбинировал. Из вк в телегу отказывается пересылать

Нужна помощь!!!

Подскажите пожалуйста. Как можно сделать бота которому отправляешь ссылку на профиль ВК а он в ответ отправляет имя, возраст и т.д? Очень буду благодарен! Может у когото есть уже код...

Асинхрон

Почему многопоточность вместо асинхронности? Просто интересно

Один вопрос

Привет, есть одна приватная группа в телеге, туда есть доступ только со своего аккаунта.

Можно ли как то пересылать сообщения в ВК ?

Помогите пожалуйста.

Вроде всё верно написал, запускаю main.py бот логигится в вк и в консоль начинается спамиться этот тект

2021-11-01 08:22:10,547 (init.py:667 Thread-2) ERROR - TeleBot: "A request to the Telegram API was unsuccessful. Error code: 409. Description: Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"

Recaptcha required

Что делать?

Successfully loginned in telegram!
Enter authentication code: 008177
Recaptcha required

Откуда и как брать капчу?

Ошибка при входе

Здравствуйте, в моменте когда надо ввести капчу ВК происходит ошибка. Пожалуйста помогите.

Exception in thread Thread-1 (init_vk):
Traceback (most recent call last):
File "/usr/local/lib/python3.11/threading.py", line 1038, in _bootstrap_inner
self.run()
File "/usr/local/lib/python3.11/threading.py", line 975, in run
self._target(*self._args, **self._kwargs)
File "/usr/src/app/./main.py", line 395, in init_vk
login in vk as: [email protected]
Successfully loginned in telegram!
vk_session.auth()
File "/usr/local/lib/python3.11/site-packages/vk_api/vk_api.py", line 187, in auth
self._auth_cookies(reauth=reauth)
File "/usr/local/lib/python3.11/site-packages/vk_api/vk_api.py", line 207, in _auth_cookies
self._vk_login()
File "/usr/local/lib/python3.11/site-packages/vk_api/vk_api.py", line 330, in _vk_login
self._pass_twofactor(response)
File "/usr/local/lib/python3.11/site-packages/vk_api/vk_api.py", line 356, in _pass_twofactor
code, remember_device = self.error_handlers[TWOFACTOR_CODE]()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/app/./main.py", line 371, in auth_handler
key = input("Enter authentication code: ")
^^^^^^^^^^^^^^^^^^^^^^^
EOFError: EOF when reading a line

Тунели

Посмотрел и видео, и инструкцию здесь и примеры в config.py

тем не менее, туннель работает только в одну сторону из тг в вк (в беседы и в личные чаты)
не смог завести как из под винды так и из под линукса

Снимок

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.