Update management of channel_refresh_interval

Follow indications:
https://github.com/iv-org/invidious/pull/2915#discussion_r811373503
This commit is contained in:
Féry Mathieu (Mathius) 2022-02-22 01:35:35 +01:00
parent f109d812a1
commit fd0ac3a671
No known key found for this signature in database
GPG key ID: F9CCC80C18A59037
4 changed files with 25 additions and 7 deletions

View file

@ -317,10 +317,10 @@ channel_threads: 1
## ##
## Time between two jobs for crawling videos from channels ## Time between two jobs for crawling videos from channels
## ##
## Accepted values: a valid time interval (hours:min:seconds) ## Accepted values: a valid time interval (like 1h30m or 90min)
## Default: 00:30:00 ## Default: 30m
## ##
channel_refresh_interval: 00:30:00 channel_refresh_interval: 30min
## ##
## Forcefully dump and re-download the entire list of uploaded ## Forcefully dump and re-download the entire list of uploaded

View file

@ -25,7 +25,7 @@ services:
INVIDIOUS_CONFIG: | INVIDIOUS_CONFIG: |
log_level: Info log_level: Info
channel_threads: 1 channel_threads: 1
channel_refresh_interval: 00:30:00 channel_refresh_interval: 30m
check_tables: true check_tables: true
feed_threads: 1 feed_threads: 1
db: db:

View file

@ -53,6 +53,24 @@ def recode_length_seconds(time : Int32) : String
end end
end end
def decode_interval(string : String) : Time::Span
rawMinutes = string.try &.to_i32?
if !rawMinutes
hours = /(?<hours>\d+)h/.match(string).try &.["hours"].try &.to_i32
hours ||= 0
minutes = /(?<minutes>\d+)m(?!s)/.match(string).try &.["minutes"].try &.to_i32
minutes ||= 0
time = Time::Span.new(hours: hours, minutes: minutes)
else
time = Time::Span.new(minutes: rawMinutes)
end
return time
end
def decode_time(string) def decode_time(string)
time = string.try &.to_f? time = string.try &.to_f?

View file

@ -259,12 +259,12 @@ struct Preferences
module TimeSpanConverter module TimeSpanConverter
def self.to_yaml(value : Time::Span, yaml : YAML::Nodes::Builder) def self.to_yaml(value : Time::Span, yaml : YAML::Nodes::Builder)
return yaml.scalar recode_length_seconds(value.total_seconds.to_i32) return yaml.scalar value.total_minutes.to_i32
end end
def self.from_yaml(ctx : YAML::ParseContext, node : YAML::Nodes::Node) : Time::Span def self.from_yaml(ctx : YAML::ParseContext, node : YAML::Nodes::Node) : Time::Span
if node.is_a?(YAML::Nodes::Scalar) if node.is_a?(YAML::Nodes::Scalar)
return decode_time_span(node.value) return decode_interval(node.value)
else else
node.raise "Expected scalar, not #{node.class}" node.raise "Expected scalar, not #{node.class}"
end end