diff --git a/telegram_bot/src/index.ts b/telegram_bot/src/index.ts index 2fdbef8..f517eb5 100644 --- a/telegram_bot/src/index.ts +++ b/telegram_bot/src/index.ts @@ -238,6 +238,33 @@ bot.on('message', async (msg) => { // Handle menu button presses switch (text) { + case '๐ŸŽฐ Upcoming Jackpot': + try { + const jackpot = await apiClient.getNextJackpot(); + + if (!jackpot) { + await bot.sendMessage(msg.chat.id, messages.buy.noActiveJackpot, { + parse_mode: 'Markdown', + }); + return; + } + + const drawTime = new Date(jackpot.cycle.scheduled_at); + const jackpotMessage = `๐ŸŽฐ *Upcoming Jackpot* + +๐Ÿ’ฐ *Prize Pool:* ${formatSats(jackpot.cycle.pot_total_sats)} sats +๐ŸŽŸ *Ticket Price:* ${formatSats(jackpot.lottery.ticket_price_sats)} sats +โฐ *Draw at:* ${formatDate(drawTime)} +โณ *Time left:* ${formatTimeUntil(drawTime)} + +Use /buyticket to get your tickets! ๐Ÿ€`; + + await bot.sendMessage(msg.chat.id, jackpotMessage, { parse_mode: 'Markdown' }); + } catch (error) { + logger.error('Error showing jackpot', { error }); + await bot.sendMessage(msg.chat.id, messages.errors.systemUnavailable); + } + return; case '๐ŸŽŸ Buy Tickets': await handleBuyCommand(bot, msg); return; diff --git a/telegram_bot/src/utils/keyboards.ts b/telegram_bot/src/utils/keyboards.ts index c6e5923..22ededa 100644 --- a/telegram_bot/src/utils/keyboards.ts +++ b/telegram_bot/src/utils/keyboards.ts @@ -10,6 +10,7 @@ import { NotificationPreferences } from '../types'; export function getMainMenuKeyboard(): ReplyKeyboardMarkup { return { keyboard: [ + [{ text: '๐ŸŽฐ Upcoming Jackpot' }], [{ text: '๐ŸŽŸ Buy Tickets' }, { text: '๐Ÿงพ My Tickets' }], [{ text: '๐Ÿ† My Wins' }, { text: 'โšก Lightning Address' }], [{ text: 'โš™๏ธ Settings' }, { text: 'โ„น๏ธ Help' }],