#!/usr/bin/perl

my $MAIL_INPUT = "-";
my $MAIL_HOST  = "mail.subbrhosting.net";

use strict;
use warnings;

use Mail::Internet;
use LWP::UserAgent;
use HTTP::Request::Common;
use HTML::TableExtract;

    # Mail einlesen
open MAILIN, "<$MAIL_INPUT" or 
     die "Cannot open $MAIL_INPUT";
my @data = <MAILIN>;
close MAILIN;

    # Mail analysieren
my $mail  = Mail::Internet->new(\@data);
my $stock = $mail->body()->[0];
chomp $stock;

    # Antwort zusammenbasteln
my $reply = $mail->reply();
my $quote = get_quote($stock);
$reply->body( [$quote] );

    # ... und absenden
$reply->smtpsend(Host => $MAIL_HOST) or 
    die "Reply mail failed";

##################################################
sub get_quote {
##################################################
    my $stock = shift;

    my $URL = "http://de.finance.yahoo.com/q?m=F&" . 
              "s=$stock" . "&d=v1";

    my $result = "";

    my $ua = LWP::UserAgent->new();
    my $resp = $ua->request(GET $URL);

    if($resp->is_error()) {
            # Fehler beim Holen der Webseite?
        my $error = sprintf "Error: %s", 
                            $resp->message();
        return $error;
    }

    my $data = $resp->content();

    my $te = new HTML::TableExtract( depth => 0, 
                                     count => 4 );
    $te->parse($data);

        # Alle Tabellenreihen zusammen darstellen
    my @rows = $te->rows;
    shift @rows;
    foreach my $row (@rows) {
        $result .= join(' ', $row->[0], $row->[4]);
        $result .= " ** ";
    }

    return $result;
}
