From 4b34a063e8e79d2e593dc6bda9ff35d5913ba8be Mon Sep 17 00:00:00 2001 From: Mads Marquart Date: Tue, 3 Sep 2019 12:39:03 +0200 Subject: [PATCH] Rename Thread.last_message_timestamp to .last_active, and use datetimes --- fbchat/_client.py | 9 +++------ fbchat/_group.py | 12 ++++++------ fbchat/_thread.py | 8 ++++---- fbchat/_user.py | 12 ++++++------ 4 files changed, 19 insertions(+), 22 deletions(-) diff --git a/fbchat/_client.py b/fbchat/_client.py index 421c3b6..0465ba5 100644 --- a/fbchat/_client.py +++ b/fbchat/_client.py @@ -319,9 +319,7 @@ class Client: else: # End of threads break - last_thread_dt = _util.millis_to_datetime( - threads[-1].last_message_timestamp - ) + last_thread_dt = threads[-1].last_active # FB returns a sorted list of threads if (before is not None and last_thread_dt > before) or ( @@ -332,9 +330,8 @@ class Client: # Return only threads between before and after (if set) if before is not None or after is not None: for t in threads: - last_message_dt = _util.millis_to_datetime(t.last_message_timestamp) - if (before is not None and last_message_dt > before) or ( - after is not None and last_message_dt < after + if (before is not None and t.last_active > before) or ( + after is not None and t.last_active < after ): threads.remove(t) diff --git a/fbchat/_group.py b/fbchat/_group.py index e4af880..c0eeddd 100644 --- a/fbchat/_group.py +++ b/fbchat/_group.py @@ -1,5 +1,5 @@ import attr -from . import _plan +from . import _util, _plan from ._thread import ThreadType, Thread @@ -63,11 +63,11 @@ class Group(Thread): if data.get("image") is None: data["image"] = {} c_info = cls._parse_customization_info(data) - last_message_timestamp = None + last_active = None if "last_message" in data: - last_message_timestamp = data["last_message"]["nodes"][0][ - "timestamp_precise" - ] + last_active = _util.millis_to_datetime( + int(data["last_message"]["nodes"][0]["timestamp_precise"]) + ) plan = None if data.get("event_reminders") and data["event_reminders"].get("nodes"): plan = _plan.Plan._from_graphql(data["event_reminders"]["nodes"][0]) @@ -97,7 +97,7 @@ class Group(Thread): photo=data["image"].get("uri"), name=data.get("name"), message_count=data.get("messages_count"), - last_message_timestamp=last_message_timestamp, + last_active=last_active, plan=plan, ) diff --git a/fbchat/_thread.py b/fbchat/_thread.py index e39b4b4..6cc444c 100644 --- a/fbchat/_thread.py +++ b/fbchat/_thread.py @@ -81,8 +81,8 @@ class Thread: photo = attr.ib(None) #: The name of the thread name = attr.ib(None) - #: Timestamp of last message - last_message_timestamp = attr.ib(None) + #: Datetime when the thread was last active / when the last message was sent + last_active = attr.ib(None) #: Number of messages in the thread message_count = attr.ib(None) #: Set :class:`Plan` @@ -94,7 +94,7 @@ class Thread: uid, photo=None, name=None, - last_message_timestamp=None, + last_active=None, message_count=None, plan=None, ): @@ -102,7 +102,7 @@ class Thread: self.type = _type self.photo = photo self.name = name - self.last_message_timestamp = last_message_timestamp + self.last_active = last_active self.message_count = message_count self.plan = plan diff --git a/fbchat/_user.py b/fbchat/_user.py index b864b13..d0dd42d 100644 --- a/fbchat/_user.py +++ b/fbchat/_user.py @@ -1,6 +1,6 @@ import attr from ._core import Enum -from . import _plan +from . import _util, _plan from ._thread import ThreadType, Thread @@ -131,11 +131,11 @@ class User(Thread): user = next( p for p in participants if p["id"] == data["thread_key"]["other_user_id"] ) - last_message_timestamp = None + last_active = None if "last_message" in data: - last_message_timestamp = data["last_message"]["nodes"][0][ - "timestamp_precise" - ] + last_active = _util.millis_to_datetime( + int(data["last_message"]["nodes"][0]["timestamp_precise"]) + ) first_name = user.get("short_name") if first_name is None: @@ -162,7 +162,7 @@ class User(Thread): own_nickname=c_info.get("own_nickname"), photo=user["big_image_src"].get("uri"), message_count=data.get("messages_count"), - last_message_timestamp=last_message_timestamp, + last_active=last_active, plan=plan, )