client.imessage_conversations() -> pd.DataFrame
client.imessage_messages() -> pd.DataFrame
例
from jmail import JmailClient
client = JmailClient()
convos = client.imessage_conversations()
messages = client.imessage_messages()
# All messages from a specific conversation
ghislaine = messages[messages.conversation_slug == "ghislaine-maxwell"]
# Messages sent by Epstein
sent = messages[messages.sender == "me"]
# メッセージと会話のメタデータを結合
merged = messages.merge(
convos[["slug", "name"]],
left_on="conversation_slug",
right_on="slug",
how="left"
)
会話のカラム
| 列名 | 型 | 説明 |
|---|---|---|
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 | この会話内のメッセージ総数 |
メッセージ列
| Column | Type | Description |
|---|---|---|
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 | 送信者の表示名 |
直接アクセスURL
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
