+ def handle_allow_deny(m, p)
+ name = p[:stuff]
+ if @commands.has_key?( name )
+ @bot.plugins['auth'].auth_allow_deny(m, p.merge(
+ :auth_path => "script::run::#{name}".intern
+ ))
+ else
+ m.reply(_("%{stuff} is not a script I know of") % p)
+ end
+ end
+
+ def handle_allow(m, p)
+ handle_allow_deny(m, p.merge(:allow => true))
+ end
+
+ def handle_deny(m, p)
+ handle_allow_deny(m, p.merge(:allow => false))
+ 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
+ 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
+ report_error(m, code, e)
+ end
+ }
+ m.replied = true
+ end
+