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

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

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

887 lines
26 KiB
TypeScript
Raw Permalink 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> = {
"/::)": "[email protected]",
"/微笑": "[email protected]",
"[微笑]": "[email protected]",
"[Smile]": "[email protected]",
"[ยม]": "[email protected]",
"/::~": "[email protected]",
"/撇嘴": "[email protected]",
"[撇嘴]": "[email protected]",
"[Grimace]": "[email protected]",
"[หนาบด]": "[email protected]",
"/::B": "[email protected]",
"/色": "[email protected]",
"[色]": "[email protected]",
"[Drool]": "[email protected]",
"[นลายไหล]": "[email protected]",
"/::|": "[email protected]",
"/发呆": "[email protected]",
"[发呆]": "[email protected]",
"[發呆]": "[email protected]",
"[Scowl]": "[email protected]",
"[หนาบง]": "[email protected]",
"/:8-)": "[email protected]",
"/得意": "[email protected]",
"[得意]": "[email protected]",
"[CoolGuy]": "[email protected]",
"[สบาย]": "[email protected]",
"/::<": "[email protected]",
"/流泪": "[email protected]",
"[流泪]": "[email protected]",
"[流淚]": "[email protected]",
"[Sob]": "[email protected]",
"[รองไหโฮ]": "[email protected]",
"/::$": "[email protected]",
"/害羞": "[email protected]",
"[害羞]": "[email protected]",
"[Shy]": "[email protected]",
"[อาย]": "[email protected]",
"/::X": "[email protected]",
"/闭嘴": "[email protected]",
"[闭嘴]": "[email protected]",
"[閉嘴]": "[email protected]",
"[Silent]": "[email protected]",
"[หามพด]": "[email protected]",
"/::Z": "[email protected]",
"/睡": "[email protected]",
"[睡]": "[email protected]",
"[Sleep]": "[email protected]",
"[หลบ]": "[email protected]",
// "/::\'(": "[email protected]",
"/大哭": "[email protected]",
"[大哭]": "[email protected]",
"[Cry]": "[email protected]",
"[รองไห]": "[email protected]",
"/::-|": "[email protected]",
"/尴尬": "[email protected]",
"[尴尬]": "[email protected]",
"[尷尬]": "[email protected]",
"[Awkward]": "[email protected]",
"[ลบากใจ]": "[email protected]",
"/::@": "[email protected]",
"/发怒": "[email protected]",
"[发怒]": "[email protected]",
"[發怒]": "[email protected]",
"[Angry]": "[email protected]",
"[โกรธสด]": "[email protected]",
"/::P": "[email protected]",
"/调皮": "[email protected]",
"[吐舌]": "[email protected]",
"[调皮]": "[email protected]",
"[調皮]": "[email protected]",
"[Tongue]": "[email protected]",
"[ขยบตา]": "[email protected]",
"/::D": "[email protected]",
"/呲牙": "[email protected]",
"[呲牙]": "[email protected]",
"[Grin]": "[email protected]",
"[ยมกวาง]": "[email protected]",
"/::O": "[email protected]",
"/惊讶": "[email protected]",
"[惊讶]": "[email protected]",
"[驚訝]": "[email protected]",
"[Surprise]": "[email protected]",
"[ประหลาดใจ]": "[email protected]",
"/::(": "[email protected]",
"/难过": "[email protected]",
"[难过]": "[email protected]",
"[難過]": "[email protected]",
"[Frown]": "[email protected]",
"[เสยใจ]": "[email protected]",
"/::+": "[email protected]",
"/酷": "[email protected]",
"[酷]": "[email protected]",
"[Ruthless]": "[email protected]",
"[เจง]": "[email protected]",
"/:--b": "[email protected]",
"/冷汗": "[email protected]",
"[囧]": "[email protected]",
"[Blush]": "[email protected]",
"/::Q": "[email protected]",
"/抓狂": "[email protected]",
"[抓狂]": "[email protected]",
"[Scream]": "[email protected]",
"[กรดรอง]": "[email protected]",
"/::T": "[email protected]",
"/吐": "[email protected]",
"[吐]": "[email protected]",
"[Puke]": "[email protected]",
"[อาเจยน]": "[email protected]",
"/:,@P": "[email protected]",
"/偷笑": "[email protected]",
"[偷笑]": "[email protected]",
"[Chuckle]": "[email protected]",
"[หวเราะหๆ]": "[email protected]",
"/:,@-D": "[email protected]",
"/可爱": "[email protected]",
"[愉快]": "[email protected]",
"[Joyful]": "[email protected]",
"[พอใจ]": "[email protected]",
"/::d": "[email protected]",
"/白眼": "[email protected]",
"[白眼]": "[email protected]",
"[Slight]": "[email protected]",
"[สงสย]": "[email protected]",
"/:,@o": "[email protected]",
"/傲慢": "[email protected]",
"[傲慢]": "[email protected]",
"[Smug]": "[email protected]",
"[หยง]": "[email protected]",
"/::g": "[email protected]",
"/饥饿": "[email protected]",
"[饥饿]": "[email protected]",
"[饑餓]": "[email protected]",
"[Hungry]": "[email protected]",
"[หว]": "[email protected]",
"/:|-)": "[email protected]",
"/困": "[email protected]",
"[困]": "[email protected]",
"[累]": "[email protected]",
"[Drowsy]": "[email protected]",
"[งวงนอน]": "[email protected]",
"/::!": "[email protected]",
"/惊恐": "[email protected]",
"[惊恐]": "[email protected]",
"[驚恐]": "[email protected]",
"[Panic]": "[email protected]",
"[ตกใจกลว]": "[email protected]",
"/::L": "[email protected]",
"/流汗": "[email protected]",
"[流汗]": "[email protected]",
"[Sweat]": "[email protected]",
"[เหงอตก]": "[email protected]",
"/::>": "[email protected]",
"/憨笑": "[email protected]",
"[憨笑]": "[email protected]",
"[大笑]": "[email protected]",
"[Laugh]": "[email protected]",
"[หวเราะ]": "[email protected]",
"/::,@": "[email protected]",
"/大兵": "[email protected]",
"[悠闲]": "[email protected]",
"[悠閑]": "[email protected]",
"[Commando]": "[email protected]",
"[ทหาร]": "[email protected]",
"/:,@f": "[email protected]",
"/奋斗": "[email protected]",
"[奋斗]": "[email protected]",
"[奮鬥]": "[email protected]",
"[Determined]": "[email protected]",
"[มงมน]": "[email protected]",
"/::-S": "[email protected]",
"/咒骂": "[email protected]",
"[咒骂]": "[email protected]",
"[咒罵]": "[email protected]",
"[Scold]": "[email protected]",
"[ดาวาา]": "[email protected]",
"/:?": "[email protected]",
"/疑问": "[email protected]",
"[疑问]": "[email protected]",
"[疑問]": "[email protected]",
"[Shocked]": "[email protected]",
"[สบสน]": "[email protected]",
"/:,@x": "[email protected]",
"/嘘": "[email protected]",
"[嘘]": "[email protected]",
"[噓]": "[email protected]",
"[Shhh]": "[email protected]",
"[จๆ]": "[email protected]",
"/:,@@": "[email protected]",
"/晕": "[email protected]",
"[晕]": "[email protected]",
"[暈]": "[email protected]",
"[Dizzy]": "[email protected]",
"[เวยนหว]": "[email protected]",
"/::8": "[email protected]",
"/折磨": "[email protected]",
"[疯了]": "[email protected]",
"[瘋了]": "[email protected]",
"[Tormented]": "[email protected]",
"[ทอแท]": "[email protected]",
"/:,@!": "[email protected]",
"/衰": "[email protected]",
"[衰]": "[email protected]",
"[Toasted]": "[email protected]",
"[ชวราย]": "[email protected]",
"/:!!!": "[email protected]",
"/骷髅": "[email protected]",
"[骷髅]": "[email protected]",
"[骷髏頭]": "[email protected]",
"[Skull]": "[email protected]",
"[หวกะโหลก]": "[email protected]",
"/:xx": "[email protected]",
"/敲打": "[email protected]",
"[敲打]": "[email protected]",
"[Hammer]": "[email protected]",
"[คอนทบ]": "[email protected]",
"/:bye": "[email protected]",
"/再见": "[email protected]",
// "[再見]": "[email protected]",
"[Wave]": "[email protected]",
"[บายๆ]": "[email protected]",
"/:wipe": "[email protected]",
"/擦汗": "[email protected]",
"[擦汗]": "[email protected]",
"[Speechless]": "[email protected]",
"[เชดเหงอ]": "[email protected]",
"/:dig": "[email protected]",
"/抠鼻": "[email protected]",
"[抠鼻]": "[email protected]",
"[摳鼻]": "[email protected]",
"[NosePick]": "[email protected]",
"[แคะจมก]": "[email protected]",
"/:handclap": "[email protected]",
"/鼓掌": "[email protected]",
"[鼓掌]": "[email protected]",
"[Clap]": "[email protected]",
"[ตบมอ]": "[email protected]",
"/:&-(": "[email protected]",
"/糗大了": "[email protected]",
"[糗大了]": "[email protected]",
"[羞辱]": "[email protected]",
"[Shame]": "[email protected]",
"[อบอาย]": "[email protected]",
"/:B-)": "[email protected]",
"/坏笑": "[email protected]",
"[坏笑]": "[email protected]",
"[壞笑]": "[email protected]",
"[Trick]": "[email protected]",
"[กลโกง]": "[email protected]",
"/:<@": "[email protected]",
"/左哼哼": "[email protected]",
"[左哼哼]": "[email protected]",
"[BahL]": "[email protected]",
"[เชดซาย]": "[email protected]",
"/:@>": "[email protected]",
"/右哼哼": "[email protected]",
"[右哼哼]": "[email protected]",
"[BahR]": "[email protected]",
"[เชดขวา]": "[email protected]",
"/::-O": "[email protected]",
"/哈欠": "[email protected]",
"[哈欠]": "[email protected]",
"[Yawn]": "[email protected]",
"[หาว]": "[email protected]",
"/:>-|": "[email protected]",
"/鄙视": "[email protected]",
"[鄙视]": "[email protected]",
"[鄙視]": "[email protected]",
"[Pooh-pooh]": "[email protected]",
"[ดถก]": "[email protected]",
"/:P-(": "[email protected]",
"/委屈": "[email protected]",
"[委屈]": "[email protected]",
"[Shrunken]": "[email protected]",
"[ของใจ]": "[email protected]",
// "/::\'|": "[email protected]",
"/快哭了": "[email protected]",
"[快哭了]": "[email protected]",
"[TearingUp]": "[email protected]",
"[เกอบรองไห]": "[email protected]",
"/:X-)": "[email protected]",
"/阴险": "[email protected]",
"[阴险]": "[email protected]",
"[陰險]": "[email protected]",
"[Sly]": "[email protected]",
"[ขโกง]": "[email protected]",
"/::*": "[email protected]",
"/亲亲": "[email protected]",
"[亲亲]": "[email protected]",
"[親親]": "[email protected]",
"[Kiss]": "[email protected]",
"[จบ]": "[email protected]",
"/:@x": "[email protected]",
"/吓": "[email protected]",
"[吓]": "[email protected]",
"[嚇]": "[email protected]",
"[Wrath]": "[email protected]",
"[หา]": "[email protected]",
"/:8*": "[email protected]",
"/可怜": "[email protected]",
"[可怜]": "[email protected]",
"[可憐]": "[email protected]",
"[Whimper]": "[email protected]",
"[นาสงสาร]": "[email protected]",
"/:pd": "[email protected]",
"/菜刀": "[email protected]",
"[菜刀]": "[email protected]",
"[Cleaver]": "[email protected]",
"[มด]": "[email protected]",
"/:<W>": "[email protected]",
"/西瓜": "[email protected]",
"[西瓜]": "[email protected]",
"[Watermelon]": "[email protected]",
"[แตงโม]": "[email protected]",
"/:beer": "[email protected]",
"/啤酒": "[email protected]",
"[啤酒]": "[email protected]",
"[Beer]": "[email protected]",
"[เบยร]": "[email protected]",
"/:basketb": "[email protected]",
"/篮球": "[email protected]",
"[篮球]": "[email protected]",
"[籃球]": "[email protected]",
"[Basketball]": "[email protected]",
"[บาสเกตบอล]": "[email protected]",
"/:oo": "[email protected]",
"/乒乓": "[email protected]",
"[乒乓]": "[email protected]",
"[PingPong]": "[email protected]",
"[ปงปอง]": "[email protected]",
"/:coffee": "[email protected]",
"/咖啡": "[email protected]",
"[咖啡]": "[email protected]",
"[Coffee]": "[email protected]",
"[กาแฟ]": "[email protected]",
"/:eat": "[email protected]",
"/饭": "[email protected]",
"[饭]": "[email protected]",
"[飯]": "[email protected]",
"[Rice]": "[email protected]",
"[ขาว]": "[email protected]",
"/:pig": "[email protected]",
"/猪头": "[email protected]",
"[猪头]": "[email protected]",
"[豬頭]": "[email protected]",
"[Pig]": "[email protected]",
"[หม]": "[email protected]",
"/:rose": "[email protected]",
"/玫瑰": "[email protected]",
"[玫瑰]": "[email protected]",
"[Rose]": "[email protected]",
"[กหลาบ]": "[email protected]",
"/:fade": "[email protected]",
"/凋谢": "[email protected]",
"[凋谢]": "[email protected]",
"[枯萎]": "[email protected]",
"[Wilt]": "[email protected]",
"[รวงโรย]": "[email protected]",
"/:showlove": "[email protected]",
"/示爱": "[email protected]",
"[嘴唇]": "[email protected]",
"[Lips]": "[email protected]",
"[รมฝปาก]": "[email protected]",
"/:heart": "[email protected]",
"/爱心": "[email protected]",
"[爱心]": "[email protected]",
"[愛心]": "[email protected]",
"[Heart]": "[email protected]",
"[หวใจ]": "[email protected]",
"/:break": "[email protected]",
"/心碎": "[email protected]",
"[心碎]": "[email protected]",
"[BrokenHeart]": "[email protected]",
"[ใจสลาย]": "[email protected]",
"/:cake": "[email protected]",
"/蛋糕": "[email protected]",
"[蛋糕]": "[email protected]",
"[Cake]": "[email protected]",
"[เคก]": "[email protected]",
"/:li": "[email protected]",
"/闪电": "[email protected]",
"[闪电]": "[email protected]",
"[閃電]": "[email protected]",
"[Lightning]": "[email protected]",
"[ฟาผา]": "[email protected]",
"/:bome": "[email protected]",
"/炸弹": "[email protected]",
"[炸弹]": "[email protected]",
"[炸彈]": "[email protected]",
"[Bomb]": "[email protected]",
"[ระเบด]": "[email protected]",
"/:kn": "[email protected]",
"/刀": "[email protected]",
"[刀]": "[email protected]",
"[Dagger]": "[email protected]",
"[ดาบ]": "[email protected]",
"/:footb": "[email protected]",
"/足球": "[email protected]",
"[足球]": "[email protected]",
"[Soccer]": "[email protected]",
"[ฟตบอล]": "[email protected]",
"/:ladybug": "[email protected]",
"/瓢虫": "[email protected]",
"[瓢虫]": "[email protected]",
"[甲蟲]": "[email protected]",
"[Ladybug]": "[email protected]",
"[เตาทอง]": "[email protected]",
"/:shit": "[email protected]",
"/便便": "[email protected]",
"[便便]": "[email protected]",
"[Poop]": "[email protected]",
"[อจจาระ]": "[email protected]",
"/:moon": "[email protected]",
"/月亮": "[email protected]",
"[月亮]": "[email protected]",
"[Moon]": "[email protected]",
"[พระจนทร]": "[email protected]",
"/:sun": "[email protected]",
"/太阳": "[email protected]",
"[太阳]": "[email protected]",
"[太陽]": "[email protected]",
"[Sun]": "[email protected]",
"[พระอาทตย]": "[email protected]",
"/:gift": "[email protected]",
"/礼物": "[email protected]",
"[禮物]": "[email protected]",
"[礼物]": "[email protected]",
"[Gift]": "[email protected]",
"/:hug": "[email protected]",
"/拥抱": "[email protected]",
"[拥抱]": "[email protected]",
"[擁抱]": "[email protected]",
"[Hug]": "[email protected]",
"[กอด]": "[email protected]",
"/:strong": "[email protected]",
"/强": "[email protected]",
"[强]": "[email protected]",
"[強]": "[email protected]",
"[ThumbsUp]": "[email protected]",
"[ยอดเยยม]": "[email protected]",
"/:weak": "[email protected]",
"/弱": "[email protected]",
"[弱]": "[email protected]",
"[ThumbsDown]": "[email protected]",
"[ยอดแย]": "[email protected]",
"/:share": "[email protected]",
"/握手": "[email protected]",
"[握手]": "[email protected]",
"[Shake]": "[email protected]",
"[จบมอ]": "[email protected]",
"/:v": "[email protected]",
"/胜利": "[email protected]",
"[胜利]": "[email protected]",
"[勝利]": "[email protected]",
"[Peace]": "[email protected]",
"[สตาย]": "[email protected]",
"/:@)": "[email protected]",
"/抱拳": "[email protected]",
// "[抱拳]": "[email protected]",
"[Fight]": "[email protected]",
"[คารวะ]": "[email protected]",
"/:jj": "[email protected]",
"/勾引": "[email protected]",
"[勾引]": "[email protected]",
"[Beckon]": "[email protected]",
"[เขามา]": "[email protected]",
"/:@@": "[email protected]",
"/拳头": "[email protected]",
"[拳头]": "[email protected]",
"[拳頭]": "[email protected]",
"[Fist]": "[email protected]",
"[กหมด]": "[email protected]",
"/:bad": "[email protected]",
"/差劲": "[email protected]",
"[差劲]": "[email protected]",
"[差勁]": "[email protected]",
"[Pinky]": "[email protected]",
"[ดกน]": "[email protected]",
"/:lvu": "[email protected]",
"/爱你": "[email protected]",
"[爱你]": "[email protected]",
"[愛你]": "[email protected]",
"[RockOn]": "[email protected]",
"[ฉนรกคณ]": "[email protected]",
"/:no": "[email protected]",
"/NO": "[email protected]",
"[NO]": "[email protected]",
"[Nuh-uh]": "[email protected]",
"[ไม]": "[email protected]",
"/:ok": "[email protected]",
"/OK": "[email protected]",
"[OK]": "[email protected]",
"[ตกลง]": "[email protected]",
"/:love": "[email protected]",
"/爱情": "[email protected]",
"[爱情]": "[email protected]",
"[愛情]": "[email protected]",
"[InLove]": "[email protected]",
"[รกกน]": "[email protected]",
"/:<L>": "[email protected]",
"/飞吻": "[email protected]",
"[飞吻]": "[email protected]",
"[飛吻]": "[email protected]",
"[Blowkiss]": "[email protected]",
"[มรก]": "[email protected]",
"/:jump": "[email protected]",
"/跳跳": "[email protected]",
"[跳跳]": "[email protected]",
"[Waddle]": "[email protected]",
"[กระโดด]": "[email protected]",
"/:shake": "[email protected]",
"/发抖": "[email protected]",
"[发抖]": "[email protected]",
"[發抖]": "[email protected]",
"[Tremble]": "[email protected]",
"[เขยา]": "[email protected]",
"/:<O>": "[email protected]",
"/怄火": "[email protected]",
"[怄火]": "[email protected]",
"[噴火]": "[email protected]",
"[Aaagh!]": "[email protected]",
"[อากส!]": "[email protected]",
"/:circle": "[email protected]",
"/转圈": "[email protected]",
"[转圈]": "[email protected]",
"[轉圈]": "[email protected]",
"[Twirl]": "[email protected]",
"[หมนตว]": "[email protected]",
"/:kotow": "[email protected]",
"/磕头": "[email protected]",
"[磕头]": "[email protected]",
"[磕頭]": "[email protected]",
"[Kotow]": "[email protected]",
"[คนบ]": "[email protected]",
"/:turn": "[email protected]",
"/回头": "[email protected]",
"[回头]": "[email protected]",
"[回頭]": "[email protected]",
"[Dramatic]": "[email protected]",
"[เหลยวหลง]": "[email protected]",
"/:skip": "[email protected]",
"/跳绳": "[email protected]",
"[跳绳]": "[email protected]",
"[跳繩]": "[email protected]",
"[JumpRope]": "[email protected]",
// "[กระโดด]": "[email protected]",
"/:oY": "[email protected]",
"/挥手": "[email protected]",
"[投降]": "[email protected]",
"[Surrender]": "[email protected]",
"[ยอมแพ]": "[email protected]",
"/:#-0": "[email protected]",
"/激动": "[email protected]",
"[激动]": "[email protected]",
"[激動]": "[email protected]",
"[Hooray]": "[email protected]",
"[ไชโย]": "[email protected]",
"/:hiphot": "[email protected]",
"/街舞": "[email protected]",
"[乱舞]": "[email protected]",
"[亂舞]": "[email protected]",
"[Meditate]": "[email protected]",
"[เยเย]": "[email protected]",
"/:kiss": "[email protected]",
"/献吻": "[email protected]",
"[献吻]": "[email protected]",
"[獻吻]": "[email protected]",
"[Smooch]": "[email protected]",
// "[จบ]": "[email protected]",
"/:<&": "[email protected]",
"/左太极": "[email protected]",
"[左太极]": "[email protected]",
"[左太極]": "[email protected]",
"[TaiChi L]": "[email protected]",
"[หญงตอส]": "[email protected]",
// "/:&\\"": "[email protected]",
"/右太极": "[email protected]",
"[右太极]": "[email protected]",
"[右太極]": "[email protected]",
"[TaiChi R]": "[email protected]",
"[ชายตอส]": "[email protected]",
"[奸笑]": "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;
}