Skip to content
This repository has been archived by the owner on Sep 1, 2022. It is now read-only.
/ forwarding-bot Public archive

Migrate your conversation and forward messages from VK to Telegram

License

Notifications You must be signed in to change notification settings

dhvcc/forwarding-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Forwarding bot

DISCONTINUED/Поддержка прекращена

It still works, but I no longer need this project or care about it. (the code is terrible though) Бот до сих пор работает, но он мне уже не нужен, да и интерес в нём пропал. (код ужасный, написан на коленке, я знаю)

Перенесите свою беседу в Telegram

Downloads Downloads Downloads

PyPI version Python versions Wheel status License

Code checks Pypi publish

Суть проблемы

У вас есть некая беседа в VK, которую вы хотели бы перенести в Telegram, однако в ту беседу до сих пор приходят важные оповещения, туда пересылают документы

Да, плохо, но не всё потеряно

Ведь можно запустить бота, который будет каждое сообщение из беседы VK в ваш чат в Telegram

Почему Telegram?

Как пользователь

  1. Безопасность. Вконтакте не особо задумываетсяо вашей безопасности и все даже удалённые сообщения хранятся у них. В любой момент этим могут воспользоваться заинтересованные личности
  2. Скорость . Вконтакте работает медленно, сообщения долго грузятся
  3. Приоритеты. К сожалени, главеный приоритет Вконтакте сейчас - деньги, а не юзабельность/скорость/безопасность. Вот так мы и получаем бесполезные VK Clips, VK Connect и модный VK Messenger
  4. Да и вообще, у них стикеры платные

Как разработчик

  1. Баги, баги, много багов. Только вот вместе иправления ты слышишь "мы добавили в бэклог, скоро исправим". Нет, не исправляете
  2. Плохая документация API, которая не всегда отражает истину
  3. Ссылки на пункты статьи не имеют аттрибутов id, то есть нельзя сделать vk.com/dev/метод?#пункт. VK API имеет свой необычный и совершенно неудобный механизм ссылок на пункты

Как работает бот?

Бот находится в беседе VK и в чате Telegram

Бот слушает беседу и ждёт новое сообщение. Как только оно приходит бот приводит сообщение в подобающий вид и отправляет его в другую беседу в Telegram

Примеры работы

VK

VK

Telegram

документ_0 и документ_1 это ссылки на сообщения, которые содержат документ

TG

Быстрый старт

Что нужно?

  1. Ключ доступа одного из администраторов группы. Получить его можно авторизовавшись через приложение VK. Удобно это сделать можно тут
    • Почему не токен группы? К сожалению, в ВК есть баг, из-за которого могут теряться вложения, поэтому нужно перезапрашивать данные о сообщении
    • Бот группы не имеет доступа к истории сообщений, а юзер имеет. Почему? Я не знаю
    • Они собираются это изменить, но навряд ли это скоро произойдёт
    • Код программы открытый, так что токены чужие никто воровать не собирается
  2. Бот в Telegram, который будет находиться в другой беседе и слать туда сообщения. Создать бота можно написав пользователю @BotFather
  3. ID беседы VK. Для пользователь, от лица которого будет работать бот должен зайти в беседу и извлечь ID из адресной строки. Например, в адресе https://vk.com/im?sel=c123456, 123456 - это и есть ID беседы
  4. ID чата Telegram. Получить его способов много, однако я предпочитаю просто пригласить в беседу @getidsbot

Установка

PyPi

pip install forwarding-bot

GitHub

git clone https://github.com/dhvcc/forwarding-bot.git
cd forwarding-bot
pip install .

Дополнительно

Вы можете установить дополнительные зависимости

speedups ускорят работу бота, а dev установит необходимые зависимости для разработки

pip install forwarding-bot[dev]
# Вы должны находится в папке, где расположен setup.py (если скачивали с GitHub)
pip install .[speedups]
pip install forwarding-bot[speedups,dev]

Настройка

В папке, откуда будете запускать бота создайте файл .forwarding-bot и запишите в него следующее

[forwarding-bot]
BOT_TOKEN =
USER_TOKEN =
SOURCE_ID =
DESTINATION_ID =

Далее заполните файл данными. Про получение данных обратитесь к пункту Что нужно?

  • В BOT_TOKEN запишите ключ доступа Telegram бота, который вы получили от BotFather
  • В USER_TOKEN запишите ключ доступа одного из администраторов беседы VK
  • В SOURCE_ID запишите ID беседы VK
  • В DESTINATION_ID запишите ID чата Telegram

Запуск

После настройки, зайдите в папку, где лежит ваш .forwarding-bot и запустите python -m forwarding-bot (что бы запустить в фоновом режиме добавьте в конце команды &)

Дополнительно

...

Помочь развитию

Пулл реквесты приветствуются. Что бы внести большие изменения, пожалуйста, откройте сначала issue, что бы обсудить изменения

Рекоммендуется использование pre-commit. Установить git хуки pre-commit install -t=pre-commit -t=pre-push

Лицензия

MIT