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

Callers 1

distributePrizesFunction · 0.85

Calls 3

runMethod · 0.80
errorMethod · 0.80
htmlEscapeFunction · 0.70

Tested by

no test coverage detected