From 6f5556373ff48dbd6f1fb562c7341bd0eaba2a84 Mon Sep 17 00:00:00 2001 From: Nick80835 <24271245+Nick80835@users.noreply.github.com> Date: Fri, 7 Mar 2025 11:47:23 -0500 Subject: [PATCH] Call getDifference on login to ensure qts is up to date --- telethon/client/auth.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/telethon/client/auth.py b/telethon/client/auth.py index 425789a9..4ac1c805 100644 --- a/telethon/client/auth.py +++ b/telethon/client/auth.py @@ -392,6 +392,16 @@ class AuthMethods: self._authorized = True state = await self(functions.updates.GetStateRequest()) + # the server may send an old qts in getState + difference = await self(functions.updates.GetDifferenceRequest(pts=state.pts, date=state.date, qts=state.qts)) + + if isinstance(difference, types.updates.Difference): + state = difference.state + elif isinstance(difference, types.updates.DifferenceSlice): + state = difference.intermediate_state + elif isinstance(difference, types.updates.DifferenceTooLong): + state.pts = difference.pts + self._message_box.load(SessionState(0, 0, 0, state.pts, state.qts, int(state.date.timestamp()), state.seq, 0), []) return user