diff --git a/package.json b/package.json index 0c3b371..6b3390d 100644 --- a/package.json +++ b/package.json @@ -11,8 +11,8 @@ "author": "Flummi & jkhsjdhjs", "license": "WTFPL", "dependencies": { - "cuffeo": "^1.0.2", - "flumm-fetch-cookies": "^1.1.1", + "cuffeo": "^1.0.4", + "flumm-fetch-cookies": "^1.3.4", "pg": "^7.14.0", "stringify-object": "^3.3.0" } diff --git a/src/inc/trigger/hetzner.mjs b/src/inc/trigger/hetzner.mjs new file mode 100644 index 0000000..ecce617 --- /dev/null +++ b/src/inc/trigger/hetzner.mjs @@ -0,0 +1,47 @@ +import fetch from "flumm-fetch-cookies"; +import config from "../../../cfg/config.json"; + +const api = `https://robot-ws.your-server.de`; +const auth = { + headers: { + Authorization: `Basic ${Buffer.from(config.apis.hetzner.user + ":" + config.apis.hetzner.pwd).toString("base64")}` + } +}; + +export default async bot => { + + return [{ + name: "hz", + call: /^(\.|\/)hz/i, + f: async e => { + switch(e.args[0]) { + case "traffic": + const now = { + year: new Date().getFullYear(), + month: new Date().getMonth() + 1 + }; + const opts = { + ...auth, + method: "POST", + body: { + type: "month", + from: `${now.year}-${now.month}-01`, + to: `${now.year}-${now.month}-32`, + "subnet[]": config.apis.hetzner.subnets + } + }; + const res = await (await fetch(`${api}/traffic`, opts)).json(); + const traffic = { + in: Object.keys(res.traffic.data).reduce((a, b) => a + res.traffic.data[b].in, 0).toFixed(2), + out: Object.keys(res.traffic.data).reduce((a, b) => a + res.traffic.data[b].out, 0).toFixed(2), + sum: Object.keys(res.traffic.data).reduce((a, b) => a + res.traffic.data[b].sum, 0).toFixed(2) + }; + e.reply(`Traffic (${now.year}-${now.month}) in GiB: rx: ${traffic.in} tx: ${traffic.out} total: ${traffic.sum}`); + break; + default: + // prints help + break; + } + } + }]; +}; diff --git a/src/inc/trigger/useless_nxy.mjs b/src/inc/trigger/useless_nxy.mjs index 971084e..5de5618 100644 --- a/src/inc/trigger/useless_nxy.mjs +++ b/src/inc/trigger/useless_nxy.mjs @@ -25,7 +25,7 @@ export default async bot => { usage: "[b].kiss[/b] [i]()[/i]" }, f: e => { - e.reply(`(づ。◕‿‿◕。)づ" [color=red]。。・゜゜・。。・゜❤[/color] [b]${e.args[0] || e.user.nick}[/b] [color=red]❤[/color]`); + e.reply(`(づ。◕‿‿◕。)づ" [color=red]。。・゜゜・。。・゜❤[/color] [b]${e.args.join(" ") || e.user.nick}[/b] [color=red]❤[/color]`); } }, { name: "hug", @@ -36,7 +36,7 @@ export default async bot => { usage: "[b].hug[/b] [i]()[/i]" }, f: e => { - e.reply(`[color=red]♥♡❤♡♥[/color] [b]${e.args[0] || e.user.nick}[/b] [color=red]♥♡❤♡♥[/color]`); + e.reply(`[color=red]♥♡❤♡♥[/color] [b]${e.args.join(" ") || e.user.nick}[/b] [color=red]♥♡❤♡♥[/color]`); } }, { name: "kill", @@ -44,7 +44,7 @@ export default async bot => { set: "nxy", f: e => { e.replyAction(data.kill_templates[~~(Math.random() * data.kill_templates.length)] - .replace("{user}", `[b]${e.args[0] || e.user.nick}[/b]`) + .replace("{user}", `[b]${e.args.join(" ") || e.user.nick}[/b]`) .replace("{limbs}", data.kill_parts.limbs[~~(Math.random() * data.kill_parts.limbs.length)]) .replace("{gun}", data.kill_parts.gun[~~(Math.random() * data.kill_parts.gun.length)]) .replace("{weapon_stab}", data.kill_parts.weapon_stab[~~(Math.random() * data.kill_parts.weapon_stab.length)]) @@ -62,7 +62,7 @@ export default async bot => { set: "nxy", f: e => { e.replyAction(data.yiff[~~(Math.random() * data.yiff.length)] - .split("{user}").join(`[b]${e.args[0] || e.user.nick}[/b]`) + .split("{user}").join(`[b]${e.args.join(" ") || e.user.nick}[/b]`) .split("{yiffer}").join(`[b]${e.user.nick}[/b]`) .split("{nick}").join(`[b]${e.self.me.nickname}[/b]`) .split("{channel}").join(`${e.channel}`) @@ -73,14 +73,14 @@ export default async bot => { call: /^(\.|\/)bier/i, set: "nxy", f: e => { - e.replyAction(`schenkt ein kühles Blondes an [b]${e.args[0] || e.user.nick}[/b] aus.`); + e.replyAction(`schenkt ein kühles Blondes an [b]${e.args.join(" ") || e.user.nick}[/b] aus.`); } }, { name: "fucken", call: /^(\.|\/)fucken/i, set: "nxy", f: e => { - const user = e.args[0] || e.user.nick; + const user = e.args.join(" ") || e.user.nick; e.replyAction(`fuckt [b]${user}[/b] und tötet [b]${user}[/b] anschließend.`); } }, { @@ -88,21 +88,21 @@ export default async bot => { call: /^(\.|\/)hack/i, set: "nxy", f: e => { - e.reply(`hacking ${e.args[0] || e.user.nick}...`); + e.reply(`hacking ${e.args.join(" ") || e.user.nick}...`); } }, { name: "spit", call: /^(\.|\/)spit/i, set: "nxy", f: e => { - e.replyAction(`spits on [b]${e.args[0] || e.user.nick}[/b] like a dirty whore.`); + e.replyAction(`spits on [b]${e.args.join(" ") || e.user.nick}[/b] like a dirty whore.`); } }, { name: "assume", call: /^(\.|\/)assume/i, set: "nxy", f: e => { - e.reply(`Assuming [b]${e.args[0] || e.user.nick}'s[/b] gender... it's a ${data.genders[~~(Math.random() * data.genders.length)]}.`); + e.reply(`Assuming [b]${e.args.join(" ") || e.user.nick}'s[/b] gender... it's a ${data.genders[~~(Math.random() * data.genders.length)]}.`); } }, { name: "jn", @@ -160,7 +160,7 @@ export default async bot => { set: "nxy", f: e => { e.replyAction(data.slap[~~(Math.random() * data.slap.length)] - .replace("{user}", `[b]${e.args[0] || e.user.nick}[/b]`) + .replace("{user}", `[b]${e.args.join(" ") || e.user.nick}[/b]`) ); } }, { @@ -200,7 +200,7 @@ export default async bot => { call: /^(\.|\/)asshole/i, set: "nxy", f: e => { - e.reply(`Jamba Arschlochscanner: [b]${e.args[0] || e.user.nick}[/b] ist zu ${~~(Math.random() * 100 + 1)}% ein Arschloch.`); + e.reply(`Jamba Arschlochscanner: [b]${e.args.join(" ") || e.user.nick}[/b] ist zu ${~~(Math.random() * 100 + 1)}% ein Arschloch.`); } }, { name: "isup", @@ -219,9 +219,8 @@ export default async bot => { }, { name: "einschlaefern", call: /^(\.|\/)einschläfern/i, - set: "nxy", f: e => { - e.replyAction(`schläfert [b]${e.args[0] || e.user.nick}[/b] mit einer Spritze Ketamin ein.`); + e.replyAction(`schläfert [b]${e.args.join(" ") || e.user.nick}[/b] mit einer Spritze Ketamin ein.`); } }]; }; diff --git a/src/inc/trigger/useless_uwe.mjs b/src/inc/trigger/useless_uwe.mjs index 0e3e879..db8e115 100644 --- a/src/inc/trigger/useless_uwe.mjs +++ b/src/inc/trigger/useless_uwe.mjs @@ -23,21 +23,21 @@ export default async bot => { call: /^(\.|\/)abschieben/i, set: "uwe", f: e => { - e.replyAction(`schiebt [b]${e.args[0] || e.user.nick}[/b] ${data.abschieben[~~(Math.random() * data.abschieben.length)]} ab.`); + e.replyAction(`schiebt [b]${e.args.join(" ") || e.user.nick}[/b] ${data.abschieben[~~(Math.random() * data.abschieben.length)]} ab.`); } }, { name: "butterkäse", call: /^(\.|\/)butterkäse/i, set: "uwe", f: e => { - e.replyAction(`drischt mit einem großen Stück Butterkäse auf [b]${e.args[0] || e.user.nick}[/b] ein.`); + e.replyAction(`drischt mit einem großen Stück Butterkäse auf [b]${e.args.join(" ") || e.user.nick}[/b] ein.`); } }, { name: "notschlachten", call: /^(\.|\/)notschlachten/i, set: "uwe", f: e => { - e.replyAction(`notschlachtet [b]${e.args[0] || e.user.nick}[/b] und entsorgt die Leiche im Biomüll`); + e.replyAction(`notschlachtet [b]${e.args.join(" ") || e.user.nick}[/b] und entsorgt die Leiche im Biomüll`); } }, { name: "lachs", @@ -51,28 +51,28 @@ export default async bot => { call: /^(\.|\/)kaffee/i, set: "uwe", f: e => { - e.replyAction(data.kaffee[~~(Math.random() * data.kaffee.length)].replace("{user}", `[b]${e.args[0] || e.user.nick}[/b]`)); + e.replyAction(data.kaffee[~~(Math.random() * data.kaffee.length)].replace("{user}", `[b]${e.args.join(" ") || e.user.nick}[/b]`)); } }, { name: "milch", - call: /^(\.|\/)milch/i, + call: /^(\.|\/)milch /i, set: "uwe", f: e => { - e.replyAction(data.milch[~~(Math.random() * data.milch.length)].replace("{user}", `[b]${e.args[0] || e.user.nick}[/b]`)); + e.replyAction(data.milch[~~(Math.random() * data.milch.length)].replace("{user}", `[b]${e.args.join(" ") || e.user.nick}[/b]`)); } }, { name: "milchkaffee", call: /^(\.|\/)milchkaffee/i, set: "uwe", f: e => { - e.replyAction(`serviert [b]${e.args[0] || e.user.nick}[/b] einen heißen halbschwarzen Kaffee mit 99% Kondensmilchanteil.`); + e.replyAction(`serviert [b]${e.args.join(" ") || e.user.nick}[/b] einen heißen halbschwarzen Kaffee mit 99% Kondensmilchanteil.`); } }, { name: "tee", call: /^(\.|\/)tee/i, set: "uwe", f: e => { - e.replyAction(data.tee[~~(Math.random() * data.tee.length)].replace("{user}", `[b]${e.args[0] || e.user.nick}[/b]`)); + e.replyAction(data.tee[~~(Math.random() * data.tee.length)].replace("{user}", `[b]${e.args.join(" ") || e.user.nick}[/b]`)); } }, { name: "uwe_quotes", @@ -86,35 +86,35 @@ export default async bot => { call: /^(\.|\/)wusel/i, set: "uwe", f: e => { - e.replyAction(`wuselt [b]${e.args[0] || e.user.nick}[/b] über den Haufen.`); + e.replyAction(`wuselt [b]${e.args.join(" ") || e.user.nick}[/b] über den Haufen.`); } }, { name: "mett", call: /^(\.|\/)mett/i, set: "uwe", f: e => { - e.reply(`Jamba Mettscanner: [b]${e.args[0] || e.user.nick}[/b] ist zu ${~~(Math.random() * 100 + 1)}% Mett.`); + e.reply(`Jamba Mettscanner: [b]${e.args.join(" ") || e.user.nick}[/b] ist zu ${~~(Math.random() * 100 + 1)}% Mett.`); } }, { name: "unfaehig", call: /^(\.|\/)unfähig/i, set: "uwe", f: e => { - e.reply(`Jamba Fähigkeitenscanner: [b]${e.args[0] || e.user.nick}[/b] ist zu ${~~(Math.random() * 100 + 1)}% unfähig.`); + e.reply(`Jamba Fähigkeitenscanner: [b]${e.args.join(" ") || e.user.nick}[/b] ist zu ${~~(Math.random() * 100 + 1)}% unfähig.`); } }, { name: "rotenburg", call: /^(\.|\/)rotenburg/i, set: "uwe", f: e => { - e.replyAction(`verarbeitet [b]${e.args[0] || e.user.nick}[/b] zu Hackfleisch.`); + e.replyAction(`verarbeitet [b]${e.args.join(" ") || e.user.nick}[/b] zu Hackfleisch.`); } }, { name: "pee", call: /^(\.|\/)pee/i, set: "uwe", f: e => { - e.replyAction(`pisst in [b]${e.args[0] || e.user.nick}[/b]s Gesicht.`); + e.replyAction(`pisst in [b]${e.args.join(" ") || e.user.nick}[/b]s Gesicht.`); } }, { name: "ike", @@ -135,14 +135,14 @@ export default async bot => { call: /^(\.|\/)haram/i, set: "uwe", f: e => { - e.reply(`[b]${e.args[0] || e.user.nick}[/b] ist ${(~~(Math.random() * 2) ? "haram" : "nicht haram")}.`); + e.reply(`[b]${e.args.join(" ") || e.user.nick}[/b] ist ${(~~(Math.random() * 2) ? "haram" : "nicht haram")}.`); } }, { name: "sacklutscher", call: /^(\.|\/)lutschsack/i, set: "uwe", f: e => { - e.reply(`[b]${e.user.nick}[/b] legt Rosen aus und lutscht den Sack von [b]${e.args[0] || e.user.nick}[/b]`); + e.reply(`[b]${e.user.nick}[/b] legt Rosen aus und lutscht den Sack von [b]${e.args.join(" ") || e.user.nick}[/b]`); } }, { name: "kawaii", @@ -170,14 +170,14 @@ export default async bot => { call: /^(\.|\/)wasser/i, set: "uwe", f: e => { - e.replyAction(`kippt [b]${e.args[0] || e.user.nick}[/b] einen Eimer Wasser über den Kopf.`); + e.replyAction(`kippt [b]${e.args.join(" ") || e.user.nick}[/b] einen Eimer Wasser über den Kopf.`); } }, { name: "normie", call: /^(\.|\/)normie/i, set: "uwe", f: e => { - e.reply(`Jamba Normiescanner: [b]${e.args[0] || e.user.nick}[/b] ist zu ${~~(Math.random() * 100 + 1)}% ein Normie.`); + e.reply(`Jamba Normiescanner: [b]${e.args.join(" ") || e.user.nick}[/b] ist zu ${~~(Math.random() * 100 + 1)}% ein Normie.`); } }, { name: "hyper", @@ -198,49 +198,49 @@ export default async bot => { call: /^(\.|\/)meditieren/i, set: "uwe", f: e => { - e.replyAction(`meditiert zusammen mit [b]${e.args[0] || e.user.nick}[/b] Metta.`); + e.replyAction(`meditiert zusammen mit [b]${e.args.join(" ") || e.user.nick}[/b] Metta.`); } }, { name: "duden", call: /^(\.|\/)duden/i, set: "uwe", f: e => { - e.replyAction(`drischt mit einem großen Duden auf [b]${e.args[0] || e.user.nick}[/b] ein.`); + e.replyAction(`drischt mit einem großen Duden auf [b]${e.args.join(" ") || e.user.nick}[/b] ein.`); } }, { name: "kscht", call: /^(\.|\/)kscht/i, set: "uwe", f: e => { - e.replyAction(`jagt [b]${e.args[0] || e.user.nick}[/b] durch den Raum.`); + e.replyAction(`jagt [b]${e.args.join(" ") || e.user.nick}[/b] durch den Raum.`); } }, { name: "bullenpisse", call: /^(\.|\/)bullenpisse/i, set: "uwe", f: e => { - e.replyAction(`zapft ein Fläschchen feinsten Bullenurin, verarbeitet diesen zu Red-Bull und serviert ihn [b]${e.args[0] || e.user.nick}[/b] in Form einer Pfanddose.`); + e.replyAction(`zapft ein Fläschchen feinsten Bullenurin, verarbeitet diesen zu Red-Bull und serviert ihn [b]${e.args.join(" ") || e.user.nick}[/b] in Form einer Pfanddose.`); } }, { name: "lungenkrebs", call: /^(\.|\/)lungenkrebs/i, set: "uwe", f: e => { - e.replyAction(`dreht [b]${e.args[0] || e.user.nick}[/b] einen prall gefüllten Sargnagel mit feinstem Schwarzer Krauser.`); + e.replyAction(`dreht [b]${e.args.join(" ") || e.user.nick}[/b] einen prall gefüllten Sargnagel mit feinstem Schwarzer Krauser.`); } }, { name: "rose", call: /^(\.|\/)rose/i, set: "uwe", f: e => { - e.replyAction(`schenkt [b]${e.args[0] || e.user.nick}[/b] eine [color=red]~~{~[@}[/color]`); + e.replyAction(`schenkt [b]${e.args.join(" ") || e.user.nick}[/b] eine [color=red]~~{~[@}[/color]`); } }, { name: "wienerle", call: /^(\.|\/)wienerle/i, set: "uwe", f: e => { - e.replyAction(`serviert [b]${e.args[0] || e.user.nick}[/b] ein kaltes Wienerle mit etwas Wurstwasser.`); + e.replyAction(`serviert [b]${e.args.join(" ") || e.user.nick}[/b] ein kaltes Wienerle mit etwas Wurstwasser.`); } }, { name: "joke", @@ -300,35 +300,35 @@ export default async bot => { call: /^(\.|\/)blech/i, set: "uwe", f: e => { - e.replyAction(`bereitet [b]${e.args[0] || e.user.nick}[/b] ein Blech Schore zu. Viel Vergnügen du Siffscheiße.`); + e.replyAction(`bereitet [b]${e.args.join(" ") || e.user.nick}[/b] ein Blech Schore zu. Viel Vergnügen du Siffscheiße.`); } }, { name: "joghurt", call: /^(\.|\/)joghurt/i, set: "uwe", f: e => { - e.replyAction(`spritzt [b]${e.args[0] || e.user.nick}[/b] 500ml Joghurt in den Arsch.`); + e.replyAction(`spritzt [b]${e.args.join(" ") || e.user.nick}[/b] 500ml Joghurt in den Arsch.`); } }, { name: "kelly", call: /^(\.|\/)kelly/i, set: "uwe", f: e => { - e.replyAction(`dreht [b]${e.args[0] || e.user.nick}[/b]'s dreckige Kelly Family Musik leiser und spuckt [b]${e.args[0] || e.user.nick}[/b] ins Gesicht.`); + e.replyAction(`dreht [b]${e.args.join(" ") || e.user.nick}[/b]'s dreckige Kelly Family Musik leiser und spuckt [b]${e.args.join(" ") || e.user.nick}[/b] ins Gesicht.`); } }, { name: "pflaumen", call: /^(\.|\/)pflaumen/i, set: "uwe", f: e => { - e.replyAction(`sieht, wie [b]${e.args[0] || e.user.nick}[/b] Pflaumen aus dem Arsch fallen.`); + e.replyAction(`sieht, wie [b]${e.args.join(" ") || e.user.nick}[/b] Pflaumen aus dem Arsch fallen.`); } }, { name: "quark", call: /^(\.|\/)quark/i, set: "uwe", f: e => { - e.replyAction(`schiebt [b]${e.args[0] || e.user.nick}[/b] 500g dickflüssigen Quark in den soften Arsch.`); + e.replyAction(`schiebt [b]${e.args.join(" ") || e.user.nick}[/b] 500g dickflüssigen Quark in den soften Arsch.`); } }, { name: "shrug", @@ -344,6 +344,14 @@ export default async bot => { f: e => { e.reply("spielt Wiedergeburt aus, legt nxy vom Friedhof in die Monsterzone und beendet seinen Zug."); } + }, { + name: "bible", + call: /^(\.|\/)bible$/i, + active: false, + f: async e => { + const bib = await (await fetch("http://getbible.net/json?version=luther1912")).json(); + e.reply(Object.keys(bib)); + } }]; };