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
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
command = Command.new( code, nick, created, channel )
@commands[name] = command
- m.reply( "done" )
+ m.okay
end
end
@commands.delete( name )
- m.reply( "done" )
+ m.okay
end