Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit5ca0c24

Browse files
committed
feat: create events for all current svelte guilds
1 parentfc7c5c5 commit5ca0c24

File tree

1 file changed

+49
-32
lines changed

1 file changed

+49
-32
lines changed

‎src/scheduled/guild-events.ts

Lines changed: 49 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -109,34 +109,52 @@ interface PageInfo {
109109

110110
// todo doesn't handle pagination
111111

112+
constGUILD_IDS=[
113+
'svelte-society-london',
114+
'svelte-society-stockholm',
115+
'svelte-society-zurich',
116+
'svelte-society-melbourne',
117+
'svelte-society-portugal',
118+
'san-diego-svelte',
119+
'svelte-society-austria',
120+
'svelte-society-bangalore',
121+
'svelte-society-bay-area',
122+
];
123+
124+
functionlog(...messages:any[]){
125+
console.log('[guild-events-sync]', ...messages);
126+
}
127+
112128
exportconstguildEventsTask:ScheduledTask={
113129
interval:86400,
114130
name:'guild-events',
115131
asynchandle(client){
116-
try{
117-
console.log('Fetching guild events');
132+
log('Running');
133+
134+
constdiscord_server=awaitclient.guilds.fetch(
135+
DEV_MODE ?TEST_GUILD_ID :'457912077277855764',
136+
);
137+
138+
if(!discord_server){
139+
thrownewError('Failed to fetch svelte/testing guild');
140+
}
141+
142+
for(constguild_idofGUILD_IDS){
143+
log(`Fetching events for${guild_id}`);
118144

119145
constresponse=awaitfetch(
120-
'https://guild.host/api/next/svelte-society-london/events/upcoming',
146+
`https://guild.host/api/next/${guild_id}/events/upcoming`,
121147
{
122148
headers:{
149+
Accept:'application/json',
123150
'User-Agent':
124151
'Svelte Bot (+https://github.com/sveltejs/discord-bot)',
125-
Accept:'application/json',
126152
},
127153
},
128154
);
129155

130156
constdata:ResponseData=awaitresponse.json();
131157

132-
constguild=awaitclient.guilds.fetch(
133-
DEV_MODE ?TEST_GUILD_ID :'457912077277855764',
134-
);
135-
136-
if(!guild){
137-
thrownewError('Failed to fetch guild');
138-
}
139-
140158
for(consteventofdata.events.edges){
141159
constevent_slug=event.node.prettyUrl;
142160

@@ -153,35 +171,34 @@ export const guildEventsTask: ScheduledTask = {
153171

154172
if(exists){
155173
// prettier-ignore
156-
console.log(` Skipping${event.node.name} as it already exists`);
174+
log(` Skipping${event.node.name} as it already exists`);
157175
continue;
158176
}
159177

160-
console.log(` Creating${event.node.name}`);
161-
162-
constdiscordEvent=awaitguild.scheduledEvents.create({
163-
name:event.node.name,
164-
image:event.node.generatedSocialCardURL.replace(
165-
/\.svg$/,
166-
'.png',
167-
),
168-
description:event.node.description,
169-
scheduledStartTime:event.node.startAt,
170-
scheduledEndTime:event.node.endAt,
171-
entityType:GuildScheduledEventEntityType.External,
172-
privacyLevel:GuildScheduledEventPrivacyLevel.GuildOnly,
173-
entityMetadata:{
174-
location:event.node.fullUrl,
175-
},
176-
});
178+
log(` Creating${event.node.name}`);
179+
180+
constdiscordEvent=
181+
awaitdiscord_server.scheduledEvents.create({
182+
name:event.node.name,
183+
image:event.node.generatedSocialCardURL.replace(
184+
/\.svg$/,
185+
'.png',
186+
),
187+
description:event.node.description,
188+
scheduledStartTime:event.node.startAt,
189+
scheduledEndTime:event.node.endAt,
190+
entityType:GuildScheduledEventEntityType.External,
191+
privacyLevel:GuildScheduledEventPrivacyLevel.GuildOnly,
192+
entityMetadata:{
193+
location:event.node.fullUrl,
194+
},
195+
});
177196

178197
awaitpb.collection('guildEventSync').create({
179198
event_slug,
180199
discord_event_id:discordEvent.id,
181200
});
182201
}
183-
}catch(error){
184-
console.error('failed to save analytics',error);
185202
}
186203
},
187204
};

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp