App-CryptoCurrencyUtils
view release on metacpan or search on metacpan
lib/App/CryptoCurrencyUtils.pm view on Meta::CPAN
my $cat = CryptoCurrency::Catalog->new;
CURRENCY:
for my $cur0 (@{ $args{coins} }) {
my $cur;
{
eval { $cur = $cat->by_code($cur0) };
last if $cur;
eval { $cur = $cat->by_name($cur0) };
last if $cur;
warn "No such cryptocurrency code/name '$cur0'";
next CURRENCY;
}
require Browser::Open;
my $url = "https://coinmarketcap.com/currencies/$cur->{safename}/";
my $err = Browser::Open::open_browser($url);
return [500, "Can't open browser for '$url'"] if $err;
}
[200];
}
$SPEC{open_coin_mno} = {
v => 1.1,
summary => "Open coin's MNO (masternodes.online) currency page in the browser",
description => <<'_',
Currently does not perform any translation between CMC -> MNO currency code if
there is a difference.
_
args => {
%arg_coins,
},
};
sub open_coin_mno {
require CryptoCurrency::Catalog;
require URI::Escape;
my %args = @_;
my $cat = CryptoCurrency::Catalog->new;
CURRENCY:
for my $cur0 (@{ $args{coins} }) {
my $cur;
{
eval { $cur = $cat->by_code($cur0) };
last if $cur;
eval { $cur = $cat->by_name($cur0) };
last if $cur;
warn "No such cryptocurrency code/name '$cur0'";
next CURRENCY;
}
require Browser::Open;
my $url = "https://masternodes.online/currencies/" .
URI::Escape::uri_escape($cur->{code})."/";
my $err = Browser::Open::open_browser($url);
return [500, "Can't open browser for '$url'"] if $err;
}
[200];
}
$SPEC{open_exchange_cmc} = {
v => 1.1,
summary => "Open exchange's CMC (coinmarketcap.com) exchange page in the browser",
args => {
%arg_exchanges,
},
};
sub open_exchange_cmc {
require CryptoExchange::Catalog;
my %args = @_;
my $cat = CryptoExchange::Catalog->new;
CURRENCY:
for my $xchg0 (@{ $args{exchanges} }) {
my $xchg;
{
eval { $xchg = $cat->by_name($xchg0) };
last if $xchg;
warn "No such cryptoexchange name '$xchg0'";
next CURRENCY;
}
require Browser::Open;
my $url = "https://coinmarketcap.com/exchanges/$xchg->{safename}/";
my $err = Browser::Open::open_browser($url);
return [500, "Can't open browser for '$url'"] if $err;
}
[200];
}
$SPEC{list_coins} = {
v => 1.1,
summary => "List cryptocurrency coins",
description => <<'_',
This utility lists coins from <pm:CryptoCurrency::Catalog>, which in turn gets
its list from <https://coinmarketcap.com/>.
_
args => {
codes => {
summary => 'Only list codes',
schema => 'true*',
},
safenames => {
summary => 'Only list safenames',
schema => 'true*',
},
names => {
summary => 'Only list names',
schema => 'true*',
},
( run in 1.768 second using v1.01-cache-2.11-cpan-39bf76dae61 )