import { logger } from "./inc/log.js"; import { read } from "./inc/cfg.js"; import { wrapper, clients } from "./inc/wrapper.js"; const vm = require("vm"); read().then(() => { let bot = new wrapper(); bot.on("message", e => { // Todo: eventhandler let orig = e.message; let tmp = orig.split(" "); tmp.shift(); let args = tmp; args[0] = (args[0] == String.empty || typeof args[0] === "undefined" || args[0] == "") ? e.user.nick : args[0]; if (e.message.match(/^\.js /)) { // JS-Sandbox args = e.message.substring(3); const context = { e: e, c: clients }; try { let output = vm.runInNewContext(args, context); if(typeof output !== undefined && output) { output = JSON.stringify(output); if (output !== "Converting circular structure to JSON") { e.reply(output.length > 400 ? `holy fuck, Ausgabe wäre viel zu lang! (${output.length} Zeichen :DDDDDD)` : output); } } } catch (err) { e.reply(err.message); } } else if (e.message.match(/^\.kaffee/)) { var Texte = [ `serviert ${args.join(" ")} einen frisch gebrühten Kaffee aus aromatisch hochwertigen und laktosefreien Kaffeebohnen, die nach dem Vorbild der kolonisierten Ausbeutung herangewachsen und importiert worden sind`, `serviert ${args.join(" ")} einen frisch gebrühten Kaffee aus aromatisch minderwertigen Kaffeebohnen, die zu einem überhöhten Preis und nach dem Prinzip des Fairtrade® herangewachsen und importiert worden sind` ]; e.replyAction(`${Texte[~~((Math.random() * Texte.length))]}; Prost!`); } else if (e.message.match(/^\.abschieben/)) { let Dest = [ "nach Syrien", "in die Ukraine", "nach Timbuktu", "nach Uruguay", "nach Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch", "nach Bagdad", "nach Nordkorea", "nach Kurdistan", "nach Bayern", "nach Japan", "nach Irak", "in den Iran", "nach Saudi-Arabien", "nach Libyen", "nach Niger", "nach Uganda", "nach Afghanistan" ]; e.replyAction(`schiebt ${args[0]} ${Dest[~~(Math.random() * Dest.length)]} ab.`); } else if (e.message.match(/^\.butterkäse/)) { e.replyAction(`drischt mit einem großen Stück Butterkäse auf ${args[0]} ein.`); } logger.info(`${e.network} -> ${e.channel} -> ${e.user.nick}: ${e.message}`); }); bot.on("ctcp:version", e => { e.write(`notice ${e.user.nick} :\u0001VERSION Pimmel 2.1\u0001`); }); });