aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdelyn Breelove <[email protected]>2018-12-14 11:53:25 -0700
committerAdelyn Breelove <[email protected]>2018-12-14 11:53:25 -0700
commit4df67b173aa7d51f5bd2ce95e476d130a6f93fd6 (patch)
tree3a351748ad4053e62a1efbcbb8624f14073a2a96
parentAdd a helper script for working with atdgen (diff)
downloaddisml-4df67b173aa7d51f5bd2ce95e476d130a6f93fd6.tar.xz
disml-4df67b173aa7d51f5bd2ce95e476d130a6f93fd6.zip
Working and pretty message replying!
-rw-r--r--bin/handler.ml10
-rw-r--r--lib/models/message.ml5
-rw-r--r--lib/s.ml44
3 files changed, 56 insertions, 3 deletions
diff --git a/bin/handler.ml b/bin/handler.ml
index 8ed55a6..74eaefb 100644
--- a/bin/handler.ml
+++ b/bin/handler.ml
@@ -1,9 +1,13 @@
module Make(Models : Disml.S.Models) = struct
- (* open Core *)
+ open Core
open Async
- (* open Models *)
+ open Models
open Disml.Event
+ let check_command (msg:Disml.Message_t.t) =
+ if String.is_prefix ~prefix:"!ping" msg.content then
+ Message.reply msg "Hello!" >>> ignore
+
let handle_event = function
| HELLO _ -> print_endline "Received HELLO"
| READY _ -> print_endline "Received READY"
@@ -27,7 +31,7 @@ module Make(Models : Disml.S.Models) = struct
| GUILD_ROLE_CREATE _ -> print_endline "Received GUILD_ROLE_CREATE"
| GUILD_ROLE_UPDATE _ -> print_endline "Received GUILD_ROLE_UPDATE"
| GUILD_ROLE_DELETE _ -> print_endline "Received GUILD_ROLE_DELETE"
- | MESSAGE_CREATE _ -> print_endline "Received MESSAGE_CREATE"
+ | MESSAGE_CREATE msg -> check_command msg; print_endline "Received MESSAGE_CREATE"
| MESSAGE_UPDATE _ -> print_endline "Received MESSAGE_UPDATE"
| MESSAGE_DELETE _ -> print_endline "Received MESSAGE_DELETE"
| MESSAGE_BULK_DELETE _ -> print_endline "Received MESSAGE_BULK_DELETE"
diff --git a/lib/models/message.ml b/lib/models/message.ml
index 36b7d4b..7849afe 100644
--- a/lib/models/message.ml
+++ b/lib/models/message.ml
@@ -1,2 +1,7 @@
module Make(Http : S.Http) = struct
+ let reply (message:Message_t.t) str =
+ let msg = `Assoc [
+ ("content", `String str)
+ ] in
+ Http.create_message (string_of_int (message.channel_id)) (msg)
end \ No newline at end of file
diff --git a/lib/s.ml b/lib/s.ml
index 1fb8fdf..40af880 100644
--- a/lib/s.ml
+++ b/lib/s.ml
@@ -4,7 +4,51 @@ module type Token = sig
val token : string
end
+module type Activity = sig end
+
+module type Attachment = sig end
+
+module type Ban = sig end
+
+module type Channel = sig end
+
+module type Embed = sig end
+
+module type Emoji = sig end
+
+module type Guild = sig end
+
+module type Member = sig end
+
+module type Message = sig
+ val reply : Message_t.t -> string -> Yojson.Safe.json Deferred.t
+end
+
+module type Presence = sig end
+
+module type Reaction = sig end
+
+module type Role = sig end
+
+module type Snowflake = sig end
+
+module type User = sig end
+
module type Models = sig
+ module Activity : Activity
+ module Attachment : Attachment
+ module Ban : Ban
+ module Channel : Channel
+ module Embed : Embed
+ module Emoji : Emoji
+ module Guild : Guild
+ module Member : Member
+ module Message : Message
+ module Presence : Presence
+ module Reaction : Reaction
+ module Role : Role
+ module Snowflake : Snowflake
+ module User : User
end
module type Handler = sig