diff options
author | RaindropsSys <contact@minteck.org> | 2023-07-28 10:54:49 +0200 |
---|---|---|
committer | RaindropsSys <contact@minteck.org> | 2023-07-28 10:54:49 +0200 |
commit | 201023aff0b5321d7f10ebc3f069a70cc5daa74a (patch) | |
tree | 28b2225ca9e5d324f5b63a38360e846cc7d3461b | |
parent | 039523669cc64b820f483a3c12c8c2eaab9b1351 (diff) | |
download | butterscotch-201023aff0b5321d7f10ebc3f069a70cc5daa74a.tar.gz butterscotch-201023aff0b5321d7f10ebc3f069a70cc5daa74a.tar.bz2 butterscotch-201023aff0b5321d7f10ebc3f069a70cc5daa74a.zip |
Updated 6 files and added 5 files (automated)
-rw-r--r-- | commands/gpt.js | 33 | ||||
-rw-r--r-- | commands/killswitch.js | 5 | ||||
-rw-r--r-- | commands/reboot.js | 10 | ||||
-rw-r--r-- | handler.js | 36 | ||||
-rw-r--r-- | help/_categories.json | 8 | ||||
-rw-r--r-- | help/gpt.json | 6 | ||||
-rw-r--r-- | help/reboot.json | 6 | ||||
-rw-r--r-- | index.js | 2 | ||||
-rw-r--r-- | package.json | 2 | ||||
-rw-r--r-- | signal.js | 2 | ||||
-rw-r--r-- | start.sh | 13 |
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 @@ -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 @@ -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", @@ -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 |