Added the parameter message_thread_id to the method sendChatAction for sending chat actions to a specific message thread or a forum topic.

Added the parameter message_thread_id to the method sendChatAction for sending chat actions to a specific message thread or a forum topic.
This commit is contained in:
coder2020official 2022-12-30 20:23:53 +04:00
parent f297ad23c7
commit 9f8256607a
4 changed files with 16 additions and 6 deletions

View File

@ -2806,7 +2806,7 @@ class TeleBot:
allow_sending_without_reply, protect_content, message_thread_id))
def send_chat_action(
self, chat_id: Union[int, str], action: str, timeout: Optional[int]=None) -> bool:
self, chat_id: Union[int, str], action: str, timeout: Optional[int]=None, message_thread_id: Optional[int]=None) -> bool:
"""
Use this method when you need to tell the user that something is happening on the bot's side.
The status is set for 5 seconds or less (when a message arrives from your bot, Telegram clients clear its typing status).
@ -2829,10 +2829,13 @@ class TeleBot:
:param timeout: Timeout in seconds for the request.
:type timeout: :obj:`int`
:param message_thread_id: The thread identifier of a message from which the reply will be sent(supergroups only)
:type message_thread_id: :obj:`int`
:return: Returns True on success.
:rtype: :obj:`bool`
"""
return apihelper.send_chat_action(self.token, chat_id, action, timeout)
return apihelper.send_chat_action(self.token, chat_id, action, timeout, message_thread_id)
@util.deprecated(deprecation_text="Use ban_chat_member instead")
def kick_chat_member(

View File

@ -657,11 +657,13 @@ def send_contact(
return _make_request(token, method_url, params=payload)
def send_chat_action(token, chat_id, action, timeout=None):
def send_chat_action(token, chat_id, action, timeout=None, message_thread_id=None):
method_url = r'sendChatAction'
payload = {'chat_id': chat_id, 'action': action}
if timeout:
payload['timeout'] = timeout
if message_thread_id is not None:
payload['message_thread_id'] = message_thread_id
return _make_request(token, method_url, params=payload)

View File

@ -3664,7 +3664,7 @@ class AsyncTeleBot:
)
async def send_chat_action(
self, chat_id: Union[int, str], action: str, timeout: Optional[int]=None) -> bool:
self, chat_id: Union[int, str], action: str, timeout: Optional[int]=None, message_thread_id: Optional[int]=None) -> bool:
"""
Use this method when you need to tell the user that something is happening on the bot's side.
The status is set for 5 seconds or less (when a message arrives from your bot, Telegram clients clear its typing status).
@ -3687,10 +3687,13 @@ class AsyncTeleBot:
:param timeout: Timeout in seconds for the request.
:type timeout: :obj:`int`
:param message_thread_id: The thread to which the message will be sent(supergroups only)
:type message_thread_id: :obj:`int`
:return: Returns True on success.
:rtype: :obj:`bool`
"""
return await asyncio_helper.send_chat_action(self.token, chat_id, action, timeout)
return await asyncio_helper.send_chat_action(self.token, chat_id, action, timeout, message_thread_id)
async def kick_chat_member(
self, chat_id: Union[int, str], user_id: int,

View File

@ -649,11 +649,13 @@ async def send_contact(
return await _process_request(token, method_url, params=payload)
async def send_chat_action(token, chat_id, action, timeout=None):
async def send_chat_action(token, chat_id, action, timeout=None, message_thread_id=None):
method_url = r'sendChatAction'
payload = {'chat_id': chat_id, 'action': action}
if timeout:
payload['timeout'] = timeout
if message_thread_id:
payload['message_thread_id'] = message_thread_id
return await _process_request(token, method_url, params=payload)