Переработан метод для получения одного сообщения

This commit is contained in:
Денис Семёнов 2025-07-31 23:38:47 +03:00
parent 42690d24ee
commit 95313ad3dc
2 changed files with 55 additions and 3 deletions

View File

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

View File

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