mirror of
https://git.nadeko.net/Fijxu/invidious.git
synced 2025-12-29 02:51:25 +00:00
add support for i2p backends and onion numbered backends
Some checks are pending
Build and release container directly from master / release (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.12.1, true) (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.13.2, true) (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.14.0, true) (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.15.0, true) (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (nightly, false) (push) Waiting to run
Invidious CI / build-docker (push) Waiting to run
Invidious CI / build-docker-arm64 (push) Waiting to run
Invidious CI / lint (push) Waiting to run
Some checks are pending
Build and release container directly from master / release (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.12.1, true) (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.13.2, true) (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.14.0, true) (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.15.0, true) (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (nightly, false) (push) Waiting to run
Invidious CI / build-docker (push) Waiting to run
Invidious CI / build-docker-arm64 (push) Waiting to run
Invidious CI / lint (push) Waiting to run
This commit is contained in:
@@ -9,9 +9,8 @@ module Invidious::Routes::API::Manifest
|
||||
region = env.params.query["region"]?
|
||||
|
||||
if CONFIG.invidious_companion.present?
|
||||
current_companion = env.get("current_companion").as(Int32)
|
||||
invidious_companion = CONFIG.invidious_companion[current_companion]
|
||||
return env.redirect "#{invidious_companion.public_url}/api/manifest/dash/id/#{id}?#{env.params.query}"
|
||||
companion_public_url = env.get("companion_public_url").as(String)
|
||||
return env.redirect "#{companion_public_url}/api/manifest/dash/id/#{id}?#{env.params.query}"
|
||||
end
|
||||
|
||||
# Since some implementations create playlists based on resolution regardless of different codecs,
|
||||
|
||||
@@ -25,11 +25,22 @@ module Invidious::Routes::BeforeAll
|
||||
|
||||
if CONFIG.invidious_companion.present?
|
||||
CONFIG.invidious_companion.each_with_index do |companion, index|
|
||||
if companion.domain == env.request.headers["Host"]
|
||||
env.set "current_companion", index
|
||||
env.set "domain", true
|
||||
break
|
||||
puts "inv-companion " + index.to_s
|
||||
if companion.domain.each_with_index do |domain, domain_index|
|
||||
puts "domain " + domain_index.to_s
|
||||
if domain == env.request.headers["Host"]
|
||||
env.set "current_companion", index
|
||||
env.set "companion_public_url", companion.public_url.to_s
|
||||
env.set "domain_index", domain_index
|
||||
if domain_index == 2
|
||||
env.set "companion_public_url", companion.i2p_public_url.to_s
|
||||
end
|
||||
puts "exit_inner"
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
break if env.get?("current_companion")
|
||||
end
|
||||
|
||||
if env.get?("current_companion").try &.as(Int32) == nil
|
||||
@@ -49,6 +60,7 @@ module Invidious::Routes::BeforeAll
|
||||
end
|
||||
|
||||
env.set "current_companion", current_companion
|
||||
env.set "companion_public_url", CONFIG.invidious_companion[current_companion].public_url.to_s
|
||||
end
|
||||
|
||||
extra_media_csp, extra_connect_csp = BackendInfo.get_csp(env.get("current_companion").as(Int32))
|
||||
|
||||
@@ -267,9 +267,8 @@ module Invidious::Routes::VideoPlayback
|
||||
# so we have a mechanism here to redirect to the latest version
|
||||
def self.latest_version(env)
|
||||
if CONFIG.invidious_companion.present?
|
||||
current_companion = env.get("current_companion").as(Int32)
|
||||
invidious_companion = CONFIG.invidious_companion[current_companion]
|
||||
return env.redirect "#{invidious_companion.public_url}/latest_version?#{env.params.query}"
|
||||
companion_public_url = env.get("companion_public_url").as(String)
|
||||
return env.redirect "#{companion_public_url}/latest_version?#{env.params.query}"
|
||||
end
|
||||
|
||||
id = env.params.query["id"]?
|
||||
|
||||
@@ -348,9 +348,8 @@ module Invidious::Routes::Watch
|
||||
|
||||
if (CONFIG.invidious_companion.present?)
|
||||
video = get_video(video_id, env: env)
|
||||
current_companion = env.get("current_companion").as(Int32)
|
||||
invidious_companion = CONFIG.invidious_companion[current_companion]
|
||||
return env.redirect "#{invidious_companion.public_url}/latest_version?#{env.params.query}"
|
||||
companion_public_url = env.get("companion_public_url").as(String)
|
||||
return env.redirect "#{companion_public_url}/latest_version?#{env.params.query}"
|
||||
else
|
||||
return Invidious::Routes::VideoPlayback.latest_version(env)
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user