#!/usr/bin/perl
use LWP::UserAgent ;
use Mail::Mailer ;
use MIME::Parser;
use MIME::QuotedPrint;
use HTML::Entities ;
$decoder = new MIME::Decoder 'quoted-printable' or die "unsupported";
### Create parser, and set some parsing options:
my $parser = new MIME::Parser;
$parser->output_to_core(1); ## keep messages in memory
$parser->decode_headers(1); ### default is false
$parser->extract_nested_messages(1) ;
### Parse input:
$entity = $parser->parse(\*STDIN) or die "parse failed\n";
$header = $entity->head ;
$subject = $header->get('Subject',0) ;
$from = $header->get('From',0) ;
$to = $header->get('To',0) ;
# $body = decode_qp($entity->parts(0)->body_as_string) ;
# $skel = $entity->dump_skeleton ;
# print $skel ;
# $body = decode_qp($entity->parts(0)->parts(0)->body_as_string) ;
$body = $entity->parts(0)->parts(0)->body_as_string ;
# print $body ;
# print Dumper($skel) ;
$body =~ m|(http://www.evite.com/pages/invite/viewInvite.jsp?.+)\s| ;
$url = $1 ;
# print $url ;
$browser = LWP::UserAgent->new ;
$response = $browser->get($url) ;
$contents = $response->content ;
$invite = $contents ;
$invite =~ s|.*>Location|Location|s ;
$invite =~ s|(.*?).*|$1|s ;
$invite =~ s|
|\n|g ;
$invite =~ s|<.+?>||gs ;
$invite =~ s| | |g ;
$invite =~ s|^\s+||gm ;
$invite =~ s|^\s*$||gm ;
$invite =~ s|^View Map$||m ;
$invite =~ s/:\s+.*?^/: /msg ;
$invite =~ s/\|\s+\n// ;
$body =~ s|Click below|--Details--\n$invite\n--\nClick below|s ;
$body =~ s|
|\n|g ;
$body = decode_entities($body) ;
# print "$url\n" ;
# print "Subject: $subject\n" ;
$fh = Mail::Mailer->new('qmail') ;
%headers = (
'From' => "$from",
'To' => "$to",
'Subject' => "$subject"
);
$fh->open(\%headers) ;
select $fh ;
print <close ;