Fix date usage in messagebox impl

This commit is contained in:
Lonami Exo 2022-01-28 20:20:37 +01:00
parent 0802f7e6b2
commit 05457eaf1c

View File

@ -17,6 +17,8 @@ While there are entries for which their difference must be fetched,
to get the difference. to get the difference.
""" """
import asyncio import asyncio
import datetime
import time
from dataclasses import dataclass, field from dataclasses import dataclass, field
from .._sessions.types import SessionState, ChannelState from .._sessions.types import SessionState, ChannelState
from .. import _tl from .. import _tl
@ -117,7 +119,7 @@ class MessageBox:
map: dict = field(default_factory=dict) # entry -> state map: dict = field(default_factory=dict) # entry -> state
# Additional fields beyond PTS needed by `ENTRY_ACCOUNT`. # 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 seq: int = NO_SEQ
# Holds the entry with the closest deadline (optimization to avoid recalculating the minimum deadline). # 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[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.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.seq = session_state.seq
self.next_deadline = ENTRY_ACCOUNT self.next_deadline = ENTRY_ACCOUNT
@ -167,7 +169,7 @@ class MessageBox:
return dict( return dict(
pts=self.map[ENTRY_ACCOUNT].pts if ENTRY_ACCOUNT in self.map else NO_SEQ, 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, 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, seq=self.seq,
), {id: state.pts for id, state in self.map.items() if isinstance(id, int)} ), {id: state.pts for id, state in self.map.items() if isinstance(id, int)}