Skip to content

Commit 782464f

Browse files
Refactor datetime_to_timestamp to handle timedelta
1 parent f94e7f2 commit 782464f

1 file changed

Lines changed: 12 additions & 10 deletions

File tree

pyrogram/utils.py

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,24 +16,23 @@
1616
# You should have received a copy of the GNU Lesser General Public License
1717
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
1818

19-
from concurrent.futures.thread import ThreadPoolExecutor
20-
from datetime import datetime, timezone
21-
from getpass import getpass
22-
from io import BytesIO
23-
from typing import Union, List, Dict, Optional
2419
import asyncio
2520
import base64
2621
import functools
2722
import hashlib
2823
import os
2924
import re
3025
import struct
26+
from concurrent.futures.thread import ThreadPoolExecutor
27+
from datetime import datetime, timedelta, timezone
28+
from getpass import getpass
29+
from io import BytesIO
30+
from typing import Dict, List, Optional, Union
3131

3232
import pyrogram
33-
from pyrogram import raw, enums
34-
from pyrogram import types
33+
from pyrogram import enums, raw, types
34+
from pyrogram.file_id import DOCUMENT_TYPES, PHOTO_TYPES, FileId, FileType
3535
from pyrogram.types.messages_and_media.message import Str
36-
from pyrogram.file_id import FileId, FileType, PHOTO_TYPES, DOCUMENT_TYPES
3736

3837

3938
async def ainput(prompt: str = "", *, hide: bool = False, loop: Optional[asyncio.AbstractEventLoop] = None):
@@ -531,8 +530,11 @@ def timestamp_to_datetime(ts: Optional[int]) -> Optional[datetime]:
531530
return datetime.fromtimestamp(ts) if ts else None
532531

533532

534-
def datetime_to_timestamp(dt: Optional[datetime]) -> Optional[int]:
535-
return int(dt.timestamp()) if dt else None
533+
def datetime_to_timestamp(dt: Optional[Union[datetime, timedelta]]) -> Optional[int]:
534+
if isinstance(dt, timedelta):
535+
return int((datetime.now() + dt).timestamp())
536+
elif isinstance(dt, datetime):
537+
return int(dt.timestamp())
536538

537539

538540
def get_first_url(text):

0 commit comments

Comments
 (0)