From a28d24470ddeca6196219a1333c1ccac1319efef Mon Sep 17 00:00:00 2001 From: href Date: Wed, 11 Mar 2020 21:18:34 +0100 Subject: welp --- lib/irc.ex | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'lib/irc.ex') diff --git a/lib/irc.ex b/lib/irc.ex index 6ba819c..f989366 100644 --- a/lib/irc.ex +++ b/lib/irc.ex @@ -31,4 +31,29 @@ defmodule IRC do defp admin_part_match?(a, a), do: true defp admin_part_match?(_, _), do: false + @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