diff --git a/maxapi/bot.py b/maxapi/bot.py index eca8ffe..691adf4 100644 --- a/maxapi/bot.py +++ b/maxapi/bot.py @@ -3,6 +3,8 @@ from __future__ import annotations from datetime import datetime from typing import Any, Dict, List, Optional, Union, TYPE_CHECKING +from maxapi.methods.get_message import GetMessage + from .client.default import DefaultConnectionProperties from .types.errors import Error @@ -310,9 +312,10 @@ class Bot(BaseConnection): :return: Объект сообщения """ - return await self.get_messages( - message_ids=[message_id] - ) + return await GetMessage( + bot=self, + message_id=message_id + ).fetch() async def get_me(self) -> User: diff --git a/maxapi/methods/get_message.py b/maxapi/methods/get_message.py new file mode 100644 index 0000000..1d6fdc7 --- /dev/null +++ b/maxapi/methods/get_message.py @@ -0,0 +1,49 @@ +from datetime import datetime +from typing import TYPE_CHECKING, List, Optional, Union + +from ..types.message import Message +from ..enums.http_method import HTTPMethod +from ..enums.api_path import ApiPath +from ..connection.base import BaseConnection + + +if TYPE_CHECKING: + from ..bot import Bot + + +class GetMessage(BaseConnection): + + """ + Класс для получения сообщения. + + Args: + bot (Bot): Экземпляр бота для выполнения запроса. + message_id (str, optional): ID сообщения (mid), чтобы получить одно сообщение в чате. + """ + + def __init__( + self, + bot: 'Bot', + message_id: Optional[str] = None, + ): + self.bot = bot + self.message_id = message_id + + async def fetch(self) -> Message: + + """ + Выполняет GET-запрос для получения сообщения. + + Returns: + Message: Объект с полученным сообщением. + """ + + if self.bot is None: + raise RuntimeError('Bot не инициализирован') + + return await super().request( + method=HTTPMethod.GET, + path=ApiPath.MESSAGES + '/' + self.message_id, + model=Message, + params=self.bot.params + ) \ No newline at end of file