From 264d3595b62dfb9b01d7a620f861bf420a8bfb5f Mon Sep 17 00:00:00 2001 From: blek Date: Sun, 5 Nov 2023 13:36:24 +1000 Subject: [PATCH] actually serve the resources --- resource/main.go | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/resource/main.go b/resource/main.go index 5bf03de..ac40530 100644 --- a/resource/main.go +++ b/resource/main.go @@ -1,7 +1,6 @@ package main import ( - "fmt" "log" "io/ioutil" ) @@ -15,6 +14,9 @@ type Resource struct { Url string `toml:"url"` Mime string `toml:"mime"` } +func (self Resource) Get() ([]byte, error) { + return ioutil.ReadFile(self.Url[7:]) +} type ResourceDConfig struct { Enabled bool `toml:"enabled"` @@ -36,20 +38,36 @@ func main() { if err != nil { panic(err) } _ = a - app := fiber.New() + app := fiber.New(fiber.Config { + Prefork: true, + CaseSensitive: false, + StrictRouting: true, + ServerHeader: "", + AppName: "blek! File resourceD", + }) + + app.Use(func (c *fiber.Ctx) error { + if ! conf.ResourceD.Enabled { + return c.Status(fiber.StatusNotFound).SendString("ResourceD is disabled") + } + return c.Next() + }) app.Get("/:id", func (c *fiber.Ctx) error { - if ! conf.ResourceD.Enabled { - return c.Status(fiber.StatusNotFound).SendString("Resource not found") - } - res, exists := conf.Resource[c.Params("id")] if ! exists { return c.Status(fiber.StatusNotFound).SendString("Resource not found") } - return c.SendString(fmt.Sprintf("Id: %s\nUrl: %s\nType: %s", c.Params("id"), res.Url, res.Mime)) + data, err := res.Get() + if err != nil { + panic(err) + } + + c.Response().Header.SetContentType(res.Mime) + c.Response().Header.SetContentLength(len(data)) + return c.Send(data) }) log.Fatal(app.Listen(conf.ResourceD.ListenURL))