forked from midou/invidious
Add 'thumbnail_id' to playlists
This commit is contained in:
@@ -232,13 +232,22 @@ def extract_items(nodeset, ucid = nil, author_name = nil)
|
||||
)
|
||||
end
|
||||
|
||||
playlist_thumbnail = node.xpath_node(%q(.//div/span/img)).try &.["data-thumb"]?
|
||||
playlist_thumbnail ||= node.xpath_node(%q(.//div/span/img)).try &.["src"]
|
||||
if !playlist_thumbnail || playlist_thumbnail.empty?
|
||||
thumbnail_id = videos[0]?.try &.id
|
||||
else
|
||||
thumbnail_id = playlist_thumbnail.match(/\/vi\/(?<video_id>[a-zA-Z0-9_-]{11})\/\w+\.jpg/).try &.["video_id"]
|
||||
end
|
||||
|
||||
items << SearchPlaylist.new(
|
||||
title,
|
||||
plid,
|
||||
author,
|
||||
author_id,
|
||||
video_count,
|
||||
videos
|
||||
videos,
|
||||
thumbnail_id
|
||||
)
|
||||
when .includes? "yt-lockup-channel"
|
||||
author = title.strip
|
||||
@@ -399,13 +408,22 @@ def extract_shelf_items(nodeset, ucid = nil, author_name = nil)
|
||||
playlist_title ||= ""
|
||||
plid ||= ""
|
||||
|
||||
playlist_thumbnail = child_node.xpath_node(%q(.//span/img)).try &.["data-thumb"]?
|
||||
playlist_thumbnail ||= child_node.xpath_node(%q(.//span/img)).try &.["src"]
|
||||
if !playlist_thumbnail || playlist_thumbnail.empty?
|
||||
thumbnail_id = videos[0]?.try &.id
|
||||
else
|
||||
thumbnail_id = playlist_thumbnail.match(/\/vi\/(?<video_id>[a-zA-Z0-9_-]{11})\/\w+\.jpg/).try &.["video_id"]
|
||||
end
|
||||
|
||||
items << SearchPlaylist.new(
|
||||
playlist_title,
|
||||
plid,
|
||||
author_name,
|
||||
ucid,
|
||||
50,
|
||||
Array(SearchPlaylistVideo).new
|
||||
Array(SearchPlaylistVideo).new,
|
||||
thumbnail_id
|
||||
)
|
||||
end
|
||||
end
|
||||
@@ -419,7 +437,8 @@ def extract_shelf_items(nodeset, ucid = nil, author_name = nil)
|
||||
author_name,
|
||||
ucid,
|
||||
videos.size,
|
||||
videos
|
||||
videos,
|
||||
videos[0].try &.id
|
||||
)
|
||||
end
|
||||
end
|
||||
|
@@ -162,6 +162,23 @@ def number_with_separator(number)
|
||||
number.to_s.reverse.gsub(/(\d{3})(?=\d)/, "\\1,").reverse
|
||||
end
|
||||
|
||||
def short_text_to_number(short_text)
|
||||
case short_text
|
||||
when .ends_with? "M"
|
||||
number = short_text.rstrip(" mM").to_f
|
||||
number *= 1000000
|
||||
when .ends_with? "K"
|
||||
number = short_text.rstrip(" kK").to_f
|
||||
number *= 1000
|
||||
else
|
||||
number = short_text.rstrip(" ")
|
||||
end
|
||||
|
||||
number = number.to_i
|
||||
|
||||
return number
|
||||
end
|
||||
|
||||
def number_to_short_text(number)
|
||||
seperated = number_with_separator(number).gsub(",", ".").split("")
|
||||
text = seperated.first(2).join
|
||||
|
Reference in New Issue
Block a user