Tengo una larga conversación de iMessage (varios meses) con un contacto. Perdió estos mensajes cuando reinstaló su sistema operativo, pero todavía tengo el archivo. Allí hay información importante que nos gustaría conservar.
¿Existe una forma sencilla de exportar esta conversación para archivarla en un formato legible por humanos y también conservar las imágenes?
Puedo seleccionar partes de la conversación, copiarlas en el portapapeles y pegarlas en un documento de texto enriquecido, pero esto descarta todas las imágenes. Estoy buscando una manera que mantiene las imágenes.
Nota: solo uso iMessage en OS X, no en iOS.
(Idealmente, también me gustaría exportar todos los archivos adjuntos que no sean imágenes, pero no espero que esto sea posible).
Si conoce la cuenta de iMessage de su contacto, aquí hay un script bash mío para recuperar texto e imágenes.
#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 .
Me tomé la libertad de promover la respuesta anterior de Matthieu. Escribí un script que automatizaría el proceso haciendo una copia de seguridad de todos los mensajes del usuario, incluidas imágenes, archivos de audio y películas, almacenando cada conversación en un archivo de texto por número de teléfono.
https://github.com/PeterKaminski09/baskup
Editar: Desarrollé el script en una aplicación OS X con algunas características interesantes como el reconocimiento de contactos. https://peterkaminski09.github.io/baskup
Encontré una solución viable:
El resultado no se ve muy bien , pero contiene todas las imágenes y el texto se puede buscar. Así que es lo suficientemente bueno.
Esta persona parece tener una solución más pulida (sin faltarle el respeto al extremadamente útil raspador de SQLite anterior):
http://www.chrisfinke.com/2013/11/05/convert-ichat-transcripts-to-useable-xml/
Para resumir el blog:
Las transcripciones de Adium se generan a partir de sus registros y se almacenan en:
~/Biblioteca/Soporte de aplicaciones/Adium 2.0/Usuarios/Predeterminado/Registros/
Los archivos convertidos están en HTML, más fáciles de leer y, con suerte, más fáciles de archivar, pero el sqlite
enfoque de vinculación de archivos adjuntos parece sensato.
Tenga en cuenta que los archivos adjuntos de iMessage tienden a vivir en:
~/Library/Containers/com.apple.iChat/Data/Library/Messages/Attachments/...
(No conozco las reglas de lo que entra y lo que no, por lo que puede que no esté completo, pero hay una buena cantidad allí)
Pero en realidad puedes ver alguna información sobre el contacto y la conversación en los atributos extendidos del archivo:
$ xattr -lp com.apple.metadata:kMDItemWhereFroms <attachment>
imprimirá un origen si Mensajes puso uno allí en la descarga.
Tu mac debería guardarlos automáticamente. Aquí hay instrucciones sobre cómo extraerlos:
http://www.imore.com/how-view-and-move-your-imessage-history-and-attachments
La aplicación Exportar iMessages le permite guardar, imprimir, respaldar y recuperar SMS/iMessages en su Mac/PC.
Matthieu Riegler
Szabolcs
sin ladera
Szabolcs