TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Show HN: iMessage-exporter, a full-featured CLI app and library

15 点作者 css超过 2 年前
I&#x27;ve spent a long time reverse engineering nearly every aspect of Apple&#x27;s iMessage SQLite tables to build this program. As far as I know, there are no other tools that support the full corpus of iMessage features, including edited messages, app messages, reactions, and threads.<p>I built this software to preserve some conversations with loved ones; I hope others find it useful as well.<p>For the curious, here are some of the more interesting aspects of the database I came across:<p>- Dates are stored as Unix timestamp with an epoch of 1&#x2F;1&#x2F;2001 00:00:00<p>- Messages can have multiple parts, denoted by some special invisible characters<p>- Reactions are stored by prefixing the GUID of the reacted message with the index of the message part [0].<p>- URL messages cache data in the table, which we can parse and display [1].<p>- Edited messages store the history message edits [2] (I wanted to try out DDD here, which was fun!).<p>[0]: <a href="https:&#x2F;&#x2F;docs.rs&#x2F;imessage-database&#x2F;latest&#x2F;imessage_database&#x2F;message_types&#x2F;variants&#x2F;enum.Reaction.html" rel="nofollow">https:&#x2F;&#x2F;docs.rs&#x2F;imessage-database&#x2F;latest&#x2F;imessage_database&#x2F;m...</a><p>[1]: <a href="https:&#x2F;&#x2F;docs.rs&#x2F;imessage-database&#x2F;latest&#x2F;imessage_database&#x2F;message_types&#x2F;url&#x2F;struct.URLMessage.html" rel="nofollow">https:&#x2F;&#x2F;docs.rs&#x2F;imessage-database&#x2F;latest&#x2F;imessage_database&#x2F;m...</a><p>[2]: <a href="https:&#x2F;&#x2F;docs.rs&#x2F;imessage-database&#x2F;latest&#x2F;imessage_database&#x2F;message_types&#x2F;edited&#x2F;struct.EditedMessage.html" rel="nofollow">https:&#x2F;&#x2F;docs.rs&#x2F;imessage-database&#x2F;latest&#x2F;imessage_database&#x2F;m...</a>

2 条评论

TimSchumann超过 2 年前
Honestly, don&#x27;t understand why this didn&#x27;t get more traction here.
jay-barronville超过 2 年前
Good work. I’m going to test this out. Thank you.