117 lines
3.2 KiB
JavaScript
117 lines
3.2 KiB
JavaScript
"use strict";
|
|
|
|
const fs = require('fs');
|
|
const adler32 = require('adler32');
|
|
|
|
function clearString(string) {
|
|
return string.replace(/[\r\n\t]/g, '').replace(/\s\s+/g, '').replace(/[\\]/g, "");
|
|
}
|
|
|
|
function adlerGen(string){
|
|
return adler32.sum(string);
|
|
}
|
|
|
|
function getRandomInt(min = 0, max = 100) {
|
|
min = Math.ceil(min);
|
|
max = Math.floor(max);
|
|
return (max > min) ? Math.floor(Math.random() * (max - min + 1) + min) : min;
|
|
}
|
|
|
|
function getRandomIntEx(max) {
|
|
return (max > 1) ? Math.floor(Math.random() * (max - 2) + 1) : 1;
|
|
}
|
|
|
|
function getDirList(path) {
|
|
return fs.readdirSync(path).filter(function(file) {
|
|
return fs.statSync(path + '/' + file).isDirectory();
|
|
});
|
|
}
|
|
|
|
function removeDir(dir) {
|
|
for (file of fs.readdirSync(dir)) {
|
|
let curPath = path.join(dir, file);
|
|
|
|
if (fs.lstatSync(curPath).isDirectory()) {
|
|
removeDir(curPath);
|
|
} else {
|
|
fs.unlinkSync(curPath);
|
|
}
|
|
}
|
|
|
|
fs.rmdirSync(dir);
|
|
}
|
|
|
|
function getTimestamp() {
|
|
let time = new Date();
|
|
|
|
return Math.floor(time.getTime() / 1000);
|
|
}
|
|
|
|
function getTime() {
|
|
let today = new Date();
|
|
let hours = ("0" + today.getHours()).substr(-2);
|
|
let minutes = ("0" + today.getMinutes()).substr(-2);
|
|
let seconds = ("0" + today.getSeconds()).substr(-2);
|
|
|
|
return hours + "-" + minutes + "-" + seconds;
|
|
}
|
|
|
|
function getDate() {
|
|
let today = new Date();
|
|
let day = ("0" + today.getDate()).substr(-2);
|
|
let month = ("0" + (today.getMonth() + 1)).substr(-2);
|
|
|
|
return today.getFullYear() + "-" + month + "-" + day;
|
|
}
|
|
|
|
function makeSign(length) {
|
|
let result = '';
|
|
let characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
|
let charactersLength = characters.length;
|
|
|
|
for (let i = 0; i < length; i++ ) {
|
|
result += characters.charAt(Math.floor(Math.random() * charactersLength));
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
function generateNewAssortId() {
|
|
return generateNewId("A");
|
|
}
|
|
|
|
function generateNewItemId() {
|
|
return generateNewId("I");
|
|
}
|
|
|
|
function generateNewDialogueId() {
|
|
return generateNewId("D");
|
|
}
|
|
|
|
function generateNewId(prefix) {
|
|
let getTime = new Date();
|
|
let month = getTime.getMonth().toString();
|
|
let date = getTime.getDate().toString();
|
|
let hour = getTime.getHours().toString();
|
|
let minute = getTime.getMinutes().toString();
|
|
let second = getTime.getSeconds().toString();
|
|
let random = getRandomInt(1000000000, 9999999999).toString();
|
|
let retVal = prefix + (month + date + hour + minute + second + random).toString();
|
|
let sign = makeSign(24 - retVal.length).toString();
|
|
|
|
return retVal + sign;
|
|
}
|
|
|
|
module.exports.clearString = clearString;
|
|
module.exports.adlerGen = adlerGen;
|
|
module.exports.getRandomInt = getRandomInt;
|
|
module.exports.getRandomIntEx = getRandomIntEx;
|
|
module.exports.getDirList = getDirList;
|
|
module.exports.removeDir = removeDir;
|
|
module.exports.getTimestamp = getTimestamp;
|
|
module.exports.getTime = getTime;
|
|
module.exports.getDate = getDate;
|
|
module.exports.makeSign = makeSign;
|
|
module.exports.generateNewItemId = generateNewItemId;
|
|
module.exports.generateNewAssortId = generateNewAssortId;
|
|
module.exports.generateNewDialogueId = generateNewDialogueId; |