diff --git a/src/invidious/helpers/backend_info.cr b/src/invidious/helpers/backend_info.cr index dd496e34..2e7b1c39 100644 --- a/src/invidious/helpers/backend_info.cr +++ b/src/invidious/helpers/backend_info.cr @@ -2,12 +2,15 @@ module BackendInfo extend self @@exvpp_url : Array(String) = Array.new(CONFIG.invidious_companion.size, "") @@status : Array(Int32) = Array.new(CONFIG.invidious_companion.size, 0) + @@extra_media_csp : String = "" + @@extra_connect_csp : String = "" def check_backends check_companion() + generate_csp() end - def check_companion + private def check_companion CONFIG.invidious_companion.each_with_index do |companion, index| spawn do begin @@ -50,6 +53,23 @@ module BackendInfo end end + private def generate_csp + @@extra_media_csp = "" + @@extra_connect_csp = "" + + CONFIG.invidious_companion.each do |companion| + @@extra_media_csp += " #{companion.public_url}" + @@extra_connect_csp += " #{companion.public_url}" + end + exvpp_urls = self.get_exvpp + exvpp_urls.each do |exvpp_url| + if !exvpp_url.empty? + @@extra_media_csp += " #{exvpp_url}" + @@extra_connect_csp += " #{exvpp_url}" + end + end + end + def get_status return @@status end @@ -57,4 +77,8 @@ module BackendInfo def get_exvpp return @@exvpp_url end + + def get_csp + return @@extra_media_csp, @@extra_connect_csp + end end diff --git a/src/invidious/routes/before_all.cr b/src/invidious/routes/before_all.cr index a8218ea4..72606929 100644 --- a/src/invidious/routes/before_all.cr +++ b/src/invidious/routes/before_all.cr @@ -41,17 +41,7 @@ module Invidious::Routes::BeforeAll env.set "current_companion", current_companion - CONFIG.invidious_companion.each do |companion| - extra_media_csp += " #{companion.public_url}" - extra_connect_csp += " #{companion.public_url}" - end - exvpp_urls = BackendInfo.get_exvpp - exvpp_urls.each do |exvpp_url| - if !exvpp_url.empty? - extra_media_csp += " #{exvpp_url}" - extra_connect_csp += " #{exvpp_url}" - end - end + extra_media_csp, extra_connect_csp = BackendInfo.get_csp() end if !CONFIG.external_videoplayback_proxy.empty?