1
1
const { MessageEmbed } = require ( 'discord.js' ) ;
2
2
const client = require ( '../index' ) ;
3
+ const transformAndWriteToFile = require ( 'json-to-frontmatter-markdown' ) . default ;
4
+ const wait = require ( 'node:timers/promises' ) . setTimeout ;
3
5
4
6
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
+
6
13
const embed = new MessageEmbed ( )
7
14
. setTitle ( guildScheduledEvent . name )
8
15
. 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
+ ) ;
15
21
16
22
if ( guildScheduledEvent . entityType !== 'EXTERNAL' ) {
17
23
embed . addField (
18
24
'Location' ,
19
25
`${ guildScheduledEvent . channel . name } - [Link](https://discordapp.com/channels/427865794467069962/${ guildScheduledEvent . channelId } )`
20
26
) ;
27
+
28
+ location = `${ guildScheduledEvent . channel . name } - [Link](https://discordapp.com/channels/427865794467069962/${ guildScheduledEvent . channelId } )` ;
21
29
} else {
22
30
embed . addField (
23
31
'Location' ,
24
32
`External - ${ guildScheduledEvent . entityMetadata . location } `
25
33
) ;
34
+
35
+ location = `External - ${ guildScheduledEvent . entityMetadata . location } ` ;
26
36
}
27
37
28
38
embed . addField (
@@ -41,9 +51,55 @@ client.on('guildScheduledEventCreate', async (guildScheduledEvent) => {
41
51
} ) } `,
42
52
true
43
53
) ;
54
+
55
+ endTime = guildScheduledEvent . scheduledEndAt . toLocaleString ( 'en-UK' , {
56
+ timeZone : 'Europe/London' ,
57
+ } ) ;
44
58
}
45
59
46
60
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 ) ;
47
101
48
- channel . send ( { embeds : [ embed ] } ) ;
102
+ markdownChannel . send ( {
103
+ files : [ `src/markdownOutput/${ guildScheduledEvent . name } .md` ] ,
104
+ } ) ;
49
105
} ) ;
0 commit comments