aboutsummaryrefslogtreecommitdiff
path: root/handlers/user/info.py
diff options
context:
space:
mode:
authorTolmachev Igor <me@igorek.dev>2026-03-23 00:21:18 +0300
committerTolmachev Igor <me@igorek.dev>2026-03-23 00:21:18 +0300
commitffee163d8206f0fb1315015e4c60248b68d459bc (patch)
treee95f4eb2bb330f2223d00c80fa9e123263657a8e /handlers/user/info.py
parentbc7f486aa7b543a934f4cf23dc80a95f44afcb64 (diff)
downloadvpn_manager_bot-ffee163d8206f0fb1315015e4c60248b68d459bc.tar.gz
vpn_manager_bot-ffee163d8206f0fb1315015e4c60248b68d459bc.zip
Add start, help and vpn_link commands
Diffstat (limited to 'handlers/user/info.py')
-rw-r--r--handlers/user/info.py77
1 files changed, 77 insertions, 0 deletions
diff --git a/handlers/user/info.py b/handlers/user/info.py
new file mode 100644
index 0000000..9776e7e
--- /dev/null
+++ b/handlers/user/info.py
@@ -0,0 +1,77 @@
1from aiogram import Bot, Router
2from aiogram.filters import Command
3from aiogram.types import BotCommand, BotCommandScopeChat, Message
4
5from models import User
6
7router = Router(name="info")
8
9COMMANDS = [
10 BotCommand(
11 command="start",
12 description="Показать стартовое сообщение",
13 ),
14 BotCommand(
15 command="help",
16 description="Показать список доступных команд",
17 ),
18 BotCommand(
19 command="vpn_link",
20 description="Показать ссылку доступа к VPN",
21 ),
22 BotCommand(
23 command="announcements",
24 description="Показать анонсы",
25 ),
26 BotCommand(
27 command="invoices",
28 description="Показать счета на оплату",
29 ),
30 BotCommand(
31 command="payments",
32 description="Показать платежи",
33 ),
34 BotCommand(
35 command="suggest_user",
36 description="Предложить нового пользователя",
37 ),
38]
39
40ADMIN_COMMANDS = COMMANDS + [
41 BotCommand(
42 command="new_announcement",
43 description="Создать новый анонс",
44 ),
45 BotCommand(
46 command="new_invoice",
47 description="Создать новый счёт на оплату",
48 ),
49 BotCommand(
50 command="add_user",
51 description="Создать нового пользователя",
52 ),
53 BotCommand(
54 command="suggest_list",
55 description="Показать предложения новых пользователей",
56 ),
57]
58
59
60@router.message(Command("start"))
61async def start_command(msg: Message, bot: Bot, user: User) -> None:
62 await msg.answer(
63 "Добро пожаловать в бота для пользователей VPN.\n"
64 "Посмотреть список доступных команд: /help"
65 )
66
67 await bot.set_my_commands(
68 ADMIN_COMMANDS if user.is_admin() else COMMANDS,
69 BotCommandScopeChat(chat_id=user.id),
70 )
71
72
73@router.message(Command("help"))
74async def help_command(msg: Message, user: User) -> None:
75 commands = ADMIN_COMMANDS if user.is_admin() else COMMANDS
76 commands_text = "\n".join(f"/{c.command} - {c.description}" for c in commands)
77 await msg.answer(f"Список доступных команд:\n{commands_text}")