From e002484a9bc89ffdbfad7c3d85c6781c3d8c6e64 Mon Sep 17 00:00:00 2001 From: coder2020official Date: Fri, 23 Sep 2022 21:52:40 +0400 Subject: [PATCH] =?UTF-8?q?=E2=9A=99=EF=B8=8F=20Added=20some=20frequent=20?= =?UTF-8?q?parameters=20to=20classes(see=20full=20list)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added: - disable_web_page_preview - disable_notification - protect_content - allow_sending_without_reply --- telebot/__init__.py | 124 +++++++++++++++++++++++++++++++++++---- telebot/async_telebot.py | 117 ++++++++++++++++++++++++++++++++---- 2 files changed, 218 insertions(+), 23 deletions(-) diff --git a/telebot/__init__.py b/telebot/__init__.py index 026d32e..b0c546f 100644 --- a/telebot/__init__.py +++ b/telebot/__init__.py @@ -131,6 +131,18 @@ class TeleBot: :param use_class_middlewares: Use class middlewares, defaults to False :type use_class_middlewares: :obj:`bool`, optional + + :param disable_web_page_preview: Default value for disable_web_page_preview, defaults to None + :type disable_web_page_preview: :obj:`bool`, optional + + :param disable_notification: Default value for disable_notification, defaults to None + :type disable_notification: :obj:`bool`, optional + + :param protect_content: Default value for protect_content, defaults to None + :type protect_content: :obj:`bool`, optional + + :param allow_sending_without_reply: Default value for allow_sending_without_reply, defaults to None + :type allow_sending_without_reply: :obj:`bool`, optional """ def __init__( @@ -139,18 +151,32 @@ class TeleBot: next_step_backend: Optional[HandlerBackend]=None, reply_backend: Optional[HandlerBackend]=None, exception_handler: Optional[ExceptionHandler]=None, last_update_id: Optional[int]=0, suppress_middleware_excepions: Optional[bool]=False, state_storage: Optional[StateStorageBase]=StateMemoryStorage(), - use_class_middlewares: Optional[bool]=False + use_class_middlewares: Optional[bool]=False, + disable_web_page_preview: Optional[bool]=None, + disable_notification: Optional[bool]=None, + protect_content: Optional[bool]=None, + allow_sending_without_reply: Optional[bool]=None ): - self.token = token - self.parse_mode = parse_mode - self.update_listener = [] - self.skip_pending = skip_pending - self.suppress_middleware_excepions = suppress_middleware_excepions - self.__stop_polling = threading.Event() + # update-related + self.token = token + self.skip_pending = skip_pending # backward compatibility self.last_update_id = last_update_id + + # propertys + self.suppress_middleware_excepions = suppress_middleware_excepions + self.parse_mode = parse_mode + self.disable_web_page_preview = disable_web_page_preview + self.disable_notification = disable_notification + self.protect_content = protect_content + self.allow_sending_without_reply = allow_sending_without_reply + + # threading-related + self.__stop_polling = threading.Event() self.exc_info = None + # states & register_next_step_handler + self.current_states = state_storage self.next_step_backend = next_step_backend if not self.next_step_backend: self.next_step_backend = MemoryHandlerBackend() @@ -159,8 +185,9 @@ class TeleBot: if not self.reply_backend: self.reply_backend = MemoryHandlerBackend() + # handlers self.exception_handler = exception_handler - + self.update_listener = [] self.message_handlers = [] self.edited_message_handlers = [] self.channel_post_handlers = [] @@ -178,8 +205,7 @@ class TeleBot: self.custom_filters = {} self.state_handlers = [] - self.current_states = state_storage - + # middlewares self.use_class_middlewares = use_class_middlewares if apihelper.ENABLE_MIDDLEWARE and not use_class_middlewares: self.typed_middleware_handlers = { @@ -205,6 +231,8 @@ class TeleBot: 'You are using class based middlewares while having ENABLE_MIDDLEWARE set to True. This is not recommended.' ) self.middlewares = [] if use_class_middlewares else None + + # threads self.threaded = threaded if self.threaded: self.worker_pool = util.ThreadPool(self, num_threads=num_threads) @@ -1444,6 +1472,10 @@ class TeleBot: :rtype: :class:`telebot.types.Message` """ parse_mode = self.parse_mode if (parse_mode is None) else parse_mode + disable_web_page_preview = self.disable_web_page_preview if (disable_web_page_preview is None) else disable_web_page_preview + disable_notification = self.disable_notification if (disable_notification is None) else disable_notification + protect_content = self.protect_content if (protect_content is None) else protect_content + allow_sending_without_reply = self.allow_sending_without_reply if (allow_sending_without_reply is None) else allow_sending_without_reply return types.Message.de_json( apihelper.send_message( @@ -1482,6 +1514,9 @@ class TeleBot: :return: On success, the sent Message is returned. :rtype: :class:`telebot.types.Message` """ + disable_notification = self.disable_notification if (disable_notification is None) else disable_notification + protect_content = self.protect_content if (protect_content is None) else protect_content + return types.Message.de_json( apihelper.forward_message(self.token, chat_id, from_chat_id, message_id, disable_notification, timeout, protect_content)) @@ -1544,6 +1579,11 @@ class TeleBot: :return: On success, the sent Message is returned. :rtype: :class:`telebot.types.Message` """ + disable_notification = self.disable_notification if (disable_notification is None) else disable_notification + parse_mode = self.parse_mode if (parse_mode is None) else parse_mode + protect_content = self.protect_content if (protect_content is None) else protect_content + allow_sending_without_reply = self.allow_sending_without_reply if (allow_sending_without_reply is None) else allow_sending_without_reply + return types.MessageID.de_json( apihelper.copy_message(self.token, chat_id, from_chat_id, message_id, caption, parse_mode, caption_entities, disable_notification, reply_to_message_id, allow_sending_without_reply, reply_markup, @@ -1621,6 +1661,10 @@ class TeleBot: :return: On success, the sent Message is returned. :rtype: :class:`telebot.types.Message` """ + disable_notification = self.disable_notification if (disable_notification is None) else disable_notification + protect_content = self.protect_content if (protect_content is None) else protect_content + allow_sending_without_reply = self.allow_sending_without_reply if (allow_sending_without_reply is None) else allow_sending_without_reply + return types.Message.de_json( apihelper.send_dice( self.token, chat_id, emoji, disable_notification, reply_to_message_id, @@ -1684,6 +1728,9 @@ class TeleBot: :rtype: :class:`telebot.types.Message` """ parse_mode = self.parse_mode if (parse_mode is None) else parse_mode + disable_notification = self.disable_notification if (disable_notification is None) else disable_notification + protect_content = self.protect_content if (protect_content is None) else protect_content + allow_sending_without_reply = self.allow_sending_without_reply if (allow_sending_without_reply is None) else allow_sending_without_reply return types.Message.de_json( apihelper.send_photo( @@ -1769,6 +1816,9 @@ class TeleBot: :rtype: :class:`telebot.types.Message` """ parse_mode = self.parse_mode if (parse_mode is None) else parse_mode + disable_notification = self.disable_notification if (disable_notification is None) else disable_notification + protect_content = self.protect_content if (protect_content is None) else protect_content + allow_sending_without_reply = self.allow_sending_without_reply if (allow_sending_without_reply is None) else allow_sending_without_reply return types.Message.de_json( apihelper.send_audio( @@ -1837,6 +1887,9 @@ class TeleBot: :return: On success, the sent Message is returned. """ parse_mode = self.parse_mode if (parse_mode is None) else parse_mode + disable_notification = self.disable_notification if (disable_notification is None) else disable_notification + protect_content = self.protect_content if (protect_content is None) else protect_content + allow_sending_without_reply = self.allow_sending_without_reply if (allow_sending_without_reply is None) else allow_sending_without_reply return types.Message.de_json( apihelper.send_voice( @@ -1917,6 +1970,10 @@ class TeleBot: :rtype: :class:`telebot.types.Message` """ parse_mode = self.parse_mode if (parse_mode is None) else parse_mode + disable_notification = self.disable_notification if (disable_notification is None) else disable_notification + protect_content = self.protect_content if (protect_content is None) else protect_content + allow_sending_without_reply = self.allow_sending_without_reply if (allow_sending_without_reply is None) else allow_sending_without_reply + if data and not(document): # function typo miss compatibility document = data @@ -1981,9 +2038,14 @@ class TeleBot: :return: On success, the sent Message is returned. :rtype: :class:`telebot.types.Message` """ + disable_notification = self.disable_notification if (disable_notification is None) else disable_notification + protect_content = self.protect_content if (protect_content is None) else protect_content + allow_sending_without_reply = self.allow_sending_without_reply if (allow_sending_without_reply is None) else allow_sending_without_reply + if data and not(sticker): # function typo miss compatibility sticker = data + return types.Message.de_json( apihelper.send_data( self.token, chat_id, sticker, 'sticker', @@ -2071,6 +2133,10 @@ class TeleBot: :rtype: :class:`telebot.types.Message` """ parse_mode = self.parse_mode if (parse_mode is None) else parse_mode + disable_notification = self.disable_notification if (disable_notification is None) else disable_notification + protect_content = self.protect_content if (protect_content is None) else protect_content + allow_sending_without_reply = self.allow_sending_without_reply if (allow_sending_without_reply is None) else allow_sending_without_reply + if data and not(video): # function typo miss compatibility video = data @@ -2157,6 +2223,9 @@ class TeleBot: :rtype: :class:`telebot.types.Message` """ parse_mode = self.parse_mode if (parse_mode is None) else parse_mode + disable_notification = self.disable_notification if (disable_notification is None) else disable_notification + protect_content = self.protect_content if (protect_content is None) else protect_content + allow_sending_without_reply = self.allow_sending_without_reply if (allow_sending_without_reply is None) else allow_sending_without_reply return types.Message.de_json( apihelper.send_animation( @@ -2224,6 +2293,10 @@ class TeleBot: :return: On success, the sent Message is returned. :rtype: :class:`telebot.types.Message` """ + disable_notification = self.disable_notification if (disable_notification is None) else disable_notification + protect_content = self.protect_content if (protect_content is None) else protect_content + allow_sending_without_reply = self.allow_sending_without_reply if (allow_sending_without_reply is None) else allow_sending_without_reply + return types.Message.de_json( apihelper.send_video_note( self.token, chat_id, data, duration, length, reply_to_message_id, reply_markup, @@ -2270,6 +2343,10 @@ class TeleBot: :return: On success, an array of Messages that were sent is returned. :rtype: List[types.Message] """ + disable_notification = self.disable_notification if (disable_notification is None) else disable_notification + protect_content = self.protect_content if (protect_content is None) else protect_content + allow_sending_without_reply = self.allow_sending_without_reply if (allow_sending_without_reply is None) else allow_sending_without_reply + result = apihelper.send_media_group( self.token, chat_id, media, disable_notification, reply_to_message_id, timeout, allow_sending_without_reply, protect_content) @@ -2338,6 +2415,10 @@ class TeleBot: :return: On success, the sent Message is returned. :rtype: :class:`telebot.types.Message` """ + disable_notification = self.disable_notification if (disable_notification is None) else disable_notification + protect_content = self.protect_content if (protect_content is None) else protect_content + allow_sending_without_reply = self.allow_sending_without_reply if (allow_sending_without_reply is None) else allow_sending_without_reply + return types.Message.de_json( apihelper.send_location( self.token, chat_id, latitude, longitude, live_period, @@ -2509,6 +2590,10 @@ class TeleBot: :return: On success, the sent Message is returned. :rtype: :class:`telebot.types.Message` """ + disable_notification = self.disable_notification if (disable_notification is None) else disable_notification + protect_content = self.protect_content if (protect_content is None) else protect_content + allow_sending_without_reply = self.allow_sending_without_reply if (allow_sending_without_reply is None) else allow_sending_without_reply + return types.Message.de_json( apihelper.send_venue( self.token, chat_id, latitude, longitude, title, address, foursquare_id, foursquare_type, @@ -2571,6 +2656,10 @@ class TeleBot: :return: On success, the sent Message is returned. :rtype: :class:`telebot.types.Message` """ + disable_notification = self.disable_notification if (disable_notification is None) else disable_notification + protect_content = self.protect_content if (protect_content is None) else protect_content + allow_sending_without_reply = self.allow_sending_without_reply if (allow_sending_without_reply is None) else allow_sending_without_reply + return types.Message.de_json( apihelper.send_contact( self.token, chat_id, phone_number, first_name, last_name, vcard, @@ -3322,6 +3411,8 @@ class TeleBot: :return: True on success. :rtype: :obj:`bool` """ + disable_notification = self.disable_notification if (disable_notification is None) else disable_notification + return apihelper.pin_chat_message(self.token, chat_id, message_id, disable_notification) def unpin_chat_message(self, chat_id: Union[int, str], message_id: Optional[int]=None) -> bool: @@ -3403,6 +3494,7 @@ class TeleBot: :rtype: :obj:`types.Message` or :obj:`bool` """ parse_mode = self.parse_mode if (parse_mode is None) else parse_mode + disable_web_page_preview = self.disable_web_page_preview if (disable_web_page_preview is None) else disable_web_page_preview result = apihelper.edit_message_text(self.token, text, chat_id, message_id, inline_message_id, parse_mode, entities, disable_web_page_preview, reply_markup) @@ -3515,6 +3607,10 @@ class TeleBot: :return: On success, the sent Message is returned. :rtype: :obj:`types.Message` """ + disable_notification = self.disable_notification if (disable_notification is None) else disable_notification + protect_content = self.protect_content if (protect_content is None) else protect_content + allow_sending_without_reply = self.allow_sending_without_reply if (allow_sending_without_reply is None) else allow_sending_without_reply + result = apihelper.send_game( self.token, chat_id, game_short_name, disable_notification, reply_to_message_id, reply_markup, timeout, @@ -3717,6 +3813,10 @@ class TeleBot: :return: On success, the sent Message is returned. :rtype: :obj:`types.Message` """ + disable_notification = self.disable_notification if (disable_notification is None) else disable_notification + protect_content = self.protect_content if (protect_content is None) else protect_content + allow_sending_without_reply = self.allow_sending_without_reply if (allow_sending_without_reply is None) else allow_sending_without_reply + result = apihelper.send_invoice( self.token, chat_id, title, description, invoice_payload, provider_token, currency, prices, start_parameter, photo_url, photo_size, photo_width, @@ -3918,6 +4018,10 @@ class TeleBot: :return: On success, the sent Message is returned. :rtype: :obj:`types.Message` """ + disable_notification = self.disable_notification if (disable_notification is None) else disable_notification + protect_content = self.protect_content if (protect_content is None) else protect_content + allow_sending_without_reply = self.allow_sending_without_reply if (allow_sending_without_reply is None) else allow_sending_without_reply + if isinstance(question, types.Poll): raise RuntimeError("The send_poll signature was changed, please see send_poll function details.") diff --git a/telebot/async_telebot.py b/telebot/async_telebot.py index 389e200..ccbc88a 100644 --- a/telebot/async_telebot.py +++ b/telebot/async_telebot.py @@ -3,7 +3,6 @@ from datetime import datetime import logging import re -import time import traceback from typing import Any, Awaitable, Callable, List, Optional, Union @@ -99,21 +98,45 @@ class AsyncTeleBot: :param state_storage: Storage for states, defaults to StateMemoryStorage() :type state_storage: :class:`telebot.asyncio_storage.StateMemoryStorage`, optional + :param disable_web_page_preview: Default value for disable_web_page_preview, defaults to None + :type disable_web_page_preview: :obj:`bool`, optional + + :param disable_notification: Default value for disable_notification, defaults to None + :type disable_notification: :obj:`bool`, optional + + :param protect_content: Default value for protect_content, defaults to None + :type protect_content: :obj:`bool`, optional + + :param allow_sending_without_reply: Default value for allow_sending_without_reply, defaults to None + :type allow_sending_without_reply: :obj:`bool`, optional + """ def __init__(self, token: str, parse_mode: Optional[str]=None, offset: Optional[int]=None, - exception_handler: Optional[ExceptionHandler]=None, state_storage: Optional[StateStorageBase]=StateMemoryStorage()) -> None: + exception_handler: Optional[ExceptionHandler]=None, + state_storage: Optional[StateStorageBase]=StateMemoryStorage(), + disable_web_page_preview: Optional[bool]=None, + disable_notification: Optional[bool]=None, + protect_content: Optional[bool]=None, + allow_sending_without_reply: Optional[bool]=None) -> None: + + # update-related self.token = token - self.offset = offset - self.token = token + + # properties self.parse_mode = parse_mode + self.disable_web_page_preview = disable_web_page_preview + self.disable_notification = disable_notification + self.protect_content = protect_content + self.allow_sending_without_reply = allow_sending_without_reply + + # states + self.current_states = state_storage + + # handlers self.update_listener = [] - - - self.exception_handler = exception_handler - self.message_handlers = [] self.edited_message_handlers = [] self.channel_post_handlers = [] @@ -130,9 +153,6 @@ class AsyncTeleBot: self.chat_join_request_handlers = [] self.custom_filters = {} self.state_handlers = [] - - self.current_states = state_storage - self.middlewares = [] async def close_session(self): @@ -2277,6 +2297,10 @@ class AsyncTeleBot: :rtype: :class:`telebot.types.Message` """ parse_mode = self.parse_mode if (parse_mode is None) else parse_mode + disable_web_page_preview = self.disable_web_page_preview if (disable_web_page_preview is None) else disable_web_page_preview + disable_notification = self.disable_notification if (disable_notification is None) else disable_notification + protect_content = self.protect_content if (protect_content is None) else protect_content + allow_sending_without_reply = self.allow_sending_without_reply if (allow_sending_without_reply is None) else allow_sending_without_reply return types.Message.de_json( await asyncio_helper.send_message( @@ -2315,6 +2339,9 @@ class AsyncTeleBot: :return: On success, the sent Message is returned. :rtype: :class:`telebot.types.Message` """ + disable_notification = self.disable_notification if (disable_notification is None) else disable_notification + protect_content = self.protect_content if (protect_content is None) else protect_content + return types.Message.de_json( await asyncio_helper.forward_message(self.token, chat_id, from_chat_id, message_id, disable_notification, timeout, protect_content)) @@ -2377,6 +2404,9 @@ class AsyncTeleBot: :rtype: :class:`telebot.types.Message` """ parse_mode = self.parse_mode if (parse_mode is None) else parse_mode + disable_notification = self.disable_notification if (disable_notification is None) else disable_notification + protect_content = self.protect_content if (protect_content is None) else protect_content + allow_sending_without_reply = self.allow_sending_without_reply if (allow_sending_without_reply is None) else allow_sending_without_reply return types.MessageID.de_json( await asyncio_helper.copy_message(self.token, chat_id, from_chat_id, message_id, caption, parse_mode, caption_entities, @@ -2455,6 +2485,10 @@ class AsyncTeleBot: :return: On success, the sent Message is returned. :rtype: :class:`telebot.types.Message` """ + disable_notification = self.disable_notification if (disable_notification is None) else disable_notification + protect_content = self.protect_content if (protect_content is None) else protect_content + allow_sending_without_reply = self.allow_sending_without_reply if (allow_sending_without_reply is None) else allow_sending_without_reply + return types.Message.de_json( await asyncio_helper.send_dice( self.token, chat_id, emoji, disable_notification, reply_to_message_id, @@ -2517,6 +2551,9 @@ class AsyncTeleBot: :rtype: :class:`telebot.types.Message` """ parse_mode = self.parse_mode if (parse_mode is None) else parse_mode + disable_notification = self.disable_notification if (disable_notification is None) else disable_notification + protect_content = self.protect_content if (protect_content is None) else protect_content + allow_sending_without_reply = self.allow_sending_without_reply if (allow_sending_without_reply is None) else allow_sending_without_reply return types.Message.de_json( await asyncio_helper.send_photo( @@ -2601,6 +2638,9 @@ class AsyncTeleBot: :rtype: :class:`telebot.types.Message` """ parse_mode = self.parse_mode if (parse_mode is None) else parse_mode + disable_notification = self.disable_notification if (disable_notification is None) else disable_notification + protect_content = self.protect_content if (protect_content is None) else protect_content + allow_sending_without_reply = self.allow_sending_without_reply if (allow_sending_without_reply is None) else allow_sending_without_reply return types.Message.de_json( await asyncio_helper.send_audio( @@ -2668,6 +2708,9 @@ class AsyncTeleBot: :return: On success, the sent Message is returned. """ parse_mode = self.parse_mode if (parse_mode is None) else parse_mode + disable_notification = self.disable_notification if (disable_notification is None) else disable_notification + protect_content = self.protect_content if (protect_content is None) else protect_content + allow_sending_without_reply = self.allow_sending_without_reply if (allow_sending_without_reply is None) else allow_sending_without_reply return types.Message.de_json( await asyncio_helper.send_voice( @@ -2747,6 +2790,10 @@ class AsyncTeleBot: :rtype: :class:`telebot.types.Message` """ parse_mode = self.parse_mode if (parse_mode is None) else parse_mode + disable_notification = self.disable_notification if (disable_notification is None) else disable_notification + protect_content = self.protect_content if (protect_content is None) else protect_content + allow_sending_without_reply = self.allow_sending_without_reply if (allow_sending_without_reply is None) else allow_sending_without_reply + if data and not(document): # function typo miss compatibility document = data @@ -2807,6 +2854,10 @@ class AsyncTeleBot: :return: On success, the sent Message is returned. :rtype: :class:`telebot.types.Message` """ + disable_notification = self.disable_notification if (disable_notification is None) else disable_notification + protect_content = self.protect_content if (protect_content is None) else protect_content + allow_sending_without_reply = self.allow_sending_without_reply if (allow_sending_without_reply is None) else allow_sending_without_reply + if data and not(sticker): # function typo miss compatibility logger.warning("send_sticker: data parameter is deprecated. Use sticker instead.") @@ -2898,6 +2949,10 @@ class AsyncTeleBot: :rtype: :class:`telebot.types.Message` """ parse_mode = self.parse_mode if (parse_mode is None) else parse_mode + disable_notification = self.disable_notification if (disable_notification is None) else disable_notification + protect_content = self.protect_content if (protect_content is None) else protect_content + allow_sending_without_reply = self.allow_sending_without_reply if (allow_sending_without_reply is None) else allow_sending_without_reply + if data and not(video): # function typo miss compatibility logger.warning("send_sticker: data parameter is deprecated. Use video instead.") @@ -2985,6 +3040,9 @@ class AsyncTeleBot: :rtype: :class:`telebot.types.Message` """ parse_mode = self.parse_mode if (parse_mode is None) else parse_mode + disable_notification = self.disable_notification if (disable_notification is None) else disable_notification + protect_content = self.protect_content if (protect_content is None) else protect_content + allow_sending_without_reply = self.allow_sending_without_reply if (allow_sending_without_reply is None) else allow_sending_without_reply return types.Message.de_json( await asyncio_helper.send_animation( @@ -3051,6 +3109,10 @@ class AsyncTeleBot: :return: On success, the sent Message is returned. :rtype: :class:`telebot.types.Message` """ + disable_notification = self.disable_notification if (disable_notification is None) else disable_notification + protect_content = self.protect_content if (protect_content is None) else protect_content + allow_sending_without_reply = self.allow_sending_without_reply if (allow_sending_without_reply is None) else allow_sending_without_reply + return types.Message.de_json( await asyncio_helper.send_video_note( self.token, chat_id, data, duration, length, reply_to_message_id, reply_markup, @@ -3096,6 +3158,10 @@ class AsyncTeleBot: :return: On success, an array of Messages that were sent is returned. :rtype: List[types.Message] """ + disable_notification = self.disable_notification if (disable_notification is None) else disable_notification + protect_content = self.protect_content if (protect_content is None) else protect_content + allow_sending_without_reply = self.allow_sending_without_reply if (allow_sending_without_reply is None) else allow_sending_without_reply + result = await asyncio_helper.send_media_group( self.token, chat_id, media, disable_notification, reply_to_message_id, timeout, allow_sending_without_reply, protect_content) @@ -3163,6 +3229,10 @@ class AsyncTeleBot: :return: On success, the sent Message is returned. :rtype: :class:`telebot.types.Message` """ + disable_notification = self.disable_notification if (disable_notification is None) else disable_notification + protect_content = self.protect_content if (protect_content is None) else protect_content + allow_sending_without_reply = self.allow_sending_without_reply if (allow_sending_without_reply is None) else allow_sending_without_reply + return types.Message.de_json( await asyncio_helper.send_location( self.token, chat_id, latitude, longitude, live_period, @@ -3333,6 +3403,10 @@ class AsyncTeleBot: :return: On success, the sent Message is returned. :rtype: :class:`telebot.types.Message` """ + disable_notification = self.disable_notification if (disable_notification is None) else disable_notification + protect_content = self.protect_content if (protect_content is None) else protect_content + allow_sending_without_reply = self.allow_sending_without_reply if (allow_sending_without_reply is None) else allow_sending_without_reply + return types.Message.de_json( await asyncio_helper.send_venue( self.token, chat_id, latitude, longitude, title, address, foursquare_id, foursquare_type, @@ -3394,6 +3468,10 @@ class AsyncTeleBot: :return: On success, the sent Message is returned. :rtype: :class:`telebot.types.Message` """ + disable_notification = self.disable_notification if (disable_notification is None) else disable_notification + protect_content = self.protect_content if (protect_content is None) else protect_content + allow_sending_without_reply = self.allow_sending_without_reply if (allow_sending_without_reply is None) else allow_sending_without_reply + return types.Message.de_json( await asyncio_helper.send_contact( self.token, chat_id, phone_number, first_name, last_name, vcard, @@ -4154,6 +4232,8 @@ class AsyncTeleBot: :return: True on success. :rtype: :obj:`bool` """ + disable_notification = self.disable_notification if (disable_notification is None) else disable_notification + return await asyncio_helper.pin_chat_message(self.token, chat_id, message_id, disable_notification) async def unpin_chat_message(self, chat_id: Union[int, str], message_id: Optional[int]=None) -> bool: @@ -4235,6 +4315,7 @@ class AsyncTeleBot: :rtype: :obj:`types.Message` or :obj:`bool` """ parse_mode = self.parse_mode if (parse_mode is None) else parse_mode + disable_web_page_preview = self.disable_web_page_preview if (disable_web_page_preview is None) else disable_web_page_preview result = await asyncio_helper.edit_message_text(self.token, text, chat_id, message_id, inline_message_id, parse_mode, entities, disable_web_page_preview, reply_markup) @@ -4347,6 +4428,10 @@ class AsyncTeleBot: :return: On success, the sent Message is returned. :rtype: :obj:`types.Message` """ + disable_notification = self.disable_notification if (disable_notification is None) else disable_notification + protect_content = self.protect_content if (protect_content is None) else protect_content + allow_sending_without_reply = self.allow_sending_without_reply if (allow_sending_without_reply is None) else allow_sending_without_reply + result = await asyncio_helper.send_game( self.token, chat_id, game_short_name, disable_notification, reply_to_message_id, reply_markup, timeout, @@ -4548,6 +4633,10 @@ class AsyncTeleBot: :return: On success, the sent Message is returned. :rtype: :obj:`types.Message` """ + disable_notification = self.disable_notification if (disable_notification is None) else disable_notification + protect_content = self.protect_content if (protect_content is None) else protect_content + allow_sending_without_reply = self.allow_sending_without_reply if (allow_sending_without_reply is None) else allow_sending_without_reply + result = await asyncio_helper.send_invoice( self.token, chat_id, title, description, invoice_payload, provider_token, currency, prices, start_parameter, photo_url, photo_size, photo_width, @@ -4749,12 +4838,14 @@ class AsyncTeleBot: :return: On success, the sent Message is returned. :rtype: :obj:`types.Message` """ + disable_notification = self.disable_notification if (disable_notification is None) else disable_notification + protect_content = self.protect_content if (protect_content is None) else protect_content + allow_sending_without_reply = self.allow_sending_without_reply if (allow_sending_without_reply is None) else allow_sending_without_reply + explanation_parse_mode = self.parse_mode if (explanation_parse_mode is None) else explanation_parse_mode if isinstance(question, types.Poll): raise RuntimeError("The send_poll signature was changed, please see send_poll function details.") - explanation_parse_mode = self.parse_mode if (explanation_parse_mode is None) else explanation_parse_mode - return types.Message.de_json( await asyncio_helper.send_poll( self.token, chat_id,