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)
|
||||
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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue