#!/usr/bin/env perl
GetOptions(
'api-key=s'
=> \(
my
$opt_api_key
),
'api-secret=s'
=> \(
my
$opt_api_secret
),
'api-server=s'
=> \(
my
$opt_api_server
),
'method=s'
=> \(
my
$opt_method
),
'debug!'
=> \(
my
$opt_debug
),
);
die
"--api-key, --api-secret and --method parameters are required\n"
unless
$opt_api_key
and
$opt_api_secret
and
$opt_method
;
my
$api
= YellowBot::API->new(
api_key
=>
$opt_api_key
,
api_secret
=>
$opt_api_secret
,
api_server
=>
$opt_api_server
);
my
%args
;
for
my
$arg
(
@ARGV
) {
my
(
$key
,
$value
) =
split
m/=/,
$arg
, 2;
die
"invalid key=value pair: $arg"
unless
defined
$value
;
$args
{
$key
} =
$value
;
}
if
(
$opt_debug
) {
$ENV
{API_DEBUG} = 1;
}
my
$response
=
$api
->call(
$opt_method
,
%args
);
for
my
$err_type
(
qw(system_error error)
) {
if
(
$response
->{
$err_type
}) {
print
uc
(
$err_type
),
" "
,
$response
->{
$err_type
},
"\n"
;
exit
2;
}
}
my
$json
= JSON->new->pretty(1)->utf8(1);
print
$json
->encode(
$response
);