summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOmar Roth <omarroth@hotmail.com>2018-08-25 17:24:07 -0500
committerOmar Roth <omarroth@hotmail.com>2018-08-25 17:24:07 -0500
commit41a04e7c67ad520e9315d01c2b79a689ec21e30c (patch)
tree809d6b40e663823b18862fd2cb1b4119f9370a50
parent77b12b6249db4e27c5014202b3e8ca17acaf306b (diff)
downloadinvidious-41a04e7c67ad520e9315d01c2b79a689ec21e30c.tar.gz
invidious-41a04e7c67ad520e9315d01c2b79a689ec21e30c.tar.bz2
invidious-41a04e7c67ad520e9315d01c2b79a689ec21e30c.zip
Clean up /videoplayback
-rw-r--r--src/invidious.cr40
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