aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdelyn Breedlove <[email protected]>2018-12-17 06:46:25 -0700
committerAdelyn Breedlove <[email protected]>2018-12-17 06:46:25 -0700
commitd5ab5fb9e07d820de66fd987f7d2f793dd130e49 (patch)
tree417652ace1baba191dfd75cb512a4d754256ede2
parentMerging (diff)
downloaddisml-d5ab5fb9e07d820de66fd987f7d2f793dd130e49.tar.xz
disml-d5ab5fb9e07d820de66fd987f7d2f793dd130e49.zip
Add a few sigs
-rw-r--r--bin/handler.ml17
-rw-r--r--disml.opam2
-rw-r--r--lib/models.mli1
-rw-r--r--lib/models/member.ml9
-rw-r--r--lib/s.ml36
5 files changed, 45 insertions, 20 deletions
diff --git a/bin/handler.ml b/bin/handler.ml
index 74eaefb..5b22527 100644
--- a/bin/handler.ml
+++ b/bin/handler.ml
@@ -6,7 +6,22 @@ module Make(Models : Disml.S.Models) = struct
let check_command (msg:Disml.Message_t.t) =
if String.is_prefix ~prefix:"!ping" msg.content then
- Message.reply msg "Hello!" >>> ignore
+ Message.reply msg "Pong!" >>> ignore
+ else if String.is_prefix ~prefix:"!spam" msg.content then
+ List.range 0 20
+ |> List.iter ~f:(fun i -> Message.reply msg (string_of_int i) >>> ignore)
+ else if String.is_prefix ~prefix:"!list" msg.content then
+ let count = String.chop_prefix_exn ~prefix:"!list" msg.content |> String.strip |> Int.of_string in
+ let list = List.range 0 count
+ |> List.sexp_of_t Int.sexp_of_t
+ |> Sexp.to_string_hum in
+ Message.reply msg list >>> ignore
+ else if String.is_prefix ~prefix:"!fold" msg.content then
+ let count = String.chop_prefix_exn ~prefix:"!fold" msg.content |> String.strip |> Int.of_string in
+ let list = List.range 0 count
+ |> List.fold ~init:0 ~f:(+)
+ |> Int.to_string in
+ Message.reply msg list >>> ignore
let handle_event = function
| HELLO _ -> print_endline "Received HELLO"
diff --git a/disml.opam b/disml.opam
index cf9c4cc..448cbcf 100644
--- a/disml.opam
+++ b/disml.opam
@@ -1,7 +1,7 @@
opam-version: "2.0"
name: "disml"
version: "~dev"
-synopsis: ""An OCaml library for interfacing with the Discord API""
+synopsis: "An OCaml library for interfacing with the Discord API"
maintainer: "Adelyn Breedlove <[email protected]>"
authors: "Adelyn Breedlove <[email protected]>"
license: "MIT"
diff --git a/lib/models.mli b/lib/models.mli
new file mode 100644
index 0000000..01a8893
--- /dev/null
+++ b/lib/models.mli
@@ -0,0 +1 @@
+module Make(H : S.Http) : S.Models \ No newline at end of file
diff --git a/lib/models/member.ml b/lib/models/member.ml
index 36b7d4b..6617d23 100644
--- a/lib/models/member.ml
+++ b/lib/models/member.ml
@@ -1,2 +1,11 @@
module Make(Http : S.Http) = struct
+ (* val add_role : Member_t.t -> Role_t.t -> Yojson.Safe.json Deferred.t
+ val remove_role : Member_t.t -> Role_t.t -> Yojson.Safe.json Deferred.t
+ val ban : ?reason:string -> ?days:int -> Member_t.t -> Yojson.Safe.json Deferred.t
+ val ban : ?reason:string -> Member_t.t -> Yojson.Safe.json Deferred.t
+ val kick : ?reason:string -> Member_t.t -> Yojson.Safe.json Deferred.t
+ val mute : Member_t.t -> Yojson.Safe.json Deferred.t
+ val deafen : Member_t.t -> Yojson.Safe.json Deferred.t
+ val unmute : Member_t.t -> Yojson.Safe.json Deferred.t
+ val undeafen : Member_t.t -> Yojson.Safe.json Deferred.t *)
end \ No newline at end of file
diff --git a/lib/s.ml b/lib/s.ml
index afe4209..b945218 100644
--- a/lib/s.ml
+++ b/lib/s.ml
@@ -19,27 +19,27 @@ module type Emoji = sig end
module type Guild = sig end
module type Member = sig
- (* val add_role : Member_t.t -> Role_t.t -> Yojson.Safe.json Deferred.t
- val remove_role : Member_t.t -> Role_t.t -> Yojson.Safe.json Deferred.t
- val ban : ?reason:string -> ?days:int -> Member_t.t -> Yojson.Safe.json Deferred.t
- val ban : ?reason:string -> Member_t.t -> Yojson.Safe.json Deferred.t
- val kick : ?reason:string -> Member_t.t -> Yojson.Safe.json Deferred.t
- val mute : Member_t.t -> Yojson.Safe.json Deferred.t
- val deafen : Member_t.t -> Yojson.Safe.json Deferred.t
- val unmute : Member_t.t -> Yojson.Safe.json Deferred.t
- val undeafen : Member_t.t -> Yojson.Safe.json Deferred.t *)
+ (* val add_role : Member_t.t -> Role_t.t -> Yojson.Safe.json Deferred.t
+ val remove_role : Member_t.t -> Role_t.t -> Yojson.Safe.json Deferred.t
+ val ban : ?reason:string -> ?days:int -> Member_t.t -> Yojson.Safe.json Deferred.t
+ val ban : ?reason:string -> Member_t.t -> Yojson.Safe.json Deferred.t
+ val kick : ?reason:string -> Member_t.t -> Yojson.Safe.json Deferred.t
+ val mute : Member_t.t -> Yojson.Safe.json Deferred.t
+ val deafen : Member_t.t -> Yojson.Safe.json Deferred.t
+ val unmute : Member_t.t -> Yojson.Safe.json Deferred.t
+ val undeafen : Member_t.t -> Yojson.Safe.json Deferred.t *)
end
module type Message = sig
- val add_reaction : Message_t.t -> Emoji_t.t -> Yojson.Safe.json Deferred.t
- val remove_reaction : Message_t.t -> Emoji_t.t -> User_t.t -> Yojson.Safe.json Deferred.t
- val clear_reactions : Message_t.t -> Yojson.Safe.json Deferred.t
- val delete : Message_t.t -> Yojson.Safe.json Deferred.t
- val pin : Message_t.t -> Yojson.Safe.json Deferred.t
- val unpin : Message_t.t -> Yojson.Safe.json Deferred.t
- val reply : Message_t.t -> string -> Yojson.Safe.json Deferred.t
- val set_content : Message_t.t -> string -> Yojson.Safe.json Deferred.t
- val set_embed : Message_t.t -> Embed_t.t -> Yojson.Safe.json Deferred.t
+ val add_reaction : Message_t.t -> Emoji_t.t -> Yojson.Safe.json Deferred.t
+ val remove_reaction : Message_t.t -> Emoji_t.t -> User_t.t -> Yojson.Safe.json Deferred.t
+ val clear_reactions : Message_t.t -> Yojson.Safe.json Deferred.t
+ val delete : Message_t.t -> Yojson.Safe.json Deferred.t
+ val pin : Message_t.t -> Yojson.Safe.json Deferred.t
+ val unpin : Message_t.t -> Yojson.Safe.json Deferred.t
+ val reply : Message_t.t -> string -> Yojson.Safe.json Deferred.t
+ val set_content : Message_t.t -> string -> Yojson.Safe.json Deferred.t
+ val set_embed : Message_t.t -> Embed_t.t -> Yojson.Safe.json Deferred.t
end
module type Presence = sig end