aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatias Goldfeld <[email protected]>2021-01-26 03:33:48 -0500
committerMatias Goldfeld <[email protected]>2021-01-26 03:33:48 -0500
commita4afbc4c507419c5fd50c9403bc0bf6a53c92632 (patch)
treec8d27cfc2fced85f634969b185d5f651c27915f2
parentAdd MRs to CI build (diff)
downloaddisml-a4afbc4c507419c5fd50c9403bc0bf6a53c92632.tar.xz
disml-a4afbc4c507419c5fd50c9403bc0bf6a53c92632.zip
Stated incompatability with new versions of decompress in disml.opam and made some small fixes to add compatability with new OCaml versions
-rw-r--r--disml.opam3
-rw-r--r--lib/gateway/sharder.ml4
-rw-r--r--lib/models/event_models.ml10
-rw-r--r--lib/models/guild/guild.ml4
4 files changed, 11 insertions, 10 deletions
diff --git a/disml.opam b/disml.opam
index 38d6bc5..4f35302 100644
--- a/disml.opam
+++ b/disml.opam
@@ -1,3 +1,4 @@
+version: "cbb1e47-dirty"
opam-version: "2.0"
name: "disml"
version: "0.2.5"
@@ -25,7 +26,7 @@ depends: [
"async_ssl" {>= "v0.11.0"}
"cohttp-async" {>= "1.2.0"}
"core" {>= "v0.11.3"}
- "decompress" {>= "0.8"}
+ "decompress" {<= "0.8.1"}
"odoc" {with-doc & >= "1.3.0"}
"ppx_deriving_yojson" {>= "3.3"}
"ppx_sexp_conv" {>= "v0.11.2"}
diff --git a/lib/gateway/sharder.ml b/lib/gateway/sharder.ml
index ba865a9..14763ca 100644
--- a/lib/gateway/sharder.ml
+++ b/lib/gateway/sharder.ml
@@ -23,7 +23,7 @@ let decompress src =
pos := !pos + len;
len)
(fun obuf len ->
- Buffer.add_subbytes res obuf 0 len; 0xFFFF)
+ Buffer.add_subbytes res obuf ~pos:0 ~len:len; 0xFFFF)
(Zlib_inflate.default ~witness:B.bytes window)
|> function
| Ok _ -> Buffer.contents res
@@ -95,7 +95,7 @@ module Shard = struct
let seq = J.(member "s" payload |> to_int) in
let t = J.(member "t" payload |> to_string) in
let data = J.member "d" payload in
- let session = if t = "READY" then begin
+ let session = if String.equal t "READY" then begin
Ivar.fill_if_empty shard.ready ();
Clock.after (Core.Time.Span.create ~sec:5 ())
>>> (fun _ -> Mvar.put identify_lock () >>> ignore);
diff --git a/lib/models/event_models.ml b/lib/models/event_models.ml
index 603f2c3..40ff299 100644
--- a/lib/models/event_models.ml
+++ b/lib/models/event_models.ml
@@ -319,7 +319,7 @@ module GuildMemberRemove = struct
if Cache.GuildMap.mem cache.guilds t.guild_id then
let guilds = match Cache.GuildMap.find cache.guilds t.guild_id with
| Some g ->
- let members = List.filter g.members ~f:(fun m -> m.user.id <> t.user.id) in
+ let members = List.filter g.members ~f:(fun m -> User_id.compare m.user.id t.user.id <> 0) in
let data = { g with members } in
Cache.GuildMap.set cache.guilds ~key:t.guild_id ~data
| None -> cache.guilds in
@@ -342,7 +342,7 @@ module GuildMemberUpdate = struct
let guilds = match Cache.GuildMap.find cache.guilds t.guild_id with
| Some g ->
let members = List.map g.members ~f:(fun m ->
- if m.user.id = t.user.id then
+ if User_id.compare m.user.id t.user.id = 0 then
{ m with nick = t.nick; roles = t.roles }
else m) in
let data = { g with members } in
@@ -367,7 +367,7 @@ module GuildMembersChunk = struct
let `Guild_id guild_id = t.guild_id in
let users = List.map t.members ~f:(fun m -> m.user.id, m.user) in
let members = List.filter_map t.members ~f:(fun m ->
- if List.exists g.members ~f:(fun m' -> m'.user.id <> m.user.id) then
+ if List.exists g.members ~f:(fun m' -> User_id.compare m'.user.id m.user.id <> 0) then
Some (Member_t.wrap ~guild_id m)
else None) in
let guilds = Cache.GuildMap.set cache.guilds ~key:t.guild_id ~data:{ g with members } in
@@ -415,7 +415,7 @@ module GuildRoleDelete = struct
if Cache.GuildMap.mem cache.guilds t.guild_id then
let guilds = match Cache.GuildMap.find cache.guilds t.guild_id with
| Some g ->
- let roles = List.filter g.roles ~f:(fun r -> r.id <> t.role_id) in
+ let roles = List.filter g.roles ~f:(fun r -> Role_id.get_id r.id <> Role_id.get_id t.role_id) in
let data = { g with roles } in
Cache.GuildMap.set cache.guilds ~key:t.guild_id ~data
| None -> cache.guilds in
@@ -437,7 +437,7 @@ module GuildRoleUpdate = struct
| Some g ->
let `Guild_id guild_id = t.guild_id in
let roles = List.map g.roles ~f:(fun r ->
- if r.id = t.role.id then Role_t.wrap ~guild_id t.role else r) in
+ if Role_id.get_id r.id = Role_id.get_id t.role.id then Role_t.wrap ~guild_id t.role else r) in
let data = { g with roles } in
Cache.GuildMap.set cache.guilds ~key:t.guild_id ~data
| None -> cache.guilds in
diff --git a/lib/models/guild/guild.ml b/lib/models/guild/guild.ml
index 2559df6..95485a4 100644
--- a/lib/models/guild/guild.ml
+++ b/lib/models/guild/guild.ml
@@ -111,7 +111,7 @@ let unban_user ~id ?reason guild =
in Http.guild_ban_remove (get_id guild) id payload
let get_member ~(id:User_id_t.t) guild =
- match List.find ~f:(fun m -> m.user.id = id) guild.members with
+ match List.find ~f:(fun m -> User_id.compare m.user.id id = 0) guild.members with
| Some m -> Deferred.Or_error.return m
| None ->
let `User_id id = id in
@@ -125,4 +125,4 @@ let get_channel ~(id:Channel_id_t.t) guild =
(* TODO add HTTP fallback *)
let get_role ~(id:Role_id.t) guild =
- List.find ~f:(fun r -> r.id = id) guild.roles
+ List.find ~f:(fun r -> Role_id.get_id r.id = Role_id.get_id id) guild.roles