knuspermagier.de
Der privateste Blog von Philipp.

MessageSifter

Letztens beschwerte ich mich ja, dass ich es nicht mehr schaffe, leicht per sqlite3-Befehl meine Nachrichten aus der iMessage-Datenbank zu exportieren. Irgendwann in den letzten Jahren hat Apple anscheinend angefangen, die Nachrichten lieber als NSAttributedString zu speichern, statt im Klartext.

Da ich trotzdem gerne weiterhin diverse Informationen, wie zum Beispiel gesendete Links oder Everdell-Ergebnisse exportieren wollte, musste ich mir also schnell eine Applikation bauen, mit der ich die Datenbank öffnen und die NSAttributedStrings dekodieren kann. Zum Glück konnte mir ChatGPT und das Internet helfen ein paar Zeilen Code zu schreiben, die ich mal bei Github hochgeladen habe, falls jemand ein ähnliches Problem hat.

Einmal kompilieren und dann kann man es wie folgt ausführen:

./MessageSifter "pfad-zur-chat.db" [Anzahl der Nachrichten]

Es werden dann alle Nachrichten, nach Datum abwärts sortiert ausgegeben und können mit grep oder so weiter durchsucht werden.

sifter.png
Ziemlich sinnloses Bild, wenn am alles zensiert!

Wahrscheinlich sollte man den Code aber anpassen, denn aktuell hängt da noch ein WHERE handle_id = 1 mit drin, das dafür sorgt, dass nur die Nachrichten zu einer bestimmten Person ausgegeben werden. Entweder löscht man das noch raus, oder man sucht in der Datenbank mal nach der passenden ID.

Für den unwahrscheinlichen Fall, dass das irgendwer braucht: Viel Spaß!

Kommentare, Feedback und andere Anmerkungen?
Schreib mir eine E-Mail 🤓