Subclass TLRequest for content-related objects

This commit is contained in:
Lonami Exo
2018-06-12 20:05:05 +02:00
parent d1afc70963
commit 3f16c92eb3
7 changed files with 71 additions and 81 deletions

View File

@@ -3,17 +3,17 @@ import itertools
from .telegrambaseclient import TelegramBaseClient
from .. import errors, utils
from ..tl import TLObject, types, functions
from ..tl import TLObject, TLRequest, types, functions
_NOT_A_REQUEST = TypeError('You can only invoke requests, not types!')
class UserMethods(TelegramBaseClient):
async def __call__(self, request, retries=5, ordered=False):
requests = (request,) if not utils.is_list_like(request) else request
if not all(isinstance(x, TLObject) and
x.content_related for x in requests):
raise TypeError('You can only invoke requests, not types!')
for r in requests:
for r in (request if utils.is_list_like(request) else (request,)):
if not isinstance(r, TLRequest):
raise _NOT_A_REQUEST
await r.resolve(self, utils)
for _ in range(retries):