Feat: add user command
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user