Added an Eval module for evaluating Perl code.
This commit is contained in:
1 parent
b7d6da07b0
commit
064f1099e3
3 files changed
+98
No files matched your search
@@ -14,6 +14,7 @@ the popular Auto IRC bot.
|
|||||||
In this alpha6 release, we have added:
|
In this alpha6 release, we have added:
|
||||||
|
|
||||||
* Added an UNO module for playing the classic game of UNO.
|
* Added an UNO module for playing the classic game of UNO.
|
||||||
|
* Added an Eval module for evaluating Perl code.
|
||||||
|
|
||||||
Bug fixes:
|
Bug fixes:
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ Auto IRC Bot 3.0: Change Log
|
|||||||
|
|
||||||
3.0 Indev
|
3.0 Indev
|
||||||
===============================================================================
|
===============================================================================
|
||||||
|
* Added an Eval module.
|
||||||
* Added an UNO module.
|
* Added an UNO module.
|
||||||
* Added on_part hook.
|
* Added on_part hook.
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,96 @@
|
|||||||
|
# Module: Eval. See below for documentation.
|
||||||
|
# Copyright (C) 2010-2011 Xelhua Development Group, et al.
|
||||||
|
# This program is free software; rights to this code are stated in doc/LICENSE.
|
||||||
|
package M::Eval;
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use API::Std qw(cmd_add cmd_del trans);
|
||||||
|
use API::IRC qw(notice);
|
||||||
|
|
||||||
|
# Initialization subroutine.
|
||||||
|
sub _init {
|
||||||
|
# Create the EVAL command.
|
||||||
|
cmd_add('EVAL', 1, 'cmd.eval', \%M::Eval::HELP_EVAL, \&M::Eval::cmd_eval) or return;
|
||||||
|
|
||||||
|
# Success.
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Void subroutine.
|
||||||
|
sub _void {
|
||||||
|
# Delete the EVAL command.
|
||||||
|
cmd_del('EVAL') or return;
|
||||||
|
|
||||||
|
# Success.
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Help hash for EVAL command. Spanish, German and French translations are needed.
|
||||||
|
our %HELP_EVAL = (
|
||||||
|
'en' => "This command allows you to eval Perl code. USE WITH CAUTION. \2Syntax:\2 EVAL <expression>",
|
||||||
|
);
|
||||||
|
|
||||||
|
# Callback for EVAL command.
|
||||||
|
sub cmd_eval {
|
||||||
|
my ($src, @argv) = @_;
|
||||||
|
|
||||||
|
# Check for needed parameter.
|
||||||
|
if (!defined $argv[0]) {
|
||||||
|
notice($src->{svr}, $src->{nick}, trans('Not enough parameters').q{.});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Evaluate the expression and return the result.
|
||||||
|
my $expr = join ' ', @argv;
|
||||||
|
my $result = eval($expr);
|
||||||
|
if (!defined $result) { $result = 'None'; }
|
||||||
|
|
||||||
|
# Return the result.
|
||||||
|
notice($src->{svr}, $src->{nick}, "Output: $result");
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Start initialization.
|
||||||
|
API::Std::mod_init('Eval', 'Xelhua', '1.00', '3.0.0a6', __PACKAGE__);
|
||||||
|
# vim: set ai sw=4 ts=4:
|
||||||
|
# build: perl=5.010000
|
||||||
|
|
||||||
|
__END__
|
||||||
|
|
||||||
|
=head1 NAME
|
||||||
|
|
||||||
|
Eval - Allows you to evaluate Perl code from IRC
|
||||||
|
|
||||||
|
=head1 VERSION
|
||||||
|
|
||||||
|
1.00
|
||||||
|
|
||||||
|
=head1 SYNOPSIS
|
||||||
|
|
||||||
|
>blue< eval 1;
|
||||||
|
-blue- Output: 1
|
||||||
|
|
||||||
|
=head1 DESCRIPTION
|
||||||
|
|
||||||
|
This module adds the EVAL command which allows you to evaluate Perl code from
|
||||||
|
IRC, returning the output via notice.
|
||||||
|
|
||||||
|
This command may only be used in PM and requires the cmd.eval privilege.
|
||||||
|
|
||||||
|
This module is compatible with Auto v3.0.0a6+.
|
||||||
|
|
||||||
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
This module was written by Elijah Perrault.
|
||||||
|
|
||||||
|
This module is maintained by Xelhua Development Group.
|
||||||
|
|
||||||
|
=head1 LICENSE AND COPYRIGHT
|
||||||
|
|
||||||
|
This module is Copyright 2010-2011 Xelhua Development Group.
|
||||||
|
|
||||||
|
This module is released under the same licensing terms as Auto itself.
|
||||||
|
|
||||||
|
=cut
|
||||||
Reference in new issue
Block a user