From 71f19dd3c75c604af10068044ecb5f792f652d1c Mon Sep 17 00:00:00 2001 From: Mads Marquart Date: Sun, 10 Mar 2019 20:22:56 +0100 Subject: [PATCH] Move fetchAllUsers parsing into User._from_all_fetch --- fbchat/_client.py | 22 +++++----------------- fbchat/_user.py | 12 ++++++++++++ 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/fbchat/_client.py b/fbchat/_client.py index 60a6754..cbd0783 100644 --- a/fbchat/_client.py +++ b/fbchat/_client.py @@ -694,24 +694,12 @@ class Client(object): raise FBchatException("Missing payload while fetching users: {}".format(j)) users = [] - - for key in j["payload"]: - k = j["payload"][key] - if k["type"] in ["user", "friend"]: - if k["id"] in ["0", 0]: + for data in j["payload"].values(): + if data["type"] in ["user", "friend"]: + if data["id"] in ["0", 0]: # Skip invalid users - pass - users.append( - User( - k["id"], - first_name=k.get("firstName"), - url=k.get("uri"), - photo=k.get("thumbSrc"), - name=k.get("name"), - is_friend=k.get("is_friend"), - gender=GENDERS.get(k.get("gender")), - ) - ) + continue + users.append(User._from_all_fetch(data)) return users diff --git a/fbchat/_user.py b/fbchat/_user.py index 45fb021..17ba014 100644 --- a/fbchat/_user.py +++ b/fbchat/_user.py @@ -139,6 +139,18 @@ class User(Thread): plan=plan, ) + @classmethod + def _from_all_fetch(cls, data): + return cls( + data["id"], + first_name=data.get("firstName"), + url=data.get("uri"), + photo=data.get("thumbSrc"), + name=data.get("name"), + is_friend=data.get("is_friend"), + gender=_util.GENDERS.get(data.get("gender")), + ) + @attr.s(cmp=False) class ActiveStatus(object):