mirror of
https://github.com/iv-org/invidious.git
synced 2026-09-26 11:35:27 -05:00
fix: anchor lockup publication date labels
This commit is contained in:
parent
6aeb1476b1
commit
f2ef46af24
@ -30,6 +30,8 @@ Spectator.describe "lockup video metadata rows" do
|
||||
"normal first row" => %({"metadataRows":[{"metadataParts":[{"text":{"content":"1.5M views"}},{"text":{"content":"3 days ago"}}]}]}),
|
||||
"collaborators before video statistics" => %({"metadataRows":[{"metadataParts":[{"text":{"content":"Channel A and Channel B"}}]},{"metadataParts":[{"text":{"content":"1.5M views"}},{"text":{"content":"3 days ago"}}]}]}),
|
||||
"collaborator names containing statistic substrings" => %({"metadataRows":[{"metadataParts":[{"text":{"content":"Chicago Reviews"}},{"text":{"content":"Tech reviews"}}]},{"metadataParts":[{"text":{"content":"1.5M views"}},{"text":{"content":"3 days ago"}}]}]}),
|
||||
"collaborator name ending in a relative date" => %({"metadataRows":[{"metadataParts":[{"text":{"content":"Channel 9 days ago"}}]},{"metadataParts":[{"text":{"content":"1.5M views"}},{"text":{"content":"3 days ago"}}]}]}),
|
||||
"completed stream publication date" => %({"metadataRows":[{"metadataParts":[{"text":{"content":"1.5M views"}},{"text":{"content":"Streamed 3 days ago"}}]}]}),
|
||||
"views and publication date in separate rows" => %({"metadataRows":[{"metadataParts":[{"text":{"content":"1.5M views"}}]},{"metadataParts":[{"text":{"content":"3 days ago"}}]}]}),
|
||||
"missing and null metadata parts before statistics" => %({"metadataRows":[{},{"metadataParts":null},{"metadataParts":[{"text":{"content":"1.5M views"}},{"text":{"content":"3 days ago"}}]}]}),
|
||||
"icon labels before video statistics" => %({"metadataRows":[{"metadataParts":[{"icon":{},"text":{"content":"99 views"}},{"icon":{},"text":{"content":"9 days ago"}}]},{"metadataParts":[{"text":{"content":"1.5M views"}},{"text":{"content":"3 days ago"}}]}]}),
|
||||
@ -49,7 +51,7 @@ Spectator.describe "lockup video metadata rows" do
|
||||
end
|
||||
end
|
||||
|
||||
sample({"{}", %({"metadataRows":[]}), %({"metadataRows":null}), %({"metadataRows":[{}, {"metadataParts":null}]})}) do |metadata|
|
||||
sample({"{}", %({"metadataRows":[]}), %({"metadataRows":null}), %({"metadataRows":[{}, {"metadataParts":null}]}), %({"metadataRows":[{"metadataParts":[{"text":{"content":"Channel 9 days ago"}}]}]})}) do |metadata|
|
||||
it "keeps unknown statistics defaults" do
|
||||
before = Time.utc
|
||||
video = parse_item(lockup_video_with_metadata(metadata)).as(SearchVideo)
|
||||
|
||||
@ -667,7 +667,7 @@ private module Parsers
|
||||
|
||||
view_count_text = metadata_parts.try &.find { |item| item["icon"]?.nil? && item.dig?("text", "content").try &.as_s.matches?(/\A(?:\d+(?:[.,]\d+)*\s?[kKmMbB]?|No) views\z/) }
|
||||
.try &.dig("text", "content").as_s
|
||||
published = metadata_parts.try &.find { |item| item["icon"]?.nil? && item.dig?("text", "content").try &.as_s.matches?(/(?:\A|\s)\d+ ?[smhdwy]\w* ago\z/) }
|
||||
published = metadata_parts.try &.find { |item| item["icon"]?.nil? && item.dig?("text", "content").try &.as_s.matches?(/\A(?:Streamed )?\d+ ?[smhdwy]\w* ago\z/) }
|
||||
.try { |item| decode_date(item.dig("text", "content").as_s) } || Time.local
|
||||
|
||||
view_count = short_text_to_number(view_count_text || "0")
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user