#!/usr/bin/perl

package MyParser;
use HTML::Parser;
use vars qw(@ISA);
use strict;

@ISA = qw(HTML::Parser);

sub start {
    my($self, $tag, $attr, $attrseq, $origtext) = @_;
    if ($tag eq 'img') {
	if ($attr->{src} =~ /\/comics\/[^\/]*\.gif/) {
	    $self->{imageurl} = $attr->{src} 
	}
    }
}

#------------------------------------------------------------------------------
package main;

use CGI;
use LWP::UserAgent;
use HTTP::Request;
use strict;

my $ua  = new LWP::UserAgent;
my $req = new HTTP::Request(GET => 'http://www.sluggy.com/');
my $p   = new MyParser;
my $res = $ua->request($req, sub { $p->parse(@_) });

die "ERROR: Unable to find image url!\n" unless $p->{imageurl};

$req = new HTTP::Request(GET => "http://www.sluggy.com$p->{imageurl}");
open(XV, "|xv -") || die "ERROR: Unable to run xv: $!\n";
$res = $ua->request($req, sub { syswrite XV, $_[0], length($_[0]) });
close(XV);

1;
