mirror of
https://github.com/aiogram/aiogram.git
synced 2026-04-08 16:37:47 +00:00
Add default parse mode
This commit is contained in:
parent
62bce34b49
commit
aa7c5796dd
9 changed files with 54 additions and 6 deletions
|
|
@ -1,6 +1,6 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from typing import Any, TypeVar
|
||||
from typing import Any, Optional, TypeVar
|
||||
|
||||
from ...utils.mixins import ContextInstanceMixin
|
||||
from ...utils.token import extract_bot_id, validate_token
|
||||
|
|
@ -12,13 +12,14 @@ T = TypeVar("T")
|
|||
|
||||
|
||||
class BaseBot(ContextInstanceMixin):
|
||||
def __init__(self, token: str, session: BaseSession = None):
|
||||
def __init__(self, token: str, session: BaseSession = None, parse_mode: Optional[str] = None):
|
||||
validate_token(token)
|
||||
|
||||
if session is None:
|
||||
session = AiohttpSession()
|
||||
|
||||
self.session = session
|
||||
self.parse_mode = parse_mode
|
||||
self.__token = token
|
||||
|
||||
@property
|
||||
|
|
|
|||
|
|
@ -38,5 +38,6 @@ class AnswerInlineQuery(TelegramMethod[bool]):
|
|||
|
||||
def build_request(self) -> Request:
|
||||
data: Dict[str, Any] = self.dict()
|
||||
self.prepare_parse_mode(data["results"])
|
||||
|
||||
return Request(method="answerInlineQuery", data=data)
|
||||
|
|
|
|||
|
|
@ -65,6 +65,23 @@ class TelegramMethod(abc.ABC, BaseModel, Generic[T]):
|
|||
else:
|
||||
data[name] = value
|
||||
|
||||
def prepare_parse_mode(self, root: Any) -> None:
|
||||
if isinstance(root, list):
|
||||
for item in root:
|
||||
self.prepare_parse_mode(item)
|
||||
return
|
||||
|
||||
if "parse_mode" not in root:
|
||||
return
|
||||
|
||||
from ..client.bot import Bot
|
||||
|
||||
bot = Bot.get_current(no_error=True)
|
||||
if bot and bot.parse_mode:
|
||||
root["parse_mode"] = bot.parse_mode
|
||||
return
|
||||
return
|
||||
|
||||
async def emit(self, bot: Bot) -> T:
|
||||
return await bot.emit(self)
|
||||
|
||||
|
|
|
|||
|
|
@ -31,5 +31,6 @@ class EditMessageCaption(TelegramMethod[Union[Message, bool]]):
|
|||
|
||||
def build_request(self) -> Request:
|
||||
data: Dict[str, Any] = self.dict()
|
||||
self.prepare_parse_mode(data)
|
||||
|
||||
return Request(method="editMessageCaption", data=data)
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@ class EditMessageMedia(TelegramMethod[Union[Message, bool]]):
|
|||
|
||||
def build_request(self) -> Request:
|
||||
data: Dict[str, Any] = self.dict()
|
||||
self.prepare_parse_mode(data["media"])
|
||||
|
||||
files: Dict[str, InputFile] = {}
|
||||
self.prepare_media_file(data=data, files=files)
|
||||
|
|
|
|||
|
|
@ -27,8 +27,9 @@ class SendMediaGroup(TelegramMethod[List[Message]]):
|
|||
|
||||
def build_request(self) -> Request:
|
||||
data: Dict[str, Any] = self.dict()
|
||||
files: Dict[str, InputFile] = {}
|
||||
self.prepare_parse_mode(data["media"])
|
||||
|
||||
files: Dict[str, InputFile] = {}
|
||||
self.prepare_input_media(data, files)
|
||||
|
||||
return Request(method="sendMediaGroup", data=data, files=files)
|
||||
|
|
|
|||
|
|
@ -41,5 +41,6 @@ class SendMessage(TelegramMethod[Message]):
|
|||
|
||||
def build_request(self) -> Request:
|
||||
data: Dict[str, Any] = self.dict()
|
||||
self.prepare_parse_mode(data)
|
||||
|
||||
return Request(method="sendMessage", data=data)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue