Set default disable_web_page_preview

This commit is contained in:
samuelfirst 2021-09-20 23:11:38 +03:00
parent 583f00ce31
commit 301a43e26b
2 changed files with 26 additions and 1 deletions

View file

@ -37,6 +37,7 @@ class BaseBot:
proxy_auth: Optional[aiohttp.BasicAuth] = None,
validate_token: Optional[base.Boolean] = True,
parse_mode: typing.Optional[base.String] = None,
disable_web_page_preview: Optional[base.Boolean] = None,
timeout: typing.Optional[typing.Union[base.Integer, base.Float, aiohttp.ClientTimeout]] = None,
server: TelegramAPIServer = TELEGRAM_PRODUCTION
):
@ -57,6 +58,8 @@ class BaseBot:
:type validate_token: :obj:`bool`
:param parse_mode: You can set default parse mode
:type parse_mode: :obj:`str`
:param disable_web_page_preview: You can set default disable web page preview parameter
:type disable_web_page_preview: :obj:`bool`
:param timeout: Request timeout
:type timeout: :obj:`typing.Optional[typing.Union[base.Integer, base.Float, aiohttp.ClientTimeout]]`
:param server: Telegram Bot API Server endpoint.
@ -107,6 +110,8 @@ class BaseBot:
self.parse_mode = parse_mode
self.disable_web_page_preview = disable_web_page_preview
async def get_new_session(self) -> aiohttp.ClientSession:
return aiohttp.ClientSession(
connector=self._connector_class(**self._connector_init),
@ -333,5 +338,22 @@ class BaseBot:
def parse_mode(self):
self.parse_mode = None
@property
def disable_web_page_preview(self):
return getattr(self, '_disable_web_page_preview', None)
@disable_web_page_preview.setter
def disable_web_page_preview(self, value):
if value is None:
setattr(self, '_disable_web_page_preview', None)
else:
if not isinstance(value, bool):
raise TypeError(f"Disable web page preview must be bool, not {type(value)}")
setattr(self, '_disable_web_page_preview', value)
@disable_web_page_preview.deleter
def disable_web_page_preview(self):
self.disable_web_page_preview = None
def check_auth_widget(self, data):
return check_integrity(self.__token, data)

View file

@ -323,6 +323,8 @@ class Bot(BaseBot, DataMixin, ContextInstanceMixin):
payload = generate_payload(**locals())
if self.parse_mode and entities is None:
payload.setdefault('parse_mode', self.parse_mode)
if self.disable_web_page_preview:
payload.setdefault('disable_web_page_preview', self.disable_web_page_preview)
result = await self.request(api.Methods.SEND_MESSAGE, payload)
return types.Message(**result)
@ -422,7 +424,6 @@ class Bot(BaseBot, DataMixin, ContextInstanceMixin):
reply_markup = prepare_arg(reply_markup)
caption_entities = prepare_arg(caption_entities)
payload = generate_payload(**locals())
if self.parse_mode and caption_entities is None:
payload.setdefault('parse_mode', self.parse_mode)
@ -2543,6 +2544,8 @@ class Bot(BaseBot, DataMixin, ContextInstanceMixin):
payload = generate_payload(**locals())
if self.parse_mode and entities is None:
payload.setdefault('parse_mode', self.parse_mode)
if self.disable_web_page_preview:
payload.setdefault('disable_web_page_preview', self.disable_web_page_preview)
result = await self.request(api.Methods.EDIT_MESSAGE_TEXT, payload)
if isinstance(result, bool):