Skip to content

Commit 0acda0c

Browse files
lsr911claude
andcommitted
fix(discord): bound JSON response reads via shared provider helpers
- pluralkit: use readProviderJsonResponse for message info lookup - send.webhook: use readProviderJsonResponse for webhook responses - voice-message: use readProviderJsonResponse for upload URL responses Co-Authored-By: Claude <[email protected]> Signed-off-by: lsr911 <[email protected]>
1 parent e4f6357 commit 0acda0c

3 files changed

Lines changed: 17 additions & 6 deletions

File tree

extensions/discord/src/pluralkit.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
// Discord plugin module implements pluralkit behavior.
22
import { resolveFetch } from "openclaw/plugin-sdk/fetch-runtime";
3-
import { readResponseTextLimited } from "openclaw/plugin-sdk/provider-http";
3+
import {
4+
readProviderJsonResponse,
5+
readResponseTextLimited,
6+
} from "openclaw/plugin-sdk/provider-http";
47

58
const PLURALKIT_API_BASE = "https://api.pluralkit.me/v2";
69
const PLURALKIT_ERROR_BODY_LIMIT_BYTES = 8 * 1024;
@@ -59,5 +62,5 @@ export async function fetchPluralKitMessageInfo(params: {
5962
const detail = text.trim() ? `: ${text.trim()}` : "";
6063
throw new Error(`PluralKit API failed (${res.status})${detail}`);
6164
}
62-
return (await res.json()) as PluralKitMessageInfo;
65+
return await readProviderJsonResponse<PluralKitMessageInfo>(res, "discord.pluralkit");
6366
}

extensions/discord/src/send.webhook.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
// Discord plugin module implements send.webhook behavior.
22
import { recordChannelActivity } from "openclaw/plugin-sdk/channel-activity-runtime";
33
import type { OpenClawConfig } from "openclaw/plugin-sdk/config-contracts";
4-
import { readResponseTextLimited } from "openclaw/plugin-sdk/provider-http";
4+
import {
5+
readProviderJsonResponse,
6+
readResponseTextLimited,
7+
} from "openclaw/plugin-sdk/provider-http";
58
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
69
import { resolveDiscordClientAccountContext } from "./client.js";
710
import {
@@ -120,7 +123,9 @@ export async function sendWebhookMessageDiscord(
120123
await throwWebhookResponseError(response);
121124
}
122125

123-
const payload = (await response.json().catch(() => ({}))) as {
126+
const payload = (await readProviderJsonResponse(response, "discord.webhook").catch(
127+
() => ({}),
128+
)) as {
124129
id?: string;
125130
channel_id?: string;
126131
};

extensions/discord/src/voice-message.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,10 @@ import {
2222
import { MEDIA_FFMPEG_MAX_AUDIO_DURATION_SECS } from "openclaw/plugin-sdk/media-runtime";
2323
import { unlinkIfExists } from "openclaw/plugin-sdk/media-runtime";
2424
import { parseStrictFiniteNumber } from "openclaw/plugin-sdk/number-runtime";
25-
import { readResponseTextLimited } from "openclaw/plugin-sdk/provider-http";
25+
import {
26+
readResponseTextLimited,
27+
readProviderJsonResponse,
28+
} from "openclaw/plugin-sdk/provider-http";
2629
import type { RetryRunner } from "openclaw/plugin-sdk/retry-runtime";
2730
import { writeExternalFileWithinRoot } from "openclaw/plugin-sdk/security-runtime";
2831
import { fetchWithSsrFGuard, type SsrFPolicy } from "openclaw/plugin-sdk/ssrf-runtime";
@@ -351,7 +354,7 @@ async function requestVoiceUploadUrl(params: {
351354
if (!res.ok) {
352355
throw await createVoiceRequestError(res, "Upload URL request failed");
353356
}
354-
return (await res.json()) as UploadUrlResponse;
357+
return await readProviderJsonResponse<UploadUrlResponse>(res, "discord.voice-message");
355358
} finally {
356359
await release();
357360
}

0 commit comments

Comments
 (0)