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

Function sendPrizeToWinner

lottery/lottery.ts:584–619  ·  view source on GitHub ↗
(client: TelegramClient, winner: any, prizeText: string, lottery: any)

Source from the content-addressed store, hash-verified

582 `🏆 <b>活动名称:</b> ${htmlEscape(lottery.title)}\n` +
583 `🎁 <b>奖品内容:</b> ${htmlEscape(prizeText)}\n\n` +
584 `📝 <b>中奖详情:</b>\n` +
585 `• 活动: ${htmlEscape(lottery.title)}\n` +
586 `• 中奖用户: ${htmlEscape(displayName)}\n` +
587 `• 中奖时间: ${new Date().toLocaleString("zh-CN", { timeZone: "Asia/Shanghai" })}\n\n` +
588 `🎊 <b>感谢您的参与,祝您好运!</b>\n` +
589 `💡 <b>提示:</b> 如有疑问请联系活动发起者`;
590
591 await client.sendMessage(winner.user_id, {
592 message: prizeMessage,
593 parseMode: "html",
594 });
595
596 // Update status to sent
597 const updateStmt = db.prepare(`
598 UPDATE lottery_winners
599 SET status = ?, claimed_at = ?
600 WHERE lottery_id = ? AND user_id = ?
601 `);
602 updateStmt.run(PrizeStatus.SENT, Date.now(), lottery.id, String(winner.user_id));
603
604 console.log(`Prize sent to user ${winner.user_id} (${displayName})`);
605 return true;
606 } catch (error) {
607 console.error(`Failed to send prize to user ${winner.user_id}:`, error);
608 return false;
609 }
610}
611
612// Format user line for display
613function formatUserLine(uid: number, userObj?: any): string {
614 let displayName = "";
615 let username = "";
616
617 if (userObj) {
618 if (userObj.firstName && userObj.lastName) {
619 displayName = `${userObj.firstName} ${userObj.lastName}`;
620 } else if (userObj.firstName) {
621 displayName = userObj.firstName;
622 } else if (userObj.lastName) {

Callers 1

distributePrizesFunction · 0.85

Calls 3

runMethod · 0.80
errorMethod · 0.80
htmlEscapeFunction · 0.70

Tested by

no test coverage detected