Перейти к содержанию

InputMedia

InputMedia(path, type=None)

Класс для представления медиафайла.

Attributes:

Name Type Description
path str

Путь к файлу.

type UploadType

Тип файла, определенный на основе содержимого (MIME-типа).

Инициализирует объект медиафайла.

Parameters:

Name Type Description Default
path str

Путь к файлу.

required
type UploadType

Тип файла. Если не указан, определяется автоматически.

None
Source code in maxapi/types/input_media.py
def __init__(self, path: str, type: UploadType | None = None):
    """
    Инициализирует объект медиафайла.

    Args:
        path (str): Путь к файлу.
        type (UploadType, optional): Тип файла. Если не указан,
            определяется автоматически.
    """

    self.path = path
    self.type = type or self.__detect_file_type(path)

__detect_file_type(path)

Определяет тип файла на основе его содержимого (MIME-типа).

Parameters:

Name Type Description Default
path str

Путь к файлу.

required

Returns:

Name Type Description
UploadType UploadType

Тип файла (VIDEO, IMAGE, AUDIO или FILE).

Source code in maxapi/types/input_media.py
def __detect_file_type(self, path: str) -> UploadType:
    """
    Определяет тип файла на основе его содержимого (MIME-типа).

    Args:
        path (str): Путь к файлу.

    Returns:
        UploadType: Тип файла (VIDEO, IMAGE, AUDIO или FILE).
    """

    with Path(path).open("rb") as f:
        sample = f.read(4096)

    try:
        matches = puremagic.magic_string(sample)
        if matches:
            mime_type = matches[0].mime_type
        else:
            mime_type = None
    except Exception:
        mime_type = None

    if mime_type is None:
        return UploadType.FILE

    if mime_type.startswith("video/"):
        return UploadType.VIDEO
    elif mime_type.startswith("image/"):
        return UploadType.IMAGE
    elif mime_type.startswith("audio/"):
        return UploadType.AUDIO
    else:
        return UploadType.FILE

InputMediaBuffer(buffer, filename=None, type=None)

Класс для представления медиафайла из буфера.

Attributes:

Name Type Description
buffer bytes

Буфер с содержимым файла.

type UploadType

Тип файла, определенный по содержимому.

Инициализирует объект медиафайла из буфера.

Parameters:

Name Type Description Default
buffer bytes

Буфер с содержимым файла.

required
filename str

Название файла (по умолчанию присваивается uuid4).

None
type UploadType

Тип файла. Если не указан, определяется автоматически.

None
Source code in maxapi/types/input_media.py
def __init__(
    self,
    buffer: bytes,
    filename: str | None = None,
    type: UploadType | None = None,
):
    """
    Инициализирует объект медиафайла из буфера.

    Args:
        buffer (bytes): Буфер с содержимым файла.
        filename (str, optional): Название файла (по умолчанию
            присваивается uuid4).
        type (UploadType, optional): Тип файла. Если не указан,
            определяется автоматически.
    """

    self.filename = filename
    self.buffer = buffer
    self.type = type or self.__detect_file_type(buffer)