client.imessage_conversations() -> pd.DataFrame
client.imessage_messages() -> pd.DataFrame
示例
from jmail import JmailClient
client = JmailClient()
convos = client.imessage_conversations()
messages = client.imessage_messages()
# 特定对话中的所有消息
ghislaine = messages[messages.conversation_slug == "ghislaine-maxwell"]
# Epstein 发送的消息
sent = messages[messages.sender == "me"]
# 将消息与对话元数据进行关联
merged = messages.merge(
convos[["slug", "name"]],
left_on="conversation_slug",
right_on="slug",
how="left"
)
会话列
| Column | Type | Description |
|---|---|---|
id | int | 唯一会话 ID |
slug | string | URL 安全的会话标识符 |
name | string | 联系人姓名 |
bio | string | 联系人简介/描述 |
photo | string | 联系人照片 URL |
last_message | string | 最后一条消息预览 |
last_message_time | string | 最后一条消息的时间戳 |
pinned | bool | 该会话是否置顶 |
confirmed | bool | 联系人身份是否已确认 |
source_files | json | 用于提取该会话的源文件 |
message_count | int | 该会话中的消息总数 |
消息列
| 列 | 类型 | 描述 |
|---|---|---|
id | string | 唯一消息 ID({slug}#{index}) |
conversation_slug | string | 指向会话的外键(slug) |
message_index | int | 消息在会话中的顺序 |
text | string | 消息文本内容 |
sender | string | me(Epstein)或 them(联系人) |
time | string | 原始时间戳字符串 |
timestamp | timestamp | 解析后的时间戳 |
source_file | string | 该消息提取自的源文件 |
sender_name | string | 发送方显示名称 |
直接链接
https://data.jmail.world/v1/imessage_conversations.parquet
https://data.jmail.world/v1/imessage_conversations.ndjson.gz
https://data.jmail.world/v1/imessage_messages.parquet
https://data.jmail.world/v1/imessage_messages.ndjson.gz
