Feature: error page
This commit is contained in:
parent
fbc727efff
commit
516d68b8a6
5 changed files with 78 additions and 119 deletions
20
main.go
20
main.go
|
@ -35,6 +35,26 @@ func setup_router() *fiber.App {
|
|||
EnableTrustedProxyCheck: true,
|
||||
TrustedProxies: []string{"0.0.0.0/0"},
|
||||
ProxyHeader: fiber.HeaderXForwardedFor,
|
||||
ErrorHandler: func(c *fiber.Ctx, err error) error {
|
||||
// Status code defaults to 500
|
||||
code := fiber.StatusInternalServerError
|
||||
|
||||
// // Retrieve the custom status code if it's a *fiber.Error
|
||||
// var e *fiber.Error
|
||||
// if errors.As(err, &e) {
|
||||
// code = e.Code
|
||||
// }
|
||||
|
||||
// Send custom error page
|
||||
err = c.Status(code).Render("error", fiber.Map{"Title": code, "Error": err})
|
||||
if err != nil {
|
||||
// In case the SendFile fails
|
||||
return c.Status(fiber.StatusInternalServerError).SendString("Internal Server Error")
|
||||
}
|
||||
|
||||
// Return from handler
|
||||
return nil
|
||||
},
|
||||
})
|
||||
|
||||
server.Use(logger.New())
|
||||
|
|
|
@ -1,6 +0,0 @@
|
|||
{{ template "header.html" .Title }}
|
||||
<div class="container" style="text-align: center">
|
||||
<h2>Error: {{ .Title }}</h2>
|
||||
{{ .Error }}
|
||||
</div>
|
||||
{{ template "footer.html" }}
|
4
template/error.jet.html
Normal file
4
template/error.jet.html
Normal file
|
@ -0,0 +1,4 @@
|
|||
<div class="container" style="text-align: center">
|
||||
<h2>Error: {{ Title }}</h2>
|
||||
{{ Error }}
|
||||
</div>
|
|
@ -3,55 +3,21 @@
|
|||
|
||||
<div class="switcher">
|
||||
<span class="switch-title">Content</span>
|
||||
<a href="/ranking?content=all&mode={{ Mode }}&page=1" class="switch-button"
|
||||
>Overall</a
|
||||
>
|
||||
<a
|
||||
href="/ranking?content=illust&mode={{ Mode }}&page=1"
|
||||
class="switch-button"
|
||||
>Illustrations</a
|
||||
>
|
||||
<a
|
||||
href="/ranking?content=manga&mode={{ Mode }}&page=1"
|
||||
class="switch-button"
|
||||
>Mangas</a
|
||||
>
|
||||
<a href="/ranking?content=all&mode={{ Mode }}&page=1" class="switch-button">Overall</a>
|
||||
<a href="/ranking?content=illust&mode={{ Mode }}&page=1" class="switch-button">Illustrations</a>
|
||||
<a href="/ranking?content=manga&mode={{ Mode }}&page=1" class="switch-button">Mangas</a>
|
||||
</div>
|
||||
<br />
|
||||
|
||||
<div class="switcher">
|
||||
<span class="switch-title">Modes</span>
|
||||
<a
|
||||
href="/ranking?content={{ Content }}&mode=daily&page=1"
|
||||
class="switch-button"
|
||||
>Daily</a
|
||||
>
|
||||
<a
|
||||
href="/ranking?content={{ Content }}&mode=weekly&page=1"
|
||||
class="switch-button"
|
||||
>Weekly</a
|
||||
>
|
||||
<a
|
||||
href="/ranking?content={{ Content }}&mode=monthly&page=1"
|
||||
class="switch-button"
|
||||
>Monthly</a
|
||||
>
|
||||
<a
|
||||
href="/ranking?content={{ Content }}&mode=rookie&page=1"
|
||||
class="switch-button"
|
||||
>Rookie</a
|
||||
>
|
||||
<a href="/ranking?content={{ Content }}&mode=daily&page=1" class="switch-button">Daily</a>
|
||||
<a href="/ranking?content={{ Content }}&mode=weekly&page=1" class="switch-button">Weekly</a>
|
||||
<a href="/ranking?content={{ Content }}&mode=monthly&page=1" class="switch-button">Monthly</a>
|
||||
<a href="/ranking?content={{ Content }}&mode=rookie&page=1" class="switch-button">Rookie</a>
|
||||
<span class="switch-seperator"></span>
|
||||
<a
|
||||
href="/ranking?content={{ Content }}&mode=daily_r18&page=1"
|
||||
class="switch-button"
|
||||
>Daily (R-18)</a
|
||||
>
|
||||
<a
|
||||
href="/ranking?content={{ Content }}&mode=weekly_r18&page=1"
|
||||
class="switch-button"
|
||||
>Weekly (R-18)</a
|
||||
>
|
||||
<a href="/ranking?content={{ Content }}&mode=daily_r18&page=1" class="switch-button">Daily (R-18)</a>
|
||||
<a href="/ranking?content={{ Content }}&mode=weekly_r18&page=1" class="switch-button">Weekly (R-18)</a>
|
||||
</div>
|
||||
<br />
|
||||
|
||||
|
@ -62,24 +28,15 @@
|
|||
<div class="artwork-page-count"><span>⧉ {{ .Pages }}</span></div>
|
||||
{{ end }}
|
||||
<a href="/artworks/{{ .ID }}">
|
||||
<img
|
||||
src="{{ proxyImage(.Image) }}"
|
||||
alt="{{ .Title }}"
|
||||
class="artwork-master-image"
|
||||
/>
|
||||
<img src="{{ .Image }}" alt="{{ .Title }}" class="artwork-master-image" />
|
||||
</a>
|
||||
|
||||
<a class="artwork-thumbnail-title" href="/artworks/{{ .ID }}">
|
||||
<h3 class="no-margin">{{ .Title }}</h3>
|
||||
</a>
|
||||
<a href="/users/{{ .ArtistID }}" class="artwork-thumbnail-artist flex"
|
||||
><img
|
||||
src="{{ proxyImage(.ArtistAvatar) }}"
|
||||
alt="{{ .ArtistName }}"
|
||||
class="artwork-thumbnail-artist-avatar border-rounded"
|
||||
/>
|
||||
{{ .ArtistName }}</a
|
||||
>
|
||||
<a href="/users/{{ .ArtistID }}" class="artwork-thumbnail-artist flex"><img src="{{ .ArtistAvatar }}"
|
||||
alt="{{ .ArtistName }}" class="artwork-thumbnail-artist-avatar border-rounded" />
|
||||
{{ .ArtistName }}</a>
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
|
@ -88,16 +45,9 @@
|
|||
<a href="#" class="pagination-button disabled">First</a>
|
||||
<a href="#" class="pagination-button disabled">Previous</a>
|
||||
{{ else }}
|
||||
<a
|
||||
href="/ranking?content={{ Content }}&mode={{ Mode }}&page=1"
|
||||
class="pagination-button"
|
||||
>First</a
|
||||
>
|
||||
<a
|
||||
href="/ranking?content={{ Content }}&mode={{ Mode }}&page={{ dec(Page) }}"
|
||||
class="pagination-button"
|
||||
>Previous</a
|
||||
>
|
||||
<a href="/ranking?content={{ Content }}&mode={{ Mode }}&page=1" class="pagination-button">First</a>
|
||||
<a href="/ranking?content={{ Content }}&mode={{ Mode }}&page={{ dec(Page) }}"
|
||||
class="pagination-button">Previous</a>
|
||||
{{ end }}
|
||||
|
||||
<a href="#" class="pagination-button disabled">{{ Page }}</a>
|
||||
|
@ -106,16 +56,8 @@
|
|||
<a href="#" class="pagination-button disabled">Next</a>
|
||||
<a href="#" class="pagination-button disabled">Last</a>
|
||||
{{ else }}
|
||||
<a
|
||||
href="/ranking?content={{ Content }}&mode={{ Mode }}&page={{ inc(Page) }}"
|
||||
class="pagination-button"
|
||||
>Next</a
|
||||
>
|
||||
<a
|
||||
href="/ranking?content={{ Content }}&mode={{ Mode }}&page=10"
|
||||
class="pagination-button"
|
||||
>Last</a
|
||||
>
|
||||
<a href="/ranking?content={{ Content }}&mode={{ Mode }}&page={{ inc(Page) }}" class="pagination-button">Next</a>
|
||||
<a href="/ranking?content={{ Content }}&mode={{ Mode }}&page=10" class="pagination-button">Last</a>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -122,7 +122,6 @@ func ranking_page(c *fiber.Ctx) error {
|
|||
if image_proxy == nil {
|
||||
image_proxy = &configs.ProxyServer
|
||||
}
|
||||
|
||||
mode := c.Query("mode", "daily")
|
||||
|
||||
content := c.Query("content", "all")
|
||||
|
|
Loading…
Reference in a new issue