MAD BOTS (Multi-functional Alerting & Diagnostics Bot Operations Tracking System)
This val runs every two minutes and makes sure a supabase realtime websocket listener is still alive.
- on spawn, checks to see if
acknowledged_by_server == true
- if not, send a message to discord
- update the row (id=1) in supabase with
acknowledged_by_server: false
to reset for next run
- this will be responded to by the supabase handler. code snippet below:
.on(
"postgres_changes",
{
event: "UPDATE",
schema: "public",
table: "uptime",
},
async (payload) => {
// this means we just acknowledged it
if (payload.new.acknowledged_by_server) {
console.log('uptime check already acknowledged - skipping');
return;
};
console.log('incoming uptime check request', payload);
if (!payload.new.acknowledged_by_server) {
await supabaseAdminClient.from('uptime').update({ acknowledged_by_server: true, acknowledged_at: new Date() }).eq('id', payload.new.id);
console.log('uptime check acknowledged');
}
}
)
note: this will keep alerting every two minutes until acknowledged. something to resolve in the next version.