Add better support for movies in search and watch page
This commit is contained in:
parent
35ac887133
commit
5bdd8327d4
@ -234,7 +234,12 @@ def extract_items(nodeset, ucid = nil)
|
|||||||
description_html = node.xpath_node(%q(.//div[contains(@class, "yt-lockup-description")]))
|
description_html = node.xpath_node(%q(.//div[contains(@class, "yt-lockup-description")]))
|
||||||
description_html, description = html_to_content(description_html)
|
description_html, description = html_to_content(description_html)
|
||||||
|
|
||||||
case node.xpath_node(%q(.//div[contains(@class, "yt-lockup-tile")])).not_nil!["class"]
|
tile = node.xpath_node(%q(.//div[contains(@class, "yt-lockup-tile")]))
|
||||||
|
if !tile
|
||||||
|
next
|
||||||
|
end
|
||||||
|
|
||||||
|
case tile["class"]
|
||||||
when .includes? "yt-lockup-playlist"
|
when .includes? "yt-lockup-playlist"
|
||||||
plid = HTTP::Params.parse(URI.parse(id).query.not_nil!)["list"]
|
plid = HTTP::Params.parse(URI.parse(id).query.not_nil!)["list"]
|
||||||
|
|
||||||
@ -310,7 +315,6 @@ def extract_items(nodeset, ucid = nil)
|
|||||||
published = decode_date(metadata[0].content.lchop("Streamed ").lchop("Starts "))
|
published = decode_date(metadata[0].content.lchop("Streamed ").lchop("Starts "))
|
||||||
rescue ex
|
rescue ex
|
||||||
end
|
end
|
||||||
|
|
||||||
begin
|
begin
|
||||||
published ||= Time.epoch(metadata[0].xpath_node(%q(.//span)).not_nil!["data-timestamp"].to_i64)
|
published ||= Time.epoch(metadata[0].xpath_node(%q(.//span)).not_nil!["data-timestamp"].to_i64)
|
||||||
rescue ex
|
rescue ex
|
||||||
@ -321,7 +325,6 @@ def extract_items(nodeset, ucid = nil)
|
|||||||
view_count = metadata[0].content.rchop(" watching").delete(",").try &.to_i64?
|
view_count = metadata[0].content.rchop(" watching").delete(",").try &.to_i64?
|
||||||
rescue ex
|
rescue ex
|
||||||
end
|
end
|
||||||
|
|
||||||
begin
|
begin
|
||||||
view_count ||= metadata.try &.[1].content.delete("No views,").try &.to_i64?
|
view_count ||= metadata.try &.[1].content.delete("No views,").try &.to_i64?
|
||||||
rescue ex
|
rescue ex
|
||||||
|
@ -569,11 +569,17 @@ def fetch_video(id)
|
|||||||
published = html.xpath_node(%q(//meta[@itemprop="datePublished"])).not_nil!["content"]
|
published = html.xpath_node(%q(//meta[@itemprop="datePublished"])).not_nil!["content"]
|
||||||
published = Time.parse(published, "%Y-%m-%d", Time::Location.local)
|
published = Time.parse(published, "%Y-%m-%d", Time::Location.local)
|
||||||
|
|
||||||
allowed_regions = html.xpath_node(%q(//meta[@itemprop="regionsAllowed"])).not_nil!["content"].split(",")
|
allowed_regions = html.xpath_node(%q(//meta[@itemprop="regionsAllowed"])).try &.["content"].split(",")
|
||||||
is_family_friendly = html.xpath_node(%q(//meta[@itemprop="isFamilyFriendly"])).not_nil!["content"] == "True"
|
allowed_regions ||= [] of String
|
||||||
|
is_family_friendly = html.xpath_node(%q(//meta[@itemprop="isFamilyFriendly"])).try &.["content"] == "True"
|
||||||
|
is_family_friendly ||= true
|
||||||
|
|
||||||
genre = html.xpath_node(%q(//meta[@itemprop="genre"])).not_nil!["content"]
|
genre = html.xpath_node(%q(//meta[@itemprop="genre"])).not_nil!["content"]
|
||||||
genre_url = html.xpath_node(%(//a[text()="#{genre}"])).not_nil!["href"]
|
genre_url = html.xpath_node(%(//a[text()="#{genre}"])).try &.["href"]
|
||||||
|
if genre == "Movies"
|
||||||
|
genre_url ||= "/channel/UClgRkhTL3_hImCAmdLfDE4g"
|
||||||
|
end
|
||||||
|
genre_url = ""
|
||||||
|
|
||||||
license = html.xpath_node(%q(//h4[contains(text(),"License")]/parent::*/ul/li))
|
license = html.xpath_node(%q(//h4[contains(text(),"License")]/parent::*/ul/li))
|
||||||
if license
|
if license
|
||||||
|
Loading…
Reference in New Issue
Block a user