Files
wsmud/world/task/msg.js
2026-05-26 16:41:20 +08:00

97 lines
2.8 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
this.inherits(TASK);
this.id = "msg";
this.handler = null;
this.startup = function () {
this.handler = this.call_out(this.run, 20 * 60000);
}
this.stop = function () {
if (this.handler) clearTimeout(this.handler);
}
this.msgs = [
"欢迎登录,感谢你的支持,如有任何问题或建议",
"如有BUG请提交管理员谢谢配合"
];
this.is_check_file = false;
this.run = function () {
COMMAND.DO("sys", this.msgs.random());
this.startup();
var dt = new Date();
if (dt.getHours() == 4 && !this.is_check_file) {
this.is_check_file = true;
this.check_file();
}
if (dt.getHours() == 5) {
this.is_check_file = false;
this.clearyz();
}
}
this.clearyz = function () {
WORLD.COMMANDS['checkorg'].cmd_clearmail();
WORLD.COMMANDS['checkorg'].cmd_clearstore();
}
this.check_file = function () {
const min1 = new Date(Date.now() - 3600000 * 24 * 7);//七天内每个一小时
const min2 = new Date(Date.now() - 3600000 * 24 * 30);//30天内每天一个
const min3 = new Date(Date.now() - 3600000 * 24 * 160);//一年内一周一个,一年外的删除
const min4 = new Date(Date.now() - 3600000 * 24 * 30);//日志30天内每天一个
this.check_temp_files("log", (dir) => {
dir = dir.replace("log", "").replace(".txt", "");
let pars = dir.split('-');
let dt = new Date(pars[0], pars[1] - 1, pars[2]);
return dt < min4;
});
this.check_temp_files("req", (dir) => {
dir = dir.replace("request", "").replace(".txt", "");
let pars = dir.split('-');
let dt = new Date(pars[0], pars[1] - 1, pars[2]);
return dt < min4;
});
this.check_temp_files("bak", (dir) => {
dir = dir.replace("data", "").replace(".js", "");
let pars = dir.split('-');
if (pars.length < 3) return false;
let dt = new Date(pars[0], pars[1] - 1, pars[2], pars[3]);
if (dt > min1) return false;
if (dt > min2) {
if (dt.getHours() === 5) return false;
return true;
}
if (dt > min3) {
if (dt.getHours() === 5 && dt.getDay() === 1) return false;
return true;
}
return true;
});
this.check_temp_files("temp", (dir) => {
let pars = dir.split('-');
if (pars.length < 5) return false;
let dt = new Date(pars[1], pars[2] - 1, pars[3], pars[4]);
if (dt > min2) {
if (dt.getHours() === 5) return false;
return true;
}
return true;
});
}
this.check_temp_files = async function (path, func) {
const dir = __PATH.DATA + path + "/";
const paths = await fs.readdir(dir);
for (var i = 0; i < paths.length; i++) {
if (func(paths[i])) {
fs.unlink(dir + paths[i]);
}
}
}