Packages
ex_gram
0.66.0
0.67.0
0.66.0
0.65.0
0.64.0
0.63.0
0.62.0
0.61.0
0.60.0
0.58.0
0.57.0
0.56.1
0.56.0
0.55.1
0.55.0
0.54.0
0.53.0
0.52.2
0.52.1
0.52.0
0.51.1
0.51.0
0.50.2
0.50.1
0.50.0
0.41.0
0.40.0
0.34.0
0.33.0
0.32.0
0.31.0
0.30.0
0.29.0
0.28.0
0.27.0
0.26.0
0.25.0
0.24.1
0.24.0
0.23.0
0.22.0
0.21.0
0.20.0
0.15.0
0.14.0
0.13.0
0.12.0
0.11.0
0.10.0
0.9.0
0.8.1
0.8.0
0.7.1
0.7.0
0.6.2
0.6.1
0.6.0
0.5.0
0.5.0-rc6
0.5.0-rc5
0.5.0-rc4
0.5.0-rc3
0.5.0-rc2
Telegram Bot API low level and framework
Current section
Files
Jump to
Current section
Files
lib/ex_gram/bot_init/setup_commands.ex
defmodule ExGram.BotInit.SetupCommands do
@moduledoc """
A `ExGram.BotInit` hook that registers the bot's commands with Telegram at
startup.
This hook is automatically injected by the dispatcher when
`setup_commands: true` is given to `use ExGram.Bot` or when starting the
bot:
{MyBot, [method: :polling, token: token, setup_commands: true]}
It delegates to `ExGram.Bot.SetupCommands.setup/2`, which calls
`setMyCommands` for each declared command scope/language combination.
The hook expects a `bot_module` key in the hook opts, which the dispatcher
injects automatically. It reads `bot_module.commands()` to get the full
command definitions.
"""
@behaviour ExGram.BotInit
@impl ExGram.BotInit
def on_bot_init(opts) do
bot_module = Keyword.fetch!(opts, :bot_module)
ExGram.Bot.SetupCommands.setup(bot_module.commands(), opts[:token])
:ok
end
end