prevent images from being too big for discord

This commit is contained in:
klemek
2020-04-29 12:36:10 +02:00
parent f99bfff3ed
commit 9f46e8b8f9
+23 -20
View File
@@ -135,26 +135,29 @@ async def on_message(message: discord.Message):
else: else:
with tempfile.NamedTemporaryFile(delete=False) as output: with tempfile.NamedTemporaryFile(delete=False) as output:
img.save(output, format="JPEG") img.save(output, format="JPEG")
response = None if os.stat(output.name).st_size > 8 * 1024 * 1024: # 8MB
meme_id = utils.sanitize_input(args[0]) await message.channel.send(":warning:\nOutput image is too big to be sent by discord")
if len(args) == 1 and meme_id not in ["image", "text"]: else:
meme = meme_db.get_meme(meme_id) response = None
response = f"Template `{meme.id}`:" meme_id = utils.sanitize_input(args[0])
if len(meme.aliases) > 0: if len(args) == 1 and meme_id not in ["image", "text"]:
response += f"\n- Aliases: `{'`, `'.join(meme.aliases)}`" meme = meme_db.get_meme(meme_id)
if meme.info is not None: response = f"Template `{meme.id}`:"
response += f"\n- More info: <{meme.info}>" if len(meme.aliases) > 0:
response += f"\n- Use:" \ response += f"\n- Aliases: `{'`, `'.join(meme.aliases)}`"
f"\n```{meme.id} \"" + \ if meme.info is not None:
"\" \"".join([f"text {i + 1}" for i in range(meme.texts_len)]) + \ response += f"\n- More info: <{meme.info}>"
"\"```" response += f"\n- Use:" \
elif not is_direct: f"\n```{meme.id} \"" + \
response = f"A meme by {message.author.mention}:" "\" \"".join([f"text {i + 1}" for i in range(meme.texts_len)]) + \
if message_id not in SENT: "\"```"
SENT[message_id] = [] elif not is_direct:
response = await message.channel.send(response, response = f"A meme by {message.author.mention}:"
file=discord.File(filename="meme.jpg", fp=output.name)) if message_id not in SENT:
SENT[message_id] += [response] SENT[message_id] = []
response = await message.channel.send(response,
file=discord.File(filename="meme.jpg", fp=output.name))
SENT[message_id] += [response]
try: try:
os.remove(output.name) os.remove(output.name)
except PermissionError: except PermissionError: