mirror of
https://github.com/ikechan8370/chatgpt-plugin.git
synced 2025-12-17 13:57:10 +00:00
face.js自动转换
This commit is contained in:
parent
221cf4082d
commit
4005af9e99
1 changed files with 219 additions and 391 deletions
610
utils/face.js
610
utils/face.js
|
|
@ -1,5 +1,7 @@
|
||||||
import _ from 'lodash'
|
import _ from 'lodash';
|
||||||
// import {segment} from "oicq";
|
import { segment } from 'oicq';
|
||||||
|
|
||||||
|
// 更新后的 faceMap 对象,保持原有的数字到字符串的映射结构
|
||||||
export const faceMap = {
|
export const faceMap = {
|
||||||
0: '惊讶',
|
0: '惊讶',
|
||||||
1: '撇嘴',
|
1: '撇嘴',
|
||||||
|
|
@ -46,18 +48,14 @@ export const faceMap = {
|
||||||
46: '猪头',
|
46: '猪头',
|
||||||
49: '拥抱',
|
49: '拥抱',
|
||||||
53: '蛋糕',
|
53: '蛋糕',
|
||||||
54: '闪电',
|
55: '++',
|
||||||
55: '炸弹',
|
|
||||||
56: '刀',
|
56: '刀',
|
||||||
57: '足球',
|
|
||||||
59: '便便',
|
59: '便便',
|
||||||
60: '咖啡',
|
60: '咖啡',
|
||||||
61: '饭',
|
|
||||||
63: '玫瑰',
|
63: '玫瑰',
|
||||||
64: '凋谢',
|
64: '凋谢',
|
||||||
66: '爱心',
|
66: '爱心',
|
||||||
67: '心碎',
|
67: '心碎',
|
||||||
69: '礼物',
|
|
||||||
74: '太阳',
|
74: '太阳',
|
||||||
75: '月亮',
|
75: '月亮',
|
||||||
76: '赞',
|
76: '赞',
|
||||||
|
|
@ -80,44 +78,26 @@ export const faceMap = {
|
||||||
106: '委屈',
|
106: '委屈',
|
||||||
107: '快哭了',
|
107: '快哭了',
|
||||||
108: '阴险',
|
108: '阴险',
|
||||||
109: '亲亲',
|
109: '左亲亲',
|
||||||
110: '吓',
|
110: '吓',
|
||||||
111: '可怜',
|
111: '可怜',
|
||||||
112: '菜刀',
|
112: '菜刀',
|
||||||
113: '啤酒',
|
|
||||||
114: '篮球',
|
114: '篮球',
|
||||||
115: '乒乓',
|
|
||||||
116: '示爱',
|
116: '示爱',
|
||||||
117: '瓢虫',
|
|
||||||
118: '抱拳',
|
118: '抱拳',
|
||||||
119: '勾引',
|
119: '勾引',
|
||||||
120: '拳头',
|
120: '拳头',
|
||||||
121: '差劲',
|
121: '差劲',
|
||||||
122: '爱你',
|
122: '爱你',
|
||||||
123: '不',
|
123: 'NO',
|
||||||
124: '好',
|
124: 'OK',
|
||||||
125: '转圈',
|
125: '转圈',
|
||||||
126: '磕头',
|
|
||||||
127: '回头',
|
|
||||||
128: '跳绳',
|
|
||||||
129: '挥手',
|
129: '挥手',
|
||||||
130: '激动',
|
|
||||||
131: '街舞',
|
|
||||||
132: '献吻',
|
|
||||||
133: '左太极',
|
|
||||||
134: '右太极',
|
|
||||||
136: '双喜',
|
|
||||||
137: '鞭炮',
|
137: '鞭炮',
|
||||||
138: '灯笼',
|
|
||||||
140: 'K歌',
|
|
||||||
144: '喝彩',
|
144: '喝彩',
|
||||||
145: '祈祷',
|
|
||||||
146: '爆筋',
|
146: '爆筋',
|
||||||
147: '棒棒糖',
|
147: '棒棒糖',
|
||||||
148: '喝奶',
|
148: '喝奶',
|
||||||
151: '飞机',
|
|
||||||
158: '钞票',
|
|
||||||
168: '药',
|
|
||||||
169: '手枪',
|
169: '手枪',
|
||||||
171: '茶',
|
171: '茶',
|
||||||
172: '眨眼睛',
|
172: '眨眼睛',
|
||||||
|
|
@ -127,31 +107,22 @@ export const faceMap = {
|
||||||
176: '小纠结',
|
176: '小纠结',
|
||||||
177: '喷血',
|
177: '喷血',
|
||||||
178: '斜眼笑',
|
178: '斜眼笑',
|
||||||
179: '表情',
|
179: 'doge',
|
||||||
180: '惊喜',
|
180: '惊喜',
|
||||||
181: '骚扰',
|
181: '戳一戳',
|
||||||
182: '笑哭',
|
182: '笑哭',
|
||||||
183: '我最美',
|
183: '我最美',
|
||||||
184: '河蟹',
|
|
||||||
185: '羊驼',
|
185: '羊驼',
|
||||||
187: '幽灵',
|
187: '幽灵',
|
||||||
188: '蛋',
|
|
||||||
190: '菊花',
|
|
||||||
192: '红包',
|
|
||||||
193: '大笑',
|
193: '大笑',
|
||||||
194: '不开心',
|
194: '不开心',
|
||||||
197: '冷漠',
|
|
||||||
198: '呃',
|
198: '呃',
|
||||||
199: '好棒',
|
200: '求求',
|
||||||
200: '拜托',
|
|
||||||
201: '点赞',
|
201: '点赞',
|
||||||
202: '无聊',
|
202: '无聊',
|
||||||
203: '托脸',
|
203: '托脸',
|
||||||
204: '吃',
|
204: '吃',
|
||||||
205: '送花',
|
|
||||||
206: '害怕',
|
206: '害怕',
|
||||||
207: '花痴',
|
|
||||||
208: '小样儿',
|
|
||||||
210: '飙泪',
|
210: '飙泪',
|
||||||
211: '我不看',
|
211: '我不看',
|
||||||
212: '托腮',
|
212: '托腮',
|
||||||
|
|
@ -161,400 +132,257 @@ export const faceMap = {
|
||||||
217: '扯一扯',
|
217: '扯一扯',
|
||||||
218: '舔一舔',
|
218: '舔一舔',
|
||||||
219: '蹭一蹭',
|
219: '蹭一蹭',
|
||||||
220: '拽炸天',
|
|
||||||
221: '顶呱呱',
|
221: '顶呱呱',
|
||||||
245: '加油必胜',
|
222: '抱抱',
|
||||||
246: '加油抱抱',
|
223: '暴击',
|
||||||
247: '口罩护体',
|
224: '开枪',
|
||||||
260: '/搬砖中',
|
225: '撩一撩',
|
||||||
261: '/忙到飞起',
|
226: '拍桌',
|
||||||
262: '/脑阔疼',
|
227: '拍手',
|
||||||
263: '/沧桑',
|
229: '干杯',
|
||||||
264: '/捂脸',
|
230: '嘲讽',
|
||||||
265: '/辣眼睛',
|
231: '哼',
|
||||||
266: '/哦哟',
|
232: '佛系',
|
||||||
267: '/头秃',
|
233: '掐一掐',
|
||||||
268: '/问号脸',
|
235: '颤抖',
|
||||||
269: '/暗中观察',
|
237: '偷看',
|
||||||
270: '/emm',
|
238: '扇脸',
|
||||||
271: '/吃瓜',
|
239: '原谅',
|
||||||
272: '/呵呵哒',
|
240: '喷脸',
|
||||||
273: '/我酸了',
|
241: '生日快乐',
|
||||||
274: '/太南了',
|
243: '甩头',
|
||||||
276: '/辣椒酱',
|
244: '扔狗',
|
||||||
277: '/汪汪',
|
262: '脑阔疼',
|
||||||
278: '/汗',
|
263: '沧桑',
|
||||||
279: '/打脸',
|
264: '捂脸',
|
||||||
280: '/击掌',
|
265: '辣眼睛',
|
||||||
281: '/无眼笑',
|
266: '哦哟',
|
||||||
282: '/敬礼',
|
267: '头秃',
|
||||||
283: '/狂笑',
|
268: '问号脸',
|
||||||
284: '/面无表情',
|
269: '暗中观察',
|
||||||
285: '/摸鱼',
|
270: 'emm',
|
||||||
286: '/魔鬼笑',
|
271: '吃瓜',
|
||||||
287: '/哦',
|
272: '呵呵哒',
|
||||||
288: '/请',
|
273: '我酸了',
|
||||||
289: '/睁眼',
|
277: '汪汪',
|
||||||
290: '/敲开心',
|
278: '汗',
|
||||||
291: '/震惊',
|
281: '无眼笑',
|
||||||
292: '/让我康康',
|
282: '敬礼',
|
||||||
293: '/摸锦鲤',
|
283: '狂笑',
|
||||||
294: '/期待',
|
284: '面无表情',
|
||||||
295: '/拿到红包',
|
285: '摸鱼',
|
||||||
296: '/真好',
|
286: '魔鬼笑',
|
||||||
297: '/拜谢',
|
287: '哦',
|
||||||
298: '/元宝',
|
288: '请',
|
||||||
299: '/牛啊',
|
289: '睁眼',
|
||||||
300: '/胖三斤',
|
290: '敲开心',
|
||||||
301: '/好闪',
|
292: '让我康康',
|
||||||
302: '/左拜年',
|
293: '摸锦鲤',
|
||||||
303: '/右拜年',
|
294: '期待',
|
||||||
304: '/红包包',
|
295: '拿到红包',
|
||||||
305: '/右亲亲',
|
297: '拜谢',
|
||||||
306: '/牛气冲天',
|
298: '元宝',
|
||||||
307: '/喵喵',
|
299: '牛啊',
|
||||||
308: '/求红包',
|
300: '胖三斤',
|
||||||
309: '/谢红包',
|
301: '好闪',
|
||||||
310: '/新年烟花',
|
302: '左拜年',
|
||||||
311: '/打call',
|
303: '右拜年',
|
||||||
312: '/变形',
|
305: '右亲亲',
|
||||||
313: '/嗑到了',
|
306: '牛气冲天',
|
||||||
314: '/仔细分析',
|
307: '喵喵',
|
||||||
315: '/加油',
|
311: '打call',
|
||||||
316: '/我没事',
|
312: '变形',
|
||||||
317: '/菜狗',
|
314: '仔细分析',
|
||||||
318: '/崇拜',
|
317: '菜汪',
|
||||||
319: '/比心',
|
318: '崇拜',
|
||||||
320: '/庆祝',
|
319: '比心',
|
||||||
321: '/老色痞',
|
320: '庆祝',
|
||||||
322: '/拒绝',
|
322: '拒绝',
|
||||||
323: '/嫌弃',
|
323: '嫌弃',
|
||||||
324: '/吃糖'
|
324: '吃糖',
|
||||||
|
325: '惊吓',
|
||||||
|
326: '生气',
|
||||||
|
332: '举牌牌',
|
||||||
|
333: '烟花',
|
||||||
|
334: '虎虎生威',
|
||||||
|
336: '豹富',
|
||||||
|
337: '花朵脸',
|
||||||
|
338: '我想开了',
|
||||||
|
339: '舔屏',
|
||||||
|
341: '打招呼',
|
||||||
|
342: '酸Q',
|
||||||
|
343: '我方了',
|
||||||
|
344: '大怨种',
|
||||||
|
345: '红包多多',
|
||||||
|
346: '你真棒棒',
|
||||||
|
347: '大展宏兔',
|
||||||
|
348: '福萝卜',
|
||||||
|
349: '坚强',
|
||||||
|
350: '贴贴',
|
||||||
|
351: '敲敲',
|
||||||
|
352: '咦',
|
||||||
|
353: '拜托',
|
||||||
|
354: '尊嘟假嘟',
|
||||||
|
355: '耶',
|
||||||
|
356: '666',
|
||||||
|
357: '裂开',
|
||||||
|
358: '骰子',
|
||||||
|
359: '包剪锤',
|
||||||
|
392: '龙年快乐',
|
||||||
|
393: '新年中龙',
|
||||||
|
394: '新年大龙',
|
||||||
|
395: '略略略'
|
||||||
|
};
|
||||||
|
|
||||||
|
// 根据新的 faceMap 生成 faceMapReverse
|
||||||
|
export const faceMapReverse = {};
|
||||||
|
for (const key in faceMap) {
|
||||||
|
faceMapReverse[faceMap[key]] = key;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const faceMapReverse = {
|
// 注释掉 specialFaces
|
||||||
惊讶: '0',
|
// const specialFaces = {
|
||||||
撇嘴: '1',
|
// ...
|
||||||
色: '2',
|
// };
|
||||||
发呆: '3',
|
|
||||||
得意: '4',
|
|
||||||
流泪: '5',
|
|
||||||
害羞: '6',
|
|
||||||
闭嘴: '7',
|
|
||||||
睡: '8',
|
|
||||||
大哭: '9',
|
|
||||||
尴尬: '10',
|
|
||||||
发怒: '11',
|
|
||||||
调皮: '12',
|
|
||||||
呲牙: '13',
|
|
||||||
微笑: '14',
|
|
||||||
难过: '15',
|
|
||||||
酷: '16',
|
|
||||||
抓狂: '18',
|
|
||||||
吐: '19',
|
|
||||||
偷笑: '20',
|
|
||||||
可爱: '21',
|
|
||||||
白眼: '22',
|
|
||||||
傲慢: '23',
|
|
||||||
饥饿: '24',
|
|
||||||
困: '25',
|
|
||||||
惊恐: '26',
|
|
||||||
流汗: '27',
|
|
||||||
憨笑: '28',
|
|
||||||
悠闲: '29',
|
|
||||||
奋斗: '30',
|
|
||||||
咒骂: '31',
|
|
||||||
疑问: '32',
|
|
||||||
嘘: '33',
|
|
||||||
晕: '34',
|
|
||||||
折磨: '35',
|
|
||||||
衰: '36',
|
|
||||||
骷髅: '37',
|
|
||||||
敲打: '38',
|
|
||||||
再见: '39',
|
|
||||||
发抖: '41',
|
|
||||||
爱情: '42',
|
|
||||||
跳跳: '43',
|
|
||||||
猪头: '46',
|
|
||||||
拥抱: '49',
|
|
||||||
蛋糕: '53',
|
|
||||||
闪电: '54',
|
|
||||||
炸弹: '55',
|
|
||||||
刀: '56',
|
|
||||||
足球: '57',
|
|
||||||
便便: '59',
|
|
||||||
咖啡: '60',
|
|
||||||
饭: '61',
|
|
||||||
玫瑰: '63',
|
|
||||||
凋谢: '64',
|
|
||||||
爱心: '66',
|
|
||||||
心碎: '67',
|
|
||||||
礼物: '69',
|
|
||||||
太阳: '74',
|
|
||||||
月亮: '75',
|
|
||||||
赞: '76',
|
|
||||||
踩: '77',
|
|
||||||
握手: '78',
|
|
||||||
胜利: '79',
|
|
||||||
飞吻: '85',
|
|
||||||
怄火: '86',
|
|
||||||
西瓜: '89',
|
|
||||||
冷汗: '96',
|
|
||||||
擦汗: '97',
|
|
||||||
抠鼻: '98',
|
|
||||||
鼓掌: '99',
|
|
||||||
糗大了: '100',
|
|
||||||
坏笑: '101',
|
|
||||||
左哼哼: '102',
|
|
||||||
右哼哼: '103',
|
|
||||||
哈欠: '104',
|
|
||||||
鄙视: '105',
|
|
||||||
委屈: '106',
|
|
||||||
快哭了: '107',
|
|
||||||
阴险: '108',
|
|
||||||
亲亲: '109',
|
|
||||||
吓: '110',
|
|
||||||
可怜: '111',
|
|
||||||
菜刀: '112',
|
|
||||||
啤酒: '113',
|
|
||||||
篮球: '114',
|
|
||||||
乒乓: '115',
|
|
||||||
示爱: '116',
|
|
||||||
瓢虫: '117',
|
|
||||||
抱拳: '118',
|
|
||||||
勾引: '119',
|
|
||||||
拳头: '120',
|
|
||||||
差劲: '121',
|
|
||||||
爱你: '122',
|
|
||||||
不: '123',
|
|
||||||
好: '124',
|
|
||||||
转圈: '125',
|
|
||||||
磕头: '126',
|
|
||||||
回头: '127',
|
|
||||||
跳绳: '128',
|
|
||||||
挥手: '129',
|
|
||||||
激动: '130',
|
|
||||||
街舞: '131',
|
|
||||||
献吻: '132',
|
|
||||||
左太极: '133',
|
|
||||||
右太极: '134',
|
|
||||||
双喜: '136',
|
|
||||||
鞭炮: '137',
|
|
||||||
灯笼: '138',
|
|
||||||
K歌: '140',
|
|
||||||
喝彩: '144',
|
|
||||||
祈祷: '145',
|
|
||||||
爆筋: '146',
|
|
||||||
棒棒糖: '147',
|
|
||||||
喝奶: '148',
|
|
||||||
飞机: '151',
|
|
||||||
钞票: '158',
|
|
||||||
药: '168',
|
|
||||||
手枪: '169',
|
|
||||||
茶: '171',
|
|
||||||
眨眼睛: '172',
|
|
||||||
泪奔: '173',
|
|
||||||
无奈: '174',
|
|
||||||
卖萌: '175',
|
|
||||||
小纠结: '176',
|
|
||||||
喷血: '177',
|
|
||||||
斜眼笑: '178',
|
|
||||||
表情: '179',
|
|
||||||
惊喜: '180',
|
|
||||||
骚扰: '181',
|
|
||||||
笑哭: '182',
|
|
||||||
我最美: '183',
|
|
||||||
河蟹: '184',
|
|
||||||
羊驼: '185',
|
|
||||||
幽灵: '187',
|
|
||||||
蛋: '188',
|
|
||||||
菊花: '190',
|
|
||||||
红包: '192',
|
|
||||||
大笑: '193',
|
|
||||||
不开心: '194',
|
|
||||||
冷漠: '197',
|
|
||||||
呃: '198',
|
|
||||||
好棒: '199',
|
|
||||||
拜托: '200',
|
|
||||||
点赞: '201',
|
|
||||||
无聊: '202',
|
|
||||||
托脸: '203',
|
|
||||||
吃: '204',
|
|
||||||
送花: '205',
|
|
||||||
害怕: '206',
|
|
||||||
花痴: '207',
|
|
||||||
小样儿: '208',
|
|
||||||
飙泪: '210',
|
|
||||||
我不看: '211',
|
|
||||||
托腮: '212',
|
|
||||||
啵啵: '214',
|
|
||||||
糊脸: '215',
|
|
||||||
拍头: '216',
|
|
||||||
扯一扯: '217',
|
|
||||||
舔一舔: '218',
|
|
||||||
蹭一蹭: '219',
|
|
||||||
拽炸天: '220',
|
|
||||||
顶呱呱: '221',
|
|
||||||
加油必胜: '245',
|
|
||||||
加油抱抱: '246',
|
|
||||||
口罩护体: '247',
|
|
||||||
'/搬砖中': '260',
|
|
||||||
'/忙到飞起': '261',
|
|
||||||
'/脑阔疼': '262',
|
|
||||||
'/沧桑': '263',
|
|
||||||
'/捂脸': '264',
|
|
||||||
'/辣眼睛': '265',
|
|
||||||
'/哦哟': '266',
|
|
||||||
'/头秃': '267',
|
|
||||||
'/问号脸': '268',
|
|
||||||
'/暗中观察': '269',
|
|
||||||
'/emm': '270',
|
|
||||||
'/吃瓜': '271',
|
|
||||||
'/呵呵哒': '272',
|
|
||||||
'/我酸了': '273',
|
|
||||||
'/太南了': '274',
|
|
||||||
'/辣椒酱': '276',
|
|
||||||
'/汪汪': '277',
|
|
||||||
'/汗': '278',
|
|
||||||
'/打脸': '279',
|
|
||||||
'/击掌': '280',
|
|
||||||
'/无眼笑': '281',
|
|
||||||
'/敬礼': '282',
|
|
||||||
'/狂笑': '283',
|
|
||||||
'/面无表情': '284',
|
|
||||||
'/摸鱼': '285',
|
|
||||||
'/魔鬼笑': '286',
|
|
||||||
'/哦': '287',
|
|
||||||
'/请': '288',
|
|
||||||
'/睁眼': '289',
|
|
||||||
'/敲开心': '290',
|
|
||||||
'/震惊': '291',
|
|
||||||
'/让我康康': '292',
|
|
||||||
'/摸锦鲤': '293',
|
|
||||||
'/期待': '294',
|
|
||||||
'/拿到红包': '295',
|
|
||||||
'/真好': '296',
|
|
||||||
'/拜谢': '297',
|
|
||||||
'/元宝': '298',
|
|
||||||
'/牛啊': '299',
|
|
||||||
'/胖三斤': '300',
|
|
||||||
'/好闪': '301',
|
|
||||||
'/左拜年': '302',
|
|
||||||
'/右拜年': '303',
|
|
||||||
'/红包包': '304',
|
|
||||||
'/右亲亲': '305',
|
|
||||||
'/牛气冲天': '306',
|
|
||||||
'/喵喵': '307',
|
|
||||||
'/求红包': '308',
|
|
||||||
'/谢红包': '309',
|
|
||||||
'/新年烟花': '310',
|
|
||||||
'/打call': '311',
|
|
||||||
'/变形': '312',
|
|
||||||
'/嗑到了': '313',
|
|
||||||
'/仔细分析': '314',
|
|
||||||
'/加油': '315',
|
|
||||||
'/我没事': '316',
|
|
||||||
'/菜狗': '317',
|
|
||||||
'/崇拜': '318',
|
|
||||||
'/比心': '319',
|
|
||||||
'/庆祝': '320',
|
|
||||||
'/老色痞': '321',
|
|
||||||
'/拒绝': '322',
|
|
||||||
'/嫌弃': '323',
|
|
||||||
'/吃糖': '324'
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function convertFaces (msg, handleAt = false, e) {
|
/**
|
||||||
handleAt = e?.isGroup && handleAt
|
* 将消息中的表情占位符转换为 oicq 的表情代码
|
||||||
let groupMembers
|
* @param {string} msg 要转换的消息
|
||||||
let groupCardQQMap = {}
|
* @param {boolean} [handleAt=false] 是否处理 @ 消息,默认为 false
|
||||||
|
* @param {object} [e=undefined] 消息事件对象,可选
|
||||||
|
* @returns {Array} 转换后的消息段数组
|
||||||
|
*/
|
||||||
|
export async function convertFaces(msg, handleAt = false, e) {
|
||||||
|
// 如果 e?.isGroup 为 true 且 handleAt 为 true,则设置 handleAt 为 true
|
||||||
|
handleAt = e?.isGroup && handleAt;
|
||||||
|
// 群成员列表
|
||||||
|
let groupMembers;
|
||||||
|
// 群名片到 QQ 号的映射
|
||||||
|
let groupCardQQMap = {};
|
||||||
|
// 如果需要处理 @ 消息
|
||||||
if (handleAt) {
|
if (handleAt) {
|
||||||
try {
|
try {
|
||||||
groupMembers = e.bot.gml.get(e.group_id)
|
// 获取群成员列表
|
||||||
|
groupMembers = e.bot.gml;
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error(`Failed to get group members: ${err}`)
|
// 如果获取失败,打印错误信息
|
||||||
|
console.error(`Failed to get group members: ${err}`);
|
||||||
}
|
}
|
||||||
|
// 如果成功获取群成员列表
|
||||||
if (groupMembers) {
|
if (groupMembers) {
|
||||||
for (let key of groupMembers.keys()) {
|
// 遍历群成员列表
|
||||||
let userInfo = groupMembers.get(key)
|
for (const key of groupMembers.keys()) {
|
||||||
if (userInfo.card) {
|
// 将群名片或昵称映射到 QQ 号
|
||||||
groupCardQQMap[userInfo.card] = userInfo.user_id
|
groupCardQQMap[groupMembers.get(key).card || groupMembers.get(key).nickname] =
|
||||||
}
|
groupMembers.get(key).user_id;
|
||||||
if (userInfo.nickname) {
|
|
||||||
groupCardQQMap[userInfo.nickname] = userInfo.user_id
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let tmpMsg = ''
|
// 临时消息字符串
|
||||||
let tmpFace = ''
|
let tmpMsg = '';
|
||||||
let tmpAt = ''
|
// 临时表情字符串
|
||||||
let foundFace = false
|
let tmpFace = '';
|
||||||
let foundAt = false
|
// 临时 @ 字符串
|
||||||
let msgs = []
|
let tmpAt = '';
|
||||||
|
// 是否找到表情
|
||||||
|
let foundFace = false;
|
||||||
|
// 是否找到 @
|
||||||
|
let foundAt = false;
|
||||||
|
// 转换后的消息段数组
|
||||||
|
const msgs = [];
|
||||||
|
// 遍历消息字符串
|
||||||
for (let i = 0; i < msg.length; i++) {
|
for (let i = 0; i < msg.length; i++) {
|
||||||
// console.log(msg[i])
|
// 如果找到 [
|
||||||
if (msg[i] === '[') {
|
if (msg[i] === '[') {
|
||||||
foundFace = true
|
// 设置 foundFace 为 true
|
||||||
continue
|
foundFace = true;
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
// 如果没有找到表情
|
||||||
if (!foundFace) {
|
if (!foundFace) {
|
||||||
|
// 如果需要处理 @ 消息且找到 @
|
||||||
if (handleAt && msg[i] === '@') {
|
if (handleAt && msg[i] === '@') {
|
||||||
foundAt = true
|
// 设置 foundAt 为 true
|
||||||
|
foundAt = true;
|
||||||
|
// 如果 tmpMsg 不为空,将其添加到 msgs 数组中
|
||||||
if (tmpMsg) {
|
if (tmpMsg) {
|
||||||
msgs.push(tmpMsg)
|
msgs.push(tmpMsg);
|
||||||
tmpMsg = ''
|
tmpMsg = '';
|
||||||
}
|
}
|
||||||
continue
|
continue;
|
||||||
}
|
}
|
||||||
|
// 如果需要处理 @ 消息且 foundAt 为 true
|
||||||
if (handleAt && foundAt) {
|
if (handleAt && foundAt) {
|
||||||
tmpAt += msg[i]
|
// 将当前字符添加到 tmpAt 中
|
||||||
|
tmpAt += msg[i];
|
||||||
|
// 如果在 groupCardQQMap 中找到 tmpAt
|
||||||
if (groupCardQQMap[tmpAt]) {
|
if (groupCardQQMap[tmpAt]) {
|
||||||
foundAt = false
|
// 设置 foundAt 为 false
|
||||||
msgs.push(segment.at(groupCardQQMap[tmpAt], groupMembers.get(groupCardQQMap[tmpAt]).card, false))
|
foundAt = false;
|
||||||
tmpAt = ''
|
// 将 @ 消息段添加到 msgs 数组中
|
||||||
continue
|
msgs.push(segment.at(groupCardQQMap[tmpAt], groupMembers.get(groupCardQQMap[tmpAt]).card, false));
|
||||||
|
// 清空 tmpAt
|
||||||
|
tmpAt = '';
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
tmpMsg += msg[i]
|
// 将当前字符添加到 tmpMsg 中
|
||||||
|
tmpMsg += msg[i];
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
// 如果当前字符不是 ]
|
||||||
if (msg[i] !== ']') {
|
if (msg[i] !== ']') {
|
||||||
tmpFace += msg[i]
|
// 将当前字符添加到 tmpFace 中
|
||||||
|
tmpFace += msg[i];
|
||||||
} else {
|
} else {
|
||||||
foundFace = false
|
// 设置 foundFace 为 false
|
||||||
if (faceMapReverse[tmpFace] || faceMapReverse['/' + tmpFace] || faceMapReverse[_.trimStart(tmpFace, '/')]) {
|
foundFace = false;
|
||||||
|
// 从 faceMapReverse 中查找表情 ID
|
||||||
|
const faceId = faceMapReverse['/' + tmpFace] || faceMapReverse[_.trimStart(tmpFace, '/')];
|
||||||
|
// 如果找到表情 ID
|
||||||
|
if (faceId) {
|
||||||
|
// 如果 tmpMsg 不为空,将其添加到 msgs 数组中
|
||||||
if (tmpMsg) {
|
if (tmpMsg) {
|
||||||
msgs.push(tmpMsg)
|
msgs.push(tmpMsg);
|
||||||
|
tmpMsg = '';
|
||||||
}
|
}
|
||||||
msgs.push(segment.face(parseInt(faceMapReverse[tmpFace] || faceMapReverse['/' + tmpFace] || faceMapReverse[_.trimStart(tmpFace, '/')])))
|
// 添加表情消息段到 msgs 数组中
|
||||||
tmpMsg = ''
|
msgs.push(segment.face(parseInt(faceId)));
|
||||||
|
// 清空 tmpMsg
|
||||||
|
tmpMsg = '';
|
||||||
} else {
|
} else {
|
||||||
tmpMsg += `[${tmpFace}]`
|
// 将 [ 和 tmpFace 拼接到 tmpMsg 中
|
||||||
|
tmpMsg += `[${tmpFace}]`;
|
||||||
}
|
}
|
||||||
tmpFace = ''
|
// 清空 tmpFace
|
||||||
|
tmpFace = '';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 如果 tmpMsg 不为空,将其添加到 msgs 数组中
|
||||||
if (tmpMsg) {
|
if (tmpMsg) {
|
||||||
msgs.push(tmpMsg)
|
msgs.push(tmpMsg);
|
||||||
}
|
}
|
||||||
|
// 如果 tmpFace 不为空,将其添加到 msgs 数组中
|
||||||
if (tmpFace) {
|
if (tmpFace) {
|
||||||
msgs.push(`[${tmpFace}`)
|
msgs.push(`[${tmpFace}`);
|
||||||
}
|
}
|
||||||
|
// 如果需要处理 @ 消息且 tmpAt 不为空,将其添加到 msgs 数组中
|
||||||
if (handleAt && tmpAt) {
|
if (handleAt && tmpAt) {
|
||||||
msgs.push(`@${tmpAt}`)
|
msgs.push(`@${tmpAt}`);
|
||||||
}
|
}
|
||||||
return msgs
|
// 返回转换后的消息段数组
|
||||||
|
return msgs;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function testConvertFaces () {
|
/**
|
||||||
const toTest = [
|
* 测试 convertFaces 函数
|
||||||
'你好啊[/微笑][惊讶]哈哈[/拜谢]'
|
*/
|
||||||
]
|
export function testConvertFaces() {
|
||||||
|
const toTest = ['你好啊[/微笑][惊讶]哈哈[/拜谢]'];
|
||||||
toTest.forEach(t => {
|
toTest.forEach(t => {
|
||||||
console.log(convertFaces(t))
|
console.log(convertFaces(t));
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// testConvertFaces()
|
// testConvertFaces(); // 注释掉测试代码
|
||||||
Loading…
Add table
Add a link
Reference in a new issue