Skip to content

Commit 3d8a5b1

Browse files
committed
truncate set lists
1 parent 80c78e9 commit 3d8a5b1

File tree

1 file changed

+18
-3
lines changed

1 file changed

+18
-3
lines changed

lib/cardian/builder.ex

+18-3
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ defmodule Cardian.Builder do
263263
when is_list(card.sets_paper) and length(card.sets_paper) > 0 do
264264
card.sets_paper
265265
|> Enum.map(&"[#{&1}](#{@set_base_url}#{&1})")
266-
|> Enum.join(", ")
266+
|> truncate_sets()
267267
end
268268

269269
defp build_sets(%Card{} = card, :md) when is_list(card.sets_md) and length(card.sets_md) > 0 do
@@ -276,7 +276,7 @@ defmodule Cardian.Builder do
276276
&1.name
277277
end
278278
)
279-
|> Enum.join(", ")
279+
|> truncate_sets()
280280
end
281281

282282
defp build_sets(%Card{} = card, :dl) when is_list(card.sets_dl) and length(card.sets_dl) > 0 do
@@ -289,11 +289,26 @@ defmodule Cardian.Builder do
289289
&1.name
290290
end
291291
)
292-
|> Enum.join(", ")
292+
|> truncate_sets()
293293
end
294294

295295
defp build_sets(_, _), do: "Unreleased"
296296

297+
defp truncate_sets(sets) when is_list(sets) do
298+
{sets, rest} = Enum.split(sets, 5)
299+
300+
case Enum.empty?(rest) do
301+
true ->
302+
sets
303+
|> Enum.join(", ")
304+
305+
false ->
306+
sets
307+
|> Enum.join(", ")
308+
|> then(&"#{&1} and #{length(rest)} more...")
309+
end
310+
end
311+
297312
defp try_put_color(embed, color) when is_integer(color) do
298313
put_color(embed, color)
299314
end

0 commit comments

Comments
 (0)