diff --git a/lib/CMTD/Helpers.pm b/lib/CMTD/Helpers.pm index 2aa3991..0061c07 100644 --- a/lib/CMTD/Helpers.pm +++ b/lib/CMTD/Helpers.pm @@ -5,7 +5,8 @@ use warnings; use utf8; use Mojo::Base 'Mojolicious::Plugin'; -use Mojo::Util qw(b64_encode); +use Mojo::Util qw(b64_encode md5_sum); +use Mojo::URL; sub register { my ($self, $app) = @_; @@ -14,13 +15,7 @@ sub register { my ($c) = @_; my $url = $c->req->headers->referrer || $c->req->param('url'); - return $url; - }); - - $app->helper(pageid => sub { - my ($c, $url) = @_; return unless $url; - my $u = Mojo::URL->new($url); my $site = $u->host; my $path = $u->path; @@ -30,7 +25,7 @@ sub register { $path =~ s<\.[a-z0-9]{2,4}$><>io; my $md5 = md5_sum($path); - return {site => $site, pid => $md5, path => $path}; + return {site => $site, hash => $md5, path => $path}; }); $app->helper(maintenance => sub { @@ -63,29 +58,30 @@ sub register { my ($c, $code, $msg) = @_; $c->res->code($code); $c->render(text => "$msg\n"); + $c->rendered; return; }); $app->helper(site_by_name => sub { my ($c, $site) = @_; - return $self->app->db->select('sites', '*', {site => $site})->hash; + return $c->app->db->select('sites', '*', {site => $site})->hash; }); $app->helper(pid_by_hash => sub { my ($c, $sid, $hash) = @_; - return $self->app->db->select('pages', 'id', {sid => $sid, hash => $hash})->list; + return $c->app->db->select('pages', 'id', {sid => $sid, hash => $hash})->list; }); $app->helper(comments_by_pid => sub { my ($c, $pid) = @_; - return $self->app->db->select('comments', '*', {pid => $pid}, 'seq')->hashes; + return $c->app->db->select('comments', '*', {pid => $pid}, 'seq')->hashes; }); $app->helper(captcha_by_id => sub { my ($c, $cid) = @_; - return $self->app->db->select('captcha', '*', {cid => $cid})->hash; + return $c->app->db->select('captcha', '*', {cid => $cid})->hash; }); $app->helper(captcha_solve => sub { my ($c, $id, $input) = @_; - my $cap = $self->app->db->select('captcha', '*', {cid => $id})->hash; + my $cap = $c->app->db->select('captcha', '*', {cid => $id})->hash; return "no captcha with this id" unless $cap and ref($cap) eq 'HASH'; if ($cap->{code} ne $input) { @@ -109,7 +105,7 @@ sub register { }); $app->helper(add_page => sub { my ($c, $sid, $page) = @_; - $self->app->db->insert('pages', { + $c->app->db->insert('pages', { sid => $sid, hash => $page->{hash}, path => $page->{path}, @@ -118,9 +114,9 @@ sub register { $app->helper(add_comment => sub { my ($c, $pid, $cm) = @_; my $table = 'comments'; - $self->app->db->begin; - my $seq = $self->app->db->select($table, 'max(seq)', {pid => $pid})->list; - $self->app->db->insert($table, { + $c->app->db->begin; + my $seq = $c->app->db->select($table, 'max(seq)', {pid => $pid})->list; + $c->app->db->insert($table, { pid => $pid, seq => $seq, date => time(), @@ -129,7 +125,7 @@ sub register { email => $cm->{email}, text => b64_encode($cm->{text}), }); - $self->app->db->commit; + $c->app->db->commit; }); }