1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
const fs = require("fs");
const path = require('path');
const getAllFiles = function(dirPath, arrayOfFiles) {
let files = fs.readdirSync(dirPath);
arrayOfFiles = arrayOfFiles || [];
files.forEach(function(file) {
if (file === "cache") return;
if (fs.statSync(dirPath + "/" + file).isDirectory()) {
arrayOfFiles = getAllFiles(dirPath + "/" + file, arrayOfFiles);
} else {
arrayOfFiles.push(path.join(__dirname, dirPath, "/", file));
}
});
return arrayOfFiles
}
let files = getAllFiles(".");
let sums = [];
process.versions.butterscotch = new Date().getTime().toString();
if (!fs.existsSync("cache")) fs.mkdirSync("cache");
if (!fs.existsSync("cache/lastMessages.json")) fs.writeFileSync("cache/lastMessages.json", "{}");
if (!fs.existsSync("cache/ratelimits.json")) fs.writeFileSync("cache/ratelimits.json", `{"month":{},"day":{},"hour":{},"minute":{}}`);
if (!fs.existsSync("cache/score.json")) fs.writeFileSync("cache/score.json", `{"history":{},"score":0,"percentage":0}`);
try {
global.lastMessages = JSON.parse(fs.readFileSync("cache/lastMessages.json").toString());
} catch (e) {
fs.writeFileSync("cache/lastMessages.json", "{}");
global.lastMessages = JSON.parse(fs.readFileSync("cache/lastMessages.json").toString());
}
global.aliases = {};
global.evalContexts = {};
process.on('uncaughtException', (e) => {
console.error(e);
});
try {
global.ratelimits = JSON.parse(fs.readFileSync("cache/ratelimits.json").toString());
} catch (e) {
fs.writeFileSync("cache/ratelimits.json", "{\"month\":{},\"day\":{},\"hour\":{},\"minute\":{}}");
global.ratelimits = JSON.parse(fs.readFileSync("cache/ratelimits.json").toString());
}
let lastSavedLastMessages = JSON.stringify(lastMessages);
let lastSavedRateLimits = JSON.stringify(ratelimits);
global.maxCredits = {
month: 400
}
setInterval(() => {
if (JSON.stringify(ratelimits) !== lastSavedRateLimits) {
console.log("Saving ratelimits");
fs.writeFileSync("cache/ratelimits.json", JSON.stringify(ratelimits));
lastSavedRateLimits = JSON.stringify(ratelimits);
}
if (JSON.stringify(lastMessages) !== lastSavedLastMessages) {
console.log("Saving lastMessages");
fs.writeFileSync("cache/lastMessages.json", JSON.stringify(lastMessages));
lastSavedLastMessages = JSON.stringify(lastMessages);
}
}, 1000);
for (let helpFile of fs.readdirSync("./help")) {
let command = helpFile.substring(0, helpFile.length - 5);
let help = JSON.parse(fs.readFileSync("./help/" + helpFile).toString());
if (help['aliases']) {
for (let alias of help['aliases']) {
aliases[alias] = command;
}
}
}
//require('./matrix');
require('./discord');
require('./signal');
|