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.
 
 
 

58 lines
1.4 KiB

package CMTD;
use strict;
use warnings;
use Mojo::Base 'Mojolicious';
sub startup {
my $self = shift;
$self->plugin('CMTD::Helpers');
$self->plugin(Config => {file => 'cmtd.conf'});
$self->plugin(I18N => {namespace => 'CMTD::I18N', default => 'en'});
if (my $s = $self->app->config->{secret}) {
$self->app->secrets([ $s ]);
} else {
my $s = sprintf "%08X%08X%08X", time(), rand(), rand();
$self->app->log->warn("!!! You should set a sign key for cookies in config !!!");
$self->app->secrets([ $s ]);
}
$self->app->attr(captcha => sub {
my $config = $self->app->config->{captcha};
require CMTD::Captcha;
my $cap = CMTD::Captcha->new(%{ $config });
return $cap;
});
$self->app->attr(db => sub {
my $c = $self->app->config->{db} || {};
require DBIx::Simple;
my %opts = (AutoCommit => 1, RaiseError => 1, sqlite_see_if_its_a_number => 1);
my $dbh = DBIx::Simple->new($c->{dsn}, $c->{user}, $c->{pass}, \%opts);
return $dbh;
});
# initial
$self->app->maintenance;
# periodic
my $loop = Mojo::IOLoop->singleton;
$loop->recurring(60 => sub {
$self->app->maintenance;
});
my $r = $self->routes;
$r->get('/')
-> to('main#index');
$r->get('/captcha')
-> to('main#captcha');
$r->get('/comments/list')
-> to('main#c_list');
$r->get('/comments/add')
-> to('main#c_form');
$r->post('/comments/add')
-> to('main#c_add');
}
1;