Added node version check, some cleanup

This commit is contained in:
Essem 2022-01-07 11:44:18 -06:00
parent fb0c8ffae1
commit fd77ace48e
No known key found for this signature in database
GPG Key ID: 7D497397CC3A2A8C
7 changed files with 19 additions and 12 deletions

View File

@ -33,10 +33,10 @@ const Rinit = 0x08;
const start = process.hrtime(); const start = process.hrtime();
const log = (msg, jobNum) => { const log = (msg, jobNum) => {
console.log(`[${process.hrtime(start)[1] / 1000000}${jobNum !== undefined ? `:${jobNum}` : ""}]\t ${msg}`); console.log(`[${process.hrtime(start)[1] / 1000000}${jobNum ? `:${jobNum}` : ""}]\t ${msg}`);
}; };
const error = (msg, jobNum) => { const error = (msg, jobNum) => {
console.error(`[${process.hrtime(start)[1] / 1000000}${jobNum !== undefined ? `:${jobNum}` : ""}]\t ${msg}`); console.error(`[${process.hrtime(start)[1] / 1000000}${jobNum ? `:${jobNum}` : ""}]\t ${msg}`);
}; };
class JobCache extends Map { class JobCache extends Map {
@ -53,8 +53,8 @@ const jobs = new JobCache();
const queue = []; const queue = [];
// Array of IDs // Array of IDs
const MAX_JOBS = process.env.JOBS !== "" && process.env.JOBS !== undefined ? parseInt(process.env.JOBS) : cpus().length * 4; // Completely arbitrary, should usually be some multiple of your amount of cores const MAX_JOBS = process.env.JOBS && process.env.JOBS !== "" ? parseInt(process.env.JOBS) : cpus().length * 4; // Completely arbitrary, should usually be some multiple of your amount of cores
const PASS = process.env.PASS !== "" && process.env.PASS !== undefined ? process.env.PASS : undefined; const PASS = process.env.PASS && process.env.PASS !== "" ? process.env.PASS : undefined;
let jobAmount = 0; let jobAmount = 0;
const acceptJob = (id, sock) => { const acceptJob = (id, sock) => {

7
app.js
View File

@ -1,6 +1,12 @@
if (process.platform === "win32") console.error("\x1b[1m\x1b[31m\x1b[40m" + `WIN32 IS NOT OFFICIALLY SUPPORTED! if (process.platform === "win32") console.error("\x1b[1m\x1b[31m\x1b[40m" + `WIN32 IS NOT OFFICIALLY SUPPORTED!
Although there's a (very) slim chance of it working, multiple aspects of the bot are built with UNIX-like systems in mind and could break on Win32-based systems. If you want to run the bot on Windows, using Windows Subsystem for Linux is highly recommended. Although there's a (very) slim chance of it working, multiple aspects of the bot are built with UNIX-like systems in mind and could break on Win32-based systems. If you want to run the bot on Windows, using Windows Subsystem for Linux is highly recommended.
The bot will continue to run past this message, but keep in mind that it could break at any time. Continue running at your own risk; alternatively, stop the bot using Ctrl+C and install WSL.` + "\x1b[0m"); The bot will continue to run past this message, but keep in mind that it could break at any time. Continue running at your own risk; alternatively, stop the bot using Ctrl+C and install WSL.` + "\x1b[0m");
if (process.versions.node.split(".")[0] < 15) {
console.error(`You are currently running Node.js version ${process.version}.
esmBot requires Node.js version 15 or above.
Please refer to step 3 of the setup guide.`);
process.exit(1);
}
// load config from .env file // load config from .env file
import { config } from "dotenv"; import { config } from "dotenv";
@ -55,6 +61,7 @@ const Admiral = new Fleet({
BotWorker: Shard, BotWorker: Shard,
token: `Bot ${process.env.TOKEN}`, token: `Bot ${process.env.TOKEN}`,
fetchTimeout: 900000, fetchTimeout: 900000,
useCentralRequestHandler: true,
startingStatus: { startingStatus: {
status: "idle", status: "idle",
game: { game: {

View File

@ -2,7 +2,7 @@ import Command from "../../classes/command.js";
class AvatarCommand extends Command { class AvatarCommand extends Command {
async run() { async run() {
if (this.message.mentions[0] !== undefined) { if (this.message.mentions[0]) {
return this.message.mentions[0].dynamicAvatarURL(null, 1024); return this.message.mentions[0].dynamicAvatarURL(null, 1024);
} else if (await this.ipc.fetchUser(this.args[0])) { } else if (await this.ipc.fetchUser(this.args[0])) {
const user = await this.ipc.fetchUser(this.args[0]); const user = await this.ipc.fetchUser(this.args[0]);

View File

@ -44,8 +44,8 @@ export async function removeTag(name, guild) {
export async function disableCommand(guild, command) { export async function disableCommand(guild, command) {
const guildDB = await this.getGuild(guild); const guildDB = await this.getGuild(guild);
await connection.query("UPDATE guilds SET disabled_commands = $1 WHERE guild_id = $2", [(guildDB.disabled_commands ? [...guildDB.disabled_commands, command] : [command]).filter((v) => v !== undefined), guild]); await connection.query("UPDATE guilds SET disabled_commands = $1 WHERE guild_id = $2", [(guildDB.disabled_commands ? [...guildDB.disabled_commands, command] : [command]).filter((v) => !!v), guild]);
disabledCmdCache.set(guild, guildDB.disabled_commands ? [...guildDB.disabled_commands, command] : [command].filter((v) => v !== undefined)); disabledCmdCache.set(guild, guildDB.disabled_commands ? [...guildDB.disabled_commands, command] : [command].filter((v) => !!v));
} }
export async function enableCommand(guild, command) { export async function enableCommand(guild, command) {
@ -138,4 +138,4 @@ export async function setup() {
export async function stop() { export async function stop() {
await connection.end(); await connection.end();
} }

View File

@ -73,8 +73,8 @@ export async function getCounts() {
export async function disableCommand(guild, command) { export async function disableCommand(guild, command) {
const guildDB = await this.getGuild(guild); const guildDB = await this.getGuild(guild);
connection.prepare("UPDATE guilds SET disabled_commands = ? WHERE guild_id = ?").run(JSON.stringify((guildDB.disabledCommands ? [...JSON.parse(guildDB.disabledCommands), command] : [command]).filter((v) => v !== undefined)), guild); connection.prepare("UPDATE guilds SET disabled_commands = ? WHERE guild_id = ?").run(JSON.stringify((guildDB.disabledCommands ? [...JSON.parse(guildDB.disabledCommands), command] : [command]).filter((v) => !!v)), guild);
collections.disabledCmdCache.set(guild, guildDB.disabled_commands ? [...JSON.parse(guildDB.disabledCommands), command] : [command].filter((v) => v !== undefined)); collections.disabledCmdCache.set(guild, guildDB.disabled_commands ? [...JSON.parse(guildDB.disabledCommands), command] : [command].filter((v) => !!v));
} }
export async function enableCommand(guild, command) { export async function enableCommand(guild, command) {

View File

@ -7,7 +7,7 @@ class PrometheusWorker extends BaseServiceWorker {
constructor(setup) { constructor(setup) {
super(setup); super(setup);
if (process.env.METRICS !== "" && process.env.METRICS !== undefined) { if (process.env.METRICS && process.env.METRICS !== "") {
this.httpServer = createServer(async (req, res) => { this.httpServer = createServer(async (req, res) => {
if (req.method !== "GET") { if (req.method !== "GET") {
res.statusCode = 405; res.statusCode = 405;

View File

@ -68,7 +68,7 @@ export async function play(client, sound, message, music = false) {
if (!tracks || tracks.length === 0) return "I couldn't find that song!"; if (!tracks || tracks.length === 0) return "I couldn't find that song!";
if (music) { if (music) {
const sortedTracks = tracks.map((val) => { return val.track; }); const sortedTracks = tracks.map((val) => { return val.track; });
const playlistTracks = playlistInfo.selectedTrack !== undefined ? sortedTracks : [sortedTracks[0]]; const playlistTracks = playlistInfo.selectedTrack ? sortedTracks : [sortedTracks[0]];
queues.set(voiceChannel.guild.id, oldQueue ? [...oldQueue, ...playlistTracks] : playlistTracks); queues.set(voiceChannel.guild.id, oldQueue ? [...oldQueue, ...playlistTracks] : playlistTracks);
} }
const connection = await manager.join({ const connection = await manager.join({