From 1397f91f1e8d2c01b191783a583db946f1cb7552 Mon Sep 17 00:00:00 2001 From: undefined Date: Thu, 15 Sep 2022 19:42:13 +0800 Subject: [PATCH] core: fix support for node18 --- packages/center/handler.ts | 9 ++++++++- packages/center/package.json | 2 +- packages/hydrooj/package.json | 2 +- packages/hydrooj/src/service/monitor.ts | 12 ++---------- 4 files changed, 12 insertions(+), 13 deletions(-) diff --git a/packages/center/handler.ts b/packages/center/handler.ts index 5da14967f..eb256bb23 100644 --- a/packages/center/handler.ts +++ b/packages/center/handler.ts @@ -1,3 +1,4 @@ +import assert from 'assert'; import crypto from 'crypto'; import yaml from 'js-yaml'; import * as bus from 'hydrooj/src/service/bus'; @@ -28,7 +29,13 @@ class DataReportHandler extends Handler { @post('installId', Types.String) @post('payload', Types.String) async post(domainId: string, installId: string, _payload: string) { - const payload: any = yaml.load(decrypt(_payload)); + let payload: any; + try { + payload = yaml.load(decrypt(_payload)); + } catch (e) { + payload = yaml.load(_payload); + } + assert(payload.url); const old = await coll.findOne({ _id: installId }); await coll.updateOne({ _id: installId }, { $set: { diff --git a/packages/center/package.json b/packages/center/package.json index 317e0b0df..f1827bee3 100644 --- a/packages/center/package.json +++ b/packages/center/package.json @@ -1,6 +1,6 @@ { "name": "@hydrooj/center", - "version": "0.1.2", + "version": "0.1.3", "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 996b47567..578f6f971 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "3.17.8", + "version": "3.17.9", "bin": "bin/hydrooj.js", "main": "src/loader", "module": "src/loader", diff --git a/packages/hydrooj/src/service/monitor.ts b/packages/hydrooj/src/service/monitor.ts index b737e4bb7..fe5e617df 100644 --- a/packages/hydrooj/src/service/monitor.ts +++ b/packages/hydrooj/src/service/monitor.ts @@ -1,4 +1,3 @@ -import crypto from 'crypto'; import { dump } from 'js-yaml'; import superagent from 'superagent'; import type { StatusUpdate } from '@hydrooj/utils/lib/sysinfo'; @@ -10,13 +9,6 @@ import db from './db'; const coll = db.collection('status'); const logger = new Logger('monitor'); -function crypt(str: string) { - const cipher = crypto.createCipheriv('des-ecb', 'hydro-oj', ''); // lgtm [js/hardcoded-credentials] - let encrypted = cipher.update(str, 'utf8', 'hex'); - encrypted += cipher.final('hex'); - return encrypted; -} - export async function feedback(): Promise<[string, StatusUpdate]> { const { system, domain, document, user, record, @@ -56,12 +48,12 @@ export async function feedback(): Promise<[string, StatusUpdate]> { const status = await db.db.admin().serverStatus(); info.dbVersion = status.version; } catch (e) { } - const payload = crypt(dump(info, { + const payload = dump(info, { replacer: (key, value) => { if (typeof value === 'function') return ''; return value; }, - })); + }); if (process.env.CI) return [mid, $update]; superagent.post(`${system.get('server.center')}/report`) .send({ installId, payload })