В преддверии закрытия мессенджера ICQ (которое запланировано на 26 июня) немногочисленные оставшиеся пользователи задаются вопросом как скачать и сохранить историю переписок. Официальный клиент ICQ позволяет лишь вручную скопировать сообщения в текстовый редактор:
Запускаем клиент ICQ на компьютере и открываем необходимый чат. Щёлкаем правой кнопкой мыши по последнему сообщению → «Выбрать». После того как выбрано первое сообщение, нажимаем и удерживаем клавишу Shift, и одновременно с этим нажимаем и удерживаем клавишу Вверх. Держим до тех пор, пока не выделятся все сообщения чата. Нажимаем «Копировать». Вставляем содержимое в текстовый редактор и сохраняем.
Очевидные неудобства:
История может быть длинной. Очень длинной. Например, моя переписка с одним контактом насчитывает почти сто тысяч сообщений.
Каждый файл, каждое изображение придётся сохранять вручную.
На помощь приходит мультипротокольный мессенджер Миранда.
Загрузка истории с сервера
Забираем портативный дистрибутив («Архив 7-zip») с сайта программы. Можно брать стабильную версию (версия в разработке предназначена для пользователей желающих обмазаться самым горячим, ещё дымящимся… кодом. Для наших целей это не нужно). Распаковываем и запускаем.
Создаём профиль — это каталог, где будет храниться база (файл, в котором содержатся настройки программы, контакты, история) и вспомогательные файлы (кэши, резервные копии, отчёты о падениях).
Появляется список контактов (пока пустой) и предложение добавить учётные записи мессенджеров и соцсетей.
Нажимаем
+
, выбираем протокол и придумываем имя учётной записи.
Выбираем созданную учётную запись, вводим UIN и пароль. Если к UIN привязан номер телефона, то можно войти и по SMS.
Нажимаем
OK
и переходим в главное окно программы, оно же список контактов.💡Рекомендую сразу перейти в настройки и в разделе Events → File transfers, во-первых, поменять каталог входящих файлов на
%miranda_userdata%\Incoming\%userid%\
, во-вторых, снять ограничение на размер скачиваемых файлов, выставив настройке «Only if their size is less than» значение0
. Тем самым, при загрузке истории все файлы, независимо от размера, будут скачаны и с разбивкой по контактно помещены в подкаталогIncoming
, находящийся в профиле.💡Кроме того, стоит установить просмотрщик истории NewStory (Главное меню → Available components list) и затем в настройках программы назначить его журналом сообщений (Message sessions → Log Viewer). Это пригодится чуть позже.
💡А если вы хотите видеть и загружать стикеры, то установите плагин SmileyAdd.
Нажимаем цветочек аськи в нижней части окна и переводим протокол в онлайн. Вот и контакты подтянулись (если с подключением возникли проблемы, см. раздел ЧАВО в конце статьи). Все давно офлайн, многие удалены из-за отсутствия активности.
Нажимаем правой кнопкой на контакт и выбираем «Load server history». Начнётся загрузка истории переписки с этим контактом. Если история большая, это займёт минуты и даже десятки минут. Например, с одним контактом за 5 лет мы натрындели почти сто тысяч сообщений.
Контролировать процесс (чтобы понять, что история скачалась и пора переходить к следующему контакту) можно двумя способами:
Выбрав в меню контакта (щелчок правой кнопкой мыши по контакту) пункт History, Это рекомендуемый вариант.
Двойным щелчком по контакту открыть приват с ним. Вы увидите бешено всасываемый с сервера поток истории, а окно может заметно подвиснуть. И даже упасть, утянув с собой всю Миранду. Ничего не поделаешь: кодовая база в следующем году отметит 25-летие, над программой работали за это время сотни человек, большая часть которых была отнюдь не профессиональными, но вчерашними школьниками и студентами, а слов типа «юнит-тесты» и "автоматизированное тестирование" Миранда никогда не знала. Лучшее тестирование — это тестирование на пользователях. В общем, не открывайте приват с контактом, пока туда всасывается история, вас предупредили.
Вся история сохраняется в базе (файл .dat в папке профиля), а файлы — в каталог, указанный на шаге 5. Да, файл и событие (сообщение), содержащее этот файл, хранятся в разных местах. Придётся понять и простить, так исторически сложилось. Кроме того, хранение файлов в базе привело бы к значительному увеличению её размера и захламлению (представьте какой-нибудь канал с мемасиками в Telegram, изображения из которого стремительным домкратом ежедневно льются в базу).
Когда история контакта загрузилась, повторяем загрузку для следующего контакта. И так далее.
PROFIT! История загружена. Теперь с ней можно делать всякое.
Интересный факт: Миранда позволяет выкачать более старую историю, которую официальный клиент даже не видит. Например, в моей практике официальный клиент видел историю, начиная с 2017 года, а Миранда позволила забраться глубже в прошлое — вплоть до 2015.
Просмотр истории в Миранде
Выбираем в меню контакта пункт History. Если вы послушались совета и установили NewStory, то увидите такое окно:
Здесь можно искать в истории, копировать текст, есть дерево дат, поддержка закладок, предпросмотр изображений и экспорт истории в формат JSON. Есть даже фильтры, но они не работают ¯\_(ツ)_/¯
Экспорт истории в текстовый формат
Устанавливаем плагин Msg_Export. Переходим в Настройки → History → Message export. Здесь можно выбрать формат, путь (по умолчанию папка профиля\MsgExport\
) и контакты для экспорта (щелчок правой кнопкой мыши по выделенным контактам → Export).
💡Если нужен формат JSON, лучше воспользоваться плагином NewStory. Плагин Msg_Export очень старый и странный, а поддержка JSON к нему была прикручена лишь несколько лет назад. В NewStory поддержка экспорта в JSON реализована гораздо лучше.
Другие варианты
Поскольку база (.dat) представляет собой обычную базу SQLite, можете использовать сторонние утилиты для работы с SQLite. Тысячи их.
ЧАВО
Пароль не подходит. А я ведь точно-точно его помню!
Во-первых, убедитесь, что ваша учётная запись не удалена. Пройдите по ссылке https://icq.im/вашUIN
— если вместо имени видите [deleted]
, то учётную запись удалили из-за неактивности. Восстановить её невозможно.
Во-вторых, попробуйте ввести в Миранде не весь пароль, а лишь первые 8 символов. Дело в том, что все годы до перехода под крыло Mail.ru, максимальная длина пароля была именно такой. Если пользователь вводил более длинный пароль, то все официальные и сторонние клиенты молча урезали его до 8 символов. Сейчас это ограничение снято и Миранда отправляет на сервер пароль целиком. Но если вы не меняли его с древних времён, то сервер ожидает получить 8 символов.
Всё это слишком сложно, а у меня лапки. Можно ли как-то попроще?
Устанавливаем в браузер расширение ICQ Backup 2024, написанное хабраюзером @minch-dev. Логинимся на web.icq.com. Выбираем чат, нажимаем «Собрать историю чата». Когда закончится прокрутка чата, собранную историю можно сохранить в форматах MHTML и JSON. Файлы из чатов автоматически скачиваются в подкаталоги с разбивкой по чатам.