Add some more commands
This commit is contained in:
parent
647fb44645
commit
1612a1f4c8
80
index.js
80
index.js
|
@ -1167,8 +1167,6 @@ dcClient.on('interactionCreate', async interaction => {
|
||||||
outputStream += `${data}`
|
outputStream += `${data}`
|
||||||
})
|
})
|
||||||
stream.on('exit', (code, signal) => {
|
stream.on('exit', (code, signal) => {
|
||||||
console.log(`Ran command ${cmd}:\n${outputStream}`)
|
|
||||||
console.log("TEST" + outputStream.length)
|
|
||||||
// generate message json
|
// generate message json
|
||||||
const msgJson = {
|
const msgJson = {
|
||||||
content: `Ran command \`${cmd}\`\n\`\`\`ansi\n${outputStream}\`\`\``
|
content: `Ran command \`${cmd}\`\n\`\`\`ansi\n${outputStream}\`\`\``
|
||||||
|
@ -1208,7 +1206,83 @@ dcClient.on('interactionCreate', async interaction => {
|
||||||
}, 1000);
|
}, 1000);
|
||||||
break;
|
break;
|
||||||
case "asterisk": // Asterisk CLI command
|
case "asterisk": // Asterisk CLI command
|
||||||
break; // for now
|
await interaction.deferReply({
|
||||||
|
ephemeral: true
|
||||||
|
});
|
||||||
|
let cmd2 = interaction.options.get("command").value;
|
||||||
|
sshConn.exec(`asterisk -x '${cmd2}'`, (err, stream) => {
|
||||||
|
if (err) {
|
||||||
|
interaction.editReply(`Error running command: ${err}`);
|
||||||
|
sendLog(`${colors.red("[ERROR]")} ${err}`);
|
||||||
|
}
|
||||||
|
outputStream = ""
|
||||||
|
stream.on("data", (data) => {
|
||||||
|
outputStream += `${data}`
|
||||||
|
})
|
||||||
|
stream.on('exit', (code, signal) => {
|
||||||
|
// generate message json
|
||||||
|
const msgJson = {
|
||||||
|
content: `Ran command \`${cmd2}\`\n\`\`\`ansi\n${outputStream}\`\`\``
|
||||||
|
}
|
||||||
|
// outputStream is too long for Discord, so we need to send it as a file
|
||||||
|
if (outputStream.length > 2000) {
|
||||||
|
// make the buffer
|
||||||
|
const buffer = Buffer.from(outputStream, 'utf-8');
|
||||||
|
const attachment = {
|
||||||
|
name: "output.txt",
|
||||||
|
attachment: buffer
|
||||||
|
}
|
||||||
|
msgJson.files = [attachment];
|
||||||
|
msgJson.content = `Ran command \`${cmd2}\`\nOutput too long, sending as a file`
|
||||||
|
}
|
||||||
|
interaction.editReply(msgJson);
|
||||||
|
sendLog(`${colors.green("[INFO]")} Ran command ${cmd2}`);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
case "shell": // This is dangerous, only allow developers to use it
|
||||||
|
await interaction.deferReply({
|
||||||
|
ephemeral: true
|
||||||
|
});
|
||||||
|
let cmd3 = interaction.options.get("command").value;
|
||||||
|
let cmd3timeout = interaction.options.get("timeout").value;
|
||||||
|
sshConn.exec(cmd3, (err, stream) => {
|
||||||
|
if (err) {
|
||||||
|
interaction.editReply(`Error running command: ${err}`);
|
||||||
|
sendLog(`${colors.red("[ERROR]")} ${err}`);
|
||||||
|
}
|
||||||
|
// if timeout is set, set a timeout before
|
||||||
|
timeout = setTimeout(() => {
|
||||||
|
stream.close();
|
||||||
|
interaction.editReply(`Command timed out after ${cmd3timeout}ms`);
|
||||||
|
})
|
||||||
|
outputStream = ""
|
||||||
|
stream.on("data", (data) => {
|
||||||
|
outputStream += `${data}`
|
||||||
|
})
|
||||||
|
stream.on('exit', (code, signal) => {
|
||||||
|
// clear the timeout
|
||||||
|
clearTimeout(timeout);
|
||||||
|
// generate message json
|
||||||
|
const msgJson = {
|
||||||
|
content: `Ran command \`${cmd3}\`\n\`\`\`ansi\n${outputStream}\`\`\``
|
||||||
|
}
|
||||||
|
// outputStream is too long for Discord, so we need to send it as a file
|
||||||
|
if (outputStream.length > 2000) {
|
||||||
|
// make the buffer
|
||||||
|
const buffer = Buffer.from(outputStream, 'utf-8');
|
||||||
|
const attachment = {
|
||||||
|
name: "output.txt",
|
||||||
|
attachment: buffer
|
||||||
|
}
|
||||||
|
msgJson.files = [attachment];
|
||||||
|
msgJson.content = `Ran command \`${cmd3}\`\nOutput too long, sending as a file`
|
||||||
|
}
|
||||||
|
interaction.editReply(msgJson);
|
||||||
|
sendLog(`${colors.green("[INFO]")} Ran command ${cmd3}`);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
Loading…
Reference in a new issue