Compare commits

..

2 commits

Author SHA1 Message Date
b5016bb39b
file ext stuff 2022-07-27 00:35:47 +02:00
a0fc0103f3
handle attachements 2022-07-27 00:35:40 +02:00
2 changed files with 43 additions and 4 deletions

View file

@ -1,5 +1,6 @@
import { Client, Message, MessageEmbed, TextBasedChannel } from 'discord.js'; import { Client, Message, MessageEmbed, TextBasedChannel } from 'discord.js';
import { getLocale } from '../../utils/locales'; import { getLocale } from '../../utils/locales';
import { isImage } from '../../utils/misc';
import { showDate } from '../../utils/time'; import { showDate } from '../../utils/time';
/** https://discord.js.org/#/docs/discord.js/main/class/Client?scrollTo=e-messageCreate */ /** https://discord.js.org/#/docs/discord.js/main/class/Client?scrollTo=e-messageCreate */
@ -75,21 +76,37 @@ export default async (message: Message, client: Client) => {
// Remove undefined elements // Remove undefined elements
).filter(Boolean); ).filter(Boolean);
messages.map(valid_message => { messages.map(quoted_msg => {
const embed = new MessageEmbed() const embed = new MessageEmbed()
.setColor('#2f3136') .setColor('#2f3136')
.setAuthor({ .setAuthor({
name: 'Citation', name: 'Citation',
iconURL: valid_message?.author.displayAvatarURL(), iconURL: quoted_msg?.author.displayAvatarURL(),
}) })
.setFooter({ .setFooter({
text: `Message posté le ${showDate( text: `Posté le ${showDate(
client.config.default_lang, client.config.default_lang,
getLocale(client, client.config.default_lang), getLocale(client, client.config.default_lang),
valid_message?.createdAt as Date) quoted_msg?.createdAt as Date)
}`, }`,
}); });
// Handle attachments
if (quoted_msg?.attachments.size === 1 && isImage(quoted_msg.attachments.first()?.name as string)) {
// Only contains one image
embed.setImage(quoted_msg.attachments.first()?.url as string);
} else {
// Contains more than one image or other files
let files = '';
quoted_msg?.attachments.forEach(attachment => {
files += `[${attachment.name}](${attachment.url}), `;
});
embed.addFields({
name: 'Fichiers joints',
value: `${files.slice(0, -2)}.`,
});
}
return message.channel.send({ embeds: [embed] }); return message.channel.send({ embeds: [embed] });
}); });
}; };

View file

@ -36,3 +36,25 @@ export const removeExtension = (filename: string) => {
return array.join('.'); return array.join('.');
}; };
/**
* Get extension from a filename.
* @param filename string of the filename
* @returns string of the extension if it exists
*/
export const getExtension = (filename: string) => {
const array = filename.split('.');
return array.pop();
};
/**
* Define if a media is a media based on file extension.
* @param filename string of the filename
* @returns true is file is a media
*/
export const isImage = (filename: string) => {
return Boolean(getExtension(filename)?.match(
/jpg|jpeg|png|webp|gif/
));
};