Skip to content

Instantly share code, notes, and snippets.

@xchao0213
Created December 10, 2019 12:25
Show Gist options
  • Save xchao0213/f8e79b7ed7ea3a1ba93d14ae85f0072e to your computer and use it in GitHub Desktop.
Save xchao0213/f8e79b7ed7ea3a1ba93d14ae85f0072e to your computer and use it in GitHub Desktop.
wechat_emoji
const MM_EMOTICON_WEB = "_web"
const RES_PATH = "/zh_CN/htmledition/v2/"
const RES_IMG_PLACEHOLDER = RES_PATH + "images/spacer.gif"
const QQFaceList = ["微笑", "撇嘴", "色", "发呆", "得意", "流泪", "害羞", "闭嘴", "睡", "大哭", "尴尬", "发怒", "调皮", "呲牙", "惊讶", "难过", "酷", "冷汗", "抓狂", "吐", "偷笑", "愉快", "白眼", "傲慢", "饥饿", "困", "惊恐", "流汗", "憨笑", "悠闲", "奋斗", "咒骂", "疑问", "嘘", "晕", "疯了", "衰", "骷髅", "敲打", "再见", "擦汗", "抠鼻", "鼓掌", "糗大了", "坏笑", "左哼哼", "右哼哼", "哈欠", "鄙视", "委屈", "快哭了", "阴险", "亲亲", "吓", "可怜", "菜刀", "西瓜", "啤酒", "篮球", "乒乓", "咖啡", "饭", "猪头", "玫瑰", "凋谢", "嘴唇", "爱心", "心碎", "蛋糕", "闪电", "炸弹", "刀", "足球", "瓢虫", "便便", "月亮", "太阳", "礼物", "拥抱", "强", "弱", "握手", "胜利", "抱拳", "勾引", "拳头", "差劲", "爱你", "NO", "OK", "爱情", "飞吻", "跳跳", "发抖", "怄火", "转圈", "磕头", "回头", "跳绳", "投降", "激动", "乱舞", "献吻", "左太极", "右太极"]
const EmojiList = ["笑脸", "生病", "破涕为笑", "吐舌", "脸红", "恐惧", "失望", "无语", "嘿哈", "捂脸", "奸笑", "机智", "皱眉", "耶", "鬼魂", "合十", "强壮", "庆祝", "礼物", "红包", "鸡", "开心", "大笑", "热情", "眨眼", "色", "接吻", "亲吻", "露齿笑", "满意", "戏弄", "得意", "汗", "低落", "呸", "焦虑", "担心", "震惊", "悔恨", "眼泪", "哭", "晕", "心烦", "生气", "睡觉", "恶魔", "外星人", "心", "心碎", "丘比特", "闪烁", "星星", "叹号", "问号", "睡着", "水滴", "音乐", "火", "便便", "弱", "拳头", "胜利", "上", "下", "右", "左", "第一", "吻", "热恋", "男孩", "女孩", "女士", "男士", "天使", "骷髅", "红唇", "太阳", "下雨", "多云", "雪人", "月亮", "闪电", "海浪", "猫", "小狗", "老鼠", "仓鼠", "兔子", "狗", "青蛙", "老虎", "考拉", "熊", "猪", "牛", "野猪", "猴子", "马", "蛇", "鸽子", "鸡", "企鹅", "毛虫", "章鱼", "鱼", "鲸鱼", "海豚", "玫瑰", "花", "棕榈树", "仙人掌", "礼盒", "南瓜灯", "圣诞老人", "圣诞树", "礼物", "铃", "气球", "CD", "相机", "录像机", "电脑", "电视", "电话", "解锁", "锁", "钥匙", "成交", "灯泡", "邮箱", "浴缸", "钱", "炸弹", "手枪", "药丸", "橄榄球", "篮球", "足球", "棒球", "高尔夫", "奖杯", "入侵者", "唱歌", "吉他", "比基尼", "皇冠", "雨伞", "手提包", "口红", "戒指", "钻石", "咖啡", "啤酒", "干杯", "鸡尾酒", "汉堡", "薯条", "意面", "寿司", "面条", "煎蛋", "冰激凌", "蛋糕", "苹果", "飞机", "火箭", "自行车", "高铁", "警告", "旗", "男人", "女人", "O", "X", "版权", "注册商标", "商标"]
const QQFaceMap= {
"微笑": "0",
"撇嘴": "1",
"色": "2",
"发呆": "3",
"得意": "4",
"流泪": "5",
"害羞": "6",
"闭嘴": "7",
"睡": "8",
"大哭": "9",
"尴尬": "10",
"发怒": "11",
"调皮": "12",
"呲牙": "13",
"惊讶": "14",
"难过": "15",
"酷": "16",
"冷汗": "17",
"抓狂": "18",
"吐": "19",
"偷笑": "20",
"可爱": "21",
"愉快": "21",
"白眼": "22",
"傲慢": "23",
"饥饿": "24",
"困": "25",
"惊恐": "26",
"流汗": "27",
"憨笑": "28",
"悠闲": "29",
"大兵": "29",
"奋斗": "30",
"咒骂": "31",
"疑问": "32",
"嘘": "33",
"晕": "34",
"疯了": "35",
"折磨": "35",
"衰": "36",
"骷髅": "37",
"敲打": "38",
"再见": "39",
"擦汗": "40",
"抠鼻": "41",
"鼓掌": "42",
"糗大了": "43",
"坏笑": "44",
"左哼哼": "45",
"右哼哼": "46",
"哈欠": "47",
"鄙视": "48",
"委屈": "49",
"快哭了": "50",
"阴险": "51",
"亲亲": "52",
"吓": "53",
"可怜": "54",
"菜刀": "55",
"西瓜": "56",
"啤酒": "57",
"篮球": "58",
"乒乓": "59",
"咖啡": "60",
"饭": "61",
"猪头": "62",
"玫瑰": "63",
"凋谢": "64",
"嘴唇": "65",
"示爱": "65",
"爱心": "66",
"心碎": "67",
"蛋糕": "68",
"闪电": "69",
"炸弹": "70",
"刀": "71",
"足球": "72",
"瓢虫": "73",
"便便": "74",
"月亮": "75",
"太阳": "76",
"礼物": "77",
"拥抱": "78",
"强": "79",
"弱": "80",
"握手": "81",
"胜利": "82",
"抱拳": "83",
"勾引": "84",
"拳头": "85",
"差劲": "86",
"爱你": "87",
NO: "88",
OK: "89",
"爱情": "90",
"飞吻": "91",
"跳跳": "92",
"发抖": "93",
"怄火": "94",
"转圈": "95",
"磕头": "96",
"回头": "97",
"跳绳": "98",
"投降": "99",
"激动": "100",
"乱舞": "101",
"献吻": "102",
"左太极": "103",
"右太极": "104",
"嘿哈": "105",
"捂脸": "106",
"奸笑": "107",
"机智": "108",
"皱眉": "109",
"耶": "110",
"鸡": "111",
"红包": "112",
Smile: "0",
Grimace: "1",
Drool: "2",
Scowl: "3",
Chill: "4",
CoolGuy: "4",
Sob: "5",
Shy: "6",
Shutup: "7",
Silent: "7",
Sleep: "8",
Cry: "9",
Awkward: "10",
Pout: "11",
Angry: "11",
Wink: "12",
Tongue: "12",
Grin: "13",
Surprised: "14",
Surprise: "14",
Frown: "15",
Cool: "16",
Ruthless: "16",
Tension: "17",
Blush: "17",
Scream: "18",
Crazy: "18",
Puke: "19",
Chuckle: "20",
Joyful: "21",
Slight: "22",
Smug: "23",
Hungry: "24",
Drowsy: "25",
Panic: "26",
Sweat: "27",
Laugh: "28",
Loafer: "29",
Commando: "29",
Strive: "30",
Determined: "30",
Scold: "31",
Doubt: "32",
Shocked: "32",
Shhh: "33",
Dizzy: "34",
Tormented: "35",
BadLuck: "36",
Toasted: "36",
Skull: "37",
Hammer: "38",
Wave: "39",
Relief: "40",
Speechless: "40",
DigNose: "41",
NosePick: "41",
Clap: "42",
Shame: "43",
Trick: "44",
"Bah!L": "45",
"Bah!R": "46",
Yawn: "47",
Lookdown: "48",
"Pooh-pooh": "48",
Wronged: "49",
Shrunken: "49",
Puling: "50",
TearingUp: "50",
Sly: "51",
Kiss: "52",
"Uh-oh": "53",
Wrath: "53",
Whimper: "54",
Cleaver: "55",
Melon: "56",
Watermelon: "56",
Beer: "57",
Basketball: "58",
PingPong: "59",
Coffee: "60",
Rice: "61",
Pig: "62",
Rose: "63",
Wilt: "64",
Lip: "65",
Lips: "65",
Heart: "66",
BrokenHeart: "67",
Cake: "68",
Lightning: "69",
Bomb: "70",
Dagger: "71",
Soccer: "72",
Ladybug: "73",
Poop: "74",
Moon: "75",
Sun: "76",
Gift: "77",
Hug: "78",
Strong: "79",
ThumbsUp: "79",
Weak: "80",
ThumbsDown: "80",
Shake: "81",
Victory: "82",
Peace: "82",
Admire: "83",
Fight: "83",
Beckon: "84",
Fist: "85",
Pinky: "86",
Love: "2",
RockOn: "87",
No: "88",
"Nuh-uh": "88",
InLove: "90",
Blowkiss: "91",
Waddle: "92",
Tremble: "93",
"Aaagh!": "94",
Twirl: "95",
Kotow: "96",
Lookback: "97",
Dramatic: "97",
Jump: "98",
JumpRope: "98",
"Give-in": "99",
Surrender: "99",
Hooray: "100",
HeyHey: "101",
Meditate: "101",
Smooch: "102",
"TaiJi L": "103",
"TaiChi L": "103",
"TaiJi R": "104",
"TaiChi R": "104",
Hey: "105",
Facepalm: "106",
Smirk: "107",
Smart: "108",
Concerned: "109",
"Yeah!": "110",
Chicken: "111",
Packet: "112",
"發呆": "3",
"流淚": "5",
"閉嘴": "7",
"尷尬": "10",
"發怒": "11",
"調皮": "12",
"驚訝": "14",
"難過": "15",
"饑餓": "24",
"累": "25",
"驚恐": "26",
"悠閑": "29",
"奮鬥": "30",
"咒罵": "31",
"疑問": "32",
"噓": "33",
"暈": "34",
"瘋了": "35",
"骷髏頭": "37",
"再見": "39",
"摳鼻": "41",
"羞辱": "43",
"壞笑": "44",
"鄙視": "48",
"陰險": "51",
"親親": "52",
"嚇": "53",
"可憐": "54",
"籃球": "58",
"飯": "61",
"豬頭": "62",
"枯萎": "64",
"愛心": "66",
"閃電": "69",
"炸彈": "70",
"甲蟲": "73",
"太陽": "76",
"禮物": "77",
"擁抱": "78",
"強": "79",
"勝利": "82",
"拳頭": "85",
"差勁": "86",
"愛你": "88",
"愛情": "90",
"飛吻": "91",
"發抖": "93",
"噴火": "94",
"轉圈": "95",
"磕頭": "96",
"回頭": "97",
"跳繩": "98",
"激動": "100",
"亂舞": "101",
"獻吻": "102",
"左太極": "103",
"右太極": "104",
"吼嘿": "105",
"掩面": "106",
"機智": "108",
"皺眉": "109",
"歐耶": "110",
"雞": "111",
"紅包": "112",
"<笑脸>": "1f604",
"<笑臉>": "1f604",
"<Laugh>": "1f604",
"<开心>": "1f60a",
"<開心>": "1f60a",
"<Happy>": "1f60a",
"<大笑>": "1f603",
"<Big Smile>": "1f603",
"<热情>": "263a",
"<熱情>": "263a",
"<Glowing>": "263a",
"<眨眼>": "1f609",
"<Wink>": "1f609",
"<色>": "1f60d",
"<Love>": "1f60d",
"<Drool>": "1f60d",
"<接吻>": "1f618",
"<Smooch>": "1f618",
"<亲吻>": "1f61a",
"<親吻>": "1f61a",
"<Kiss>": "1f61a",
"<脸红>": "1f633",
"<臉紅>": "1f633",
"<Blush>": "1f633",
"<露齿笑>": "1f63c",
"<露齒笑>": "1f63c",
"<Grin>": "1f63c",
"<满意>": "1f60c",
"<滿意>": "1f60c",
"<Satisfied>": "1f60c",
"<戏弄>": "1f61c",
"<戲弄>": "1f61c",
"<Tease>": "1f61c",
"<吐舌>": "1f445",
"<Tongue>": "1f445",
"<无语>": "1f612",
"<無語>": "1f612",
"<Speechless>": "1f612",
"<得意>": "1f60f",
"<Smirk>": "1f60f",
"<CoolGuy>": "1f60f",
"<汗>": "1f613",
"<Sweat>": "1f613",
"<失望>": "1f640",
"<Let Down>": "1f640",
"<合十>": "1f64f",
"<祈禱>": "1f64f",
"<低落>": "1f61e",
"<Low>": "1f61e",
"<呸>": "1f616",
"<Ugh>": "1f616",
"<焦虑>": "1f625",
"<焦慮>": "1f625",
"<Anxious>": "1f625",
"<担心>": "1f630",
"<擔心>": "1f630",
"<Worried>": "1f630",
"<震惊>": "1f628",
"<震驚>": "1f628",
"<Shocked>": "1f628",
"<悔恨>": "1f62b",
"<D’oh!>": "1f62b",
"<眼泪>": "1f622",
"<眼淚>": "1f622",
"<Tear>": "1f622",
"<哭>": "1f62d",
"<Cry>": "1f62d",
"<破涕为笑>": "1f602",
"<破涕為笑>": "1f602",
"<Lol>": "1f602",
"<晕>": "1f632",
"<Dead>": "1f632",
"<Dizzy>": "1f632",
"<恐惧>": "1f631",
"<恐懼>": "1f631",
"<Terror>": "1f631",
"<心烦>": "1f620",
"<心煩>": "1f620",
"<Upset>": "1f620",
"<生气>": "1f63e",
"<生氣>": "1f63e",
"<Angry>": "1f63e",
"<睡觉>": "1f62a",
"<睡覺>": "1f62a",
"<Zzz>": "1f62a",
"<生病>": "1f637",
"<Sick>": "1f637",
"<恶魔>": "1f47f",
"<惡魔>": "1f47f",
"<Demon>": "1f47f",
"<外星人>": "1f47d",
"<Alien>": "1f47d",
"<心>": "2764",
"<Heart>": "2764",
"<心碎>": "1f494",
"<Heartbroken>": "1f494",
"<BrokenHeart>": "1f494",
"<丘比特>": "1f498",
"<Cupid>": "1f498",
"<闪烁>": "2728",
"<閃爍>": "2728",
"<Twinkle>": "2728",
"<星星>": "1f31f",
"<Star>": "1f31f",
"<叹号>": "2755",
"<嘆號>": "2755",
"<!>": "2755",
"<问号>": "2754",
"<問號>": "2754",
"<?>": "2754",
"<睡着>": "1f4a4",
"<睡著>": "1f4a4",
"<Asleep>": "1f4a4",
"<水滴>": "1f4a6",
"<Drops>": "1f4a6",
"<音乐>": "1f3b5",
"<音樂>": "1f3b5",
"<Music>": "1f3b5",
"<火>": "1f525",
"<Fire>": "1f525",
"<便便>": "1f4a9",
"<Poop>": "1f4a9",
"<强>": "1f44d",
"<強>": "1f44d",
"<ThumbsUp>": "1f44d",
"<弱>": "1f44e",
"<ThumbsDown>": "1f44e",
"<拳头>": "1f44a",
"<拳頭>": "1f44a",
"<Punch>": "1f44a",
"<Fist>": "1f44a",
"<胜利>": "270c",
"<勝利>": "270c",
"<Peace>": "270c",
"<上>": "1f446",
"<Up>": "1f446",
"<下>": "1f447",
"<Down>": "1f447",
"<右>": "1f449",
"<Right>": "1f449",
"<左>": "1f448",
"<Left>": "1f448",
"<第一>": "261d",
"<#1>": "261d",
"<强壮>": "1f4aa",
"<強壯>": "1f4aa",
"<Strong>": "1f4aa",
"<吻>": "1f48f",
"<Kissing>": "1f48f",
"<热恋>": "1f491",
"<熱戀>": "1f491",
"<Couple>": "1f491",
"<男孩>": "1f466",
"<Boy>": "1f466",
"<女孩>": "1f467",
"<Girl>": "1f467",
"<女士>": "1f469",
"<Lady>": "1f469",
"<男士>": "1f468",
"<Man>": "1f468",
"<天使>": "1f47c",
"<Angel>": "1f47c",
"<骷髅>": "1f480",
"<骷髏頭>": "1f480",
"<骷髏>": "1f480",
"<Skull>": "1f480",
"<红唇>": "1f48b",
"<紅唇>": "1f48b",
"<Lips>": "1f48b",
"<太阳>": "2600",
"<太陽>": "2600",
"<Sun>": "2600",
"<下雨>": "2614",
"<Rain>": "2614",
"<多云>": "2601",
"<多雲>": "2601",
"<Cloud>": "2601",
"<雪人>": "26c4",
"<Snowman>": "26c4",
"<月亮>": "1f319",
"<Moon>": "1f319",
"<闪电>": "26a1",
"<閃電>": "26a1",
"<Lightning>": "26a1",
"<海浪>": "1f30a",
"<Waves>": "1f30a",
"<猫>": "1f431",
"<貓>": "1f431",
"<Cat>": "1f431",
"<小狗>": "1f429",
"<Doggy>": "1f429",
"<老鼠>": "1f42d",
"<Mouse>": "1f42d",
"<仓鼠>": "1f439",
"<倉鼠>": "1f439",
"<Hamster>": "1f439",
"<兔子>": "1f430",
"<Rabbit>": "1f430",
"<狗>": "1f43a",
"<Dog>": "1f43a",
"<青蛙>": "1f438",
"<Frog>": "1f438",
"<老虎>": "1f42f",
"<Tiger>": "1f42f",
"<考拉>": "1f428",
"<Koala>": "1f428",
"<熊>": "1f43b",
"<Bear>": "1f43b",
"<猪>": "1f437",
"<豬>": "1f437",
"<Pig>": "1f437",
"<牛>": "1f42e",
"<Cow>": "1f42e",
"<野猪>": "1f417",
"<野豬>": "1f417",
"<Boar>": "1f417",
"<猴子>": "1f435",
"<Monkey>": "1f435",
"<马>": "1f434",
"<馬>": "1f434",
"<Horse>": "1f434",
"<蛇>": "1f40d",
"<Snake>": "1f40d",
"<鸽子>": "1f426",
"<鴿子>": "1f426",
"<Pigeon>": "1f426",
"<鸡>": "1f414",
"<雞>": "1f414",
"<Chicken>": "1f414",
"<企鹅>": "1f427",
"<企鵝>": "1f427",
"<Penguin>": "1f427",
"<毛虫>": "1f41b",
"<毛蟲>": "1f41b",
"<Caterpillar>": "1f41b",
"<章鱼>": "1f419",
"<八爪魚>": "1f419",
"<Octopus>": "1f419",
"<鱼>": "1f420",
"<魚>": "1f420",
"<Fish>": "1f420",
"<鲸鱼>": "1f433",
"<鯨魚>": "1f433",
"<Whale>": "1f433",
"<海豚>": "1f42c",
"<Dolphin>": "1f42c",
"<玫瑰>": "1f339",
"<Rose>": "1f339",
"<花>": "1f33a",
"<Flower>": "1f33a",
"<棕榈树>": "1f334",
"<棕櫚樹>": "1f334",
"<Palm>": "1f334",
"<仙人掌>": "1f335",
"<Cactus>": "1f335",
"<礼盒>": "1f49d",
"<禮盒>": "1f49d",
"<Candy Box>": "1f49d",
"<南瓜灯>": "1f383",
"<南瓜燈>": "1f383",
"<Jack-o-lantern>": "1f383",
"<鬼魂>": "1f47b",
"<Ghost>": "1f47b",
"<圣诞老人>": "1f385",
"<聖誕老人>": "1f385",
"<Santa>": "1f385",
"<圣诞树>": "1f384",
"<聖誕樹>": "1f384",
"<Xmas Tree>": "1f384",
"<礼物>": "1f381",
"<禮物>": "1f381",
"<Gift>": "1f381",
"<铃>": "1f514",
"<鈴鐺>": "1f514",
"<Bell>": "1f514",
"<庆祝>": "1f389",
"<慶祝>": "1f389",
"<Party>": "1f389",
"<气球>": "1f388",
"<氣球>": "1f388",
"<Balloon>": "1f388",
"<CD>": "1f4bf",
"<相机>": "1f4f7",
"<相機>": "1f4f7",
"<Camera>": "1f4f7",
"<录像机>": "1f3a5",
"<錄影機>": "1f3a5",
"<Film Camera>": "1f3a5",
"<电脑>": "1f4bb",
"<電腦>": "1f4bb",
"<Computer>": "1f4bb",
"<电视>": "1f4fa",
"<電視>": "1f4fa",
"<TV>": "1f4fa",
"<电话>": "1f4de",
"<電話>": "1f4de",
"<Phone>": "1f4de",
"<解锁>": "1f513",
"<解鎖>": "1f513",
"<Unlocked>": "1f513",
"<锁>": "1f512",
"<鎖>": "1f512",
"<Locked>": "1f512",
"<钥匙>": "1f511",
"<鑰匙>": "1f511",
"<Key>": "1f511",
"<成交>": "1f528",
"<Judgement>": "1f528",
"<灯泡>": "1f4a1",
"<燈泡>": "1f4a1",
"<Light bulb>": "1f4a1",
"<邮箱>": "1f4eb",
"<郵箱>": "1f4eb",
"<Mail>": "1f4eb",
"<浴缸>": "1f6c0",
"<Wash>": "1f6c0",
"<钱>": "1f4b2",
"<錢>": "1f4b2",
"<Money>": "1f4b2",
"<炸弹>": "1f4a3",
"<炸彈>": "1f4a3",
"<Bomb>": "1f4a3",
"<手枪>": "1f52b",
"<手槍>": "1f52b",
"<Pistol>": "1f52b",
"<药丸>": "1f48a",
"<藥丸>": "1f48a",
"<Pill>": "1f48a",
"<橄榄球>": "1f3c8",
"<橄欖球>": "1f3c8",
"<Football>": "1f3c8",
"<篮球>": "1f3c0",
"<籃球>": "1f3c0",
"<Basketball>": "1f3c0",
"<足球>": "26bd",
"<Soccer Ball>": "26bd",
"<Soccer>": "26bd",
"<棒球>": "26be",
"<Baseball>": "26be",
"<高尔夫>": "26f3",
"<高爾夫>": "26f3",
"<Golf>": "26f3",
"<奖杯>": "1f3c6",
"<獎盃>": "1f3c6",
"<Trophy>": "1f3c6",
"<入侵者>": "1f47e",
"<Invader>": "1f47e",
"<唱歌>": "1f3a4",
"<Singing>": "1f3a4",
"<吉他>": "1f3b8",
"<Guitar>": "1f3b8",
"<比基尼>": "1f459",
"<Bikini>": "1f459",
"<皇冠>": "1f451",
"<Crown>": "1f451",
"<雨伞>": "1f302",
"<雨傘>": "1f302",
"<Umbrella>": "1f302",
"<手提包>": "1f45c",
"<Purse>": "1f45c",
"<口红>": "1f484",
"<口紅>": "1f484",
"<Lipstick>": "1f484",
"<戒指>": "1f48d",
"<Ring>": "1f48d",
"<钻石>": "1f48e",
"<鑽石>": "1f48e",
"<Gem>": "1f48e",
"<咖啡>": "2615",
"<Coffee>": "2615",
"<啤酒>": "1f37a",
"<Beer>": "1f37a",
"<干杯>": "1f37b",
"<乾杯>": "1f37b",
"<Toast>": "1f37b",
"<鸡尾酒>": "1f377",
"<雞尾酒>": "1f377",
"<Martini>": "1f377",
"<汉堡>": "1f354",
"<漢堡>": "1f354",
"<Burger>": "1f354",
"<薯条>": "1f35f",
"<薯條>": "1f35f",
"<Fries>": "1f35f",
"<意面>": "1f35d",
"<意粉>": "1f35d",
"<Sphaghetti>": "1f35d",
"<寿司>": "1f363",
"<壽司>": "1f363",
"<Sushi>": "1f363",
"<面条>": "1f35c",
"<麵條>": "1f35c",
"<Noodles>": "1f35c",
"<煎蛋>": "1f373",
"<Eggs>": "1f373",
"<冰激凌>": "1f366",
"<雪糕>": "1f366",
"<Ice Cream>": "1f366",
"<蛋糕>": "1f382",
"<Cake>": "1f382",
"<苹果>": "1f34f",
"<蘋果>": "1f34f",
"<Apple>": "1f34f",
"<飞机>": "2708",
"<飛機>": "2708",
"<Plane>": "2708",
"<火箭>": "1f680",
"<Rocket ship>": "1f680",
"<自行车>": "1f6b2",
"<單車>": "1f6b2",
"<Bike>": "1f6b2",
"<高铁>": "1f684",
"<高鐵>": "1f684",
"<Bullet Train>": "1f684",
"<警告>": "26a0",
"<Warning>": "26a0",
"<旗>": "1f3c1",
"<Flag>": "1f3c1",
"<男人>": "1f6b9",
"<男>": "1f6b9",
"<Men>": "1f6b9",
"<女人>": "1f6ba",
"<女>": "1f6ba",
"<Women>": "1f6ba",
"<O>": "2b55",
"<X>": "274e",
"<版权>": "a9",
"<版權>": "a9",
"<Copyright>": "a9",
"<注册商标>": "ae",
"<注冊商標>": "ae",
"<Registered TM>": "ae",
"<商标>": "2122",
"<商標>": "2122",
"<Trademark>": "2122"
}
const EmojiCodeMap= {
"1f64f": "",
"1f604": "",
"1f60a": "",
"1f603": "",
"263a": "",
"1f609": "",
"1f60d": "",
"1f618": "",
"1f61a": "",
"1f633": "",
"1f63c": "",
"1f60c": "",
"1f61c": "",
"1f445": "",
"1f612": "",
"1f60f": "",
"1f613": "",
"1f640": "",
"1f61e": "",
"1f616": "",
"1f625": "",
"1f630": "",
"1f628": "",
"1f62b": "",
"1f622": "",
"1f62d": "",
"1f602": "",
"1f632": "",
"1f631": "",
"1f620": "",
"1f63e": "",
"1f62a": "",
"1f637": "",
"1f47f": "",
"1f47d": "",
2764: "",
"1f494": "",
"1f498": "",
2728: "",
"1f31f": "",
2755: "",
2754: "",
"1f4a4": "",
"1f4a6": "",
"1f3b5": "",
"1f525": "",
"1f4a9": "",
"1f44d": "",
"1f44e": "",
"1f44a": "",
"270c": "",
"1f446": "",
"1f447": "",
"1f449": "",
"1f448": "",
"261d": "",
"1f4aa": "",
"1f48f": "",
"1f491": "",
"1f466": "",
"1f467": "",
"1f469": "",
"1f468": "",
"1f47c": "",
"1f480": "",
"1f48b": "",
2600: "",
2614: "",
2601: "",
"26c4": "",
"1f319": "",
"26a1": "",
"1f30a": "",
"1f431": "",
"1f429": "",
"1f42d": "",
"1f439": "",
"1f430": "",
"1f43a": "",
"1f438": "",
"1f42f": "",
"1f428": "",
"1f43b": "",
"1f437": "",
"1f42e": "",
"1f417": "",
"1f435": "",
"1f434": "",
"1f40d": "",
"1f426": "",
"1f414": "",
"1f427": "",
"1f41b": "",
"1f419": "",
"1f420": "",
"1f433": "",
"1f42c": "",
"1f339": "",
"1f33a": "",
"1f334": "",
"1f335": "",
"1f49d": "",
"1f383": "",
"1f47b": "",
"1f385": "",
"1f384": "",
"1f381": "",
"1f514": "",
"1f389": "",
"1f388": "",
"1f4bf": "",
"1f4f7": "",
"1f3a5": "",
"1f4bb": "",
"1f4fa": "",
"1f4de": "",
"1f513": "",
"1f512": "",
"1f511": "",
"1f528": "",
"1f4a1": "",
"1f4eb": "",
"1f6c0": "",
"1f4b2": "",
"1f4a3": "",
"1f52b": "",
"1f48a": "",
"1f3c8": "",
"1f3c0": "",
"26bd": "",
"26be": "",
"26f3": "",
"1f3c6": "",
"1f47e": "",
"1f3a4": "",
"1f3b8": "",
"1f459": "",
"1f451": "",
"1f302": "",
"1f45c": "",
"1f484": "",
"1f48d": "",
"1f48e": "",
2615: "",
"1f37a": "",
"1f37b": "",
"1f377": "",
"1f354": "",
"1f35f": "",
"1f35d": "",
"1f363": "",
"1f35c": "",
"1f373": "",
"1f366": "",
"1f382": "",
"1f34f": "",
2708: "",
"1f680": "",
"1f6b2": "",
"1f684": "",
"26a0": "",
"1f3c1": "",
"1f6b9": "",
"1f6ba": "",
"2b55": "",
"274e": "",
a9: "",
ae: "",
2122: ""
}
const EmojiCodeConv= {
"[Silent]": "[Shutup]",
"[Angry]": "[Pout]",
"[Tongue]": "[Wink]",
"[Surprise]": "[Surprised]",
"[Ruthless]": "[Cool]",
"[Blush]": "[Tension]",
"[Crazy]": "[Scream]",
"[Commando]": "[Loafer]",
"[Determined]": "[Strive]",
"[Shocked]": "[Doubt]",
"[Tormented]": "[Crazy]",
"[Toasted]": "[BadLuck]",
"[Speechless]": "[Relief]",
"[NosePick]": "[DigNose]",
"[Pooh-pooh]": "[Lookdown]",
"[Shrunken]": "[Wronged]",
"[TearingUp]": "[Puling]",
"[Wrath]": "[Uh-oh]",
"[Watermelon]": "[Melon]",
"[ThumbsUp]": "[Strong]",
"[ThumbsDown]": "[Weak]",
"[Peace]": "[Victory]",
"[Fight]": "[Admire]",
"[RockOn]": "[Love]",
"[Nuh-uh]": "[No]",
"[Dramatic]": "[Lookback]",
"[JumpRope]": "[Jump]",
"[Surrender]": "[Give-in]",
"[Meditate]": "[HeyHey]",
"[TaiChi L]": "[TaiJi L]",
"[TaiChi R]": "[TaiJi R]"
}
/**
* 替换消息文本中的表情
* @param {String} text 消息文本 比如 [Slight]hi[Panic]
* @returns html代码 比如 <img class="qqemoji qqemoji22" text="[Slight]_web" src="/zh_CN/htmledition/v2/images/spacer.gif" />hi<img class="qqemoji qqemoji26" text="[Panic]_web" src="/zh_CN/htmledition/v2/images/spacer.gif" />
*/
function emoticonFormat (text) {
return 0 == text.length ? "" : (text = text.replace(new RegExp("(\\[.+?\\])(?!" + MM_EMOTICON_WEB + ")","g"), function(e, a) {
return getEmoticonByText(a) || e
}).replace(new RegExp("&lt;(.+?)&gt;(?!" + MM_EMOTICON_WEB + ")","g"), function(e, a) {
return getEmoticonByText("<" + a + ">") || e
}),
text = transformSpanToImg(text))
}
/**
* 转换span标签为img标签
* @param {String} htmlString
*/
function transformSpanToImg (htmlString) {
console.log('transformSpanToImg-------------')
console.log(htmlString)
return htmlString && htmlString.replace(/<span.*?class="emoji emoji(.*?)"><\/span>/g, function() {
var code = EmojiCodeMap[arguments[1]];
var result = genEmoticonHTML("emoji emoji" + arguments[1], code || "")
console.log(result)
return result
})
}
/**
* 根据表情名,生成表情html代码
* @param {String} emojiText 比如 [Slight]
* @returns 表情html 比如 <img class="qqemoji qqemoji22" text="[Slight]_web" src="/zh_CN/htmledition/v2/images/spacer.gif" />
*/
function getEmoticonByText (emojiText) {
console.log('getEmoticonByText--------------')
console.log(emojiText)
var code;
if (emojiText.indexOf("<") > -1) {
if (code = QQFaceMap[emojiText])
var emojiRes = genEmoticonHTML("emoji emoji" + code, EmojiCodeMap[code])
console.log(emojiRes)
return emojiRes
} else if (code = QQFaceMap[emojiText.replace(/\[|\]/g, "")])
var qqRes = genEmoticonHTML("qqemoji qqemoji" + code, emojiText);
console.log(qqRes)
return qqRes
// <img class="qqemoji qqemoji22" text="[Slight]_web" src="/zh_CN/htmledition/v2/images/spacer.gif" />
return null
}
/**
* 根据表情的参数,生成表情html代码
* @param {String} emojiClass 表情class 比如 qqemoji qqemoji22
* @param {String} emojiText 表情text 比如 [Slight]
* @returns 表情html 比如 <img class="qqemoji qqemoji22" text="[Slight]_web" src="/zh_CN/htmledition/v2/images/spacer.gif" />
*/
function genEmoticonHTML (emojiClass, emojiText) {
console.log('genEmoticonHTML---------------')
console.log(emojiClass)
console.log(emojiText)
var emojiHtml = '<img class="' + emojiClass + '" text="' + emojiText + (emojiText.indexOf(MM_EMOTICON_WEB) > -1 ? "" : MM_EMOTICON_WEB) + '" src="' + RES_IMG_PLACEHOLDER + '" />'
console.log(emojiHtml)
return emojiHtml
}
// emoticonFormat("[Slight]hi[Panic]")
/**
*
* @param {String} htmlString html代码
* @returns 消息文本
*/
function formatHTMLToSend (htmlString) {
return htmlDecode(clearHtmlStr(htmlString.replace(/<(?:img|IMG).*?text="(.*?)".*?>/g, function(e, t) {
return t.replace(MM_EMOTICON_WEB, "")
}).replace(/<(?:br|BR)\/?>/g, "\n"))).replace(/<(.*?)>/g, function(e) {
return EmojiCodeMap[QQFaceMap[e]] || e
})
}
// function htmlEncode (e) {
// return angular.isString(e) ? e.replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/'/g, "&#39;").replace(/</g, "&lt;").replace(/>/g, "&gt;") : ""
// }
function htmlDecode (e) {
return e && 0 != e.length ? e.replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&#39;/g, "'").replace(/&quot;/g, '"').replace(/&amp;/g, "&") : ""
}
function clearHtmlStr (e) {
return e ? e.replace(/<[^>]*>/g, "") : e
}
const htmlString = `<img class="qqemoji qqemoji22" text="[Slight]_web" src="/zh_CN/htmledition/v2/images/spacer.gif" />hi<img class="qqemoji qqemoji26" text="[Panic]_web" src="/zh_CN/htmledition/v2/images/spacer.gif" />`
console.log(formatHTMLToSend(htmlString))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment