Как я могу преобразовать журналы .ichat в текстовые файлы?

22

Как преобразовать файлы стенограммы iChat, которые создает «Сообщения», в читаемые человеком текстовые файлы, которые можно открыть без приложения «Сообщения»?

Для справки, это файлы бесед, расположенные в ~/Library/Messages/Archive.

Простое открытие файлов .ichat в текстовом редакторе включает в себя множество дополнительных строк и хэшей. Открытие их в сообщениях и копирование в текстовый редактор работает, но я бы предпочел автоматизировать процесс, если это возможно.

Мая
источник

Ответы:

12

Файлы, которые сохраняются в сообщениях, имеют 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
Шон Мубри
источник
8

Если вы знакомы с sqlite, вы можете просто экспортировать сообщения непосредственно из базы данных в Mountain Lion iMessage.

sqlite3 /Users/(username)/Library/Messages/chat.db

Из базы данных вы можете отправлять команды sql для получения любых сообщений и связанных с ними полей, которые вас интересуют. Кроме того, вы можете изменить настройки вывода, чтобы записать непосредственно в файл.

Также, помимо базы данных, все фотографии хранятся в папке «Приложения».

Кейн Крислер
источник
3
стенограммы ( .ichatфайлы) iChat не являются базами данных SQLite.
Шон Мубри
7

Посмотрите на мой проект, который будет принимать все ваши разговоры и конвертировать их в один читаемый текстовый файл. Он не преобразует только одно iMessage, но соберет все ваши сообщения и вложения, создаст их резервные копии и поместит их в удобочитаемый формат.

https://peterkaminski09.github.io/baskup

Питер Камински
источник
2
Работает ли это с файлами журналов iChat?
Nohillside
Он использует файлы журналов iChat, найденные в вашем ./Library/Messages/chat.db, для преобразования в текстовый файл.
Питер Камински
Это хорошо сработало для меня, спасибо! Я заметил, что он может пропустить самое начало истории сообщений, хотя, если у вас есть ОЧЕНЬ длинные беседы (если они не будут потеряны навсегда, если iMessage не сохранит все сообщения, как я думал). Тем не менее все еще сделали свою работу!
Билли Брайс
Я думаю, что главная проблема, которую я заметил, заключается в том, что когда вы открываете свой macbook после отправки множества сообщений на телефон, между iMessage на Mac и телефоном возникает задержка, и это приводит к обрезанию сообщений.
Питер Камински
Это выглядит очень полезным, но есть ли способ удалить старые сообщения после их экспорта / архивирования / что-нибудь еще?
Пол Р
1

Я создал инструмент командной строки для преобразования этих файлов ichat в JSON, разделенный символом новой строки.

Инструмент извлекает необходимую информацию: сообщение, отправитель, дата

Вы можете просмотреть исходный код и / или загрузить двоичный файл по адресу https://github.com/kfatehi/ichat2json.

Keyvan
источник
0

Если вы выбираете печать из файлового меню, когда в левом нижнем левом углу открывается окно печати, появляется кнопка pdf с раскрывающимся списком. Отсюда вы можете сохранить в формате PDF, отправить сценарий, отправить письмо в формате PDF или отправить в iTunes.

rclyde
источник
-1

Это не было бы идеальным решением, но я заметил, что сообщения всегда между Ä_и _$. Вы можете написать скрипт для извлечения всего текста, который начинается и заканчивается этими символами. (любой язык с поддержкой rexex подойдет)

daviewales
источник
-1

Это похоже на идеальное применение рабочих процессов Automator или AppleScript, поскольку оба они могут выполнять стиль поведения «нажатие кнопок на экране». Вы бы сказали «взять файл в качестве входных данных» и использовать что-то под «печать» или «сообщения», если есть какие-либо из них, или использовать AppleScript, чтобы сказать ему, чтобы открыть файл и нажать файл и распечатать и сохранить как PDF, а затем закройте файл.

Эндрю Воннакотт
источник
Не могли бы вы дать лучшее описание вашего ответа. Это наводит на мысль, но не показывает какой-либо конкретный ответ для пользователя с шагами.
Даниэль-Джеймс W