Nadia.InputMedia (nadia v1.7.0)

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. Voice notes are supported for editMessageMedia, rich-message media, and other single-media positions; they are not a sendMediaGroup album variant.

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.

Builds a voice-note 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 | :voice_note

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.

voice_note(media, options \\ [])

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

Builds a voice-note media object.