Merge pull request #1881 from SamantazFox/fix-descriptions

Fix video/playlist descriptions
This commit is contained in:
TheFrenchGhosty 2021-03-17 16:54:05 +00:00 committed by GitHub
commit e3e07aa3e6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 14 deletions

View file

@ -488,8 +488,12 @@ def replace_links(html)
length_seconds = decode_time(anchor.content) length_seconds = decode_time(anchor.content)
end end
if length_seconds > 0
anchor["href"] = "javascript:void(0)" anchor["href"] = "javascript:void(0)"
anchor["onclick"] = "player.currentTime(#{length_seconds})" anchor["onclick"] = "player.currentTime(#{length_seconds})"
else
anchor["href"] = url.request_target
end
end end
end end
@ -528,11 +532,7 @@ end
def content_to_comment_html(content) def content_to_comment_html(content)
comment_html = content.map do |run| comment_html = content.map do |run|
text = HTML.escape(run["text"].as_s) text = HTML.escape(run["text"].as_s).gsub("\n", "<br>")
if run["text"] == "\n"
text = "<br>"
end
if run["bold"]? if run["bold"]?
text = "<b>#{text}</b>" text = "<b>#{text}</b>"
@ -559,7 +559,7 @@ def content_to_comment_html(content)
length_seconds = watch_endpoint["startTimeSeconds"]? length_seconds = watch_endpoint["startTimeSeconds"]?
video_id = watch_endpoint["videoId"].as_s video_id = watch_endpoint["videoId"].as_s
if length_seconds if length_seconds && length_seconds.as_i > 0
text = %(<a href="javascript:void(0)" data-onclick="jump_to_time" data-jump-time="#{length_seconds}">#{text}</a>) text = %(<a href="javascript:void(0)" data-onclick="jump_to_time" data-jump-time="#{length_seconds}">#{text}</a>)
else else
text = %(<a href="/watch?v=#{video_id}">#{text}</a>) text = %(<a href="/watch?v=#{video_id}">#{text}</a>)

View file

@ -101,6 +101,7 @@ struct Playlist
property author_thumbnail : String property author_thumbnail : String
property ucid : String property ucid : String
property description : String property description : String
property description_html : String
property video_count : Int32 property video_count : Int32
property views : Int64 property views : Int64
property updated : Time property updated : Time
@ -163,10 +164,6 @@ struct Playlist
def privacy def privacy
PlaylistPrivacy::Public PlaylistPrivacy::Public
end end
def description_html
HTML.escape(self.description).gsub("\n", "<br>")
end
end end
enum PlaylistPrivacy enum PlaylistPrivacy
@ -375,7 +372,12 @@ def fetch_playlist(plid, locale)
title = playlist_info["title"]?.try &.["runs"][0]?.try &.["text"]?.try &.as_s || "" title = playlist_info["title"]?.try &.["runs"][0]?.try &.["text"]?.try &.as_s || ""
desc_item = playlist_info["description"]? desc_item = playlist_info["description"]?
description = desc_item.try &.["runs"]?.try &.as_a.map(&.["text"].as_s).join("") || desc_item.try &.["simpleText"]?.try &.as_s || ""
description_txt = desc_item.try &.["runs"]?.try &.as_a
.map(&.["text"].as_s).join("") || desc_item.try &.["simpleText"]?.try &.as_s || ""
description_html = desc_item.try &.["runs"]?.try &.as_a
.try { |run| content_to_comment_html(run).try &.to_s } || "<p></p>"
thumbnail = playlist_info["thumbnailRenderer"]?.try &.["playlistVideoThumbnailRenderer"]? thumbnail = playlist_info["thumbnailRenderer"]?.try &.["playlistVideoThumbnailRenderer"]?
.try &.["thumbnail"]["thumbnails"][0]["url"]?.try &.as_s .try &.["thumbnail"]["thumbnails"][0]["url"]?.try &.as_s
@ -415,7 +417,8 @@ def fetch_playlist(plid, locale)
author: author, author: author,
author_thumbnail: author_thumbnail, author_thumbnail: author_thumbnail,
ucid: ucid, ucid: ucid,
description: description, description: description_txt,
description_html: description_html,
video_count: video_count, video_count: video_count,
views: views, views: views,
updated: updated, updated: updated,