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
4 changed files with 25 additions and 7 deletions

View File

@ -53,6 +53,24 @@ def recode_length_seconds(time : Int32) : String
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)
time = string.try &.to_f?

View File

@ -259,15 +259,15 @@ struct Preferences
module TimeSpanConverter
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
def self.from_yaml(ctx : YAML::ParseContext, node : YAML::Nodes::Node) : Time::Span
if node.is_a?(YAML::Nodes::Scalar)
return decode_time_span(node.value)
return decode_interval(node.value)
else
node.raise "Expected scalar, not #{node.class}"
end
end
end
end
end