implements links to stickers. fix's #5, works on #6

master
Rachel Fae Fox 2022-11-10 10:33:56 -05:00
parent dd072964ae
commit 6d99d07514
1 changed files with 10 additions and 4 deletions

View File

@ -5,6 +5,8 @@ defmodule Discordirc.Formatter do
alias Nostrum.Api, as: DiscordAPI
alias Discordirc.DiscordInfo
@discordcdn "https://cdn.discordapp.com/"
def from_irc(nick, msg, ctcp \\ false) do
# strip or replace IRC formatting.
fmsg =
@ -67,9 +69,9 @@ defmodule Discordirc.Formatter do
|> do_replace(matches)
end
def from_discord(msg) do
%{attachments: attachments, author: user, guild_id: guild} = msg
def from_discord(
%{attachments: attachments, author: user, guild_id: guild, sticker_items: stickers} = msg
) do
usr =
case DiscordAPI.get_guild_member(guild, user.id) do
{:ok, %{nick: nick}} when is_binary(nick) -> nick
@ -85,8 +87,12 @@ defmodule Discordirc.Formatter do
attachments
|> Enum.map(& &1.url)
spart =
stickers
|> Enum.map(fn s -> "#{@discordcdn}stickers/#{s.id}.png" end)
messages =
(cpart ++ apart)
(cpart ++ apart ++ spart)
|> Enum.filter(&(&1 != ""))
# discord may give... many lines. split and format.