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 urlPattern = /https?:\/\/(www\.)?(m\.)?gall\.dcinside\.com\/(mgallery\/board\/view\/\?id=[^&]+&no=\d+|board\/[^\s]+)/g; const urls = message.content.match(urlPattern); if (urls && urls.length > 0) { try { // 첫 번째 URL의 메타데이터 추출 const metaData = await getMetaData(urls[0]); // Embed 메시지 생성 const embed = new EmbedBuilder() .setColor(0x0099FF) .setTitle(metaData.title || '제목 없음') .setURL(urls[0]) .setDescription(metaData.description || '설명 없음'); // 이미지가 있을 경우에만 추가 if (metaData.image) { embed.setImage(metaData.image); } // 메시지 채널에 Embed 전송 await message.channel.send({ embeds: [embed] }); } catch (error) { console.error('메타데이터 처리 중 오류:', error.message); await message.channel.send('URL에서 메타데이터를 가져오는 중 오류가 발생했습니다.'); } } }