Skip to content

Commit

Permalink
feat: Send event details in markdown
Browse files Browse the repository at this point in the history
  • Loading branch information
Ki-er committed Sep 30, 2022
1 parent 06d15fc commit 5958068
Show file tree
Hide file tree
Showing 3 changed files with 118 additions and 101 deletions.
143 changes: 52 additions & 91 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
"spell": "cspell /**/",
"spell-code": "cspell src/**/",
"ci": "eslint . --fix && cspell /**/"

},
"keywords": [],
"author": "",
Expand All @@ -19,7 +18,8 @@
"discord-api-types": "^0.37.10",
"discord.js": "^13.10.2",
"dotenv": "^16.0.2",
"glob": "^7.2.3"
"glob": "^7.2.3",
"json-to-frontmatter-markdown": "^1.0.0"
},
"devDependencies": {
"cspell": "^6.10.1",
Expand Down
72 changes: 64 additions & 8 deletions src/events/guildScheduledEvent.js
Original file line number Diff line number Diff line change
@@ -1,28 +1,38 @@
const { MessageEmbed } = require('discord.js');
const client = require('../index');
const transformAndWriteToFile = require('json-to-frontmatter-markdown').default;
const wait = require('node:timers/promises').setTimeout;

client.on('guildScheduledEventCreate', async (guildScheduledEvent) => {
const channel = client.channels.cache.get('973686987787751534');
const eventsChannel = client.channels.cache.get('973686987787751534');
const markdownChannel = client.channels.cache.get('1025318437028896778');
console.log(guildScheduledEvent);
let location = '';
let endTime = 'No Scheduled End Time';

const embed = new MessageEmbed()
.setTitle(guildScheduledEvent.name)
.setDescription(guildScheduledEvent.description)
.setColor('GREEN');

embed.setTimestamp();
embed.setImage(
`https://cdn.discordapp.com/guild-events/${guildScheduledEvent.id}/${guildScheduledEvent.image}.png?size=2048`
);
.setColor('GREEN')
.setTimestamp()
.setImage(
`https://cdn.discordapp.com/guild-events/${guildScheduledEvent.id}/${guildScheduledEvent.image}.png?size=2048`
);

if (guildScheduledEvent.entityType !== 'EXTERNAL') {
embed.addField(
'Location',
`${guildScheduledEvent.channel.name} - [Link](https://discordapp.com/channels/427865794467069962/${guildScheduledEvent.channelId})`
);

location = `${guildScheduledEvent.channel.name} - [Link](https://discordapp.com/channels/427865794467069962/${guildScheduledEvent.channelId})`;
} else {
embed.addField(
'Location',
`External - ${guildScheduledEvent.entityMetadata.location}`
);

location = `External - ${guildScheduledEvent.entityMetadata.location}`;
}

embed.addField(
Expand All @@ -41,9 +51,55 @@ client.on('guildScheduledEventCreate', async (guildScheduledEvent) => {
})}`,
true
);

endTime = guildScheduledEvent.scheduledEndAt.toLocaleString('en-UK', {
timeZone: 'Europe/London',
});
}

embed.addField('InviteURL', `${guildScheduledEvent.url}`);
eventsChannel.send({ embeds: [embed] });

transformAndWriteToFile({
frontmatterMarkdown: {
frontmatter: [
{ layout: 'base.html' },
{ tags: 'event' },
{ title: guildScheduledEvent.name },
{
date: guildScheduledEvent.scheduledStartAt.toISOString().substring(0,10)
},
{ teaser: guildScheduledEvent.description },
],
body: `
# ${guildScheduledEvent.name}
${guildScheduledEvent.description}
## Date and Times
- Start Date and Time: ${guildScheduledEvent.scheduledStartAt.toLocaleString(
'en-UK',
{ timeZone: 'Europe/London' }
)}
- End Date and Time: ${endTime}
## Location:
${location}
## Invite
${guildScheduledEvent.url}
`,
},
path: `src/markdownOutput`,
fileName: `${guildScheduledEvent.name}.md`,
});

await wait(5000);

channel.send({ embeds: [embed] });
markdownChannel.send({
files: [`src/markdownOutput/${guildScheduledEvent.name}.md`],
});
});

0 comments on commit 5958068

Please sign in to comment.