X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=data%2Frbot%2Fplugins%2Fscript.rb;h=2d730fe92c426cb8cd012a3d03ae0db9d0ba35e5;hb=0ed9bf788d778eba03d65ad19cea6c0a5c432870;hp=5e2f1e58e1b9140eac4cfabae9a2e17384dfde70;hpb=5f58c780eea198c68e8b9528c9c07cca0f401257;p=user%2Fhenk%2Fcode%2Fruby%2Frbot.git diff --git a/data/rbot/plugins/script.rb b/data/rbot/plugins/script.rb index 5e2f1e58..2d730fe9 100644 --- a/data/rbot/plugins/script.rb +++ b/data/rbot/plugins/script.rb @@ -41,6 +41,12 @@ class ScriptPlugin < Plugin end end + def report_error(m, name, e) + # ed = e.backtrace.unshift(e.inspect).join(' ') + ed = e.inspect + m.reply( "Script '#{name}' crapped out :( #{ed}" ) + end + def listen( m ) name = m.message.split.first @@ -60,39 +66,39 @@ class ScriptPlugin < Plugin begin eval( code ) rescue Exception => e - m.reply( "Script '#{name}' crapped out :(" ) - m.reply( e.inspect ) + report_error(m, name, e) end } + m.replied = true end end def handle_eval( m, params ) code = params[:code].to_s.dup.untaint - Thread.start { - # TODO allow different safe levels for different botusers - begin - eval( code ) - rescue Exception => e - m.reply( "Script '#{name}' crapped out :(" ) - m.reply( e.inspect ) - end - } + Thread.start { + # TODO allow different safe levels for different botusers + begin + eval( code ) + rescue Exception => e + report_error(m, code, e) + end + } + m.replied = true end def handle_echo( m, params ) code = params[:code].to_s.dup.untaint - Thread.start { - # TODO allow different safe levels for different botusers - begin - m.reply eval( code ).to_s - rescue Exception => e - m.reply( "Script '#{name}' crapped out :(" ) - m.reply( e.inspect ) - end - } + Thread.start { + # TODO allow different safe levels for different botusers + begin + m.reply eval( code ).to_s + rescue Exception => e + report_error(m, code, e) + end + } + m.replied = true end @@ -111,7 +117,7 @@ class ScriptPlugin < Plugin command = Command.new( code, nick, created, channel ) @commands[name] = command - m.reply( "done" ) + m.okay end @@ -127,7 +133,7 @@ class ScriptPlugin < Plugin end @commands.delete( name ) - m.reply( "done" ) + m.okay end