diff --git a/weixin.py b/weixin.py
index 33eb59f..cb9d182 100755
--- a/weixin.py
+++ b/weixin.py
@@ -465,10 +465,14 @@ class WebWeixin(object):
if msg['raw_msg']['FromUserName'][:2] == '@@':
# 接收到来自群的消息
- [people, content] = content.split(':
')
- groupName = srcName
- srcName = self.getUserRemarkName(people)
- dstName = 'GROUP'
+ if re.search(":
", content, re.IGNORECASE):
+ [people, content] = content.split(':
')
+ groupName = srcName
+ srcName = self.getUserRemarkName(people)
+ dstName = 'GROUP'
+ else:
+ groupName = srcName
+ srcName = 'SYSTEM'
elif msg['raw_msg']['ToUserName'][:2] == '@@':
# 自己发给群的消息
groupName = dstName
@@ -499,10 +503,8 @@ class WebWeixin(object):
name = self.getUserRemarkName(msg['FromUserName'])
content = msg['Content'].replace('<','<').replace('>','>')
msgid = msg['MsgId']
- if msgType == 51:
- print '[*] 成功截获微信初始化消息'
- logging.debug('[*] 成功截获微信初始化消息')
- elif msgType == 1:
+
+ if msgType == 1:
raw_msg = { 'raw_msg': msg }
self._showMsg(raw_msg)
if self.autoReplyMode:
@@ -557,23 +559,28 @@ class WebWeixin(object):
}
raw_msg = { 'raw_msg': msg, 'message': '%s 分享了一个%s: %s' % (name, appMsgType[msg['AppMsgType']], json.dumps(card)) }
self._showMsg(raw_msg)
+ elif msgType == 51:
+ raw_msg = { 'raw_msg': msg, 'message': '[*] 成功获取联系人信息' }
+ self._showMsg(raw_msg)
elif msgType == 62:
video = self.webwxgetvideo(msgid)
- raw_msg = { 'raw_msg': msg, 'message': '%s 发了一段语音: %s' % (name, video) }
+ raw_msg = { 'raw_msg': msg, 'message': '%s 发了一段小视频: %s' % (name, video) }
self._showMsg(raw_msg)
self._safe_open(video)
elif msgType == 10002:
- print name+' 撤回消息'
- logging.info(name+' 撤回消息')
+ raw_msg = { 'raw_msg': msg, 'message': '%s 撤回了一条消息' % name }
+ self._showMsg(raw_msg)
else:
- print '[*] 该消息类型为: %d,可能是表情,图片或链接' % msg['MsgType']
- logging.debug('[*] 该消息类型为: %d,可能是表情,图片或链接: %s' % (msg['MsgType'], json.dumps(msg)))
+ logging.debug('[*] 该消息类型为: %d,可能是表情,图片, 链接或红包: %s' % (msg['MsgType'], json.dumps(msg)))
+ raw_msg = { 'raw_msg': msg, 'message': '[*] 该消息类型为: %d,可能是表情,图片, 链接或红包' % msg['MsgType'] }
+ self._showMsg(raw_msg)
def listenMsgMode(self):
print '[*] 进入消息监听模式 ... 成功'
logging.debug('[*] 进入消息监听模式 ... 成功')
self._run('[*] 进行同步线路测试 ... ', self.testsynccheck)
playWeChat = 0
+ redEnvelope = 0
while True:
self.lastCheckTs = time.time()
[retcode, selector] = self.synccheck()
@@ -593,7 +600,9 @@ class WebWeixin(object):
if r is not None: self.handleMsg(r)
elif selector == '6':
# TODO
- time.sleep(1)
+ redEnvelope += 1
+ print '[*] 收到疑似红包消息 %d 次' % redEnvelope
+ logging.debug('[*] 收到疑似红包消息 %d 次' % redEnvelope)
elif selector == '7':
playWeChat += 1
print '[*] 你在手机上玩微信被我发现了 %d 次' % playWeChat
@@ -641,16 +650,16 @@ class WebWeixin(object):
@catchKeyboardInterrupt
def start(self):
self._echo('[*] 微信网页版 ... 开动'); print; logging.debug('[*] 微信网页版 ... 开动')
- while True:
- self._run('[*] 正在获取 uuid ... ', self.getUUID)
- self._echo('[*] 正在获取二维码 ... 成功'); print; logging.debug('[*] 微信网页版 ... 开动'); self.genQRCode()
- print '[*] 请使用微信扫描二维码以登录 ... '
- if not self.waitForLogin():
- continue
- print '[*] 请在手机上点击确认以登录 ... '
- if not self.waitForLogin(0):
- continue
- break
+ while True:
+ self._run('[*] 正在获取 uuid ... ', self.getUUID)
+ self._echo('[*] 正在获取二维码 ... 成功'); print; logging.debug('[*] 微信网页版 ... 开动'); self.genQRCode()
+ print '[*] 请使用微信扫描二维码以登录 ... '
+ if not self.waitForLogin():
+ continue
+ print '[*] 请在手机上点击确认以登录 ... '
+ if not self.waitForLogin(0):
+ continue
+ break
self._run('[*] 正在登录 ... ', self.login)
self._run('[*] 微信初始化 ... ', self.webwxinit)