commit 0b30ea77e3a8f409ee3af21b0f831bafba76cc1d
from: monaco Create a new paste
-
- Search for a paste
-
-
-
-
-@@ search.html.ep
-
-
-
- Search Results
-
- % for my $result (@$results) {
blob - /dev/null
blob + f3f43757cf417b250cd5d85c74bf02f3bb419841 (mode 644)
--- /dev/null
+++ paste.pl
@@ -0,0 +1,85 @@
+#!/usr/bin/env perl
+
+use Mojolicious::Lite;
+use DBI;
+use File::Slurp;
+
+# set up the sqlite database
+my $dbh = DBI->connect("dbi:SQLite:dbname=pastes.db","","", { RaiseError => 1, AutoCommit => 1 });
+$dbh->do("CREATE TABLE IF NOT EXISTS pastes (id INTEGER PRIMARY KEY, content TEXT, expires TIMESTAMP)");
+
+# set up the routes
+get '/' => sub {
+ my $c = shift;
+ $c->render(template => 'index');
+};
+
+post '/' => sub {
+ my $c = shift;
+ my $content = $c->param('content');
+ my $expires = time() + (60 * 60 * 24 * 60); # 60 days from now
+ my $id = int(rand(1000000));
+ my $sth = $dbh->prepare("INSERT INTO pastes (id, content, expires) VALUES (?, ?, ?)");
+ $sth->execute($id, $content, $expires);
+ write_file("pastes/$id.txt", $content);
+ $c->redirect_to("/$id");
+};
+
+get '/:id' => sub {
+ my $c = shift;
+ my $id = $c->param('id');
+ my $sth = $dbh->prepare("SELECT * FROM pastes WHERE id = ?");
+ $sth->execute($id);
+ my $paste = $sth->fetchrow_hashref;
+ if ($paste) {
+ $c->render(template => 'paste', paste => $paste);
+ } else {
+ $c->render(text => "Paste not found");
+ }
+};
+
+# start the app
+app->start;
+
+__DATA__
+
+@@ index.html.ep
+
+
+
+
Pastebin
Paste
+
Expires: <%= $paste->{expires} %>
+ +