diff --git a/emoji.go b/emoji.go index 5275764..6913a2e 100644 --- a/emoji.go +++ b/emoji.go @@ -10,7 +10,7 @@ import ( "unicode" ) -//go:generate generateEmojiCodeMap -pkg emoji +//go:generate generateEmojiCodeMap -pkg emoji -o emoji_codemap.go // Replace Padding character for emoji. var ( diff --git a/emoji_codemap.go b/emoji_codemap.go index 0f38817..9a9d73b 100644 --- a/emoji_codemap.go +++ b/emoji_codemap.go @@ -9,10 +9,10 @@ import ( // DO NOT EDIT var emojiCodeMap map[string]string +var emojiCodeMapInitOnce = sync.Once{} func emojiCode() map[string]string { - once := sync.Once{} - once.Do(func() { + emojiCodeMapInitOnce.Do(func() { emojiCodeMap = map[string]string{ ":+1:": "\U0001f44d", ":-1:": "\U0001f44e", @@ -267,7 +267,7 @@ func emojiCode() map[string]string { ":beer:": "\U0001f37a", ":beer_mug:": "\U0001f37a", ":beers:": "\U0001f37b", - ":beetle:": "\U0001f41e", + ":beetle:": "\U0001fab2", ":beginner:": "\U0001f530", ":belarus:": "\U0001f1e7\U0001f1fe", ":belgium:": "\U0001f1e7\U0001f1ea", @@ -418,6 +418,7 @@ func emojiCode() map[string]string { ":bullet_train:": "\U0001f685", ":bullettrain_front:": "\U0001f685", ":bullettrain_side:": "\U0001f684", + ":bullseye:": "\U0001f3af", ":burkina_faso:": "\U0001f1e7\U0001f1eb", ":burrito:": "\U0001f32f", ":burundi:": "\U0001f1e7\U0001f1ee", @@ -750,7 +751,6 @@ func emojiCode() map[string]string { ":diamonds:": "\u2666\ufe0f", ":diego_garcia:": "\U0001f1e9\U0001f1ec", ":dim_button:": "\U0001f505", - ":direct_hit:": "\U0001f3af", ":disappointed:": "\U0001f61e", ":disappointed_face:": "\U0001f61e", ":disappointed_relieved:": "\U0001f625", @@ -859,7 +859,6 @@ func emojiCode() map[string]string { ":evergreen_tree:": "\U0001f332", ":ewe:": "\U0001f411", ":exclamation:": "\u2757", - ":exclamation_mark:": "\u2757", ":exclamation_question_mark:": "\u2049", ":exploding_head:": "\U0001f92f", ":expressionless:": "\U0001f611", @@ -871,6 +870,8 @@ func emojiCode() map[string]string { ":eyeglasses:": "\U0001f453", ":eyes:": "\U0001f440", ":face_blowing_a_kiss:": "\U0001f618", + ":face_exhaling:": "\U0001f62e\u200d\U0001f4a8", + ":face_in_clouds:": "\U0001f636\u200d\U0001f32b\ufe0f", ":face_palm:": "\U0001f926", ":face_savoring_food:": "\U0001f60b", ":face_screaming_in_fear:": "\U0001f631", @@ -884,6 +885,7 @@ func emojiCode() map[string]string { ":face_with_open_mouth:": "\U0001f62e", ":face_with_raised_eyebrow:": "\U0001f928", ":face_with_rolling_eyes:": "\U0001f644", + ":face_with_spiral_eyes:": "\U0001f635\u200d\U0001f4ab", ":face_with_steam_from_nose:": "\U0001f624", ":face_with_symbols_on_mouth:": "\U0001f92c", ":face_with_symbols_over_mouth:": "\U0001f92c", @@ -2001,6 +2003,7 @@ func emojiCode() map[string]string { ":heart_exclamation:": "\u2763", ":heart_eyes:": "\U0001f60d", ":heart_eyes_cat:": "\U0001f63b", + ":heart_on_fire:": "\u2764\ufe0f\u200d\U0001f525", ":heart_suit:": "\u2665", ":heart_with_arrow:": "\U0001f498", ":heart_with_ribbon:": "\U0001f49d", @@ -2181,6 +2184,7 @@ func emojiCode() map[string]string { ":kneeling_woman:": "\U0001f9ce\u200d\u2640\ufe0f", ":knife:": "\U0001f52a", ":knife_fork_plate:": "\U0001f37d\ufe0f", + ":knocked-out_face:": "\U0001f635", ":knot:": "\U0001faa2", ":koala:": "\U0001f428", ":koko:": "\U0001f201", @@ -2193,6 +2197,7 @@ func emojiCode() map[string]string { ":lacrosse:": "\U0001f94d", ":ladder:": "\U0001fa9c", ":lady_beetle:": "\U0001f41e", + ":ladybug:": "\U0001f41e", ":lantern:": "\U0001f3ee", ":laos:": "\U0001f1f1\U0001f1e6", ":laptop:": "\U0001f4bb", @@ -2401,6 +2406,7 @@ func emojiCode() map[string]string { ":man-woman-girl-boy:": "\U0001f468\u200d\U0001f469\u200d\U0001f467\u200d\U0001f466", ":man-woman-girl-girl:": "\U0001f468\u200d\U0001f469\u200d\U0001f467\u200d\U0001f467", ":man-wrestling:": "\U0001f93c\u200d\u2642\ufe0f", + ":man_and_woman_holding_hands:": "\U0001f46b", ":man_artist:": "\U0001f468\u200d\U0001f3a8", ":man_artist_tone1:": "\U0001f468\U0001f3fb\u200d\U0001f3a8", ":man_artist_tone2:": "\U0001f468\U0001f3fc\u200d\U0001f3a8", @@ -2414,7 +2420,7 @@ func emojiCode() map[string]string { ":man_astronaut_tone4:": "\U0001f468\U0001f3fe\u200d\U0001f680", ":man_astronaut_tone5:": "\U0001f468\U0001f3ff\u200d\U0001f680", ":man_bald:": "\U0001f468\u200d\U0001f9b2", - ":man_beard:": "\U0001f9d4", + ":man_beard:": "\U0001f9d4\u200d\u2642\ufe0f", ":man_biking:": "\U0001f6b4\u200d\u2642\ufe0f", ":man_biking_tone1:": "\U0001f6b4\U0001f3fb\u200d\u2642\ufe0f", ":man_biking_tone2:": "\U0001f6b4\U0001f3fc\u200d\u2642\ufe0f", @@ -2580,7 +2586,7 @@ func emojiCode() map[string]string { ":man_in_steamy_room_tone3:": "\U0001f9d6\U0001f3fd\u200d\u2642\ufe0f", ":man_in_steamy_room_tone4:": "\U0001f9d6\U0001f3fe\u200d\u2642\ufe0f", ":man_in_steamy_room_tone5:": "\U0001f9d6\U0001f3ff\u200d\u2642\ufe0f", - ":man_in_tuxedo:": "\U0001f935", + ":man_in_tuxedo:": "\U0001f935\u200d\u2642\ufe0f", ":man_in_tuxedo_tone1:": "\U0001f935\U0001f3fb", ":man_in_tuxedo_tone2:": "\U0001f935\U0001f3fc", ":man_in_tuxedo_tone3:": "\U0001f935\U0001f3fd", @@ -2808,6 +2814,7 @@ func emojiCode() map[string]string { ":men_with_bunny_ears:": "\U0001f46f\u200d\u2642\ufe0f", ":men_with_bunny_ears_partying:": "\U0001f46f\u200d\u2642\ufe0f", ":men_wrestling:": "\U0001f93c\u200d\u2642\ufe0f", + ":mending_heart:": "\u2764\ufe0f\u200d\U0001fa79", ":menorah:": "\U0001f54e", ":menorah_with_nine_branches:": "\U0001f54e", ":mens:": "\U0001f6b9", @@ -3149,6 +3156,7 @@ func emojiCode() map[string]string { ":persevering_face:": "\U0001f623", ":person:": "\U0001f9d1", ":person_bald:": "\U0001f9d1\u200d\U0001f9b2", + ":person_beard:": "\U0001f9d4", ":person_biking:": "\U0001f6b4", ":person_biking_tone1:": "\U0001f6b4\U0001f3fb", ":person_biking_tone2:": "\U0001f6b4\U0001f3fc", @@ -3358,7 +3366,6 @@ func emojiCode() map[string]string { ":petri_dish:": "\U0001f9eb", ":philippines:": "\U0001f1f5\U0001f1ed", ":phone:": "\u260e\ufe0f", - ":pi_ata:": "\U0001fa85", ":pick:": "\u26cf\ufe0f", ":pickup_truck:": "\U0001f6fb", ":pie:": "\U0001f967", @@ -3369,6 +3376,7 @@ func emojiCode() map[string]string { ":pile_of_poo:": "\U0001f4a9", ":pill:": "\U0001f48a", ":pilot:": "\U0001f9d1\u200d\u2708\ufe0f", + ":pinata:": "\U0001fa85", ":pinched_fingers:": "\U0001f90c", ":pinching_hand:": "\U0001f90f", ":pine_decoration:": "\U0001f38d", @@ -3376,7 +3384,6 @@ func emojiCode() map[string]string { ":ping_pong:": "\U0001f3d3", ":pirate_flag:": "\U0001f3f4\u200d\u2620\ufe0f", ":pisces:": "\u2653", - ":pistol:": "\U0001f52b", ":pitcairn_islands:": "\U0001f1f5\U0001f1f3", ":pizza:": "\U0001f355", ":piñata:": "\U0001fa85", @@ -3499,7 +3506,6 @@ func emojiCode() map[string]string { ":puzzle_piece:": "\U0001f9e9", ":qatar:": "\U0001f1f6\U0001f1e6", ":question:": "\u2753", - ":question_mark:": "\u2753", ":rabbit:": "\U0001f430", ":rabbit2:": "\U0001f407", ":rabbit_face:": "\U0001f430", @@ -3556,12 +3562,14 @@ func emojiCode() map[string]string { ":red_car:": "\U0001f697", ":red_circle:": "\U0001f534", ":red_envelope:": "\U0001f9e7", + ":red_exclamation_mark:": "\u2757", ":red_hair:": "\U0001f9b0", ":red_haired_man:": "\U0001f468\u200d\U0001f9b0", ":red_haired_person:": "\U0001f9d1\u200d\U0001f9b0", ":red_haired_woman:": "\U0001f469\u200d\U0001f9b0", ":red_heart:": "\u2764", ":red_paper_lantern:": "\U0001f3ee", + ":red_question_mark:": "\u2753", ":red_square:": "\U0001f7e5", ":red_triangle_pointed_down:": "\U0001f53b", ":red_triangle_pointed_up:": "\U0001f53a", @@ -4041,7 +4049,7 @@ func emojiCode() map[string]string { ":tram:": "\U0001f68a", ":tram_car:": "\U0001f68b", ":transgender_flag:": "\U0001f3f3\ufe0f\u200d\u26a7\ufe0f", - ":transgender_symbol:": "\u26a7", + ":transgender_symbol:": "\u26a7\ufe0f", ":triangular_flag:": "\U0001f6a9", ":triangular_flag_on_post:": "\U0001f6a9", ":triangular_ruler:": "\U0001f4d0", @@ -4169,6 +4177,7 @@ func emojiCode() map[string]string { ":watch:": "\u231a", ":water_buffalo:": "\U0001f403", ":water_closet:": "\U0001f6be", + ":water_pistol:": "\U0001f52b", ":water_polo:": "\U0001f93d", ":water_wave:": "\U0001f30a", ":watermelon:": "\U0001f349", @@ -4289,6 +4298,7 @@ func emojiCode() map[string]string { ":woman_astronaut_tone4:": "\U0001f469\U0001f3fe\u200d\U0001f680", ":woman_astronaut_tone5:": "\U0001f469\U0001f3ff\u200d\U0001f680", ":woman_bald:": "\U0001f469\u200d\U0001f9b2", + ":woman_beard:": "\U0001f9d4\u200d\u2640\ufe0f", ":woman_biking:": "\U0001f6b4\u200d\u2640\ufe0f", ":woman_biking_tone1:": "\U0001f6b4\U0001f3fb\u200d\u2640\ufe0f", ":woman_biking_tone2:": "\U0001f6b4\U0001f3fc\u200d\u2640\ufe0f", @@ -4686,15 +4696,14 @@ func emojiCode() map[string]string { ":zzz:": "\U0001f4a4", } }) - return emojiCodeMap } var emojiRevCodeMap map[string][]string +var emojiRevCodeMapInitOnce = sync.Once{} func emojiRevCode() map[string][]string { - once := sync.Once{} - once.Do(func() { + emojiRevCodeMapInitOnce.Do(func() { emojiRevCodeMap = map[string][]string{ "#\ufe0f\u20e3": {":hash:", ":keycap_#:"}, "*\ufe0f\u20e3": {":asterisk:", ":keycap_*:", ":keycap_star:"}, @@ -5189,7 +5198,7 @@ func emojiRevCode() map[string][]string { "\U0001f3ac": {":clapper:", ":clapper_board:"}, "\U0001f3ad": {":performing_arts:"}, "\U0001f3ae": {":video_game:"}, - "\U0001f3af": {":dart:", ":direct_hit:"}, + "\U0001f3af": {":dart:", ":bullseye:"}, "\U0001f3b0": {":slot_machine:"}, "\U0001f3b1": {":8ball:", ":pool_8_ball:"}, "\U0001f3b2": {":game_die:"}, @@ -5412,7 +5421,7 @@ func emojiRevCode() map[string][]string { "\U0001f41b": {":bug:"}, "\U0001f41c": {":ant:"}, "\U0001f41d": {":bee:", ":honeybee:"}, - "\U0001f41e": {":beetle:", ":lady_beetle:"}, + "\U0001f41e": {":ladybug:", ":lady_beetle:"}, "\U0001f41f": {":fish:"}, "\U0001f420": {":tropical_fish:"}, "\U0001f421": {":blowfish:"}, @@ -5814,7 +5823,7 @@ func emojiRevCode() map[string][]string { "\U0001f469\u200d\u2764\ufe0f\u200d\U0001f469": {":couple_ww:", ":woman-heart-woman:", ":couple_with_heart_woman_woman:"}, "\U0001f469\u200d\u2764\ufe0f\u200d\U0001f48b\u200d\U0001f468": {":couplekiss:", ":kiss_woman_man:", ":woman-kiss-man:", ":couplekiss_man_woman:"}, "\U0001f469\u200d\u2764\ufe0f\u200d\U0001f48b\u200d\U0001f469": {":kiss_ww:", ":kiss_woman_woman:", ":woman-kiss-woman:", ":couplekiss_woman_woman:"}, - "\U0001f46b": {":couple:", ":woman_and_man_holding_hands:"}, + "\U0001f46b": {":couple:", ":man_and_woman_holding_hands:", ":woman_and_man_holding_hands:"}, "\U0001f46c": {":men_holding_hands:", ":two_men_holding_hands:"}, "\U0001f46d": {":women_holding_hands:", ":two_women_holding_hands:"}, "\U0001f46e": {":police_officer:"}, @@ -6193,7 +6202,7 @@ func emojiRevCode() map[string][]string { "\U0001f528": {":hammer:"}, "\U0001f529": {":nut_and_bolt:"}, "\U0001f52a": {":hocho:", ":knife:", ":kitchen_knife:"}, - "\U0001f52b": {":gun:", ":pistol:"}, + "\U0001f52b": {":gun:", ":water_pistol:"}, "\U0001f52c": {":microscope:"}, "\U0001f52d": {":telescope:"}, "\U0001f52e": {":crystal_ball:"}, @@ -6401,14 +6410,17 @@ func emojiRevCode() map[string][]string { "\U0001f62c": {":grimacing:", ":grimacing_face:"}, "\U0001f62d": {":sob:", ":loudly_crying_face:"}, "\U0001f62e": {":open_mouth:", ":face_with_open_mouth:"}, + "\U0001f62e\u200d\U0001f4a8": {":face_exhaling:"}, "\U0001f62f": {":hushed:", ":hushed_face:"}, "\U0001f630": {":cold_sweat:", ":anxious_face_with_sweat:"}, "\U0001f631": {":scream:", ":face_screaming_in_fear:"}, "\U0001f632": {":astonished:", ":astonished_face:"}, "\U0001f633": {":flushed:", ":flushed_face:"}, "\U0001f634": {":sleeping:", ":sleeping_face:"}, - "\U0001f635": {":dizzy_face:"}, + "\U0001f635": {":dizzy_face:", ":knocked-out_face:"}, + "\U0001f635\u200d\U0001f4ab": {":face_with_spiral_eyes:"}, "\U0001f636": {":no_mouth:", ":face_without_mouth:"}, + "\U0001f636\u200d\U0001f32b\ufe0f": {":face_in_clouds:"}, "\U0001f637": {":mask:", ":face_with_medical_mask:"}, "\U0001f638": {":smile_cat:", ":grinning_cat_with_smiling_eyes:"}, "\U0001f639": {":joy_cat:", ":cat_with_tears_of_joy:"}, @@ -6863,13 +6875,14 @@ func emojiRevCode() map[string][]string { "\U0001f934\U0001f3fd": {":prince_tone3:"}, "\U0001f934\U0001f3fe": {":prince_tone4:"}, "\U0001f934\U0001f3ff": {":prince_tone5:"}, - "\U0001f935": {":man_in_tuxedo:", ":person_in_tuxedo:"}, + "\U0001f935": {":person_in_tuxedo:"}, "\U0001f935\U0001f3fb": {":man_in_tuxedo_tone1:"}, "\U0001f935\U0001f3fc": {":man_in_tuxedo_tone2:"}, "\U0001f935\U0001f3fd": {":man_in_tuxedo_tone3:"}, "\U0001f935\U0001f3fe": {":man_in_tuxedo_tone4:"}, "\U0001f935\U0001f3ff": {":man_in_tuxedo_tone5:"}, "\U0001f935\u200d\u2640\ufe0f": {":woman_in_tuxedo:"}, + "\U0001f935\u200d\u2642\ufe0f": {":man_in_tuxedo:"}, "\U0001f936": {":mrs_claus:", ":Mrs._Claus:"}, "\U0001f936\U0001f3fb": {":mrs_claus_tone1:"}, "\U0001f936\U0001f3fc": {":mrs_claus_tone2:"}, @@ -7167,12 +7180,14 @@ func emojiRevCode() map[string][]string { "\U0001f9d3\U0001f3fd": {":older_adult_tone3:"}, "\U0001f9d3\U0001f3fe": {":older_adult_tone4:"}, "\U0001f9d3\U0001f3ff": {":older_adult_tone5:"}, - "\U0001f9d4": {":man_beard:", ":bearded_person:"}, + "\U0001f9d4": {":person_beard:", ":bearded_person:"}, "\U0001f9d4\U0001f3fb": {":bearded_person_tone1:"}, "\U0001f9d4\U0001f3fc": {":bearded_person_tone2:"}, "\U0001f9d4\U0001f3fd": {":bearded_person_tone3:"}, "\U0001f9d4\U0001f3fe": {":bearded_person_tone4:"}, "\U0001f9d4\U0001f3ff": {":bearded_person_tone5:"}, + "\U0001f9d4\u200d\u2640\ufe0f": {":woman_beard:"}, + "\U0001f9d4\u200d\u2642\ufe0f": {":man_beard:"}, "\U0001f9d5": {":woman_with_headscarf:", ":person_with_headscarf:"}, "\U0001f9d5\U0001f3fb": {":woman_with_headscarf_tone1:"}, "\U0001f9d5\U0001f3fc": {":woman_with_headscarf_tone2:"}, @@ -7367,7 +7382,7 @@ func emojiRevCode() map[string][]string { "\U0001fa82": {":parachute:"}, "\U0001fa83": {":boomerang:"}, "\U0001fa84": {":magic_wand:"}, - "\U0001fa85": {":pi_ata:", ":piñata:"}, + "\U0001fa85": {":pinata:", ":piñata:"}, "\U0001fa86": {":nesting_dolls:"}, "\U0001fa90": {":ringed_planet:"}, "\U0001fa91": {":chair:"}, @@ -7396,6 +7411,7 @@ func emojiRevCode() map[string][]string { "\U0001faa8": {":rock:"}, "\U0001fab0": {":fly:"}, "\U0001fab1": {":worm:"}, + "\U0001fab2": {":beetle:"}, "\U0001fab3": {":cockroach:"}, "\U0001fab4": {":potted_plant:"}, "\U0001fab5": {":wood:"}, @@ -7556,7 +7572,7 @@ func emojiRevCode() map[string][]string { "\u269c\ufe0f": {":fleur_de_lis:"}, "\u26a0\ufe0f": {":warning:"}, "\u26a1": {":zap:", ":high_voltage:"}, - "\u26a7": {":transgender_symbol:"}, + "\u26a7\ufe0f": {":transgender_symbol:"}, "\u26aa": {":white_circle:"}, "\u26ab": {":black_circle:"}, "\u26b0\ufe0f": {":coffin:"}, @@ -7656,14 +7672,16 @@ func emojiRevCode() map[string][]string { "\u2747\ufe0f": {":sparkle:"}, "\u274c": {":x:", ":cross_mark:"}, "\u274e": {":cross_mark_button:", ":negative_squared_cross_mark:"}, - "\u2753": {":question:", ":question_mark:"}, + "\u2753": {":question:", ":red_question_mark:"}, "\u2754": {":grey_question:", ":white_question_mark:"}, "\u2755": {":grey_exclamation:", ":white_exclamation_mark:"}, - "\u2757": {":exclamation:", ":exclamation_mark:", ":heavy_exclamation_mark:"}, + "\u2757": {":exclamation:", ":red_exclamation_mark:", ":heavy_exclamation_mark:"}, "\u2763": {":heart_exclamation:"}, "\u2763\ufe0f": {":heavy_heart_exclamation:", ":heavy_heart_exclamation_mark_ornament:"}, "\u2764": {":red_heart:"}, "\u2764\ufe0f": {":heart:"}, + "\u2764\ufe0f\u200d\U0001f525": {":heart_on_fire:"}, + "\u2764\ufe0f\u200d\U0001fa79": {":mending_heart:"}, "\u2795": {":plus:", ":heavy_plus_sign:"}, "\u2796": {":minus:", ":heavy_minus_sign:"}, "\u2797": {":divide:", ":heavy_division_sign:"}, @@ -7693,6 +7711,5 @@ func emojiRevCode() map[string][]string { "\u3299\ufe0f": {":secret:"}, } }) - return emojiRevCodeMap }