Feat: add user command

This commit is contained in:
2025-01-05 20:44:51 +03:00
parent 34308f2cac
commit 3962c57dde
12 changed files with 111 additions and 8 deletions

View File

@@ -1,5 +1,4 @@
import json
from datetime import datetime
from typing import Optional
from aiogram import F, types
from aiogram.enums import ParseMode
@@ -7,6 +6,7 @@ from aiogram.filters import Command
from aiogram.types import (CallbackQuery, InlineKeyboardButton,
InlineKeyboardMarkup)
from nwxraybot import get_subscription_info
from nwxraybot.meta import Handler
from nwxraybot.models import User
@@ -14,7 +14,7 @@ from nwxraybot.models import User
class HelloHandler(Handler):
def __non_admin_main_menu(self):
markup = [[
InlineKeyboardButton(text="Обновить данные",
InlineKeyboardButton(text="Обновить данные🔄",
callback_data='update')
]]
return InlineKeyboardMarkup(
@@ -26,8 +26,23 @@ class HelloHandler(Handler):
@self.router.message(Command("start"))
async def hello(message: types.Message):
await message.reply("Приветствуем в боте NwXray! Здесь вы сможете получить информацию о своем подключении к NwXray", reply_markup=self.__non_admin_main_menu())
data = message.text.split()
if len(data) == 2:
code = data[1]
query = User.update(telegram_id=None).where(
User.telegram_id == message.from_user.id)
query.execute()
user: Optional[User] = User.select().where(
User.code == code).first()
if user is None:
await message.answer('Пользователь не найден, обратитесь к администратору за ссылкой!')
return
user.telegram_id = message.from_user.id
user.save()
await message.answer(f"Приветствуем в боте NwXray! Здесь вы сможете получить информацию о своем подключении к NwXray.\n\n{get_subscription_info(message.from_user.id)}",
reply_markup=self.__non_admin_main_menu(), parse_mode=ParseMode.MARKDOWN)
@self.router.callback_query(F.data == 'update')
async def update_data(callback: CallbackQuery):
await callback.message.delete()
await callback.message.edit_text(get_subscription_info(callback.from_user.id),
reply_markup=self.__non_admin_main_menu(), parse_mode=ParseMode.MARKDOWN)