summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaindropsSys <contact@minteck.org>2023-07-28 10:54:49 +0200
committerRaindropsSys <contact@minteck.org>2023-07-28 10:54:49 +0200
commit201023aff0b5321d7f10ebc3f069a70cc5daa74a (patch)
tree28b2225ca9e5d324f5b63a38360e846cc7d3461b
parent039523669cc64b820f483a3c12c8c2eaab9b1351 (diff)
downloadbutterscotch-201023aff0b5321d7f10ebc3f069a70cc5daa74a.tar.gz
butterscotch-201023aff0b5321d7f10ebc3f069a70cc5daa74a.tar.bz2
butterscotch-201023aff0b5321d7f10ebc3f069a70cc5daa74a.zip
Updated 6 files and added 5 files (automated)
-rw-r--r--commands/gpt.js33
-rw-r--r--commands/killswitch.js5
-rw-r--r--commands/reboot.js10
-rw-r--r--handler.js36
-rw-r--r--help/_categories.json8
-rw-r--r--help/gpt.json6
-rw-r--r--help/reboot.json6
-rw-r--r--index.js2
-rw-r--r--package.json2
-rw-r--r--signal.js2
-rw-r--r--start.sh13
11 files changed, 106 insertions, 17 deletions
diff --git a/commands/gpt.js b/commands/gpt.js
new file mode 100644
index 0000000..d2b8aed
--- /dev/null
+++ b/commands/gpt.js
@@ -0,0 +1,33 @@
+const axios = require('axios');
+const fs = require("fs");
+
+module.exports = (parameter, wrapper) => {
+ if (!require('../credentials.json').admins.includes(wrapper.sender)) {
+ wrapper.send("⛔️ This command is private and you are not allowed to use it.");
+ return;
+ }
+
+ try {
+ axios.post("https://api.openai.com/v1/chat/completions", {
+ model: "gpt-3.5-turbo",
+ messages: [
+ {
+ role: "user",
+ content: parameter
+ }
+ ],
+ max_tokens: 500
+ }, {
+ headers: {
+ 'Content-Type': 'application/json',
+ 'Authorization': 'Bearer ' + require('../credentials.json').chatgpt
+ }
+ }).then((res) => {
+ wrapper.send("🤖 " + res.data['choices'][0]['message']['content']);
+ }).catch((e) => {
+ wrapper.send("🚨 Sorry, an error occurred on our side, try again later.");
+ });
+ } catch (e) {
+ wrapper.send("🚨 Sorry, an error occurred on our side, try again later.");
+ }
+} \ No newline at end of file
diff --git a/commands/killswitch.js b/commands/killswitch.js
index 99fd5f8..74741d6 100644
--- a/commands/killswitch.js
+++ b/commands/killswitch.js
@@ -4,8 +4,7 @@ module.exports = (parameter, wrapper) => {
return;
}
- wrapper.send("[💣](https://admin.equestria.dev/#v1:0:=lxc%2F211:4::::::=consolejs:)");
- setTimeout(() => {
+ wrapper.send("[💣](https://admin.equestria.dev/#v1:0:=lxc%2F211:4::::::=consolejs:)").then(() => {
process.exit(2);
- }, 1000);
+ });
} \ No newline at end of file
diff --git a/commands/reboot.js b/commands/reboot.js
new file mode 100644
index 0000000..4bbc3fc
--- /dev/null
+++ b/commands/reboot.js
@@ -0,0 +1,10 @@
+module.exports = (parameter, wrapper) => {
+ if (!require('../credentials.json').admins.includes(wrapper.sender)) {
+ wrapper.send("⛔️ This command is private and you are not allowed to use it.");
+ return;
+ }
+
+ wrapper.send("🔁 The bot is now restarting, please wait until it is back up.").then(() => {
+ process.exit(158);
+ });
+} \ No newline at end of file
diff --git a/handler.js b/handler.js
index dc7a04a..10a73fc 100644
--- a/handler.js
+++ b/handler.js
@@ -17,8 +17,16 @@ module.exports = (config) => {
if (config['source'] === "matrix") {
wrapper.send = (message) => {
- matrixSend(config['room'].roomId, message).then(() => {
- if (strictMode) matrixSend(config['room'].roomId, "`Δt(p+s) = " + (new Date().getTime() - start) + "ms; Δt(r+p+s) = " + (wrapper.ping + (new Date().getTime() - start)) + "ms`");
+ return new Promise((res) => {
+ matrixSend(config['room'].roomId, message).then((msg) => {
+ if (strictMode) {
+ matrixSend(config['room'].roomId, "`Δt(p+s) = " + (new Date().getTime() - start) + "ms; Δt(r+p+s) = " + (wrapper.ping + (new Date().getTime() - start)) + "ms`").then(() => {
+ res(msg);
+ });
+ } else {
+ res(msg);
+ }
+ });
});
}
@@ -47,9 +55,17 @@ module.exports = (config) => {
if (config['source'] === "signal") {
wrapper.send = (message) => {
- signalSend(config['channel'], message).then(() => {
- if (strictMode) signalSend(config['channel'], "`Δt(p+s) = " + (new Date().getTime() - start) + "ms; Δt(r+p+s) = " + (wrapper.ping + (new Date().getTime() - start)) + "ms`");
- });
+ return new Promise((res) => {
+ signalSend(config['channel'], message).then((msg) => {
+ if (strictMode) {
+ signalSend(config['channel'], "`Δt(p+s) = " + (new Date().getTime() - start) + "ms; Δt(r+p+s) = " + (wrapper.ping + (new Date().getTime() - start)) + "ms`").then(() => {
+ res(msg);
+ });
+ } else {
+ res(msg);
+ }
+ });
+ })
}
wrapper.image = async (buffer, imgConfig, text) => {
@@ -80,8 +96,14 @@ module.exports = (config) => {
description: message
}
]
- }).then(() => {
- if (strictMode) config['channel'].send("`Δt(p+s) = " + (new Date().getTime() - start) + "ms; Δt(r+p+s) = " + (wrapper.ping + (new Date().getTime() - start)) + "ms`");
+ }).then((msg) => {
+ if (strictMode) {
+ config['channel'].send("`Δt(p+s) = " + (new Date().getTime() - start) + "ms; Δt(r+p+s) = " + (wrapper.ping + (new Date().getTime() - start)) + "ms`").then(() => {
+ res(msg);
+ });
+ } else {
+ res(msg);
+ }
});
}
diff --git a/help/_categories.json b/help/_categories.json
index f82cd75..1b115c6 100644
--- a/help/_categories.json
+++ b/help/_categories.json
@@ -1,8 +1,8 @@
{
- "Knowledge": [ "ask", "ip", "math", "status" ],
- "Derpibooru": [ "cute", "nsfw" ],
+ "Knowledge": [ "ask", "ip", "math", "status", "gpt" ],
+ "Derpibooru": [ "cute", "nsfw", "id", "query" ],
"Fun": [ "fortune", "roll", "what" ],
- "Technical": [ "help", "killswitch", "mem", "ping", "usage" ],
- "Private": [ "evening", "score" ],
+ "Technical": [ "help", "mem", "ping", "usage" ],
+ "Private": [ "evening", "killswitch", "reboot" ],
"Execution": [ "eval", "xeval", "meval", "reset" ]
} \ No newline at end of file
diff --git a/help/gpt.json b/help/gpt.json
new file mode 100644
index 0000000..7035418
--- /dev/null
+++ b/help/gpt.json
@@ -0,0 +1,6 @@
+{
+ "description": "Ask something to ChatGPT.",
+ "parameters": " <prompt>",
+ "aliases": [ "chatgpt", "openai", "chat" ],
+ "exempt": false
+} \ No newline at end of file
diff --git a/help/reboot.json b/help/reboot.json
new file mode 100644
index 0000000..cf2edb4
--- /dev/null
+++ b/help/reboot.json
@@ -0,0 +1,6 @@
+{
+ "description": "Restarts the bot to update the source code.",
+ "parameters": "",
+ "aliases": [ "restart", "reload", "re" ],
+ "exempt": false
+} \ No newline at end of file
diff --git a/index.js b/index.js
index 9b700ad..de676ce 100644
--- a/index.js
+++ b/index.js
@@ -82,6 +82,6 @@ for (let helpFile of fs.readdirSync("./help")) {
}
}
-require('./matrix');
+//require('./matrix');
require('./discord');
require('./signal'); \ No newline at end of file
diff --git a/package.json b/package.json
index bcdeb33..339df06 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"scripts": {
- "start": "nodemon -i ./cache -i ./cache/lastMessages.json -i ./cache/ratelimits.json -i ./cache/score.json index.js"
+ "start": "./start.sh"
},
"dependencies": {
"@equestria.dev/signal.js": "^1.1.0-rc.2",
diff --git a/signal.js b/signal.js
index b18bbbe..3335148 100644
--- a/signal.js
+++ b/signal.js
@@ -45,7 +45,7 @@ function startSignal() {
} catch (e) {
send(msg.channel, "❓ Hmm, something isn't quite right! I was trying to process your message and something wrong happened. I think you need to report this so it can be fixed!\n\n```plaintext\n" + e.stack + "\n```");
}
- } else if (msg.mentions.map(i => i.number).includes(require('./credentials.json').signal)) {
+ } else if (msg.mentions?.map(i => i.number).includes(require('./credentials.json').signal)) {
send(msg.channel, "👋 Hello! I think you forgot my prefix is `.`, use `.help` to get help.");
}
});
diff --git a/start.sh b/start.sh
new file mode 100644
index 0000000..4c2bd9b
--- /dev/null
+++ b/start.sh
@@ -0,0 +1,13 @@
+#!/bin/bash
+x_start_butterscotch () {
+ node index.js
+
+ if [ $? -eq 158 ]; then
+ echo "Bot was asked to restart"
+ x_start_butterscotch
+ else
+ echo "Bot wasn't asked to restart, not restarting"
+ fi
+}
+
+x_start_butterscotch \ No newline at end of file