ProShell v2.0
Dashboard
Server Info
Server: 127.0.0.80
PHP: 8.3.31
home
clients
08ce2314c3c7e396ea36e41d2a860c5e
sites
filmerletravail.org
wp-content
mu-plugins
2026-08-15 01:53:19
Editing: Deka.pm
Cancel
Save Changes
#!/usr/bin/perl -w # # Deka import modul based on Union.pm # Version 2016-01-12 package Finance::Quote::Deka; require 5.005; use strict; use LWP::UserAgent; use HTTP::Request::Common; our $VERSION = '1.50'; # VERSION sub methods { return (deka => \&deka); } sub labels { return (deka => [qw/exchange name date isodate price method/]); } # ======================================================================= # The deka routine gets quotes of DEKA funds (Deka Investments) # On their website DEKA provides a csv file in the format # label1;label2;... # symbol1;name1;date1;date_before1;bid1;... # symbol2;name2;date2;date_before2,bid2,... # ... # # This subroutine was written by Andre Joost <andrejoost@gmx.de> # Convert number separators to US values sub convert_price { $_ = shift; tr/.,/,./ ; return $_; } sub deka { my $quoter = shift; my @funds = @_; return unless @funds; my $ua = $quoter->user_agent; my (%fundhash, @q, %info, $tempdate); # create hash of all funds requested foreach my $fund (@funds) { $fundhash{$fund} = 0; } # get csv data my $response = $ua->request(GET &dekaurl); if ($response->is_success) { # process csv data foreach (split('\015?\012',$response->content)) { # @q = $quoter->parse_csv($_) or next; @q = split(/;/) or next; next unless (defined $q[0]); if (exists $fundhash{$q[0]}) { $fundhash{$q[0]} = 1; $info{$q[0], "exchange"} = "DEKA"; $info{$q[0], "name"} = $q[1]; $info{$q[0], "symbol"} = $q[0]; $tempdate = $q[2]; $quoter->store_date(\%info, $q[0], {eurodate => $tempdate}); $info{$q[0], "price"} = convert_price($q[4]); $info{$q[0], "last"} = convert_price($q[4]); $info{$q[0], "method"} = "deka"; $info{$q[0], "currency"} = $q[8]; $info{$q[0], "success"} = 1; } } # check to make sure a value was returned for every fund requested foreach my $fund (keys %fundhash) { if ($fundhash{$fund} == 0) { $info{$fund, "success"} = 0; $info{$fund, "errormsg"} = "No data returned"; } } } else { foreach my $fund (@funds) { $info{$fund, "success"} = 0; $info{$fund, "errormsg"} = "HTTP error"; } } return wantarray() ? %info : \%info; } # DEKA provides a csv file named fondspreise.csv containing the prices of all # their funds for the most recent business day. sub dekaurl { return "https://www.deka.de/privatkunden/pflichtseiten/fondspreise?service=fondspreislisteExportController&action=exportCsv&typ=inVertrieb"; } 1; =head1 NAME Finance::Quote::Deka - Obtain quotes from DEKA (Wertpapierhaus der Sparkassen). =head1 SYNOPSIS use Finance::Quote; $q = Finance::Quote->new; %stockinfo = $q->fetch("deka","DE0008474503"); =head1 DESCRIPTION This module obtains information about DEKA managed funds. Information returned by this module is governed by DEKA's terms and conditions. =head1 LABELS RETURNED The following labels may be returned by Finance::Quote::DEKA: exchange, name, date, price, last. =head1 SEE ALSO DEKA (Deka Investments), http://www.deka.de/ =cut
Upload Files
Cancel
Upload
Create New
Cancel
Create
Change Permissions
Cancel
Save
Change Date
Cancel
Save
Rename Item
Cancel
Save
Confirm Delete
Are you sure you want to delete the selected items?
Cancel
Delete