Move graphql_to_user -> User._from_graphql

This commit is contained in:
Mads Marquart
2019-03-10 17:21:06 +01:00
parent ce469d5e5a
commit 3a5185fcc8
4 changed files with 31 additions and 31 deletions

View File

@@ -730,7 +730,7 @@ class Client(object):
GraphQL(query=GraphQL.SEARCH_USER, params={"search": name, "limit": limit}) GraphQL(query=GraphQL.SEARCH_USER, params={"search": name, "limit": limit})
) )
return [graphql_to_user(node) for node in j[name]["users"]["nodes"]] return [User._from_graphql(node) for node in j[name]["users"]["nodes"]]
def searchForPages(self, name, limit=10): def searchForPages(self, name, limit=10):
""" """
@@ -785,7 +785,7 @@ class Client(object):
rtn = [] rtn = []
for node in j[name]["threads"]["nodes"]: for node in j[name]["threads"]["nodes"]:
if node["__typename"] == "User": if node["__typename"] == "User":
rtn.append(graphql_to_user(node)) rtn.append(User._from_graphql(node))
elif node["__typename"] == "MessageThread": elif node["__typename"] == "MessageThread":
# MessageThread => Group thread # MessageThread => Group thread
rtn.append(graphql_to_group(node)) rtn.append(graphql_to_group(node))
@@ -1056,7 +1056,7 @@ class Client(object):
raise FBchatException("Could not fetch thread {}".format(_id)) raise FBchatException("Could not fetch thread {}".format(_id))
entry.update(pages_and_users[_id]) entry.update(pages_and_users[_id])
if entry["type"] == ThreadType.USER: if entry["type"] == ThreadType.USER:
rtn[_id] = graphql_to_user(entry) rtn[_id] = User._from_graphql(entry)
else: else:
rtn[_id] = graphql_to_page(entry) rtn[_id] = graphql_to_page(entry)
else: else:

View File

@@ -146,33 +146,6 @@ def graphql_to_message(message):
return rtn return rtn
def graphql_to_user(user):
if user.get("profile_picture") is None:
user["profile_picture"] = {}
c_info = User._parse_customization_info(user)
plan = None
if user.get("event_reminders") and user["event_reminders"].get("nodes"):
plan = Plan._from_graphql(user["event_reminders"]["nodes"][0])
return User(
user["id"],
url=user.get("url"),
first_name=user.get("first_name"),
last_name=user.get("last_name"),
is_friend=user.get("is_viewer_friend"),
gender=GENDERS.get(user.get("gender")),
affinity=user.get("affinity"),
nickname=c_info.get("nickname"),
color=c_info.get("color"),
emoji=c_info.get("emoji"),
own_nickname=c_info.get("own_nickname"),
photo=user["profile_picture"].get("uri"),
name=user.get("name"),
message_count=user.get("messages_count"),
plan=plan,
)
def graphql_to_thread(thread): def graphql_to_thread(thread):
if thread["thread_type"] == "GROUP": if thread["thread_type"] == "GROUP":
return graphql_to_group(thread) return graphql_to_group(thread)

View File

@@ -3,6 +3,7 @@ from __future__ import unicode_literals
import attr import attr
from ._core import Enum from ._core import Enum
from . import _util, _plan
from ._thread import ThreadType, Thread from ._thread import ThreadType, Thread
@@ -65,6 +66,33 @@ class User(Thread):
self.color = color self.color = color
self.emoji = emoji self.emoji = emoji
@classmethod
def _from_graphql(cls, data):
if data.get("profile_picture") is None:
data["profile_picture"] = {}
c_info = cls._parse_customization_info(data)
plan = None
if data.get("event_reminders") and data["event_reminders"].get("nodes"):
plan = _plan.Plan._from_graphql(data["event_reminders"]["nodes"][0])
return cls(
data["id"],
url=data.get("url"),
first_name=data.get("first_name"),
last_name=data.get("last_name"),
is_friend=data.get("is_viewer_friend"),
gender=_util.GENDERS.get(data.get("gender")),
affinity=data.get("affinity"),
nickname=c_info.get("nickname"),
color=c_info.get("color"),
emoji=c_info.get("emoji"),
own_nickname=c_info.get("own_nickname"),
photo=data["profile_picture"].get("uri"),
name=data.get("name"),
message_count=data.get("messages_count"),
plan=plan,
)
@attr.s(cmp=False) @attr.s(cmp=False)
class ActiveStatus(object): class ActiveStatus(object):

View File

@@ -13,7 +13,6 @@ from ._graphql import (
graphql_to_subattachment, graphql_to_subattachment,
graphql_to_quick_reply, graphql_to_quick_reply,
graphql_to_message, graphql_to_message,
graphql_to_user,
graphql_to_thread, graphql_to_thread,
graphql_to_group, graphql_to_group,
graphql_to_page, graphql_to_page,