diff options
| author | Omar Roth <omarroth@hotmail.com> | 2018-07-30 08:30:08 -0500 |
|---|---|---|
| committer | Omar Roth <omarroth@hotmail.com> | 2018-07-30 08:30:08 -0500 |
| commit | 2e69774b1ffd78e558b5c61b3191b188cee5927d (patch) | |
| tree | 22ae4d519b739b1f14cef23952dba108dde6cc30 | |
| parent | 01e5bec246c1e23303bdcbb57b1d7d47009ccf39 (diff) | |
| download | invidious-2e69774b1ffd78e558b5c61b3191b188cee5927d.tar.gz invidious-2e69774b1ffd78e558b5c61b3191b188cee5927d.tar.bz2 invidious-2e69774b1ffd78e558b5c61b3191b188cee5927d.zip | |
Fix video ID redirect
| -rw-r--r-- | src/invidious.cr | 26 |
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| |
