2017-11-19 22:03:13 +00:00
import { logger } from "./inc/log.js" ;
2017-11-18 10:53:58 +00:00
import { read } from "./inc/cfg.js" ;
import { wrapper , clients } from "./inc/wrapper.js" ;
const safeEval = require ( "safe-eval" ) ;
2017-11-07 17:22:41 +00:00
read ( ) . then ( ( ) => {
2017-11-08 11:56:04 +00:00
let bot = new wrapper ( ) ;
2017-11-18 10:53:58 +00:00
bot . on ( "message" , e => { // Todo: eventhandler
2017-11-09 14:34:21 +00:00
let orig = e . message ;
let tmp = orig . split ( " " ) ;
tmp . shift ( ) ;
let args = tmp ;
2017-11-18 10:53:58 +00:00
args [ 0 ] = ( args [ 0 ] == String . empty || typeof args [ 0 ] === "undefined" || args [ 0 ] == "" ) ? e . user . nick : args [ 0 ] ;
2017-11-08 21:29:43 +00:00
2017-11-09 14:34:21 +00:00
if ( e . message . match ( /^\.js / ) ) { // JS-Sandbox
args = e . message . substring ( 3 ) ;
var context = {
e : e ,
2017-11-13 20:11:13 +00:00
gf : "nogf" ,
c : clients ,
console : {
log : console . log
}
2017-11-18 10:53:58 +00:00
} ;
2017-11-09 14:34:21 +00:00
try {
var output = safeEval ( args , context ) ;
2017-11-18 10:53:58 +00:00
if ( typeof output !== undefined && output !== "undefined" && output ) {
2017-11-09 14:34:21 +00:00
let blah = JSON . stringify ( output ) ;
2017-11-13 20:11:13 +00:00
if ( blah != "Converting circular structure to JSON" ) {
2017-11-11 22:13:47 +00:00
e . reply ( blah . length > 220 ? ` holy fuck, Ausgabe wäre viel zu lang! ( ${ blah . length } Zeichen :DDDDDD) ` : blah ) ;
2017-11-13 20:11:13 +00:00
}
2017-11-09 11:21:40 +00:00
}
}
2017-11-09 14:34:21 +00:00
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! ` ) ;
2017-11-09 11:21:40 +00:00
}
2017-11-10 09:21:38 +00:00
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. ` ) ;
}
2017-11-19 22:03:13 +00:00
logger . info ( ` ${ e . network } -> ${ e . channel } -> ${ e . user . nick } : ${ e . message } ` ) ;
2017-11-08 11:56:04 +00:00
} ) ;
2017-11-19 22:03:13 +00:00
2017-11-18 10:53:58 +00:00
bot . on ( "ctcp:version" , e => {
e . write ( ` notice ${ e . user . nick } : \u 0001VERSION Pimmel 2.1 \u 0001 ` ) ;
2017-11-09 14:34:21 +00:00
} ) ;
2017-11-08 18:43:08 +00:00
} ) ;