diff options
| author | Omar Roth <omarroth@hotmail.com> | 2018-08-25 17:24:07 -0500 |
|---|---|---|
| committer | Omar Roth <omarroth@hotmail.com> | 2018-08-25 17:24:07 -0500 |
| commit | 41a04e7c67ad520e9315d01c2b79a689ec21e30c (patch) | |
| tree | 809d6b40e663823b18862fd2cb1b4119f9370a50 | |
| parent | 77b12b6249db4e27c5014202b3e8ca17acaf306b (diff) | |
| download | invidious-41a04e7c67ad520e9315d01c2b79a689ec21e30c.tar.gz invidious-41a04e7c67ad520e9315d01c2b79a689ec21e30c.tar.bz2 invidious-41a04e7c67ad520e9315d01c2b79a689ec21e30c.zip | |
Clean up /videoplayback
| -rw-r--r-- | src/invidious.cr | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/src/invidious.cr b/src/invidious.cr index 9e12de40..3c16650e 100644 --- a/src/invidious.cr +++ b/src/invidious.cr @@ -2659,6 +2659,12 @@ get "/videoplayback" do |env| client = make_client(URI.parse(host)) response = client.head(url) + if response.headers["Location"]? + url = URI.parse(response.headers["Location"]) + env.response.headers["Access-Control-Allow-Origin"] = "*" + next env.redirect url.full_path + end + headers = env.request.headers headers.delete("Host") headers.delete("Cookie") @@ -2666,30 +2672,24 @@ get "/videoplayback" do |env| headers.delete("Referer") client.get(url, headers) do |response| - if response.headers["Location"]? - url = URI.parse(response.headers["Location"]) - env.response.headers["Access-Control-Allow-Origin"] = "*" - env.redirect url.full_path - else - env.response.status_code = response.status_code + env.response.status_code = response.status_code - response.headers.each do |key, value| - env.response.headers[key] = value - end + response.headers.each do |key, value| + env.response.headers[key] = value + end - env.response.headers["Access-Control-Allow-Origin"] = "*" + env.response.headers["Access-Control-Allow-Origin"] = "*" - begin - chunk_size = 4096 - size = 1 - while size > 0 - size = IO.copy(response.body_io, env.response.output, chunk_size) - env.response.flush - Fiber.yield - end - rescue ex - break + begin + chunk_size = 4096 + size = 1 + while size > 0 + size = IO.copy(response.body_io, env.response.output, chunk_size) + env.response.flush + Fiber.yield end + rescue ex + break end end end |
