From 05457eaf1c48c7bdfce3a74f435e8b1d8407e8fd Mon Sep 17 00:00:00 2001 From: Lonami Exo Date: Fri, 28 Jan 2022 20:20:37 +0100 Subject: [PATCH] Fix date usage in messagebox impl --- telethon/_updates/messagebox.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/telethon/_updates/messagebox.py b/telethon/_updates/messagebox.py index 1562cd21..d2bdd174 100644 --- a/telethon/_updates/messagebox.py +++ b/telethon/_updates/messagebox.py @@ -17,6 +17,8 @@ While there are entries for which their difference must be fetched, to get the difference. """ import asyncio +import datetime +import time from dataclasses import dataclass, field from .._sessions.types import SessionState, ChannelState from .. import _tl @@ -117,7 +119,7 @@ class MessageBox: map: dict = field(default_factory=dict) # entry -> state # Additional fields beyond PTS needed by `ENTRY_ACCOUNT`. - date: int = 1 + date: datetime.datetime = datetime.datetime(*time.gmtime(0)[:6]).replace(tzinfo=datetime.timezone.utc) seq: int = NO_SEQ # Holds the entry with the closest deadline (optimization to avoid recalculating the minimum deadline). @@ -154,7 +156,7 @@ class MessageBox: self.map[ENTRY_SECRET] = State(pts=session_state.qts, deadline=deadline) self.map.update((s.channel_id, State(pts=s.pts, deadline=deadline)) for s in channel_states) - self.date = session_state.date + self.date = datetime.datetime.fromtimestamp(session_state.date).replace(tzinfo=datetime.timezone.utc) self.seq = session_state.seq self.next_deadline = ENTRY_ACCOUNT @@ -167,7 +169,7 @@ class MessageBox: return dict( pts=self.map[ENTRY_ACCOUNT].pts if ENTRY_ACCOUNT in self.map else NO_SEQ, qts=self.map[ENTRY_SECRET].pts if ENTRY_SECRET in self.map else NO_SEQ, - date=self.date, + date=int(self.date.timestamp()), seq=self.seq, ), {id: state.pts for id, state in self.map.items() if isinstance(id, int)}