Removed trailing whitespace
This commit is contained in:
104
fbchat/client.py
104
fbchat/client.py
@@ -588,7 +588,7 @@ class Client(object):
|
|||||||
log.warning('Unknown __typename: {} in {}'.format(repr(node['__typename']), node))
|
log.warning('Unknown __typename: {} in {}'.format(repr(node['__typename']), node))
|
||||||
|
|
||||||
return rtn
|
return rtn
|
||||||
|
|
||||||
def searchForMessageIDs(self, query, offset=0, limit=5, thread_id=None):
|
def searchForMessageIDs(self, query, offset=0, limit=5, thread_id=None):
|
||||||
"""
|
"""
|
||||||
Find and get message IDs by query
|
Find and get message IDs by query
|
||||||
@@ -614,12 +614,12 @@ class Client(object):
|
|||||||
j = self._post(self.req_url.SEARCH_MESSAGES, data, fix_request=True, as_json=True)
|
j = self._post(self.req_url.SEARCH_MESSAGES, data, fix_request=True, as_json=True)
|
||||||
snippets = j["payload"]["search_snippets"][query][thread_id]["snippets"]
|
snippets = j["payload"]["search_snippets"][query][thread_id]["snippets"]
|
||||||
return [snippet["message_id"] for snippet in snippets]
|
return [snippet["message_id"] for snippet in snippets]
|
||||||
|
|
||||||
def searchForMessages(self, query, offset=0, limit=5, thread_id=None):
|
def searchForMessages(self, query, offset=0, limit=5, thread_id=None):
|
||||||
"""
|
"""
|
||||||
.. warning::
|
.. warning::
|
||||||
This method sends request for every found message ID and it's very slow.
|
This method sends request for every found message ID and it's very slow.
|
||||||
|
|
||||||
Find and get :class:`models.Message` object by query
|
Find and get :class:`models.Message` object by query
|
||||||
|
|
||||||
:param query: Text to search for
|
:param query: Text to search for
|
||||||
@@ -930,7 +930,7 @@ class Client(object):
|
|||||||
if message is None:
|
if message is None:
|
||||||
raise FBChatException('Could not fetch message: {}'.format(mid))
|
raise FBChatException('Could not fetch message: {}'.format(mid))
|
||||||
return message
|
return message
|
||||||
|
|
||||||
def fetchPollOptions(self, poll_id):
|
def fetchPollOptions(self, poll_id):
|
||||||
"""
|
"""
|
||||||
Fetches list of :class:`models.PollOption` objects from the poll id
|
Fetches list of :class:`models.PollOption` objects from the poll id
|
||||||
@@ -947,7 +947,7 @@ class Client(object):
|
|||||||
j = self._post('{}/?{}'.format(self.req_url.GET_POLL_OPTIONS, url_part), fix_request=True, as_json=True)
|
j = self._post('{}/?{}'.format(self.req_url.GET_POLL_OPTIONS, url_part), fix_request=True, as_json=True)
|
||||||
|
|
||||||
return [graphql_to_poll_option(m) for m in j["payload"]]
|
return [graphql_to_poll_option(m) for m in j["payload"]]
|
||||||
|
|
||||||
def fetchEventInfo(self, event_id):
|
def fetchEventInfo(self, event_id):
|
||||||
"""
|
"""
|
||||||
Fetches :class:`models.Event` object from the event id
|
Fetches :class:`models.Event` object from the event id
|
||||||
@@ -1126,7 +1126,7 @@ class Client(object):
|
|||||||
return j['payload']['metadata'][0]['image_id']
|
return j['payload']['metadata'][0]['image_id']
|
||||||
else:
|
else:
|
||||||
return j['payload']['metadata'][0]['gif_id']
|
return j['payload']['metadata'][0]['gif_id']
|
||||||
|
|
||||||
def _uploadVideo(self, video_path, data, mimetype):
|
def _uploadVideo(self, video_path, data, mimetype):
|
||||||
"""Upload an video and get the video_id for sending in a message"""
|
"""Upload an video and get the video_id for sending in a message"""
|
||||||
|
|
||||||
@@ -1187,7 +1187,7 @@ class Client(object):
|
|||||||
mimetype = guess_type(file_path)[0]
|
mimetype = guess_type(file_path)[0]
|
||||||
file_id = self._uploadFile(file_path, open(file_path, 'rb'), mimetype)
|
file_id = self._uploadFile(file_path, open(file_path, 'rb'), mimetype)
|
||||||
return self.sendFile(file_id=file_id, message=message, thread_id=thread_id, thread_type=thread_type)
|
return self.sendFile(file_id=file_id, message=message, thread_id=thread_id, thread_type=thread_type)
|
||||||
|
|
||||||
def sendAudio(self, audio_id, message=None, thread_id=None, thread_type=ThreadType.USER):
|
def sendAudio(self, audio_id, message=None, thread_id=None, thread_type=ThreadType.USER):
|
||||||
"""
|
"""
|
||||||
Sends an audio from an audio ID to a thread
|
Sends an audio from an audio ID to a thread
|
||||||
@@ -1301,7 +1301,7 @@ class Client(object):
|
|||||||
is_gif = (mimetype == 'image/gif')
|
is_gif = (mimetype == 'image/gif')
|
||||||
image_id = self._uploadImage(image_path, open(image_path, 'rb'), mimetype)
|
image_id = self._uploadImage(image_path, open(image_path, 'rb'), mimetype)
|
||||||
return self.sendImage(image_id=image_id, message=message, thread_id=thread_id, thread_type=thread_type, is_gif=is_gif)
|
return self.sendImage(image_id=image_id, message=message, thread_id=thread_id, thread_type=thread_type, is_gif=is_gif)
|
||||||
|
|
||||||
def sendVideo(self, video_id, message=None, thread_id=None, thread_type=ThreadType.USER):
|
def sendVideo(self, video_id, message=None, thread_id=None, thread_type=ThreadType.USER):
|
||||||
"""
|
"""
|
||||||
Sends an video from an video ID to a thread
|
Sends an video from an video ID to a thread
|
||||||
@@ -1355,7 +1355,7 @@ class Client(object):
|
|||||||
mimetype = guess_type(video_path)[0]
|
mimetype = guess_type(video_path)[0]
|
||||||
video_id = self._uploadVideo(video_path, open(video_path, 'rb'), mimetype)
|
video_id = self._uploadVideo(video_path, open(video_path, 'rb'), mimetype)
|
||||||
return self.sendVideo(video_id=video_id, message=message, thread_id=thread_id, thread_type=thread_type)
|
return self.sendVideo(video_id=video_id, message=message, thread_id=thread_id, thread_type=thread_type)
|
||||||
|
|
||||||
def createGroup(self, message, person_ids=None):
|
def createGroup(self, message, person_ids=None):
|
||||||
"""Creates a group with the given ids
|
"""Creates a group with the given ids
|
||||||
:param person_ids: A list of people to create the group with.
|
:param person_ids: A list of people to create the group with.
|
||||||
@@ -1373,7 +1373,7 @@ class Client(object):
|
|||||||
else:
|
else:
|
||||||
log.warning("Error while creating group")
|
log.warning("Error while creating group")
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def addUsersToGroup(self, user_ids, thread_id=None):
|
def addUsersToGroup(self, user_ids, thread_id=None):
|
||||||
"""
|
"""
|
||||||
Adds users to a group.
|
Adds users to a group.
|
||||||
@@ -1420,7 +1420,7 @@ class Client(object):
|
|||||||
}
|
}
|
||||||
|
|
||||||
j = self._post(self.req_url.REMOVE_USER, data, fix_request=True, as_json=True)
|
j = self._post(self.req_url.REMOVE_USER, data, fix_request=True, as_json=True)
|
||||||
|
|
||||||
def _adminStatus(self, admin_ids, admin, thread_id=None):
|
def _adminStatus(self, admin_ids, admin, thread_id=None):
|
||||||
thread_id, thread_type = self._getThread(thread_id, None)
|
thread_id, thread_type = self._getThread(thread_id, None)
|
||||||
|
|
||||||
@@ -1439,7 +1439,7 @@ class Client(object):
|
|||||||
data['admin_ids[' + str(i) + ']'] = str(admin_id)
|
data['admin_ids[' + str(i) + ']'] = str(admin_id)
|
||||||
|
|
||||||
j = self._post(self.req_url.SAVE_ADMINS, data, fix_request=True, as_json=True)
|
j = self._post(self.req_url.SAVE_ADMINS, data, fix_request=True, as_json=True)
|
||||||
|
|
||||||
def addGroupAdmins(self, admin_ids, thread_id=None):
|
def addGroupAdmins(self, admin_ids, thread_id=None):
|
||||||
"""
|
"""
|
||||||
Sets specifed users as group admins.
|
Sets specifed users as group admins.
|
||||||
@@ -1525,9 +1525,9 @@ class Client(object):
|
|||||||
:type thread_type: models.ThreadType
|
:type thread_type: models.ThreadType
|
||||||
:raises: FBchatException if request failed
|
:raises: FBchatException if request failed
|
||||||
"""
|
"""
|
||||||
|
|
||||||
thread_id, thread_type = self._getThread(thread_id, thread_type)
|
thread_id, thread_type = self._getThread(thread_id, thread_type)
|
||||||
|
|
||||||
if thread_type != ThreadType.GROUP:
|
if thread_type != ThreadType.GROUP:
|
||||||
raise FBchatUserError('Can only change the image of group threads')
|
raise FBchatUserError('Can only change the image of group threads')
|
||||||
else:
|
else:
|
||||||
@@ -1537,7 +1537,7 @@ class Client(object):
|
|||||||
}
|
}
|
||||||
|
|
||||||
j = self._post(self.req_url.THREAD_IMAGE, data, fix_request=True, as_json=True)
|
j = self._post(self.req_url.THREAD_IMAGE, data, fix_request=True, as_json=True)
|
||||||
|
|
||||||
def changeThreadImageRemote(self, image_url, thread_id=None, thread_type=ThreadType.USER):
|
def changeThreadImageRemote(self, image_url, thread_id=None, thread_type=ThreadType.USER):
|
||||||
"""
|
"""
|
||||||
Changes a thread image from a URL
|
Changes a thread image from a URL
|
||||||
@@ -1548,9 +1548,9 @@ class Client(object):
|
|||||||
:type thread_type: models.ThreadType
|
:type thread_type: models.ThreadType
|
||||||
:raises: FBchatException if request failed
|
:raises: FBchatException if request failed
|
||||||
"""
|
"""
|
||||||
|
|
||||||
thread_id, thread_type = self._getThread(thread_id, thread_type)
|
thread_id, thread_type = self._getThread(thread_id, thread_type)
|
||||||
|
|
||||||
if thread_type != ThreadType.GROUP:
|
if thread_type != ThreadType.GROUP:
|
||||||
raise FBchatUserError('Can only change the image of group threads')
|
raise FBchatUserError('Can only change the image of group threads')
|
||||||
else:
|
else:
|
||||||
@@ -1560,7 +1560,7 @@ class Client(object):
|
|||||||
image_id = self._uploadImage(image_url, remote_image, mimetype)
|
image_id = self._uploadImage(image_url, remote_image, mimetype)
|
||||||
|
|
||||||
self.changeThreadImage(image_id, thread_id, thread_type)
|
self.changeThreadImage(image_id, thread_id, thread_type)
|
||||||
|
|
||||||
def changeThreadImageLocal(self, image_path, thread_id=None, thread_type=ThreadType.USER):
|
def changeThreadImageLocal(self, image_path, thread_id=None, thread_type=ThreadType.USER):
|
||||||
"""
|
"""
|
||||||
Changes a thread image from a local path
|
Changes a thread image from a local path
|
||||||
@@ -1571,9 +1571,9 @@ class Client(object):
|
|||||||
:type thread_type: models.ThreadType
|
:type thread_type: models.ThreadType
|
||||||
:raises: FBchatException if request failed
|
:raises: FBchatException if request failed
|
||||||
"""
|
"""
|
||||||
|
|
||||||
thread_id, thread_type = self._getThread(thread_id, thread_type)
|
thread_id, thread_type = self._getThread(thread_id, thread_type)
|
||||||
|
|
||||||
if thread_type != ThreadType.GROUP:
|
if thread_type != ThreadType.GROUP:
|
||||||
raise FBchatUserError('Can only change the image of group threads')
|
raise FBchatUserError('Can only change the image of group threads')
|
||||||
else:
|
else:
|
||||||
@@ -1596,7 +1596,7 @@ class Client(object):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
thread_id, thread_type = self._getThread(thread_id, thread_type)
|
thread_id, thread_type = self._getThread(thread_id, thread_type)
|
||||||
|
|
||||||
if thread_type == ThreadType.USER:
|
if thread_type == ThreadType.USER:
|
||||||
# The thread is a user, so we change the user's nickname
|
# The thread is a user, so we change the user's nickname
|
||||||
return self.changeNickname(title, thread_id, thread_id=thread_id, thread_type=thread_type)
|
return self.changeNickname(title, thread_id, thread_id=thread_id, thread_type=thread_type)
|
||||||
@@ -1733,7 +1733,7 @@ class Client(object):
|
|||||||
url_part = urllib.parse.urlencode(full_data)
|
url_part = urllib.parse.urlencode(full_data)
|
||||||
|
|
||||||
j = self._post('{}/?{}'.format(self.req_url.EVENT_REMINDER, url_part), fix_request=True, as_json=True)
|
j = self._post('{}/?{}'.format(self.req_url.EVENT_REMINDER, url_part), fix_request=True, as_json=True)
|
||||||
|
|
||||||
def editEventReminder(self, event_id, event):
|
def editEventReminder(self, event_id, event):
|
||||||
"""
|
"""
|
||||||
Edits an event reminder
|
Edits an event reminder
|
||||||
@@ -1761,7 +1761,7 @@ class Client(object):
|
|||||||
url_part = urllib.parse.urlencode(full_data)
|
url_part = urllib.parse.urlencode(full_data)
|
||||||
|
|
||||||
j = self._post('{}/?{}'.format(self.req_url.EVENT_CHANGE, url_part), fix_request=True, as_json=True)
|
j = self._post('{}/?{}'.format(self.req_url.EVENT_CHANGE, url_part), fix_request=True, as_json=True)
|
||||||
|
|
||||||
def deleteEventReminder(self, event_id):
|
def deleteEventReminder(self, event_id):
|
||||||
"""
|
"""
|
||||||
Deletes an event reminder
|
Deletes an event reminder
|
||||||
@@ -1783,7 +1783,7 @@ class Client(object):
|
|||||||
url_part = urllib.parse.urlencode(full_data)
|
url_part = urllib.parse.urlencode(full_data)
|
||||||
|
|
||||||
j = self._post('{}/?{}'.format(self.req_url.EVENT_CHANGE, url_part), fix_request=True, as_json=True)
|
j = self._post('{}/?{}'.format(self.req_url.EVENT_CHANGE, url_part), fix_request=True, as_json=True)
|
||||||
|
|
||||||
def changeEventParticipation(self, event_id, take_part=True):
|
def changeEventParticipation(self, event_id, take_part=True):
|
||||||
"""
|
"""
|
||||||
Changes an event reminder participation
|
Changes an event reminder participation
|
||||||
@@ -1833,7 +1833,7 @@ class Client(object):
|
|||||||
data["option_is_selected_array[{}]".format(i)] = str(int(option.vote))
|
data["option_is_selected_array[{}]".format(i)] = str(int(option.vote))
|
||||||
|
|
||||||
j = self._post(self.req_url.CREATE_POLL, data, fix_request=True, as_json=True)
|
j = self._post(self.req_url.CREATE_POLL, data, fix_request=True, as_json=True)
|
||||||
|
|
||||||
def updatePollVote(self, poll_id, option_ids=[], new_options=[]):
|
def updatePollVote(self, poll_id, option_ids=[], new_options=[]):
|
||||||
"""
|
"""
|
||||||
Updates a poll vote
|
Updates a poll vote
|
||||||
@@ -1921,7 +1921,7 @@ class Client(object):
|
|||||||
:raises: FBchatException if request failed
|
:raises: FBchatException if request failed
|
||||||
"""
|
"""
|
||||||
self._readStatus(True, thread_id)
|
self._readStatus(True, thread_id)
|
||||||
|
|
||||||
def markAsUnread(self, thread_id=None):
|
def markAsUnread(self, thread_id=None):
|
||||||
"""
|
"""
|
||||||
Mark a thread as unread
|
Mark a thread as unread
|
||||||
@@ -1940,7 +1940,7 @@ class Client(object):
|
|||||||
"""
|
"""
|
||||||
r = self._post(self.req_url.MARK_SEEN, {"seen_timestamp": 0})
|
r = self._post(self.req_url.MARK_SEEN, {"seen_timestamp": 0})
|
||||||
return r.ok
|
return r.ok
|
||||||
|
|
||||||
def markAsSpam(self, thread_id=None):
|
def markAsSpam(self, thread_id=None):
|
||||||
"""
|
"""
|
||||||
Mark a thread as spam and delete it
|
Mark a thread as spam and delete it
|
||||||
@@ -1989,7 +1989,7 @@ class Client(object):
|
|||||||
def blockUser(self, user_id):
|
def blockUser(self, user_id):
|
||||||
"""
|
"""
|
||||||
Blocks messages from a specifed user
|
Blocks messages from a specifed user
|
||||||
|
|
||||||
:param user_id: The ID of the user that you want to block
|
:param user_id: The ID of the user that you want to block
|
||||||
:return: Whether the request was successful
|
:return: Whether the request was successful
|
||||||
:raises: FBchatException if request failed
|
:raises: FBchatException if request failed
|
||||||
@@ -2003,7 +2003,7 @@ class Client(object):
|
|||||||
def unblockUser(self, user_id):
|
def unblockUser(self, user_id):
|
||||||
"""
|
"""
|
||||||
Unblocks messages from a blocked user
|
Unblocks messages from a blocked user
|
||||||
|
|
||||||
:param user_id: The ID of the user that you want to unblock
|
:param user_id: The ID of the user that you want to unblock
|
||||||
:return: Whether the request was successful
|
:return: Whether the request was successful
|
||||||
:raises: FBchatException if request failed
|
:raises: FBchatException if request failed
|
||||||
@@ -2013,11 +2013,11 @@ class Client(object):
|
|||||||
}
|
}
|
||||||
r = self._post(self.req_url.UNBLOCK_USER, data)
|
r = self._post(self.req_url.UNBLOCK_USER, data)
|
||||||
return r.ok
|
return r.ok
|
||||||
|
|
||||||
def moveThreads(self, location, thread_ids):
|
def moveThreads(self, location, thread_ids):
|
||||||
"""
|
"""
|
||||||
Moves threads to specifed location
|
Moves threads to specifed location
|
||||||
|
|
||||||
:param location: models.ThreadLocation: INBOX, PENDING, ARCHIVED or OTHER
|
:param location: models.ThreadLocation: INBOX, PENDING, ARCHIVED or OTHER
|
||||||
:param thread_ids: Thread IDs to move. See :ref:`intro_threads`
|
:param thread_ids: Thread IDs to move. See :ref:`intro_threads`
|
||||||
:return: Whether the request was successful
|
:return: Whether the request was successful
|
||||||
@@ -2107,7 +2107,7 @@ class Client(object):
|
|||||||
}
|
}
|
||||||
r = self._post(self.req_url.MUTE_THREAD, data)
|
r = self._post(self.req_url.MUTE_THREAD, data)
|
||||||
return r.ok
|
return r.ok
|
||||||
|
|
||||||
def unmuteThread(self, thread_id=None):
|
def unmuteThread(self, thread_id=None):
|
||||||
"""
|
"""
|
||||||
Unmutes thread
|
Unmutes thread
|
||||||
@@ -2115,7 +2115,7 @@ class Client(object):
|
|||||||
:param thread_id: User/Group ID to unmute. See :ref:`intro_threads`
|
:param thread_id: User/Group ID to unmute. See :ref:`intro_threads`
|
||||||
"""
|
"""
|
||||||
return self.muteThread(0, thread_id)
|
return self.muteThread(0, thread_id)
|
||||||
|
|
||||||
def muteThreadReactions(self, mute=True, thread_id=None):
|
def muteThreadReactions(self, mute=True, thread_id=None):
|
||||||
"""
|
"""
|
||||||
Mutes thread reactions
|
Mutes thread reactions
|
||||||
@@ -2352,7 +2352,7 @@ class Client(object):
|
|||||||
|
|
||||||
# thread_id, thread_type = getThreadIdAndThreadType(delta)
|
# thread_id, thread_type = getThreadIdAndThreadType(delta)
|
||||||
self.onMarkedSeen(threads=threads, seen_ts=seen_ts, ts=delivered_ts, metadata=delta, msg=m)
|
self.onMarkedSeen(threads=threads, seen_ts=seen_ts, ts=delivered_ts, metadata=delta, msg=m)
|
||||||
|
|
||||||
# Game played
|
# Game played
|
||||||
elif delta.get("type") == "instant_game_update":
|
elif delta.get("type") == "instant_game_update":
|
||||||
game_id = delta["untypedData"]["game_id"]
|
game_id = delta["untypedData"]["game_id"]
|
||||||
@@ -2375,7 +2375,7 @@ class Client(object):
|
|||||||
call_duration = int(delta["untypedData"]["call_duration"])
|
call_duration = int(delta["untypedData"]["call_duration"])
|
||||||
is_video_call = bool(int(delta["untypedData"]["is_video_call"]))
|
is_video_call = bool(int(delta["untypedData"]["is_video_call"]))
|
||||||
if call_status == "call_started":
|
if call_status == "call_started":
|
||||||
self.onCallStarted(mid=mid, caller_id=author_id, is_video_call=is_video_call,
|
self.onCallStarted(mid=mid, caller_id=author_id, is_video_call=is_video_call,
|
||||||
thread_id=thread_id, thread_type=thread_type, ts=ts, metadata=metadata, msg=m)
|
thread_id=thread_id, thread_type=thread_type, ts=ts, metadata=metadata, msg=m)
|
||||||
elif call_status == "call_ended":
|
elif call_status == "call_ended":
|
||||||
self.onCallEnded(mid=mid, caller_id=author_id, is_video_call=is_video_call, call_duration=call_duration,
|
self.onCallEnded(mid=mid, caller_id=author_id, is_video_call=is_video_call, call_duration=call_duration,
|
||||||
@@ -2385,7 +2385,7 @@ class Client(object):
|
|||||||
elif delta.get("type") == "participant_joined_group_call":
|
elif delta.get("type") == "participant_joined_group_call":
|
||||||
thread_id, thread_type = getThreadIdAndThreadType(metadata)
|
thread_id, thread_type = getThreadIdAndThreadType(metadata)
|
||||||
is_video_call = bool(int(delta["untypedData"]["group_call_type"]))
|
is_video_call = bool(int(delta["untypedData"]["group_call_type"]))
|
||||||
self.onUserJoinedCall(mid=mid, joined_id=author_id, is_video_call=is_video_call,
|
self.onUserJoinedCall(mid=mid, joined_id=author_id, is_video_call=is_video_call,
|
||||||
thread_id=thread_id, thread_type=thread_type, ts=ts, metadata=metadata, msg=m)
|
thread_id=thread_id, thread_type=thread_type, ts=ts, metadata=metadata, msg=m)
|
||||||
|
|
||||||
# Group poll event
|
# Group poll event
|
||||||
@@ -2409,14 +2409,14 @@ class Client(object):
|
|||||||
event = graphql_to_event(delta["untypedData"])
|
event = graphql_to_event(delta["untypedData"])
|
||||||
self.onEventCreated(mid=mid, event=event, author_id=author_id, thread_id=thread_id, thread_type=thread_type,
|
self.onEventCreated(mid=mid, event=event, author_id=author_id, thread_id=thread_id, thread_type=thread_type,
|
||||||
ts=ts, metadata=metadata, msg=m)
|
ts=ts, metadata=metadata, msg=m)
|
||||||
|
|
||||||
# Event reminder ended
|
# Event reminder ended
|
||||||
elif delta.get("type") == "lightweight_event_notify":
|
elif delta.get("type") == "lightweight_event_notify":
|
||||||
thread_id, thread_type = getThreadIdAndThreadType(metadata)
|
thread_id, thread_type = getThreadIdAndThreadType(metadata)
|
||||||
event = graphql_to_event(delta["untypedData"])
|
event = graphql_to_event(delta["untypedData"])
|
||||||
self.onEventEnded(mid=mid, event=event, thread_id=thread_id, thread_type=thread_type,
|
self.onEventEnded(mid=mid, event=event, thread_id=thread_id, thread_type=thread_type,
|
||||||
ts=ts, metadata=metadata, msg=m)
|
ts=ts, metadata=metadata, msg=m)
|
||||||
|
|
||||||
# Event reminder edited
|
# Event reminder edited
|
||||||
elif delta.get("type") == "lightweight_event_update":
|
elif delta.get("type") == "lightweight_event_update":
|
||||||
thread_id, thread_type = getThreadIdAndThreadType(metadata)
|
thread_id, thread_type = getThreadIdAndThreadType(metadata)
|
||||||
@@ -2430,7 +2430,7 @@ class Client(object):
|
|||||||
event = graphql_to_event(delta["untypedData"])
|
event = graphql_to_event(delta["untypedData"])
|
||||||
self.onEventDeleted(mid=mid, event=event, author_id=author_id, thread_id=thread_id, thread_type=thread_type,
|
self.onEventDeleted(mid=mid, event=event, author_id=author_id, thread_id=thread_id, thread_type=thread_type,
|
||||||
ts=ts, metadata=metadata, msg=m)
|
ts=ts, metadata=metadata, msg=m)
|
||||||
|
|
||||||
# Event reminder participation change
|
# Event reminder participation change
|
||||||
elif delta.get("type") == "lightweight_event_rsvp":
|
elif delta.get("type") == "lightweight_event_rsvp":
|
||||||
thread_id, thread_type = getThreadIdAndThreadType(metadata)
|
thread_id, thread_type = getThreadIdAndThreadType(metadata)
|
||||||
@@ -2725,7 +2725,7 @@ class Client(object):
|
|||||||
def onImageChange(self, mid=None, author_id=None, new_image=None, thread_id=None, thread_type=ThreadType.USER, ts=None):
|
def onImageChange(self, mid=None, author_id=None, new_image=None, thread_id=None, thread_type=ThreadType.USER, ts=None):
|
||||||
"""
|
"""
|
||||||
Called when the client is listening, and somebody changes the image of a thread
|
Called when the client is listening, and somebody changes the image of a thread
|
||||||
|
|
||||||
:param mid: The action ID
|
:param mid: The action ID
|
||||||
:param new_image: The ID of the new image
|
:param new_image: The ID of the new image
|
||||||
:param author_id: The ID of the person who changed the image
|
:param author_id: The ID of the person who changed the image
|
||||||
@@ -2902,11 +2902,11 @@ class Client(object):
|
|||||||
:type thread_type: models.ThreadType
|
:type thread_type: models.ThreadType
|
||||||
"""
|
"""
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def onGamePlayed(self, mid=None, author_id=None, game_id=None, game_name=None, score=None, leaderboard=None, thread_id=None, thread_type=None, ts=None, metadata=None, msg=None):
|
def onGamePlayed(self, mid=None, author_id=None, game_id=None, game_name=None, score=None, leaderboard=None, thread_id=None, thread_type=None, ts=None, metadata=None, msg=None):
|
||||||
"""
|
"""
|
||||||
Called when the client is listening, and somebody plays a game
|
Called when the client is listening, and somebody plays a game
|
||||||
|
|
||||||
:param mid: The action ID
|
:param mid: The action ID
|
||||||
:param author_id: The ID of the person who played the game
|
:param author_id: The ID of the person who played the game
|
||||||
:param game_id: The ID of the game
|
:param game_id: The ID of the game
|
||||||
@@ -2963,7 +2963,7 @@ class Client(object):
|
|||||||
Make this work with private calls
|
Make this work with private calls
|
||||||
|
|
||||||
Called when the client is listening, and somebody starts a call in a group
|
Called when the client is listening, and somebody starts a call in a group
|
||||||
|
|
||||||
:param mid: The action ID
|
:param mid: The action ID
|
||||||
:param caller_id: The ID of the person who started the call
|
:param caller_id: The ID of the person who started the call
|
||||||
:param is_video_call: True if it's video call
|
:param is_video_call: True if it's video call
|
||||||
@@ -2982,7 +2982,7 @@ class Client(object):
|
|||||||
Make this work with private calls
|
Make this work with private calls
|
||||||
|
|
||||||
Called when the client is listening, and somebody ends a call in a group
|
Called when the client is listening, and somebody ends a call in a group
|
||||||
|
|
||||||
:param mid: The action ID
|
:param mid: The action ID
|
||||||
:param caller_id: The ID of the person who ended the call
|
:param caller_id: The ID of the person who ended the call
|
||||||
:param is_video_call: True if it was video call
|
:param is_video_call: True if it was video call
|
||||||
@@ -2999,7 +2999,7 @@ class Client(object):
|
|||||||
def onUserJoinedCall(self, mid=None, joined_id=None, is_video_call=None, thread_id=None, thread_type=None, ts=None, metadata=None, msg=None):
|
def onUserJoinedCall(self, mid=None, joined_id=None, is_video_call=None, thread_id=None, thread_type=None, ts=None, metadata=None, msg=None):
|
||||||
"""
|
"""
|
||||||
Called when the client is listening, and somebody joins a group call
|
Called when the client is listening, and somebody joins a group call
|
||||||
|
|
||||||
:param mid: The action ID
|
:param mid: The action ID
|
||||||
:param joined_id: The ID of the person who joined the call
|
:param joined_id: The ID of the person who joined the call
|
||||||
:param is_video_call: True if it's video call
|
:param is_video_call: True if it's video call
|
||||||
@@ -3028,7 +3028,7 @@ class Client(object):
|
|||||||
:type thread_type: models.ThreadType
|
:type thread_type: models.ThreadType
|
||||||
"""
|
"""
|
||||||
log.info("{} created poll {} in {} ({})".format(author_id, poll, thread_id, thread_type.name))
|
log.info("{} created poll {} in {} ({})".format(author_id, poll, thread_id, thread_type.name))
|
||||||
|
|
||||||
def onPollVoted(self, mid=None, poll=None, author_id=None, thread_id=None, thread_type=None, ts=None, metadata=None, msg=None):
|
def onPollVoted(self, mid=None, poll=None, author_id=None, thread_id=None, thread_type=None, ts=None, metadata=None, msg=None):
|
||||||
"""
|
"""
|
||||||
Called when the client is listening, and somebody votes in a group poll
|
Called when the client is listening, and somebody votes in a group poll
|
||||||
@@ -3045,7 +3045,7 @@ class Client(object):
|
|||||||
:type thread_type: models.ThreadType
|
:type thread_type: models.ThreadType
|
||||||
"""
|
"""
|
||||||
log.info("{} voted in poll {} in {} ({})".format(author_id, poll, thread_id, thread_type.name))
|
log.info("{} voted in poll {} in {} ({})".format(author_id, poll, thread_id, thread_type.name))
|
||||||
|
|
||||||
def onEventCreated(self, mid=None, event=None, author_id=None, thread_id=None, thread_type=None, ts=None, metadata=None, msg=None):
|
def onEventCreated(self, mid=None, event=None, author_id=None, thread_id=None, thread_type=None, ts=None, metadata=None, msg=None):
|
||||||
"""
|
"""
|
||||||
Called when the client is listening, and somebody creates an event reminder
|
Called when the client is listening, and somebody creates an event reminder
|
||||||
@@ -3062,7 +3062,7 @@ class Client(object):
|
|||||||
:type thread_type: models.ThreadType
|
:type thread_type: models.ThreadType
|
||||||
"""
|
"""
|
||||||
log.info("{} created event reminder {} in {} ({})".format(author_id, event, thread_id, thread_type.name))
|
log.info("{} created event reminder {} in {} ({})".format(author_id, event, thread_id, thread_type.name))
|
||||||
|
|
||||||
def onEventEnded(self, mid=None, event=None, thread_id=None, thread_type=None, ts=None, metadata=None, msg=None):
|
def onEventEnded(self, mid=None, event=None, thread_id=None, thread_type=None, ts=None, metadata=None, msg=None):
|
||||||
"""
|
"""
|
||||||
Called when the client is listening, and an event reminder ends
|
Called when the client is listening, and an event reminder ends
|
||||||
@@ -3078,7 +3078,7 @@ class Client(object):
|
|||||||
:type thread_type: models.ThreadType
|
:type thread_type: models.ThreadType
|
||||||
"""
|
"""
|
||||||
log.info("Event reminder {} has ended in {} ({})".format(event, thread_id, thread_type.name))
|
log.info("Event reminder {} has ended in {} ({})".format(event, thread_id, thread_type.name))
|
||||||
|
|
||||||
def onEventEdited(self, mid=None, event=None, author_id=None, thread_id=None, thread_type=None, ts=None, metadata=None, msg=None):
|
def onEventEdited(self, mid=None, event=None, author_id=None, thread_id=None, thread_type=None, ts=None, metadata=None, msg=None):
|
||||||
"""
|
"""
|
||||||
Called when the client is listening, and somebody edits an event reminder
|
Called when the client is listening, and somebody edits an event reminder
|
||||||
@@ -3095,7 +3095,7 @@ class Client(object):
|
|||||||
:type thread_type: models.ThreadType
|
:type thread_type: models.ThreadType
|
||||||
"""
|
"""
|
||||||
log.info("{} edited event reminder {} in {} ({})".format(author_id, event, thread_id, thread_type.name))
|
log.info("{} edited event reminder {} in {} ({})".format(author_id, event, thread_id, thread_type.name))
|
||||||
|
|
||||||
def onEventDeleted(self, mid=None, event=None, author_id=None, thread_id=None, thread_type=None, ts=None, metadata=None, msg=None):
|
def onEventDeleted(self, mid=None, event=None, author_id=None, thread_id=None, thread_type=None, ts=None, metadata=None, msg=None):
|
||||||
"""
|
"""
|
||||||
Called when the client is listening, and somebody deletes an event reminder
|
Called when the client is listening, and somebody deletes an event reminder
|
||||||
@@ -3112,7 +3112,7 @@ class Client(object):
|
|||||||
:type thread_type: models.ThreadType
|
:type thread_type: models.ThreadType
|
||||||
"""
|
"""
|
||||||
log.info("{} deleted event reminder {} in {} ({})".format(author_id, event, thread_id, thread_type.name))
|
log.info("{} deleted event reminder {} in {} ({})".format(author_id, event, thread_id, thread_type.name))
|
||||||
|
|
||||||
def onEventParticipationChange(self, mid=None, event=None, take_part=None, author_id=None, thread_id=None, thread_type=None, ts=None, metadata=None, msg=None):
|
def onEventParticipationChange(self, mid=None, event=None, take_part=None, author_id=None, thread_id=None, thread_type=None, ts=None, metadata=None, msg=None):
|
||||||
"""
|
"""
|
||||||
Called when the client is listening, and somebody takes part in an event or not
|
Called when the client is listening, and somebody takes part in an event or not
|
||||||
@@ -3133,7 +3133,7 @@ class Client(object):
|
|||||||
log.info("{} will take part in {} in {} ({})".format(author_id, event, thread_id, thread_type.name))
|
log.info("{} will take part in {} in {} ({})".format(author_id, event, thread_id, thread_type.name))
|
||||||
else:
|
else:
|
||||||
log.info("{} won't take part in {} in {} ({})".format(author_id, event, thread_id, thread_type.name))
|
log.info("{} won't take part in {} in {} ({})".format(author_id, event, thread_id, thread_type.name))
|
||||||
|
|
||||||
"""
|
"""
|
||||||
END EVENTS
|
END EVENTS
|
||||||
"""
|
"""
|
||||||
|
@@ -128,7 +128,7 @@ def graphql_to_attachment(a):
|
|||||||
return Attachment(
|
return Attachment(
|
||||||
uid=a.get('legacy_attachment_id')
|
uid=a.get('legacy_attachment_id')
|
||||||
)
|
)
|
||||||
|
|
||||||
def graphql_to_poll(a):
|
def graphql_to_poll(a):
|
||||||
rtn = Poll(
|
rtn = Poll(
|
||||||
title=a.get('title') if a.get('title') else a.get("text"),
|
title=a.get('title') if a.get('title') else a.get("text"),
|
||||||
|
@@ -453,7 +453,7 @@ class Poll(object):
|
|||||||
"""Represents a poll"""
|
"""Represents a poll"""
|
||||||
self.title = title
|
self.title = title
|
||||||
self.options = options
|
self.options = options
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return self.__unicode__()
|
return self.__unicode__()
|
||||||
|
|
||||||
@@ -476,7 +476,7 @@ class PollOption(object):
|
|||||||
"""Represents a poll option"""
|
"""Represents a poll option"""
|
||||||
self.text = text
|
self.text = text
|
||||||
self.vote = vote
|
self.vote = vote
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return self.__unicode__()
|
return self.__unicode__()
|
||||||
|
|
||||||
@@ -513,7 +513,7 @@ class Event(object):
|
|||||||
self.going = []
|
self.going = []
|
||||||
self.declined = []
|
self.declined = []
|
||||||
self.invited = []
|
self.invited = []
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return self.__unicode__()
|
return self.__unicode__()
|
||||||
|
|
||||||
|
@@ -146,7 +146,7 @@ class ReqUrl(object):
|
|||||||
GET_POLL_OPTIONS = "https://www.facebook.com/ajax/mercury/get_poll_options"
|
GET_POLL_OPTIONS = "https://www.facebook.com/ajax/mercury/get_poll_options"
|
||||||
SEARCH_MESSAGES = "https://www.facebook.com/ajax/mercury/search_snippets.php?dpr=1"
|
SEARCH_MESSAGES = "https://www.facebook.com/ajax/mercury/search_snippets.php?dpr=1"
|
||||||
MARK_SPAM = "https://www.facebook.com/ajax/mercury/mark_spam.php?dpr=1"
|
MARK_SPAM = "https://www.facebook.com/ajax/mercury/mark_spam.php?dpr=1"
|
||||||
|
|
||||||
pull_channel = 0
|
pull_channel = 0
|
||||||
|
|
||||||
def change_pull_channel(self, channel=None):
|
def change_pull_channel(self, channel=None):
|
||||||
|
Reference in New Issue
Block a user