ExGram.Cnt (ex_gram v0.65.0)

Copy Markdown View Source

Context struct for ExGram request handling.

The Cnt (context) struct flows through the entire request pipeline, carrying the bot name, bot info, incoming update, parsed message data, middleware state, and user-defined extra data.

Middleware functions receive and return a %ExGram.Cnt{}, allowing them to inspect and modify the context. Handler callbacks defined with ExGram.Dsl also receive and return this struct.

Fields

  • :name - Bot name (atom or binary)
  • :bot_info - Bot user info (ExGram.Model.User.t/0)
  • :update - Incoming update (ExGram.Model.Update.t/0)
  • :message - Parsed message data (varies by handler)
  • :halted - Whether the request pipeline is halted
  • :middlewares - Middleware configuration
  • :middleware_halted - Whether middleware chain is halted
  • :commands - Command configuration
  • :regex - Regex pattern configuration
  • :answers - Accumulated answers
  • :responses - Accumulated responses
  • :extra - User-defined data (map)

See the Middlewares guide for more details.

Summary

Types

name()

@type name() :: atom() | binary()

t()

@type t() :: %ExGram.Cnt{
  answers: [any()],
  bot_info: ExGram.Model.User.t() | nil,
  commands: [any()],
  extra: map(),
  halted: boolean(),
  message: any() | nil,
  middleware_halted: boolean(),
  middlewares: [any()],
  name: name(),
  regex: [any()],
  responses: [any()],
  update: ExGram.Model.Update.t() | nil
}

Functions

new(extra \\ %{})