Package: libfinance-quote-perl
Version: 1.12-1
Severity: normal
Tags: patch

Hallo,

I am using linfinance-quote-perl together with GnuCash to get the
preises of some funds of the DekaBank (www.deka.de).

It used to work fine till the beginning of November. Since then, I can't
get any quotes from Deka. I think, they have changed the web site.

I have added a patch for the file Deka.pm. This patch is working for me.
It is using the https port instead of the http port. I hope it doesn't
give problems to anyone. I couldn't find a page with the http port
anymore.


Regards,
Vincent Smeets


-- System Information:
Debian Release: 3.1
Architecture: i386 (i686)
Kernel: Linux 2.6.8-3-686
Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1)

Versions of packages libfinance-quote-perl depends on:
ii  libhtml-tableextract-perl  1.08-1        Perl module that simplifies extrac
ii  libwww-perl                5.803-4       WWW client/server library for Perl
ii  perl                       5.8.4-8sarge5 Larry Wall's Practical Extraction 

-- no debconf information
--- Deka.pm.orig        2006-11-27 20:54:58.000000000 +0100
+++ Deka.pm     2006-11-27 23:00:37.924214579 +0100
@@ -22,7 +22,7 @@
 
 use vars qw($VERSION);
 $VERSION = '0.3';
-my $DEKA_URL = 
"http://www.deka.de/de/produkte/fondsfinder/ergebnis_body_name.html?type=preise";;
+my $DEKA_URL = 
"https://www.deka.de/dn/useCases/fundsearch/UCFundsSearch.shtml?ACTION_FIELD=quickSearch";;
 
 sub methods {return (deka        => \&deka);}
 sub labels { return (deka=>[qw/name date price last method/]); }
@@ -34,6 +34,7 @@
     s/^\s*//;
     s/\s*$//;
     s/ //g;
+    s/,/./g;
     return $_;
 }
 
@@ -45,21 +46,20 @@
   my %info;
 
   foreach my $stock (@stocks) {
-    my $response = $ua->get($DEKA_URL . "&fcsd=" . $stock);
+    my $response = $ua->get($DEKA_URL . "&isin=" . $stock);
     $info{$stock,"success"} = 0;
     if (!$response -> is_success()) {
       $info{$stock,"errormsg"} = "HTTP failure";
     } else {
       my $te = HTML::TableExtract->new;
       $te->parse($response->content);
-      if ($te->table_state(0,0) && $te->table_state(1,0)) {
-       my $row = ($te->table_state(0,0)->rows)[1];
-       $info{$stock,"name"} = $$row[4];
-       $info{$stock,"currency"} = $$row[6];
-       $quoter->store_date(\%info, $stock, {eurodate => $$row[12]});
-       my $prices = ($te->table_state(1,0)->rows)[0];
-       $info{$stock,"price"} = trim($$prices[0]);
-       $info{$stock,"last"} = trim($$prices[2]);
+      if ($te->table_state(0,0)) {
+       my $row = ($te->table_state(0,0)->rows)[3];
+       $info{$stock,"name"} = $$row[0];
+       $info{$stock,"currency"} = $$row[2];
+       $info{$stock,"price"} = trim($$row[3]);
+       $info{$stock,"last"} = trim($$row[4]);
+       $quoter->store_date(\%info, $stock, {eurodate => $$row[6]});
        $info{$stock,"success"} = 1;
        $info{$stock,"method"} = "deka";
        $info{$stock,"symbol"} = $stock;

Reply via email to