summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/invidious.cr108
1 files changed, 54 insertions, 54 deletions
diff --git a/src/invidious.cr b/src/invidious.cr
index af0c549d..c69a4198 100644
--- a/src/invidious.cr
+++ b/src/invidious.cr
@@ -4965,40 +4965,40 @@ get "/videoplayback" do |env|
client = make_client(URI.parse(host), proxies, region)
begin
- client.get(url, headers) do |response|
- env.response.status_code = response.status_code
+ client.get(url, headers) do |response|
+ env.response.status_code = response.status_code
- response.headers.each do |key, value|
+ response.headers.each do |key, value|
if !{"Access-Control-Allow-Origin", "Alt-Svc", "Server"}.includes? key
- env.response.headers[key] = value
+ env.response.headers[key] = value
+ end
end
- end
- env.response.headers["Access-Control-Allow-Origin"] = "*"
+ env.response.headers["Access-Control-Allow-Origin"] = "*"
+
+ if response.headers["Location"]?
+ url = URI.parse(response.headers["Location"])
+ host = url.host
- if response.headers["Location"]?
- url = URI.parse(response.headers["Location"])
- host = url.host
+ url = url.full_path
+ url += "&host=#{host}"
- url = url.full_path
- url += "&host=#{host}"
+ if region
+ url += "&region=#{region}"
+ end
- if region
- url += "&region=#{region}"
+ next env.redirect url
end
- next env.redirect url
- end
+ if title = query_params["title"]?
+ # https://blog.fastmail.com/2011/06/24/download-non-english-filenames/
+ env.response.headers["Content-Disposition"] = "attachment; filename=\"#{URI.escape(title)}\"; filename*=UTF-8''#{URI.escape(title)}"
+ end
- if title = query_params["title"]?
- # https://blog.fastmail.com/2011/06/24/download-non-english-filenames/
- env.response.headers["Content-Disposition"] = "attachment; filename=\"#{URI.escape(title)}\"; filename*=UTF-8''#{URI.escape(title)}"
+ proxy_file(response, env)
end
-
- proxy_file(response, env)
- end
rescue ex
-end
+ end
end
# We need this so the below route works as expected
@@ -5018,21 +5018,21 @@ get "/ggpht/*" do |env|
end
begin
- client.get(url, headers) do |response|
- response.headers.each do |key, value|
+ client.get(url, headers) do |response|
+ response.headers.each do |key, value|
if !{"Access-Control-Allow-Origin", "Alt-Svc", "Server"}.includes? key
- env.response.headers[key] = value
+ env.response.headers[key] = value
+ end
end
- end
- if response.status_code == 304
- break
- end
+ if response.status_code == 304
+ break
+ end
- env.response.headers["Access-Control-Allow-Origin"] = "*"
+ env.response.headers["Access-Control-Allow-Origin"] = "*"
- proxy_file(response, env)
- end
+ proxy_file(response, env)
+ end
rescue ex
end
end
@@ -5066,22 +5066,22 @@ get "/sb/:id/:storyboard/:index" do |env|
end
begin
- client.get(url, headers) do |response|
- env.response.status_code = response.status_code
- response.headers.each do |key, value|
+ client.get(url, headers) do |response|
+ env.response.status_code = response.status_code
+ response.headers.each do |key, value|
if !{"Access-Control-Allow-Origin", "Alt-Svc", "Server"}.includes? key
- env.response.headers[key] = value
+ env.response.headers[key] = value
+ end
end
- end
- if response.status_code >= 400
- break
- end
+ if response.status_code >= 400
+ break
+ end
- env.response.headers["Access-Control-Allow-Origin"] = "*"
+ env.response.headers["Access-Control-Allow-Origin"] = "*"
- proxy_file(response, env)
- end
+ proxy_file(response, env)
+ end
rescue ex
end
end
@@ -5111,22 +5111,22 @@ get "/vi/:id/:name" do |env|
end
begin
- client.get(url, headers) do |response|
- env.response.status_code = response.status_code
- response.headers.each do |key, value|
+ client.get(url, headers) do |response|
+ env.response.status_code = response.status_code
+ response.headers.each do |key, value|
if !{"Access-Control-Allow-Origin", "Alt-Svc", "Server"}.includes? key
- env.response.headers[key] = value
+ env.response.headers[key] = value
+ end
end
- end
- if response.status_code == 304
- break
- end
+ if response.status_code == 304
+ break
+ end
- env.response.headers["Access-Control-Allow-Origin"] = "*"
+ env.response.headers["Access-Control-Allow-Origin"] = "*"
- proxy_file(response, env)
- end
+ proxy_file(response, env)
+ end
rescue ex
end
end