mirror of
https://github.com/pragma-/pbot.git
synced 2024-11-22 11:59:43 +01:00
Updated math.pl to perform unit conversions
This commit is contained in:
parent
d7f2eb0d45
commit
7139490067
@ -13,6 +13,7 @@ LWP::Protocol::https
|
|||||||
LWP::Simple
|
LWP::Simple
|
||||||
LWP::UserAgent
|
LWP::UserAgent
|
||||||
LWP::UserAgent::WithCache
|
LWP::UserAgent::WithCache
|
||||||
|
Math::Units
|
||||||
Net::Dict
|
Net::Dict
|
||||||
Proc::ProcessTable
|
Proc::ProcessTable
|
||||||
SOAP::Lite
|
SOAP::Lite
|
||||||
|
@ -2,7 +2,9 @@
|
|||||||
|
|
||||||
# Quick and dirty by :pragma
|
# Quick and dirty by :pragma
|
||||||
|
|
||||||
my ($arguments, $response, $invalid);
|
use Math::Units qw(convert);
|
||||||
|
|
||||||
|
my ($arguments, $response, $invalid, @conversion);
|
||||||
|
|
||||||
my @valid_keywords = (
|
my @valid_keywords = (
|
||||||
'sin', 'cos', 'tan', 'atan', 'exp', 'int', 'hex', 'oct', 'log', 'sqrt',
|
'sin', 'cos', 'tan', 'atan', 'exp', 'int', 'hex', 'oct', 'log', 'sqrt',
|
||||||
@ -22,6 +24,10 @@ my $orig_arguments = $arguments;
|
|||||||
$arguments =~ s/(the )*answer.*question of life(,? the universe and everything)?\s?/42/gi;
|
$arguments =~ s/(the )*answer.*question of life(,? the universe and everything)?\s?/42/gi;
|
||||||
$arguments =~ s/meaning of (life|existence|everything)?/42/gi;
|
$arguments =~ s/meaning of (life|existence|everything)?/42/gi;
|
||||||
|
|
||||||
|
if ($arguments =~ s/([^ ]+)\s+to\s+([^ ]+)\s*$//) {
|
||||||
|
@conversion = ($1, $2);
|
||||||
|
}
|
||||||
|
|
||||||
if($arguments =~ m/([\$`\|{}"'#@=?\[\]])/ or $arguments =~ m/(~~)/) {
|
if($arguments =~ m/([\$`\|{}"'#@=?\[\]])/ or $arguments =~ m/(~~)/) {
|
||||||
$invalid = $1;
|
$invalid = $1;
|
||||||
} else {
|
} else {
|
||||||
@ -49,4 +55,13 @@ if($@) {
|
|||||||
exit 1;
|
exit 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (@conversion) {
|
||||||
|
my $result = eval { convert($response, $conversion[0], $conversion[1]); };
|
||||||
|
if ($@) {
|
||||||
|
print "Unknown conversion from $conversion[0] to $conversion[1]. Units are case-sensitive (Hz, not hz).\n";
|
||||||
|
exit 1;
|
||||||
|
}
|
||||||
|
$response = "$result $conversion[1]";
|
||||||
|
}
|
||||||
|
|
||||||
print "$orig_arguments = $response\n";
|
print "$orig_arguments = $response\n";
|
||||||
|
Loading…
Reference in New Issue
Block a user