From d6a737931aee5de5ea1906a86ab2e60c77ed03e4 Mon Sep 17 00:00:00 2001 From: Flummi Date: Mon, 19 Aug 2019 14:17:35 +0000 Subject: [PATCH] Kram --- src/inc/admin.mjs | 20 ++++++++++++-------- src/inc/events/error.mjs | 10 ++++++++++ src/inc/events/info.mjs | 10 ++++++++++ src/inc/events/message.mjs | 15 ++++++--------- src/inc/trigger/debug.mjs | 8 ++++++++ src/inc/trigger/kernel.mjs | 10 +++------- src/inc/trigger/soundcloud.mjs | 11 ++++------- 7 files changed, 53 insertions(+), 31 deletions(-) create mode 100644 src/inc/events/error.mjs create mode 100644 src/inc/events/info.mjs diff --git a/src/inc/admin.mjs b/src/inc/admin.mjs index f11dcab..5f1ed5a 100644 --- a/src/inc/admin.mjs +++ b/src/inc/admin.mjs @@ -9,13 +9,17 @@ export const getLevel = (network, user) => { return "user has to be an object!"; if (!user.account || !user.prefix) return ret; - for(let admin of config.admins) { - if (admin.account === user.account.toLowerCase() && admin.network === network.toLowerCase()) { - ret = { - level: admin.level, - verified: user.prefix.toLowerCase() === admin.prefix - }; - } - }; + + let admin; + if(admin = config.admins.filter(a => + a.account === user.account.toLowerCase() && + a.network === network.toLowerCase() + )[0]) { + ret = { + level: admin.level, + verified: user.prefix.toLowerCase() === admin.prefix + }; + } + return ret; }; diff --git a/src/inc/events/error.mjs b/src/inc/events/error.mjs new file mode 100644 index 0000000..fcbab34 --- /dev/null +++ b/src/inc/events/error.mjs @@ -0,0 +1,10 @@ +export default async bot => { + + return [{ + name: "error", + listener: "error", + f: e => { + console.log(e); + } + }]; +}; diff --git a/src/inc/events/info.mjs b/src/inc/events/info.mjs new file mode 100644 index 0000000..e4acc9c --- /dev/null +++ b/src/inc/events/info.mjs @@ -0,0 +1,10 @@ +export default async bot => { + + return [{ + name: "info", + listener: "info", + f: e => { + console.log(e); + } + }]; +}; diff --git a/src/inc/events/message.mjs b/src/inc/events/message.mjs index a7184af..a9c7773 100644 --- a/src/inc/events/message.mjs +++ b/src/inc/events/message.mjs @@ -1,11 +1,9 @@ import logger from "../log"; -import { cfg } from "../cfg"; - import { getLevel } from "../../inc/admin"; -const parseArgs = (msg) => { - let args = msg.trim().split(" "); - let cmd = args.shift(); +const parseArgs = msg => { + let args = msg.trim().split(" ") + , cmd = args.shift(); return { cmd: cmd.replace(/^(\.|\/|\!)/, ""), args: args @@ -17,7 +15,9 @@ export default async bot => { return [{ name: "message", listener: "message", - f: e => { + f: (a, e = { ...a, ...parseArgs(a.message) }) => { + logger.info(`${e.network} -> ${e.channel} -> ${e.user.nick}: ${e.message}`); + const trigger = [...bot._trigger.entries()].filter(t => t[1].call.exec(e.message) && t[1].clients.includes(e.type) && @@ -28,7 +28,6 @@ export default async bot => { trigger.forEach(async t => { try { - e = { ...e, ...parseArgs(e.message) }; await t[1].f(e); console.log(`triggered > ${t[0]}`); } @@ -37,8 +36,6 @@ export default async bot => { logger.error(`${e.network} -> ${e.channel} -> ${e.user.nick}: ${error.toString ? error : JSON.stringify(error)}`); } }); - - logger.info(`${e.network} -> ${e.channel} -> ${e.user.nick}: ${e.message}`); } }]; diff --git a/src/inc/trigger/debug.mjs b/src/inc/trigger/debug.mjs index 6df122b..61001e5 100644 --- a/src/inc/trigger/debug.mjs +++ b/src/inc/trigger/debug.mjs @@ -15,6 +15,14 @@ let context = vm.createContext({ export default async bot => { return [{ + name: "level", + call: /^!level (.*)/i, + active: true, + f: e => { + const user = e.message.trim().substring(7); + e.reply( JSON.stringify(getLevel(e.network, e.self.user.geti(user) || {})) ); + } + }, { name: "sandbox_debug", call: /^\!debug (.*)/i, active: true, diff --git a/src/inc/trigger/kernel.mjs b/src/inc/trigger/kernel.mjs index 6165f18..f445736 100644 --- a/src/inc/trigger/kernel.mjs +++ b/src/inc/trigger/kernel.mjs @@ -8,13 +8,9 @@ export default async bot => { name: "kernel", call: /^(\.|\/)kernel/i, set: "nxy", - f: e => { - fetch(feed) - .then(res => res.json()) - .then(content => { - const releases = content.releases; - e.reply(releases.map(entry => `[b]${entry.version}[/b] (${entry.moniker}${entry.iseol ? `, [i]EOL[/i]` : ""})`).join(", ")); - }).catch(err => console.log(err)); + f: async e => { + const res = await (await fetch(feed)).json(); + e.reply(res.releases.map(entry => `[b]${entry.version}[/b] (${entry.moniker}${entry.iseol ? `, [i]EOL[/i]` : ""})`).join(", ")); } }]; }; diff --git a/src/inc/trigger/soundcloud.mjs b/src/inc/trigger/soundcloud.mjs index abdf935..a9e8ffa 100644 --- a/src/inc/trigger/soundcloud.mjs +++ b/src/inc/trigger/soundcloud.mjs @@ -11,13 +11,10 @@ export default async bot => { text: "get random track from Flummi's soundcloud favorites", usage: "[b].scrnd[/b]" }, - f: e => { - fetch(`http://api.soundcloud.com/users/${cfg.main.soundcloud.val.user}/favorites?client_id=${cfg.main.soundcloud.val.clientid}`) - .then(res => res.json()) - .then(res => { - const track = res[~~((Math.random() * res.length) + 1)]; - e.reply(`${track.permalink_url}\n[b]${track.title}[/b] - length [b]${track.duration}[/b] - [b]${track.user.username}[/b] on [b]${track.created_at}[/b]`); - }).catch(err => console.log(err)); + f: async e => { + const res = await (await fetch(`http://api.soundcloud.com/users/${cfg.main.soundcloud.val.user}/favorites?client_id=${cfg.main.soundcloud.val.clientid}`)).json(); + const track = res[~~((Math.random() * res.length) + 1)]; + e.reply(`${track.permalink_url}\n[b]${track.title}[/b] - length [b]${track.duration}[/b] - [b]${track.user.username}[/b] on [b]${track.created_at}[/b]`); } }]; };