From 484c0aceaaa5329a76821a040db9f753bcee86bd Mon Sep 17 00:00:00 2001 From: Jacob Gunther Date: Thu, 20 Jul 2023 14:13:25 -0500 Subject: [PATCH] Add favicon route --- src/favicon.ico | Bin 0 -> 15086 bytes src/routes.go | 6 ++++++ src/util.go | 6 ++++++ 3 files changed, 12 insertions(+) create mode 100644 src/favicon.ico diff --git a/src/favicon.ico b/src/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..1131f6899ec269836c57bd0c9a9d8ab76d55bfbd GIT binary patch literal 15086 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 BTE+kX literal 0 HcmV?d00001 diff --git a/src/routes.go b/src/routes.go index 9609795..5b5ae92 100644 --- a/src/routes.go +++ b/src/routes.go @@ -12,6 +12,7 @@ import ( func init() { app.Get("/ping", PingHandler) + app.Get("/favicon.ico", FaviconHandler) app.Get("/list", ListHandler) app.Get("/skin/:uuid", SkinHandler) app.Get("/face/:uuid", FaceHandler) @@ -29,6 +30,11 @@ func PingHandler(ctx *fiber.Ctx) error { return ctx.SendStatus(http.StatusOK) } +// FaviconHandler serves the favicon.ico file to any users that visit the API using a browser. +func FaviconHandler(ctx *fiber.Ctx) error { + return ctx.Type("ico").Send(favicon) +} + // ListHandler is the API handler used for the `/list` route. func ListHandler(ctx *fiber.Ctx) error { result := make([]string, 0) diff --git a/src/util.go b/src/util.go index 3aea367..d6808af 100644 --- a/src/util.go +++ b/src/util.go @@ -2,6 +2,7 @@ package main import ( "bytes" + _ "embed" "fmt" "image" "image/draw" @@ -16,6 +17,11 @@ import ( "github.com/mineatar-io/skin-render" ) +var ( + //go:embed favicon.ico + favicon []byte +) + // QueryParams is used by most all API routes as options for how the image should be rendered, or how errors should be handled. type QueryParams struct { Scale int `query:"scale"`