telega/bot

Types

pub type BotInstanseMessage(session) {
  BotInstanseMessageOk
  BotInstanseMessageNew(
    client: Subject(BotInstanseMessage(session)),
    update: Update,
  )
  BotInstanseMessageWaitHandler(handler: Handler(session))
}

Constructors

  • BotInstanseMessageOk
  • BotInstanseMessageNew(
      client: Subject(BotInstanseMessage(session)),
      update: Update,
    )
  • BotInstanseMessageWaitHandler(handler: Handler(session))
pub type CallbackQueryFilter {
  CallbackQueryFilter(re: Regex)
}

Constructors

  • CallbackQueryFilter(re: Regex)

Handlers context.

pub type Context(session) {
  Context(
    key: String,
    update: Update,
    config: Config,
    session: session,
    bot_subject: Subject(BotInstanseMessage(session)),
  )
}

Constructors

  • Context(
      key: String,
      update: Update,
      config: Config,
      session: session,
      bot_subject: Subject(BotInstanseMessage(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: Regex)
  HearRegexes(regexes: List(Regex))
}

Constructors

  • HearText(text: String)
  • HearTexts(texts: List(String))
  • HearRegex(regex: Regex)
  • HearRegexes(regexes: List(Regex))
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 start_registry(
  config: Config,
  handlers: List(Handler(a)),
  session_settings: SessionSettings(a),
  parent_subject: Subject(Subject(RegistryMessage)),
) -> Result(Subject(RegistryMessage), StartError)
pub fn wait_handler(
  ctx: Context(a),
  handler: Handler(a),
) -> Result(a, String)
Search Document