|
@@ -153,23 +153,35 @@ class WXBot:
|
|
|
|
|
|
def get_contact(self):
|
|
def get_contact(self):
|
|
"""获取当前账户的所有相关账号(包括联系人、公众号、群聊、特殊账号)"""
|
|
"""获取当前账户的所有相关账号(包括联系人、公众号、群聊、特殊账号)"""
|
|
- if self.is_big_contact:
|
|
|
|
- return False
|
|
|
|
- url = self.base_uri + '/webwxgetcontact?pass_ticket=%s&skey=%s&r=%s' \
|
|
|
|
|
|
+ dic_list = []
|
|
|
|
+ url = self.base_uri + '/webwxgetcontact?seq=0&pass_ticket=%s&skey=%s&r=%s' \
|
|
% (self.pass_ticket, self.skey, int(time.time()))
|
|
% (self.pass_ticket, self.skey, int(time.time()))
|
|
|
|
|
|
#如果通讯录联系人过多,这里会直接获取失败
|
|
#如果通讯录联系人过多,这里会直接获取失败
|
|
try:
|
|
try:
|
|
- r = self.session.post(url, data='{}')
|
|
|
|
|
|
+ r = self.session.post(url, data='{}', timeout=180)
|
|
except Exception as e:
|
|
except Exception as e:
|
|
- self.is_big_contact = True
|
|
|
|
return False
|
|
return False
|
|
r.encoding = 'utf-8'
|
|
r.encoding = 'utf-8'
|
|
|
|
+ dic = json.loads(r.text)
|
|
|
|
+ dic_list.append(dic)
|
|
|
|
+
|
|
|
|
+ while int(dic["Seq"]) != 0:
|
|
|
|
+ print "[INFO] Geting contacts. Get %s contacts for now" % dic["MemberCount"]
|
|
|
|
+ url = self.base_uri + '/webwxgetcontact?seq=%s&pass_ticket=%s&skey=%s&r=%s' \
|
|
|
|
+ % (dic["Seq"], self.pass_ticket, self.skey, int(time.time()))
|
|
|
|
+ r = self.session.post(url, data='{}', timeout=180)
|
|
|
|
+ r.encoding = 'utf-8'
|
|
|
|
+ dic = json.loads(r.text)
|
|
|
|
+ dic_list.append(dic)
|
|
|
|
+
|
|
if self.DEBUG:
|
|
if self.DEBUG:
|
|
with open(os.path.join(self.temp_pwd,'contacts.json'), 'w') as f:
|
|
with open(os.path.join(self.temp_pwd,'contacts.json'), 'w') as f:
|
|
- f.write(r.text.encode('utf-8'))
|
|
|
|
- dic = json.loads(r.text)
|
|
|
|
- self.member_list = dic['MemberList']
|
|
|
|
|
|
+ f.write(json.dumps(dic_list))
|
|
|
|
+
|
|
|
|
+ self.member_list = []
|
|
|
|
+ for dic in dic_list:
|
|
|
|
+ self.member_list.extend(dic['MemberList'])
|
|
|
|
|
|
special_users = ['newsapp', 'fmessage', 'filehelper', 'weibo', 'qqmail',
|
|
special_users = ['newsapp', 'fmessage', 'filehelper', 'weibo', 'qqmail',
|
|
'fmessage', 'tmessage', 'qmessage', 'qqsync', 'floatbottle',
|
|
'fmessage', 'tmessage', 'qmessage', 'qqsync', 'floatbottle',
|