->
get_exported_chat_invites ->
exported_chat_inviteBoth users and bots may be able to use this request
def text_handler(...): # <<< этот хендлер регистрируем
secondary_handlers = {
"О нас": about_us,
"Чем займемся?": whats_next,
"текст": handler_for_text
}
if handler := secondary_handlers.get(message.text):
handler(message)
def about_us(...): ... # < а эти нет
def whats_next(...): ...
permissions = await client.get_permissions(chat, user)
if permissions.is_admin:
# do something
.is_creator
также будет определяться как админ https://t.me/_bot?start=my_data
в событии бота будет выглядеть как сообщение/start my_data
.from functools import wraps, partial
def command(**cmdargs):
def _run(func):
@wraps(func)
def wrapper(self, *args):
return partial(func, self, args, cmdargs)
return wrapper
return _run
class Aliases:
@property
def commands(self) -> tuple:
return (
self.new_alias(),
)
@command(
command="новый алиас",
args={"алиас": "str"}
)
def new_alias(self, *args):
for arg in args:
if isinstance(arg, str): # заменить на types.Message):
return arg
return args
>>> aliases = Aliases()
>>> aliases.commands
(functools.partial(<function Aliases.new_alias at 0x778154c550>, <__main__.Aliases object at 0x778205af50>, (), {'command': 'новый алиас', 'args': {'алиас': 'str'}}),)
>>> aliases.commands[0]
functools.partial(<function Aliases.new_alias at 0x778154c550>, <__main__.Aliases object at 0x778205af50>, (), {'command': 'новый алиас', 'args': {'алиас': 'str'}})
>>> aliases.commands[0].args[2]
{'command': 'новый алиас', 'args': {'алиас': 'str'}}
>>> aliases.commands[0]("types.Message object")
'types.Message object'
statuses = {
"offline": "Оффлайн",
"online": "Онлайн",
"dnd": "Не беспокоить",
"idle": "Неактивен"
}
status = statuses.get(member.desktop_status, "Неизвестно")
i = 0
while i < num_clear:
try:
bot.delete_message(m.chat.id, m.message_id - i)
except ExceptionName as e:
print(e)
else:
i += 1