summaryrefslogtreecommitdiff
path: root/lib/irc
diff options
context:
space:
mode:
authorJordan Bracco <href@random.sh>2025-06-25 19:22:59 +0200
committerJordan Bracco <href@random.sh>2025-06-25 19:22:59 +0200
commitc934e79e5852e05f714b2d542cc2678e287c49b8 (patch)
tree55779a0168260fce03e4775eacdd613ffc945588 /lib/irc
parentupdates (diff)
format.
Diffstat (limited to '')
-rw-r--r--lib/irc.ex14
-rw-r--r--lib/irc/admin_handler.ex11
-rw-r--r--lib/irc/message.ex13
3 files changed, 23 insertions, 15 deletions
diff --git a/lib/irc.ex b/lib/irc.ex
index 2c7a468..26e3843 100644
--- a/lib/irc.ex
+++ b/lib/irc.ex
@@ -6,6 +6,7 @@ defmodule Nola.Irc do
def send_message_as(account, network, channel, text, force_puppet \\ false, meta \\ []) do
connection = Nola.Irc.Connection.get_network(network)
+
if connection && (force_puppet || Nola.Irc.PuppetConnection.whereis(account, connection)) do
Nola.Irc.PuppetConnection.start_and_send_message(account, connection, channel, text, meta)
else
@@ -21,7 +22,7 @@ defmodule Nola.Irc do
for {n, u, h} <- Nola.Irc.env(:admins, []) do
admin_part_match?(n, nick) && admin_part_match?(u, user) && admin_part_match?(h, host)
end
- |> Enum.any?
+ |> Enum.any?()
end
defp admin_part_match?(:_, _), do: true
@@ -34,9 +35,13 @@ defmodule Nola.Irc do
Nola.Irc.Connection.setup()
[
- worker(Registry, [[keys: :duplicate, name: Nola.Irc.ConnectionPubSub]], id: :registr_irc_conn),
- supervisor(Nola.Irc.Connection.Supervisor, [], [name: Nola.Irc.Connection.Supervisor]),
- supervisor(Nola.Irc.PuppetConnection.Supervisor, [], [name: Nola.Irc.PuppetConnection.Supervisor]),
+ worker(Registry, [[keys: :duplicate, name: Nola.Irc.ConnectionPubSub]],
+ id: :registr_irc_conn
+ ),
+ supervisor(Nola.Irc.Connection.Supervisor, [], name: Nola.Irc.Connection.Supervisor),
+ supervisor(Nola.Irc.PuppetConnection.Supervisor, [],
+ name: Nola.Irc.PuppetConnection.Supervisor
+ )
]
end
@@ -45,5 +50,4 @@ defmodule Nola.Irc do
Logger.info("Starting connections")
Nola.Irc.Connection.start_all()
end
-
end
diff --git a/lib/irc/admin_handler.ex b/lib/irc/admin_handler.ex
index 39556fe..e4834fa 100644
--- a/lib/irc/admin_handler.ex
+++ b/lib/irc/admin_handler.ex
@@ -13,17 +13,22 @@ defmodule Nola.Irc.AdminHandler do
end
def init([client]) do
- ExIRC.Client.add_handler client, self()
+ ExIRC.Client.add_handler(client, self())
{:ok, _} = Registry.register(Nola.PubSub, "op", [])
{:ok, client}
end
- def handle_info({:irc, :trigger, "op", m = %Nola.Message{trigger: %Nola.Trigger{type: :bang}, sender: sender}}, client) do
+ def handle_info(
+ {:irc, :trigger, "op",
+ m = %Nola.Message{trigger: %Nola.Trigger{type: :bang}, sender: sender}},
+ client
+ ) do
if Nola.Irc.admin?(sender) do
m.replyfun.({:mode, "+o"})
else
m.replyfun.({:kick, "non"})
end
+
{:noreply, client}
end
@@ -31,11 +36,11 @@ defmodule Nola.Irc.AdminHandler do
if Nola.Irc.admin?(sender) do
ExIRC.Client.mode(client, chan, "+o", sender.nick)
end
+
{:noreply, client}
end
def handle_info(msg, client) do
{:noreply, client}
end
-
end
diff --git a/lib/irc/message.ex b/lib/irc/message.ex
index 3927079..4b61d36 100644
--- a/lib/irc/message.ex
+++ b/lib/irc/message.ex
@@ -1,28 +1,27 @@
defmodule Nola.Irc.Message do
-
@max_chars 440
def splitlong(string, max_chars \\ 440)
def splitlong(string, max_chars) when is_list(string) do
- Enum.map(string, fn(s) -> splitlong(s, max_chars) end)
+ Enum.map(string, fn s -> splitlong(s, max_chars) end)
|> List.flatten()
end
def splitlong(string, max_chars) do
string
- |> String.codepoints
+ |> String.codepoints()
|> Enum.chunk_every(max_chars)
|> Enum.map(&Enum.join/1)
end
def splitlong_with_prefix(string, prefix, max_chars \\ 440) do
prefix = "#{prefix} "
- max_chars = max_chars - (length(String.codepoints(prefix)))
+ max_chars = max_chars - length(String.codepoints(prefix))
+
string
- |> String.codepoints
+ |> String.codepoints()
|> Enum.chunk_every(max_chars)
- |> Enum.map(fn(line) -> prefix <> Enum.join(line) end)
+ |> Enum.map(fn line -> prefix <> Enum.join(line) end)
end
-
end