#!/usr/bin/perl
use warnings "all";
use strict;
use POSIX qw(strftime);
# берём курс валют с сайта ЦБ РФ
my $data = `curl -s http://www.cbr.ru/scripts/RssCurrency.asp | iconv -f cp1251 -t utf8`;
$data = (split(/\[CDATA\[ /, $data))[1];
$data = (split(/\]\]/, $data))[0];
my @data = split(/
/, $data);
$data = undef;
my ($usd, $eu, $gbp, $swf, $jy, $chy);
foreach (@data){
if ($_ =~ /^Швейцарский франк/) { $swf = (split(/ \- /, $_))[1]; $swf =~ s/\,/\./; }
if ($_ =~ /^Фунт стерлингов Соединенного королевства/) { $gbp = (split(/ \- /, $_))[1]; $gbp =~ s/\,/\./; }
if ($_ =~ /^Доллар США/) { $usd = (split(/ \- /, $_))[1]; $usd =~ s/\,/\./; }
if ($_ =~ /^Евро/) { $eu = (split(/ \- /, $_))[1]; $eu =~ s/\,/\./; }
if ($_ =~ /^Японская иена/){ $jy = (split(/ \- /, $_))[1]; $jy =~ s/\,/\./; $jy =~ s/
//;}
if ($_ =~ /^Китайский юань/) { $chy = (split(/ \- /, $_))[1]; $chy =~ s/\,/\./; }
}
# Берём цену бочки нефти с портала mfd.ru
my $date = strftime "%d.%m.%Y", localtime;
my $oil = `curl -s -q 'http://mfd.ru/export/handler.ashx/_Brent_Crude_Oil_15min_09122015_09122015.txt?TickerGroup=2&Tickers=1*&Alias=false&Period=4&timeframeValue=1&timeframeDatePart=day&StartDate=$date&EndDate=$date&SaveFormat=0&SaveMode=0&FileName=_Brent_Crude_Oil_15min_09122015_09122015.txt&FieldSeparator=%253b&DecimalSeparator=.&DateFormat=yyyyMMdd&TimeFormat=HHmmss&DateFormatCustom=&TimeFormatCustom=&AddHeader=true&RecordFormat=2&Fill=true'`;
my @a = split(/\n/, $oil);
$oil = $a[@a - 1];
$oil = (split(/;/, $oil))[4];
# берём цену бакса и еврика у альфабанка
$data = `curl -q -s https://alfabank.ru/_/rss/_currency.html|iconv -f cp1251 -t utf8`;
my ($alfadollarbuy, $alfadollarsell, $alfaeurobuy, $alfaeurosell);
if ($data =~ /
(\d+\,?\d*)<\/td>/){
$alfadollarbuy = $1;
$alfadollarbuy =~ s/,/\./;
}
if ($data =~ / | (\d+\,?\d*)<\/td>/){
$alfadollarsell = $1;
$alfadollarsell =~ s/,/\./;
}
if ($data =~ / | (\d+\,?\d*)<\/td>/){
$alfaeurobuy = $1;
$alfaeurobuy =~ s/,/\./;
}
if ($data =~ / | (\d+\,?\d*)<\/td>/){
$alfaeurosell = $1;
$alfaeurosell =~ s/,/\./;
}
# берём цену бакса и еврика у банка москвы
$data = `curl -s -q http://www.bm.ru/ru/personal/services/exchange/`;
my($bmdollarbuy, $bmdollarsell, $bmeurobuy, $bmeurosell);
if($data =~ /Доллар США\s+<\/td>\s+ | \s+(\d\d\,\d\d)\s+<\/td>\s+ | \s+(\d\d\,\d\d)\s+<\/td>/){
$bmdollarsell = $2;
$bmdollarbuy = $1;
$bmdollarsell =~ s/,/\./;
$bmdollarbuy =~ s/,/\./;
}
if($data =~ /ЕВРО\s+<\/td>\s+ | \s+(\d\d\,\d\d)\s+<\/td>\s+ | \s+(\d\d\,\d\d)\s+<\/td>/){
$bmeurosell = $2;
$bmeurobuy = $1;
$bmeurosell =~ s/,/\./;
$bmeurobuy =~ s/,/\./;
}
# берём цену бакса и еврика у райффазена
$data = `curl -s -q http://www.raiffeisen.ru/currency_rates/`;
my ($raifdollarbuy, $raifdollarsell, $raifeurobuy, $raifeurosell);
if($data =~ /"USD":{"UNITS":1,"RUR_BUY":"(\d+\.\d+)","RUR_SALE":"(\d+\.\d+)","USD_BUY":.+,"USD_SALE":1}/){
$raifdollarbuy = $1;
$raifdollarsell = $2;
}
if($data =~ /"EUR":{"UNITS":1,"RUR_BUY":"(\d+\.\d+)","RUR_SALE":"(\d+\.\d+)","USD_BUY":.+,"USD_SALE":.+}/){
$raifeurobuy = $1;
$raifeurosell = $2;
}
# берём цену бакса и еврика у сбера
$data = `curl -s -q http://data.sberbank.ru/moscow/ru/quotes/currencies/?base=beta|iconv -f cp1251 -t utf8`;
my $sberdollarbuy = (split(/\s+, (split (/ | \s*/, $data))[1]))[0];
$sberdollarbu =~ s/,/\./;
my $sberdollarsell = (split(/\s+, (split (/ | \s*/, $data))[2]))[0];
$sberdollarsel =~ s/,/\./;
my $sbereurobuy = (split(/\s+/, (split (/ | \s*/, $data))[3]))[0];
$sbereurobuy =~ s/,/\./;
my $sbereurosell = (split(/\s+/, (split (/ | \s*/, $data))[4]))[0];
$sbereurosel =~ s/,/\./;
# берём цену бакса и еврика у втб24
$data = `curl -s -q 'http://www.vtb24.ru/_vti_bin/Vtb24.Internet/CurrencyRateWebService.svc/GetCurrencyRatesJson?filter=8'`;
my ($vtbdollarbuy, $vtbdollarsell, $vtbeurobuy, $vtbeurosell);
if($data =~ /Buy.:.(\d+\,\d+).+USD.+Sell.:.(\d+\,\d+).+Title.:.Доллар США./){
$vtbdollarbuy = $1;
$vtbdollarsell = $2;
$vtbdollarbuy =~ s/,/\./;
$vtbdollarsell =~ s/,/\./;
}
if($data =~ /Buy.:.(\d+\,\d+).+EUR.+"Sell":"(\d*\,\d+)"\,.+"Title":"Евро"/){
$vtbeurobuy = $1;
$vtbeurosell = $2;
$vtbeurobuy =~ s/,/\./;
$vtbeurosell =~ s/,/\./;
}
open (DATA, ">/var/cache/munin/currency.txt");
print DATA < |