Add 404 page

This commit is contained in:
video-prize-ranch 2022-05-23 11:30:17 -04:00
parent 6eee86d682
commit d05f7f868d
No known key found for this signature in database
GPG Key ID: D8EAA4C5B12A7281
6 changed files with 41 additions and 4 deletions

View File

@ -32,6 +32,11 @@ func handleMedia(c *fiber.Ctx, url string) error {
return err return err
} }
if res.StatusCode == 404 {
c.Status(404)
return c.Render("errors/404", nil)
}
c.Set("Content-Type", res.Header.Get("Content-Type")); c.Set("Content-Type", res.Header.Get("Content-Type"));
contentLen, _ := strconv.Atoi(res.Header.Get("Content-Length")) contentLen, _ := strconv.Atoi(res.Header.Get("Content-Length"))
return c.SendStream(res.Body, contentLen) return c.SendStream(res.Body, contentLen)

View File

@ -1,7 +1,6 @@
package pages package pages
import ( import (
"fmt"
"strings" "strings"
"codeberg.org/video-prize-ranch/rimgo/api" "codeberg.org/video-prize-ranch/rimgo/api"
@ -18,14 +17,14 @@ func HandlePost(c *fiber.Ctx) error {
switch { switch {
case strings.HasPrefix(c.Path(), "/a"): case strings.HasPrefix(c.Path(), "/a"):
post, err = api.FetchAlbum(c.Params("postID")) post, err = api.FetchAlbum(c.Params("postID"))
println(post.Title)
case strings.HasPrefix(c.Path(), "/gallery"): case strings.HasPrefix(c.Path(), "/gallery"):
post, err = api.FetchPosts(c.Params("postID")) post, err = api.FetchPosts(c.Params("postID"))
default: default:
post, err = api.FetchMedia(c.Params("postID")) post, err = api.FetchMedia(c.Params("postID"))
} }
if post.Id == "" || strings.Contains(err.Error(), "404") { if post.Id == "" || (err != nil && strings.Contains(err.Error(), "404")) {
return fmt.Errorf("404 page not found") c.Status(404)
return c.Render("errors/404", nil)
} }
if err != nil { if err != nil {
return err return err

View File

@ -32,6 +32,10 @@ func HandleTag(c *fiber.Ctx) error {
if err != nil { if err != nil {
return err return err
} }
if tag.Display == "" {
c.Status(404)
return c.Render("errors/404", nil)
}
return c.Render("tag", fiber.Map{ return c.Render("tag", fiber.Map{
"tag": tag, "tag": tag,

View File

@ -46,6 +46,11 @@ func HandleUser(c *fiber.Ctx) error {
} }
wg.Wait() wg.Wait()
if user.Username == "" {
c.Status(404)
return c.Render("errors/404", nil)
}
return c.Render("user", fiber.Map{ return c.Render("user", fiber.Map{
"user": user, "user": user,
"submissions": submissions, "submissions": submissions,

View File

@ -37,6 +37,10 @@ main {
margin: 0 24vw; margin: 0 24vw;
} }
.errorTitle {
text-align: center;
}
.posts { .posts {
margin-top: 1em; margin-top: 1em;
display: grid; display: grid;

20
views/errors/404.hbs Normal file
View File

@ -0,0 +1,20 @@
<!DOCTYPE html>
<html lang="en">
<head>
{{> 'partials/head' }}
<title>404 - rimgo</title>
</head>
<body>
{{> 'partials/header' }}
<main>
<h2 class="errorTitle">404 Not Found</h2>
<p class="errorTitle">Click <a href="/">here</a> to return to home.</p>
</main>
</body>
</html>