Jak przekonwertować dzienniki .ichat na pliki tekstowe?

22

Jak przekonwertować pliki transkrypcji iChat tworzone przez program Messages na czytelne dla ludzi pliki tekstowe, które można otworzyć bez aplikacji Messages?

Dla porównania są to pliki konwersacji znajdujące się w ~/Library/Messages/Archive.

Po prostu otwarcie plików .ichat w edytorze tekstów zawiera kilka dodatkowych ciągów i skrótów. Otwieranie ich w Wiadomościach i wklejanie do edytora tekstu działa, ale wolę zautomatyzować ten proces, jeśli to możliwe.

mae
źródło

Odpowiedzi:

12

Pliki zapisywane przez Wiadomości mają ichatrozszerzenie pliku.

Ale z wiersza poleceń możesz je sprawdzić, aby zobaczyć, czy są to w rzeczywistości binarne pliki plist :

$ file transcript.ichat
transcript.ichat: Apple binary property list

Okazuje się, że możesz łatwo konwertować binarne pliki plist na czytelne dla człowieka dokumenty XML :

$ plutil -convert xml1 transcript.ichat

Teraz, gdy uruchomisz fileponownie, zobaczysz, że jest to plik XML:

$ file transcript.ichat
transcript.ichat: XML document text

Śmiało - otwórz i przekonaj się sam:

$ open transcript.ichat
Sean Moubry
źródło
8

Jeśli znasz sqlite, możesz po prostu wyeksportować wiadomości bezpośrednio z bazy danych w Mountain Lion iMessage.

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

Z bazy danych możesz wysyłać polecenia sql, aby uzyskać wszystkie wiadomości i powiązane pola, które Cię interesują. Ponadto możesz zmienić ustawienia wyjściowe, aby zapisywać bezpośrednio do pliku.

Oprócz bazy danych wszystkie zdjęcia są przechowywane w folderze Załączniki.

Kane Crisler
źródło
3
Transkrypty ( .ichatpliki) iChat nie są bazami danych SQLite.
Sean Moubry
7

Sprawdź mój projekt, który weźmie wszystkie twoje konwersacje i skonwertuje je do jednego czytelnego pliku tekstowego. Nie konwertuje tylko jednego iMessage, ale zbiera wszystkie wiadomości i załączniki, tworzy ich kopie zapasowe i umieszcza je w formacie czytelnym dla człowieka.

https://peterkaminski09.github.io/baskup

Piotr Kamiński
źródło
2
Czy to działa z plikami dziennika iChat?
nohillside
Wykorzystuje pliki dziennika iChat znalezione w pliku ./Library/Messages/chat.db do konwersji na plik tekstowy.
Peter Kamiński
Działa mi to dobrze, dzięki! Zauważyłem, że może pomijać początek historii wiadomości, jeśli masz BARDZO długie rozmowy (chyba że zostaną na zawsze utracone, jeśli iMessage nie zachowa wszystkich wiadomości, tak jak myślałem). Niemniej jednak praca została wykonana!
Billy Bryce,
Myślę, że głównym problemem, który zauważyłem, jest to, że po otwarciu komputera MacBook po wysłaniu wielu wiadomości na telefon występuje opóźnienie między iMessage na komputerze Mac i telefonie, co powoduje odcięcie wiadomości.
Peter Kamiński
Wygląda to bardzo przydatnie, ale czy istnieje sposób na usunięcie starszych wiadomości po ich wyeksportowaniu / zarchiwizowaniu / cokolwiek?
Paul R
1

Stworzyłem narzędzie wiersza polecenia do konwersji tych plików ichat do JSON-u oddzielonego znakiem nowej linii

Narzędzie wyodrębnia podstawowe informacje: wiadomość, nadawcę, datę

Możesz zobaczyć kod źródłowy i / lub pobrać plik binarny na https://github.com/kfatehi/ichat2json

keyvan
źródło
0

Jeśli wybierzesz druk z menu pliku, po otwarciu okna drukowania w lewym dolnym rogu pojawi się przycisk pdf z rozwijaną listą. Stąd możesz zapisać jako pdf, wysłać skrypt, wysłać pocztą jako pdf lub wysłać do iTunes.

rclyde
źródło
-1

To nie byłoby idealne rozwiązanie, ale zauważam, że wiadomości są zawsze pomiędzy Ä_i _$. Możesz napisać skrypt, aby wyodrębnić cały tekst, który zaczynał się i kończył tymi znakami. (zrobiłby to każdy język z obsługą rexex)

daviewales
źródło
-1

Wydaje się, że jest to idealna aplikacja dla przepływów pracy Automatora lub AppleScript, ponieważ oba z nich mogą zachowywać się w stylu „naciskaj przyciski na ekranie”. Można powiedzieć „weź plik jako dane wejściowe” i użyj czegoś pod „drukuj” lub „wiadomości”, jeśli istnieje którykolwiek z nich, lub użyj AppleScript, aby powiedzieć, aby otworzył plik, naciśnij plik i wydrukuj i zapisz jako pdf, a następnie zamknij plik.

Andrew Wonnacott
źródło
Czy możesz podać lepszy opis swojej odpowiedzi? To sugestywne, ale nie pokazuje żadnej konkretnej odpowiedzi dla użytkownika z krokami.
Danijel-James W