summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/invidious.cr26
1 files changed, 15 insertions, 11 deletions
diff --git a/src/invidious.cr b/src/invidious.cr
index fa7c0b21..b0df9dc0 100644
--- a/src/invidious.cr
+++ b/src/invidious.cr
@@ -378,7 +378,7 @@ get "/watch" do |env|
scheme = "https://"
else
scheme = "http://"
- end
+ end
host = env.request.headers["Host"]
url = "#{scheme}#{host}"
@@ -2615,18 +2615,22 @@ end
get "/:id" do |env|
id = env.params.url["id"]
- params = [] of String
- env.params.query.each do |k, v|
- params << "#{k}=#{v}"
- end
- params = params.join("&")
+ if md = id.match(/[a-zA-Z0-9_-]{11}/)
+ params = [] of String
+ env.params.query.each do |k, v|
+ params << "#{k}=#{v}"
+ end
+ params = params.join("&")
- url = "/watch?v=#{id}"
- if params
- url += "&#{params}"
- end
+ url = "/watch?v=#{id}"
+ if params
+ url += "&#{params}"
+ end
- env.redirect url
+ env.redirect url
+ else
+ env.response.status_code = 404
+ end
end
error 404 do |env|