From ba8163b91cbd8c9780122635f51e4dce9bba7601 Mon Sep 17 00:00:00 2001 From: "mojo-machine[bot]" <111131124+mojo-machine[bot]@users.noreply.github.com> Date: Fri, 19 Apr 2024 13:33:56 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=84=20Sync=20from=20monorepo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://github.com/wearemojo/mojo/commit/8b8e836d380aefea744c63266033e9ce1652194b --- lib/discourseemoji/discourseemoji.go | 21 ++++++++++++++++++--- lib/discourseemoji/discourseemoji_test.go | 7 +++++++ 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/lib/discourseemoji/discourseemoji.go b/lib/discourseemoji/discourseemoji.go index d0a5943..dd77598 100644 --- a/lib/discourseemoji/discourseemoji.go +++ b/lib/discourseemoji/discourseemoji.go @@ -39,7 +39,8 @@ func processDB() processedDB { Code string `json:"code"` Name string `json:"name"` } `json:"emojis"` - TonableEmojis []string `json:"tonableEmojis"` + TonableEmojis []string `json:"tonableEmojis"` + Aliases map[string][]string `json:"aliases"` } if err := json.Unmarshal(dbJSON, &raw); err != nil { panic(err) @@ -49,13 +50,27 @@ func processDB() processedDB { tonable := mapset.NewThreadUnsafeSet(raw.TonableEmojis...) for _, emoji := range raw.Emojis { + aliases := raw.Aliases[emoji.Name] base := slicefn.Map(strings.Split(emoji.Code, "-"), hexToRune) + emojis[emoji.Name] = string(base) + for _, alias := range aliases { + if _, ok := emojis[alias]; !ok { + emojis[alias] = string(base) + } + } if tonable.Contains(emoji.Name) { for i, tone := range fitzpatrickScale { - name := fmt.Sprintf("%s:t%d", emoji.Name, i+2) - emojis[name] = string(append([]rune{base[0], tone}, base[1:]...)) + toned := string(append([]rune{base[0], tone}, base[1:]...)) + + emojis[fmt.Sprintf("%s:t%d", emoji.Name, i+2)] = toned + for _, alias := range aliases { + alias = fmt.Sprintf("%s:t%d", alias, i+2) + if _, ok := emojis[alias]; !ok { + emojis[alias] = toned + } + } } } } diff --git a/lib/discourseemoji/discourseemoji_test.go b/lib/discourseemoji/discourseemoji_test.go index 382011b..38dea57 100644 --- a/lib/discourseemoji/discourseemoji_test.go +++ b/lib/discourseemoji/discourseemoji_test.go @@ -21,6 +21,13 @@ func TestShortcodeToEmoji(t *testing.T) { {"woman_pilot:t4", "👩🏽‍✈️"}, {"woman_pilot:t5", "👩🏾‍✈️"}, {"woman_pilot:t6", "👩🏿‍✈️"}, + {"slightly_smiling_face", "🙂"}, + {"slight_smile", "🙂"}, // alias of slightly_smiling_face + {"slightly_smiling", "🙂"}, // alias of slightly_smiling_face + {"raising_hand_woman", "🙋‍♀️"}, + {"raising_hand", "🙋‍♀️"}, // alias of raising_hand_woman + {"raising_hand_woman:t2", "🙋🏻‍♀️"}, + {"raising_hand:t5", "🙋🏾‍♀️"}, // alias of raising_hand_woman:t5 } for _, test := range tests {