MCPcopy Index your code
hub / github.com/Linen-dev/linen.dev / processNewThread

Function processNewThread

packages/integration-discord/src/outbound.ts:137–178  ·  view source on GitHub ↗
({
  token,
  externalChannelId,
  body,
  title,
  author,
  setThreadExternalId,
  setMessageExternalId,
}: {
  setThreadExternalId: (externalId: string) => Promise<void>;
  setMessageExternalId: (externalId: string) => Promise<void>;
  token: string;
  externalChannelId: string;
  body: string;
  title?: string;
  author?: string;
})

Source from the content-addressed store, hash-verified

135}
136
137async function processNewThread({
138 token,
139 externalChannelId,
140 body,
141 title,
142 author,
143 setThreadExternalId,
144 setMessageExternalId,
145}: {
146 setThreadExternalId: (externalId: string) => Promise<void>;
147 setMessageExternalId: (externalId: string) => Promise<void>;
148 token: string;
149 externalChannelId: string;
150 body: string;
151 title?: string;
152 author?: string;
153}) {
154 const client = await getClient(token);
155 const thread: any = await client.post(Routes.threads(externalChannelId), {
156 body: {
157 name: title || body.substring(0, 15),
158 type: discordChannelType.PUBLIC_THREAD,
159 message: {
160 content: `${author}: ${body}`,
161 nonce,
162 },
163 nonce,
164 },
165 });
166 await setThreadExternalId(thread.id);
167
168 if (thread.message) {
169 await setMessageExternalId(thread.message.id);
170 return;
171 }
172
173 const message: any = await client.post(Routes.channelMessages(thread.id), {
174 body: { content: `${author}: ${body}`, nonce },
175 });
176 await setMessageExternalId(message.id);
177 return;
178}
179
180async function processNewMessage({
181 token,

Callers 1

Calls 4

getClientFunction · 0.90
setThreadExternalIdFunction · 0.90
setMessageExternalIdFunction · 0.90
postMethod · 0.45

Tested by

no test coverage detected