summaryrefslogtreecommitdiff
path: root/bucky2/cgi-bin/poetaster
diff options
context:
space:
mode:
authorJules Laplace <carbon@melanarchy.org>2013-08-02 17:23:25 -0500
committerJules Laplace <carbon@melanarchy.org>2013-08-02 17:23:25 -0500
commite76b691e78e273226cba9284cb8cd22a423319ed (patch)
treea58d22f69869fe2bf3885f81bdda4952f87ff6d7 /bucky2/cgi-bin/poetaster
parent753f60c7d4769fa72d3b910e491f37db6f130898 (diff)
bucky2
Diffstat (limited to 'bucky2/cgi-bin/poetaster')
-rwxr-xr-xbucky2/cgi-bin/poetaster105
1 files changed, 105 insertions, 0 deletions
diff --git a/bucky2/cgi-bin/poetaster b/bucky2/cgi-bin/poetaster
new file mode 100755
index 0000000..29bbe3b
--- /dev/null
+++ b/bucky2/cgi-bin/poetaster
@@ -0,0 +1,105 @@
+#!/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/\]/>/g;
+ $data =~ s/[\r\n]+/ /g;
+ $data =~ s/\s+/ /g;
+ $data =~ s/\. \. \. /... /g;
+ my $self = new Poetaster;
+ my $poem = $self->poem($data);
+ print "<pre>$poem</pre>";
+ print sprintf("%0.1f kb", (length($poem)/1024));
+ print "<br>";
+ 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
+
+<html>
+<head>
+<title>Poetaster</title>
+<link href="/css/poetaster.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="container">
+__HEADER__
+ }
+sub form
+ {
+ return <<__FORM__;
+Enter text or a URL:
+<form method="post">
+<textarea name="q"></textarea><br>
+<input type="submit" value="Poetaste!">
+</form>
+__FORM__
+ }
+sub footer
+ {
+ return <<__FOOTER__;
+</div>
+</body>
+</html>
+__FOOTER__
+ }