Это модуль для построения соответствия между участниками беседы vk и контактами Telegram.
Когда Telegram импортирует из другого приложения чат, он видит только имена авторов сообщений и не знает, какие пользователи Telegram за ними скрываются. Возможно, что у некоторых авторов нет даже аккаунта в нём.
Чтобы решить эту проблему, Telegram использует список ваших контактов. Идея заключается в том, что если пользователь общается с собеседником в условном WhatsApp и хочет перенести беседу в Telegram, то собеседник, скорее всего, есть у пользователя в записной книжке телефона. А значит, он импортировался и в WhatsApp, и в Telegram, причём под одним и тем же именем.
Таким образом, чтобы Telegram правильно идентифицировал авторов сообщений, необходимо, чтобы имена этих собеседников были среди контактов пользователя. Однако опытным путём выяснилось, что это не является достаточным условием. Видимо, есть ещё какие-то факторы, влияющие на успешность сопоставления, например, настройки приватности собеседника. Или краевые случаи вроде тех, когда среди контактов есть два разных пользователя с одним и тем же именем. Но в большинстве случаев простого нахождения в списке контактов достаточно.
Выполните команду:
$ ./main.py contacts prepare
Эта утилита прочтёт файл с экспортированными из vk сообщениями и создаст файл contacts_mapping.yaml
.
В файле для каждого собеседника содержатся строки вида:
- 87654321: # id пользователя в vk
- vk_name: Павел Дуров # имя пользователя в vk
- tg_name: null # имя контакта в Telegram. Его предстоит заполнить вручную
- Откройте файл
contacts_mapping.yaml
- Для каждого пользователя заполните поле
tg_name
- Поле уже заполнено, если имя пользователя vk в точности совпадает с одним из контактов Telegram
- Замените
null
на имя контакта в Telegram- Утилита
./main.py contacts list
выведет имена ваших контактов
- Утилита
- Замените
null
на пустую строку""
, если пользователя нет в Telegram- В качестве
tg_name
будет использоватьсяvk_name
- Утилита
./main.py contacts check
не будет проверять этот контакт
- В качестве
- При необходимости измените
vk_name
- Это имя используется для генерации служебных сообщений, реплаев и пересылаемых сообщений
Выполните команду:
$ ./main.py contacts check
Она проверит, что каждое указанное tg_name
содержится в списке контактов.
Если это не так, она выведет список пользователей с ошибками.
Успешное прохождение этой проверки не гарантирует, что Telegram правильно идентифицирует пользователей.
Успешное прохождение этой проверки необязательно, даже без него Приложение отработает корректно. Но в этом случае Telegram может неправильно идентифицировать некоторых собеседников.
$ ./main.py contacts prepare
--input PATH Путь до файла с экспортированными из vk сообщениями
--output PATH Путь до файла, в который будут сохранены контакты
$ ./main.py contacts list
Нет опций
$ ./main.py contacts check
--input PATH Путь до файла с сохранёнными контактами