diff --git a/mcp/nntp/__pycache__/nntp_replay.cpython-312.pyc b/mcp/nntp/__pycache__/nntp_replay.cpython-312.pyc index 2ee6459..766a5d5 100644 Binary files a/mcp/nntp/__pycache__/nntp_replay.cpython-312.pyc and b/mcp/nntp/__pycache__/nntp_replay.cpython-312.pyc differ diff --git a/mcp/nntp/nntp_replay.py b/mcp/nntp/nntp_replay.py index 1abb522..7523635 100644 --- a/mcp/nntp/nntp_replay.py +++ b/mcp/nntp/nntp_replay.py @@ -285,7 +285,8 @@ def scan_group(server: str = DEFAULT_SERVER, group: str = "", m["num"] for m in members if m["msgid"] in t["new"]), "messages": [ {"num": m["num"], "msgid": m["msgid"], - "from": m["from"], "date": m["date"], "body": m["body"]} + "from": m["from"], "date": m["date"], + "references": m["refs"], "body": m["body"]} for m in full ], }) @@ -330,6 +331,7 @@ def read_thread(server: str = DEFAULT_SERVER, group: str = "", "subject": full[0]["subject"], "messages": [{"num": m["num"], "msgid": m["msgid"], "from": m["from"], "date": m["date"], + "references": m["refs"], "body": m["body"]} for m in full]} except Exception as e: return {"error": str(e)} @@ -355,9 +357,13 @@ def get_last_message(server: str = DEFAULT_SERVER, group: str = "", msg = email.message_from_bytes(b"\n".join(s.article(str(last))[1].lines), policy=email_policy) - msgid = (msg.get("Message-ID") or f"").strip() + message_id = (msg.get("Message-ID") or f"").strip() + references = [r for r in (msg.get("References") or "").split() + if r.startswith("<")] - return {"status": "ok", "group": group, "num": last, "msgid": msgid, + return {"status": "ok", "group": group, "num": last, + "message_id": message_id, + "references": references, "subject": _decode(msg.get("Subject", "")), "from": _decode(msg.get("From", "")), "date": _parse_date(str(msg.get("Date", ""))),