Fix Nil assertion failed in RSS feeds
This commit is contained in:
parent
75c4c0b349
commit
a38edd7330
1 changed files with 16 additions and 10 deletions
|
@ -154,20 +154,26 @@ module Invidious::Routes::Feeds
|
||||||
return error_atom(500, ex)
|
return error_atom(500, ex)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
namespaces = {
|
||||||
|
"yt" => "http://www.youtube.com/xml/schemas/2015",
|
||||||
|
"media" => "http://search.yahoo.com/mrss/",
|
||||||
|
"default" => "http://www.w3.org/2005/Atom",
|
||||||
|
}
|
||||||
|
|
||||||
response = YT_POOL.client &.get("/feeds/videos.xml?channel_id=#{channel.ucid}")
|
response = YT_POOL.client &.get("/feeds/videos.xml?channel_id=#{channel.ucid}")
|
||||||
rss = XML.parse_html(response.body)
|
rss = XML.parse(response.body)
|
||||||
|
|
||||||
videos = rss.xpath_nodes("//feed/entry").map do |entry|
|
videos = rss.xpath_nodes("//default:feed/default:entry", namespaces).map do |entry|
|
||||||
video_id = entry.xpath_node("videoid").not_nil!.content
|
video_id = entry.xpath_node("yt:videoId", namespaces).not_nil!.content
|
||||||
title = entry.xpath_node("title").not_nil!.content
|
title = entry.xpath_node("default:title", namespaces).not_nil!.content
|
||||||
|
|
||||||
published = Time.parse_rfc3339(entry.xpath_node("published").not_nil!.content)
|
published = Time.parse_rfc3339(entry.xpath_node("default:published", namespaces).not_nil!.content)
|
||||||
updated = Time.parse_rfc3339(entry.xpath_node("updated").not_nil!.content)
|
updated = Time.parse_rfc3339(entry.xpath_node("default:updated", namespaces).not_nil!.content)
|
||||||
|
|
||||||
author = entry.xpath_node("author/name").not_nil!.content
|
author = entry.xpath_node("default:author/default:name", namespaces).not_nil!.content
|
||||||
ucid = entry.xpath_node("channelid").not_nil!.content
|
ucid = entry.xpath_node("yt:channelId", namespaces).not_nil!.content
|
||||||
description_html = entry.xpath_node("group/description").not_nil!.to_s
|
description_html = entry.xpath_node("media:group/media:description", namespaces).not_nil!.to_s
|
||||||
views = entry.xpath_node("group/community/statistics").not_nil!.["views"].to_i64
|
views = entry.xpath_node("media:group/media:community/media:statistics", namespaces).not_nil!.["views"].to_i64
|
||||||
|
|
||||||
SearchVideo.new({
|
SearchVideo.new({
|
||||||
title: title,
|
title: title,
|
||||||
|
|
Loading…
Reference in a new issue