aboutsummaryrefslogtreecommitdiff
path: root/bin/bot.ml
diff options
context:
space:
mode:
authorMishio595 <[email protected]>2018-11-18 12:39:21 -0700
committerMishio595 <[email protected]>2018-11-18 12:39:21 -0700
commit515ca7c7e354086017e33bcea8315d8c2c3d07cc (patch)
tree02d0bab4b0b047e8ffb42395ff82a581eca2de06 /bin/bot.ml
parentEvent dispatch and client abstraction (diff)
downloaddisml-515ca7c7e354086017e33bcea8315d8c2c3d07cc.tar.xz
disml-515ca7c7e354086017e33bcea8315d8c2c3d07cc.zip
Ping bot example
Diffstat (limited to 'bin/bot.ml')
-rw-r--r--bin/bot.ml9
1 files changed, 8 insertions, 1 deletions
diff --git a/bin/bot.ml b/bin/bot.ml
index 83e7063..56a1b6f 100644
--- a/bin/bot.ml
+++ b/bin/bot.ml
@@ -9,6 +9,7 @@ let main () =
in
let client = Client.make token in
Client.on "MESSAGE_CREATE" client (fun msg ->
+ let msg_time = Time.(to_span_since_epoch @@ now ()) in
let content = Yojson.Basic.Util.(member "content" msg |> to_string) in
let channel = Yojson.Basic.Util.(member "channel_id" msg |> to_string) in
if String.is_prefix ~prefix:"!?ping" content then
@@ -16,7 +17,13 @@ let main () =
("content", `String "Pong!");
("tts", `Bool false);
]
- >>> fun _ -> print_endline "Message sent!";
+ >>> fun resp ->
+ let message_id = Yojson.Basic.Util.(member "id" resp |> to_string) in
+ let rtt = Time.(to_span_since_epoch @@ sub (now ()) msg_time) in
+ Http.edit_message channel message_id @@ `Assoc [
+ ("content", `String ("Pong! `" ^ (Float.to_string @@ Time.Span.to_ms rtt) ^ " ms`"));
+ ]
+ >>> fun _ -> print_endline "Message Edited!"
);
Client.start client
>>> fun client ->