site: inline Random controller

This commit is contained in:
Lucas Gabriel Vuotto 2025-05-03 18:02:43 +00:00
parent 3734b97e0c
commit 2d64ec57a0
4 changed files with 37 additions and 43 deletions

View file

@ -106,8 +106,8 @@ sub startup ($self)
$r->get("/tags")->to("tags#list")->name("list_tags");
$r->get("/search")->to("tags#search")->name("search_tags");
$r->get("/random/media")->to("random#media")->name("random_media");
$r->get("/random/tag")->to("random#tag")->name("random_tag");
$r->get("/random/media")->to("media#random")->name("random_media");
$r->get("/random/tag")->to("tags#random")->name("random_tag");
}
1;

View file

@ -103,4 +103,21 @@ sub show ($self)
})->wait;
}
sub random ($self)
{
$self->render_later;
my $endpoint = $self->api_v0_url
->path("random/media")->query(no_redirect => 1);
$self->ua->get_p($endpoint)->then(sub ($tx) {
return $self->render(
text => "Backend error.",
status => 500,
) if $tx->error;
return $self->redirect_to("show_media",
media_id => $tx->res->json);
})->wait;
}
1;

View file

@ -1,41 +0,0 @@
package Pooru::Site::Controller::Random;
use v5.40;
use Mojo::Base "Mojolicious::Controller";
sub media ($self)
{
$self->render_later;
my $endpoint = $self->api_v0_url
->path("random/media")->query(no_redirect => 1);
$self->ua->get_p($endpoint)->then(sub ($tx) {
return $self->render(
text => "Backend error.",
status => 500,
) if $tx->error;
return $self->redirect_to("show_media",
media_id => $tx->res->json);
})->wait;
}
sub tag ($self)
{
$self->render_later;
my $endpoint = $self->api_v0_url
->path("random/tag")->query(no_redirect => 1);
$self->ua->get_p($endpoint)->then(sub ($tx) {
return $self->render(
text => "Backend error.",
status => 500,
) if $tx->error;
my $url = $self->url_for("list_media")
->query(tags => $tx->res->json . " ");
return $self->redirect_to($url);
})->wait;
}
1;

View file

@ -35,6 +35,24 @@ sub list ($self)
})->wait;
}
sub random ($self)
{
$self->render_later;
my $endpoint = $self->api_v0_url
->path("random/tag")->query(no_redirect => 1);
$self->ua->get_p($endpoint)->then(sub ($tx) {
return $self->render(
text => "Backend error.",
status => 500,
) if $tx->error;
my $url = $self->url_for("list_media")
->query(tags => $tx->res->json . " ");
return $self->redirect_to($url);
})->wait;
}
sub search ($self)
{
my $v = $self->validation;