From 75e99ca0712a2c09230e5c6f8d093dc526cc717d Mon Sep 17 00:00:00 2001 From: Tolmachev Igor Date: Mon, 20 Apr 2026 20:56:35 +0300 Subject: Add users command --- handlers/admin/add_user.py | 99 ---------------------------------------------- 1 file changed, 99 deletions(-) delete mode 100644 handlers/admin/add_user.py (limited to 'handlers/admin/add_user.py') diff --git a/handlers/admin/add_user.py b/handlers/admin/add_user.py deleted file mode 100644 index 1d19834..0000000 --- a/handlers/admin/add_user.py +++ /dev/null @@ -1,99 +0,0 @@ -from datetime import UTC, datetime - -from aiogram import F, Router -from aiogram.enums.button_style import ButtonStyle -from aiogram.filters import Command -from aiogram.fsm.context import FSMContext -from aiogram.fsm.state import State, StatesGroup -from aiogram.types import ( - KeyboardButton, - KeyboardButtonRequestUsers, - Message, - ReplyKeyboardMarkup, - ReplyKeyboardRemove, -) -from pydantic import BaseModel -from sqlalchemy.ext.asyncio import AsyncSession - -from libs.fsm import edit_data, get_data, set_data -from models import User - -router = Router(name="add_user") - - -class AddUserStates(StatesGroup): - user_id = State() - vpn_link = State() - - -class AddUserData(BaseModel): - user_id: int | None = None - - -CANCEL_BUTTON = "Отменить добавление" - - -@router.message(Command("add_user")) -async def command(msg: Message, state: FSMContext) -> None: - await msg.answer( - "Выберете пользователя которого хотите добавить.", - reply_markup=ReplyKeyboardMarkup( - keyboard=[ - [ - KeyboardButton( - text="Выбрать пользователя", - style=ButtonStyle.PRIMARY, - request_users=KeyboardButtonRequestUsers(request_id=0), - ), - ], - [ - KeyboardButton(text=CANCEL_BUTTON, style=ButtonStyle.DANGER), - ], - ], - resize_keyboard=True, - ), - ) - await set_data(state, AddUserData(user_id=None)) - await state.set_state(AddUserStates.user_id) - - -@router.message(AddUserStates(), F.text == CANCEL_BUTTON) -async def cancel(msg: Message, state: FSMContext) -> None: - await msg.answer( - "Добавление пользователей отменено", - reply_markup=ReplyKeyboardRemove(), - ) - await state.clear() - - -@router.message(AddUserStates.user_id) -async def set_user_id(msg: Message, state: FSMContext) -> None: - if msg.users_shared is None: - await msg.answer("Вы должны воспользоваться кнопкой ниже.") - return - - async with edit_data(state, AddUserData) as data: - data.user_id = msg.users_shared.users[0].user_id - - await msg.answer("Укажите ссылку для доступа к VPN") - await state.set_state(AddUserStates.vpn_link) - - -@router.message(AddUserStates.vpn_link) -async def set_vpn_link( - msg: Message, - state: FSMContext, - session: AsyncSession, -) -> None: - if msg.text is None: - await msg.answer("Вы должны указать ссылку отправив текстовое сообщение.") - return - - data = await get_data(state, AddUserData) - assert data.user_id is not None - - session.add(User(id=data.user_id, vpn_link=msg.text, datetime=datetime.now(UTC))) - await session.flush() - - await msg.answer("Пользователь добавлен.", reply_markup=ReplyKeyboardRemove()) - await state.clear() -- cgit v1.3