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

InputMedia

InputMedia(path, type=None)

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

Attributes:

Name Type Description
path

Путь к файлу.

type

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

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

Parameters:

Name Type Description Default
path str

Путь к файлу.

required
type UploadType | str | None

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

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

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

    self.path = path

    if type is not None:
        self.type = validate_uploading_type(type)
    else:
        self.type = detect_file_type(InputMedia._read_file_sample(path))

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

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

Attributes:

Name Type Description
buffer

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

type

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

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

Parameters:

Name Type Description Default
buffer bytes

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

required
filename str | None

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

None
type UploadType | str | None

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

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

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

    self.filename = filename
    self.buffer = buffer

    if type is not None:
        self.type = validate_uploading_type(type)
    else:
        self.type = detect_file_type(buffer)

detect_file_type(data)

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

Parameters:

Name Type Description Default
data bytes

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

required

Returns: UploadType: Определенный тип файла. Если MIME-тип не удалось определить или при определении произошла ошибка, возвращается UploadType.FILE.

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

    Args:
        data: Буфер с содержимым файла.
    Returns:
        UploadType: Определенный тип файла. Если MIME-тип не удалось
                    определить или при определении произошла ошибка,
                    возвращается ``UploadType.FILE``.
    """
    try:
        matches = puremagic.magic_string(data)
        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