Add default parse mode

This commit is contained in:
jrootjunior 2019-12-03 13:10:09 +02:00
parent 62bce34b49
commit aa7c5796dd
9 changed files with 54 additions and 6 deletions

View file

@ -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

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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)