Files
WeChatDataAnalysis/frontend/utils/wechat-emojis.ts
2977094657 dc974b1752 improvement(chat): 优化聊天消息渲染与微信风格资源
- 转账/红包消息改为微信风格卡片展示,补充状态与金额展示

- 语音/通话等消息补充图标与交互样式,提升一致性

- 增加聊天页使用的静态资源与表情资源,并补充表情映射文件
2025-12-17 16:58:34 +08:00

887 lines
26 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
const WechatEmojiTable: Record<string, string> = {
"/::)": "Expression_1@2x.png",
"/微笑": "Expression_1@2x.png",
"[微笑]": "Expression_1@2x.png",
"[Smile]": "Expression_1@2x.png",
"[ยม]": "Expression_1@2x.png",
"/::~": "Expression_2@2x.png",
"/撇嘴": "Expression_2@2x.png",
"[撇嘴]": "Expression_2@2x.png",
"[Grimace]": "Expression_2@2x.png",
"[หนาบด]": "Expression_2@2x.png",
"/::B": "Expression_3@2x.png",
"/色": "Expression_3@2x.png",
"[色]": "Expression_3@2x.png",
"[Drool]": "Expression_3@2x.png",
"[นลายไหล]": "Expression_3@2x.png",
"/::|": "Expression_4@2x.png",
"/发呆": "Expression_4@2x.png",
"[发呆]": "Expression_4@2x.png",
"[發呆]": "Expression_4@2x.png",
"[Scowl]": "Expression_4@2x.png",
"[หนาบง]": "Expression_4@2x.png",
"/:8-)": "Expression_5@2x.png",
"/得意": "Expression_5@2x.png",
"[得意]": "Expression_5@2x.png",
"[CoolGuy]": "Expression_5@2x.png",
"[สบาย]": "Expression_5@2x.png",
"/::<": "Expression_6@2x.png",
"/流泪": "Expression_6@2x.png",
"[流泪]": "Expression_6@2x.png",
"[流淚]": "Expression_6@2x.png",
"[Sob]": "Expression_6@2x.png",
"[รองไหโฮ]": "Expression_6@2x.png",
"/::$": "Expression_7@2x.png",
"/害羞": "Expression_7@2x.png",
"[害羞]": "Expression_7@2x.png",
"[Shy]": "Expression_7@2x.png",
"[อาย]": "Expression_7@2x.png",
"/::X": "Expression_8@2x.png",
"/闭嘴": "Expression_8@2x.png",
"[闭嘴]": "Expression_8@2x.png",
"[閉嘴]": "Expression_8@2x.png",
"[Silent]": "Expression_8@2x.png",
"[หามพด]": "Expression_8@2x.png",
"/::Z": "Expression_9@2x.png",
"/睡": "Expression_9@2x.png",
"[睡]": "Expression_9@2x.png",
"[Sleep]": "Expression_9@2x.png",
"[หลบ]": "Expression_9@2x.png",
// "/::\'(": "Expression_10@2x.png",
"/大哭": "Expression_10@2x.png",
"[大哭]": "Expression_10@2x.png",
"[Cry]": "Expression_10@2x.png",
"[รองไห]": "Expression_10@2x.png",
"/::-|": "Expression_11@2x.png",
"/尴尬": "Expression_11@2x.png",
"[尴尬]": "Expression_11@2x.png",
"[尷尬]": "Expression_11@2x.png",
"[Awkward]": "Expression_11@2x.png",
"[ลบากใจ]": "Expression_11@2x.png",
"/::@": "Expression_12@2x.png",
"/发怒": "Expression_12@2x.png",
"[发怒]": "Expression_12@2x.png",
"[發怒]": "Expression_12@2x.png",
"[Angry]": "Expression_12@2x.png",
"[โกรธสด]": "Expression_12@2x.png",
"/::P": "Expression_13@2x.png",
"/调皮": "Expression_13@2x.png",
"[吐舌]": "Expression_13@2x.png",
"[调皮]": "Expression_13@2x.png",
"[調皮]": "Expression_13@2x.png",
"[Tongue]": "Expression_13@2x.png",
"[ขยบตา]": "Expression_13@2x.png",
"/::D": "Expression_14@2x.png",
"/呲牙": "Expression_14@2x.png",
"[呲牙]": "Expression_14@2x.png",
"[Grin]": "Expression_14@2x.png",
"[ยมกวาง]": "Expression_14@2x.png",
"/::O": "Expression_15@2x.png",
"/惊讶": "Expression_15@2x.png",
"[惊讶]": "Expression_15@2x.png",
"[驚訝]": "Expression_15@2x.png",
"[Surprise]": "Expression_15@2x.png",
"[ประหลาดใจ]": "Expression_15@2x.png",
"/::(": "Expression_16@2x.png",
"/难过": "Expression_16@2x.png",
"[难过]": "Expression_16@2x.png",
"[難過]": "Expression_16@2x.png",
"[Frown]": "Expression_16@2x.png",
"[เสยใจ]": "Expression_16@2x.png",
"/::+": "Expression_17@2x.png",
"/酷": "Expression_17@2x.png",
"[酷]": "Expression_17@2x.png",
"[Ruthless]": "Expression_17@2x.png",
"[เจง]": "Expression_17@2x.png",
"/:--b": "Expression_18@2x.png",
"/冷汗": "Expression_18@2x.png",
"[囧]": "Expression_18@2x.png",
"[Blush]": "Expression_18@2x.png",
"/::Q": "Expression_19@2x.png",
"/抓狂": "Expression_19@2x.png",
"[抓狂]": "Expression_19@2x.png",
"[Scream]": "Expression_19@2x.png",
"[กรดรอง]": "Expression_19@2x.png",
"/::T": "Expression_20@2x.png",
"/吐": "Expression_20@2x.png",
"[吐]": "Expression_20@2x.png",
"[Puke]": "Expression_20@2x.png",
"[อาเจยน]": "Expression_20@2x.png",
"/:,@P": "Expression_21@2x.png",
"/偷笑": "Expression_21@2x.png",
"[偷笑]": "Expression_21@2x.png",
"[Chuckle]": "Expression_21@2x.png",
"[หวเราะหๆ]": "Expression_21@2x.png",
"/:,@-D": "Expression_22@2x.png",
"/可爱": "Expression_22@2x.png",
"[愉快]": "Expression_22@2x.png",
"[Joyful]": "Expression_22@2x.png",
"[พอใจ]": "Expression_22@2x.png",
"/::d": "Expression_23@2x.png",
"/白眼": "Expression_23@2x.png",
"[白眼]": "Expression_23@2x.png",
"[Slight]": "Expression_23@2x.png",
"[สงสย]": "Expression_23@2x.png",
"/:,@o": "Expression_24@2x.png",
"/傲慢": "Expression_24@2x.png",
"[傲慢]": "Expression_24@2x.png",
"[Smug]": "Expression_24@2x.png",
"[หยง]": "Expression_24@2x.png",
"/::g": "Expression_25@2x.png",
"/饥饿": "Expression_25@2x.png",
"[饥饿]": "Expression_25@2x.png",
"[饑餓]": "Expression_25@2x.png",
"[Hungry]": "Expression_25@2x.png",
"[หว]": "Expression_25@2x.png",
"/:|-)": "Expression_26@2x.png",
"/困": "Expression_26@2x.png",
"[困]": "Expression_26@2x.png",
"[累]": "Expression_26@2x.png",
"[Drowsy]": "Expression_26@2x.png",
"[งวงนอน]": "Expression_26@2x.png",
"/::!": "Expression_27@2x.png",
"/惊恐": "Expression_27@2x.png",
"[惊恐]": "Expression_27@2x.png",
"[驚恐]": "Expression_27@2x.png",
"[Panic]": "Expression_27@2x.png",
"[ตกใจกลว]": "Expression_27@2x.png",
"/::L": "Expression_28@2x.png",
"/流汗": "Expression_28@2x.png",
"[流汗]": "Expression_28@2x.png",
"[Sweat]": "Expression_28@2x.png",
"[เหงอตก]": "Expression_28@2x.png",
"/::>": "Expression_29@2x.png",
"/憨笑": "Expression_29@2x.png",
"[憨笑]": "Expression_29@2x.png",
"[大笑]": "Expression_29@2x.png",
"[Laugh]": "Expression_29@2x.png",
"[หวเราะ]": "Expression_29@2x.png",
"/::,@": "Expression_30@2x.png",
"/大兵": "Expression_30@2x.png",
"[悠闲]": "Expression_30@2x.png",
"[悠閑]": "Expression_30@2x.png",
"[Commando]": "Expression_30@2x.png",
"[ทหาร]": "Expression_30@2x.png",
"/:,@f": "Expression_31@2x.png",
"/奋斗": "Expression_31@2x.png",
"[奋斗]": "Expression_31@2x.png",
"[奮鬥]": "Expression_31@2x.png",
"[Determined]": "Expression_31@2x.png",
"[มงมน]": "Expression_31@2x.png",
"/::-S": "Expression_32@2x.png",
"/咒骂": "Expression_32@2x.png",
"[咒骂]": "Expression_32@2x.png",
"[咒罵]": "Expression_32@2x.png",
"[Scold]": "Expression_32@2x.png",
"[ดาวาา]": "Expression_32@2x.png",
"/:?": "Expression_33@2x.png",
"/疑问": "Expression_33@2x.png",
"[疑问]": "Expression_33@2x.png",
"[疑問]": "Expression_33@2x.png",
"[Shocked]": "Expression_33@2x.png",
"[สบสน]": "Expression_33@2x.png",
"/:,@x": "Expression_34@2x.png",
"/嘘": "Expression_34@2x.png",
"[嘘]": "Expression_34@2x.png",
"[噓]": "Expression_34@2x.png",
"[Shhh]": "Expression_34@2x.png",
"[จๆ]": "Expression_34@2x.png",
"/:,@@": "Expression_35@2x.png",
"/晕": "Expression_35@2x.png",
"[晕]": "Expression_35@2x.png",
"[暈]": "Expression_35@2x.png",
"[Dizzy]": "Expression_35@2x.png",
"[เวยนหว]": "Expression_35@2x.png",
"/::8": "Expression_36@2x.png",
"/折磨": "Expression_36@2x.png",
"[疯了]": "Expression_36@2x.png",
"[瘋了]": "Expression_36@2x.png",
"[Tormented]": "Expression_36@2x.png",
"[ทอแท]": "Expression_36@2x.png",
"/:,@!": "Expression_37@2x.png",
"/衰": "Expression_37@2x.png",
"[衰]": "Expression_37@2x.png",
"[Toasted]": "Expression_37@2x.png",
"[ชวราย]": "Expression_37@2x.png",
"/:!!!": "Expression_38@2x.png",
"/骷髅": "Expression_38@2x.png",
"[骷髅]": "Expression_38@2x.png",
"[骷髏頭]": "Expression_38@2x.png",
"[Skull]": "Expression_38@2x.png",
"[หวกะโหลก]": "Expression_38@2x.png",
"/:xx": "Expression_39@2x.png",
"/敲打": "Expression_39@2x.png",
"[敲打]": "Expression_39@2x.png",
"[Hammer]": "Expression_39@2x.png",
"[คอนทบ]": "Expression_39@2x.png",
"/:bye": "Expression_40@2x.png",
"/再见": "Expression_40@2x.png",
// "[再見]": "Expression_40@2x.png",
"[Wave]": "Expression_40@2x.png",
"[บายๆ]": "Expression_40@2x.png",
"/:wipe": "Expression_41@2x.png",
"/擦汗": "Expression_41@2x.png",
"[擦汗]": "Expression_41@2x.png",
"[Speechless]": "Expression_41@2x.png",
"[เชดเหงอ]": "Expression_41@2x.png",
"/:dig": "Expression_42@2x.png",
"/抠鼻": "Expression_42@2x.png",
"[抠鼻]": "Expression_42@2x.png",
"[摳鼻]": "Expression_42@2x.png",
"[NosePick]": "Expression_42@2x.png",
"[แคะจมก]": "Expression_42@2x.png",
"/:handclap": "Expression_43@2x.png",
"/鼓掌": "Expression_43@2x.png",
"[鼓掌]": "Expression_43@2x.png",
"[Clap]": "Expression_43@2x.png",
"[ตบมอ]": "Expression_43@2x.png",
"/:&-(": "Expression_44@2x.png",
"/糗大了": "Expression_44@2x.png",
"[糗大了]": "Expression_44@2x.png",
"[羞辱]": "Expression_44@2x.png",
"[Shame]": "Expression_44@2x.png",
"[อบอาย]": "Expression_44@2x.png",
"/:B-)": "Expression_45@2x.png",
"/坏笑": "Expression_45@2x.png",
"[坏笑]": "Expression_45@2x.png",
"[壞笑]": "Expression_45@2x.png",
"[Trick]": "Expression_45@2x.png",
"[กลโกง]": "Expression_45@2x.png",
"/:<@": "Expression_46@2x.png",
"/左哼哼": "Expression_46@2x.png",
"[左哼哼]": "Expression_46@2x.png",
"[BahL]": "Expression_46@2x.png",
"[เชดซาย]": "Expression_46@2x.png",
"/:@>": "Expression_47@2x.png",
"/右哼哼": "Expression_47@2x.png",
"[右哼哼]": "Expression_47@2x.png",
"[BahR]": "Expression_47@2x.png",
"[เชดขวา]": "Expression_47@2x.png",
"/::-O": "Expression_48@2x.png",
"/哈欠": "Expression_48@2x.png",
"[哈欠]": "Expression_48@2x.png",
"[Yawn]": "Expression_48@2x.png",
"[หาว]": "Expression_48@2x.png",
"/:>-|": "Expression_49@2x.png",
"/鄙视": "Expression_49@2x.png",
"[鄙视]": "Expression_49@2x.png",
"[鄙視]": "Expression_49@2x.png",
"[Pooh-pooh]": "Expression_49@2x.png",
"[ดถก]": "Expression_49@2x.png",
"/:P-(": "Expression_50@2x.png",
"/委屈": "Expression_50@2x.png",
"[委屈]": "Expression_50@2x.png",
"[Shrunken]": "Expression_50@2x.png",
"[ของใจ]": "Expression_50@2x.png",
// "/::\'|": "Expression_51@2x.png",
"/快哭了": "Expression_51@2x.png",
"[快哭了]": "Expression_51@2x.png",
"[TearingUp]": "Expression_51@2x.png",
"[เกอบรองไห]": "Expression_51@2x.png",
"/:X-)": "Expression_52@2x.png",
"/阴险": "Expression_52@2x.png",
"[阴险]": "Expression_52@2x.png",
"[陰險]": "Expression_52@2x.png",
"[Sly]": "Expression_52@2x.png",
"[ขโกง]": "Expression_52@2x.png",
"/::*": "Expression_53@2x.png",
"/亲亲": "Expression_53@2x.png",
"[亲亲]": "Expression_53@2x.png",
"[親親]": "Expression_53@2x.png",
"[Kiss]": "Expression_53@2x.png",
"[จบ]": "Expression_53@2x.png",
"/:@x": "Expression_54@2x.png",
"/吓": "Expression_54@2x.png",
"[吓]": "Expression_54@2x.png",
"[嚇]": "Expression_54@2x.png",
"[Wrath]": "Expression_54@2x.png",
"[หา]": "Expression_54@2x.png",
"/:8*": "Expression_55@2x.png",
"/可怜": "Expression_55@2x.png",
"[可怜]": "Expression_55@2x.png",
"[可憐]": "Expression_55@2x.png",
"[Whimper]": "Expression_55@2x.png",
"[นาสงสาร]": "Expression_55@2x.png",
"/:pd": "Expression_56@2x.png",
"/菜刀": "Expression_56@2x.png",
"[菜刀]": "Expression_56@2x.png",
"[Cleaver]": "Expression_56@2x.png",
"[มด]": "Expression_56@2x.png",
"/:<W>": "Expression_57@2x.png",
"/西瓜": "Expression_57@2x.png",
"[西瓜]": "Expression_57@2x.png",
"[Watermelon]": "Expression_57@2x.png",
"[แตงโม]": "Expression_57@2x.png",
"/:beer": "Expression_58@2x.png",
"/啤酒": "Expression_58@2x.png",
"[啤酒]": "Expression_58@2x.png",
"[Beer]": "Expression_58@2x.png",
"[เบยร]": "Expression_58@2x.png",
"/:basketb": "Expression_59@2x.png",
"/篮球": "Expression_59@2x.png",
"[篮球]": "Expression_59@2x.png",
"[籃球]": "Expression_59@2x.png",
"[Basketball]": "Expression_59@2x.png",
"[บาสเกตบอล]": "Expression_59@2x.png",
"/:oo": "Expression_60@2x.png",
"/乒乓": "Expression_60@2x.png",
"[乒乓]": "Expression_60@2x.png",
"[PingPong]": "Expression_60@2x.png",
"[ปงปอง]": "Expression_60@2x.png",
"/:coffee": "Expression_61@2x.png",
"/咖啡": "Expression_61@2x.png",
"[咖啡]": "Expression_61@2x.png",
"[Coffee]": "Expression_61@2x.png",
"[กาแฟ]": "Expression_61@2x.png",
"/:eat": "Expression_62@2x.png",
"/饭": "Expression_62@2x.png",
"[饭]": "Expression_62@2x.png",
"[飯]": "Expression_62@2x.png",
"[Rice]": "Expression_62@2x.png",
"[ขาว]": "Expression_62@2x.png",
"/:pig": "Expression_63@2x.png",
"/猪头": "Expression_63@2x.png",
"[猪头]": "Expression_63@2x.png",
"[豬頭]": "Expression_63@2x.png",
"[Pig]": "Expression_63@2x.png",
"[หม]": "Expression_63@2x.png",
"/:rose": "Expression_64@2x.png",
"/玫瑰": "Expression_64@2x.png",
"[玫瑰]": "Expression_64@2x.png",
"[Rose]": "Expression_64@2x.png",
"[กหลาบ]": "Expression_64@2x.png",
"/:fade": "Expression_65@2x.png",
"/凋谢": "Expression_65@2x.png",
"[凋谢]": "Expression_65@2x.png",
"[枯萎]": "Expression_65@2x.png",
"[Wilt]": "Expression_65@2x.png",
"[รวงโรย]": "Expression_65@2x.png",
"/:showlove": "Expression_66@2x.png",
"/示爱": "Expression_66@2x.png",
"[嘴唇]": "Expression_66@2x.png",
"[Lips]": "Expression_66@2x.png",
"[รมฝปาก]": "Expression_66@2x.png",
"/:heart": "Expression_67@2x.png",
"/爱心": "Expression_67@2x.png",
"[爱心]": "Expression_67@2x.png",
"[愛心]": "Expression_67@2x.png",
"[Heart]": "Expression_67@2x.png",
"[หวใจ]": "Expression_67@2x.png",
"/:break": "Expression_68@2x.png",
"/心碎": "Expression_68@2x.png",
"[心碎]": "Expression_68@2x.png",
"[BrokenHeart]": "Expression_68@2x.png",
"[ใจสลาย]": "Expression_68@2x.png",
"/:cake": "Expression_69@2x.png",
"/蛋糕": "Expression_69@2x.png",
"[蛋糕]": "Expression_69@2x.png",
"[Cake]": "Expression_69@2x.png",
"[เคก]": "Expression_69@2x.png",
"/:li": "Expression_70@2x.png",
"/闪电": "Expression_70@2x.png",
"[闪电]": "Expression_70@2x.png",
"[閃電]": "Expression_70@2x.png",
"[Lightning]": "Expression_70@2x.png",
"[ฟาผา]": "Expression_70@2x.png",
"/:bome": "Expression_71@2x.png",
"/炸弹": "Expression_71@2x.png",
"[炸弹]": "Expression_71@2x.png",
"[炸彈]": "Expression_71@2x.png",
"[Bomb]": "Expression_71@2x.png",
"[ระเบด]": "Expression_71@2x.png",
"/:kn": "Expression_72@2x.png",
"/刀": "Expression_72@2x.png",
"[刀]": "Expression_72@2x.png",
"[Dagger]": "Expression_72@2x.png",
"[ดาบ]": "Expression_72@2x.png",
"/:footb": "Expression_73@2x.png",
"/足球": "Expression_73@2x.png",
"[足球]": "Expression_73@2x.png",
"[Soccer]": "Expression_73@2x.png",
"[ฟตบอล]": "Expression_73@2x.png",
"/:ladybug": "Expression_74@2x.png",
"/瓢虫": "Expression_74@2x.png",
"[瓢虫]": "Expression_74@2x.png",
"[甲蟲]": "Expression_74@2x.png",
"[Ladybug]": "Expression_74@2x.png",
"[เตาทอง]": "Expression_74@2x.png",
"/:shit": "Expression_75@2x.png",
"/便便": "Expression_75@2x.png",
"[便便]": "Expression_75@2x.png",
"[Poop]": "Expression_75@2x.png",
"[อจจาระ]": "Expression_75@2x.png",
"/:moon": "Expression_76@2x.png",
"/月亮": "Expression_76@2x.png",
"[月亮]": "Expression_76@2x.png",
"[Moon]": "Expression_76@2x.png",
"[พระจนทร]": "Expression_76@2x.png",
"/:sun": "Expression_77@2x.png",
"/太阳": "Expression_77@2x.png",
"[太阳]": "Expression_77@2x.png",
"[太陽]": "Expression_77@2x.png",
"[Sun]": "Expression_77@2x.png",
"[พระอาทตย]": "Expression_77@2x.png",
"/:gift": "Expression_78@2x.png",
"/礼物": "Expression_78@2x.png",
"[禮物]": "Expression_78@2x.png",
"[礼物]": "Expression_78@2x.png",
"[Gift]": "Expression_78@2x.png",
"/:hug": "Expression_79@2x.png",
"/拥抱": "Expression_79@2x.png",
"[拥抱]": "Expression_79@2x.png",
"[擁抱]": "Expression_79@2x.png",
"[Hug]": "Expression_79@2x.png",
"[กอด]": "Expression_79@2x.png",
"/:strong": "Expression_80@2x.png",
"/强": "Expression_80@2x.png",
"[强]": "Expression_80@2x.png",
"[強]": "Expression_80@2x.png",
"[ThumbsUp]": "Expression_80@2x.png",
"[ยอดเยยม]": "Expression_80@2x.png",
"/:weak": "Expression_81@2x.png",
"/弱": "Expression_81@2x.png",
"[弱]": "Expression_81@2x.png",
"[ThumbsDown]": "Expression_81@2x.png",
"[ยอดแย]": "Expression_81@2x.png",
"/:share": "Expression_82@2x.png",
"/握手": "Expression_82@2x.png",
"[握手]": "Expression_82@2x.png",
"[Shake]": "Expression_82@2x.png",
"[จบมอ]": "Expression_82@2x.png",
"/:v": "Expression_83@2x.png",
"/胜利": "Expression_83@2x.png",
"[胜利]": "Expression_83@2x.png",
"[勝利]": "Expression_83@2x.png",
"[Peace]": "Expression_83@2x.png",
"[สตาย]": "Expression_83@2x.png",
"/:@)": "Expression_84@2x.png",
"/抱拳": "Expression_84@2x.png",
// "[抱拳]": "Expression_84@2x.png",
"[Fight]": "Expression_84@2x.png",
"[คารวะ]": "Expression_84@2x.png",
"/:jj": "Expression_85@2x.png",
"/勾引": "Expression_85@2x.png",
"[勾引]": "Expression_85@2x.png",
"[Beckon]": "Expression_85@2x.png",
"[เขามา]": "Expression_85@2x.png",
"/:@@": "Expression_86@2x.png",
"/拳头": "Expression_86@2x.png",
"[拳头]": "Expression_86@2x.png",
"[拳頭]": "Expression_86@2x.png",
"[Fist]": "Expression_86@2x.png",
"[กหมด]": "Expression_86@2x.png",
"/:bad": "Expression_87@2x.png",
"/差劲": "Expression_87@2x.png",
"[差劲]": "Expression_87@2x.png",
"[差勁]": "Expression_87@2x.png",
"[Pinky]": "Expression_87@2x.png",
"[ดกน]": "Expression_87@2x.png",
"/:lvu": "Expression_88@2x.png",
"/爱你": "Expression_88@2x.png",
"[爱你]": "Expression_88@2x.png",
"[愛你]": "Expression_88@2x.png",
"[RockOn]": "Expression_88@2x.png",
"[ฉนรกคณ]": "Expression_88@2x.png",
"/:no": "Expression_89@2x.png",
"/NO": "Expression_89@2x.png",
"[NO]": "Expression_89@2x.png",
"[Nuh-uh]": "Expression_89@2x.png",
"[ไม]": "Expression_89@2x.png",
"/:ok": "Expression_90@2x.png",
"/OK": "Expression_90@2x.png",
"[OK]": "Expression_90@2x.png",
"[ตกลง]": "Expression_90@2x.png",
"/:love": "Expression_91@2x.png",
"/爱情": "Expression_91@2x.png",
"[爱情]": "Expression_91@2x.png",
"[愛情]": "Expression_91@2x.png",
"[InLove]": "Expression_91@2x.png",
"[รกกน]": "Expression_91@2x.png",
"/:<L>": "Expression_92@2x.png",
"/飞吻": "Expression_92@2x.png",
"[飞吻]": "Expression_92@2x.png",
"[飛吻]": "Expression_92@2x.png",
"[Blowkiss]": "Expression_92@2x.png",
"[มรก]": "Expression_92@2x.png",
"/:jump": "Expression_93@2x.png",
"/跳跳": "Expression_93@2x.png",
"[跳跳]": "Expression_93@2x.png",
"[Waddle]": "Expression_93@2x.png",
"[กระโดด]": "Expression_93@2x.png",
"/:shake": "Expression_94@2x.png",
"/发抖": "Expression_94@2x.png",
"[发抖]": "Expression_94@2x.png",
"[發抖]": "Expression_94@2x.png",
"[Tremble]": "Expression_94@2x.png",
"[เขยา]": "Expression_94@2x.png",
"/:<O>": "Expression_95@2x.png",
"/怄火": "Expression_95@2x.png",
"[怄火]": "Expression_95@2x.png",
"[噴火]": "Expression_95@2x.png",
"[Aaagh!]": "Expression_95@2x.png",
"[อากส!]": "Expression_95@2x.png",
"/:circle": "Expression_96@2x.png",
"/转圈": "Expression_96@2x.png",
"[转圈]": "Expression_96@2x.png",
"[轉圈]": "Expression_96@2x.png",
"[Twirl]": "Expression_96@2x.png",
"[หมนตว]": "Expression_96@2x.png",
"/:kotow": "Expression_97@2x.png",
"/磕头": "Expression_97@2x.png",
"[磕头]": "Expression_97@2x.png",
"[磕頭]": "Expression_97@2x.png",
"[Kotow]": "Expression_97@2x.png",
"[คนบ]": "Expression_97@2x.png",
"/:turn": "Expression_98@2x.png",
"/回头": "Expression_98@2x.png",
"[回头]": "Expression_98@2x.png",
"[回頭]": "Expression_98@2x.png",
"[Dramatic]": "Expression_98@2x.png",
"[เหลยวหลง]": "Expression_98@2x.png",
"/:skip": "Expression_99@2x.png",
"/跳绳": "Expression_99@2x.png",
"[跳绳]": "Expression_99@2x.png",
"[跳繩]": "Expression_99@2x.png",
"[JumpRope]": "Expression_99@2x.png",
// "[กระโดด]": "Expression_99@2x.png",
"/:oY": "Expression_100@2x.png",
"/挥手": "Expression_100@2x.png",
"[投降]": "Expression_100@2x.png",
"[Surrender]": "Expression_100@2x.png",
"[ยอมแพ]": "Expression_100@2x.png",
"/:#-0": "Expression_101@2x.png",
"/激动": "Expression_101@2x.png",
"[激动]": "Expression_101@2x.png",
"[激動]": "Expression_101@2x.png",
"[Hooray]": "Expression_101@2x.png",
"[ไชโย]": "Expression_101@2x.png",
"/:hiphot": "Expression_102@2x.png",
"/街舞": "Expression_102@2x.png",
"[乱舞]": "Expression_102@2x.png",
"[亂舞]": "Expression_102@2x.png",
"[Meditate]": "Expression_102@2x.png",
"[เยเย]": "Expression_102@2x.png",
"/:kiss": "Expression_103@2x.png",
"/献吻": "Expression_103@2x.png",
"[献吻]": "Expression_103@2x.png",
"[獻吻]": "Expression_103@2x.png",
"[Smooch]": "Expression_103@2x.png",
// "[จบ]": "Expression_103@2x.png",
"/:<&": "Expression_104@2x.png",
"/左太极": "Expression_104@2x.png",
"[左太极]": "Expression_104@2x.png",
"[左太極]": "Expression_104@2x.png",
"[TaiChi L]": "Expression_104@2x.png",
"[หญงตอส]": "Expression_104@2x.png",
// "/:&\\"": "Expression_105@2x.png",
"/右太极": "Expression_105@2x.png",
"[右太极]": "Expression_105@2x.png",
"[右太極]": "Expression_105@2x.png",
"[TaiChi R]": "Expression_105@2x.png",
"[ชายตอส]": "Expression_105@2x.png",
"[奸笑]": "new/2_02.png",
"[Smirk]": "new/2_02.png",
"[嘿哈]": "new/2_04.png",
"[吼嘿]": "new/2_04.png",
"[Hey]": "new/2_04.png",
"[捂脸]": "new/2_05.png",
"[掩面]": "new/2_05.png",
"[Facepalm]": "new/2_05.png",
"[机智]": "new/2_06.png",
"[機智]": "new/2_06.png",
"[Smart]": "new/2_06.png",
"[茶]": "new/2_07.png",
"[Tea]": "new/2_07.png",
"[红包]": "new/2_09.png",
"[Packet]": "new/2_09.png",
"[蜡烛]": "new/2_10.png",
"[蠟燭]": "new/2_10.png",
"[Candle]": "new/2_10.png",
"[耶]": "new/2_11.png",
"[歐耶]": "new/2_11.png",
"[Yeah!]": "new/2_11.png",
"[皱眉]": "new/2_12.png",
"[皺眉]": "new/2_12.png",
"[Concerned]": "new/2_12.png",
"[抱拳]": "new/smiley_83b.png",
"[Salute]": "new/smiley_83b.png",
"[鸡]": "new/2_14.png",
"[小雞]": "new/2_14.png",
"[Chick]": "new/2_14.png",
"[福]": "new/2_15.png",
"[Blessing]": "new/2_15.png",
"[再见]": "new/smiley_39b.png",
"[再見]": "new/smiley_39b.png",
"[Bye]": "new/smiley_39b.png",
"[發]": "new/2_16.png",
"[Rich]": "new/2_16.png",
"[小狗]": "new/2_17.png",
"[Pup]": "new/2_17.png",
"[吃瓜]": "new/Watermelon.png",
"[吃西瓜]": "new/Watermelon.png",
"[Onlooker]": "new/Watermelon.png",
"[加油]": "new/Addoil.png",
"[GoForIt]": "new/Addoil.png",
"[汗]": "new/Sweat.png",
"[Sweats]": "new/Sweat.png",
"[天啊]": "new/Shocked.png",
"[OMG]": "new/Shocked.png",
"[一言難盡]": "new/Cold.png",
"[Emm]": "new/Cold.png",
"[社会社会]": "new/Social.png",
"[失敬失敬]": "new/Social.png",
"[Respect]": "new/Social.png",
"[旺柴]": "new/Yellowdog.png",
"[Doge]": "new/Yellowdog.png",
"[好的]": "new/NoProb.png",
"[NoProb]": "new/NoProb.png",
"[打脸]": "new/Slap.png",
"[打臉]": "new/Slap.png",
"[MyBad]": "new/Slap.png",
"[哇]": "new/Wow.png",
"[Wow]": "new/Wow.png",
"[加油加油]": "new/KeepFighting.png",
"[加油!]": "new/KeepFighting.png",
"[KeepFighting]": "new/KeepFighting.png",
"[翻白眼]": "new/Boring.png",
"[Boring]": "new/Boring.png",
"[666]": "new/666.png",
"[Awesome]": "new/666.png",
"[让我看看]": "new/LetMeSee.png",
"[讓我看看]": "new/LetMeSee.png",
"[LetMeSee]": "new/LetMeSee.png",
"[叹气]": "new/Sigh.png",
"[嘆息]": "new/Sigh.png",
"[Sigh]": "new/Sigh.png",
"[苦涩]": "new/Hurt.png",
"[難受]": "new/Hurt.png",
"[Hurt]": "new/Hurt.png",
"[裂开]": "new/Broken.png",
"[崩潰]": "new/Broken.png",
"[Broken]": "new/Broken.png",
"[脸红]": "new/Flushed.png",
"[臉紅]": "new/Flushed.png",
"[Flushed]": "new/Flushed.png",
"[笑脸]": "new/Happy.png",
"[笑臉]": "new/Happy.png",
"[Happy]": "new/Happy.png",
"[破涕为笑]": "new/Lol.png",
"[破涕為笑]": "new/Lol.png",
"[Lol]": "new/Lol.png",
"[烟花]": "new/Fireworks.png",
"[煙花]": "new/Fireworks.png",
"[Fireworks]": "new/Fireworks.png",
"[爆竹]": "new/Firecracker.png",
"[Firecracker]": "new/Firecracker.png",
"[庆祝]": "new/Party.png",
"[慶祝]": "new/Party.png",
"[Party]": "new/Party.png",
"[恐惧]": "new/Terror.png",
"[恐懼]": "new/Terror.png",
"[Terror]": "new/Terror.png",
"[无语]": "new/Duh.png",
"[無語]": "new/Duh.png",
"[Duh]": "new/Duh.png",
"[LetDown]": "new/LetDown.png",
"[失望]": "new/LetDown.png",
"[Let Down]": "new/LetDown.png",
"[生病]": "new/Sick.png",
"[Sick]": "new/Sick.png",
"[合十]": "new/Worship.png",
"[Worship]": "new/Worship.png",
};
export default WechatEmojiTable;
// 构建正则表达式匹配所有 emoji key
const emojiKeys = Object.keys(WechatEmojiTable);
// 按长度降序排序,确保长的 key 优先匹配
const sortedKeys = emojiKeys.sort((a, b) => b.length - a.length);
const escapedKeys = sortedKeys.map(k => k.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'));
const emojiRegex = new RegExp(`(${escapedKeys.join('|')})`, 'g');
export interface TextSegment {
type: 'text' | 'emoji';
content: string;
emojiSrc?: string;
}
// 解析文本,将 emoji 代码转换为分段数组
export function parseTextWithEmoji(text: string): TextSegment[] {
if (!text) return [];
const segments: TextSegment[] = [];
let lastIndex = 0;
let match: RegExpExecArray | null;
emojiRegex.lastIndex = 0;
while ((match = emojiRegex.exec(text)) !== null) {
// 添加 emoji 前的文本
if (match.index > lastIndex) {
segments.push({ type: 'text', content: text.slice(lastIndex, match.index) });
}
// 添加 emoji
const emojiKey = match[0];
segments.push({
type: 'emoji',
content: emojiKey,
emojiSrc: `/wxemoji/${WechatEmojiTable[emojiKey]}`
});
lastIndex = match.index + emojiKey.length;
}
// 添加剩余文本
if (lastIndex < text.length) {
segments.push({ type: 'text', content: text.slice(lastIndex) });
}
return segments;
}