forked from midou/invidious
Add filtered handler for videoplayback
This commit is contained in:
parent
f08199e7cf
commit
bc068721ab
@ -29,6 +29,30 @@ class Config
|
||||
})
|
||||
end
|
||||
|
||||
class FilteredCompressHandler < Kemal::Handler
|
||||
exclude ["/videoplayback"]
|
||||
|
||||
def call(env)
|
||||
return call_next env if exclude_match? env
|
||||
|
||||
{% if flag?(:without_zlib) %}
|
||||
call_next env
|
||||
{% else %}
|
||||
request_headers = env.request.headers
|
||||
|
||||
if request_headers.includes_word?("Accept-Encoding", "gzip")
|
||||
env.response.headers["Content-Encoding"] = "gzip"
|
||||
env.response.output = Gzip::Writer.new(env.response.output, sync_close: true)
|
||||
elsif request_headers.includes_word?("Accept-Encoding", "deflate")
|
||||
env.response.headers["Content-Encoding"] = "deflate"
|
||||
env.response.output = Flate::Writer.new(env.response.output, sync_close: true)
|
||||
end
|
||||
|
||||
call_next env
|
||||
{% end %}
|
||||
end
|
||||
end
|
||||
|
||||
class Video
|
||||
module HTTPParamConverter
|
||||
def self.from_rs(rs)
|
||||
|
@ -872,6 +872,7 @@ static_headers do |response, filepath, filestat|
|
||||
end
|
||||
|
||||
public_folder "assets"
|
||||
gzip true
|
||||
|
||||
add_handler FilteredCompressHandler.new
|
||||
|
||||
Kemal.run
|
||||
|
Loading…
Reference in New Issue
Block a user