This commit is contained in:
Mads Marquart
2019-12-15 15:26:53 +01:00
parent 813219cd9c
commit a97ef67411
4 changed files with 21 additions and 19 deletions

View File

@@ -280,7 +280,7 @@ class Client(object):
def _forcedFetch(self, thread_id, mid): def _forcedFetch(self, thread_id, mid):
params = {"thread_and_message_id": {"thread_id": thread_id, "message_id": mid}} params = {"thread_and_message_id": {"thread_id": thread_id, "message_id": mid}}
j, = self.graphql_requests(_graphql.from_doc_id("1768656253222505", params)) (j,) = self.graphql_requests(_graphql.from_doc_id("1768656253222505", params))
return j return j
def fetchThreads(self, thread_location, before=None, after=None, limit=None): def fetchThreads(self, thread_location, before=None, after=None, limit=None):
@@ -404,7 +404,7 @@ class Client(object):
FBchatException: If request failed FBchatException: If request failed
""" """
params = {"search": name, "limit": limit} params = {"search": name, "limit": limit}
j, = self.graphql_requests(_graphql.from_query(_graphql.SEARCH_USER, params)) (j,) = self.graphql_requests(_graphql.from_query(_graphql.SEARCH_USER, params))
return [User._from_graphql(node) for node in j[name]["users"]["nodes"]] return [User._from_graphql(node) for node in j[name]["users"]["nodes"]]
@@ -421,7 +421,7 @@ class Client(object):
FBchatException: If request failed FBchatException: If request failed
""" """
params = {"search": name, "limit": limit} params = {"search": name, "limit": limit}
j, = self.graphql_requests(_graphql.from_query(_graphql.SEARCH_PAGE, params)) (j,) = self.graphql_requests(_graphql.from_query(_graphql.SEARCH_PAGE, params))
return [Page._from_graphql(node) for node in j[name]["pages"]["nodes"]] return [Page._from_graphql(node) for node in j[name]["pages"]["nodes"]]
@@ -439,7 +439,7 @@ class Client(object):
FBchatException: If request failed FBchatException: If request failed
""" """
params = {"search": name, "limit": limit} params = {"search": name, "limit": limit}
j, = self.graphql_requests(_graphql.from_query(_graphql.SEARCH_GROUP, params)) (j,) = self.graphql_requests(_graphql.from_query(_graphql.SEARCH_GROUP, params))
return [Group._from_graphql(node) for node in j["viewer"]["groups"]["nodes"]] return [Group._from_graphql(node) for node in j["viewer"]["groups"]["nodes"]]
@@ -457,7 +457,9 @@ class Client(object):
FBchatException: If request failed FBchatException: If request failed
""" """
params = {"search": name, "limit": limit} params = {"search": name, "limit": limit}
j, = self.graphql_requests(_graphql.from_query(_graphql.SEARCH_THREAD, params)) (j,) = self.graphql_requests(
_graphql.from_query(_graphql.SEARCH_THREAD, params)
)
rtn = [] rtn = []
for node in j[name]["threads"]["nodes"]: for node in j[name]["threads"]["nodes"]:
@@ -764,7 +766,7 @@ class Client(object):
"load_read_receipts": True, "load_read_receipts": True,
"before": before, "before": before,
} }
j, = self.graphql_requests(_graphql.from_doc_id("1860982147341344", params)) (j,) = self.graphql_requests(_graphql.from_doc_id("1860982147341344", params))
if j.get("message_thread") is None: if j.get("message_thread") is None:
raise FBchatException("Could not fetch thread {}: {}".format(thread_id, j)) raise FBchatException("Could not fetch thread {}: {}".format(thread_id, j))
@@ -823,7 +825,7 @@ class Client(object):
"includeDeliveryReceipts": True, "includeDeliveryReceipts": True,
"includeSeqID": False, "includeSeqID": False,
} }
j, = self.graphql_requests(_graphql.from_doc_id("1349387578499440", params)) (j,) = self.graphql_requests(_graphql.from_doc_id("1349387578499440", params))
rtn = [] rtn = []
for node in j["viewer"]["message_threads"]["nodes"]: for node in j["viewer"]["message_threads"]["nodes"]:
@@ -943,7 +945,7 @@ class Client(object):
return Plan._from_fetch(j) return Plan._from_fetch(j)
def _getPrivateData(self): def _getPrivateData(self):
j, = self.graphql_requests(_graphql.from_doc_id("1868889766468115", {})) (j,) = self.graphql_requests(_graphql.from_doc_id("1868889766468115", {}))
return j["viewer"] return j["viewer"]
def getPhoneNumbers(self): def getPhoneNumbers(self):
@@ -994,7 +996,7 @@ class Client(object):
thread_id, thread_type = self._getThread(thread_id, None) thread_id, thread_type = self._getThread(thread_id, None)
data = {"id": thread_id, "first": 48} data = {"id": thread_id, "first": 48}
thread_id = str(thread_id) thread_id = str(thread_id)
j, = self.graphql_requests(_graphql.from_query_id("515216185516880", data)) (j,) = self.graphql_requests(_graphql.from_query_id("515216185516880", data))
while True: while True:
try: try:
i = j[thread_id]["message_shared_media"]["edges"][0] i = j[thread_id]["message_shared_media"]["edges"][0]
@@ -1005,7 +1007,7 @@ class Client(object):
data["after"] = j[thread_id]["message_shared_media"][ data["after"] = j[thread_id]["message_shared_media"][
"page_info" "page_info"
].get("end_cursor") ].get("end_cursor")
j, = self.graphql_requests( (j,) = self.graphql_requests(
_graphql.from_query_id("515216185516880", data) _graphql.from_query_id("515216185516880", data)
) )
continue continue
@@ -1534,7 +1536,7 @@ class Client(object):
"response": "ACCEPT" if approve else "DENY", "response": "ACCEPT" if approve else "DENY",
"surface": "ADMIN_MODEL_APPROVAL_CENTER", "surface": "ADMIN_MODEL_APPROVAL_CENTER",
} }
j, = self.graphql_requests( (j,) = self.graphql_requests(
_graphql.from_doc_id("1574519202665847", {"data": data}) _graphql.from_doc_id("1574519202665847", {"data": data})
) )
@@ -1589,7 +1591,7 @@ class Client(object):
Raises: Raises:
FBchatException: If request failed FBchatException: If request failed
""" """
(image_id, mimetype), = self._upload(get_files_from_urls([image_url])) ((image_id, mimetype),) = self._upload(get_files_from_urls([image_url]))
return self._changeGroupImage(image_id, thread_id) return self._changeGroupImage(image_id, thread_id)
def changeGroupImageLocal(self, image_path, thread_id=None): def changeGroupImageLocal(self, image_path, thread_id=None):
@@ -1603,7 +1605,7 @@ class Client(object):
FBchatException: If request failed FBchatException: If request failed
""" """
with get_files_from_paths([image_path]) as files: with get_files_from_paths([image_path]) as files:
(image_id, mimetype), = self._upload(files) ((image_id, mimetype),) = self._upload(files)
return self._changeGroupImage(image_id, thread_id) return self._changeGroupImage(image_id, thread_id)

