init: add workspace files

This commit is contained in:
2026-05-26 16:41:20 +08:00
commit f4f2393f72
1041 changed files with 67405 additions and 0 deletions

97
world/task/msg.js Normal file
View File

@@ -0,0 +1,97 @@
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]);
}
}
}