feat: Send event details in markdown
parent
06d15fcb03
commit
595806866a
|
@ -13,12 +13,12 @@
|
|||
"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",
|
||||
"eslint": "^8.23.1",
|
||||
"eslint-config-airbnb-base": "^15.0.0",
|
||||
"eslint-config-prettier": "^8.5.0",
|
||||
"eslint-plugin-import": "^2.25.3",
|
||||
"eslint-plugin-prettier": "^4.2.1",
|
||||
|
@ -957,12 +957,6 @@
|
|||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/confusing-browser-globals": {
|
||||
"version": "1.0.11",
|
||||
"resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz",
|
||||
"integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/core-util-is": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
|
||||
|
@ -1474,34 +1468,6 @@
|
|||
"url": "https://opencollective.com/eslint"
|
||||
}
|
||||
},
|
||||
"node_modules/eslint-config-airbnb-base": {
|
||||
"version": "15.0.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz",
|
||||
"integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"confusing-browser-globals": "^1.0.10",
|
||||
"object.assign": "^4.1.2",
|
||||
"object.entries": "^1.1.5",
|
||||
"semver": "^6.3.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^10.12.0 || >=12.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"eslint": "^7.32.0 || ^8.2.0",
|
||||
"eslint-plugin-import": "^2.25.2"
|
||||
}
|
||||
},
|
||||
"node_modules/eslint-config-airbnb-base/node_modules/semver": {
|
||||
"version": "6.3.0",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
|
||||
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"semver": "bin/semver.js"
|
||||
}
|
||||
},
|
||||
"node_modules/eslint-config-prettier": {
|
||||
"version": "8.5.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz",
|
||||
|
@ -2495,6 +2461,15 @@
|
|||
"integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/json-to-frontmatter-markdown": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/json-to-frontmatter-markdown/-/json-to-frontmatter-markdown-1.0.0.tgz",
|
||||
"integrity": "sha512-ta2DuiOuXER5MH8mWlWot+w2KM629GMQ+pH4PEgozNWgqv7l2ZrT1quFmcS6z7h2ArS4k02XaB4IW5pU+qivqg==",
|
||||
"dependencies": {
|
||||
"left-pad": "^1.3.0",
|
||||
"mkdirp": "^0.5.1"
|
||||
}
|
||||
},
|
||||
"node_modules/json5": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
|
||||
|
@ -2519,6 +2494,12 @@
|
|||
"graceful-fs": "^4.1.6"
|
||||
}
|
||||
},
|
||||
"node_modules/left-pad": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz",
|
||||
"integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==",
|
||||
"deprecated": "use String.prototype.padStart()"
|
||||
},
|
||||
"node_modules/levn": {
|
||||
"version": "0.4.1",
|
||||
"resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
|
||||
|
@ -2655,8 +2636,18 @@
|
|||
"node_modules/minimist": {
|
||||
"version": "1.2.6",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
|
||||
"integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==",
|
||||
"dev": true
|
||||
"integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
|
||||
},
|
||||
"node_modules/mkdirp": {
|
||||
"version": "0.5.6",
|
||||
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
|
||||
"integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
|
||||
"dependencies": {
|
||||
"minimist": "^1.2.6"
|
||||
},
|
||||
"bin": {
|
||||
"mkdirp": "bin/cmd.js"
|
||||
}
|
||||
},
|
||||
"node_modules/ms": {
|
||||
"version": "2.1.2",
|
||||
|
@ -2725,20 +2716,6 @@
|
|||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/object.entries": {
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz",
|
||||
"integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"call-bind": "^1.0.2",
|
||||
"define-properties": "^1.1.3",
|
||||
"es-abstract": "^1.19.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/object.values": {
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz",
|
||||
|
@ -4275,12 +4252,6 @@
|
|||
"xdg-basedir": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"confusing-browser-globals": {
|
||||
"version": "1.0.11",
|
||||
"resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz",
|
||||
"integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==",
|
||||
"dev": true
|
||||
},
|
||||
"core-util-is": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
|
||||
|
@ -4682,26 +4653,6 @@
|
|||
"text-table": "^0.2.0"
|
||||
}
|
||||
},
|
||||
"eslint-config-airbnb-base": {
|
||||
"version": "15.0.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz",
|
||||
"integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"confusing-browser-globals": "^1.0.10",
|
||||
"object.assign": "^4.1.2",
|
||||
"object.entries": "^1.1.5",
|
||||
"semver": "^6.3.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"semver": {
|
||||
"version": "6.3.0",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
|
||||
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"eslint-config-prettier": {
|
||||
"version": "8.5.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz",
|
||||
|
@ -5433,6 +5384,15 @@
|
|||
"integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
|
||||
"dev": true
|
||||
},
|
||||
"json-to-frontmatter-markdown": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/json-to-frontmatter-markdown/-/json-to-frontmatter-markdown-1.0.0.tgz",
|
||||
"integrity": "sha512-ta2DuiOuXER5MH8mWlWot+w2KM629GMQ+pH4PEgozNWgqv7l2ZrT1quFmcS6z7h2ArS4k02XaB4IW5pU+qivqg==",
|
||||
"requires": {
|
||||
"left-pad": "^1.3.0",
|
||||
"mkdirp": "^0.5.1"
|
||||
}
|
||||
},
|
||||
"json5": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
|
||||
|
@ -5452,6 +5412,11 @@
|
|||
"universalify": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"left-pad": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz",
|
||||
"integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA=="
|
||||
},
|
||||
"levn": {
|
||||
"version": "0.4.1",
|
||||
"resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
|
||||
|
@ -5554,8 +5519,15 @@
|
|||
"minimist": {
|
||||
"version": "1.2.6",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
|
||||
"integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==",
|
||||
"dev": true
|
||||
"integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
|
||||
},
|
||||
"mkdirp": {
|
||||
"version": "0.5.6",
|
||||
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
|
||||
"integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
|
||||
"requires": {
|
||||
"minimist": "^1.2.6"
|
||||
}
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.1.2",
|
||||
|
@ -5601,17 +5573,6 @@
|
|||
"object-keys": "^1.1.1"
|
||||
}
|
||||
},
|
||||
"object.entries": {
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz",
|
||||
"integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"call-bind": "^1.0.2",
|
||||
"define-properties": "^1.1.3",
|
||||
"es-abstract": "^1.19.1"
|
||||
}
|
||||
},
|
||||
"object.values": {
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz",
|
||||
|
|
|
@ -9,7 +9,6 @@
|
|||
"spell": "cspell /**/",
|
||||
"spell-code": "cspell src/**/",
|
||||
"ci": "eslint . --fix && cspell /**/"
|
||||
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
|
@ -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",
|
||||
|
|
|
@ -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(
|
||||
|
@ -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] });
|
||||
|
||||
channel.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);
|
||||
|
||||
markdownChannel.send({
|
||||
files: [`src/markdownOutput/${guildScheduledEvent.name}.md`],
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue