您如何將Messages創建的iChat轉錄文件轉換為可以在不使用Messages應用程序的情況下打開的可讀文本文件?
作為參考,這些是位於的對話文件〜 / Library / Messages / Archive
。
在文本編輯器中簡單地打開.ichat文件會包含許多其他字符串和哈希。在Messages中打開它們並將其複制粘貼到文本編輯器中是可行的,但我希望在可能的情況下使該過程自動化。
您如何將Messages創建的iChat轉錄文件轉換為可以在不使用Messages應用程序的情況下打開的可讀文本文件?
作為參考,這些是位於的對話文件〜 / Library / Messages / Archive
。
在文本編輯器中簡單地打開.ichat文件會包含許多其他字符串和哈希。在Messages中打開它們並將其複制粘貼到文本編輯器中是可行的,但我希望在可能的情況下使該過程自動化。
Messages保存的文件的擴展名為 ichat
。
但是在命令行中,您可以檢查它們是否為二進制 plist文件:
$文件transcript.ichattranscript.ichat:蘋果二進制屬性列表
結果,您可以輕鬆地將二進制plist文件轉換為人類可讀的XML文檔:
$ plutil-現在,當您運行 file con>時,轉換xml1 transcript.ichat
再次,您會看到它是一個XML文件:
$ file transcript.ichattranscript.ichat:XML文檔文本
繼續-打開它並親自看看:
$ open transcript.ichat
如果您熟悉sqlite,則可以直接從Mountain Lion iMessage上的數據庫中導出消息。
sqlite3 / Users /(用戶名)/Library/Messages/chat.db
從數據庫中,您可以發送sql命令以獲取任何和所有您感興趣的消息以及相關的字段。此外,您可以更改輸出設置以直接寫入文件。
此外,除了數據庫之外,所有照片都存儲在Attachments文件夾中。
檢出我的項目,該項目將處理所有對話並將其轉換為一個可讀的文本文件。它不會只轉換一個iMessage,但會收集您所有的消息和附件,將它們備份,並以人類可讀的格式存儲。
我創建了一個命令行工具,用於將這些ichat文件轉換為以換行符分隔的JSON
該工具提取了基本的基本信息:消息,發件人,日期
查看源代碼和/或下載二進製文件。如果從文件菜單中選擇打印,則當打印框在左下方打開時,是帶有下拉菜單的pdf按鈕。在這裡,您可以另存為pdf,發布腳本,以pdf形式發送郵件或發送到iTunes。
對於那些手頭上充滿了.ichat文件的文件夾的人,無論它們是否屬於〜/ Library / Messages,我的項目都會立即將其轉換為RTF或純文本格式: https://github.com/Iritscen/convert-ichat-files(提供了預構建的二進製文件)。基本消息以及文件傳輸消息(不是文件本身)以及聊天客戶端事件都被轉換為文本。也支持群聊。
這不是一個完美的解決方案,但是我注意到消息始終在Ä_
和 _ $
之間。您可以編寫腳本以提取所有以這些字符開頭和結尾的文本。 (任何支持rexex的語言都可以)
這似乎是Automator工作流程或AppleScript的理想應用程序,因為它們都可以執行“按屏幕上的按鈕”樣式行為。您可能會說“將文件作為輸入”,並在“打印”或“消息”下使用某些內容,或者使用AppleScript告訴它打開文件並按文件並打印並另存為pdf,然後關閉文件。