Merge pull request #74 from catspeed-cc/dev-token-monitor-cleanup

Merge: dev-token-monitor-cleanup into development
This commit is contained in:
MooCat 2024-10-22 03:11:12 -04:00 committed by GitHub
commit 6669defdee
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 49 additions and 92 deletions

View 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

View File

@ -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

View File

@ -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

View File

@ -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)