ฉันจะแปลงไฟล์. inat เป็นไฟล์ข้อความได้อย่างไร


22

คุณแปลงไฟล์การถอดเสียง iChat ที่ Messages สร้างเป็นไฟล์ข้อความที่มนุษย์สามารถอ่านได้ซึ่งสามารถเปิดได้โดยไม่ต้องมีแอพ Messages

~/Library/Messages/Archiveสำหรับการอ้างอิงเหล่านี้เป็นไฟล์สนทนาอยู่ใน

เพียงแค่เปิดไฟล์. atat ในเท็กซ์เอดิเตอร์จะมีสตริงและแฮชเพิ่มเติมจำนวนมาก เปิดในข้อความและคัดลอกวางลงในโปรแกรมแก้ไขข้อความ แต่ฉันต้องการที่จะทำให้กระบวนการอัตโนมัติถ้าเป็นไปได้

คำตอบ:


12

ไฟล์ที่ 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

8

หากคุณคุ้นเคยกับ sqlite คุณสามารถส่งออกข้อความได้โดยตรงจากฐานข้อมูลบน Mountain Lion iMessage

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

จากฐานข้อมูลคุณสามารถส่งคำสั่ง sql เพื่อรับข้อความใด ๆ และทั้งหมดและสาขาที่เกี่ยวข้องที่คุณสนใจ นอกจากนี้คุณสามารถเปลี่ยนการตั้งค่าเอาต์พุตเพื่อเขียนไปยังไฟล์ได้โดยตรง

นอกจากนี้นอกเหนือจากฐานข้อมูลแล้วรูปภาพทั้งหมดจะถูกเก็บไว้ในโฟลเดอร์สิ่งที่แนบมาด้วย


3
การถอดเสียง iChat ( .ichatไฟล์) ไม่ใช่ฐานข้อมูล SQLite
Sean Moubry

7

ลองดูโปรเจคของฉันที่จะทำการสนทนาทั้งหมดของคุณและแปลงให้เป็นไฟล์ข้อความที่สามารถอ่านได้หนึ่งไฟล์ มันจะไม่แปลงเป็น iMessage เพียงอันเดียว แต่มันจะเก็บรวบรวมข้อความและไฟล์แนบทั้งหมดสำรองและนำมาทำเป็นรูปแบบที่มนุษย์อ่านได้

https://peterkaminski09.github.io/baskup


2
ใช้ได้กับไฟล์บันทึก iChat หรือไม่
nohillside

มันใช้ไฟล์บันทึก iChat ของคุณที่พบใน. / ห้องสมุด / ข้อความ / chat.db ของคุณเพื่อแปลงเป็นไฟล์ข้อความ
Peter Kaminski

มันใช้งานได้ดีสำหรับฉันขอบคุณ! ฉันสังเกตเห็นว่ามันสามารถข้ามจุดเริ่มต้นของประวัติศาสตร์ข้อความแม้ว่าคุณจะมีการสนทนาที่ยาวมาก (เว้นแต่พวกเขาจะหายไปตลอดกาลหาก iMessage ไม่เก็บข้อความทั้งหมดเหมือนที่ฉันคิด) อย่างไรก็ตามก็ยังทำงานได้สำเร็จ!
Billy Bryce

ฉันคิดว่าปัญหาหลักที่ฉันสังเกตเห็นคือเมื่อคุณเปิด macbook หลังจากที่ได้ส่งข้อความจำนวนมากบนโทรศัพท์ของคุณมีการหน่วงเวลาระหว่าง iMessage บน mac และโทรศัพท์และสิ่งนี้ทำให้ข้อความถูกตัดออก
Peter Kaminski

สิ่งนี้มีประโยชน์มาก แต่มีวิธีการลบข้อความเก่าเมื่อส่งออก / เก็บถาวร / อะไรก็ตาม
พอลอา

1

ฉันได้สร้างเครื่องมือบรรทัดคำสั่งสำหรับการแปลงไฟล์ ichat เหล่านี้เป็น JSON ที่คั่นด้วยการขึ้นบรรทัดใหม่

เครื่องมือจะแยกข้อมูลสำคัญเปล่า: ข้อความ, ผู้ส่ง, วันที่

คุณสามารถดูซอร์สโค้ดและ / หรือดาวน์โหลดไบนารี่ได้ที่https://github.com/kfatehi/ichat2json


0

หากคุณเลือกพิมพ์จากเมนูไฟล์เมื่อกล่องพิมพ์เปิดขึ้นที่ด้านซ้ายล่างจะเป็นปุ่ม pdf ที่มีดรอปดาวน์ จากที่นี่คุณสามารถบันทึกเป็น pdf, โพสต์สคริปต์, ส่งเมลเป็น pdf หรือส่งไปยัง iTunes


-1

นี่ไม่ใช่วิธีที่สมบูรณ์แบบ แต่ฉันสังเกตว่าข้อความอยู่ระหว่างÄ_และ_$ตลอดเวลา คุณสามารถเขียนสคริปต์เพื่อแยกข้อความทั้งหมดที่เริ่มต้นและสิ้นสุดด้วยอักขระเหล่านั้น (ภาษาใดก็ได้ที่มีการสนับสนุน rexex)


-1

ดูเหมือนว่าจะเป็นแอพพลิเคชั่นที่สมบูรณ์แบบของเวิร์กโฟลว์ Automator หรือ AppleScript เนื่องจากทั้งคู่สามารถทำพฤติกรรมสไตล์ "กดปุ่มบนหน้าจอ" ได้ คุณจะพูดว่า "ใช้ไฟล์เป็นอินพุต" และใช้บางสิ่งภายใต้ "พิมพ์" หรือ "ข้อความ" หากมีสิ่งใดสิ่งหนึ่งหรือใช้ AppleScript เพื่อบอกให้เปิดไฟล์แล้วกดไฟล์แล้วพิมพ์และบันทึกเป็น pdf จากนั้น ปิดไฟล์


คุณช่วยอธิบายคำตอบของคุณให้ดีขึ้นได้ไหม นั่นเป็นการชี้นำ แต่ไม่แสดงคำตอบเฉพาะสำหรับผู้ใช้ที่มีขั้นตอน
Danijel-James W
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.