mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2024-11-22 09:26:37 +03:00
parent
7f472ee72c
commit
908375ac42
|
@ -22,6 +22,7 @@ import time
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
from .session import SessionState, ChannelState
|
from .session import SessionState, ChannelState
|
||||||
from ..tl import types as tl, functions as fn
|
from ..tl import types as tl, functions as fn
|
||||||
|
from ..helpers import get_running_loop
|
||||||
|
|
||||||
|
|
||||||
# Telegram sends `seq` equal to `0` when "it doesn't matter", so we use that value too.
|
# Telegram sends `seq` equal to `0` when "it doesn't matter", so we use that value too.
|
||||||
|
@ -53,7 +54,7 @@ ENTRY_SECRET = object()
|
||||||
_sentinel = object()
|
_sentinel = object()
|
||||||
|
|
||||||
def next_updates_deadline():
|
def next_updates_deadline():
|
||||||
return asyncio.get_running_loop().time() + NO_UPDATES_TIMEOUT
|
return get_running_loop().time() + NO_UPDATES_TIMEOUT
|
||||||
|
|
||||||
|
|
||||||
class GapError(ValueError):
|
class GapError(ValueError):
|
||||||
|
@ -237,7 +238,7 @@ class MessageBox:
|
||||||
If a deadline expired, the corresponding entries will be marked as needing to get its difference.
|
If a deadline expired, the corresponding entries will be marked as needing to get its difference.
|
||||||
While there are entries pending of getting their difference, this method returns the current instant.
|
While there are entries pending of getting their difference, this method returns the current instant.
|
||||||
"""
|
"""
|
||||||
now = asyncio.get_running_loop().time()
|
now = get_running_loop().time()
|
||||||
|
|
||||||
if self.getting_diff_for:
|
if self.getting_diff_for:
|
||||||
return now
|
return now
|
||||||
|
@ -283,7 +284,7 @@ class MessageBox:
|
||||||
|
|
||||||
# Convenience to reset a channel's deadline, with optional timeout.
|
# Convenience to reset a channel's deadline, with optional timeout.
|
||||||
def reset_channel_deadline(self, channel_id, timeout):
|
def reset_channel_deadline(self, channel_id, timeout):
|
||||||
self.reset_deadline(channel_id, asyncio.get_running_loop().time() + (timeout or NO_UPDATES_TIMEOUT))
|
self.reset_deadline(channel_id, get_running_loop().time() + (timeout or NO_UPDATES_TIMEOUT))
|
||||||
|
|
||||||
# Reset all the deadlines in `reset_deadlines_for` and then empty the set.
|
# Reset all the deadlines in `reset_deadlines_for` and then empty the set.
|
||||||
def apply_deadlines_reset(self):
|
def apply_deadlines_reset(self):
|
||||||
|
@ -496,7 +497,7 @@ class MessageBox:
|
||||||
# TODO store chats too?
|
# TODO store chats too?
|
||||||
if pts.entry not in self.possible_gaps:
|
if pts.entry not in self.possible_gaps:
|
||||||
self.possible_gaps[pts.entry] = PossibleGap(
|
self.possible_gaps[pts.entry] = PossibleGap(
|
||||||
deadline=asyncio.get_running_loop().time() + POSSIBLE_GAP_TIMEOUT,
|
deadline=get_running_loop().time() + POSSIBLE_GAP_TIMEOUT,
|
||||||
updates=[]
|
updates=[]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,8 @@ from .. import events, utils, errors
|
||||||
from ..events.common import EventBuilder, EventCommon
|
from ..events.common import EventBuilder, EventCommon
|
||||||
from ..tl import types, functions
|
from ..tl import types, functions
|
||||||
from .._updates import GapError, PrematureEndReason
|
from .._updates import GapError, PrematureEndReason
|
||||||
|
from ..helpers import get_running_loop
|
||||||
|
|
||||||
|
|
||||||
if typing.TYPE_CHECKING:
|
if typing.TYPE_CHECKING:
|
||||||
from .telegramclient import TelegramClient
|
from .telegramclient import TelegramClient
|
||||||
|
@ -358,7 +360,7 @@ class UpdateMethods:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
deadline = self._message_box.check_deadlines()
|
deadline = self._message_box.check_deadlines()
|
||||||
deadline_delay = deadline - asyncio.get_running_loop().time()
|
deadline_delay = deadline - get_running_loop().time()
|
||||||
if deadline_delay > 0:
|
if deadline_delay > 0:
|
||||||
# Don't bother sleeping and timing out if the delay is already 0 (pollutes the logs).
|
# Don't bother sleeping and timing out if the delay is already 0 (pollutes the logs).
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -7,6 +7,7 @@ import struct
|
||||||
import inspect
|
import inspect
|
||||||
import logging
|
import logging
|
||||||
import functools
|
import functools
|
||||||
|
import sys
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from hashlib import sha1
|
from hashlib import sha1
|
||||||
|
|
||||||
|
@ -423,3 +424,9 @@ class _FileStream(io.IOBase):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
# endregion
|
# endregion
|
||||||
|
|
||||||
|
def get_running_loop():
|
||||||
|
if sys.version_info[:2] <= (3, 6):
|
||||||
|
return asyncio._get_running_loop()
|
||||||
|
|
||||||
|
return asyncio.get_running_loop()
|
||||||
|
|
Loading…
Reference in New Issue
Block a user