telega/bot

Types

pub type BotInstanceMessage(session) {
  BotInstanceMessageOk
  BotInstanceMessageNew(
    client: BotInstanceSubject(session),
    update: Update,
  )
  BotInstanceMessageWaitHandler(handler: Handler(session))
}

Constructors

  • BotInstanceMessageOk
  • BotInstanceMessageNew(
      client: BotInstanceSubject(session),
      update: Update,
    )
  • BotInstanceMessageWaitHandler(handler: Handler(session))
pub type CallbackQueryFilter {
  CallbackQueryFilter(re: Regexp)
}

Constructors

  • CallbackQueryFilter(re: Regexp)

Handlers context.

pub type Context(session) {
  Context(
    key: String,
    update: Update,
    bot_info: User,
    config: Config,
    session: session,
    bot_subject: BotInstanceSubject(session),
  )
}

Constructors

  • Context(
      key: String,
      update: Update,
      bot_info: User,
      config: Config,
      session: session,
      bot_subject: BotInstanceSubject(session),
    )
pub type Handler(session) {
  HandleAll(
    handler: fn(Context(session)) -> Result(session, String),
  )
  HandleCommand(
    command: String,
    handler: fn(Context(session), Command) ->
      Result(session, String),
  )
  HandleCommands(
    commands: List(String),
    handler: fn(Context(session), Command) ->
      Result(session, String),
  )
  HandleText(
    handler: fn(Context(session), String) ->
      Result(session, String),
  )
  HandleHears(
    hears: Hears,
    handler: fn(Context(session), String) ->
      Result(session, String),
  )
  HandleCallbackQuery(
    filter: CallbackQueryFilter,
    handler: fn(Context(session), String, String) ->
      Result(session, String),
  )
}

Constructors

  • HandleAll(
      handler: fn(Context(session)) -> Result(session, String),
    )

    Handle all messages.

  • HandleCommand(
      command: String,
      handler: fn(Context(session), Command) ->
        Result(session, String),
    )

    Handle a specific command.

  • HandleCommands(
      commands: List(String),
      handler: fn(Context(session), Command) ->
        Result(session, String),
    )

    Handle multiple commands.

  • HandleText(
      handler: fn(Context(session), String) ->
        Result(session, String),
    )

    Handle text messages.

  • HandleHears(
      hears: Hears,
      handler: fn(Context(session), String) ->
        Result(session, String),
    )

    Handle text message with a specific substring.

  • HandleCallbackQuery(
      filter: CallbackQueryFilter,
      handler: fn(Context(session), String, String) ->
        Result(session, String),
    )

    Handle callback query. Context, data from callback query and callback_query_id are passed to the handler.

pub type Hears {
  HearText(text: String)
  HearTexts(texts: List(String))
  HearRegex(regex: Regexp)
  HearRegexes(regexes: List(Regexp))
}

Constructors

  • HearText(text: String)
  • HearTexts(texts: List(String))
  • HearRegex(regex: Regexp)
  • HearRegexes(regexes: List(Regexp))
pub type RegistryMessage {
  HandleBotRegistryMessage(update: Update)
}

Constructors

  • HandleBotRegistryMessage(update: Update)
pub type SessionSettings(session) {
  SessionSettings(
    persist_session: fn(String, session) ->
      Result(session, String),
    get_session: fn(String) -> Result(session, String),
  )
}

Constructors

  • SessionSettings(
      persist_session: fn(String, session) -> Result(session, String),
      get_session: fn(String) -> Result(session, String),
    )

Functions

pub fn set_webhook(config config: Config) -> Result(Bool, String)

Set webhook for the bot.

pub fn start_registry(
  config config: Config,
  handlers handlers: List(Handler(a)),
  session_settings session_settings: SessionSettings(a),
  root_subject root_subject: Subject(Subject(RegistryMessage)),
  bot_info bot_info: User,
) -> Result(Subject(RegistryMessage), StartError)
pub fn wait_handler(
  ctx: Context(a),
  handler: Handler(a),
) -> Result(a, String)
Search Document