From c21b93a8e5038bba9e91e40ebe569dbf62b66c98 Mon Sep 17 00:00:00 2001 From: doingodswork Date: Sat, 16 Jan 2021 16:54:12 +0100 Subject: [PATCH] Fix ID isn't unescaped when putting meta into context --- middleware.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/middleware.go b/middleware.go index d7d6eb1..90ee879 100644 --- a/middleware.go +++ b/middleware.go @@ -2,6 +2,7 @@ package stremio import ( "fmt" + "net/url" "regexp" "strconv" "strings" @@ -308,6 +309,12 @@ func putMetaInContext(c *fiber.Ctx, metaClient MetaFetcher, logger *zap.Logger) // type and id can never be empty, because that's been checked by a previous middleware t := c.Params("type", "") id := c.Params("id", "") + id, err = url.PathUnescape(id) + if err != nil { + logger.Error("ID in URL parameters couldn't be unescaped", zap.String("id", id)) + return + } + switch t { case "movie": meta, err = metaClient.GetMovie(c.Context(), id) @@ -337,6 +344,7 @@ func putMetaInContext(c *fiber.Ctx, metaClient MetaFetcher, logger *zap.Logger) return } } + logger.Debug("Got meta from cinemata client", zap.String("meta", fmt.Sprintf("%+v", meta))) c.Locals("meta", meta) }