38 lines
751 B
Perl
38 lines
751 B
Perl
package PoorBooru::API::V0::Controller::Random;
|
|
use v5.36;
|
|
use strict;
|
|
use warnings;
|
|
|
|
use Mojo::Base "Mojolicious::Controller";
|
|
|
|
sub media ($self)
|
|
{
|
|
my $media = $self->_random_entry("Media");
|
|
|
|
return $self->render(
|
|
json => {error => "Media not found"},
|
|
status => 404,
|
|
) if !defined($media);
|
|
|
|
return $self->redirect_to("media_show", media_id => $media->media_id);
|
|
}
|
|
|
|
sub tag ($self)
|
|
{
|
|
my $tag = $self->_random_entry("Tag");
|
|
|
|
return $self->render(
|
|
json => {error => "Tag not found"},
|
|
status => 404,
|
|
) if !defined($tag);
|
|
|
|
return $self->redirect_to("tag_show", tag_id_or_name => $tag->name);
|
|
}
|
|
|
|
sub _random_entry ($self, $rs) {
|
|
$self->schema->resultset($rs)
|
|
->search(undef, { order_by => \"random()", rows => 1 })->single
|
|
}
|
|
|
|
1;
|