diff --git a/nwxraybot/handlers/admin.py b/nwxraybot/handlers/admin.py index 6f0bbd2..01c043f 100644 --- a/nwxraybot/handlers/admin.py +++ b/nwxraybot/handlers/admin.py @@ -16,6 +16,7 @@ from nwxraybot.fsm import BroadcastStates from nwxraybot.meta import Handler from nwxraybot.middlewares import AdminMiddleware from nwxraybot.models import User +from nwxraybot.utils import get_subscription_info class AdminHandler(Handler): @@ -28,6 +29,7 @@ class AdminHandler(Handler): `/adduser name url [01.01.1970 00:00]` - добавить пользователя `/updateuser name 01.01.1970 00:00` - обновить информацию о пользователе `/broadcast` - рассылка (пошагово) +`/get_users` - список пользователей """ @self.router.message(Command('ahelp')) @@ -69,6 +71,24 @@ class AdminHandler(Handler): query.execute() await message.answer('Информация о пользователе обновлена.') + @self.router.message(Command('get_users')) + async def get_users(message: Message): + def get_user_info(user: User) -> str: + date_str = "" if user.time is None else f'До: { + user.time.strftime("%d.%m.%Y %H:%M")} МСК\n' + return f"Информация о пользователе `{user.name}`:\n{date_str}Ссылка: `{user.url}`\ncode: `{user.code if user.code else 'None'}`\n\n" + + users = User.select() + res = "" + for user in users: + res += get_user_info(user) + try: + await message.answer(res, parse_mode=ParseMode.MARKDOWN) + except Exception as e: + await message.answer(f"Error while getting users: {e}") + logging.error(f"Error while getting user { + user.telegram_id}: {e}") + @self.router.message(Command('broadcast')) async def start_broadcast(message: Message, state: FSMContext): await message.answer('Отправьте для рассылки')