mirror of
https://github.com/Mrs4s/MiraiGo.git
synced 2025-05-04 11:07:40 +08:00
feat: set profile detail (#254)
* feat: profile detail * struct: ProfileDetailUpdate * ProfileDetailUpdate * update profile
This commit is contained in:
parent
5e8a512698
commit
9ef6c3cf3a
@ -1150,15 +1150,50 @@ func (c *QQClient) buildWordSegmentationPacket(data []byte) (uint16, []byte) {
|
||||
return c.uniPacket("OidbSvc.0xd79", payload)
|
||||
}
|
||||
|
||||
// OidbSvc.0x4ff_9
|
||||
func (c *QQClient) buildUpdateQQNicknamePacket(name string) (uint16, []byte) {
|
||||
type ProfileDetailUpdate map[uint16][]byte
|
||||
|
||||
func NewProfileDetailUpdate() ProfileDetailUpdate {
|
||||
return map[uint16][]byte{}
|
||||
}
|
||||
|
||||
func (p ProfileDetailUpdate) Nick(value string) ProfileDetailUpdate {
|
||||
p[20002] = []byte(value)
|
||||
return p
|
||||
}
|
||||
|
||||
func (p ProfileDetailUpdate) Email(value string) ProfileDetailUpdate {
|
||||
p[20011] = []byte(value)
|
||||
return p
|
||||
}
|
||||
|
||||
func (p ProfileDetailUpdate) PersonalNote(value string) ProfileDetailUpdate {
|
||||
p[20019] = []byte(value)
|
||||
return p
|
||||
}
|
||||
|
||||
func (p ProfileDetailUpdate) Company(value string) ProfileDetailUpdate {
|
||||
p[24008] = []byte(value)
|
||||
return p
|
||||
}
|
||||
|
||||
func (p ProfileDetailUpdate) College(value string) ProfileDetailUpdate {
|
||||
p[20021] = []byte(value)
|
||||
return p
|
||||
}
|
||||
|
||||
// OidbSvc.0x4ff_9_IMCore
|
||||
func (c *QQClient) buildUpdateProfileDetailPacket(profileRecord map[uint16][]byte) (uint16, []byte) {
|
||||
b, cl := binary.OpenWriterF(func(w *binary.Writer) {
|
||||
w.WriteUInt32(uint32(c.Uin))
|
||||
w.WriteByte(0)
|
||||
w.WriteUInt32(uint32(85538))
|
||||
w.WriteStringShort(name)
|
||||
w.WriteUInt16(uint16(len(profileRecord)))
|
||||
for tag, value := range profileRecord {
|
||||
w.WriteUInt16(tag)
|
||||
w.WriteUInt16(uint16(len(value)))
|
||||
w.Write(value)
|
||||
}
|
||||
})
|
||||
payload := c.packOIDBPackage(1279, 9, b)
|
||||
cl()
|
||||
return c.uniPacket("OidbSvc.0x4ff_9", payload)
|
||||
return c.uniPacket("OidbSvc.0x4ff_9_IMCore", payload)
|
||||
}
|
||||
|
@ -750,9 +750,9 @@ func (g *GroupInfo) removeMember(uin int64) {
|
||||
})
|
||||
}
|
||||
|
||||
// SetNickname 设置 QQ 昵称
|
||||
func (c *QQClient) SetNickname(name string) {
|
||||
_, _ = c.sendAndWait(c.buildUpdateQQNicknamePacket(name))
|
||||
// UpdateProfile 修改个人资料
|
||||
func (c *QQClient) UpdateProfile(profile ProfileDetailUpdate) {
|
||||
_, _ = c.sendAndWait(c.buildUpdateProfileDetailPacket(profile))
|
||||
}
|
||||
|
||||
func (c *QQClient) SetCustomServer(servers []*net.TCPAddr) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user