deleted
attribute of Message
and batter handling of deleted (unsended) messages
This commit is contained in:
@@ -2393,6 +2393,7 @@ class Client(object):
|
|||||||
|
|
||||||
sticker = None
|
sticker = None
|
||||||
attachments = []
|
attachments = []
|
||||||
|
deleted = False
|
||||||
if delta.get('attachments'):
|
if delta.get('attachments'):
|
||||||
try:
|
try:
|
||||||
for a in delta['attachments']:
|
for a in delta['attachments']:
|
||||||
@@ -2400,7 +2401,7 @@ class Client(object):
|
|||||||
if mercury.get('blob_attachment'):
|
if mercury.get('blob_attachment'):
|
||||||
image_metadata = a.get('imageMetadata', {})
|
image_metadata = a.get('imageMetadata', {})
|
||||||
attach_type = mercury['blob_attachment']['__typename']
|
attach_type = mercury['blob_attachment']['__typename']
|
||||||
attachment = graphql_to_attachment(mercury.get('blob_attachment', {}))
|
attachment = graphql_to_attachment(mercury['blob_attachment'])
|
||||||
|
|
||||||
if attach_type in ['MessageFile', 'MessageVideo', 'MessageAudio']:
|
if attach_type in ['MessageFile', 'MessageVideo', 'MessageAudio']:
|
||||||
# TODO: Add more data here for audio files
|
# TODO: Add more data here for audio files
|
||||||
@@ -2408,11 +2409,13 @@ class Client(object):
|
|||||||
attachments.append(attachment)
|
attachments.append(attachment)
|
||||||
|
|
||||||
elif mercury.get('sticker_attachment'):
|
elif mercury.get('sticker_attachment'):
|
||||||
sticker = graphql_to_sticker(a['mercury']['sticker_attachment'])
|
sticker = graphql_to_sticker(mercury['sticker_attachment'])
|
||||||
|
|
||||||
elif mercury.get('extensible_attachment'):
|
elif mercury.get('extensible_attachment'):
|
||||||
attachment = graphql_to_extensible_attachment(mercury.get('extensible_attachment', {}))
|
attachment = graphql_to_extensible_attachment(mercury['extensible_attachment'])
|
||||||
if attachment:
|
if isinstance(attachment, DeletedMessage):
|
||||||
|
deleted = True
|
||||||
|
elif attachment:
|
||||||
attachments.append(attachment)
|
attachments.append(attachment)
|
||||||
|
|
||||||
except Exception:
|
except Exception:
|
||||||
@@ -2426,12 +2429,13 @@ class Client(object):
|
|||||||
mentions=mentions,
|
mentions=mentions,
|
||||||
emoji_size=emoji_size,
|
emoji_size=emoji_size,
|
||||||
sticker=sticker,
|
sticker=sticker,
|
||||||
attachments=attachments
|
attachments=attachments,
|
||||||
)
|
)
|
||||||
message.uid = mid
|
message.uid = mid
|
||||||
message.author = author_id
|
message.author = author_id
|
||||||
message.timestamp = ts
|
message.timestamp = ts
|
||||||
#message.reactions = {}
|
#message.reactions = {}
|
||||||
|
message.deleted = deleted
|
||||||
thread_id, thread_type = getThreadIdAndThreadType(metadata)
|
thread_id, thread_type = getThreadIdAndThreadType(metadata)
|
||||||
self.onMessage(mid=mid, author_id=author_id, message=delta.get('body', ''), message_object=message,
|
self.onMessage(mid=mid, author_id=author_id, message=delta.get('body', ''), message_object=message,
|
||||||
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)
|
||||||
|
@@ -288,7 +288,11 @@ def graphql_to_message(message):
|
|||||||
if message.get('blob_attachments') is not None:
|
if message.get('blob_attachments') is not None:
|
||||||
rtn.attachments = [graphql_to_attachment(attachment) for attachment in message['blob_attachments']]
|
rtn.attachments = [graphql_to_attachment(attachment) for attachment in message['blob_attachments']]
|
||||||
if message.get('extensible_attachment') is not None:
|
if message.get('extensible_attachment') is not None:
|
||||||
rtn.attachments.append(graphql_to_extensible_attachment(message['extensible_attachment']))
|
attachment = graphql_to_extensible_attachment(message['extensible_attachment'])
|
||||||
|
if isinstance(attachment, DeletedMessage):
|
||||||
|
rtn.deleted = True
|
||||||
|
elif attachment:
|
||||||
|
rtn.attachments.append(attachment)
|
||||||
return rtn
|
return rtn
|
||||||
|
|
||||||
def graphql_to_user(user):
|
def graphql_to_user(user):
|
||||||
|
@@ -188,6 +188,8 @@ class Message(object):
|
|||||||
sticker = None
|
sticker = None
|
||||||
#: A list of attachments
|
#: A list of attachments
|
||||||
attachments = None
|
attachments = None
|
||||||
|
#: Whether the message is deleted (unsended)
|
||||||
|
deleted = None
|
||||||
|
|
||||||
def __init__(self, text=None, mentions=None, emoji_size=None, sticker=None, attachments=None):
|
def __init__(self, text=None, mentions=None, emoji_size=None, sticker=None, attachments=None):
|
||||||
"""Represents a Facebook message"""
|
"""Represents a Facebook message"""
|
||||||
@@ -201,6 +203,7 @@ class Message(object):
|
|||||||
attachments = []
|
attachments = []
|
||||||
self.attachments = attachments
|
self.attachments = attachments
|
||||||
self.reactions = {}
|
self.reactions = {}
|
||||||
|
self.deleted = False
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return self.__unicode__()
|
return self.__unicode__()
|
||||||
|
Reference in New Issue
Block a user