mirror of
https://github.com/iv-org/invidious.git
synced 2025-08-14 00:28:31 +00:00
Use clearer variable names and keep at most one additional tag for a language
This commit is contained in:
parent
a6e9e34405
commit
3a759bdafb
@ -476,37 +476,39 @@ struct LanguageEntry
|
|||||||
class InvalidLanguageEntry < Exception
|
class InvalidLanguageEntry < Exception
|
||||||
end
|
end
|
||||||
|
|
||||||
property tag, subtags, quality : Float64
|
property tag : String
|
||||||
|
property region : String?
|
||||||
|
property quality : Float64
|
||||||
|
|
||||||
def initialize(@tag : String, @subtags : Array(String), @quality : Float64)
|
def initialize(@tag : String, @region : String?, @quality : Float64)
|
||||||
@quality = @quality.clamp(0.0, 1.0)
|
@quality = @quality.clamp(0.0, 1.0)
|
||||||
end
|
end
|
||||||
|
|
||||||
def to_s(io)
|
def to_s(io)
|
||||||
io << tag
|
io << @tag
|
||||||
unless subtags.empty?
|
if @region
|
||||||
io << '-' << @subtags.join '-'
|
io << '-' << @region
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.from_string(language_str : String) : self
|
def self.from_string(language_str : String) : self
|
||||||
range_and_quality = language_str.split ';'
|
locale_and_quality = language_str.split ';'
|
||||||
|
|
||||||
raise LanguageEntry::InvalidLanguageEntry.new if range_and_quality.empty?
|
raise LanguageEntry::InvalidLanguageEntry.new if locale_and_quality.empty?
|
||||||
|
|
||||||
if range_and_quality[1]?
|
if quality_str = locale_and_quality[1]?
|
||||||
quality = parse_quality(range_and_quality[1])
|
quality = parse_quality(quality_str)
|
||||||
else
|
else
|
||||||
quality = 1.00
|
quality = 1.00
|
||||||
end
|
end
|
||||||
|
|
||||||
language_range = range_and_quality[0]
|
locale = locale_and_quality[0]
|
||||||
tags = language_range.split '-'
|
parts = locale.split '-'
|
||||||
|
|
||||||
language_tag = tags[0]
|
tag = parts[0]
|
||||||
subtags = tags[1..]
|
region = parts[1]?
|
||||||
|
|
||||||
return LanguageEntry.new(language_tag, subtags, quality)
|
return LanguageEntry.new(tag, region, quality)
|
||||||
end
|
end
|
||||||
|
|
||||||
private def self.parse_quality(quality_str : String) : Float64
|
private def self.parse_quality(quality_str : String) : Float64
|
||||||
|
Loading…
Reference in New Issue
Block a user