summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaindropsSys <contact@minteck.org>2023-05-24 21:59:05 +0200
committerRaindropsSys <contact@minteck.org>2023-05-24 21:59:05 +0200
commita58e83a4ad1e7686d94e26d06a582a47606efb2a (patch)
tree3e41bced9e09e2ed52cb1eb6fadec7b57da02298
parentcf643205ad8838d224c1a912d28fe3d46108473b (diff)
downloadbutterscotch-a58e83a4ad1e7686d94e26d06a582a47606efb2a.tar.gz
butterscotch-a58e83a4ad1e7686d94e26d06a582a47606efb2a.tar.bz2
butterscotch-a58e83a4ad1e7686d94e26d06a582a47606efb2a.zip
Updated 3 files and added 2 files (automated)
-rw-r--r--commands/score.js10
-rw-r--r--help/score.json6
-rw-r--r--index.js17
-rw-r--r--matrix.js44
-rw-r--r--package.json2
5 files changed, 77 insertions, 2 deletions
diff --git a/commands/score.js b/commands/score.js
new file mode 100644
index 0000000..e69a136
--- /dev/null
+++ b/commands/score.js
@@ -0,0 +1,10 @@
+const axios = require("axios");
+
+module.exports = (parameter, wrapper) => {
+ if (wrapper.sender !== "@cloudburst:equestria.dev" && wrapper.sender !== "@raindrops:equestria.dev" && wrapper.sender !== "186730180872634368" && wrapper.sender !== "493845599469174794") {
+ wrapper.send("⛔️ This command is private and you are not allowed to use it.");
+ return;
+ }
+
+ wrapper.send("💘 The current love score is **" + score['percentage'].toFixed(2) + "%**.");
+} \ No newline at end of file
diff --git a/help/score.json b/help/score.json
new file mode 100644
index 0000000..f25d432
--- /dev/null
+++ b/help/score.json
@@ -0,0 +1,6 @@
+{
+ "description": "Shows the current love score.",
+ "parameters": "",
+ "aliases": [ "sc", "love", "l" ],
+ "exempt": false
+} \ No newline at end of file
diff --git a/index.js b/index.js
index 0e6dcac..72d7f63 100644
--- a/index.js
+++ b/index.js
@@ -3,6 +3,7 @@ const fs = require("fs");
if (!fs.existsSync("cache")) fs.mkdirSync("cache");
if (!fs.existsSync("cache/lastMessages.json")) fs.writeFileSync("cache/lastMessages.json", "{}");
if (!fs.existsSync("cache/ratelimits.json")) fs.writeFileSync("cache/ratelimits.json", `{"month":{},"day":{},"hour":{},"minute":{}}`);
+if (!fs.existsSync("cache/score.json")) fs.writeFileSync("cache/score.json", `{"history":{},"score":0,"percentage":0}`);
try {
global.lastMessages = JSON.parse(fs.readFileSync("cache/lastMessages.json").toString());
@@ -16,12 +17,20 @@ global.aliases = {};
try {
global.ratelimits = JSON.parse(fs.readFileSync("cache/ratelimits.json").toString());
} catch (e) {
- fs.writeFileSync("cache/ratelimits.json", "{}");
+ fs.writeFileSync("cache/ratelimits.json", "{\"month\":{},\"day\":{},\"hour\":{},\"minute\":{}}");
global.ratelimits = JSON.parse(fs.readFileSync("cache/ratelimits.json").toString());
}
+try {
+ global.score = JSON.parse(fs.readFileSync("cache/score.json").toString());
+} catch (e) {
+ fs.writeFileSync("cache/score.json", "{\"history\":{},\"score\":0,\"percentage\":0}");
+ global.score = JSON.parse(fs.readFileSync("cache/score.json").toString());
+}
+
let lastSavedLastMessages = JSON.stringify(lastMessages);
let lastSavedRateLimits = JSON.stringify(ratelimits);
+let lastSavedScore = JSON.stringify(score);
global.maxCredits = {
month: 400
@@ -39,6 +48,12 @@ setInterval(() => {
fs.writeFileSync("cache/lastMessages.json", JSON.stringify(lastMessages));
lastSavedLastMessages = JSON.stringify(lastMessages);
}
+
+ if (JSON.stringify(score) !== lastSavedScore) {
+ console.log("Saving score");
+ fs.writeFileSync("cache/score.json", JSON.stringify(score));
+ lastSavedScore = JSON.stringify(score);
+ }
}, 1000);
for (let helpFile of fs.readdirSync("./help")) {
diff --git a/matrix.js b/matrix.js
index 3ce141d..1d78faa 100644
--- a/matrix.js
+++ b/matrix.js
@@ -82,6 +82,50 @@ function startMatrix() {
if (!lastMessages[room.roomId]) lastMessages[room.roomId] = [];
lastMessages[room.roomId].unshift(event.event.content.body);
lastMessages[room.roomId] = lastMessages[room.roomId].splice(0, 5);
+
+ let text = event.event.content.body.toLowerCase();
+
+ if (event.event.sender === "@cloudburst:equestria.dev" || event.event.sender === "@raindrops:equestria.dev") {
+ if (text.includes("...")) {
+ score['score'] -= text.replace(/[^.]/gm, "").length;
+ } else if (text.includes("bye")) {
+ score['score'] -= 50;
+ } else if (text.endsWith(".")) {
+ score['score'] -= 10;
+ } else if (text.match(/^\*(.*)\*$/gm)) {
+ score['score'] += 2;
+ } else if (text.includes("❤")) {
+ score['score'] += text.replace(/[^❤]/gm, "").length;
+ } else if (text.includes("hehe")) {
+ score['score'] += 2;
+ } else if (text.includes("pff")) {
+ score['score'] += 2;
+ } else if (text.includes("cutie")) {
+ score['score'] += 2;
+ } else if (text.includes("sweetie")) {
+ score['score'] += 2;
+ } else if (text.includes("sis")) {
+ score['score'] += 2;
+ } else if (text.includes("hehehehe")) {
+ score['score'] += 4;
+ } else if (text.includes("hehehe")) {
+ score['score'] += 3;
+ } else if (text.includes("/s")) {
+ score['score'] += 3;
+ } else if (text.includes("love you")) {
+ score['score'] += 5;
+ } else if (text.includes("love u")) {
+ score['score'] += 5;
+ } else if (text.includes("^c^")) {
+ score['score'] += 3;
+ }
+
+ if (Math.floor(score['percentage']) > Math.floor(score['score'] / 20)) {
+ matrixSend(room.roomId, "🎉 Congrats! Your love score is now at " + Math.floor(score['score'] / 20) + ", keep it up!");
+ }
+
+ score['percentage'] = score['score'] / 20;
+ }
}
}
});
diff --git a/package.json b/package.json
index a966b2d..856fe61 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"scripts": {
- "start": "nodemon -i ./cache index.js"
+ "start": "nodemon -i ./cache -i ./cache/lastMessages.json -i ./cache/ratelimits.json -i ./cache/score.json index.js"
},
"dependencies": {
"axios": "^1.4.0",