Cluster · разработчикам

Media

Вложение из файла Cluster или bytes. Поддерживает photo, video, animation, audio, document, voice и video_note; gif нормализуется в animation.

Все методы SDK · Типы и ошибки

Получение объекта

media = app.media(b"example", filename="note.txt")

__init__

Создаёт Media. Обычный способ получения объекта показан выше; прямой конструктор не выполняет сетевые запросы.

def __init__(file: str | bytes, kind: str = 'document', caption: str | Text = '', filename: str | None = None, **options: JSON) -> None: ...

Аргументы

Результат

None. Создаёт Media. Обычный способ получения объекта показан выше; прямой конструктор не выполняет сетевые запросы.

Права

Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.

Ошибки

Пример

media = app.media(b"Hello", filename="note.txt")

resolve

Возвращает ID файла. Байты загружает один раз на каждый App и кэширует полученный ID.

async def resolve(app: App) -> str: ...

Аргументы

Результат

str. Возвращает ID файла. Байты загружает один раз на каждый App и кэширует полученный ID.

Права

Нужны files.write только при первом использовании bytes; готовый ID на этом шаге не читается. Для чужих файлов своего юзербота дополнительно files.full либо отдельное разрешение конфигурационного файла на чтение.

Ошибки

Пример

result = await media.resolve(app)

describe

Возвращает описание с file и type, при необходимости предварительно загружая bytes.

async def describe(app: App) -> dict[str, str]: ...

Аргументы

Результат

dict[str, str]. Возвращает описание с file и type, при необходимости предварительно загружая bytes.

Права

Нужны files.write только при первом использовании bytes; готовый ID на этом шаге не читается. Для чужих файлов своего юзербота дополнительно files.full либо отдельное разрешение конфигурационного файла на чтение.

Ошибки

Пример

result = await media.describe(app)