aboutsummaryrefslogtreecommitdiff
path: root/lib/sharder.ml
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sharder.ml')
-rw-r--r--lib/sharder.ml20
1 files changed, 5 insertions, 15 deletions
diff --git a/lib/sharder.ml b/lib/sharder.ml
index 9e2ef74..5d665b9 100644
--- a/lib/sharder.ml
+++ b/lib/sharder.ml
@@ -9,7 +9,6 @@ module Shard = struct
mutable hb: unit Ivar.t option;
mutable seq: int;
mutable session: string option;
- handler: (string * Model.t) Pipe.Writer.t;
token: string;
shard: int * int;
write: string Pipe.Writer.t;
@@ -55,19 +54,11 @@ module Shard = struct
shard.seq <- seq;
let t = J.(member "t" payload |> to_string) in
let data = J.member "d" payload in
- let _ = match t with
- | "READY" ->
+ if t = "READY" then begin
Ivar.fill_if_empty shard.ready ();
let session = J.(member "session_id" data |> to_string) in
shard.session <- Some session
- | "MESSAGE_CREATE" ->
- let msg = Model.Message.from_json data in
- Pipe.write shard.handler (t, Message msg) >>> ignore
- | "GUILD_CREATE" ->
- let guild = Model.Guild.from_json data in
- Pipe.write shard.handler (t, Guild guild) >>> ignore
- | _ -> ()
- in
+ end;
return shard
let set_status shard status =
@@ -168,7 +159,7 @@ module Shard = struct
print_endline @@ "Invalid Opcode:" ^ Opcode.to_string opcode;
return shard
- let create ~url ~shards ~token ~handler () =
+ let create ~url ~shards ~token () =
let open Core in
let uri = (url ^ "?v=6&encoding=json") |> Uri.of_string in
let extra_headers = Http.Base.process_request_headers () in
@@ -194,7 +185,6 @@ module Shard = struct
let shard = {
read;
write;
- handler;
ready = Ivar.create ();
hb = None;
seq = 0;
@@ -227,7 +217,7 @@ type t = {
shards: Shard.t list;
}
-let start ?count ~handler token =
+let start ?count token =
let module J = Yojson.Basic.Util in
Http.get_gateway_bot () >>= fun data ->
let url = J.(member "url" data |> to_string) in
@@ -240,7 +230,7 @@ let start ?count ~handler token =
match l with
| (id, total) when id >= total -> return a
| (id, total) ->
- Shard.create ~url ~shards:(id, total) ~token ~handler ()
+ Shard.create ~url ~shards:(id, total) ~token ()
>>= fun shard ->
let a = shard :: a in
gen_shards (id+1, total) a