Current section
Files
Jump to
Current section
Files
src/telega@reply.erl
-module(telega@reply).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([with_text/2, with_markup/3, with_dice/2, edit_text/2, forward/2, answer_callback_query/2, with_file_link/2]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
-file("src/telega/reply.gleam", 14).
?DOC(
" Use this method to send text messages.\n"
"\n"
" **Official reference:** https://core.telegram.org/bots/api#sendmessage\n"
).
-spec with_text(telega@bot:context(any()), binary()) -> {ok,
telega@model:message()} |
{error, binary()}.
with_text(Ctx, Text) ->
telega@api:send_message(
erlang:element(5, erlang:element(5, Ctx)),
telega@model:new_send_message_parameters(
{stringed, erlang:element(2, Ctx)},
Text
)
).
-file("src/telega/reply.gleam", 30).
?DOC(
" Use this method to send text messages with keyboard markup.\n"
"\n"
" **Official reference:** https://core.telegram.org/bots/api#sendmessage\n"
).
-spec with_markup(
telega@bot:context(any()),
binary(),
telega@model:reply_markup()
) -> {ok, telega@model:message()} | {error, binary()}.
with_markup(Ctx, Text, Reply_markup) ->
telega@api:send_message(
erlang:element(5, erlang:element(5, Ctx)),
begin
_pipe = telega@model:new_send_message_parameters(
{stringed, erlang:element(2, Ctx)},
Text
),
telega@model:set_send_message_parameters_reply_markup(
_pipe,
Reply_markup
)
end
).
-file("src/telega/reply.gleam", 48).
?DOC(
" Use this method to send an animated emoji that will display a random value.\n"
"\n"
" **Official reference:** https://core.telegram.org/bots/api#senddice\n"
).
-spec with_dice(
telega@bot:context(any()),
gleam@option:option(telega@model:send_dice_parameters())
) -> {ok, telega@model:message()} | {error, binary()}.
with_dice(Ctx, Parameters) ->
Parameters@1 = begin
_pipe = Parameters,
gleam@option:lazy_unwrap(
_pipe,
fun() ->
telega@model:new_send_dice_parameters(
{stringed, erlang:element(2, Ctx)}
)
end
)
end,
telega@api:send_dice(
erlang:element(5, erlang:element(5, Ctx)),
Parameters@1
).
-file("src/telega/reply.gleam", 65).
?DOC(
" Use this method to edit text and game messages.\n"
" On success, if the edited message is not an inline message, the edited Message is returned, otherwise True is returned.\n"
"\n"
" **Official reference:** https://core.telegram.org/bots/api#editmessagetext\n"
).
-spec edit_text(
telega@bot:context(any()),
telega@model:edit_message_text_parameters()
) -> {ok, telega@model:edit_message_text_result()} | {error, binary()}.
edit_text(Ctx, Parameters) ->
telega@api:edit_message_text(
erlang:element(5, erlang:element(5, Ctx)),
Parameters
).
-file("src/telega/reply.gleam", 76).
?DOC(
" Use this method to forward messages of any kind. Service messages and messages with protected content can't be forwarded.\n"
" On success, the sent Message is returned.\n"
"\n"
" **Official reference:** https://core.telegram.org/bots/api#forwardmessage\n"
).
-spec forward(
telega@bot:context(any()),
telega@model:forward_message_parameters()
) -> {ok, telega@model:message()} | {error, binary()}.
forward(Ctx, Parameters) ->
telega@api:forward_message(
erlang:element(5, erlang:element(5, Ctx)),
Parameters
).
-file("src/telega/reply.gleam", 88).
?DOC(
" Use this method to send answers to callback queries sent from inline keyboards.\n"
" The answer will be displayed to the user as a notification at the top of the chat screen or as an alert.\n"
" On success, _True_ is returned.\n"
"\n"
" **Official reference:** https://core.telegram.org/bots/api#answercallbackquery\n"
).
-spec answer_callback_query(
telega@bot:context(any()),
telega@model:answer_callback_query_parameters()
) -> {ok, boolean()} | {error, binary()}.
answer_callback_query(Ctx, Parameters) ->
telega@api:answer_callback_query(
erlang:element(5, erlang:element(5, Ctx)),
Parameters
).
-file("src/telega/reply.gleam", 96).
?DOC(" Get download link for the file.\n").
-spec with_file_link(telega@bot:context(any()), binary()) -> {ok, binary()} |
{error, binary()}.
with_file_link(Ctx, File_id) ->
gleam@result:'try'(
telega@api:get_file(erlang:element(5, erlang:element(5, Ctx)), File_id),
fun(File) ->
gleam@result:'try'(
gleam@option:to_result(
erlang:element(5, File),
<<"File path is missing"/utf8>>
),
fun(File_path) ->
{ok,
<<<<<<<<(erlang:element(
4,
erlang:element(
5,
erlang:element(5, Ctx)
)
))/binary,
"/file/bot"/utf8>>/binary,
(erlang:element(4, erlang:element(5, Ctx)))/binary>>/binary,
"/"/utf8>>/binary,
File_path/binary>>}
end
)
end
).