summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOmar Roth <omarroth@hotmail.com>2018-07-28 21:56:30 -0500
committerOmar Roth <omarroth@hotmail.com>2018-07-28 21:56:30 -0500
commit09d78c9d3ab42ee8e80e96017fcb7d7434c79fde (patch)
treebde72ca3bb8b86cfad6ff389fdadd155fe3e2216
parent573e909785c6228633b3f5635cbaed0fd220ac3b (diff)
downloadinvidious-09d78c9d3ab42ee8e80e96017fcb7d7434c79fde.tar.gz
invidious-09d78c9d3ab42ee8e80e96017fcb7d7434c79fde.tar.bz2
invidious-09d78c9d3ab42ee8e80e96017fcb7d7434c79fde.zip
Add fix for videos that don't have description
-rw-r--r--src/invidious.cr44
1 files changed, 31 insertions, 13 deletions
diff --git a/src/invidious.cr b/src/invidious.cr
index 5fd852b5..e7928e1b 100644
--- a/src/invidious.cr
+++ b/src/invidious.cr
@@ -902,10 +902,16 @@ get "/api/v1/trending" do |env|
published, views = node.xpath_nodes(%q(.//ul[@class="yt-lockup-meta-info"]/li))
views = views.content.rchop(" views").delete(",").to_i
- descriptionHtml = node.xpath_node(%q(.//div[contains(@class, "yt-lockup-description")])).not_nil!.to_s
- description = descriptionHtml.gsub("<br>", "\n")
- description = description.gsub("<br/>", "\n")
- description = XML.parse_html(description)
+ descriptionHtml = node.xpath_node(%q(.//div[contains(@class, "yt-lockup-description")]))
+ if !descriptionHtml
+ description = ""
+ descriptionHtml = ""
+ else
+ descriptionHtml = descriptionHtml.to_s
+ description = descriptionHtml.gsub("<br>", "\n")
+ description = description.gsub("<br/>", "\n")
+ description = XML.parse_html(description).content.strip("\n ")
+ end
published = published.content.split(" ")[-3..-1].join(" ")
published = decode_date(published)
@@ -936,7 +942,7 @@ get "/api/v1/trending" do |env|
json.field "author", author
json.field "authorUrl", author_url
json.field "published", published.epoch
- json.field "description", description.content
+ json.field "description", description
json.field "descriptionHtml", descriptionHtml
end
end
@@ -1133,10 +1139,16 @@ get "/api/v1/channels/:ucid/videos" do |env|
view_count = item.xpath_node(%q(.//div[@class="yt-lockup-meta"]/ul/li[2])).not_nil!
view_count = view_count.content.rchop(" views").delete(",").to_i
- descriptionHtml = item.xpath_node(%q(.//div[contains(@class, "yt-lockup-description")])).not_nil!.to_s
- description = descriptionHtml.gsub("<br>", "\n")
- description = description.gsub("<br/>", "\n")
- description = XML.parse_html(description).content.strip("\n ")
+ descriptionHtml = item.xpath_node(%q(.//div[contains(@class, "yt-lockup-description")]))
+ if !descriptionHtml
+ description = ""
+ descriptionHtml = ""
+ else
+ descriptionHtml = descriptionHtml.to_s
+ description = descriptionHtml.gsub("<br>", "\n")
+ description = description.gsub("<br/>", "\n")
+ description = XML.parse_html(description).content.strip("\n ")
+ end
published = item.xpath_node(%q(.//div[@class="yt-lockup-meta"]/ul/li[1]))
if !published
@@ -1835,10 +1847,16 @@ get "/feed/channel/:ucid" do |env|
view_count = item.xpath_node(%q(.//div[@class="yt-lockup-meta"]/ul/li[2])).not_nil!
view_count = view_count.content.rchop(" views").delete(",").to_i
- descriptionHtml = item.xpath_node(%q(.//div[contains(@class, "yt-lockup-description")])).not_nil!.to_s
- description = descriptionHtml.gsub("<br>", "\n")
- description = description.gsub("<br/>", "\n")
- description = XML.parse_html(description).content.strip("\n ")
+ descriptionHtml = item.xpath_node(%q(.//div[contains(@class, "yt-lockup-description")]))
+ if !descriptionHtml
+ description = ""
+ descriptionHtml = ""
+ else
+ descriptionHtml = descriptionHtml.to_s
+ description = descriptionHtml.gsub("<br>", "\n")
+ description = description.gsub("<br/>", "\n")
+ description = XML.parse_html(description).content.strip("\n ")
+ end
published = item.xpath_node(%q(.//div[@class="yt-lockup-meta"]/ul/li[1]))
if !published