#!/usr/bin/perl

use strict;
use warnings;

use LWP::UserAgent;
use CGI qw(:standard);

my $ua = LWP::UserAgent->new;
$ua->agent( "itunesify" );

my $url = param( 'u' );
my $image = param( 'i' );
my $title = param( 't' );

my $html = get_website( $url );
$html =~ /^(.*?)<item>(.*)<\/item>(.*?)$/;
my $inner = $2;
my $pre = $1;
my $post = $3;

$inner =~ s/<description>([^<]*?)<\/description>/<pubDate>$1<\/pubDate>/gi;
$inner =~ s/<link>([^<]*?)<\/link>/<link>$1<\/link><enclosure length="0" url="$1" type="application\/x-bittorrent" \/>/gi;
$inner =~ s/<title>([^<]*)<\/title>/<title>$1<\/title>
<description>$1<\/description>
<itunes:subtitle>$1<\/itunes:subtitle>
<itunes:summary>$1<\/itunes:summary>/gi;

$pre =~ s/<rss /<rss xmlns:itunes="http:\/\/www.itunes.com\/dtds\/podcast-1.0.dtd" /;
$pre =~ s/xmlns:yt="http:\/\/gdata.youtube.com\/schemas\/2007"//;
$pre =~ s/<channel>/<channel>
<itunes:image href="$image" \/>
<itunes:owner>
  <itunes:name>Lorenz Diener<\/itunes:name>
  <itunes:email>lorenzd\@gmail.com<\/itunes:email>
<\/itunes:owner>
<itunes:explicit>no<\/itunes:explicit>
<itunes:category text="Arts"><\/itunes:category>
<language>en-US<\/language>/;
$pre =~ s/<title>([^<]*)<\/title>/<title>$title<\/title>/;

$html = "$pre<item>$inner</item>$post";

print "Content-type:application/xml\n\n";
print $html;

# Get helper
sub get_website {
	my $url = shift();
	my $req = HTTP::Request->new( GET => $url );
	my $res = $ua->request($req);

	if ( $res->is_success ) {
		my $html = $res->content;
		$html =~ s/[\n\r]//gi;
		return $html;
	} else {
		die ( "Error: Could not fetch $url.\n" );
	}
}