View File

@@ -27,7 +27,7 @@ def test_fetch_threads(client1):
@pytest.mark.parametrize("emoji, emoji_size", EMOJI_LIST) @pytest.mark.parametrize("emoji, emoji_size", EMOJI_LIST)
def test_fetch_message_emoji(client, emoji, emoji_size): def test_fetch_message_emoji(client, emoji, emoji_size):
mid = client.sendEmoji(emoji, emoji_size) mid = client.sendEmoji(emoji, emoji_size)
message, = client.fetchThreadMessages(limit=1) (message,) = client.fetchThreadMessages(limit=1)
assert subset( assert subset(
vars(message), uid=mid, author=client.uid, text=emoji, emoji_size=emoji_size vars(message), uid=mid, author=client.uid, text=emoji, emoji_size=emoji_size
@@ -46,7 +46,7 @@ def test_fetch_message_info_emoji(client, thread, emoji, emoji_size):
def test_fetch_message_mentions(client, thread, message_with_mentions): def test_fetch_message_mentions(client, thread, message_with_mentions):
mid = client.send(message_with_mentions) mid = client.send(message_with_mentions)
message, = client.fetchThreadMessages(limit=1) (message,) = client.fetchThreadMessages(limit=1)
assert subset( assert subset(
vars(message), uid=mid, author=client.uid, text=message_with_mentions.text vars(message), uid=mid, author=client.uid, text=message_with_mentions.text
@@ -71,7 +71,7 @@ def test_fetch_message_info_mentions(client, thread, message_with_mentions):
@pytest.mark.parametrize("sticker", STICKER_LIST) @pytest.mark.parametrize("sticker", STICKER_LIST)
def test_fetch_message_sticker(client, sticker): def test_fetch_message_sticker(client, sticker):
mid = client.send(Message(sticker=sticker)) mid = client.send(Message(sticker=sticker))
message, = client.fetchThreadMessages(limit=1) (message,) = client.fetchThreadMessages(limit=1)
assert subset(vars(message), uid=mid, author=client.uid) assert subset(vars(message), uid=mid, author=client.uid)
assert subset(vars(message.sticker), uid=sticker.uid) assert subset(vars(message.sticker), uid=sticker.uid)
@@ -96,6 +96,6 @@ def test_fetch_info(client1, group):
def test_fetch_image_url(client): def test_fetch_image_url(client):
client.sendLocalFiles([path.join(path.dirname(__file__), "resources", "image.png")]) client.sendLocalFiles([path.join(path.dirname(__file__), "resources", "image.png")])
message, = client.fetchThreadMessages(limit=1) (message,) = client.fetchThreadMessages(limit=1)
assert client.fetchImageUrl(message.attachments[0].uid) assert client.fetchImageUrl(message.attachments[0].uid)

View File

@@ -19,5 +19,5 @@ def test_delete_messages(client):
mid1 = client.sendMessage(text1) mid1 = client.sendMessage(text1)
mid2 = client.sendMessage(text2) mid2 = client.sendMessage(text2)
client.deleteMessages(mid2) client.deleteMessages(mid2)
message, = client.fetchThreadMessages(limit=1) (message,) = client.fetchThreadMessages(limit=1)
assert subset(vars(message), uid=mid1, author=client.uid, text=text1) assert subset(vars(message), uid=mid1, author=client.uid, text=text1)

View File

@@ -63,7 +63,7 @@ def test_create_poll(client1, group, catch_event, poll_data):
for recv_option in event[ for recv_option in event[
"poll" "poll"
].options: # The recieved options may not be the full list ].options: # The recieved options may not be the full list
old_option, = list(filter(lambda o: o.text == recv_option.text, poll.options)) (old_option,) = list(filter(lambda o: o.text == recv_option.text, poll.options))
voters = [client1.uid] if old_option.vote else [] voters = [client1.uid] if old_option.vote else []
assert subset( assert subset(
vars(recv_option), voters=voters, votes_count=len(voters), vote=False vars(recv_option), voters=voters, votes_count=len(voters), vote=False