diff options
author | href <href@random.sh> | 2021-09-01 12:31:13 +0200 |
---|---|---|
committer | href <href@random.sh> | 2021-09-01 12:31:13 +0200 |
commit | 3ff6b4aae3b3c8beed2ce59c5766ad21e1bdc9af (patch) | |
tree | 67f2b7a61cd850bc35f0a98e6b150e945b38822a /lib/irc/user_track.ex | |
parent | preums: remove migration code (diff) |
track: clean on reconnecting
Diffstat (limited to 'lib/irc/user_track.ex')
-rw-r--r-- | lib/irc/user_track.ex | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/irc/user_track.ex b/lib/irc/user_track.ex index 08b5160..5e1c3a3 100644 --- a/lib/irc/user_track.ex +++ b/lib/irc/user_track.ex @@ -17,6 +17,18 @@ defmodule IRC.UserTrack do op(fn(ets) -> :ets.insert(ets, tuple) end) end + def clear_network(network) do + op(fn(ets) -> + spec = [ + {{:_, :"$1", :_, :_, :_, :_, :_, :_, :_, :_, :_}, + [ + {:==, :"$1", {:const, network}} + ], [:"$_"]} + ] + :ets.match_delete(ets, spec) + end) + end + def op(fun) do GenServer.call(__MODULE__, {:op, fun}) end @@ -97,6 +109,10 @@ defmodule IRC.UserTrack do end end + def clear_network(network) do + Storage.clear_network(network) + end + def merge_account(old_id, new_id) do #iex(15)> :ets.fun2ms(fn(obj = {_, net, acct, _, _, _, _, _, _}) when net == network and acct == account -> obj end) |