blob: 9ac86ad502e546e38353bd95ee1d4903f85e370d (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
|
open Async
module type Token = sig
val token : string
end
module type Client = sig
type context
end
module type Handler = sig
val handle_event :
'a ->
'b ->
unit
end
module type Dispatch = sig
type dispatch_event =
| HELLO of Yojson.Safe.json
| READY of Yojson.Safe.json
| RESUMED of Yojson.Safe.json
| INVALID_SESSION of Yojson.Safe.json
| CHANNEL_CREATE of Channel_t.t
| CHANNEL_UPDATE of Channel_t.t
| CHANNEL_DELETE of Channel_t.t
| CHANNEL_PINS_UPDATE of Yojson.Safe.json
| GUILD_CREATE of Guild_t.t
| GUILD_UPDATE of Guild_t.t
| GUILD_DELETE of Guild_t.t
| GUILD_BAN_ADD of Ban_t.t
| GUILD_BAN_REMOVE of Ban_t.t
| GUILD_EMOJIS_UPDATE of Yojson.Safe.json
| GUILD_INTEGRATIONS_UPDATE of Yojson.Safe.json
| GUILD_MEMBER_ADD of Member_t.t
| GUILD_MEMBER_REMOVE of Member_t.t
| GUILD_MEMBER_UPDATE of Member_t.t
| GUILD_MEMBERS_CHUNK of Member_t.t list
| GUILD_ROLE_CREATE of Role_t.t (* * Guild.t *)
| GUILD_ROLE_UPDATE of Role_t.t (* * Guild.t *)
| GUILD_ROLE_DELETE of Role_t.t (* * Guild.t *)
| MESSAGE_CREATE of Message_t.t
| MESSAGE_UPDATE of Message_t.t
| MESSAGE_DELETE of Message_t.t
| MESSAGE_BULK_DELETE of Message_t.t list
| MESSAGE_REACTION_ADD of (* Message.t * *) Reaction_t.t
| MESSAGE_REACTION_REMOVE of (* Message.t * *) Reaction_t.t
| MESSAGE_REACTION_REMOVE_ALL of (* Message.t * *) Reaction_t.t list
| PRESENCE_UPDATE of Presence_t.t
| TYPING_START of Yojson.Safe.json
| USER_UPDATE of Yojson.Safe.json
| VOICE_STATE_UPDATE of Yojson.Safe.json
| VOICE_SERVER_UPDATE of Yojson.Safe.json
| WEBHOOKS_UPDATE of Yojson.Safe.json
exception Invalid_event of string
val event_of_string : contents:string -> string -> dispatch_event
val dispatch : ev:string -> string -> unit
end
module type Http = sig
val token : string
module Base : sig
exception Invalid_Method
val base_url : string
val process_url : string -> Uri.t
val process_request_body : Yojson.Safe.json -> Cohttp_async.Body.t
val process_request_headers : unit -> Cohttp.Header.t
val process_response :
string ->
Cohttp_async.Response.t * Cohttp_async.Body.t ->
Yojson.Safe.json Deferred.t
val request :
?body:Yojson.Safe.json ->
[> `DELETE | `GET | `PATCH | `POST | `PUT ] ->
string ->
Yojson.Safe.json Deferred.t
end
(* Auto-generated signatures *)
val get_gateway : unit -> Yojson.Safe.json Async.Deferred.t
val get_gateway_bot : unit -> Yojson.Safe.json Async.Deferred.t
val get_channel : string -> Yojson.Safe.json Async.Deferred.t
val modify_channel :
string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t
val delete_channel : string -> Yojson.Safe.json Async.Deferred.t
val get_messages : string -> Yojson.Safe.json Async.Deferred.t
val get_message : string -> string -> Yojson.Safe.json Async.Deferred.t
val create_message :
string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t
val create_reaction :
string -> string -> string -> Yojson.Safe.json Async.Deferred.t
val delete_own_reaction :
string -> string -> string -> Yojson.Safe.json Async.Deferred.t
val delete_reaction :
string ->
string -> string -> string -> Yojson.Safe.json Async.Deferred.t
val get_reactions :
string -> string -> string -> Yojson.Safe.json Async.Deferred.t
val delete_reactions :
string -> string -> Yojson.Safe.json Async.Deferred.t
val edit_message :
string ->
string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t
val delete_message :
string -> string -> Yojson.Safe.json Async.Deferred.t
val bulk_delete :
string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t
val edit_channel_permissions :
string ->
string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t
val get_channel_invites : string -> Yojson.Safe.json Async.Deferred.t
val create_channel_invite :
string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t
val delete_channel_permission :
string -> string -> Yojson.Safe.json Async.Deferred.t
val broadcast_typing : string -> Yojson.Safe.json Async.Deferred.t
val get_pinned_messages : string -> Yojson.Safe.json Async.Deferred.t
val pin_message : string -> string -> Yojson.Safe.json Async.Deferred.t
val unpin_message :
string -> string -> Yojson.Safe.json Async.Deferred.t
val group_recipient_add :
string -> string -> Yojson.Safe.json Async.Deferred.t
val group_recipient_remove :
string -> string -> Yojson.Safe.json Async.Deferred.t
val get_emojis : string -> Yojson.Safe.json Async.Deferred.t
val get_emoji : string -> string -> Yojson.Safe.json Async.Deferred.t
val create_emoji :
string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t
val edit_emoji :
string ->
string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t
val delete_emoji : string -> string -> Yojson.Safe.json Async.Deferred.t
val create_guild :
Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t
val get_guild : string -> Yojson.Safe.json Async.Deferred.t
val edit_guild :
string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t
val delete_guild : string -> Yojson.Safe.json Async.Deferred.t
val get_guild_channels : string -> Yojson.Safe.json Async.Deferred.t
val create_guild_channel :
string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t
val modify_guild_channel_positions :
string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t
val get_member : string -> string -> Yojson.Safe.json Async.Deferred.t
val get_members : string -> Yojson.Safe.json Async.Deferred.t
val add_member :
string ->
string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t
val edit_member :
string ->
string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t
val remove_member :
string -> string -> Yojson.Safe.json Async.Deferred.t
val change_nickname :
string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t
val add_member_role :
string -> string -> string -> Yojson.Safe.json Async.Deferred.t
val remove_member_role :
string -> string -> string -> Yojson.Safe.json Async.Deferred.t
val get_bans : string -> Yojson.Safe.json Async.Deferred.t
val get_ban : string -> string -> Yojson.Safe.json Async.Deferred.t
val guild_ban_add :
string ->
string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t
val guild_ban_remove :
string -> string -> Yojson.Safe.json Async.Deferred.t
val get_roles : string -> Yojson.Safe.json Async.Deferred.t
val guild_role_add :
string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t
val guild_roles_edit :
string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t
val guild_role_edit :
string ->
string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t
val guild_role_remove :
string -> string -> Yojson.Safe.json Async.Deferred.t
val guild_prune_count : string -> Yojson.Safe.json Async.Deferred.t
val guild_prune_start :
string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t
val get_guild_voice_regions :
string -> Yojson.Safe.json Async.Deferred.t
val get_guild_invites : string -> Yojson.Safe.json Async.Deferred.t
val get_integrations : string -> Yojson.Safe.json Async.Deferred.t
val add_integration :
string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t
val edit_integration :
string ->
string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t
val delete_integration :
string -> string -> Yojson.Safe.json Async.Deferred.t
val sync_integration :
string -> string -> Yojson.Safe.json Async.Deferred.t
val get_guild_embed : string -> Yojson.Safe.json Async.Deferred.t
val edit_guild_embed :
string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t
val get_vanity_url : string -> Yojson.Safe.json Async.Deferred.t
val get_invite : string -> Yojson.Safe.json Async.Deferred.t
val delete_invite : string -> Yojson.Safe.json Async.Deferred.t
val get_current_user : unit -> Yojson.Safe.json Async.Deferred.t
val edit_current_user :
Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t
val get_guilds : unit -> Yojson.Safe.json Async.Deferred.t
val leave_guild : string -> Yojson.Safe.json Async.Deferred.t
val get_private_channels : unit -> Yojson.Safe.json Async.Deferred.t
val create_dm : Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t
val create_group_dm :
Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t
val get_connections : unit -> Yojson.Safe.json Async.Deferred.t
val get_user : string -> Yojson.Safe.json Async.Deferred.t
val get_voice_regions : unit -> Yojson.Safe.json Async.Deferred.t
val create_webhook :
string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t
val get_channel_webhooks : string -> Yojson.Safe.json Async.Deferred.t
val get_guild_webhooks : string -> Yojson.Safe.json Async.Deferred.t
val get_webhook : string -> Yojson.Safe.json Async.Deferred.t
val get_webhook_with_token :
string -> string -> Yojson.Safe.json Async.Deferred.t
val edit_webhook :
string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t
val edit_webhook_with_token :
string ->
string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t
val delete_webhook : string -> Yojson.Safe.json Async.Deferred.t
val delete_webhook_with_token :
string -> string -> Yojson.Safe.json Async.Deferred.t
val execute_webhook :
string ->
string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t
val execute_slack_webhook :
string ->
string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t
val execute_git_webhook :
string ->
string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t
val get_audit_logs :
string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t
end
module type Sharder = sig
exception Invalid_Payload
exception Failure_to_Establish_Heartbeat
type t
val start :
?count:int ->
unit ->
t Deferred.t
module Shard : sig
type shard
type 'a t = {
mutable state: 'a;
mutable binds: ('a -> unit) list;
}
val bind :
f:('a -> unit) ->
'a t ->
unit
val heartbeat :
shard ->
shard Deferred.t
val set_status :
status:Yojson.Safe.json ->
shard ->
shard Deferred.t
val request_guild_members :
?query:string ->
?limit:int ->
guild:Snowflake_t.t ->
shard ->
shard Deferred.t
val create :
url:string ->
shards:int * int ->
unit ->
shard Deferred.t
end
val set_status :
status:Yojson.Safe.json ->
t ->
Shard.shard list Deferred.t
val set_status_with :
f:(Shard.shard -> Yojson.Safe.json) ->
t ->
Shard.shard list Deferred.t
val request_guild_members :
?query:string ->
?limit:int ->
guild:Snowflake_t.t ->
t ->
Shard.shard list Deferred.t
end
|