Periodically send ping/getState

This commit is contained in:
Lonami Exo
2018-06-18 13:22:25 +02:00
parent 94d6c339c4
commit 374f5e2aab
4 changed files with 42 additions and 1 deletions

View File

@@ -2,6 +2,7 @@ import abc
import asyncio
import logging
import platform
import time
import warnings
from datetime import timedelta, datetime
@@ -192,6 +193,8 @@ class TelegramBaseClient(abc.ABC):
self._last_state = datetime.now()
self._state_delay = timedelta(hours=1)
self._state = None
self._updates_handle = None
self._last_request = time.time()
# Some further state for subclasses
self._event_builders = []
@@ -241,6 +244,8 @@ class TelegramBaseClient(abc.ABC):
await self._sender.send(self._init_with(
functions.help.GetConfigRequest()))
self._updates_handle = self._loop.create_task(self._update_loop())
if not had_auth:
self.session.auth_key = self._sender.state.auth_key
self.session.save()
@@ -386,4 +391,8 @@ class TelegramBaseClient(abc.ABC):
def _handle_update(self, update):
raise NotImplementedError
@abc.abstractmethod
def _update_loop(self):
raise NotImplementedError
# endregion