package PoorBooru::Backend::Controller::Gallery; use v5.36; use strict; use warnings; use Mojo::Base "Mojolicious::Controller"; use Mojo::JSON qw(decode_json); sub index ($self) { $self->title("Pooru~"); my $v = $self->validation; my $page = $v->optional("page")->num(1, undef)->param // 1; return $self->render( status => 404, ) if $v->has_error; my $poorbooru_api = $self->config("poorbooru_api"); my $ua = Mojo::UserAgent->new; my $res = $ua->get("$poorbooru_api/media" => form => { page => $page })->result; return $self->render(status => $res->code) if $res->is_error; my @media = map +{ media_src => $self->seaweed->url_for(SeaweedFS::FID->from_bin($_->{seaweedfs_fid})), }, @{$res->json->{media}}; return $self->render(template => "gallery", media => \@media); }; 1;