Packages

Elixir library for building Telegram bots with macro-based API

Current section

Files

Jump to
telegram_ex lib builders message.ex
Raw

lib/builders/message.ex

defmodule TelegramEx.Builder.Message do
alias TelegramEx.{Config, API}
def text(text) do
%{text: text}
end
def text(text, parse_mode) do
%{text: text, parse_mode: parse_mode}
end
def inline_keyboard(message, keyboard) do
Map.put(message, :reply_markup, %{inline_keyboard: keyboard})
end
def reply_keyboard(message, keyboard, opts) do
message
|> Map.put(:reply_markup, Map.merge(%{keyboard: keyboard}, Map.new(opts)))
end
def remove_keyboard(message) do
Map.put(message, :reply_markup, %{remove_keyboard: true})
end
def silent(message) do
Map.put(message, :disable_notification, true)
end
def answer_callback_query(message, callback) do
TelegramEx.API.answer_callback_query(Config.token(), callback)
message
end
def send(message, id) do
message
|> Map.put(:chat_id, id)
|> then(&API.send_message(Config.token(), &1))
end
end