From 9209b21769052991f5507db836569b4fd4f1418d Mon Sep 17 00:00:00 2001 From: shiny-comic Date: Thu, 8 Jan 2026 21:51:33 +0900 Subject: [PATCH] Fix disappearing end of the comments with emoji Previous code use UTF-8 to count characters however Emojis are UTF-16 units. This difference leads to misalignment of index offsets. --- src/invidious/videos/description.cr | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/invidious/videos/description.cr b/src/invidious/videos/description.cr index 1371bebb0..18b4122eb 100644 --- a/src/invidious/videos/description.cr +++ b/src/invidious/videos/description.cr @@ -21,8 +21,6 @@ private def copy_string(str : String::Builder, iter : Iterator, count : Int) : I str << cp.chr end - # A codepoint from the SMP counts twice - copied += 1 if cp > 0xFFFF copied += 1 end @@ -44,10 +42,6 @@ def parse_description(desc, video_id : String) : String? end end - # Not everything is stored in UTF-8 on youtube's side. The SMP codepoints - # (0x10000 and above) are encoded as UTF-16 surrogate pairs, which are - # automatically decoded by the JSON parser. It means that we need to count - # copied byte in a special manner, preventing the use of regular string copy. iter = content.each_codepoint index = 0