MCPcopy Create free account
hub / github.com/TeleBoxOrg/TeleBox_Plugins / handleSaveStickerToSet

Method handleSaveStickerToSet

yvlu/yvlu.ts:1172–1369  ·  view source on GitHub ↗
(msg: Api.Message)

Source from the content-addressed store, hash-verified

1170 try {
1171 const repliedMsg = await safeGetReplyMessage(message);
1172 if (repliedMsg) {
1173 const repliedSender = await repliedMsg.getSender();
1174 let replyName = "unknown";
1175 let replyChatId: number | undefined;
1176 if (repliedSender) {
1177 replyChatId = Number(repliedSender.id);
1178 const rFirst =
1179 (repliedSender as any).firstName ||
1180 (repliedSender as any).title ||
1181 "";
1182 const rLast = (repliedSender as any).lastName || "";
1183 const rUser = (repliedSender as any).username || "";
1184 const composed = `${rFirst} ${rLast}`.trim();
1185 replyName = composed || rUser || "unknown";
1186 }
1187
1188 // 使用被回复消息的文本 + 实体
1189 const replyText = repliedMsg.message || "";
1190 const replyEntities = convertEntities(
1191 repliedMsg.entities || [],
1192 );
1193
1194 if (replyText) {
1195 replyBlock = {
1196 name: replyName,
1197 text: replyText,
1198 entities: replyEntities,
1199 ...(replyChatId ? { chatId: replyChatId } : {}),
1200 };
1201 }
1202 }
1203 } catch {}
1204 }
1205 } catch (e) {
1206 console.warn("处理回复引用失败: ", e);
1207 }
1208 }
1209
1210 let media: { url: string } | undefined = undefined;
1211 try {
1212 const mediaResult = await downloadAndProcessMedia(client, message);
1213 if (mediaResult) {
1214 const base64 = mediaResult.buffer.toString("base64");
1215 media = { url: `data:${mediaResult.mime};base64,${base64}` };
1216 }
1217 } catch (e) {
1218 console.error("下载媒体失败", e);
1219 }
1220
1221 // 构建高级消息对象(quote-api 全字段)
1222 const msgItem: any = {
1223 from: {
1224 id: userId
1225 ? parseInt(userId)
1226 : hashCode(sender.name || `${firstName}|${lastName}`),
1227 name: shouldShowAvatar ? name : "",
1228 first_name: shouldShowAvatar
1229 ? firstName || undefined

Callers 1

YvluPluginClass · 0.95

Calls 6

loadConfigMethod · 0.95
createStickerSetMethod · 0.95
errorMethod · 0.80
htmlEscapeFunction · 0.70
editMethod · 0.45
downloadMediaMethod · 0.45

Tested by

no test coverage detected