Compare commits
2 Commits
6d99d07514
...
7438712201
Author | SHA1 | Date |
---|---|---|
Rachel Fae Fox | 7438712201 | |
Rachel Fae Fox | 83ae20c041 |
|
@ -69,6 +69,40 @@ defmodule Discordirc.Formatter do
|
||||||
|> do_replace(matches)
|
|> do_replace(matches)
|
||||||
end
|
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(
|
def from_discord(
|
||||||
%{attachments: attachments, author: user, guild_id: guild, sticker_items: stickers} = msg
|
%{attachments: attachments, author: user, guild_id: guild, sticker_items: stickers} = msg
|
||||||
) do
|
) do
|
||||||
|
|
|
@ -31,10 +31,11 @@ defmodule Discordirc.SplitterTest do
|
||||||
irc_after_split = ircsplit(lorem_ipsum, prefix_len)
|
irc_after_split = ircsplit(lorem_ipsum, prefix_len)
|
||||||
assert irc_after_split == irc_result
|
assert irc_after_split == irc_result
|
||||||
|
|
||||||
assert Enum.map(irc_after_split, &byte_size(prefix <> &1)) |> Enum.map(&(&1 <= 512)) == [
|
assert Enum.map(irc_after_split, &byte_size(prefix <> &1 <> "\r\n")) |> Enum.map(&(&1 <= 512)) ==
|
||||||
true,
|
[
|
||||||
true
|
true,
|
||||||
]
|
true
|
||||||
|
]
|
||||||
end
|
end
|
||||||
|
|
||||||
test "ircsplit with emoji" do
|
test "ircsplit with emoji" do
|
||||||
|
@ -57,10 +58,11 @@ defmodule Discordirc.SplitterTest do
|
||||||
irc_after_split = ircsplit(lorem_ipsum, prefix_len)
|
irc_after_split = ircsplit(lorem_ipsum, prefix_len)
|
||||||
assert irc_after_split == irc_result
|
assert irc_after_split == irc_result
|
||||||
|
|
||||||
assert Enum.map(irc_after_split, &byte_size(prefix <> &1)) |> Enum.map(&(&1 <= 512)) == [
|
assert Enum.map(irc_after_split, &byte_size(prefix <> &1 <> "\r\n")) |> Enum.map(&(&1 <= 512)) ==
|
||||||
true,
|
[
|
||||||
true
|
true,
|
||||||
]
|
true
|
||||||
|
]
|
||||||
end
|
end
|
||||||
|
|
||||||
test "ircsplit only emoji" do
|
test "ircsplit only emoji" do
|
||||||
|
@ -77,6 +79,10 @@ defmodule Discordirc.SplitterTest do
|
||||||
|
|
||||||
irc_split = ircsplit(crabs, prefix_len)
|
irc_split = ircsplit(crabs, prefix_len)
|
||||||
assert irc_split == good_split
|
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
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue