diff options
| author | Omar Roth <omarroth@protonmail.com> | 2019-11-01 12:02:38 -0400 |
|---|---|---|
| committer | Omar Roth <omarroth@protonmail.com> | 2019-11-01 12:02:38 -0400 |
| commit | 02e1cdf2104383f65e1f313ded326843aee77efe (patch) | |
| tree | 897b16ef8d2de6ae7759e1eaf7d74304a91470f4 | |
| parent | b58950c574fae491b7194594d93df13c3c972c3c (diff) | |
| download | invidious-02e1cdf2104383f65e1f313ded326843aee77efe.tar.gz invidious-02e1cdf2104383f65e1f313ded326843aee77efe.tar.bz2 invidious-02e1cdf2104383f65e1f313ded326843aee77efe.zip | |
Add support for '/yts/img' endpoint
| -rw-r--r-- | src/invidious.cr | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/invidious.cr b/src/invidious.cr index aad08e40..d2d20284 100644 --- a/src/invidious.cr +++ b/src/invidious.cr @@ -5738,6 +5738,36 @@ get "/s_p/:id/:name" do |env| end end +get "/yts/img/:name" do |env| + headers = HTTP::Headers.new + REQUEST_HEADERS_WHITELIST.each do |header| + if env.request.headers[header]? + headers[header] = env.request.headers[header] + end + end + + begin + YT_POOL.client &.get(env.request.resource, headers) do |response| + env.response.status_code = response.status_code + response.headers.each do |key, value| + if !RESPONSE_HEADERS_BLACKLIST.includes? key + env.response.headers[key] = value + end + end + + env.response.headers["Access-Control-Allow-Origin"] = "*" + + if response.status_code >= 300 && response.status_code != 404 + env.response.headers.delete("Transfer-Encoding") + break + end + + proxy_file(response, env) + end + rescue ex + end +end + get "/vi/:id/:name" do |env| id = env.params.url["id"] name = env.params.url["name"] |
