#!/usr/bin/perl

# Project Nando Santagata
# Implementation Maurizio Lemmo
# 0.5

use HTML::Parser;
use HTTP::Request;
use HTTP::Response;
use LWP::UserAgent;
use URI::URL;
use Date::Manip;
use strict;
use vars qw($prev $ondate);

# day of week when buffy is on air
$ondate="Wed";

sub text
{
	my $text = shift;

	# Skip blank lines (no further analysis)
	if(! defined $text || $text =~ /^[\s\n]+$/){
		return
	}

	if($text =~ /buffy/i){
		print $prev, " ", $text, "<br>\n";
	}else{			# Copy previous line (to get the time)
		$prev = $text;
	}
}

# Get the date of the next date
my $date = ParseDate("today");
my $day;
if(UnixDate("today", "%a") eq $ondate){
	$day = substr($date, 0, 8);
}else{
	$day = substr(Date_GetNext($date, $ondate), 0, 8);
}

my $url = "http://www.mediasetonline.com/italia1/palinsestoi1.jsp";
my %form = (day => $day, periododay => 'seleziona');
my $curl = url("http:");
$curl->query_form(%form);

my $req = HTTP::Request->new('POST', $url);
$req->push_header(Referer => $url);
$req->content_type('application/x-www-form-urlencoded');
$req->content($curl->equery);

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

my $dayf = UnixDate($day, "%a, %e-%b");

my $pars = HTML::Parser->new(api_version => 3,
	handlers => [ text => [\&text, "dtext"] ] );
print q{Content-type: text/html

<title>"Where is Buffy?"</title>
<center><font size = "+2">
"Where is Buffy" - Television Retriever
</font>
<hr><br>
<font size = "+1">
};
if(UnixDate("today", "%a") ne $ondate) {
	print "Prossimi episodi ($dayf) di Buffy The Vampire Slayer:<br><br>\n";
}else{
	print "Episodi di oggi ($dayf) di Buffy The Vampire Slayer:<br><br>\n";
}
print "</font>";
$pars->parse($resp->content);
print q{
<br>nota: a volte negli episodi pomeridiani non inseriscono il secondo titolo.
<br><hr>
"Where is Buffy" - Television Retriever brought to you by
<a href = "mailto:root@mood.ritram.it">Tannoiser</a>
};

