FreeApp2014 / MatrixVkBot

Bridge-bot for send and recieve VK.com messages in matrix (matrix.org).

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Бот для общения в сети ВКонтакте из открытой децентрализованной сети Matrix

Бот не требует наличия собственного Matrix-сервера, он работает с правами обычного пользователя, поэтому им можно пользоваться на любом Matrix-сервере.

На данный момент ВКонтакте блокирует доступ к API сообщений пользователя для большинства вновь созданных приложений. Как обходное решение предлагается использовать идентификатор любого другого старого приложения, которому выдали доступ к сообщениям пользователей. Например по ссылке python273/vk_api#219 можно найти APP_ID от приложения Kate Mobile, которому ВК уже предоставил доступ к сообщениям. Если у вас есть приложение с доступом к сообщениям, то можете указать свой идентификатор.

Принцип работы бота:

  1. Пользователь начинает диалог в Матрице с ботом (создаёт прямой чат с ботом), и производит автризацию приложения в ВК для доступа к сообщениям.
  2. При поступлении пользователю новых сообщений в ВК - бот создаёт новую комнату, приглашает туда пользователя и переименовывает эту комнату по названию диалога в ВК, и дублирует туда все сообщения из чата ВКонтакте.
  3. Пользователь может попросить бота вывести список всех диалогов в ВК и открыть нужный диалог в Матрице, используя команды в комнате управления ботом.
  4. Если диалог - групповой чат, то бот к каждой реплике в комнате группового чата добавляет префиксом ФИО отправителя.

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

  1. Заводим учётную запись для бота в Матрице, как для обычного пользователя на каком-либо сервере матрицы (вида @botvk:matrix.org)
  2. Скачиваем себе бота: git clone https://github.com/progserega/MatrixVkBot.git
  3. Ставим зависимости: apt-get install python3-dev python3-pip; pip3 install matrix_client Pillow ujson setuptools vk
  4. Копируем файл конфигурации из примера: cp config.py.example config.py
  5. Указываем в файле конфигурации config.py логин-пароль от учётной записи бота, созданной в пункте 1, а так же app-id (см. начало описание бота).
  6. Запускаем бота: ./bot.py
  7. Создаём новый чат с ботом, он должен принять приглашение автоматически.
  8. Пишем в чате ему команду: !login, бот вышлет ссылку для предоставления доступа приложению, app id которого указан в файле config.py, к вашим диалогам и сообщениям.
  9. Нужно согласиться на предоставление доступа, и произойдёт редирект на страничку с предупреждающим текстом " Пожалуйста, не копируйте данные из адресной строки для сторонних сайтов. Таким образом Вы можете потерять доступ к Вашему аккаунту."
  10. Нужно скопировать url-адрес страницы с этим сообщением (именно url, а не текст страницы) и отправить эту ссылку боту.
  11. После этого, если всё пройдёт удачно - бот сообщит, что вы вошли под "Ваше ФИО", и начнёт пересылку сообщений.

Дальнейшая работа бота:

  1. Новые сообщения в диалогах из ВК будут приниматься ботом и отправляться во вновь созданные комнтаты в Матрице с именем диалога в ВК
  2. Для того, чтобы отправить сообщение в диалог в ВК, нужно передать боту команду: !dialogs - бот выведет список диалогов и их порядковые номера.
  3. Необходимо в ответном сообщении боту отправить номер нужного диалога, бот создаст новую комнату (если её нет для этого диалога) и пригласит туда пользователя.
  4. Если пользователь покинет комнату, созданную ботом, то бот отметит это у себя и в случае, если в этот диалог (ВК-шный) придёт новое сообщение из ВК, то бот заново создаст комнату и пригласит заново туда пользователя.

Недоработки:

  • Пока не реализована команда !logout

Реализовано:

ВК->MATRIX:

  1. видео
  2. картинки
  3. перенаправленные сообщения
  4. местоположение
  5. музыка
  6. голосовые сообщения
  7. текстовые сообщения
  8. пересылаемые записи на стене
  9. сообщения о входе и выходе в/из комнаты, кике и приглашении участников
  10. привязка сообщений в вк для ответа
  11. Внешние файлы

MATRIX->VK:

  1. текстовые сообщения
  2. изображения
  3. обычные файлы
  4. видео
  5. ответ на сообщение в матрикс отвечает на него в вк

About

Bridge-bot for send and recieve VK.com messages in matrix (matrix.org).

License:Other


Languages

Language:Python 99.7%Language:Shell 0.3%