clean up set_chan_* functions

This commit is contained in:
tali 2024-01-24 12:53:39 -05:00
parent 7d8807318b
commit 8e711970e7
1 changed files with 22 additions and 35 deletions

View File

@ -97,41 +97,29 @@ let set_chan_mode ~from ?(add = Mode.Set.empty) ?(rem = Mode.Set.empty) chan =
if chg <> Mode.Set.no_change then if chg <> Mode.Set.no_change then
let modestr = Fmt.str "%a" Mode.Set.pp_change chg in let modestr = Fmt.str "%a" Mode.Set.pp_change chg in
let msg = Msg.make "MODE" [Chan.name chan; modestr] in let msg = Msg.make "MODE" [Chan.name chan; modestr] in
begin Router.relay msg ~from [`to_chan chan; `to_self];
Router.relay msg ~from [`to_chan chan; `to_self]; Chan.set_mode chan mode
Chan.set_mode chan mode;
end
let set_chan_key chan ~from = function let set_chan_key chan ~from chg =
| `set key -> let key, args = match chg with
let msg = Msg.make "MODE" [Chan.name chan; "+k"; key] ~always_trailing:true in | `set k -> Some k, ["+k"; k]
begin | `unset -> None, ["-k"]
Router.relay msg ~from [`to_chan chan; `to_self]; in
Chan.set_key chan (Some key); if key <> Chan.key chan then
end let always_trailing = Option.is_some key in
| `unset -> let msg = Msg.make "MODE" (Chan.name chan :: args) ~always_trailing in
if Chan.key chan <> None then Router.relay msg ~from [`to_chan chan; `to_self];
let msg = Msg.make "MODE" [Chan.name chan; "-k"; "*"] in Chan.set_key chan key
begin
Router.relay msg ~from [`to_chan chan; `to_self];
Chan.set_key chan None;
end
let set_chan_limit chan ~from = function let set_chan_limit chan ~from chg =
| `set lim -> let limit, args = match chg with
if Chan.limit chan <> Some lim then | `set l -> Some l, ["+l"; string_of_int l]
let msg = Msg.make "MODE" [Chan.name chan; "+l"; string_of_int lim] in | `unset -> None, ["-l"]
begin in
Router.relay msg ~from [`to_chan chan; `to_self]; if limit <> Chan.limit chan then
Chan.set_limit chan (Some lim); let msg = Msg.make "MODE" (Chan.name chan :: args) in
end Router.relay msg ~from [`to_chan chan; `to_self];
| `unset -> Chan.set_limit chan limit
if Chan.limit chan <> None then
let msg = Msg.make "MODE" [Chan.name chan; "-l"] in
begin
Router.relay msg ~from [`to_chan chan; `to_self];
Chan.set_limit chan None;
end
let on_get_user_mode user me = let on_get_user_mode user me =
let* () = if user != me then Error usersdontmatch_get else Ok () in let* () = if user != me then Error usersdontmatch_get else Ok () in
@ -160,9 +148,8 @@ let on_get_chan_mode chan _me =
| None -> [] | None -> []
end; end;
_todo_validation_please [];
(* TODO: only display key if priveledged enough to see it *) (* TODO: only display key if priveledged enough to see it *)
_todo_validation_please [];
begin match Chan.key chan with begin match Chan.key chan with
| Some key -> ["324", [Chan.name chan; "+k"; key]] | Some key -> ["324", [Chan.name chan; "+k"; key]]
| None -> [] | None -> []