mirror of
https://github.com/Mrs4s/MiraiGo.git
synced 2025-05-04 11:07:40 +08:00
feat: face map generate
This commit is contained in:
parent
c04b18af70
commit
d0b3993934
@ -9,6 +9,9 @@ import (
|
||||
"github.com/Mrs4s/MiraiGo/client/pb/msg"
|
||||
)
|
||||
|
||||
//todo: github actions
|
||||
//go:generate go run generate.go
|
||||
|
||||
type TextElement struct {
|
||||
Content string
|
||||
}
|
||||
@ -62,7 +65,6 @@ type FriendImageElement struct {
|
||||
|
||||
type FaceElement struct {
|
||||
Index int32
|
||||
NewSysFace bool
|
||||
Name string
|
||||
}
|
||||
|
||||
@ -208,14 +210,6 @@ func NewGroupImage(id string, md5 []byte, fid int64, size, width, height, imageT
|
||||
func NewFace(index int32) *FaceElement {
|
||||
name := faceMap[int(index)]
|
||||
if name == "" {
|
||||
name = newSysFaceMap[int(index)]
|
||||
if name != "" {
|
||||
return &FaceElement{
|
||||
Index: index,
|
||||
NewSysFace: true,
|
||||
Name: name,
|
||||
}
|
||||
}
|
||||
name = "未知表情"
|
||||
}
|
||||
return &FaceElement{
|
||||
@ -367,260 +361,3 @@ func (e *MusicShareElement) Type() ElementType {
|
||||
func (e *RedBagElement) Type() ElementType {
|
||||
return RedBag
|
||||
}
|
||||
|
||||
var faceMap = map[int]string{
|
||||
14: "微笑",
|
||||
1: "撇嘴",
|
||||
2: "色",
|
||||
3: "发呆",
|
||||
4: "得意",
|
||||
5: "流泪",
|
||||
6: "害羞",
|
||||
7: "闭嘴",
|
||||
8: "睡",
|
||||
9: "大哭",
|
||||
10: "尴尬",
|
||||
11: "发怒",
|
||||
12: "调皮",
|
||||
13: "呲牙",
|
||||
0: "惊讶",
|
||||
15: "难过",
|
||||
16: "酷",
|
||||
96: "冷汗",
|
||||
18: "抓狂",
|
||||
19: "吐",
|
||||
20: "偷笑",
|
||||
21: "可爱",
|
||||
22: "白眼",
|
||||
23: "傲慢",
|
||||
24: "饥饿",
|
||||
25: "困",
|
||||
26: "惊恐",
|
||||
27: "流汗",
|
||||
28: "憨笑",
|
||||
29: "大兵",
|
||||
30: "奋斗",
|
||||
31: "咒骂",
|
||||
32: "疑问",
|
||||
33: "嘘",
|
||||
34: "晕",
|
||||
35: "折磨",
|
||||
36: "衰",
|
||||
37: "骷髅",
|
||||
38: "敲打",
|
||||
39: "再见",
|
||||
97: "擦汗",
|
||||
98: "抠鼻",
|
||||
99: "鼓掌",
|
||||
100: "糗大了",
|
||||
101: "坏笑",
|
||||
102: "左哼哼",
|
||||
103: "右哼哼",
|
||||
104: "哈欠",
|
||||
105: "鄙视",
|
||||
106: "委屈",
|
||||
107: "快哭了",
|
||||
108: "阴险",
|
||||
305: "右亲亲",
|
||||
109: "左亲亲",
|
||||
110: "吓",
|
||||
111: "可怜",
|
||||
172: "眨眼睛",
|
||||
182: "笑哭",
|
||||
179: "doge",
|
||||
173: "泪奔",
|
||||
174: "无奈",
|
||||
212: "托腮",
|
||||
175: "卖萌",
|
||||
178: "斜眼笑",
|
||||
177: "喷血",
|
||||
180: "惊喜",
|
||||
181: "骚扰",
|
||||
176: "小纠结",
|
||||
183: "我最美",
|
||||
|
||||
// newSysFaceMap
|
||||
|
||||
192: "红包",
|
||||
137: "嗨皮牛耶",
|
||||
138: "灯笼",
|
||||
136: "双喜",
|
||||
|
||||
// newSysFaceMap
|
||||
|
||||
112: "菜刀",
|
||||
89: "西瓜",
|
||||
113: "啤酒",
|
||||
114: "篮球",
|
||||
115: "乒乓",
|
||||
171: "茶",
|
||||
60: "咖啡",
|
||||
61: "饭",
|
||||
46: "猪头",
|
||||
63: "玫瑰",
|
||||
64: "凋谢",
|
||||
116: "示爱",
|
||||
66: "爱心",
|
||||
67: "心碎",
|
||||
53: "蛋糕",
|
||||
54: "闪电",
|
||||
55: "炸弹",
|
||||
56: "刀",
|
||||
|
||||
145: "祈祷",
|
||||
57: "足球",
|
||||
117: "瓢虫",
|
||||
59: "便便",
|
||||
75: "月亮",
|
||||
74: "太阳",
|
||||
69: "礼物",
|
||||
49: "拥抱",
|
||||
76: "强",
|
||||
77: "弱",
|
||||
78: "握手",
|
||||
79: "胜利",
|
||||
118: "抱拳",
|
||||
119: "勾引",
|
||||
120: "拳头",
|
||||
121: "差劲",
|
||||
122: "爱你",
|
||||
123: "NO",
|
||||
124: "OK",
|
||||
42: "爱情",
|
||||
85: "飞吻",
|
||||
43: "跳跳",
|
||||
41: "发抖",
|
||||
86: "怄火",
|
||||
125: "转圈",
|
||||
126: "磕头",
|
||||
127: "回头",
|
||||
128: "跳绳",
|
||||
129: "挥手",
|
||||
130: "激动",
|
||||
131: "街舞",
|
||||
132: "献吻",
|
||||
133: "左太极",
|
||||
134: "右太极",
|
||||
140: "K歌",
|
||||
144: "喝彩",
|
||||
146: "爆筋",
|
||||
147: "棒棒糖",
|
||||
148: "喝奶",
|
||||
151: "飞机",
|
||||
158: "钞票",
|
||||
168: "药",
|
||||
169: "手枪",
|
||||
188: "蛋",
|
||||
184: "河蟹",
|
||||
185: "羊驼",
|
||||
190: "菊花",
|
||||
187: "幽灵",
|
||||
193: "大笑",
|
||||
194: "不开心",
|
||||
197: "冷漠",
|
||||
198: "呃",
|
||||
199: "好棒",
|
||||
200: "拜托",
|
||||
201: "点赞",
|
||||
202: "无聊",
|
||||
203: "托脸",
|
||||
204: "吃",
|
||||
205: "送花",
|
||||
206: "害怕",
|
||||
207: "花痴",
|
||||
208: "小样儿",
|
||||
210: "飙泪",
|
||||
211: "我不看",
|
||||
|
||||
// newSysFaceMap
|
||||
}
|
||||
|
||||
var newSysFaceMap = map[int]string{
|
||||
|
||||
245: "加油必胜",
|
||||
246: "加油抱抱",
|
||||
247: "口罩护体",
|
||||
260: "搬砖中",
|
||||
261: "忙到飞起",
|
||||
262: "脑阔疼",
|
||||
263: "沧桑",
|
||||
264: "捂脸",
|
||||
265: "辣眼睛",
|
||||
266: "哦呦",
|
||||
267: "头秃",
|
||||
268: "问号脸",
|
||||
269: "暗中观察",
|
||||
270: "emm",
|
||||
271: "吃瓜",
|
||||
272: "呵呵哒",
|
||||
277: "汪汪",
|
||||
307: "牛转钱坤",
|
||||
306: "牛气冲天",
|
||||
281: "无眼笑",
|
||||
282: "敬礼",
|
||||
283: "狂笑",
|
||||
284: "面无表情",
|
||||
285: "摸鱼",
|
||||
293: "摸锦鲤",
|
||||
286: "魔鬼笑",
|
||||
287: "哦",
|
||||
288: "请",
|
||||
289: "睁眼",
|
||||
294: "期待",
|
||||
295: "拿到红包",
|
||||
296: "真好",
|
||||
297: "拜谢",
|
||||
298: "元宝",
|
||||
299: "牛啊",
|
||||
300: "胖三斤",
|
||||
301: "好闪",
|
||||
303: "右拜年",
|
||||
302: "左拜年",
|
||||
304: "红包包",
|
||||
|
||||
273: "我酸了",
|
||||
274: "太南了",
|
||||
|
||||
308: "求红包",
|
||||
309: "谢红包",
|
||||
310: "新年烟花",
|
||||
290: "敲开心",
|
||||
291: "震惊",
|
||||
292: "让我康康",
|
||||
278: "汗",
|
||||
279: "打脸",
|
||||
280: "击掌",
|
||||
242: "头撞击",
|
||||
243: "甩头",
|
||||
244: "扔狗",
|
||||
215: "糊脸",
|
||||
237: "偷看",
|
||||
226: "拍桌",
|
||||
214: "啵啵",
|
||||
217: "扯一扯",
|
||||
240: "喷脸",
|
||||
216: "拍头",
|
||||
218: "舔一舔",
|
||||
229: "干杯",
|
||||
238: "扇脸",
|
||||
219: "蹭一蹭",
|
||||
225: "撩一撩",
|
||||
231: "哼",
|
||||
233: "掐一掐",
|
||||
221: "顶呱呱",
|
||||
222: "抱抱",
|
||||
239: "原谅",
|
||||
232: "佛系",
|
||||
220: "拽炸天",
|
||||
235: "颤抖",
|
||||
241: "生日快乐",
|
||||
230: "嘲讽",
|
||||
224: "开枪",
|
||||
236: "啃头",
|
||||
228: "恭喜",
|
||||
234: "惊呆",
|
||||
223: "暴击",
|
||||
227: "拍手",
|
||||
|
||||
276: "辣椒酱", // 疑似删除
|
||||
}
|
||||
|
244
message/face.go
Normal file
244
message/face.go
Normal file
@ -0,0 +1,244 @@
|
||||
// Code generated by message/generate.go DO NOT EDIT.
|
||||
|
||||
package message
|
||||
|
||||
var faceMap = map[int]string{
|
||||
14: "微笑",
|
||||
1: "撇嘴",
|
||||
2: "色",
|
||||
3: "发呆",
|
||||
4: "得意",
|
||||
5: "流泪",
|
||||
6: "害羞",
|
||||
7: "闭嘴",
|
||||
8: "睡",
|
||||
9: "大哭",
|
||||
10: "尴尬",
|
||||
11: "发怒",
|
||||
12: "调皮",
|
||||
13: "呲牙",
|
||||
0: "惊讶",
|
||||
15: "难过",
|
||||
16: "酷",
|
||||
96: "冷汗",
|
||||
18: "抓狂",
|
||||
19: "吐",
|
||||
20: "偷笑",
|
||||
21: "可爱",
|
||||
22: "白眼",
|
||||
23: "傲慢",
|
||||
24: "饥饿",
|
||||
25: "困",
|
||||
26: "惊恐",
|
||||
27: "流汗",
|
||||
28: "憨笑",
|
||||
29: "悠闲",
|
||||
30: "奋斗",
|
||||
31: "咒骂",
|
||||
32: "疑问",
|
||||
33: "嘘",
|
||||
34: "晕",
|
||||
35: "折磨",
|
||||
36: "衰",
|
||||
37: "骷髅",
|
||||
38: "敲打",
|
||||
39: "再见",
|
||||
97: "擦汗",
|
||||
98: "抠鼻",
|
||||
99: "鼓掌",
|
||||
100: "糗大了",
|
||||
101: "坏笑",
|
||||
102: "左哼哼",
|
||||
103: "右哼哼",
|
||||
104: "哈欠",
|
||||
105: "鄙视",
|
||||
106: "委屈",
|
||||
107: "快哭了",
|
||||
108: "阴险",
|
||||
305: "右亲亲",
|
||||
109: "左亲亲",
|
||||
110: "吓",
|
||||
111: "可怜",
|
||||
172: "眨眼睛",
|
||||
182: "笑哭",
|
||||
179: "doge",
|
||||
173: "泪奔",
|
||||
174: "无奈",
|
||||
212: "托腮",
|
||||
175: "卖萌",
|
||||
178: "斜眼笑",
|
||||
177: "喷血",
|
||||
180: "惊喜",
|
||||
181: "骚扰",
|
||||
176: "小纠结",
|
||||
183: "我最美",
|
||||
245: "加油必胜",
|
||||
246: "加油抱抱",
|
||||
247: "口罩护体",
|
||||
260: "搬砖中",
|
||||
261: "忙到飞起",
|
||||
262: "脑阔疼",
|
||||
263: "沧桑",
|
||||
264: "捂脸",
|
||||
265: "辣眼睛",
|
||||
266: "哦哟",
|
||||
267: "头秃",
|
||||
268: "问号脸",
|
||||
269: "暗中观察",
|
||||
270: "emm",
|
||||
271: "吃瓜",
|
||||
272: "呵呵哒",
|
||||
277: "汪汪",
|
||||
307: "喵喵",
|
||||
306: "牛气冲天",
|
||||
281: "无眼笑",
|
||||
282: "敬礼",
|
||||
283: "狂笑",
|
||||
284: "面无表情",
|
||||
285: "摸鱼",
|
||||
293: "摸锦鲤",
|
||||
286: "魔鬼笑",
|
||||
287: "哦",
|
||||
288: "请",
|
||||
289: "睁眼",
|
||||
294: "期待",
|
||||
295: "拿到红包",
|
||||
296: "真好",
|
||||
297: "拜谢",
|
||||
298: "元宝",
|
||||
299: "牛啊",
|
||||
300: "胖三斤",
|
||||
301: "好闪",
|
||||
303: "右拜年",
|
||||
302: "左拜年",
|
||||
304: "红包包",
|
||||
49: "拥抱",
|
||||
66: "爱心",
|
||||
63: "玫瑰",
|
||||
64: "凋谢",
|
||||
187: "幽灵",
|
||||
146: "爆筋",
|
||||
116: "示爱",
|
||||
67: "心碎",
|
||||
60: "咖啡",
|
||||
185: "羊驼",
|
||||
192: "红包",
|
||||
137: "鞭炮",
|
||||
138: "灯笼",
|
||||
136: "双喜",
|
||||
76: "赞",
|
||||
124: "OK",
|
||||
118: "抱拳",
|
||||
78: "握手",
|
||||
119: "勾引",
|
||||
79: "胜利",
|
||||
120: "拳头",
|
||||
121: "差劲",
|
||||
77: "踩",
|
||||
122: "爱你",
|
||||
123: "NO",
|
||||
201: "点赞",
|
||||
203: "托脸",
|
||||
204: "吃",
|
||||
202: "无聊",
|
||||
200: "拜托",
|
||||
194: "不开心",
|
||||
193: "大笑",
|
||||
197: "冷漠",
|
||||
211: "我不看",
|
||||
210: "飙泪",
|
||||
198: "呃",
|
||||
199: "好棒",
|
||||
207: "花痴",
|
||||
205: "送花",
|
||||
206: "害怕",
|
||||
208: "小样儿",
|
||||
308: "求红包",
|
||||
309: "谢红包",
|
||||
310: "新年烟花",
|
||||
290: "敲开心",
|
||||
291: "震惊",
|
||||
292: "让我康康",
|
||||
226: "拍桌",
|
||||
215: "糊脸",
|
||||
237: "偷看",
|
||||
214: "啵啵",
|
||||
235: "颤抖",
|
||||
222: "抱抱",
|
||||
217: "扯一扯",
|
||||
221: "顶呱呱",
|
||||
225: "撩一撩",
|
||||
241: "生日快乐",
|
||||
227: "拍手",
|
||||
238: "扇脸",
|
||||
240: "喷脸",
|
||||
229: "干杯",
|
||||
216: "拍头",
|
||||
218: "舔一舔",
|
||||
233: "掐一掐",
|
||||
219: "蹭一蹭",
|
||||
244: "扔狗",
|
||||
232: "佛系",
|
||||
243: "甩头",
|
||||
223: "暴击",
|
||||
279: "打脸",
|
||||
280: "击掌",
|
||||
231: "哼",
|
||||
224: "开枪",
|
||||
278: "汗",
|
||||
236: "啃头",
|
||||
228: "恭喜",
|
||||
220: "拽炸天",
|
||||
239: "原谅",
|
||||
242: "头撞击",
|
||||
230: "嘲讽",
|
||||
234: "惊呆",
|
||||
273: "我酸了",
|
||||
75: "月亮",
|
||||
74: "太阳",
|
||||
46: "猪头",
|
||||
112: "菜刀",
|
||||
56: "刀",
|
||||
169: "手枪",
|
||||
171: "茶",
|
||||
59: "便便",
|
||||
144: "喝彩",
|
||||
147: "棒棒糖",
|
||||
89: "西瓜",
|
||||
61: "饭",
|
||||
148: "喝奶",
|
||||
274: "太南了",
|
||||
113: "啤酒",
|
||||
140: "K歌",
|
||||
53: "蛋糕",
|
||||
188: "蛋",
|
||||
55: "炸弹",
|
||||
184: "河蟹",
|
||||
158: "钞票",
|
||||
54: "闪电",
|
||||
69: "礼物",
|
||||
190: "菊花",
|
||||
151: "飞机",
|
||||
145: "祈祷",
|
||||
117: "瓢虫",
|
||||
168: "药",
|
||||
114: "篮球",
|
||||
115: "乒乓",
|
||||
57: "足球",
|
||||
41: "发抖",
|
||||
125: "转圈",
|
||||
42: "爱情",
|
||||
43: "跳跳",
|
||||
86: "怄火",
|
||||
129: "挥手",
|
||||
85: "飞吻",
|
||||
126: "磕头",
|
||||
128: "跳绳",
|
||||
130: "激动",
|
||||
127: "回头",
|
||||
132: "献吻",
|
||||
134: "右太极",
|
||||
133: "左太极",
|
||||
131: "街舞",
|
||||
276: "辣椒酱",
|
||||
}
|
60
message/generate.go
Normal file
60
message/generate.go
Normal file
@ -0,0 +1,60 @@
|
||||
// +build ignore
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"archive/zip"
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"go/format"
|
||||
"html/template"
|
||||
"io"
|
||||
"net/http"
|
||||
"os"
|
||||
"strings"
|
||||
)
|
||||
|
||||
const faceDownloadUrl = `https://downv6.qq.com/qqface/config/face_config_8.5.0.15.zip?mType=Other` //? 好像是会自动更新的
|
||||
|
||||
type config struct {
|
||||
SystemFace []face `json:"sysface"`
|
||||
}
|
||||
|
||||
type face struct {
|
||||
QSid string `json:"QSid"`
|
||||
QDes string `json:"QDes"`
|
||||
}
|
||||
|
||||
const codeTemplate = `// Code generated by message/generate.go DO NOT EDIT.
|
||||
|
||||
package message
|
||||
|
||||
var faceMap = map[int]string{
|
||||
{{range .SystemFace}} {{.QSid}}: "{{.QDes}}",
|
||||
{{end}}
|
||||
}
|
||||
`
|
||||
|
||||
func main() {
|
||||
f, _ := os.OpenFile("face.go", os.O_WRONLY|os.O_CREATE|os.O_SYNC|os.O_TRUNC, 0755)
|
||||
defer func() { _ = f.Close() }()
|
||||
resp, err := http.Get(faceDownloadUrl)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
rsp, _ := io.ReadAll(resp.Body)
|
||||
reader, _ := zip.NewReader(bytes.NewReader(rsp), resp.ContentLength)
|
||||
file, _ := reader.Open("face_config.json")
|
||||
data, _ := io.ReadAll(file)
|
||||
faceConfig := config{}
|
||||
_ = json.Unmarshal(data, &faceConfig)
|
||||
for i := range faceConfig.SystemFace {
|
||||
faceConfig.SystemFace[i].QDes = strings.TrimPrefix(faceConfig.SystemFace[i].QDes, "/")
|
||||
}
|
||||
tmpl, _ := template.New("template").Parse(codeTemplate)
|
||||
buffer := &bytes.Buffer{}
|
||||
_ = tmpl.Execute(buffer, &faceConfig)
|
||||
source, _ := format.Source(buffer.Bytes())
|
||||
f.Write(source)
|
||||
}
|
@ -23,7 +23,7 @@ func (e *TextElement) Pack() (r []*msg.Elem) {
|
||||
|
||||
func (e *FaceElement) Pack() (r []*msg.Elem) {
|
||||
r = []*msg.Elem{}
|
||||
if e.NewSysFace {
|
||||
if e.Index >= 260 {
|
||||
elem := &msg.MsgElemInfoServtype33{
|
||||
Index: proto.Uint32(uint32(e.Index)),
|
||||
Text: []byte("/" + e.Name),
|
||||
|
Loading…
x
Reference in New Issue
Block a user