#!/usr/bin/perl use lib "../lib"; use Rest; use Bucky::Session; use Poetaster; my $session = new Bucky::Session; my $q = $session->param('q'); my $id = $session->param('id'); if ($id) { print header(); print cache_get($id); print form(); print footer(); } elsif ($q) { print header(); print poetast($q); print form(); print footer(); } else { print header(); print form(); print footer(); } sub poetast { my ($q) = @_; my $data; if ($q =~ /^http/) { $data = Rest->new->rest_get_raw($q); } else { $data = $q; } $data =~ s/<(\/)?(b|i|strong|em)>/[$1$2]/g; $data =~ s/<[^>]+>//g; $data =~ s/\[//g; $data =~ s/[\r\n]+/ /g; $data =~ s/\s+/ /g; $data =~ s/\. \. \. /... /g; my $self = new Poetaster; my $poem = $self->poem($data); print "
$poem
"; print sprintf("%0.1f kb", (length($poem)/1024)); print "
"; return; } sub poetast_cache_set { my ($data) = @_; my $id; return $id; } sub poetast_cache_get { my ($id) = @_; my $data; return $data; } sub header { my ($title) = @_; if ($title) { $title = "Poetaster: $title" } else { $title = "Poetaster"; } return <<__HEADER__; Content-type: text/html Pragma: no-cache Poetaster
__HEADER__ } sub form { return <<__FORM__; Enter text or a URL:

__FORM__ } sub footer { return <<__FOOTER__;
__FOOTER__ }