diff --git a/events/messageCreate.js b/events/messageCreate.js index 9936cea..c156c89 100644 --- a/events/messageCreate.js +++ b/events/messageCreate.js @@ -10,23 +10,30 @@ export default async function messageCreateEvent(message) { // URL 감지 및 메타데이터 처리 - const urlPattern = /https?:\/\/(www\.)?(m\.)?gall\.dcinside\.com\/[^\s]*/g; + 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 { - const metaData = await getMetaData(urls[0]); // 첫 번째 URL의 메타데이터 추출 + // 첫 번째 URL의 메타데이터 추출 + const metaData = await getMetaData(urls[0]); + // Embed 메시지 생성 const embed = new EmbedBuilder() .setColor(0x0099FF) .setTitle(metaData.title || '제목 없음') .setURL(urls[0]) - .setDescription(metaData.description || '설명 없음') - .setImage(metaData.image || null); + .setDescription(metaData.description || '설명 없음'); + // 이미지가 있을 경우에만 추가 + if (metaData.image) { + embed.setImage(metaData.image); + } + + // 메시지 채널에 Embed 전송 await message.channel.send({ embeds: [embed] }); } catch (error) { - console.error('메타데이터 처리 중 오류:', error); + console.error('메타데이터 처리 중 오류:', error.message); await message.channel.send('URL에서 메타데이터를 가져오는 중 오류가 발생했습니다.'); } }