Merge pull request #1735 from coder2020official/class_params

⚙️ Added some frequent parameters to classes(see full list)
This commit is contained in:
_run 2022-09-23 22:06:09 +04:00 committed by GitHub
commit dafafd2ad2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 218 additions and 23 deletions

View File

@ -131,6 +131,18 @@ class TeleBot:
:param use_class_middlewares: Use class middlewares, defaults to False :param use_class_middlewares: Use class middlewares, defaults to False
:type use_class_middlewares: :obj:`bool`, optional :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__( def __init__(
@ -139,18 +151,32 @@ class TeleBot:
next_step_backend: Optional[HandlerBackend]=None, reply_backend: Optional[HandlerBackend]=None, next_step_backend: Optional[HandlerBackend]=None, reply_backend: Optional[HandlerBackend]=None,
exception_handler: Optional[ExceptionHandler]=None, last_update_id: Optional[int]=0, exception_handler: Optional[ExceptionHandler]=None, last_update_id: Optional[int]=0,
suppress_middleware_excepions: Optional[bool]=False, state_storage: Optional[StateStorageBase]=StateMemoryStorage(), 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 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 self.exc_info = None
# states & register_next_step_handler
self.current_states = state_storage
self.next_step_backend = next_step_backend self.next_step_backend = next_step_backend
if not self.next_step_backend: if not self.next_step_backend:
self.next_step_backend = MemoryHandlerBackend() self.next_step_backend = MemoryHandlerBackend()
@ -159,8 +185,9 @@ class TeleBot:
if not self.reply_backend: if not self.reply_backend:
self.reply_backend = MemoryHandlerBackend() self.reply_backend = MemoryHandlerBackend()
# handlers
self.exception_handler = exception_handler self.exception_handler = exception_handler
self.update_listener = []
self.message_handlers = [] self.message_handlers = []
self.edited_message_handlers = [] self.edited_message_handlers = []
self.channel_post_handlers = [] self.channel_post_handlers = []
@ -178,8 +205,7 @@ class TeleBot:
self.custom_filters = {} self.custom_filters = {}
self.state_handlers = [] self.state_handlers = []
self.current_states = state_storage # middlewares
self.use_class_middlewares = use_class_middlewares self.use_class_middlewares = use_class_middlewares
if apihelper.ENABLE_MIDDLEWARE and not use_class_middlewares: if apihelper.ENABLE_MIDDLEWARE and not use_class_middlewares:
self.typed_middleware_handlers = { 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.' '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 self.middlewares = [] if use_class_middlewares else None
# threads
self.threaded = threaded self.threaded = threaded
if self.threaded: if self.threaded:
self.worker_pool = util.ThreadPool(self, num_threads=num_threads) self.worker_pool = util.ThreadPool(self, num_threads=num_threads)
@ -1444,6 +1472,10 @@ class TeleBot:
:rtype: :class:`telebot.types.Message` :rtype: :class:`telebot.types.Message`
""" """
parse_mode = self.parse_mode if (parse_mode is None) else parse_mode 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( return types.Message.de_json(
apihelper.send_message( apihelper.send_message(
@ -1482,6 +1514,9 @@ class TeleBot:
:return: On success, the sent Message is returned. :return: On success, the sent Message is returned.
:rtype: :class:`telebot.types.Message` :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( return types.Message.de_json(
apihelper.forward_message(self.token, chat_id, from_chat_id, message_id, disable_notification, timeout, protect_content)) 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. :return: On success, the sent Message is returned.
:rtype: :class:`telebot.types.Message` :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( return types.MessageID.de_json(
apihelper.copy_message(self.token, chat_id, from_chat_id, message_id, caption, parse_mode, caption_entities, 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, 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. :return: On success, the sent Message is returned.
:rtype: :class:`telebot.types.Message` :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( return types.Message.de_json(
apihelper.send_dice( apihelper.send_dice(
self.token, chat_id, emoji, disable_notification, reply_to_message_id, self.token, chat_id, emoji, disable_notification, reply_to_message_id,
@ -1684,6 +1728,9 @@ class TeleBot:
:rtype: :class:`telebot.types.Message` :rtype: :class:`telebot.types.Message`
""" """
parse_mode = self.parse_mode if (parse_mode is None) else parse_mode 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( return types.Message.de_json(
apihelper.send_photo( apihelper.send_photo(
@ -1769,6 +1816,9 @@ class TeleBot:
:rtype: :class:`telebot.types.Message` :rtype: :class:`telebot.types.Message`
""" """
parse_mode = self.parse_mode if (parse_mode is None) else parse_mode 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( return types.Message.de_json(
apihelper.send_audio( apihelper.send_audio(
@ -1837,6 +1887,9 @@ class TeleBot:
:return: On success, the sent Message is returned. :return: On success, the sent Message is returned.
""" """
parse_mode = self.parse_mode if (parse_mode is None) else parse_mode 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( return types.Message.de_json(
apihelper.send_voice( apihelper.send_voice(
@ -1917,6 +1970,10 @@ class TeleBot:
:rtype: :class:`telebot.types.Message` :rtype: :class:`telebot.types.Message`
""" """
parse_mode = self.parse_mode if (parse_mode is None) else parse_mode 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): if data and not(document):
# function typo miss compatibility # function typo miss compatibility
document = data document = data
@ -1981,9 +2038,14 @@ class TeleBot:
:return: On success, the sent Message is returned. :return: On success, the sent Message is returned.
:rtype: :class:`telebot.types.Message` :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): if data and not(sticker):
# function typo miss compatibility # function typo miss compatibility
sticker = data sticker = data
return types.Message.de_json( return types.Message.de_json(
apihelper.send_data( apihelper.send_data(
self.token, chat_id, sticker, 'sticker', self.token, chat_id, sticker, 'sticker',
@ -2071,6 +2133,10 @@ class TeleBot:
:rtype: :class:`telebot.types.Message` :rtype: :class:`telebot.types.Message`
""" """
parse_mode = self.parse_mode if (parse_mode is None) else parse_mode 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): if data and not(video):
# function typo miss compatibility # function typo miss compatibility
video = data video = data
@ -2157,6 +2223,9 @@ class TeleBot:
:rtype: :class:`telebot.types.Message` :rtype: :class:`telebot.types.Message`
""" """
parse_mode = self.parse_mode if (parse_mode is None) else parse_mode 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( return types.Message.de_json(
apihelper.send_animation( apihelper.send_animation(
@ -2224,6 +2293,10 @@ class TeleBot:
:return: On success, the sent Message is returned. :return: On success, the sent Message is returned.
:rtype: :class:`telebot.types.Message` :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( return types.Message.de_json(
apihelper.send_video_note( apihelper.send_video_note(
self.token, chat_id, data, duration, length, reply_to_message_id, reply_markup, 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. :return: On success, an array of Messages that were sent is returned.
:rtype: List[types.Message] :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( result = apihelper.send_media_group(
self.token, chat_id, media, disable_notification, reply_to_message_id, timeout, self.token, chat_id, media, disable_notification, reply_to_message_id, timeout,
allow_sending_without_reply, protect_content) allow_sending_without_reply, protect_content)
@ -2338,6 +2415,10 @@ class TeleBot:
:return: On success, the sent Message is returned. :return: On success, the sent Message is returned.
:rtype: :class:`telebot.types.Message` :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( return types.Message.de_json(
apihelper.send_location( apihelper.send_location(
self.token, chat_id, latitude, longitude, live_period, self.token, chat_id, latitude, longitude, live_period,
@ -2509,6 +2590,10 @@ class TeleBot:
:return: On success, the sent Message is returned. :return: On success, the sent Message is returned.
:rtype: :class:`telebot.types.Message` :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( return types.Message.de_json(
apihelper.send_venue( apihelper.send_venue(
self.token, chat_id, latitude, longitude, title, address, foursquare_id, foursquare_type, 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. :return: On success, the sent Message is returned.
:rtype: :class:`telebot.types.Message` :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( return types.Message.de_json(
apihelper.send_contact( apihelper.send_contact(
self.token, chat_id, phone_number, first_name, last_name, vcard, self.token, chat_id, phone_number, first_name, last_name, vcard,
@ -3322,6 +3411,8 @@ class TeleBot:
:return: True on success. :return: True on success.
:rtype: :obj:`bool` :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) 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: 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` :rtype: :obj:`types.Message` or :obj:`bool`
""" """
parse_mode = self.parse_mode if (parse_mode is None) else parse_mode 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, result = apihelper.edit_message_text(self.token, text, chat_id, message_id, inline_message_id, parse_mode,
entities, disable_web_page_preview, reply_markup) entities, disable_web_page_preview, reply_markup)
@ -3515,6 +3607,10 @@ class TeleBot:
:return: On success, the sent Message is returned. :return: On success, the sent Message is returned.
:rtype: :obj:`types.Message` :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( result = apihelper.send_game(
self.token, chat_id, game_short_name, disable_notification, self.token, chat_id, game_short_name, disable_notification,
reply_to_message_id, reply_markup, timeout, reply_to_message_id, reply_markup, timeout,
@ -3717,6 +3813,10 @@ class TeleBot:
:return: On success, the sent Message is returned. :return: On success, the sent Message is returned.
:rtype: :obj:`types.Message` :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( result = apihelper.send_invoice(
self.token, chat_id, title, description, invoice_payload, provider_token, self.token, chat_id, title, description, invoice_payload, provider_token,
currency, prices, start_parameter, photo_url, photo_size, photo_width, currency, prices, start_parameter, photo_url, photo_size, photo_width,
@ -3918,6 +4018,10 @@ class TeleBot:
:return: On success, the sent Message is returned. :return: On success, the sent Message is returned.
:rtype: :obj:`types.Message` :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): if isinstance(question, types.Poll):
raise RuntimeError("The send_poll signature was changed, please see send_poll function details.") raise RuntimeError("The send_poll signature was changed, please see send_poll function details.")

View File

@ -3,7 +3,6 @@ from datetime import datetime
import logging import logging
import re import re
import time
import traceback import traceback
from typing import Any, Awaitable, Callable, List, Optional, Union from typing import Any, Awaitable, Callable, List, Optional, Union
@ -99,21 +98,45 @@ class AsyncTeleBot:
:param state_storage: Storage for states, defaults to StateMemoryStorage() :param state_storage: Storage for states, defaults to StateMemoryStorage()
:type state_storage: :class:`telebot.asyncio_storage.StateMemoryStorage`, optional :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, 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.token = token
self.offset = offset self.offset = offset
self.token = token
# properties
self.parse_mode = parse_mode 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.update_listener = []
self.exception_handler = exception_handler self.exception_handler = exception_handler
self.message_handlers = [] self.message_handlers = []
self.edited_message_handlers = [] self.edited_message_handlers = []
self.channel_post_handlers = [] self.channel_post_handlers = []
@ -130,9 +153,6 @@ class AsyncTeleBot:
self.chat_join_request_handlers = [] self.chat_join_request_handlers = []
self.custom_filters = {} self.custom_filters = {}
self.state_handlers = [] self.state_handlers = []
self.current_states = state_storage
self.middlewares = [] self.middlewares = []
async def close_session(self): async def close_session(self):
@ -2277,6 +2297,10 @@ class AsyncTeleBot:
:rtype: :class:`telebot.types.Message` :rtype: :class:`telebot.types.Message`
""" """
parse_mode = self.parse_mode if (parse_mode is None) else parse_mode 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( return types.Message.de_json(
await asyncio_helper.send_message( await asyncio_helper.send_message(
@ -2315,6 +2339,9 @@ class AsyncTeleBot:
:return: On success, the sent Message is returned. :return: On success, the sent Message is returned.
:rtype: :class:`telebot.types.Message` :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( return types.Message.de_json(
await asyncio_helper.forward_message(self.token, chat_id, from_chat_id, message_id, disable_notification, timeout, protect_content)) 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` :rtype: :class:`telebot.types.Message`
""" """
parse_mode = self.parse_mode if (parse_mode is None) else parse_mode 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( return types.MessageID.de_json(
await asyncio_helper.copy_message(self.token, chat_id, from_chat_id, message_id, caption, parse_mode, caption_entities, 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. :return: On success, the sent Message is returned.
:rtype: :class:`telebot.types.Message` :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( return types.Message.de_json(
await asyncio_helper.send_dice( await asyncio_helper.send_dice(
self.token, chat_id, emoji, disable_notification, reply_to_message_id, self.token, chat_id, emoji, disable_notification, reply_to_message_id,
@ -2517,6 +2551,9 @@ class AsyncTeleBot:
:rtype: :class:`telebot.types.Message` :rtype: :class:`telebot.types.Message`
""" """
parse_mode = self.parse_mode if (parse_mode is None) else parse_mode 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( return types.Message.de_json(
await asyncio_helper.send_photo( await asyncio_helper.send_photo(
@ -2601,6 +2638,9 @@ class AsyncTeleBot:
:rtype: :class:`telebot.types.Message` :rtype: :class:`telebot.types.Message`
""" """
parse_mode = self.parse_mode if (parse_mode is None) else parse_mode 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( return types.Message.de_json(
await asyncio_helper.send_audio( await asyncio_helper.send_audio(
@ -2668,6 +2708,9 @@ class AsyncTeleBot:
:return: On success, the sent Message is returned. :return: On success, the sent Message is returned.
""" """
parse_mode = self.parse_mode if (parse_mode is None) else parse_mode 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( return types.Message.de_json(
await asyncio_helper.send_voice( await asyncio_helper.send_voice(
@ -2747,6 +2790,10 @@ class AsyncTeleBot:
:rtype: :class:`telebot.types.Message` :rtype: :class:`telebot.types.Message`
""" """
parse_mode = self.parse_mode if (parse_mode is None) else parse_mode 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): if data and not(document):
# function typo miss compatibility # function typo miss compatibility
document = data document = data
@ -2807,6 +2854,10 @@ class AsyncTeleBot:
:return: On success, the sent Message is returned. :return: On success, the sent Message is returned.
:rtype: :class:`telebot.types.Message` :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): if data and not(sticker):
# function typo miss compatibility # function typo miss compatibility
logger.warning("send_sticker: data parameter is deprecated. Use sticker instead.") logger.warning("send_sticker: data parameter is deprecated. Use sticker instead.")
@ -2898,6 +2949,10 @@ class AsyncTeleBot:
:rtype: :class:`telebot.types.Message` :rtype: :class:`telebot.types.Message`
""" """
parse_mode = self.parse_mode if (parse_mode is None) else parse_mode 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): if data and not(video):
# function typo miss compatibility # function typo miss compatibility
logger.warning("send_sticker: data parameter is deprecated. Use video instead.") logger.warning("send_sticker: data parameter is deprecated. Use video instead.")
@ -2985,6 +3040,9 @@ class AsyncTeleBot:
:rtype: :class:`telebot.types.Message` :rtype: :class:`telebot.types.Message`
""" """
parse_mode = self.parse_mode if (parse_mode is None) else parse_mode 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( return types.Message.de_json(
await asyncio_helper.send_animation( await asyncio_helper.send_animation(
@ -3051,6 +3109,10 @@ class AsyncTeleBot:
:return: On success, the sent Message is returned. :return: On success, the sent Message is returned.
:rtype: :class:`telebot.types.Message` :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( return types.Message.de_json(
await asyncio_helper.send_video_note( await asyncio_helper.send_video_note(
self.token, chat_id, data, duration, length, reply_to_message_id, reply_markup, 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. :return: On success, an array of Messages that were sent is returned.
:rtype: List[types.Message] :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( result = await asyncio_helper.send_media_group(
self.token, chat_id, media, disable_notification, reply_to_message_id, timeout, self.token, chat_id, media, disable_notification, reply_to_message_id, timeout,
allow_sending_without_reply, protect_content) allow_sending_without_reply, protect_content)
@ -3163,6 +3229,10 @@ class AsyncTeleBot:
:return: On success, the sent Message is returned. :return: On success, the sent Message is returned.
:rtype: :class:`telebot.types.Message` :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( return types.Message.de_json(
await asyncio_helper.send_location( await asyncio_helper.send_location(
self.token, chat_id, latitude, longitude, live_period, self.token, chat_id, latitude, longitude, live_period,
@ -3333,6 +3403,10 @@ class AsyncTeleBot:
:return: On success, the sent Message is returned. :return: On success, the sent Message is returned.
:rtype: :class:`telebot.types.Message` :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( return types.Message.de_json(
await asyncio_helper.send_venue( await asyncio_helper.send_venue(
self.token, chat_id, latitude, longitude, title, address, foursquare_id, foursquare_type, 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. :return: On success, the sent Message is returned.
:rtype: :class:`telebot.types.Message` :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( return types.Message.de_json(
await asyncio_helper.send_contact( await asyncio_helper.send_contact(
self.token, chat_id, phone_number, first_name, last_name, vcard, self.token, chat_id, phone_number, first_name, last_name, vcard,
@ -4154,6 +4232,8 @@ class AsyncTeleBot:
:return: True on success. :return: True on success.
:rtype: :obj:`bool` :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) 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: 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` :rtype: :obj:`types.Message` or :obj:`bool`
""" """
parse_mode = self.parse_mode if (parse_mode is None) else parse_mode 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, 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) entities, disable_web_page_preview, reply_markup)
@ -4347,6 +4428,10 @@ class AsyncTeleBot:
:return: On success, the sent Message is returned. :return: On success, the sent Message is returned.
:rtype: :obj:`types.Message` :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( result = await asyncio_helper.send_game(
self.token, chat_id, game_short_name, disable_notification, self.token, chat_id, game_short_name, disable_notification,
reply_to_message_id, reply_markup, timeout, reply_to_message_id, reply_markup, timeout,
@ -4548,6 +4633,10 @@ class AsyncTeleBot:
:return: On success, the sent Message is returned. :return: On success, the sent Message is returned.
:rtype: :obj:`types.Message` :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( result = await asyncio_helper.send_invoice(
self.token, chat_id, title, description, invoice_payload, provider_token, self.token, chat_id, title, description, invoice_payload, provider_token,
currency, prices, start_parameter, photo_url, photo_size, photo_width, currency, prices, start_parameter, photo_url, photo_size, photo_width,
@ -4749,12 +4838,14 @@ class AsyncTeleBot:
:return: On success, the sent Message is returned. :return: On success, the sent Message is returned.
:rtype: :obj:`types.Message` :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): if isinstance(question, types.Poll):
raise RuntimeError("The send_poll signature was changed, please see send_poll function details.") 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( return types.Message.de_json(
await asyncio_helper.send_poll( await asyncio_helper.send_poll(
self.token, chat_id, self.token, chat_id,