From c1123e1eb30a9adaa3dbb20bc789c66135b1fc4a Mon Sep 17 00:00:00 2001 From: binares Date: Fri, 26 Jul 2019 02:08:06 +0300 Subject: [PATCH] Safe way of parsing timestamps. I left the `if value == 0: return None`, because I assume `0` denotes a "missing" timestamp? --- telethon/extensions/binaryreader.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/telethon/extensions/binaryreader.py b/telethon/extensions/binaryreader.py index dfa318f0..43f86dab 100644 --- a/telethon/extensions/binaryreader.py +++ b/telethon/extensions/binaryreader.py @@ -2,7 +2,7 @@ This module contains the BinaryReader utility class. """ import os -from datetime import datetime, timezone +from datetime import datetime, timezone, timedelta from io import BufferedReader, BytesIO from struct import unpack @@ -120,10 +120,10 @@ class BinaryReader: into a Python datetime object. """ value = self.read_int() - if value <= 0: + if value == 0: return None else: - return datetime.fromtimestamp(value, tz=timezone.utc) + return datetime.fromtimestamp(0, tz=timezone.utc) + timedelta(seconds=value) def tgread_object(self): """Reads a Telegram object."""