Экспорт iMessages в удобочитаемой для человека форме для архивирования

33

У меня долгий (на несколько месяцев) разговор с сообщением iMessage. Он потерял эти сообщения, когда переустановил свою ОС, но у меня все еще есть архив. Там есть важная информация, которую мы хотели бы сохранить.

Есть ли простой способ экспортировать этот разговор для архивирования в удобочитаемом виде, а также сохранить какие-либо изображения?

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

Примечание: я использую iMessage только на OS X, а не на iOS.

(В идеале я также хотел бы экспортировать все вложения, не относящиеся к файлам изображений, но я не ожидаю, что это будет возможно.)

Сабольч
источник
1
Вы хотите сохранить их с iDevice или Mac?
Матье Риглер,
@MatthieuRiegler Mac. Я не использую iMessage на iOS, поэтому я не думал об этой возможности. Я обновлю вопрос.
Сабольч
1
Помогает ли apple.stackexchange.com/questions/88023/… или вы ищете что-то еще?
nohillside
@patrix Я ищу способ получить сообщения из iMessage, чтобы я мог просматривать их, даже если перестану использовать OS X. Я понимаю, что было ошибкой отвечать на iMessage, чтобы сохранить важную информацию, поэтому я хочу переместить от него полностью и, надеюсь, спасет чат на будущее.
Сабольч

Ответы:

20

Если вам известна учетная запись iMessage вашего контакта, вот мой bash-скрипт для получения текста + изображений.

#Parameter is a iMessage account (email or phone number i.e. +33616.... )
if [ $# -lt 1 ]; then
    echo "Enter a iMessage account (email of phone number i.e +33616.....) "
fi
login=$1

#Retrieve the text messages 

sqlite3 ~/Library/Messages/chat.db "
select is_from_me,text from message where handle_id=(
select handle_id from chat_handle_join where chat_id=(
select ROWID from chat where guid='iMessage;-;$1')
)" | sed 's/1\|/me: /g;s/0\|/budy: /g' > MessageBackup.txt


#Retrieve the attached stored in the local cache

sqlite3 ~/Library/Messages/chat.db "
select filename from attachment where rowid in (
select attachment_id from message_attachment_join where message_id in (
select rowid from message where cache_has_attachments=1 and handle_id=(
select handle_id from chat_handle_join where chat_id=(
select ROWID from chat where guid='iMessage;-;$1')
)))" | cut -c 2- | awk -v home=$HOME '{print home $0}' | tr '\n' '\0' | xargs -0 -t -I fname cp fname .
Матье Риглер
источник
Спасибо, это полезно. Это не даст мне изображения, хотя ...
Szabolcs
Я буду копать еще немного, чтобы найти их;)
Матье Риглер
Благодарность! Я только что нашел решение, которое на данный момент достаточно хорошо, поэтому, пожалуйста, не тратьте на это больше времени.
Сабольч
привет, как запустить этот скрипт
Atmiya_Dharmesh
12

Я позволил себе ответить на этот вопрос Матье. Я написал сценарий, который автоматизировал бы процесс путем резервного копирования всех сообщений пользователя, включая изображения, аудиофайлы и фильмы, - сохраняя каждый разговор в текстовом файле по номеру телефона.

https://github.com/PeterKaminski09/baskup

Изменить: я разработал сценарий в приложение OS X с некоторыми приятными функциями, такими как распознавание контактов. https://peterkaminski09.github.io/baskup

Питер Камински
источник
Что делать, если у контакта нет номера телефона?
Сабольч
2
Я получаю всю контактную информацию из таблицы чата в ./Library/Messages/chat.db. Это не относится к телефонным номерам пользователей. Просто их идентификатор, который связан с их сообщениями. В большинстве случаев это фактически номер телефона.
Питер Камински
Я использовал это. Это сработало. Это было единственное решение, которое я нашел, которое не стоило денег. Спасибо!
Эрик Аллен,
Я использовал это. Это сработало. Очень хорошо, я должен добавить. +1, потому что это все, что я могу дать за один ответ.
Симус
11

Я нашел работоспособное решение:

  1. Прокрутите вверх, пока все сообщения не будут загружены
  2. Распечатать в PDF
  3. (Если у вас есть Acrobat,) обрежьте поля на страницах, чтобы улучшить читаемость сообщений с разбивкой по страницам.

Результат выглядит не очень хорошо , но он содержит все изображения и текст для поиска. Так что это достаточно хорошо.

Сабольч
источник
4
Что если в разговоре 25 000 сообщений, а прокрутка вверх невозможна?
Пользователь
Это займет немного времени, но я думаю, что это решение хорошо для многих случаев использования.
Цитадельград
6

Архивирование

У этого человека, кажется, есть более утонченное решение (без уважительного отношения к крайне полезному скребку SQLite выше):

http://www.chrisfinke.com/2013/11/05/convert-ichat-transcripts-to-useable-xml/

Подводя итог блога:

  • установить Adium
  • выберите опцию «импорт из iChat»
  • Стенограммы Adium генерируются из ваших журналов и хранятся в:

    ~ / Библиотека / Поддержка приложений / Adium 2.0 / Пользователи / По умолчанию / Журналы /

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

Вложения

Обратите внимание, что вложения iMessage, как правило, живут в:

~/Library/Containers/com.apple.iChat/Data/Library/Messages/Attachments/...

(Я не знаю правил для того, что там происходит, а что нет, так что это может быть не полным - но там немало)

Но на самом деле вы можете увидеть некоторую информацию о контакте и беседе в расширенных атрибутах файла:

$ xattr -lp com.apple.metadata:kMDItemWhereFroms <attachment>

Напечатает происхождение, если сообщения помещают его туда при загрузке.

Гра
источник
1
Да, @Szabolcs, я видел комментарий «Пожалуйста, не тратьте больше времени на это», но мне пришлось немного покопаться, поэтому я решил поделиться, если он пригодится кому-то еще.
Гра
0

Ваш Mac должен автоматически сохранить их. Вот инструкции о том, как их извлечь:

http://www.imore.com/how-view-and-move-your-imessage-history-and-attachments

Эйден
источник
1
Добро пожаловать, чтобы спросить другого! Пожалуйста, не давайте только ссылки. Мы ищем ответы, которые объясняют, почему он отвечает на вопрос. Ссылки могут со временем меняться, и тогда мы потеряем контекст вопроса-ответа. См. Как ответить для получения информации о том, что составляет хороший ответ. - Из Обзора -
ФСБ
-1

Приложение Export iMessages позволяет сохранять, распечатывать, создавать резервные копии и восстанавливать SMS / iMessages на вашем Mac / ПК.

iDeviceapps
источник
1
Это на самом деле не отвечает на вопрос, поскольку я прямо сказал, что использую iMessage только в OS X, а не в iOS.
Сабольч