mirror of
https://gitcode.com/gh_mirrors/hy/Hydro.git
synced 2026-10-20 01:38:19 +08:00
添加站内消息,修复讨论节点丢失的问题
This commit is contained in:
1 parent
33e277f28f
commit
627e64a901
44 files changed
+582
-540
No files matched your search
@@ -0,0 +1,33 @@
|
||||
class Cron {
|
||||
constructor() {
|
||||
this.tasks = [];
|
||||
}
|
||||
|
||||
plan(time, task) {
|
||||
const now = new Date();
|
||||
if (!(time instanceof Date)) time = new Date(time);
|
||||
this.tasks.push({
|
||||
id: setTimeout(() => {
|
||||
for (const i in this.tasks) {
|
||||
if (this.tasks[i].func === task) {
|
||||
this.tasks.splice(i, 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
task();
|
||||
}, time - now),
|
||||
func: task,
|
||||
});
|
||||
}
|
||||
|
||||
interval(time, task) {
|
||||
const now = new Date();
|
||||
if (!(time instanceof Date)) time = new Date(time);
|
||||
this.tasks.push({
|
||||
id: setTimeout(() => { task(); }, time - now),
|
||||
func: task,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = Cron;
|
||||
+1
-1
@@ -16,6 +16,6 @@ Mongo.MongoClient.connect(mongourl, { useNewUrlParser: true, useUnifiedTopology:
|
||||
bus.publish('system_database_connected', null);
|
||||
});
|
||||
|
||||
module.exports = {
|
||||
global.Hydro.service.db = module.exports = {
|
||||
collection: (c) => db.collection(c),
|
||||
};
|
||||
+21
-29
@@ -65,20 +65,16 @@ class Handler {
|
||||
this.session = {};
|
||||
}
|
||||
|
||||
renderHTML(name, context) {
|
||||
async renderHTML(name, context) {
|
||||
console.time(name);
|
||||
this.hasPerm = (perm) => this.user.hasPerm(perm);
|
||||
return new Promise((resolve, reject) => {
|
||||
template.render(name, Object.assign(context, {
|
||||
handler: this,
|
||||
_: (str) => (str ? str.toString().translate(this.user.language) : ''),
|
||||
user: this.user,
|
||||
}), (error, res) => {
|
||||
console.timeEnd(name);
|
||||
if (error) reject(error);
|
||||
else resolve(res);
|
||||
});
|
||||
});
|
||||
const res = await template.render(name, Object.assign(context, {
|
||||
handler: this,
|
||||
_: (str) => (str ? str.toString().translate(this.user.language) : ''),
|
||||
user: this.user,
|
||||
}));
|
||||
console.timeEnd(name);
|
||||
return res;
|
||||
}
|
||||
|
||||
async render(name, context) {
|
||||
@@ -320,20 +316,16 @@ class ConnectionHandler {
|
||||
for (const i in p) this.request.params[p[i][0]] = decodeURIComponent(p[i][1]);
|
||||
}
|
||||
|
||||
renderHTML(name, context) {
|
||||
async renderHTML(name, context) {
|
||||
console.time(name);
|
||||
this.hasPerm = (perm) => this.user.hasPerm(perm);
|
||||
return new Promise((resolve, reject) => {
|
||||
template.render(name, Object.assign(context, {
|
||||
handler: this,
|
||||
_: (str) => (str ? str.toString().translate(this.user.language) : ''),
|
||||
user: this.user,
|
||||
}), (error, res) => {
|
||||
console.timeEnd(name);
|
||||
if (error) reject(error);
|
||||
else resolve(res);
|
||||
});
|
||||
});
|
||||
const res = await template.render(name, Object.assign(context, {
|
||||
handler: this,
|
||||
_: (str) => (str ? str.toString().translate(this.user.language) : ''),
|
||||
user: this.user,
|
||||
}));
|
||||
console.timeEnd(name);
|
||||
return res;
|
||||
}
|
||||
|
||||
send(data) {
|
||||
@@ -401,14 +393,14 @@ function Connection(prefix, RouteConnHandler) {
|
||||
sock.installHandlers(server);
|
||||
}
|
||||
|
||||
exports.Handler = Handler;
|
||||
exports.ConnectionHandler = ConnectionHandler;
|
||||
exports.Route = Route;
|
||||
exports.Connection = Connection;
|
||||
exports.start = function start() {
|
||||
function start() {
|
||||
app.use(morgan(':method :url :status :res[content-length] - :response-time ms'));
|
||||
app.use(router.routes()).use(router.allowedMethods());
|
||||
Route('*', Handler);
|
||||
server.listen(options.listen.port);
|
||||
console.log('Server listening at: %s', options.listen.port);
|
||||
}
|
||||
|
||||
global.Hydro.service.server = module.exports = {
|
||||
Handler, ConnectionHandler, Route, Connection, start,
|
||||
};
|
||||
Reference in new issue
Block a user