PoorBooru/lib/PoorBooru/Backend.pm

51 lines
1.2 KiB
Perl
Raw Normal View History

2023-03-05 21:03:20 +01:00
package PoorBooru::Backend;
2023-03-04 22:58:18 +01:00
use v5.36;
use strict;
use warnings;
use Mojo::Base "Mojolicious";
2023-03-05 18:23:13 +01:00
use SeaweedFS::Client;
2023-03-04 22:58:18 +01:00
2023-03-10 21:34:00 +01:00
sub _pager_links ($c, $dbp)
{
my %pager;
my $page_url = sub ($p) { $c->url_with->query({page => $p}) };
$pager{first_page} = $page_url->($dbp->{first_page})
if $dbp->{first_page} != $dbp->{current_page};
$pager{previous_page} = $page_url->($dbp->{previous_page})
if defined($dbp->{previous_page}) &&
$dbp->{previous_page} != $dbp->{first_page};
$pager{current_page} = $dbp->{current_page};
$pager{next_page} = $page_url->($dbp->{next_page})
if defined($dbp->{next_page}) &&
$dbp->{next_page} != $dbp->{last_page};
$pager{last_page} = $page_url->($dbp->{last_page})
if $dbp->{last_page} != $dbp->{current_page};
return %pager;
}
2023-03-04 22:58:18 +01:00
sub startup ($self)
{
2023-03-05 21:03:20 +01:00
$self->moniker("poorbooru-backend");
2023-03-04 22:58:18 +01:00
my $config = $self->plugin("Config");
$self->secrets($config->{secrets});
2023-03-05 18:23:13 +01:00
$self->helper(seaweed => sub {
state $client =
SeaweedFS::Client->new($config->{seaweedfs_master})
2023-03-04 22:58:18 +01:00
});
2023-03-10 21:34:00 +01:00
$self->helper(pager_links => \&_pager_links);
2023-03-05 18:23:13 +01:00
my $r = $self->routes;
$r->get("/")->to("gallery#index");
$r->get("/tags")->to("tags#list");
$r->get("/tag/:tag_id_or_name")->to("tags#show");
2023-03-04 22:58:18 +01:00
}
1;