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