From 8a130bbafe90b45bf99e63091d11082e0a675c1b Mon Sep 17 00:00:00 2001 From: Jordan Bracco Date: Tue, 20 Dec 2022 03:37:05 +0000 Subject: More IRC. cleanup, refs T77. --- lib/irc/message.ex | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 lib/irc/message.ex (limited to 'lib/irc/message.ex') diff --git a/lib/irc/message.ex b/lib/irc/message.ex new file mode 100644 index 0000000..3927079 --- /dev/null +++ b/lib/irc/message.ex @@ -0,0 +1,28 @@ +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) + |> List.flatten() + end + + def splitlong(string, max_chars) do + string + |> 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))) + string + |> String.codepoints + |> Enum.chunk_every(max_chars) + |> Enum.map(fn(line) -> prefix <> Enum.join(line) end) + end + +end -- cgit v1.2.3