Feat: get users command
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
This commit is contained in:
@@ -16,6 +16,7 @@ from nwxraybot.fsm import BroadcastStates
|
|||||||
from nwxraybot.meta import Handler
|
from nwxraybot.meta import Handler
|
||||||
from nwxraybot.middlewares import AdminMiddleware
|
from nwxraybot.middlewares import AdminMiddleware
|
||||||
from nwxraybot.models import User
|
from nwxraybot.models import User
|
||||||
|
from nwxraybot.utils import get_subscription_info
|
||||||
|
|
||||||
|
|
||||||
class AdminHandler(Handler):
|
class AdminHandler(Handler):
|
||||||
@@ -28,6 +29,7 @@ class AdminHandler(Handler):
|
|||||||
`/adduser name url [01.01.1970 00:00]` - добавить пользователя
|
`/adduser name url [01.01.1970 00:00]` - добавить пользователя
|
||||||
`/updateuser name 01.01.1970 00:00` - обновить информацию о пользователе
|
`/updateuser name 01.01.1970 00:00` - обновить информацию о пользователе
|
||||||
`/broadcast` - рассылка (пошагово)
|
`/broadcast` - рассылка (пошагово)
|
||||||
|
`/get_users` - список пользователей
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@self.router.message(Command('ahelp'))
|
@self.router.message(Command('ahelp'))
|
||||||
@@ -69,6 +71,24 @@ class AdminHandler(Handler):
|
|||||||
query.execute()
|
query.execute()
|
||||||
await message.answer('Информация о пользователе обновлена.')
|
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'))
|
@self.router.message(Command('broadcast'))
|
||||||
async def start_broadcast(message: Message, state: FSMContext):
|
async def start_broadcast(message: Message, state: FSMContext):
|
||||||
await message.answer('Отправьте для рассылки')
|
await message.answer('Отправьте для рассылки')
|
||||||
|
|||||||
Reference in New Issue
Block a user