summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOmar Roth <omarroth@protonmail.com>2019-11-01 12:02:38 -0400
committerOmar Roth <omarroth@protonmail.com>2019-11-01 12:02:38 -0400
commit02e1cdf2104383f65e1f313ded326843aee77efe (patch)
tree897b16ef8d2de6ae7759e1eaf7d74304a91470f4
parentb58950c574fae491b7194594d93df13c3c972c3c (diff)
downloadinvidious-02e1cdf2104383f65e1f313ded326843aee77efe.tar.gz
invidious-02e1cdf2104383f65e1f313ded326843aee77efe.tar.bz2
invidious-02e1cdf2104383f65e1f313ded326843aee77efe.zip
Add support for '/yts/img' endpoint
-rw-r--r--src/invidious.cr30
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"]