mirror of
https://github.com/iv-org/invidious.git
synced 2026-09-26 11:35:27 -05:00
Video parser: scan every byline run for the channel id
Multi-creator (collab) videos split the byline into several runs and the channel link is not always attached to the first one. parse_related_video only inspected runs[0], so ucid ended up empty and the related-video card was rendered without an author hyperlink. Scan every byline run for a browse id; behaviour for videos whose first run already carries the link is unchanged. Fixes #5722
This commit is contained in:
parent
c88230067b
commit
864af0274a
@ -28,6 +28,15 @@ module Invidious::Videos::Parser
|
||||
|
||||
ucid = channel_info.try { |ci| HelperExtractors.get_browse_id(ci) }
|
||||
|
||||
# Multi-creator ("collab") videos split the byline into several runs and
|
||||
# the channel link isn't always attached to the first one, which left
|
||||
# ucid empty and the related-video card without an author hyperlink (#5722).
|
||||
# Scan every byline run for a browse id instead of only the first one.
|
||||
if ucid.try(&.empty?) && (byline_runs = (related["shortBylineText"]? || related["longBylineText"]?)
|
||||
.try &.dig?("runs").try &.as_a)
|
||||
ucid = byline_runs.map { |run| HelperExtractors.get_browse_id(run) }.find { |id| !id.empty? }
|
||||
end
|
||||
|
||||
short_view_count = related.try do |r|
|
||||
HelperExtractors.get_short_view_count(r).to_s
|
||||
end
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user