From 5bc8882738b913904d05fe28b21287e8b7a84d74 Mon Sep 17 00:00:00 2001 From: undefined Date: Wed, 10 Aug 2022 16:32:17 +0800 Subject: [PATCH] telemetry: sandbox version --- packages/center/handler.ts | 6 +++++- packages/center/package.json | 2 +- packages/hydrooj/package.json | 2 +- packages/hydrooj/src/model/setting.ts | 2 +- packages/hydrooj/src/service/monitor.ts | 8 ++++++++ packages/hydrooj/src/upgrade.ts | 4 ++++ 6 files changed, 20 insertions(+), 4 deletions(-) diff --git a/packages/center/handler.ts b/packages/center/handler.ts index d2737e557..8ad14e9f4 100644 --- a/packages/center/handler.ts +++ b/packages/center/handler.ts @@ -1,5 +1,6 @@ import crypto from 'crypto'; import yaml from 'js-yaml'; +import * as bus from 'hydrooj/src/service/bus'; import db from 'hydrooj/src/service/db'; import { Handler, post, Route, Types, @@ -28,6 +29,7 @@ class DataReportHandler extends Handler { @post('payload', Types.String) async post(domainId: string, installId: string, _payload: string) { const payload: any = yaml.load(decrypt(_payload)); + const old = await coll.findOne({ _id: installId }); await coll.updateOne({ _id: installId }, { $set: { version: payload.version, @@ -45,9 +47,11 @@ class DataReportHandler extends Handler { problemCount: payload.problemCount, discussionCount: payload.discussionCount, recordCount: payload.recordCount, + sandbox: payload.sandbox, }, }, { upsert: true }); - this.response.body = 'success'; + bus.emit('center/report', this, installId, old, payload); + this.response.body = { code: 0 }; } } diff --git a/packages/center/package.json b/packages/center/package.json index 88be34cc2..ec676a344 100644 --- a/packages/center/package.json +++ b/packages/center/package.json @@ -1,6 +1,6 @@ { "name": "@hydrooj/center", - "version": "0.1.0", + "version": "0.1.1", "main": "package.json", "repository": "https://github.com/hydro-dev/Hydro.git", "author": "undefined ", diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index 4dfc920cc..28bf1ce52 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "3.15.8", + "version": "3.15.9", "bin": "bin/hydrooj.js", "main": "src/loader", "module": "src/loader", diff --git a/packages/hydrooj/src/model/setting.ts b/packages/hydrooj/src/model/setting.ts index d34382508..0d3db2f08 100644 --- a/packages/hydrooj/src/model/setting.ts +++ b/packages/hydrooj/src/model/setting.ts @@ -198,7 +198,7 @@ SystemSetting( Setting('setting_smtp', 'smtp.from', null, 'text', 'smtp.from', 'Mail From'), Setting('setting_smtp', 'smtp.secure', false, 'boolean', 'smtp.secure', 'SSL'), Setting('setting_smtp', 'smtp.verify', true, 'boolean', 'smtp.verify', 'Verify register email'), - Setting('setting_server', 'server.center', 'https://hydro.undefined.moe:8443/center', 'text', 'server.center', '', FLAG_HIDDEN), + Setting('setting_server', 'server.center', 'https://hydro.ac/center', 'text', 'server.center', '', FLAG_HIDDEN), Setting('setting_server', 'server.name', 'Hydro', 'text', 'server.name', 'Server Name'), Setting('setting_server', 'server.displayName', 'Hydro', 'text', 'server.name', 'Server Name (Global Display)', FLAG_PRO), Setting('setting_server', 'server.url', '/', 'text', 'server.url', 'Server BaseURL'), diff --git a/packages/hydrooj/src/service/monitor.ts b/packages/hydrooj/src/service/monitor.ts index 15ed8b714..5670e5ee5 100644 --- a/packages/hydrooj/src/service/monitor.ts +++ b/packages/hydrooj/src/service/monitor.ts @@ -33,6 +33,13 @@ export async function feedback(): Promise<[string, StatusUpdate]> { document.coll.find({ docType: document.TYPE_DISCUSSION }).count(), record.coll.find().count(), ]); + let sandbox = ''; + try { + let host = system.get('hydrojudge.sandbox_host') || 'http://localhost:5050/'; + if (!host.endsWith('/')) host += '/'; + const res = await superagent.get(`${host}version`); + sandbox = res.body; + } catch (e) { } const payload = crypt(dump({ mid: mid.toString(), version, @@ -47,6 +54,7 @@ export async function feedback(): Promise<[string, StatusUpdate]> { memory: inf.memory, osinfo: inf.osinfo, cpu: inf.cpu, + sandbox, }, { replacer: (key, value) => { if (typeof value === 'function') return ''; diff --git a/packages/hydrooj/src/upgrade.ts b/packages/hydrooj/src/upgrade.ts index 8c1dfbadb..f94bf6e7d 100644 --- a/packages/hydrooj/src/upgrade.ts +++ b/packages/hydrooj/src/upgrade.ts @@ -791,6 +791,10 @@ const scripts: UpgradeScript[] = [ ); return true; }, + async function _64_65() { + await system.set('server.center', 'https://hydro.ac/center'); + return true; + }, ]; export default scripts;