Compare commits
3 Commits
3ad4c2ea3e
...
8be7677f4b
| Author | SHA1 | Date | |
|---|---|---|---|
| 8be7677f4b | |||
| 0fa538d079 | |||
| fed548e9e8 |
@@ -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):
|
||||
@@ -24,6 +25,17 @@ class AdminHandler(Handler):
|
||||
|
||||
self.router.message.middleware(AdminMiddleware())
|
||||
|
||||
help_text = """Список команда администратора:
|
||||
`/adduser name url [01.01.1970 00:00]` - добавить пользователя
|
||||
`/updateuser name 01.01.1970 00:00` - обновить информацию о пользователе
|
||||
`/broadcast` - рассылка (пошагово)
|
||||
`/get_users` - список пользователей
|
||||
"""
|
||||
|
||||
@self.router.message(Command('ahelp'))
|
||||
async def help(message: Message):
|
||||
await message.reply(help_text, parse_mode=ParseMode.MARKDOWN)
|
||||
|
||||
@self.router.message(Command('adduser'))
|
||||
async def add_user(message: Message):
|
||||
mask = r"^(?P<name>[a-zA-Z0-9]+)\s(?P<url>vless://[^\s]+)($|\s(?P<date>[0-9]{2}\.[0-9]{2}\.[0-9]{4})\s(?P<time>[0-9]{2}\:[0-9]{2})$)"
|
||||
@@ -59,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('Отправьте для рассылки')
|
||||
|
||||
Reference in New Issue
Block a user