Добавил настройку для Bot() : auto_requests
This commit is contained in:
parent
de684aa200
commit
8f5fc9f398
@ -78,7 +78,8 @@ class Bot(BaseConnection):
|
||||
self,
|
||||
token: str,
|
||||
parse_mode: Optional[ParseMode] = None,
|
||||
disable_notifications: Optional[bool] = None
|
||||
disable_notifications: Optional[bool] = None,
|
||||
auto_requests: bool = True,
|
||||
):
|
||||
|
||||
"""Инициализирует экземпляр бота с указанным токеном.
|
||||
@ -86,6 +87,8 @@ class Bot(BaseConnection):
|
||||
:param token: Токен доступа к API бота
|
||||
:param parse_mode: Форматирование по умолчанию
|
||||
:param disable_notifications: Отключение уведомлений при отправке сообщений (по умолчанию игнорируется)
|
||||
:param auto_requests: Автоматическое заполнение полей chat и from_user в Update
|
||||
с помощью API запросов если они не заложены как полноценные объекты в Update (по умолчанию True, при False chat и from_user в некоторых событиях будут выдавать None)
|
||||
"""
|
||||
|
||||
super().__init__()
|
||||
@ -98,6 +101,7 @@ class Bot(BaseConnection):
|
||||
|
||||
self.parse_mode = parse_mode
|
||||
self.disable_notifications = disable_notifications
|
||||
self.auto_requests = auto_requests
|
||||
|
||||
async def send_message(
|
||||
self,
|
||||
|
@ -36,7 +36,10 @@ async def get_update_model(event: dict, bot: 'Bot'):
|
||||
|
||||
case UpdateType.MESSAGE_CALLBACK:
|
||||
event_object = MessageCallback(**event)
|
||||
event_object.chat = await bot.get_chat_by_id(event_object.message.recipient.chat_id)
|
||||
|
||||
event_object.chat = await bot.get_chat_by_id(event_object.message.recipient.chat_id) \
|
||||
if bot.auto_requests else None
|
||||
|
||||
event_object.from_user = event_object.callback.user
|
||||
|
||||
case UpdateType.MESSAGE_CHAT_CREATED:
|
||||
@ -45,40 +48,59 @@ async def get_update_model(event: dict, bot: 'Bot'):
|
||||
|
||||
case UpdateType.MESSAGE_CREATED:
|
||||
event_object = MessageCreated(**event)
|
||||
event_object.chat = await bot.get_chat_by_id(event_object.message.recipient.chat_id)
|
||||
|
||||
event_object.chat = await bot.get_chat_by_id(event_object.message.recipient.chat_id) \
|
||||
if bot.auto_requests else None
|
||||
|
||||
event_object.from_user = event_object.message.sender
|
||||
|
||||
case UpdateType.MESSAGE_EDITED:
|
||||
event_object = MessageEdited(**event)
|
||||
event_object.chat = await bot.get_chat_by_id(event_object.message.recipient.chat_id)
|
||||
|
||||
event_object.chat = await bot.get_chat_by_id(event_object.message.recipient.chat_id) \
|
||||
if bot.auto_requests else None
|
||||
|
||||
event_object.from_user = event_object.message.sender
|
||||
|
||||
case UpdateType.MESSAGE_REMOVED:
|
||||
event_object = MessageRemoved(**event)
|
||||
event_object.chat = await bot.get_chat_by_id(event_object.chat_id)
|
||||
|
||||
event_object.chat = await bot.get_chat_by_id(event_object.chat_id) \
|
||||
if bot.auto_requests else None
|
||||
|
||||
event_object.from_user = await bot.get_chat_member(
|
||||
chat_id=event_object.chat_id,
|
||||
user_id=event_object.user_id
|
||||
)
|
||||
) if bot.auto_requests else None
|
||||
|
||||
case UpdateType.USER_ADDED:
|
||||
event_object = UserAdded(**event)
|
||||
event_object.chat = await bot.get_chat_by_id(event_object.chat_id)
|
||||
|
||||
event_object.chat = await bot.get_chat_by_id(event_object.chat_id) \
|
||||
if bot.auto_requests else None
|
||||
|
||||
event_object.from_user = event_object.user
|
||||
|
||||
case UpdateType.USER_REMOVED:
|
||||
event_object = UserRemoved(**event)
|
||||
event_object.chat = await bot.get_chat_by_id(event_object.chat_id)
|
||||
|
||||
event_object.chat = await bot.get_chat_by_id(event_object.chat_id) \
|
||||
if bot.auto_requests else None
|
||||
|
||||
event_object.from_user = await bot.get_chat_member(
|
||||
chat_id=event_object.chat_id,
|
||||
user_id=event_object.admin_id
|
||||
) if event_object.admin_id else None
|
||||
) if event_object.admin_id and \
|
||||
bot.auto_requests else None
|
||||
|
||||
if event['update_type'] in (UpdateType.BOT_ADDED,
|
||||
UpdateType.BOT_REMOVED,
|
||||
UpdateType.BOT_STARTED,
|
||||
UpdateType.CHAT_TITLE_CHANGED):
|
||||
event_object.chat = await bot.get_chat_by_id(event_object.chat_id)
|
||||
|
||||
event_object.chat = await bot.get_chat_by_id(event_object.chat_id) \
|
||||
if bot.auto_requests else None
|
||||
|
||||
event_object.from_user = event_object.user
|
||||
|
||||
if hasattr(event_object, 'bot'):
|
||||
|
Loading…
x
Reference in New Issue
Block a user