pixivcord/send_message.py
sclement 5c45550184
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/tag/woodpecker Pipeline was successful
Use raw messages
2023-10-30 16:37:32 +01:00

60 lines
2.1 KiB
Python

import math
import os
import discord
async def send_message_with_embed(
message: discord.Message, files, title: str, tmp_dir: str, url: str
):
to_send_files = []
to_send_embeds = []
for file in files:
joined = os.path.join(tmp_dir, file)
embed = discord.Embed(url=url)
embed.set_image(url=f"attachment://{file}")
to_send_files.append(discord.File(joined, file))
to_send_embeds.append(embed)
if len(to_send_embeds) > 4:
parts = math.ceil(len(to_send_embeds) / 4)
i = 1
while len(to_send_embeds) > 4:
splited_file = to_send_files[:4]
to_send_files = to_send_files[4:]
splited_embed = to_send_embeds[:4]
to_send_embeds = to_send_embeds[4:]
for embed in splited_embed:
embed.title = f"{title} - Part {i}/{parts}"
if i == 1:
await message.reply(files=splited_file, embeds=splited_embed)
else:
await message.channel.send(files=splited_file, embeds=splited_embed)
i = i + 1
for embed in to_send_embeds:
embed.title = f"{title} - Part {i}/{parts}"
await message.channel.send(files=to_send_files, embeds=to_send_embeds)
else:
for embed in to_send_embeds:
embed.title = title
await message.reply(files=to_send_files, embeds=to_send_embeds)
async def send_message(message: discord.Message, files, tmp_dir: str):
to_send_files = []
for file in files:
joined = os.path.join(tmp_dir, file)
to_send_files.append(discord.File(joined, file))
if len(to_send_files) > 10:
first = True
while len(to_send_files) > 10:
splited_file = to_send_files[:4]
to_send_files = to_send_files[4:]
if first:
await message.reply(files=splited_file)
first = False
else:
await message.channel.send(files=splited_file)
await message.channel.send(files=to_send_files)
else:
await message.reply(files=to_send_files)