From a924f572278f43fbd220246b5225709f710aa848 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Tue, 21 Apr 2026 14:38:16 +0000
Subject: [PATCH] Generate VPN plans text dynamically with multiplier and real
tg username
Agent-Logs-Url: https://github.com/kr0sh512/tt-simple/sessions/bc21e448-4bad-4522-8609-1b248a8dc082
Co-authored-by: kr0sh512 <46405586+kr0sh512@users.noreply.github.com>
---
bot.py | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/bot.py b/bot.py
index 3cc180b..db31bd7 100644
--- a/bot.py
+++ b/bot.py
@@ -305,16 +305,21 @@ class VpnBot:
)
async def cmd_start(self, message: Message) -> None:
+ username = f"tg{message.from_user.id}"
+ current = await self.marzban.get_user(username)
+ multiplier = self._extract_price_multiplier((current or {}).get("note"))
kb = InlineKeyboardBuilder()
- for months, stars in PLANS.items():
- kb.button(text=f"{months} month — ⭐️{stars}", callback_data=f"buy:{months}")
+ plan_lines: list[str] = []
+ for months, base_stars in PLANS.items():
+ month_label = "month" if months == 1 else "months"
+ stars = self._stars_with_multiplier(base_stars, multiplier)
+ kb.button(text=f"{months} {month_label} — ⭐️{stars}", callback_data=f"buy:{months}")
+ plan_lines.append(f"• {months} {month_label} — {stars} stars")
kb.adjust(1)
await message.answer(
"VPN subscription plans:\n"
- "• 1 month — 100 stars\n"
- "• 3 months — 270 stars\n"
- "• 6 months — 500 stars\n\n"
- "Username in VPN panel: tg{your_telegram_id}",
+ + "\n".join(plan_lines)
+ + f"\n\nUsername in VPN panel: {username}",
reply_markup=kb.as_markup(),
)