feat: 收到陌生人的文本消息后刷新联系人列表
This commit is contained in:
@@ -27,6 +27,37 @@ class WXBot(WebWeixin):
|
|||||||
if member['UserName'] == id:
|
if member['UserName'] == id:
|
||||||
return member['NickName']
|
return member['NickName']
|
||||||
return None
|
return None
|
||||||
|
# 获取用户备注(没有则返回昵称)或群名称,若本地无相关数据返回_unknown
|
||||||
|
def getUserOrGroupName(self, id):
|
||||||
|
name = '_unknown'
|
||||||
|
if id == self.User['UserName']:
|
||||||
|
return self.User['NickName'] # 自己
|
||||||
|
|
||||||
|
if id[:2] == '@@':
|
||||||
|
# 群
|
||||||
|
name = self.getGroupName(id)
|
||||||
|
else:
|
||||||
|
# 特殊账号
|
||||||
|
for member in self.SpecialUsersList:
|
||||||
|
if member['UserName'] == id:
|
||||||
|
name = member['RemarkName'] if member[
|
||||||
|
'RemarkName'] else member['NickName']
|
||||||
|
# 公众号或服务号
|
||||||
|
for member in self.PublicUsersList:
|
||||||
|
if member['UserName'] == id:
|
||||||
|
name = member['RemarkName'] if member[
|
||||||
|
'RemarkName'] else member['NickName']
|
||||||
|
# 直接联系人
|
||||||
|
for member in self.ContactList:
|
||||||
|
if member['UserName'] == id:
|
||||||
|
name = member['RemarkName'] if member[
|
||||||
|
'RemarkName'] else member['NickName']
|
||||||
|
# 群友
|
||||||
|
for member in self.GroupMemeberList:
|
||||||
|
if member['UserName'] == id:
|
||||||
|
name = member['DisplayName'] if member[
|
||||||
|
'DisplayName'] else member['NickName']
|
||||||
|
return name
|
||||||
|
|
||||||
def composeMessageID(self, msgID, timestamp):
|
def composeMessageID(self, msgID, timestamp):
|
||||||
return time.strftime('%Y%m%d%H%M%S', time.localtime(timestamp)) + msgID
|
return time.strftime('%Y%m%d%H%M%S', time.localtime(timestamp)) + msgID
|
||||||
@@ -100,9 +131,9 @@ class WXBot(WebWeixin):
|
|||||||
"create_time": msg['CreateTime'],
|
"create_time": msg['CreateTime'],
|
||||||
"msg_type": msgType,
|
"msg_type": msgType,
|
||||||
"content": None,
|
"content": None,
|
||||||
"from_name": self.getUserRemarkName(msg['FromUserName']),
|
"from_name": self.getUserOrGroupName(msg['FromUserName']),
|
||||||
"from_nickname": self.getUserNickName(msg['FromUserName']),
|
"from_nickname": self.getUserNickName(msg['FromUserName']),
|
||||||
"to_name": self.getUserRemarkName(msg['ToUserName']),
|
"to_name": self.getUserOrGroupName(msg['ToUserName']),
|
||||||
"to_nickname": self.getUserNickName(msg['ToUserName']),
|
"to_nickname": self.getUserNickName(msg['ToUserName']),
|
||||||
"group_name": None
|
"group_name": None
|
||||||
}
|
}
|
||||||
@@ -114,16 +145,19 @@ class WXBot(WebWeixin):
|
|||||||
# 群消息
|
# 群消息
|
||||||
if ":<br/>" in msg['Content']:
|
if ":<br/>" in msg['Content']:
|
||||||
[people, content] = msg['Content'].split(':<br/>', 1)
|
[people, content] = msg['Content'].split(':<br/>', 1)
|
||||||
params['group_name'] = self.getUserRemarkName(msg['FromUserName'])
|
params['group_name'] = self.getUserOrGroupName(msg['FromUserName'])
|
||||||
params['from_name'] = self.getUserRemarkName(people)
|
params['from_name'] = self.getUserOrGroupName(people)
|
||||||
params['to_name'] = params['to_nickname'] = None
|
params['to_name'] = params['to_nickname'] = None
|
||||||
elif msg['ToUserName'][:2] == '@@':
|
elif msg['ToUserName'][:2] == '@@':
|
||||||
# 发送的群消息
|
# 发送的群消息
|
||||||
params['group_name'] = self.getUserRemarkName(msg['ToUserName'])
|
params['group_name'] = self.getUserOrGroupName(msg['ToUserName'])
|
||||||
params['from_name'] = self.User['NickName']
|
params['from_name'] = self.User['NickName']
|
||||||
params['to_name'] = params['to_nickname'] = None
|
params['to_name'] = params['to_nickname'] = None
|
||||||
if msgType == 1:
|
if msgType == 1:
|
||||||
# 文字消息
|
# 文字消息
|
||||||
|
if params['from_name'] == '_unknown' or params['to_name'] == '_unknown':
|
||||||
|
# 有陌生人的文字消息,可能是新添加的好友,重新获取联系人列表
|
||||||
|
self.webwxgetcontact()
|
||||||
params['content'] = msg['Content'].replace('<', '<').replace('>', '>')
|
params['content'] = msg['Content'].replace('<', '<').replace('>', '>')
|
||||||
elif msgType == 3:
|
elif msgType == 3:
|
||||||
params['content'] = "[图片](%s)" % composedID
|
params['content'] = "[图片](%s)" % composedID
|
||||||
|
|||||||
Reference in New Issue
Block a user