mirror of
				https://github.com/iv-org/invidious.git
				synced 2025-10-31 20:51:56 +00:00 
			
		
		
		
	Parse links in the comments
Co-Authored-By: Samantaz Fox <coding@samantaz.fr>
This commit is contained in:
		| @@ -64,15 +64,15 @@ def content_to_comment_html(content, video_id : String? = "") | ||||
|     # check for custom emojis | ||||
|     if run["emoji"]? | ||||
|       if run["emoji"]["isCustomEmoji"]?.try &.as_bool | ||||
|         if emojiImage = run.dig?("emoji", "image") | ||||
|           emojiAlt = emojiImage.dig?("accessibility", "accessibilityData", "label").try &.as_s || text | ||||
|           emojiThumb = emojiImage["thumbnails"][0] | ||||
|         if emoji_image = run.dig?("emoji", "image") | ||||
|           emoji_alt = emoji_image.dig?("accessibility", "accessibilityData", "label").try &.as_s || text | ||||
|           emoji_thumb = emoji_image["thumbnails"][0] | ||||
|           text = String.build do |str| | ||||
|             str << %(<img alt=") << emojiAlt << "\" " | ||||
|             str << %(src="/ggpht) << URI.parse(emojiThumb["url"].as_s).request_target << "\" " | ||||
|             str << %(title=") << emojiAlt << "\" " | ||||
|             str << %(width=") << emojiThumb["width"] << "\" " | ||||
|             str << %(height=") << emojiThumb["height"] << "\" " | ||||
|             str << %(<img alt=") << emoji_alt << "\" " | ||||
|             str << %(src="/ggpht) << URI.parse(emoji_thumb["url"].as_s).request_target << "\" " | ||||
|             str << %(title=") << emoji_alt << "\" " | ||||
|             str << %(width=") << emoji_thumb["width"] << "\" " | ||||
|             str << %(height=") << emoji_thumb["height"] << "\" " | ||||
|             str << %(class="channel-emoji" />) | ||||
|           end | ||||
|         else | ||||
|   | ||||
| @@ -144,7 +144,7 @@ module Invidious::Comments | ||||
|                   toolbar_mutation = mutations.find { |i| i.dig?("entityKey") == toolbar_key } | ||||
|                   if !comment_mutation.nil? && !toolbar_mutation.nil? | ||||
|                     # todo parse styleRuns, commandRuns and attachmentRuns for comments | ||||
|                     html_content = HTML.escape(comment_mutation.dig("payload", "commentEntityPayload", "properties", "content", "content").as_s) | ||||
|                     html_content = parse_description(comment_mutation.dig("payload", "commentEntityPayload", "properties", "content"), id) | ||||
|                     comment_author = comment_mutation.dig("payload", "commentEntityPayload", "author") | ||||
|                     json.field "authorId", comment_author["channelId"].as_s | ||||
|                     json.field "authorUrl", "/channel/#{comment_author["channelId"].as_s}" | ||||
|   | ||||
| @@ -7,7 +7,19 @@ private def copy_string(str : String::Builder, iter : Iterator, count : Int) : I | ||||
|     cp = iter.next | ||||
|     break if cp.is_a?(Iterator::Stop) | ||||
|  | ||||
|     str << cp.chr | ||||
|     if cp == 0x26 # Ampersand (&) | ||||
|       str << "&" | ||||
|     elsif cp == 0x27 # Single quote (') | ||||
|       str << "'" | ||||
|     elsif cp == 0x22 # Double quote (") | ||||
|       str << """ | ||||
|     elsif cp == 0x3C # Less-than (<) | ||||
|       str << "<" | ||||
|     elsif cp == 0x3E # Greater than (>) | ||||
|       str << ">" | ||||
|     else | ||||
|       str << cp.chr | ||||
|     end | ||||
|  | ||||
|     # A codepoint from the SMP counts twice | ||||
|     copied += 1 if cp > 0xFFFF | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 ChunkyProgrammer
					ChunkyProgrammer