diff --git a/src/invidious/comments/content.cr b/src/invidious/comments/content.cr index bbeb9065..6fac94b6 100644 --- a/src/invidious/comments/content.cr +++ b/src/invidious/comments/content.cr @@ -64,19 +64,27 @@ def content_to_comment_html(content, video_id : String? = "") # check for custom emojis if run["emoji"]? if emoji_image = run.dig?("emoji", "image") - emoji_alt = HTML.escape(emoji_image.dig?("accessibility", "accessibilityData", "label").try(&.as_s) || text) - emoji_thumb = emoji_image["thumbnails"][0] - text = String.build do |str| - str << %() << emoji_alt << ) + thumbnails = emoji_image["thumbnails"]?.try &.as_a? + if thumbnails && (emoji_thumb = thumbnails.first?) && (thumb_url = emoji_thumb["url"]?.try &.as_s?) + raw_label = emoji_image.dig?("accessibility", "accessibilityData", "label").try &.as_s? + emoji_alt = raw_label ? HTML.escape(raw_label) : text + + text = String.build do |str| + str << %() << emoji_alt << ) + end end else # Hide deleted channel emoji - text = "" + text = "" if text.starts_with?(':') && text.ends_with?(':') end end diff --git a/src/invidious/videos/description.cr b/src/invidious/videos/description.cr index 2c983269..f9779531 100644 --- a/src/invidious/videos/description.cr +++ b/src/invidious/videos/description.cr @@ -80,8 +80,34 @@ def parse_description(desc, video_id : String) : String? end link = cmd_content + + if command["emoji"]? + if emoji_image = command.dig?("emoji", "image") + thumbnails = emoji_image["thumbnails"]?.try &.as_a? + if thumbnails && (emoji_thumb = thumbnails.first?) && (thumb_url = emoji_thumb["url"]?.try &.as_s?) + raw_label = emoji_image.dig?("accessibility", "accessibilityData", "label").try &.as_s? + emoji_alt = raw_label ? HTML.escape(raw_label) : cmd_content + + link = String.build do |s| + s << %() << emoji_alt << ) + end + end + else + link = "" if link.starts_with?(':') && link.ends_with?(':') + end + end + if on_tap = command.dig?("onTap", "innertubeCommand") - link = parse_link_endpoint(on_tap, cmd_content, video_id) + link = parse_link_endpoint(on_tap, link, video_id) end str << link index += cmd_length