You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

67 lines
1.4 KiB

package CMTD::Main;
use strict;
use warnings;
use utf8;
use Mojo::Base 'Mojolicious::Controller';
sub index {
my ($self) = @_;
$self->render(text => 'Go away!');
}
sub captcha {
my ($self) = @_;
eval {
my $table = $c->app->config->{captcha}->{table};
my @sort = qw(shown tries);
$self->app->db->begin;
my ($cid, $data) = $self->app->db->select($table, ['id', 'data'], undef, \@sort)->list;
$self->app->db->update($table, {shown => time()}, {id => $cid});
$self->app->db->commit;
$self->app->log->debug("showing captcha #$cid");
$self->render(json => {id => $cid, data => $data}); 1;
} or do {
chomp $@;
$self->app->log->error("error when showing captcha: $@");
$self->res->code(500);
$self->render(text => 'internal error');
};
}
sub c_list {
}
sub c_add {
my ($self) = @_;
my $ref = $self->referrer;
unless ($ref and ref($ref) eq 'HASH') {
$self->res->code(400);
$self->render(text => "can't detect referred page");
return;
}
my $site = $self->app->sites->{ $ref->{site} };
unless ($site and ref($site) eq 'HASH') {
$self->res->code(400);
$self->render(text => "no such site");
return;
}
eval {
1;
} or do {
chomp $@;
my $msg = sprintf "Error when listing comments for %s/%s: %s",
$ref->{site}, $ref->{pid}, $@;
$self->app->log->error($msg);
$self->res->code(500);
$self->render(text => 'internal error');
};
}
1;