diff --git a/lib/Pooru/Site.pm b/lib/Pooru/Site.pm index 64ec316..b3b2794 100644 --- a/lib/Pooru/Site.pm +++ b/lib/Pooru/Site.pm @@ -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; diff --git a/lib/Pooru/Site/Controller/Media.pm b/lib/Pooru/Site/Controller/Media.pm index cbd54f7..a0619f0 100644 --- a/lib/Pooru/Site/Controller/Media.pm +++ b/lib/Pooru/Site/Controller/Media.pm @@ -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; diff --git a/lib/Pooru/Site/Controller/Random.pm b/lib/Pooru/Site/Controller/Random.pm deleted file mode 100644 index e8e2b95..0000000 --- a/lib/Pooru/Site/Controller/Random.pm +++ /dev/null @@ -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; diff --git a/lib/Pooru/Site/Controller/Tags.pm b/lib/Pooru/Site/Controller/Tags.pm index 048782f..082fd69 100644 --- a/lib/Pooru/Site/Controller/Tags.pm +++ b/lib/Pooru/Site/Controller/Tags.pm @@ -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;