Preserve connection close header of get_storyboard

This commit is contained in:
syeopite 2024-01-08 14:13:38 -08:00
parent 4bc77b81bf
commit 003c6f81dc
No known key found for this signature in database
GPG Key ID: A73C186DA3955A1A
1 changed files with 11 additions and 2 deletions

View File

@ -41,9 +41,14 @@ module Invidious::Routes::Images
end end
end end
# A callable proc to be used inside #proxy_image
callable_proc = ->(env : HTTP::Server::Context) {
env.response.headers["Connection"] = "close"
}
begin begin
get_ytimg_pool(authority).client &.get(url, headers) do |resp| get_ytimg_pool(authority).client &.get(url, headers) do |resp|
return self.proxy_image(env, resp) return self.proxy_image(env, resp, callable_proc: callable_proc)
end end
rescue ex rescue ex
end end
@ -133,7 +138,7 @@ module Invidious::Routes::Images
end end
end end
private def self.proxy_image(env, response) private def self.proxy_image(env, response, callable_proc = nil)
env.response.status_code = response.status_code env.response.status_code = response.status_code
response.headers.each do |key, value| response.headers.each do |key, value|
if !RESPONSE_HEADERS_BLACKLIST.includes?(key.downcase) if !RESPONSE_HEADERS_BLACKLIST.includes?(key.downcase)
@ -143,6 +148,10 @@ module Invidious::Routes::Images
env.response.headers["Access-Control-Allow-Origin"] = "*" env.response.headers["Access-Control-Allow-Origin"] = "*"
if callable_proc
callable_proc.call(env)
end
if response.status_code >= 300 if response.status_code >= 300
return env.response.headers.delete("Transfer-Encoding") return env.response.headers.delete("Transfer-Encoding")
end end