MCPcopy Create free account
hub / github.com/Epic0522/Codex-Remote-Contact / fetchOneBotMessage

Function fetchOneBotMessage

src/server.js:5547–5586  ·  view source on GitHub ↗
(messageId, selfId)

Source from the content-addressed store, hash-verified

5545}
5546
5547async function fetchOneBotMessage(messageId, selfId) {
5548 if (!messageId) return null;
5549 const response = await fetch(`${oneBotApiBase}/get_msg`, {
5550 method: "POST",
5551 headers: { "content-type": "application/json" },
5552 body: JSON.stringify({ message_id: Number(messageId) })
5553 });
5554 const body = await response.json().catch(() => ({}));
5555 if (!response.ok || body.status !== "ok" || !body.data) {
5556 throw new Error(`Unable to fetch quoted QQ message ${messageId}`);
5557 }
5558
5559 const data = body.data;
5560 const senderId = data.user_id == null ? undefined : String(data.user_id);
5561 const segments = Array.isArray(data.message) ? data.message : [];
5562 const forwardSegment = segments.find((segment) => segment?.type === "forward");
5563 const textFromSegments = segments
5564 .filter((segment) => segment?.type === "text")
5565 .map((segment) => segment.data?.text ?? "")
5566 .join("")
5567 .trim();
5568 const forwardContext = forwardSegment?.data?.id
5569 ? await fetchOneBotForwardContent(forwardSegment.data.id).catch(() => null)
5570 : null;
5571 const images = dedupeQqImages([
5572 ...extractOneBotImageInputs(data),
5573 ...((forwardContext?.images) || [])
5574 ]);
5575 return {
5576 messageId: String(data.message_id ?? messageId),
5577 senderId,
5578 senderName: data.sender?.card || data.sender?.nickname || senderId || "群友",
5579 text: forwardContext?.text
5580 ? `[合并转发]\n${forwardContext.text}`
5581 : (data.raw_message || textFromSegments),
5582 images,
5583 isSelf: selfId != null && senderId === String(selfId),
5584 raw: data
5585 };
5586}
5587
5588async function fetchOneBotForwardContent(forwardId) {
5589 const response = await fetch(`${oneBotApiBase}/get_forward_msg`, {

Callers 1

attachReplyContextFunction · 0.85

Calls 3

dedupeQqImagesFunction · 0.85
extractOneBotImageInputsFunction · 0.85

Tested by

no test coverage detected