From 9d0ca00f8976bc320e5a1b26bf9384b8121a8378 Mon Sep 17 00:00:00 2001 From: jack1142 <6032823+jack1142@users.noreply.github.com> Date: Thu, 16 May 2019 08:06:46 +0200 Subject: [PATCH] [General]: shorten descriptions properly with disabled embeds in urban (#2684) fix #2683 --- redbot/cogs/general/general.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/redbot/cogs/general/general.py b/redbot/cogs/general/general.py index ec7a35ac6..133ca58ba 100644 --- a/redbot/cogs/general/general.py +++ b/redbot/cogs/general/general.py @@ -307,14 +307,17 @@ class General(commands.Cog): messages = [] for ud in data["list"]: ud.setdefault("example", "N/A") - description = _("{definition}\n\n**Example:** {example}").format(**ud) - if len(description) > 2048: - description = "{}...".format(description[:2045]) - message = _( "<{permalink}>\n {word} by {author}\n\n{description}\n\n" "{thumbs_down} Down / {thumbs_up} Up, Powered by Urban Dictionary." - ).format(word=ud.pop("word").capitalize(), description=description, **ud) + ).format(word=ud.pop("word").capitalize(), description="{description}", **ud) + max_desc_len = 2000 - len(message) + + description = _("{definition}\n\n**Example:** {example}").format(**ud) + if len(description) > max_desc_len: + description = "{}...".format(description[: max_desc_len - 3]) + + message = message.format(description=description) messages.append(message) if messages is not None and len(messages) > 0: