Add telegram bot
This commit is contained in:
60
bot/handlers/link.py
Normal file
60
bot/handlers/link.py
Normal file
@@ -0,0 +1,60 @@
|
||||
from aiogram import Router, F
|
||||
from aiogram.filters import Command
|
||||
from aiogram.types import Message
|
||||
|
||||
from keyboards.main_menu import get_main_menu
|
||||
from services.api_client import api_client
|
||||
|
||||
router = Router()
|
||||
|
||||
|
||||
@router.message(Command("unlink"))
|
||||
async def cmd_unlink(message: Message):
|
||||
"""Handle /unlink command to disconnect Telegram account."""
|
||||
user = await api_client.get_user_by_telegram_id(message.from_user.id)
|
||||
|
||||
if not user:
|
||||
await message.answer(
|
||||
"Твой аккаунт не привязан к Game Marathon.\n"
|
||||
"Привяжи его через настройки профиля на сайте.",
|
||||
reply_markup=get_main_menu()
|
||||
)
|
||||
return
|
||||
|
||||
result = await api_client.unlink_telegram(message.from_user.id)
|
||||
|
||||
if result.get("success"):
|
||||
await message.answer(
|
||||
"<b>Аккаунт отвязан</b>\n\n"
|
||||
"Ты больше не будешь получать уведомления.\n"
|
||||
"Чтобы привязать аккаунт снова, используй кнопку в настройках профиля на сайте.",
|
||||
reply_markup=get_main_menu()
|
||||
)
|
||||
else:
|
||||
await message.answer(
|
||||
"Произошла ошибка при отвязке аккаунта.\n"
|
||||
"Попробуй позже или обратись к администратору.",
|
||||
reply_markup=get_main_menu()
|
||||
)
|
||||
|
||||
|
||||
@router.message(Command("status"))
|
||||
async def cmd_status(message: Message):
|
||||
"""Check account link status."""
|
||||
user = await api_client.get_user_by_telegram_id(message.from_user.id)
|
||||
|
||||
if user:
|
||||
await message.answer(
|
||||
f"<b>Статус аккаунта</b>\n\n"
|
||||
f"✅ Аккаунт привязан\n"
|
||||
f"👤 Никнейм: <b>{user.get('nickname', 'N/A')}</b>\n"
|
||||
f"🆔 ID: {user.get('id', 'N/A')}",
|
||||
reply_markup=get_main_menu()
|
||||
)
|
||||
else:
|
||||
await message.answer(
|
||||
"<b>Статус аккаунта</b>\n\n"
|
||||
"❌ Аккаунт не привязан\n\n"
|
||||
"Привяжи его через настройки профиля на сайте.",
|
||||
reply_markup=get_main_menu()
|
||||
)
|
||||
Reference in New Issue
Block a user