A few threshold tweaks
This commit is contained in:
parent
242f81f721
commit
80d4204538
40
app.js
40
app.js
|
@ -174,35 +174,31 @@ if (isMaster) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
//process the threshold into bytes early
|
// process the threshold into bytes early
|
||||||
if (process.env.TEMPDIR&&process.env.THRESHOLD) {
|
if (process.env.TEMPDIR && process.env.THRESHOLD) {
|
||||||
const matched = process.env.THRESHOLD.match(/(\d+)([KMGT])/);
|
const matched = process.env.THRESHOLD.match(/(\d+)([KMGT])/);
|
||||||
const sizes = {
|
const sizes = {
|
||||||
"K":1024,
|
K: 1024,
|
||||||
"M":1048576,
|
M: 1048576,
|
||||||
"G":1073741824,
|
G: 1073741824,
|
||||||
"T":1099511627776
|
T: 1099511627776
|
||||||
};
|
};
|
||||||
if (matched&&matched[1]&&matched[2]) {
|
if (matched && matched[1] && matched[2]) {
|
||||||
process.env.THRESHOLD=matched[1]*sizes[matched[2]];
|
process.env.THRESHOLD = matched[1] * sizes[matched[2]];
|
||||||
} else {
|
} else {
|
||||||
logger.error("Invalid THRESHOLD config.");
|
logger.error("Invalid THRESHOLD config.");
|
||||||
process.env.THRESHOLD = undefined;
|
process.env.THRESHOLD = undefined;
|
||||||
}
|
}
|
||||||
let dirstat = (await promises.readdir(process.env.TEMPDIR))
|
const dirstat = (await promises.readdir(process.env.TEMPDIR)).map(async (file) => {
|
||||||
.map(async (file)=>{
|
return new Promise((resolve) => {
|
||||||
return new Promise((resolve,reject) =>{
|
promises.stat(`${process.env.TEMPDIR}/${file}`).then((stats) => {
|
||||||
promises.stat(`${process.env.TEMPDIR}/${file}`)
|
resolve(stats.size);
|
||||||
.then((stats)=>{
|
});
|
||||||
resolve(stats.size)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
});
|
});
|
||||||
Promise.all(dirstat)
|
});
|
||||||
.then((size)=>{
|
const size = await Promise.all(dirstat);
|
||||||
process.env.DIRSIZECACHE = size.reduce((a,b)=>{
|
process.env.DIRSIZECACHE = size.reduce((a, b)=>{
|
||||||
return a+b
|
return a + b;
|
||||||
},0)
|
}, 0);
|
||||||
})
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -55,6 +55,30 @@ export default async (client, cluster, worker, ipc, interaction) => {
|
||||||
},
|
},
|
||||||
}]
|
}]
|
||||||
});
|
});
|
||||||
|
if (process.env.THRESHOLD) {
|
||||||
|
process.env.DIRSIZECACHE += result.file.length;
|
||||||
|
if (process.env.DIRSIZECACHE > process.env.THRESHOLD) {
|
||||||
|
const files = (await promises.readdir(process.env.TEMPDIR)).map((file) => {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
promises.stat(`${process.env.TEMPDIR}/${file}`).then((fstats)=>{
|
||||||
|
resolve({
|
||||||
|
name: file,
|
||||||
|
size: fstats.size,
|
||||||
|
ctime: fstats.ctime
|
||||||
|
});
|
||||||
|
}).catch(reject);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
Promise.all(files).then((files) => {
|
||||||
|
process.env.DIRSIZECACHE = files.reduce((a, b)=>{
|
||||||
|
return a+b.size;
|
||||||
|
}, 0);
|
||||||
|
const oldestFile = files.sort((a, b) => a.ctime - b.ctime)[0].name;
|
||||||
|
promises.rm(`${process.env.TEMPDIR}/${oldestFile}`);
|
||||||
|
logger.log(`Removed oldest image file: ${oldestFile}`);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
await interaction[interaction.acknowledged ? "editOriginalMessage" : "createMessage"]("The resulting image was more than 8MB in size, so I can't upload it.");
|
await interaction[interaction.acknowledged ? "editOriginalMessage" : "createMessage"]("The resulting image was more than 8MB in size, so I can't upload it.");
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,6 @@ import { log, error as _error } from "../utils/logger.js";
|
||||||
import { prefixCache, aliases, disabledCache, disabledCmdCache, commands } from "../utils/collections.js";
|
import { prefixCache, aliases, disabledCache, disabledCmdCache, commands } from "../utils/collections.js";
|
||||||
import parseCommand from "../utils/parseCommand.js";
|
import parseCommand from "../utils/parseCommand.js";
|
||||||
import { clean } from "../utils/misc.js";
|
import { clean } from "../utils/misc.js";
|
||||||
import { spawn } from "child_process";
|
|
||||||
|
|
||||||
// run when someone sends a message
|
// run when someone sends a message
|
||||||
export default async (client, cluster, worker, ipc, message) => {
|
export default async (client, cluster, worker, ipc, message) => {
|
||||||
|
@ -144,31 +143,27 @@ export default async (client, cluster, worker, ipc, message) => {
|
||||||
}]
|
}]
|
||||||
}, reference));
|
}, reference));
|
||||||
if (process.env.THRESHOLD) {
|
if (process.env.THRESHOLD) {
|
||||||
process.env.DIRSIZECACHE+=result.file.length;
|
process.env.DIRSIZECACHE += result.file.length;
|
||||||
if (process.env.DIRSIZECACHE>process.env.THRESHOLD) {
|
if (process.env.DIRSIZECACHE > process.env.THRESHOLD) {
|
||||||
const files = (await promises.readdir(process.env.TEMPDIR))
|
const files = (await promises.readdir(process.env.TEMPDIR)).map((file) => {
|
||||||
.map((file)=>{
|
return new Promise((resolve, reject) => {
|
||||||
return new Promise((resolve,reject) => {
|
promises.stat(`${process.env.TEMPDIR}/${file}`).then((fstats)=>{
|
||||||
promises.stat(`${process.env.TEMPDIR}/${file}`)
|
resolve({
|
||||||
.then((fstats)=>{
|
name: file,
|
||||||
resolve({
|
size: fstats.size,
|
||||||
name:file,
|
ctime: fstats.ctime
|
||||||
size:fstats.size,
|
});
|
||||||
ctime:fstats.ctime
|
}).catch(reject);
|
||||||
});
|
|
||||||
})
|
|
||||||
.catch(reject);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
Promise.all(files)
|
|
||||||
.then((files)=>{
|
|
||||||
process.env.DIRSIZECACHE = files.reduce((a,b)=>{
|
|
||||||
return a+b.size
|
|
||||||
},0)
|
|
||||||
const oldestFile = files.sort((a, b) => a.ctime - b.ctime)[0].name;
|
|
||||||
promises.rm(`${process.env.TEMPDIR}/${oldestFile}`);
|
|
||||||
log(`Removed oldest image file: ${oldestFile}`);
|
|
||||||
});
|
});
|
||||||
|
});
|
||||||
|
Promise.all(files).then((files) => {
|
||||||
|
process.env.DIRSIZECACHE = files.reduce((a, b)=>{
|
||||||
|
return a+b.size;
|
||||||
|
}, 0);
|
||||||
|
const oldestFile = files.sort((a, b) => a.ctime - b.ctime)[0].name;
|
||||||
|
promises.rm(`${process.env.TEMPDIR}/${oldestFile}`);
|
||||||
|
log(`Removed oldest image file: ${oldestFile}`);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in New Issue