From 6d99d07514b7d3f8f1d0ce3ef20fc216e8d01feb Mon Sep 17 00:00:00 2001 From: Rachel Fae Fox Date: Thu, 10 Nov 2022 10:33:56 -0500 Subject: [PATCH] implements links to stickers. fix's #5, works on #6 --- lib/formatter.ex | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/formatter.ex b/lib/formatter.ex index 9756ba6..76644b6 100755 --- a/lib/formatter.ex +++ b/lib/formatter.ex @@ -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.