mirror of
https://github.com/iv-org/invidious.git
synced 2025-04-18 06:35:49 -04:00
Merge pull request #74 from catspeed-cc/dev-token-monitor-cleanup
Merge: dev-token-monitor-cleanup into development
This commit is contained in:
commit
6669defdee
40
src/invidious/helpers/tokenmon.cr
Normal file
40
src/invidious/helpers/tokenmon.cr
Normal file
@ -0,0 +1,40 @@
|
||||
class Invidious::TokenMon
|
||||
|
||||
@@instance = new
|
||||
|
||||
def self.pot
|
||||
@@pot
|
||||
end
|
||||
|
||||
def self.vdata
|
||||
@@vdata
|
||||
end
|
||||
|
||||
def initialize
|
||||
|
||||
@@pot = "error"
|
||||
@@vdata = "error"
|
||||
|
||||
end
|
||||
|
||||
def self.get_tokens
|
||||
|
||||
# Load config from file or YAML string env var
|
||||
env_config_file = "INVIDIOUS_CONFIG_FILE"
|
||||
env_config_yaml = "INVIDIOUS_CONFIG"
|
||||
|
||||
config_file = ENV.has_key?(env_config_file) ? ENV.fetch(env_config_file) : "config/config.yml"
|
||||
config_yaml = ENV.has_key?(env_config_yaml) ? ENV.fetch(env_config_yaml) : File.read(config_file)
|
||||
|
||||
config = Config.from_yaml(config_yaml)
|
||||
|
||||
@@pot = config.po_token
|
||||
@@vdata = config.visitor_data
|
||||
|
||||
end
|
||||
|
||||
def self.get_instance
|
||||
return @@instance
|
||||
end
|
||||
|
||||
end
|
@ -6,10 +6,10 @@ class Invidious::Jobs::MonitorCfgTokensJob < Invidious::Jobs::BaseJob
|
||||
|
||||
LOGGER.info("jobs: running MonitorCfgTokensJob job")
|
||||
|
||||
ReloadTokens.get_tokens
|
||||
Invidious::TokenMon.get_tokens
|
||||
|
||||
LOGGER.info("jobs: MonitorCfgTokensJob: pot: " + ReloadTokens.pot.as(String))
|
||||
LOGGER.info("jobs: MonitorCfgTokensJob: vdata: " + ReloadTokens.vdata.as(String))
|
||||
LOGGER.info("jobs: MonitorCfgTokensJob: pot: " + Invidious::TokenMon.pot.as(String))
|
||||
LOGGER.info("jobs: MonitorCfgTokensJob: vdata: " + Invidious::TokenMon.vdata.as(String))
|
||||
|
||||
sleep 1.minutes
|
||||
end
|
@ -1,83 +0,0 @@
|
||||
class ReloadTokens
|
||||
|
||||
@@instance = new
|
||||
|
||||
def self.pot
|
||||
@@pot
|
||||
end
|
||||
|
||||
def self.vdata
|
||||
@@vdata
|
||||
end
|
||||
|
||||
def initialize
|
||||
|
||||
@@pot = "error"
|
||||
@@vdata = "error"
|
||||
|
||||
end
|
||||
|
||||
def self.get_tokens
|
||||
|
||||
# Load config from file or YAML string env var
|
||||
env_config_file = "INVIDIOUS_CONFIG_FILE"
|
||||
env_config_yaml = "INVIDIOUS_CONFIG"
|
||||
|
||||
config_file = ENV.has_key?(env_config_file) ? ENV.fetch(env_config_file) : "config/config.yml"
|
||||
config_yaml = ENV.has_key?(env_config_yaml) ? ENV.fetch(env_config_yaml) : File.read(config_file)
|
||||
|
||||
config = Config.from_yaml(config_yaml)
|
||||
|
||||
|
||||
|
||||
|
||||
# Update config from env vars (upcased and prefixed with "INVIDIOUS_")
|
||||
{% for ivar in Config.instance_vars %}
|
||||
{% env_id = "INVIDIOUS_#{ivar.id.upcase}" %}
|
||||
|
||||
if ENV.has_key?({{env_id}})
|
||||
env_value = ENV.fetch({{env_id}})
|
||||
success = false
|
||||
|
||||
# Use YAML converter if specified
|
||||
{% ann = ivar.annotation(::YAML::Field) %}
|
||||
{% if ann && ann[:converter] %}
|
||||
config.{{ivar.id}} = {{ann[:converter]}}.from_yaml(YAML::ParseContext.new, YAML::Nodes.parse(ENV.fetch({{env_id}})).nodes[0])
|
||||
success = true
|
||||
|
||||
# Use regular YAML parser otherwise
|
||||
{% else %}
|
||||
{% ivar_types = ivar.type.union? ? ivar.type.union_types : [ivar.type] %}
|
||||
# Sort types to avoid parsing nulls and numbers as strings
|
||||
{% ivar_types = ivar_types.sort_by { |ivar_type| ivar_type == Nil ? 0 : ivar_type == Int32 ? 1 : 2 } %}
|
||||
{{ivar_types}}.each do |ivar_type|
|
||||
if !success
|
||||
begin
|
||||
config.{{ivar.id}} = ivar_type.from_yaml(env_value)
|
||||
success = true
|
||||
rescue
|
||||
# nop
|
||||
end
|
||||
end
|
||||
end
|
||||
{% end %}
|
||||
|
||||
# Exit on fail
|
||||
if !success
|
||||
puts %(Config.{{ivar.id}} failed to parse #{env_value} as {{ivar.type}})
|
||||
exit(1)
|
||||
end
|
||||
end
|
||||
{% end %}
|
||||
|
||||
|
||||
@@pot = config.po_token
|
||||
@@vdata = config.visitor_data
|
||||
|
||||
end
|
||||
|
||||
def self.get_instance
|
||||
return @@instance
|
||||
end
|
||||
|
||||
end
|
@ -279,8 +279,8 @@ module YoutubeAPI
|
||||
# determine po_token and visitor_data
|
||||
if CONFIG.tokenmon_enabled
|
||||
# get the pot/vdata for usage later
|
||||
pot = ReloadTokens.pot.as(String)
|
||||
vdata = ReloadTokens.vdata.as(String)
|
||||
pot = Invidious::TokenMon.pot.as(String)
|
||||
vdata = Invidious::TokenMon.vdata.as(String)
|
||||
else
|
||||
# Use the configured pot
|
||||
pot = CONFIG.po_token.as(String)
|
||||
@ -486,8 +486,8 @@ module YoutubeAPI
|
||||
# determine po_token and visitor_data
|
||||
if CONFIG.tokenmon_enabled
|
||||
# get the pot/vdata for usage later
|
||||
pot = ReloadTokens.pot.as(String)
|
||||
vdata = ReloadTokens.vdata.as(String)
|
||||
pot = Invidious::TokenMon.pot.as(String)
|
||||
vdata = Invidious::TokenMon.vdata.as(String)
|
||||
else
|
||||
# Use the configured pot
|
||||
pot = CONFIG.po_token.as(String)
|
||||
@ -644,8 +644,8 @@ module YoutubeAPI
|
||||
# determine po_token and visitor_data
|
||||
if CONFIG.tokenmon_enabled
|
||||
# get the pot/vdata for usage later
|
||||
pot = ReloadTokens.pot.as(String)
|
||||
vdata = ReloadTokens.vdata.as(String)
|
||||
pot = Invidious::TokenMon.pot.as(String)
|
||||
vdata = Invidious::TokenMon.vdata.as(String)
|
||||
else
|
||||
# Use the configured pot
|
||||
pot = CONFIG.po_token.as(String)
|
||||
|
Loading…
x
Reference in New Issue
Block a user