diff --git a/README.md b/README.md index 68fb062..aaca20c 100644 --- a/README.md +++ b/README.md @@ -142,6 +142,10 @@ Q: 为什么我在设定了`itchat.auto_login()`的`enableCmdQR`为`True`后还 A: 这是由于没有安装可选的包`pillow`,可以使用右边的命令安装:`pip install pillow` +Q: 如何通过这个包将自己的微信号变为控制器? + +A: 有两种方式:发送、接受自己UserName的消息;发送接收文件传输助手(filehelper)的消息 + ## Author [LittleCoder](https://github.com/littlecodersh): 整体构架及完成Python2版本。 diff --git a/itchat/client.py b/itchat/client.py index 5c734b3..bfb96ae 100644 --- a/itchat/client.py +++ b/itchat/client.py @@ -8,6 +8,7 @@ from . import config, storage, out, tools import requests BASE_URL = config.BASE_URL +QR_DIR = 'QR.jpg' class client(object): def __init__(self): @@ -88,7 +89,6 @@ class client(object): if uuid == None: uuid = self.uuid url = '%s/qrcode/%s'%(BASE_URL, uuid) r = self.s.get(url, stream = True) - QR_DIR = 'QR.jpg' with open(QR_DIR, 'wb') as f: f.write(r.content) if enableCmdQR: tools.print_cmd_qr(QR_DIR, enableCmdQR = enableCmdQR) @@ -105,7 +105,7 @@ class client(object): regx = r'window.code=(\d+)' data = re.search(regx, r.text) if data and data.group(1) == '200': - os.remove('QR.jpg') + os.remove(QR_DIR) regx = r'window.redirect_uri="(\S+)";' self.loginInfo['url'] = re.search(regx, r.text).group(1) r = self.s.get(self.loginInfo['url'], allow_redirects=False) @@ -392,7 +392,7 @@ class client(object): if not r: return actualUserName, content = r.groups() try: - self.storageClass.groupDict[msg['FromUserName']][ActualUserName] + self.storageClass.groupDict[msg['FromUserName']][actualUserName] except: groupMemberList = self.get_batch_contract(msg['FromUserName'])['MemberList'] self.storageClass.groupDict[msg['FromUserName']] = {member['UserName']: member for member in groupMemberList} @@ -418,6 +418,7 @@ class client(object): }, } headers = { 'ContentType': 'application/json; charset=UTF-8' } r = self.s.post(url, data = json.dumps(payloads, ensure_ascii = False).encode('utf8'), headers = headers) + return r.json()['BaseResponse']['Ret'] == 0 def __upload_file(self, fileDir, isPicture = False): if not tools.check_file(fileDir): return url = 'https://file%s.wx.qq.com/cgi-bin/mmwebwx-bin/webwxuploadmedia?f=json'%('2' if '2' in self.loginInfo['url'] else '') @@ -537,6 +538,7 @@ class client(object): r = self.s.post(url, data=json.dumps(params),headers=headers) dic = json.loads(r.content.decode('utf8', 'replace')) + print(dic) return dic['ChatRoomName'] def delete_member_from_chatroom(self, chatRoomName, memberList): url = ('%s/webwxupdatechatroom?fun=delmember&pass_ticket=%s'%( @@ -546,7 +548,7 @@ class client(object): 'ChatRoomName': chatRoomName, 'DelMemberList': ','.join([member['UserName'] for member in memberList]), } headers = {'content-type': 'application/json; charset=UTF-8'} - return self.s.post(url, data=json.dumps(params),headers=headers) + return self.s.post(url, data=json.dumps(params),headers=headers).json() def add_member_into_chatroom(self, chatRoomName, memberList): url = ('%s/webwxupdatechatroom?fun=addmember&pass_ticket=%s'%( self.loginInfo['url'], self.loginInfo['pass_ticket'])) @@ -555,7 +557,7 @@ class client(object): 'ChatRoomName': chatRoomName, 'AddMemberList': ','.join([member['UserName'] for member in memberList]), } headers = {'content-type': 'application/json; charset=UTF-8'} - r = self.s.post(url, data=json.dumps(params),headers=headers) + return self.s.post(url, data=json.dumps(params),headers=headers).json() if __name__ == '__main__': wcc = WeChatClient()