fix dcinside regex & US stock market alarm setting
This commit is contained in:
parent
03e12861df
commit
1ff7e96e50
|
|
@ -10,14 +10,14 @@ export function initializeCronJobs(client) {
|
|||
if (channel) {
|
||||
const isDST = isDaylightSavingTime();
|
||||
const dstMessage = isDST
|
||||
? '(서머타임 적용됨)'
|
||||
: '(서머타임 적용되지 않음)';
|
||||
? '(서머타임 적용)'
|
||||
: '(서머타임 미적용)';
|
||||
await channel.send(`미국 주식 시장이 열렸습니다. ${dstMessage}`);
|
||||
}
|
||||
}, null, true, 'Asia/Seoul');
|
||||
|
||||
// 미국 주식 시장 폐장 시간 (월~금)
|
||||
const closeTime = isDaylightSavingTime() ? '0 5 * * 1-5' : '0 6 * * 1-5';
|
||||
// 미국 주식 시장 폐장 시간 (월~금) → 한국 시간 화~토 새벽에 실행
|
||||
const closeTime = isDaylightSavingTime() ? '0 5 * * 2-6' : '0 6 * * 2-6';
|
||||
const closeJob = new CronJob(closeTime, async () => {
|
||||
if (channel) {
|
||||
await channel.send('미국 주식 시장이 닫혔습니다.');
|
||||
|
|
|
|||
|
|
@ -10,53 +10,29 @@ export default async function messageCreateEvent(message) {
|
|||
|
||||
|
||||
// URL 감지 및 메타데이터 처리
|
||||
const mobileUrlPattern = /https?:\/\/m\.dcinside\.com\/board\/[^\s]+/g;
|
||||
const normalUrlPattern = /https?:\/\/gall\.dcinside\.com\/mgallery\/board\/view\/\?id=[^&]+&no=\d+/g;
|
||||
const dcinsideUrlPattern = /https?:\/\/(m\.)?gall\.dcinside\.com\/(mgallery\/)?board\/view\/\?id=[^&]+&no=\d+/g;
|
||||
const detectedUrls = message.content.match(dcinsideUrlPattern);
|
||||
|
||||
const mobileUrls = message.content.match(mobileUrlPattern);
|
||||
const normalUrls = message.content.match(normalUrlPattern);
|
||||
if (detectedUrls && detectedUrls.length > 0) {
|
||||
for (const url of detectedUrls) {
|
||||
try {
|
||||
const metaData = await getMetaData(url); // URL의 메타데이터 추출
|
||||
|
||||
// 모바일 URL 처리
|
||||
if (mobileUrls && mobileUrls.length > 0) {
|
||||
try {
|
||||
const metaData = await getMetaData(mobileUrls[0]); // 첫 번째 모바일 URL 메타데이터 추출
|
||||
const embed = new EmbedBuilder()
|
||||
.setColor(0x0099FF)
|
||||
.setTitle(metaData.title || '제목 없음')
|
||||
.setURL(url)
|
||||
.setDescription(metaData.description || '설명 없음');
|
||||
|
||||
const embed = new EmbedBuilder()
|
||||
.setColor(0x0099FF)
|
||||
.setTitle(metaData.title || '제목 없음')
|
||||
.setURL(mobileUrls[0])
|
||||
.setDescription(metaData.description || '설명 없음');
|
||||
if (metaData.image) {
|
||||
embed.setImage(metaData.image);
|
||||
}
|
||||
|
||||
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에서 메타데이터를 가져오는 중 오류가 발생했습니다.`);
|
||||
}
|
||||
|
||||
await message.channel.send({ embeds: [embed] });
|
||||
} catch (error) {
|
||||
console.error('모바일 URL 메타데이터 처리 중 오류:', error.message);
|
||||
await message.channel.send('모바일 URL에서 메타데이터를 가져오는 중 오류가 발생했습니다.');
|
||||
}
|
||||
}
|
||||
|
||||
// 갤러리 URL 처리
|
||||
if (normalUrls && normalUrls.length > 0) {
|
||||
try {
|
||||
const metaData = await getMetaData(normalUrls[0]); // 첫 번째 갤러리 URL 메타데이터 추출
|
||||
|
||||
const embed = new EmbedBuilder()
|
||||
.setColor(0x0099FF)
|
||||
.setTitle(metaData.title || '제목 없음')
|
||||
.setURL(normalUrls[0])
|
||||
.setDescription(metaData.description || '설명 없음');
|
||||
|
||||
if (metaData.image) {
|
||||
embed.setImage(metaData.image);
|
||||
}
|
||||
|
||||
await message.channel.send({ embeds: [embed] });
|
||||
} catch (error) {
|
||||
console.error('갤러리 URL 메타데이터 처리 중 오류:', error.message);
|
||||
await message.channel.send('갤러리 URL에서 메타데이터를 가져오는 중 오류가 발생했습니다.');
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue