Q2TG/src/controllers/StatusReportController.ts

29 lines
876 B
TypeScript

import Instance from '../models/Instance';
import Telegram from '../client/Telegram';
import OicqClient from '../client/OicqClient';
export default class {
constructor(private readonly instance: Instance,
private readonly tgBot: Telegram,
private readonly qqBot: OicqClient) {
setInterval(() => this.report(), 1000 * 60);
this.report();
}
private async report() {
if (!this.instance.reportUrl) return;
let offline = [] as string[];
if (!this.tgBot?.isOnline) {
offline.push('tgBot');
}
if (!this.qqBot?.isOnline()) {
offline.push('qqBot');
}
const online = !offline.length;
const url = new URL(this.instance.reportUrl);
url.searchParams.set('status', online ? 'up' : 'down');
url.searchParams.set('msg', online ? 'OK' : offline.join(','));
const res = await fetch(url);
}
}