From ebcb24c945744c94248b56ca89b91403bf3f1988 Mon Sep 17 00:00:00 2001 From: PidgeyL Date: Mon, 30 May 2016 14:13:42 +0200 Subject: [PATCH 1/3] bugfix send function --- fbchat/client.py | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/fbchat/client.py b/fbchat/client.py index 200386e..6576f87 100644 --- a/fbchat/client.py +++ b/fbchat/client.py @@ -6,7 +6,8 @@ Facebook Chat (Messenger) for Python - :copyright: (c) 2015 by Taehoon Kim. + :copyright: (c) 2015 by Taehoon Kim. + :copyright: (c) 2015-2016 by PidgeyL. :license: BSD, see LICENSE for more details. """ @@ -195,7 +196,7 @@ class Client(object): users.append(User(entry)) return users # have bug TypeError: __repr__ returned non-string (type bytes) - def send(self, thread_id, message=None, like=None): + def send(self, user_id, message=None, like=None): """Send a message with given thread id :param thread_id: a thread id that you want to send a message @@ -209,7 +210,7 @@ class Client(object): 'client' : self.client, 'message_batch[0][action_type]' : 'ma-type:user-generated-message', 'message_batch[0][author]' : 'fbid:' + str(self.uid), - 'message_batch[0][specific_to_list][0]' : 'fbid:' + str(thread_id), + 'message_batch[0][specific_to_list][0]' : 'fbid:' + str(user_id), 'message_batch[0][specific_to_list][1]' : 'fbid:' + str(self.uid), 'message_batch[0][timestamp]' : timestamp, 'message_batch[0][timestamp_absolute]' : 'Today', @@ -228,8 +229,9 @@ class Client(object): 'message_batch[0][status]' : '0', 'message_batch[0][message_id]' : generateMessageID(self.client_id), 'message_batch[0][manual_retry_cnt]' : '0', - 'message_batch[0][thread_fbid]' : thread_id, - 'message_batch[0][has_attachment]' : False + 'message_batch[0][thread_fbid]' : None, + 'message_batch[0][has_attachment]' : False, + 'message_batch[0][other_user_fbid]' : user_id } if like: @@ -428,19 +430,26 @@ class Client(object): name = m['message']['sender_name'] self.on_message(mid, fbid, name, message, m) elif m['type'] in ['typ']: - self.on_typing(m["from"]) + self.on_typing(m.get("from")) elif m['type'] in ['m_read_receipt']: - self.on_read(m['realtime_viewer_fbid'], m['reader'], m['time']) + self.on_read(m.get('realtime_viewer_fbid'), m.get('reader'), m.get('time')) elif m['type'] in ['inbox']: - viewer = m['realtime_viewer_fbid'] - unseen = m['unseen'] - unread = m['unread'] - other_unseen = m['other_unseen'] - other_unread = m['other_unread'] - timestamp = m['seen_timestamp'] + viewer = m.get('realtime_viewer_fbid') + unseen = m.get('unseen') + unread = m.get('unread') + other_unseen = m.get('other_unseen') + other_unread = m.get('other_unread') + timestamp = m.get('seen_timestamp') self.on_inbox(viewer, unseen, unread, other_unseen, other_unread, timestamp) elif m['type'] in ['qprimer']: - self.on_qprimer(m['made']) + self.on_qprimer(m.get('made')) + elif m['type'] in ['delta']: + mid = m['delta']['messageMetadata']['messageId'] + message = m['delta']['body'] + fbid = m['delta']['messageMetadata']['threadKey']['otherUserFbId'] + name = None + self.on_message(mid, fbid, name, message, m) + else: print(m) except Exception as e: From 902e90147a197123ef2f694c7a75a1ed954040c4 Mon Sep 17 00:00:00 2001 From: PidgeyL Date: Mon, 30 May 2016 14:26:27 +0200 Subject: [PATCH 2/3] remove unneeded print if not debug --- fbchat/__init__.py | 2 +- fbchat/client.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/fbchat/__init__.py b/fbchat/__init__.py index 5316c78..6c73aee 100644 --- a/fbchat/__init__.py +++ b/fbchat/__init__.py @@ -15,7 +15,7 @@ from .client import * __copyright__ = 'Copyright 2015 by Taehoon Kim' -__version__ = '0.3.1' +__version__ = '0.4.0' __license__ = 'BSD' __author__ = 'Taehoon Kim; Moreels Pieter-Jan' __email__ = 'carpedm20@gmail.com' diff --git a/fbchat/client.py b/fbchat/client.py index 6576f87..b11c5d8 100644 --- a/fbchat/client.py +++ b/fbchat/client.py @@ -449,9 +449,9 @@ class Client(object): fbid = m['delta']['messageMetadata']['threadKey']['otherUserFbId'] name = None self.on_message(mid, fbid, name, message, m) - else: - print(m) + if self.debug: + print(m) except Exception as e: self.on_message_error(e, m) From 6d8c2fd66e6e26e9b51aefb4b549439252324f97 Mon Sep 17 00:00:00 2001 From: PidgeyL Date: Mon, 30 May 2016 14:53:29 +0200 Subject: [PATCH 3/3] bugfix --- fbchat/client.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/fbchat/client.py b/fbchat/client.py index b11c5d8..1f6e9b8 100644 --- a/fbchat/client.py +++ b/fbchat/client.py @@ -444,11 +444,12 @@ class Client(object): elif m['type'] in ['qprimer']: self.on_qprimer(m.get('made')) elif m['type'] in ['delta']: - mid = m['delta']['messageMetadata']['messageId'] - message = m['delta']['body'] - fbid = m['delta']['messageMetadata']['threadKey']['otherUserFbId'] - name = None - self.on_message(mid, fbid, name, message, m) + if 'messageMetadata' in m['delta']: + mid = m['delta']['messageMetadata']['messageId'] + message = m['delta']['body'] + fbid = m['delta']['messageMetadata']['threadKey']['otherUserFbId'] + name = None + self.on_message(mid, fbid, name, message, m) else: if self.debug: print(m)