Nadia.InputMedia (nadia v1.6.1)

View Source

Typed builders for Telegram InputMedia objects.

The builder fixes the Telegram type discriminator, omits nil options, and preserves explicit false values. Values can be passed directly to Nadia.send_media_group/3,4, Nadia.edit_message_media/2,3, and compatible media positions in Nadia.send_poll/3,4.

Media and cover fields accept Telegram file IDs, supported HTTP URLs, or Nadia.InputFile values. Thumbnails are new JPEG multipart uploads only; use Nadia.InputFile.path/2, bytes/3, or stream/3. Live-photo video and photo fields do not support URLs.

sendMediaGroup accepts 2-10 audio, document, live-photo, photo, or video items. Audio and document albums must be homogeneous. Animation is supported by editMessageMedia, but not by sendMediaGroup.

Poll descriptions and quiz explanations accept every variant in this module. Poll options accept animation, live photo, photo, and video; audio and document are rejected locally when used as typed option media. See Nadia.InputPollMedia for typed link, location, sticker, and venue values.

Summary

Types

t()

A typed Telegram InputMedia value. Its representation is opaque.

Functions

Builds an animation media object.

Builds an audio media object.

Builds a document media object.

Builds a live-photo media object from its video and static photo.

Builds a photo media object.

Builds a video media object.

Types

options()

@type options() :: keyword() | map()

source()

@type source() :: binary() | Nadia.InputFile.t()

t()

@opaque t()

A typed Telegram InputMedia value. Its representation is opaque.

variant()

@type variant() :: :animation | :audio | :document | :live_photo | :photo | :video

Functions

animation(media, options \\ [])

@spec animation(source(), options()) :: t()

Builds an animation media object.

audio(media, options \\ [])

@spec audio(source(), options()) :: t()

Builds an audio media object.

document(media, options \\ [])

@spec document(source(), options()) :: t()

Builds a document media object.

live_photo(media, photo, options \\ [])

@spec live_photo(source(), source(), options()) :: t()

Builds a live-photo media object from its video and static photo.

photo(media, options \\ [])

@spec photo(source(), options()) :: t()

Builds a photo media object.

video(media, options \\ [])

@spec video(source(), options()) :: t()

Builds a video media object.