From 0233c40f2139e14b61e28e102aa9252604bd80bd Mon Sep 17 00:00:00 2001 From: Henry Au-Yeung Ho Nam Date: Thu, 11 May 2017 00:59:39 +0800 Subject: [PATCH 1/3] Link message revoke function to itchat this is my first uploading code using github, apologize if it caused any inconvenience. --- itchat/__init__.py | 1 + itchat/core.py | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/itchat/__init__.py b/itchat/__init__.py index dfc19acd..256fc721 100644 --- a/itchat/__init__.py +++ b/itchat/__init__.py @@ -51,6 +51,7 @@ def new_instance(): send_image = originInstance.send_image send_video = originInstance.send_video send = originInstance.send +revoke = originInstance.revoke # components.hotreload dump_login_status = originInstance.dump_login_status load_login_status = originInstance.load_login_status diff --git a/itchat/core.py b/itchat/core.py index ba384ced..6a6a268e 100644 --- a/itchat/core.py +++ b/itchat/core.py @@ -369,6 +369,14 @@ def send(self, msg, toUserName=None, mediaId=None): it is defined in components/messages.py ''' raise NotImplementedError() + def revoke(self, localID, msgID, toUserName=None): + ''' revoke message with its LocalID and MsgID + for options + - localID: message ID at local + - msgID: message ID on server + - toUserName: 'UserName' key of friend dict + it is defined in components/messages.py + ''' def dump_login_status(self, fileDir=None): ''' dump login status to a specific file for option From 294e98dae83b90c39695ae4577197282dc5ed8d4 Mon Sep 17 00:00:00 2001 From: Henry Au-Yeung Ho Nam Date: Thu, 11 May 2017 01:11:24 +0800 Subject: [PATCH 2/3] Add message revoke function function added at the end of file, after the position of send --- itchat/components/messages.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/itchat/components/messages.py b/itchat/components/messages.py index 8f00bab1..8374f24a 100644 --- a/itchat/components/messages.py +++ b/itchat/components/messages.py @@ -21,6 +21,7 @@ def load_messages(core): core.send_image = send_image core.send_video = send_video core.send = send + core.revoke = revoke def get_download_fn(core, url, msgId): def download_fn(downloadDir=None): @@ -506,3 +507,17 @@ def send(self, msg, toUserName=None, mediaId=None): else: r = self.send_msg(msg, toUserName) return r + +def revoke(self, localID, msgID, toUserName): + url = '%s/webwxrevokemsg' % self.loginInfo['url'] + data = { + 'BaseRequest': self.loginInfo['BaseRequest'], + "ClientMsgId": localID, + "SvrMsgId": msgID, + "ToUserName": toUserName} + headers = { + 'ContentType': 'application/json; charset=UTF-8', + 'User-Agent' : config.USER_AGENT } + r = self.s.post(url, headers=headers, + data=json.dumps(data, ensure_ascii=False).encode('utf8')) + return ReturnValue(rawResponse=r) From 45f5db756c6d54c1e14607993b5489bcbb6e4089 Mon Sep 17 00:00:00 2001 From: Henry Au-Yeung Ho Nam Date: Tue, 16 May 2017 16:36:20 +0800 Subject: [PATCH 3/3] Update core.py --- itchat/core.py | 1 + 1 file changed, 1 insertion(+) diff --git a/itchat/core.py b/itchat/core.py index 6a6a268e..59d9763d 100644 --- a/itchat/core.py +++ b/itchat/core.py @@ -377,6 +377,7 @@ def revoke(self, localID, msgID, toUserName=None): - toUserName: 'UserName' key of friend dict it is defined in components/messages.py ''' + raise NotImplementedError() def dump_login_status(self, fileDir=None): ''' dump login status to a specific file for option