Skip to content

Commit 5958068

Browse files
committed
feat: Send event details in markdown
1 parent 06d15fc commit 5958068

File tree

3 files changed

+118
-101
lines changed

3 files changed

+118
-101
lines changed

package-lock.json

+52-91
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
"spell": "cspell /**/",
1010
"spell-code": "cspell src/**/",
1111
"ci": "eslint . --fix && cspell /**/"
12-
1312
},
1413
"keywords": [],
1514
"author": "",
@@ -19,7 +18,8 @@
1918
"discord-api-types": "^0.37.10",
2019
"discord.js": "^13.10.2",
2120
"dotenv": "^16.0.2",
22-
"glob": "^7.2.3"
21+
"glob": "^7.2.3",
22+
"json-to-frontmatter-markdown": "^1.0.0"
2323
},
2424
"devDependencies": {
2525
"cspell": "^6.10.1",

src/events/guildScheduledEvent.js

+64-8
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,38 @@
11
const { MessageEmbed } = require('discord.js');
22
const client = require('../index');
3+
const transformAndWriteToFile = require('json-to-frontmatter-markdown').default;
4+
const wait = require('node:timers/promises').setTimeout;
35

46
client.on('guildScheduledEventCreate', async (guildScheduledEvent) => {
5-
const channel = client.channels.cache.get('973686987787751534');
7+
const eventsChannel = client.channels.cache.get('973686987787751534');
8+
const markdownChannel = client.channels.cache.get('1025318437028896778');
9+
console.log(guildScheduledEvent);
10+
let location = '';
11+
let endTime = 'No Scheduled End Time';
12+
613
const embed = new MessageEmbed()
714
.setTitle(guildScheduledEvent.name)
815
.setDescription(guildScheduledEvent.description)
9-
.setColor('GREEN');
10-
11-
embed.setTimestamp();
12-
embed.setImage(
13-
`https://cdn.discordapp.com/guild-events/${guildScheduledEvent.id}/${guildScheduledEvent.image}.png?size=2048`
14-
);
16+
.setColor('GREEN')
17+
.setTimestamp()
18+
.setImage(
19+
`https://cdn.discordapp.com/guild-events/${guildScheduledEvent.id}/${guildScheduledEvent.image}.png?size=2048`
20+
);
1521

1622
if (guildScheduledEvent.entityType !== 'EXTERNAL') {
1723
embed.addField(
1824
'Location',
1925
`${guildScheduledEvent.channel.name} - [Link](https://discordapp.com/channels/427865794467069962/${guildScheduledEvent.channelId})`
2026
);
27+
28+
location = `${guildScheduledEvent.channel.name} - [Link](https://discordapp.com/channels/427865794467069962/${guildScheduledEvent.channelId})`;
2129
} else {
2230
embed.addField(
2331
'Location',
2432
`External - ${guildScheduledEvent.entityMetadata.location}`
2533
);
34+
35+
location = `External - ${guildScheduledEvent.entityMetadata.location}`;
2636
}
2737

2838
embed.addField(
@@ -41,9 +51,55 @@ client.on('guildScheduledEventCreate', async (guildScheduledEvent) => {
4151
})}`,
4252
true
4353
);
54+
55+
endTime = guildScheduledEvent.scheduledEndAt.toLocaleString('en-UK', {
56+
timeZone: 'Europe/London',
57+
});
4458
}
4559

4660
embed.addField('InviteURL', `${guildScheduledEvent.url}`);
61+
eventsChannel.send({ embeds: [embed] });
62+
63+
transformAndWriteToFile({
64+
frontmatterMarkdown: {
65+
frontmatter: [
66+
{ layout: 'base.html' },
67+
{ tags: 'event' },
68+
{ title: guildScheduledEvent.name },
69+
{
70+
date: guildScheduledEvent.scheduledStartAt.toISOString().substring(0,10)
71+
},
72+
{ teaser: guildScheduledEvent.description },
73+
],
74+
body: `
75+
# ${guildScheduledEvent.name}
76+
77+
${guildScheduledEvent.description}
78+
79+
## Date and Times
80+
81+
- Start Date and Time: ${guildScheduledEvent.scheduledStartAt.toLocaleString(
82+
'en-UK',
83+
{ timeZone: 'Europe/London' }
84+
)}
85+
- End Date and Time: ${endTime}
86+
87+
## Location:
88+
89+
${location}
90+
91+
## Invite
92+
93+
${guildScheduledEvent.url}
94+
`,
95+
},
96+
path: `src/markdownOutput`,
97+
fileName: `${guildScheduledEvent.name}.md`,
98+
});
99+
100+
await wait(5000);
47101

48-
channel.send({ embeds: [embed] });
102+
markdownChannel.send({
103+
files: [`src/markdownOutput/${guildScheduledEvent.name}.md`],
104+
});
49105
});

0 commit comments

Comments
 (0)