Compare commits

...

2 Commits

Author SHA1 Message Date
Rachel Fae Fox 7438712201 mix format 2022-11-10 11:08:33 -05:00
Rachel Fae Fox 83ae20c041 sticker_items is nil, not [], when empty... 2022-11-10 11:07:54 -05:00
2 changed files with 49 additions and 9 deletions

View File

@ -69,6 +69,40 @@ defmodule Discordirc.Formatter do
|> do_replace(matches)
end
def from_discord(
%{attachments: attachments, author: user, guild_id: guild, sticker_items: nil} = msg
) do
usr =
case DiscordAPI.get_guild_member(guild, user.id) do
{:ok, %{nick: nick}} when is_binary(nick) -> nick
_ -> "#{user.username}\##{user.discriminator}"
end
cpart =
msg
|> fixdiscordidstrings
|> String.split("\n")
apart =
attachments
|> Enum.map(& &1.url)
messages =
(cpart ++ apart)
|> Enum.filter(&(&1 != ""))
# discord may give... many lines. split and format.
case Enum.count(messages) do
0 ->
{usr, "#{messages[0]}"}
_ ->
{usr,
messages
|> Enum.map(fn m -> "#{m}" end)}
end
end
def from_discord(
%{attachments: attachments, author: user, guild_id: guild, sticker_items: stickers} = msg
) do

View File

@ -31,10 +31,11 @@ defmodule Discordirc.SplitterTest do
irc_after_split = ircsplit(lorem_ipsum, prefix_len)
assert irc_after_split == irc_result
assert Enum.map(irc_after_split, &byte_size(prefix <> &1)) |> Enum.map(&(&1 <= 512)) == [
true,
true
]
assert Enum.map(irc_after_split, &byte_size(prefix <> &1 <> "\r\n")) |> Enum.map(&(&1 <= 512)) ==
[
true,
true
]
end
test "ircsplit with emoji" do
@ -57,10 +58,11 @@ defmodule Discordirc.SplitterTest do
irc_after_split = ircsplit(lorem_ipsum, prefix_len)
assert irc_after_split == irc_result
assert Enum.map(irc_after_split, &byte_size(prefix <> &1)) |> Enum.map(&(&1 <= 512)) == [
true,
true
]
assert Enum.map(irc_after_split, &byte_size(prefix <> &1 <> "\r\n")) |> Enum.map(&(&1 <= 512)) ==
[
true,
true
]
end
test "ircsplit only emoji" do
@ -77,6 +79,10 @@ defmodule Discordirc.SplitterTest do
irc_split = ircsplit(crabs, prefix_len)
assert irc_split == good_split
assert Enum.map(irc_split, &byte_size(prefix <> &1)) |> Enum.map(&(&1 <= 512)) == [true, true]
assert Enum.map(irc_split, &byte_size(prefix <> &1 <> "\r\n")) |> Enum.map(&(&1 <= 512)) == [
true,
true
]
end
end