From 011e3224c0292dfcb0024daf474d4ef1e00b82f0 Mon Sep 17 00:00:00 2001 From: Mishio595 Date: Sun, 25 Nov 2018 16:02:37 -0700 Subject: A lot is going on... --- lib/models/message.ml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 lib/models/message.ml (limited to 'lib/models/message.ml') diff --git a/lib/models/message.ml b/lib/models/message.ml new file mode 100644 index 0000000..6c2e80d --- /dev/null +++ b/lib/models/message.ml @@ -0,0 +1,21 @@ +type t = { + id: Snowflake.t; + author: User.t; + channel: Channel.t; + member: Member.t option; + guild: Guild.t option; + content: string; + timestamp: string; + edited_timestamp: string option; + tts: bool; + mention_everyone: bool; + mentions: User.t list; + role_mentions: Role.t list; + attachments: Attachment.t list; + embeds: Embed.t list; + reactions: Reaction.t list; + nonce: Snowflake.t option; + pinned: bool; + webhook_id: Snowflake.t; + kind: int; +} \ No newline at end of file -- cgit v1.2.3 From 260ccd9960b852b9c69b88e9840d5a8b22bb8e1d Mon Sep 17 00:00:00 2001 From: Adelyn Breelove Date: Wed, 12 Dec 2018 15:00:46 -0700 Subject: Work on event dispatch and add model derives --- lib/models/message.ml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/models/message.ml') diff --git a/lib/models/message.ml b/lib/models/message.ml index 6c2e80d..c578d9f 100644 --- a/lib/models/message.ml +++ b/lib/models/message.ml @@ -18,4 +18,4 @@ type t = { pinned: bool; webhook_id: Snowflake.t; kind: int; -} \ No newline at end of file +} [@@deriving yojson] \ No newline at end of file -- cgit v1.2.3 From 73d115ce6260e97f5f7ee47f743d842ffd292662 Mon Sep 17 00:00:00 2001 From: Adelyn Breelove Date: Thu, 13 Dec 2018 14:11:54 -0700 Subject: Working on deriving types from json --- lib/models/message.ml | 21 --------------------- 1 file changed, 21 deletions(-) delete mode 100644 lib/models/message.ml (limited to 'lib/models/message.ml') diff --git a/lib/models/message.ml b/lib/models/message.ml deleted file mode 100644 index c578d9f..0000000 --- a/lib/models/message.ml +++ /dev/null @@ -1,21 +0,0 @@ -type t = { - id: Snowflake.t; - author: User.t; - channel: Channel.t; - member: Member.t option; - guild: Guild.t option; - content: string; - timestamp: string; - edited_timestamp: string option; - tts: bool; - mention_everyone: bool; - mentions: User.t list; - role_mentions: Role.t list; - attachments: Attachment.t list; - embeds: Embed.t list; - reactions: Reaction.t list; - nonce: Snowflake.t option; - pinned: bool; - webhook_id: Snowflake.t; - kind: int; -} [@@deriving yojson] \ No newline at end of file -- cgit v1.2.3 From af684566617ebce536e9f30693aa3e225af906c4 Mon Sep 17 00:00:00 2001 From: Adelyn Breelove Date: Fri, 14 Dec 2018 10:52:36 -0700 Subject: There's a lot going on --- lib/models/message.ml | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 lib/models/message.ml (limited to 'lib/models/message.ml') diff --git a/lib/models/message.ml b/lib/models/message.ml new file mode 100644 index 0000000..36b7d4b --- /dev/null +++ b/lib/models/message.ml @@ -0,0 +1,2 @@ +module Make(Http : S.Http) = struct +end \ No newline at end of file -- cgit v1.2.3 From 4df67b173aa7d51f5bd2ce95e476d130a6f93fd6 Mon Sep 17 00:00:00 2001 From: Adelyn Breelove Date: Fri, 14 Dec 2018 11:53:25 -0700 Subject: Working and pretty message replying! --- lib/models/message.ml | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'lib/models/message.ml') 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 -- cgit v1.2.3 From 043d6adcaf557981f764ec1eb8c6400cc10f3eb8 Mon Sep 17 00:00:00 2001 From: Adelyn Breelove Date: Fri, 14 Dec 2018 15:09:23 -0700 Subject: Improve endpoint module and add Message abstraction --- lib/models/message.ml | 46 +++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 41 insertions(+), 5 deletions(-) (limited to 'lib/models/message.ml') diff --git a/lib/models/message.ml b/lib/models/message.ml index 7849afe..29148ee 100644 --- a/lib/models/message.ml +++ b/lib/models/message.ml @@ -1,7 +1,43 @@ 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) + open Message_t + + let add_reaction msg (emoji:Emoji_t.t) = + let e = match emoji.id with + | Some i -> Printf.sprintf "%s:%d" emoji.name i + | None -> emoji.name + in + Http.create_reaction msg.channel_id msg.id e + + let remove_reaction msg (emoji:Emoji_t.t) (user:User_t.t) = + let e = match emoji.id with + | Some i -> Printf.sprintf "%s:%d" emoji.name i + | None -> emoji.name + in + Http.delete_reaction msg.channel_id msg.id e user.id + + let clear_reactions msg = + Http.delete_reactions msg.channel_id msg.id + + let delete msg = + Http.delete_message msg.channel_id msg.id + + let pin msg = + Http.pin_message msg.channel_id msg.id + + let unpin msg = + Http.unpin_message msg.channel_id msg.id + + let reply msg cont = + let rep = `Assoc [("content", `String cont)] in + Http.create_message msg.channel_id rep + + let set_content msg cont = + Message_j.string_of_t { msg with content = cont; } + |> Yojson.Safe.from_string + |> Http.edit_message msg.channel_id msg.id + + let set_embed msg embed = + Message_j.string_of_t { msg with embeds = [embed]; } + |> Yojson.Safe.from_string + |> Http.edit_message msg.channel_id msg.id end \ No newline at end of file -- cgit v1.2.3