discord_allnight/events/messageCreate.js

38 lines
1.4 KiB
JavaScript

import { EmbedBuilder } from 'discord.js';
import { getMetaData } from '../feature/utility.js'; // 메타데이터 추출 함수
export default async function messageCreateEvent(message) {
const badWords = ['권태웅', '태웅', '웅태'];
if (badWords.some(word => message.content.includes(word))) {
await message.channel.send('어허 나쁜말 쓰지 마세요');
}
// URL 감지 및 메타데이터 처리
const dcinsideUrlPattern = /https?:\/\/(m\.)?gall\.dcinside\.com\/(mgallery\/)?board\/view\/\?id=[^&]+&no=\d+/g;
const detectedUrls = message.content.match(dcinsideUrlPattern);
if (detectedUrls && detectedUrls.length > 0) {
for (const url of detectedUrls) {
try {
const metaData = await getMetaData(url); // URL의 메타데이터 추출
const embed = new EmbedBuilder()
.setColor(0x0099FF)
.setTitle(metaData.title || '제목 없음')
.setURL(url)
.setDescription(metaData.description || '설명 없음');
if (metaData.image) {
embed.setImage(metaData.image);
}
await message.channel.send({ embeds: [embed] });
} catch (error) {
console.error(`DCInside URL 메타데이터 처리 중 오류:`, error.message);
await message.channel.send(`DCInside URL에서 메타데이터를 가져오는 중 오류가 발생했습니다.`);
}
}
}
}