DKB: whitelist fonds-URLs
This commit is contained in:
parent
737155649d
commit
cea3bbc917
@ -20,13 +20,46 @@ package Finance::Quote::DKB;
|
|||||||
use strict;
|
use strict;
|
||||||
use HTML::TreeBuilder::XPath;
|
use HTML::TreeBuilder::XPath;
|
||||||
|
|
||||||
my $BASE_URL = "https://dkb.mdgms.com/MIS/?id_instrument=19035880&id=0107980&pid=DKB_fnd_profile&id_notation=23679474";
|
my %urlmap_wkn = (
|
||||||
|
'a0m9a2' => 'https://dkb.mdgms.com/MIS/?id_instrument=19035880&id=0107980&pid=DKB_fnd_profile&id_notation=23679474',
|
||||||
|
'a0m430' => 'https://dkb.mdgms.com/MIS/?id_instrument=18085585&id=0107980&pid=DKB_fnd_profile&id_notation=20644387',
|
||||||
|
'a0ya5q' => 'https://dkb.mdgms.com/MIS/?id_instrument=26097198&id=0107980&pid=DKB_fnd_profile&id_notation=32652184',
|
||||||
|
'974515' => 'https://dkb.mdgms.com/MIS/?id_instrument=102918&id=0107980&pid=DKB_fnd_profile&id_notation=3228063',
|
||||||
|
'a0dpw0' => 'https://dkb.mdgms.com/MIS/?id_instrument=11659733&id=0107980&pid=DKB_fnd_profile&id_notation=11014630',
|
||||||
|
'a0x754' => 'https://dkb.mdgms.com/MIS/?id_instrument=22407622&id=0107980&pid=DKB_fnd_profile&id_notation=26567264',
|
||||||
|
'a0m8hd' => 'https://dkb.mdgms.com/MIS/?id_instrument=19179789&id=0107980&pid=DKB_fnd_profile&id_notation=21240603',
|
||||||
|
'dws0pr' => 'https://dkb.mdgms.com/MIS/?id_instrument=18286450&id=0107980&pid=DKB_fnd_profile&id_notation=22946309'
|
||||||
|
);
|
||||||
|
|
||||||
|
my %wknmap = (
|
||||||
|
'lu0336084032' => 'a0m9a2',
|
||||||
|
'lu0323578657' => 'a0m430',
|
||||||
|
'lu0454071019' => 'a0ya5q',
|
||||||
|
'lu0087412390' => '974515',
|
||||||
|
'fr0010135103' => 'a0dpw0',
|
||||||
|
'de000a0x7541' => 'a0x754',
|
||||||
|
'de000a0m8hd2' => 'a0m8hd',
|
||||||
|
'lu0327386487' => 'dws0pr'
|
||||||
|
);
|
||||||
|
|
||||||
sub methods {return ('dkb' => \&dkb,
|
sub methods {return ('dkb' => \&dkb,
|
||||||
'europe' => \&dkb);}
|
'europe' => \&dkb);}
|
||||||
sub labels { return (dkb=>[qw/name date price currency/]); }
|
sub labels { return (dkb=>[qw/name date price currency/]); }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
sub get_stock_url {
|
||||||
|
my $stock_wkn = shift;
|
||||||
|
|
||||||
|
my $url = $urlmap_wkn{lc($stock_wkn)};
|
||||||
|
if (!defined($url) || length($url) == 0) {
|
||||||
|
my $wkn = $wknmap{lc($stock_wkn)};
|
||||||
|
$url = $urlmap_wkn{$wkn};
|
||||||
|
}
|
||||||
|
return $url;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
sub dkb
|
sub dkb
|
||||||
{
|
{
|
||||||
my $quoter = shift; # The Finance::Quote object.
|
my $quoter = shift; # The Finance::Quote object.
|
||||||
@ -36,7 +69,12 @@ sub dkb
|
|||||||
my %info;
|
my %info;
|
||||||
|
|
||||||
foreach my $stock (@stocks) {
|
foreach my $stock (@stocks) {
|
||||||
my $response = $ua->get($BASE_URL . "&search_value=" . $stock);
|
my $get_url = get_stock_url($stock);
|
||||||
|
if (!defined($get_url) || length($get_url) == 0) {
|
||||||
|
$info{$stock,"errormsg"} = "undefined DKB-UR";
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
my $response = $ua->get($get_url . "&search_value=" . $stock);
|
||||||
#print $response->content, "\n";
|
#print $response->content, "\n";
|
||||||
$info{$stock,"success"} = 0;
|
$info{$stock,"success"} = 0;
|
||||||
if (!$response -> is_success()) {
|
if (!$response -> is_success()) {
|
||||||
@ -56,7 +94,6 @@ sub dkb
|
|||||||
my @splitvals = ( $pricestr =~ /((\d|,|\.)*)\s*/g);
|
my @splitvals = ( $pricestr =~ /((\d|,|\.)*)\s*/g);
|
||||||
if (@splitvals) {
|
if (@splitvals) {
|
||||||
$info{$stock,'price'} = $splitvals[0];
|
$info{$stock,'price'} = $splitvals[0];
|
||||||
$info{$stock,'last'} = $splitvals[0];
|
|
||||||
if ($pricestr =~ /EUR/) {
|
if ($pricestr =~ /EUR/) {
|
||||||
$info{$stock,'currency'} = 'EUR';
|
$info{$stock,'currency'} = 'EUR';
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user