mirror of
https://gitcode.com/gh_mirrors/hy/Hydro.git
synced 2026-10-20 01:38:19 +08:00
core: use with hydro center
This commit is contained in:
1 parent
866aa56f78
commit
76744e0584
6 files changed
+117
-12
No files matched your search
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "hydrooj",
|
||||
"version": "2.25.6",
|
||||
"version": "2.25.7",
|
||||
"bin": "bin/hydrooj.js",
|
||||
"main": "dist/loader.js",
|
||||
"typings": "dist/loader.d.ts",
|
||||
|
||||
@@ -43,10 +43,20 @@ export class ProblemSendHandler extends Handler {
|
||||
}
|
||||
const [url, expire] = system.getMany(['server.url', 'session.saved_expire_seconds']);
|
||||
const tokenId = await token.createOrUpdate(token.TYPE_EXPORT, expire, { domainId, pids: Array.from(pids) });
|
||||
await superagent.post(`${target[1]}/d/${target[0]}/problem/receive`)
|
||||
.send({
|
||||
operation: 'request', url: `${url}d/${domainId}/problem/send`, tokenId, expire,
|
||||
}).catch(logAndReturn(logger));
|
||||
const res = system.get('server.proxy')
|
||||
? await superagent.post(`${system.get('server.center')}/send`)
|
||||
.send({
|
||||
endpoint: `${target[1]}/d/${target[0]}`,
|
||||
domainId,
|
||||
url,
|
||||
tokenId,
|
||||
expire,
|
||||
}).catch(logAndReturn(logger))
|
||||
: await superagent.post(`${target[1]}/d/${target[0]}/problem/receive`)
|
||||
.send({
|
||||
operation: 'request', url: `${url}d/${domainId}/problem/send`, tokenId, expire,
|
||||
}).catch(logAndReturn(logger));
|
||||
if (res instanceof Error) throw new RemoteOnlineJudgeError(res.message);
|
||||
this.back();
|
||||
}
|
||||
|
||||
|
||||
@@ -164,6 +164,8 @@ SystemSetting(
|
||||
Setting('setting_smtp', 'smtp.port', 465, 'number', 'smtp.port', 'SMTP Server Port'),
|
||||
Setting('setting_smtp', 'smtp.from', null, 'text', 'smtp.from', 'Mail From'),
|
||||
Setting('setting_smtp', 'smtp.secure', false, 'boolean', 'smtp.secure', 'SSL'),
|
||||
Setting('setting_server', 'server.center', 'https://hydro.undefined.moe:8443/center', 'text', 'server.center', '', FLAG_HIDDEN),
|
||||
Setting('setting_server', 'server.proxy', false, 'boolean', 'server.proxy', 'Use hydro center proxy to send problems'),
|
||||
Setting('setting_server', 'server.name', 'Hydro', 'text', 'server.name', 'Server Name'),
|
||||
Setting('setting_server', 'server.worker', 1, 'number', 'server.worker', 'Server Workers Number'),
|
||||
Setting('setting_server', 'server.hostname', 'oj.undefined.moe', 'text', 'server.hostname', 'Server Hostname'),
|
||||
|
||||
@@ -24,7 +24,7 @@ export async function feedback(): Promise<[string, StatusUpdate]> {
|
||||
} = global.Hydro.model;
|
||||
const version = require('hydrooj/package.json').version;
|
||||
const [mid, $update, inf] = await sysinfo.update();
|
||||
const [installid, name, url] = system.getMany(['installid', 'server.name', 'server.url']);
|
||||
const [installId, name, url] = system.getMany(['installid', 'server.name', 'server.url']);
|
||||
const [domainCount, userCount, problemCount, discussionCount, recordCount] = await Promise.all([
|
||||
domain.getMulti().count(),
|
||||
user.getMulti().count(),
|
||||
@@ -33,7 +33,7 @@ export async function feedback(): Promise<[string, StatusUpdate]> {
|
||||
record.coll.find().count(),
|
||||
]);
|
||||
const payload = crypt(dump({
|
||||
_id: installid + mid.toString(),
|
||||
mid: mid.toString(),
|
||||
version,
|
||||
name,
|
||||
url,
|
||||
@@ -47,11 +47,12 @@ export async function feedback(): Promise<[string, StatusUpdate]> {
|
||||
osinfo: inf.osinfo,
|
||||
cpu: inf.cpu,
|
||||
}));
|
||||
superagent.post('https://feedback.undefined.moe/')
|
||||
.send({ payload })
|
||||
.catch(() => {
|
||||
logger.warn('Cannot connect to hydro center.');
|
||||
});
|
||||
superagent.post(`${system.get('server.center')}/report`)
|
||||
.send({ installId, payload })
|
||||
.then((res) => {
|
||||
if (res.body.updateUrl) system.set('server.center', res.body.updateUrl);
|
||||
})
|
||||
.catch(() => logger.warn('Cannot connect to hydro center.'));
|
||||
return [mid, $update];
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user