mirror of
https://github.com/aiogram/aiogram.git
synced 2025-12-12 18:19:34 +00:00
Set default parse mode.
This commit is contained in:
parent
51b84cd78e
commit
44e61fc6ad
2 changed files with 33 additions and 1 deletions
|
|
@ -4,6 +4,7 @@ from typing import Dict, List, Optional, Union
|
||||||
|
|
||||||
import aiohttp
|
import aiohttp
|
||||||
|
|
||||||
|
from aiogram.types import ParseMode
|
||||||
from . import api
|
from . import api
|
||||||
from ..types import base
|
from ..types import base
|
||||||
from ..utils import json
|
from ..utils import json
|
||||||
|
|
@ -18,7 +19,8 @@ class BaseBot:
|
||||||
loop: Optional[Union[asyncio.BaseEventLoop, asyncio.AbstractEventLoop]] = None,
|
loop: Optional[Union[asyncio.BaseEventLoop, asyncio.AbstractEventLoop]] = None,
|
||||||
connections_limit: Optional[base.Integer] = 10,
|
connections_limit: Optional[base.Integer] = 10,
|
||||||
proxy: str = None, proxy_auth: Optional[aiohttp.BasicAuth] = None,
|
proxy: str = None, proxy_auth: Optional[aiohttp.BasicAuth] = None,
|
||||||
validate_token: Optional[bool] = True):
|
validate_token: Optional[bool] = True,
|
||||||
|
parse_mode=None):
|
||||||
"""
|
"""
|
||||||
Instructions how to get Bot token is found here: https://core.telegram.org/bots#3-how-do-i-create-a-bot
|
Instructions how to get Bot token is found here: https://core.telegram.org/bots#3-how-do-i-create-a-bot
|
||||||
|
|
||||||
|
|
@ -34,6 +36,8 @@ class BaseBot:
|
||||||
:type proxy_auth: Optional :obj:`aiohttp.BasicAuth`
|
:type proxy_auth: Optional :obj:`aiohttp.BasicAuth`
|
||||||
:param validate_token: Validate token.
|
:param validate_token: Validate token.
|
||||||
:type validate_token: :obj:`bool`
|
:type validate_token: :obj:`bool`
|
||||||
|
:param parse_mode: You can set default parse mode
|
||||||
|
:type parse_mode: :obj:`str`
|
||||||
:raise: when token is invalid throw an :obj:`aiogram.utils.exceptions.ValidationError`
|
:raise: when token is invalid throw an :obj:`aiogram.utils.exceptions.ValidationError`
|
||||||
"""
|
"""
|
||||||
# Authentication
|
# Authentication
|
||||||
|
|
@ -61,6 +65,8 @@ class BaseBot:
|
||||||
# Data stored in bot instance
|
# Data stored in bot instance
|
||||||
self._data = {}
|
self._data = {}
|
||||||
|
|
||||||
|
self.parse_mode = parse_mode
|
||||||
|
|
||||||
def __del__(self):
|
def __del__(self):
|
||||||
self.close()
|
self.close()
|
||||||
|
|
||||||
|
|
@ -223,3 +229,23 @@ class BaseBot:
|
||||||
:return: value or default value
|
:return: value or default value
|
||||||
"""
|
"""
|
||||||
return self._data.get(key, default)
|
return self._data.get(key, default)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def parse_mode(self):
|
||||||
|
return getattr(self, '_parse_mode', None)
|
||||||
|
|
||||||
|
@parse_mode.setter
|
||||||
|
def parse_mode(self, value):
|
||||||
|
if value is None:
|
||||||
|
setattr(self, '_parse_mode', None)
|
||||||
|
else:
|
||||||
|
if not isinstance(value, str):
|
||||||
|
raise TypeError(f"Parse mode must be an 'str' not {type(value)}")
|
||||||
|
value = value.lower()
|
||||||
|
if value not in ParseMode.all():
|
||||||
|
raise ValueError(f"Parse mode must be one of {ParseMode.all()}")
|
||||||
|
setattr(self, '_parse_mode', value)
|
||||||
|
|
||||||
|
@parse_mode.deleter
|
||||||
|
def parse_mode(self):
|
||||||
|
self.parse_mode = None
|
||||||
|
|
|
||||||
|
|
@ -197,6 +197,9 @@ class Bot(BaseBot):
|
||||||
"""
|
"""
|
||||||
reply_markup = prepare_arg(reply_markup)
|
reply_markup = prepare_arg(reply_markup)
|
||||||
payload = generate_payload(**locals())
|
payload = generate_payload(**locals())
|
||||||
|
if self.parse_mode:
|
||||||
|
payload.setdefault('parse_mode', self.parse_mode)
|
||||||
|
|
||||||
result = await self.request(api.Methods.SEND_MESSAGE, payload)
|
result = await self.request(api.Methods.SEND_MESSAGE, payload)
|
||||||
|
|
||||||
return types.Message(**result)
|
return types.Message(**result)
|
||||||
|
|
@ -1245,6 +1248,9 @@ class Bot(BaseBot):
|
||||||
"""
|
"""
|
||||||
reply_markup = prepare_arg(reply_markup)
|
reply_markup = prepare_arg(reply_markup)
|
||||||
payload = generate_payload(**locals())
|
payload = generate_payload(**locals())
|
||||||
|
if self.parse_mode:
|
||||||
|
payload.setdefault('parse_mode', self.parse_mode)
|
||||||
|
|
||||||
result = await self.request(api.Methods.EDIT_MESSAGE_TEXT, payload)
|
result = await self.request(api.Methods.EDIT_MESSAGE_TEXT, payload)
|
||||||
|
|
||||||
if isinstance(result, bool):
|
if isinstance(result, bool):
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue