From f388033b75789d25a833d29a2759c0a741a61c51 Mon Sep 17 00:00:00 2001 From: Jordan Bracco Date: Tue, 20 Dec 2022 02:52:54 +0000 Subject: Rename IRC.Membership to Nola.Membership, refs T77 --- lib/irc/membership.ex | 129 ----------------------------- lib/irc/nola_irc.ex | 2 +- lib/irc/user_track.ex | 8 +- lib/matrix/room.ex | 2 +- lib/nola/account.ex | 4 +- lib/nola/membership.ex | 129 +++++++++++++++++++++++++++++ lib/plugins/alcoolog.ex | 16 ++-- lib/plugins/alcoolog_announcer.ex | 2 +- lib/plugins/last_fm.ex | 2 +- lib/plugins/say.ex | 2 +- lib/telegram/telegram.ex | 4 +- lib/web/context_plug.ex | 2 +- lib/web/controllers/alcoolog_controller.ex | 16 ++-- lib/web/controllers/irc_controller.ex | 2 +- lib/web/controllers/page_controller.ex | 2 +- lib/web/live/chat_live.ex | 2 +- 16 files changed, 162 insertions(+), 162 deletions(-) delete mode 100644 lib/irc/membership.ex create mode 100644 lib/nola/membership.ex diff --git a/lib/irc/membership.ex b/lib/irc/membership.ex deleted file mode 100644 index 25a0cfc..0000000 --- a/lib/irc/membership.ex +++ /dev/null @@ -1,129 +0,0 @@ -defmodule IRC.Membership do - @moduledoc """ - Memberships (users in channels) - """ - - # Key: {account, net, channel} - # Format: {key, last_seen} - - defp dets() do - to_charlist(Nola.data_path <> "/memberships.dets") - end - - def start_link() do - GenServer.start_link(__MODULE__, [], [name: __MODULE__]) - end - - def init(_) do - dets = :dets.open_file(dets(), []) - {:ok, dets} - end - - def of_account(%Nola.Account{id: id}) do - spec = [{{{:"$1", :"$2", :"$3"}, :_}, [{:==, :"$1", {:const, id}}], [{{:"$2", :"$3"}}]}] - :dets.select(dets(), spec) - end - - def merge_account(old_id, new_id) do - #iex(37)> :ets.fun2ms(fn({{old_id, _, _}, _}=obj) when old_id == "42" -> obj end) - spec = [{{{:"$1", :_, :_}, :_}, [{:==, :"$1", {:const, old_id}}], [:"$_"]}] - Util.ets_mutate_select_each(:dets, dets(), spec, fn(table, obj = {{_old, net, chan}, ts}) -> - :dets.delete_object(table, obj) - :dets.insert(table, {{new_id, net, chan}, ts}) - end) - end - - def touch(%Nola.Account{id: id}, network, channel) do - :dets.insert(dets(), {{id, network, channel}, NaiveDateTime.utc_now()}) - end - def touch(account_id, network, channel) do - if account = Nola.Account.get(account_id) do - touch(account, network, channel) - end - end - - def notify_channels(account, minutes \\ 30, last_active \\ true) do - not_before = NaiveDateTime.add(NaiveDateTime.utc_now(), (minutes*-60), :second) - spec = [{{{:"$1", :_, :_}, :_}, [{:==, :"$1", {:const, account.id}}], [:"$_"]}] - memberships = :dets.select(dets(), spec) - |> Enum.sort_by(fn({_, ts}) -> ts end, {:desc, NaiveDateTime}) - active_memberships = Enum.filter(memberships, fn({_, ts}) -> NaiveDateTime.compare(ts, not_before) == :gt end) - cond do - active_memberships == [] && last_active -> - case memberships do - [{{_, net, chan}, _}|_] -> [{net, chan}] - _ -> [] - end - active_memberships == [] -> - [] - true -> - Enum.map(active_memberships, fn({{_, net, chan}, _}) -> {net,chan} end) - end - end - - def members_or_friends(account, _network, nil) do - friends(account) - end - - def members_or_friends(_, network, channel) do - members(network, channel) - end - - def expanded_members_or_friends(account, network, channel) do - expand(network, members_or_friends(account, network, channel)) - end - - def expanded_members(network, channel) do - expand(network, members(network, channel)) - end - - def members(network, channel) do - #iex(19)> :ets.fun2ms(fn({{id, net, chan}, ts}) when net == network and chan == channel and ts > min_seen -> id end) - limit = 0 # NaiveDateTime.add(NaiveDateTime.utc_now, 30*((24*-60)*60), :second) - spec = [ - {{{:"$1", :"$2", :"$3"}, :"$4"}, - [ - {:andalso, - {:andalso, {:==, :"$2", {:const, network}}, {:==, :"$3", {:const, channel}}}, - {:>, :"$4", {:const, limit}}} - ], [:"$1"]} - ] - :dets.select(dets(), spec) - end - - def friends(account = %Nola.Account{id: id}) do - for({net, chan} <- of_account(account), do: members(net, chan)) - |> List.flatten() - |> Enum.uniq() - end - - def handle_info(_, dets) do - {:noreply, dets} - end - - def handle_cast(_, dets) do - {:noreply, dets} - end - - def handle_call(_, _, dets) do - {:noreply, dets} - end - - def terminate(_, dets) do - :dets.sync(dets) - :dets.close(dets) - end - - defp expand(network, list) do - for id <- list do - if account = Nola.Account.get(id) do - user = IRC.UserTrack.find_by_account(network, account) - nick = if(user, do: user.nick, else: account.name) - {account, user, nick} - end - end - |> Enum.filter(fn(x) -> x end) - end - - -end diff --git a/lib/irc/nola_irc.ex b/lib/irc/nola_irc.ex index 2d355d3..7e23f50 100644 --- a/lib/irc/nola_irc.ex +++ b/lib/irc/nola_irc.ex @@ -12,7 +12,7 @@ defmodule Nola.IRC do [ worker(Registry, [[keys: :duplicate, name: IRC.ConnectionPubSub]], id: :registr_irc_conn), - worker(IRC.Membership, []), + worker(Nola.Membership, []), worker(Nola.Account, []), worker(IRC.UserTrack.Storage, []), worker(Nola.Plugins.Account, []), diff --git a/lib/irc/user_track.ex b/lib/irc/user_track.ex index 3f144d5..56a319f 100644 --- a/lib/irc/user_track.ex +++ b/lib/irc/user_track.ex @@ -213,7 +213,7 @@ defmodule IRC.UserTrack do user = touch_struct(user, channel) if touch && user.account do - IRC.Membership.touch(user.account, sender.network, channel) + Nola.Membership.touch(user.account, sender.network, channel) end Storage.op(fn(ets) -> @@ -246,7 +246,7 @@ defmodule IRC.UserTrack do {%User{user | account: account.id}, account} end Storage.insert(User.to_tuple(user)) - if chan, do: IRC.Membership.touch(account, network, chan) + if chan, do: Nola.Membership.touch(account, network, chan) if !m.account do {:ok, %IRC.Message{m | account: account}} else @@ -287,7 +287,7 @@ defmodule IRC.UserTrack do def parted(network, channel, nick) do if user = find_by_nick(network, nick) do if user.account do - IRC.Membership.touch(user.account, network, channel) + Nola.Membership.touch(user.account, network, channel) end privs = Map.delete(user.privileges, channel) @@ -307,7 +307,7 @@ defmodule IRC.UserTrack do if user = find_by_nick(sender.network, sender.nick) do if user.account do for {channel, _} <- user.privileges do - IRC.Membership.touch(user.account, sender.network, channel) + Nola.Membership.touch(user.account, sender.network, channel) end IRC.Connection.publish_event(sender.network, %{type: :quit, user_id: user.id, account_id: user.account, reason: reason}) end diff --git a/lib/matrix/room.ex b/lib/matrix/room.ex index 4c5cf7e..57f35b8 100644 --- a/lib/matrix/room.ex +++ b/lib/matrix/room.ex @@ -86,7 +86,7 @@ defmodule Nola.Matrix.Room do if s["content"]["membership"] == "join" do [s["user_id"] | acc] else - # XXX: The user left, remove from IRC.Memberships ? + # XXX: The user left, remove from Nola.Memberships ? acc end else diff --git a/lib/nola/account.ex b/lib/nola/account.ex index cd424ef..4f1e7ff 100644 --- a/lib/nola/account.ex +++ b/lib/nola/account.ex @@ -135,7 +135,7 @@ defmodule Nola.Account do :ok = :dets.insert(file("meta"), {{new_id, k}, v}) end :dets.delete(file("db"), old_id) - IRC.Membership.merge_account(old_id, new_id) + Nola.Membership.merge_account(old_id, new_id) IRC.UserTrack.merge_account(old_id, new_id) IRC.Connection.dispatch("account", {:account_change, old_id, new_id}) IRC.Connection.dispatch("conn", {:account_change, old_id, new_id}) @@ -158,7 +158,7 @@ defmodule Nola.Account do nil else %__MODULE__{} = account -> - memberships = IRC.Membership.of_account(account) + memberships = Nola.Membership.of_account(account) if Enum.any?(memberships, fn({net, ch}) -> (net == network) or (chan && chan == ch) end) do account else diff --git a/lib/nola/membership.ex b/lib/nola/membership.ex new file mode 100644 index 0000000..b98efd7 --- /dev/null +++ b/lib/nola/membership.ex @@ -0,0 +1,129 @@ +defmodule Nola.Membership do + @moduledoc """ + Memberships (users in channels) + """ + + # Key: {account, net, channel} + # Format: {key, last_seen} + + defp dets() do + to_charlist(Nola.data_path <> "/memberships.dets") + end + + def start_link() do + GenServer.start_link(__MODULE__, [], [name: __MODULE__]) + end + + def init(_) do + dets = :dets.open_file(dets(), []) + {:ok, dets} + end + + def of_account(%Nola.Account{id: id}) do + spec = [{{{:"$1", :"$2", :"$3"}, :_}, [{:==, :"$1", {:const, id}}], [{{:"$2", :"$3"}}]}] + :dets.select(dets(), spec) + end + + def merge_account(old_id, new_id) do + #iex(37)> :ets.fun2ms(fn({{old_id, _, _}, _}=obj) when old_id == "42" -> obj end) + spec = [{{{:"$1", :_, :_}, :_}, [{:==, :"$1", {:const, old_id}}], [:"$_"]}] + Util.ets_mutate_select_each(:dets, dets(), spec, fn(table, obj = {{_old, net, chan}, ts}) -> + :dets.delete_object(table, obj) + :dets.insert(table, {{new_id, net, chan}, ts}) + end) + end + + def touch(%Nola.Account{id: id}, network, channel) do + :dets.insert(dets(), {{id, network, channel}, NaiveDateTime.utc_now()}) + end + def touch(account_id, network, channel) do + if account = Nola.Account.get(account_id) do + touch(account, network, channel) + end + end + + def notify_channels(account, minutes \\ 30, last_active \\ true) do + not_before = NaiveDateTime.add(NaiveDateTime.utc_now(), (minutes*-60), :second) + spec = [{{{:"$1", :_, :_}, :_}, [{:==, :"$1", {:const, account.id}}], [:"$_"]}] + memberships = :dets.select(dets(), spec) + |> Enum.sort_by(fn({_, ts}) -> ts end, {:desc, NaiveDateTime}) + active_memberships = Enum.filter(memberships, fn({_, ts}) -> NaiveDateTime.compare(ts, not_before) == :gt end) + cond do + active_memberships == [] && last_active -> + case memberships do + [{{_, net, chan}, _}|_] -> [{net, chan}] + _ -> [] + end + active_memberships == [] -> + [] + true -> + Enum.map(active_memberships, fn({{_, net, chan}, _}) -> {net,chan} end) + end + end + + def members_or_friends(account, _network, nil) do + friends(account) + end + + def members_or_friends(_, network, channel) do + members(network, channel) + end + + def expanded_members_or_friends(account, network, channel) do + expand(network, members_or_friends(account, network, channel)) + end + + def expanded_members(network, channel) do + expand(network, members(network, channel)) + end + + def members(network, channel) do + #iex(19)> :ets.fun2ms(fn({{id, net, chan}, ts}) when net == network and chan == channel and ts > min_seen -> id end) + limit = 0 # NaiveDateTime.add(NaiveDateTime.utc_now, 30*((24*-60)*60), :second) + spec = [ + {{{:"$1", :"$2", :"$3"}, :"$4"}, + [ + {:andalso, + {:andalso, {:==, :"$2", {:const, network}}, {:==, :"$3", {:const, channel}}}, + {:>, :"$4", {:const, limit}}} + ], [:"$1"]} + ] + :dets.select(dets(), spec) + end + + def friends(account = %Nola.Account{id: id}) do + for({net, chan} <- of_account(account), do: members(net, chan)) + |> List.flatten() + |> Enum.uniq() + end + + def handle_info(_, dets) do + {:noreply, dets} + end + + def handle_cast(_, dets) do + {:noreply, dets} + end + + def handle_call(_, _, dets) do + {:noreply, dets} + end + + def terminate(_, dets) do + :dets.sync(dets) + :dets.close(dets) + end + + defp expand(network, list) do + for id <- list do + if account = Nola.Account.get(id) do + user = IRC.UserTrack.find_by_account(network, account) + nick = if(user, do: user.nick, else: account.name) + {account, user, nick} + end + end + |> Enum.filter(fn(x) -> x end) + end + + +end diff --git a/lib/plugins/alcoolog.ex b/lib/plugins/alcoolog.ex index 9958889..738be71 100644 --- a/lib/plugins/alcoolog.ex +++ b/lib/plugins/alcoolog.ex @@ -424,7 +424,7 @@ defmodule Nola.Plugins.Alcoolog do "" end m.replyfun.(msg.(m.sender.nick, local_extra)) - notify = IRC.Membership.notify_channels(m.account) -- [{m.network,m.channel}] + notify = Nola.Membership.notify_channels(m.account) -- [{m.network,m.channel}] for {net, chan} <- notify do user = IRC.UserTrack.find_by_account(net, m.account) nick = if(user, do: user.nick, else: m.account.name) @@ -451,7 +451,7 @@ defmodule Nola.Plugins.Alcoolog do if miss do miss = Nola.Plugins.Txt.random("alcoolog.#{to_string(miss)}") if miss do - for {net, chan} <- IRC.Membership.notify_channels(m.account) do + for {net, chan} <- Nola.Membership.notify_channels(m.account) do user = IRC.UserTrack.find_by_account(net, m.account) nick = if(user, do: user.nick, else: m.account.name) IRC.Connection.broadcast_message(net, chan, "#{nick}: #{miss}") @@ -474,7 +474,7 @@ defmodule Nola.Plugins.Alcoolog do end def get_channel_statistics(account, network, nil) do - IRC.Membership.expanded_members_or_friends(account, network, nil) + Nola.Membership.expanded_members_or_friends(account, network, nil) |> Enum.map(fn({account, _, nick}) -> {nick, get_full_statistics(account.id)} end) |> Enum.filter(fn({_nick, status}) -> status && (status.active > 0 || status.active30m > 0) end) |> Enum.sort_by(fn({_, status}) -> status.active end, &>/2) @@ -483,7 +483,7 @@ defmodule Nola.Plugins.Alcoolog do def get_channel_statistics(_, network, channel), do: get_channel_statistics(network, channel) def get_channel_statistics(network, channel) do - IRC.Membership.expanded_members(network, channel) + Nola.Membership.expanded_members(network, channel) |> Enum.map(fn({account, _, nick}) -> {nick, get_full_statistics(account.id)} end) |> Enum.filter(fn({_nick, status}) -> status && (status.active > 0 || status.active30m > 0) end) |> Enum.sort_by(fn({_, status}) -> status.active end, &>/2) @@ -581,7 +581,7 @@ defmodule Nola.Plugins.Alcoolog do end def handle_info({:irc, :trigger, "sobre", m = %IRC.Message{trigger: %IRC.Trigger{args: args, type: :dot}}}, state) do - nicks = IRC.Membership.expanded_members_or_friends(m.account, m.network, m.channel) + nicks = Nola.Membership.expanded_members_or_friends(m.account, m.network, m.channel) |> Enum.map(fn({account, _, nick}) -> {nick, get_full_statistics(state, account.id)} end) |> Enum.filter(fn({_nick, status}) -> status && status.sober_in && status.sober_in > 0 end) |> Enum.sort_by(fn({_, status}) -> status.sober_in end, & Enum.map(fn({account, _, nick}) -> {nick, get_full_statistics(state, account.id)} end) |> Enum.filter(fn({_nick, status}) -> status && (status.active > 0 || status.active30m > 0) end) |> Enum.sort_by(fn({_, status}) -> status.active end, &>/2) @@ -773,7 +773,7 @@ defmodule Nola.Plugins.Alcoolog do [{:>, :"$1", {:const, before}}], [:"$_"]} ] # tuple ets: {{nick, date}, volumes, current, nom, commentaire} - members = IRC.Membership.members_or_friends(m.account, m.network, m.channel) + members = Nola.Membership.members_or_friends(m.account, m.network, m.channel) drinks = :ets.select(state.ets, match) |> Enum.filter(fn({{account, _}, _, _, _, _, _, _, _}) -> Enum.member?(members, account) end) |> Enum.sort_by(fn({{_, ts}, _, _, _, _, _, _, _}) -> ts end, &>/2) @@ -849,7 +849,7 @@ defmodule Nola.Plugins.Alcoolog do :ets.delete(state.ets, {m.account.id, date}) m.replyfun.("supprimé: #{m.sender.nick} #{points} #{type} #{descr}") Nola.Plugins.Txt.reply_random(m, "alcoolog.delete") - notify = IRC.Membership.notify_channels(m.account) -- [{m.network,m.channel}] + notify = Nola.Membership.notify_channels(m.account) -- [{m.network,m.channel}] for {net, chan} <- notify do user = IRC.UserTrack.find_by_account(net, m.account) nick = if(user, do: user.nick, else: m.account.name) diff --git a/lib/plugins/alcoolog_announcer.ex b/lib/plugins/alcoolog_announcer.ex index 2baa999..9f66799 100644 --- a/lib/plugins/alcoolog_announcer.ex +++ b/lib/plugins/alcoolog_announcer.ex @@ -235,7 +235,7 @@ defmodule Nola.Plugins.AlcoologAnnouncer do if message do #IO.puts("#{acct}: #{message}") account = Nola.Account.get(acct) - for {net, chan} <- IRC.Membership.notify_channels(account) do + for {net, chan} <- Nola.Membership.notify_channels(account) do user = IRC.UserTrack.find_by_account(net, account) nick = if(user, do: user.nick, else: account.name) IRC.Connection.broadcast_message(net, chan, "#{nick}: #{message}") diff --git a/lib/plugins/last_fm.ex b/lib/plugins/last_fm.ex index 4607cbe..68c55ee 100644 --- a/lib/plugins/last_fm.ex +++ b/lib/plugins/last_fm.ex @@ -65,7 +65,7 @@ defmodule Nola.Plugins.LastFm do end def handle_info({:irc, :trigger, _, message = %{trigger: %{type: :dot}}}, state) do - members = IRC.Membership.members(message.network, message.channel) + members = Nola.Membership.members(message.network, message.channel) foldfun = fn({nick, user}, acc) -> [{nick,user}|acc] end usernames = :dets.foldl(foldfun, [], state.dets) |> Enum.uniq() diff --git a/lib/plugins/say.ex b/lib/plugins/say.ex index e036bd4..9bfe1bd 100644 --- a/lib/plugins/say.ex +++ b/lib/plugins/say.ex @@ -58,7 +58,7 @@ defmodule Nola.Plugins.Say do end defp say_for(account, target, text, with_nick?) do - for {net, chan} <- IRC.Membership.of_account(account) do + for {net, chan} <- Nola.Membership.of_account(account) do chan2 = String.replace(chan, "#", "") if (target == "#{net}/#{chan}" || target == "#{net}/#{chan2}" || target == chan || target == chan2) do if with_nick? do diff --git a/lib/telegram/telegram.ex b/lib/telegram/telegram.ex index a93f5bb..dd23146 100644 --- a/lib/telegram/telegram.ex +++ b/lib/telegram/telegram.ex @@ -105,7 +105,7 @@ defmodule Nola.Telegram do account = Nola.Account.find_meta_account("telegram-id", chat_id) if account do target = case String.split(target, "/") do - ["everywhere"] -> IRC.Membership.of_account(account) + ["everywhere"] -> Nola.Membership.of_account(account) [net, chan] -> [{net, chan}] end Telegram.Api.request(t, "editMessageText", chat_id: chat_id, message_id: m_id, text: "Processing...", reply_markup: %{}) @@ -215,7 +215,7 @@ defmodule Nola.Telegram do account = Nola.Account.find_meta_account("telegram-id", id) if account do text = if(m["text"], do: m["text"], else: nil) - targets = IRC.Membership.of_account(account) + targets = Nola.Membership.of_account(account) |> Enum.map(fn({net, chan}) -> "#{net}/#{chan}" end) |> Enum.map(fn(i) -> %{"text" => i, "callback_data" => "start-upload:#{i}"} end) kb = if Enum.count(targets) > 1 do diff --git a/lib/web/context_plug.ex b/lib/web/context_plug.ex index 7289763..fcdf42f 100644 --- a/lib/web/context_plug.ex +++ b/lib/web/context_plug.ex @@ -36,7 +36,7 @@ defmodule NolaWeb.ContextPlug do chan_conn = IRC.Connection.get_network(network, chan) memberships = if account do - IRC.Membership.of_account(account) + Nola.Membership.of_account(account) end auth_required = cond do diff --git a/lib/web/controllers/alcoolog_controller.ex b/lib/web/controllers/alcoolog_controller.ex index dc09517..6337da5 100644 --- a/lib/web/controllers/alcoolog_controller.ex +++ b/lib/web/controllers/alcoolog_controller.ex @@ -19,7 +19,7 @@ defmodule NolaWeb.AlcoologController do def nick(conn = %{assigns: %{account: account}}, params = %{"network" => network, "nick" => nick}) do profile_account = Nola.Account.find_always_by_nick(network, nick, nick) days = String.to_integer(Map.get(params, "days", "180")) - friend? = Enum.member?(IRC.Membership.friends(account), profile_account.id) + friend? = Enum.member?(Nola.Membership.friends(account), profile_account.id) if friend? do stats = Nola.Plugins.Alcoolog.get_full_statistics(profile_account.id) history = for {{nick, ts}, points, active, cl, deg, type, descr, meta} <- Nola.Plugins.Alcoolog.nick_history(profile_account) do @@ -48,7 +48,7 @@ defmodule NolaWeb.AlcoologController do def nick_stats_json(conn = %{assigns: %{account: account}}, params = %{"network" => network, "nick" => nick}) do profile_account = Nola.Account.find_always_by_nick(network, nick, nick) - friend? = Enum.member?(IRC.Membership.friends(account), profile_account.id) + friend? = Enum.member?(Nola.Membership.friends(account), profile_account.id) if friend? do stats = Nola.Plugins.Alcoolog.get_full_statistics(profile_account.id) @@ -64,7 +64,7 @@ defmodule NolaWeb.AlcoologController do def nick_gls_json(conn = %{assigns: %{account: account}}, params = %{"network" => network, "nick" => nick}) do profile_account = Nola.Account.find_always_by_nick(network, nick, nick) - friend? = Enum.member?(IRC.Membership.friends(account), profile_account.id) + friend? = Enum.member?(Nola.Membership.friends(account), profile_account.id) count = String.to_integer(Map.get(params, "days", "180")) if friend? do data = Nola.Plugins.Alcoolog.user_over_time_gl(profile_account, count) @@ -98,7 +98,7 @@ defmodule NolaWeb.AlcoologController do def nick_volumes_json(conn = %{assigns: %{account: account}}, params = %{"network" => network, "nick" => nick}) do profile_account = Nola.Account.find_always_by_nick(network, nick, nick) - friend? = Enum.member?(IRC.Membership.friends(account), profile_account.id) + friend? = Enum.member?(Nola.Membership.friends(account), profile_account.id) count = String.to_integer(Map.get(params, "days", "180")) if friend? do data = Nola.Plugins.Alcoolog.user_over_time(profile_account, count) @@ -130,7 +130,7 @@ defmodule NolaWeb.AlcoologController do def nick_log_json(conn = %{assigns: %{account: account}}, %{"network" => network, "nick" => nick}) do profile_account = Nola.Account.find_always_by_nick(network, nick, nick) - friend? = Enum.member?(IRC.Membership.friends(account), profile_account.id) + friend? = Enum.member?(Nola.Membership.friends(account), profile_account.id) if friend? do history = for {{nick, ts}, points, active, cl, deg, type, descr, meta} <- Nola.Plugins.Alcoolog.nick_history(profile_account) do %{ @@ -161,7 +161,7 @@ defmodule NolaWeb.AlcoologController do def nick_history_json(conn = %{assigns: %{account: account}}, %{"network" => network, "nick" => nick}) do profile_account = Nola.Account.find_always_by_nick(network, nick, nick) - friend? = Enum.member?(IRC.Membership.friends(account), profile_account.id) + friend? = Enum.member?(Nola.Membership.friends(account), profile_account.id) if friend? do history = for {_, date, value} <- Nola.Plugs.AlcoologAnnouncer.log(profile_account) do %{date: DateTime.to_iso8601(date), value: value} @@ -220,7 +220,7 @@ defmodule NolaWeb.AlcoologController do ] # tuple ets: {{nick, date}, volumes, current, nom, commentaire} - members = IRC.Membership.expanded_members_or_friends(account, network, channel) + members = Nola.Membership.expanded_members_or_friends(account, network, channel) members_ids = Enum.map(members, fn({account, _, nick}) -> account.id end) member_names = Enum.reduce(members, %{}, fn({account, _, nick}, acc) -> Map.put(acc, account.id, nick) end) drinks = :ets.select(Nola.Plugins.Alcoolog.ETS, match) @@ -246,7 +246,7 @@ defmodule NolaWeb.AlcoologController do def index_gls_json(conn = %{assigns: %{account: account}}, %{"network" => network, "chan" => channel}) do count = 30 channel = NolaWeb.reformat_chan(channel) - members = IRC.Membership.expanded_members_or_friends(account, network, channel) + members = Nola.Membership.expanded_members_or_friends(account, network, channel) members_ids = Enum.map(members, fn({account, _, nick}) -> account.id end) member_names = Enum.reduce(members, %{}, fn({account, _, nick}, acc) -> Map.put(acc, account.id, nick) end) delay = count*((24 * 60)*60) diff --git a/lib/web/controllers/irc_controller.ex b/lib/web/controllers/irc_controller.ex index d6114e6..441cbe7 100644 --- a/lib/web/controllers/irc_controller.ex +++ b/lib/web/controllers/irc_controller.ex @@ -17,7 +17,7 @@ defmodule NolaWeb.IrcController do members = cond do network && channel -> Enum.map(IRC.UserTrack.channel(network, channel), fn(tuple) -> IRC.UserTrack.User.from_tuple(tuple) end) true -> - IRC.Membership.of_account(conn.assigns.account) + Nola.Membership.of_account(conn.assigns.account) end render conn, "index.html", network: network, commands: commands, channel: channel, members: members end diff --git a/lib/web/controllers/page_controller.ex b/lib/web/controllers/page_controller.ex index c5d0a57..a6b85b6 100644 --- a/lib/web/controllers/page_controller.ex +++ b/lib/web/controllers/page_controller.ex @@ -23,7 +23,7 @@ defmodule NolaWeb.PageController do end def index(conn = %{assigns: %{account: account}}, _) do - memberships = IRC.Membership.of_account(account) + memberships = Nola.Membership.of_account(account) users = IRC.UserTrack.find_by_account(account) metas = Nola.Account.get_all_meta(account) predicates = Nola.Account.get_predicates(account) diff --git a/lib/web/live/chat_live.ex b/lib/web/live/chat_live.ex index 0513cc2..2d5e289 100644 --- a/lib/web/live/chat_live.ex +++ b/lib/web/live/chat_live.ex @@ -7,7 +7,7 @@ defmodule NolaWeb.ChatLive do chan = NolaWeb.reformat_chan(chan) connection = IRC.Connection.get_network(network, chan) account = Nola.Account.get(account_id) - membership = IRC.Membership.of_account(Nola.Account.get("DRgpD4fLf8PDJMLp8Dtb")) + membership = Nola.Membership.of_account(Nola.Account.get("DRgpD4fLf8PDJMLp8Dtb")) if account && connection && Enum.member?(membership, {connection.network, chan}) do {:ok, _} = Registry.register(Nola.PubSub, "#{connection.network}:events", plugin: __MODULE__) for t <- ["messages", "triggers", "outputs", "events"] do -- cgit v1.2.3