Rename Thread.last_message_timestamp to .last_active, and use datetimes

This commit is contained in:
Mads Marquart
2019-09-03 12:39:03 +02:00
parent ba088d45a7
commit 4b34a063e8
4 changed files with 19 additions and 22 deletions

View File

@@ -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)

View File

@@ -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,
)

View File

@@ -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

View File

@@ -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,
)