Как преобразовать файлы транскриптов iChat, которые создает Messages, в удобочитаемые текстовые файлы, которые можно открыть без приложения Messages?
Для справки, это файлы разговоров, расположенные в ~/Library/Messages/Archive
.
Простое открытие файлов .ichat в текстовом редакторе включает в себя кучу дополнительных строк и хэшей. Открытие их в сообщениях и копирование и вставка в текстовый редактор работают, но я бы предпочел автоматизировать процесс, если это возможно.
Файлы, которые сохраняет Messages, имеют ichat
расширение файла.
Но из командной строки вы можете проверить их, чтобы увидеть, что они на самом деле являются двоичными файлами plist :
$ file transcript.ichat
transcript.ichat: Apple binary property list
Оказывается, вы можете легко преобразовать двоичные файлы plist в удобочитаемые XML-документы :
$ plutil -convert xml1 transcript.ichat
Теперь, когда вы file
снова запустите, вы увидите, что это файл XML:
$ file transcript.ichat
transcript.ichat: XML document text
Давай, открой и увидишь сам:
$ open transcript.ichat
Если вы знакомы с sqlite, вы можете просто экспортировать сообщения прямо из базы данных в Mountain Lion iMessage.
sqlite3 /Users/(username)/Library/Messages/chat.db
Из базы данных вы можете отправлять команды sql для получения любых сообщений и связанных полей, которые вас интересуют. Кроме того, вы можете изменить настройки вывода для записи непосредственно в файл.
Также помимо базы все фотографии хранятся в папке «Вложения».
Посмотрите мой проект, который соберет все ваши разговоры и преобразует их в один читаемый текстовый файл. Он не будет конвертировать только одно сообщение iMessage, но соберет все ваши сообщения и вложения, создаст их резервные копии и поместит в удобочитаемый формат.
Я создал инструмент командной строки для преобразования этих файлов ichat в JSON, разделенные новой строкой.
Инструмент извлекает самую необходимую информацию: сообщение, отправитель, дату.
Вы можете просмотреть исходный код и/или загрузить двоичный файл по адресу https://github.com/kfatehi/ichat2json .
Если вы выберете печать из меню файлов, когда окно печати откроется, в левом нижнем углу будет кнопка PDF с раскрывающимся списком. Отсюда вы можете сохранить в формате pdf, опубликовать сценарий, отправить по почте в формате pdf или отправить в iTunes.
Для тех, у кого есть папки, полные файлов .ichat, независимо от того, являются ли они частью ~/Library/Messages, мой проект мгновенно конвертирует их в RTF или обычный текстовый формат: https://github.com/Amethyst . -Software/convert-ichat-files (предоставляется готовый бинарный файл). Основные сообщения, а также сообщения о передаче файлов (не самих файлов) и события клиента чата переводятся в текст. Также поддерживаются групповые чаты.
Для этого я создал приложение под названием «Past for iChat» (откройте журналы iChats/Chat в macOS 11+ и экспортируйте их в различные форматы): https://zeezide.de/en/products/past/
Это не идеальное решение, но я заметил, что сообщения всегда между Ä_
и _$
. Вы можете написать скрипт для извлечения всего текста, который начинается и заканчивается этими символами. (подойдет любой язык с поддержкой rexex)
Это похоже на идеальное применение рабочих процессов Automator или AppleScript, поскольку оба они могут выполнять поведение в стиле «нажимать кнопки на экране». Вы бы сказали «взять файл в качестве входных данных» и использовать что-то в разделе «печать» или «сообщения», если они есть, или использовать AppleScript, чтобы сказать ему открыть файл и нажать файл, распечатать и сохранить как pdf, а затем закрыть файл.
Шон Моубри
.ichat
файлы) не являются базами данных SQLite.