mirror of
https://github.com/iv-org/invidious.git
synced 2024-12-04 20:49:13 +05:30
VideoJS Dep. Manager: allow custom cache directory
This commit is contained in:
parent
ee5a396a0a
commit
e33c407855
@ -73,6 +73,7 @@ class PlayerDependenciesConfig
|
|||||||
|
|
||||||
property version : String
|
property version : String
|
||||||
property registry_url : String
|
property registry_url : String
|
||||||
|
property cache_directory : String
|
||||||
property dependencies : Hash(YAML::Any, ConfigDependency)
|
property dependencies : Hash(YAML::Any, ConfigDependency)
|
||||||
|
|
||||||
def get_dependencies_to_fetch
|
def get_dependencies_to_fetch
|
||||||
@ -95,14 +96,24 @@ class Config
|
|||||||
|
|
||||||
@dependency_config = PlayerDependenciesConfig.from_yaml(File.read(path))
|
@dependency_config = PlayerDependenciesConfig.from_yaml(File.read(path))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Less verbose way to access @dependency_config.registry_url
|
||||||
|
def registry_url
|
||||||
|
return @dependency_config.registry_url
|
||||||
|
end
|
||||||
|
|
||||||
|
# Less verbose way to access @dependency_config.cache_directory
|
||||||
|
def cache_directory
|
||||||
|
return @dependency_config.cache_directory
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# Object representing a player dependency
|
# Object representing a player dependency
|
||||||
class Dependency
|
class Dependency
|
||||||
@config : ConfigDependency
|
@config : ConfigDependency
|
||||||
|
|
||||||
def initialize(@config : ConfigDependency, @dependency : String, @tmp_dir_path : String)
|
def initialize(@config : ConfigDependency, @dependency : String)
|
||||||
@download_path = "#{@tmp_dir_path}/#{@dependency}"
|
@download_path = "#{CONFIG.cache_directory}/#{@dependency}"
|
||||||
@destination_path = "assets/videojs/#{@dependency}"
|
@destination_path = "assets/videojs/#{@dependency}"
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -132,7 +143,7 @@ class Dependency
|
|||||||
Dir.mkdir(@download_path)
|
Dir.mkdir(@download_path)
|
||||||
end
|
end
|
||||||
|
|
||||||
HTTP::Client.get("#{CONFIG.dependency_config.registry_url}}/#{@dependency}/-/#{@dependency}-#{@config.version}.tgz") do |response|
|
HTTP::Client.get("#{CONFIG.registry_url}/#{@dependency}/-/#{@dependency}-#{@config.version}.tgz") do |response|
|
||||||
data = response.body_io.gets_to_end
|
data = response.body_io.gets_to_end
|
||||||
File.write(downloaded_package_path, data)
|
File.write(downloaded_package_path, data)
|
||||||
self.validate_checksum(data)
|
self.validate_checksum(data)
|
||||||
@ -243,13 +254,12 @@ end
|
|||||||
|
|
||||||
dependencies_to_install = CONFIG.dependency_config.get_dependencies_to_fetch
|
dependencies_to_install = CONFIG.dependency_config.get_dependencies_to_fetch
|
||||||
|
|
||||||
tmp_dir_path = "#{Dir.tempdir}/invidious-videojs-dep-install"
|
Dir.mkdir(CONFIG.cache_directory) if !Dir.exists? CONFIG.cache_directory
|
||||||
Dir.mkdir(tmp_dir_path) if !Dir.exists? tmp_dir_path
|
|
||||||
channel = Channel(String | Exception).new
|
channel = Channel(String | Exception).new
|
||||||
|
|
||||||
dependencies_to_install.each do |dep_name, dependency_config|
|
dependencies_to_install.each do |dep_name, dependency_config|
|
||||||
spawn do
|
spawn do
|
||||||
dependency = Dependency.new(dependency_config, dep_name.as_s, tmp_dir_path)
|
dependency = Dependency.new(dependency_config, dep_name.as_s)
|
||||||
dependency.fetch
|
dependency.fetch
|
||||||
channel.send(dep_name.as_s)
|
channel.send(dep_name.as_s)
|
||||||
rescue ex
|
rescue ex
|
||||||
@ -274,5 +284,5 @@ end
|
|||||||
|
|
||||||
# Cleanup
|
# Cleanup
|
||||||
if CONFIG.clear_cache
|
if CONFIG.clear_cache
|
||||||
FileUtils.rm_r("#{tmp_dir_path}")
|
FileUtils.rm_r("#{CONFIG.cache_directory}")
|
||||||
end
|
end
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
version: 1
|
version: 1
|
||||||
registry_url: "https://registry.npmjs.org"
|
registry_url: "https://registry.npmjs.org"
|
||||||
|
cache_directory: "/tmp/invidious-videojs-dep-install"
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
#Due to a 'video append of' error (see #3011), we're stuck on 7.12.1.
|
#Due to a 'video append of' error (see #3011), we're stuck on 7.12.1.
|
||||||
video.js:
|
video.js:
|
||||||
|
Loading…
Reference in New Issue
Block a user