mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2024-11-23 09:53:45 +03:00
f7e8907c6f
This results in a cleaner MTProtoSender, which now can always read a TLObject with a guaranteed item, if the message is OK.
24 lines
727 B
Python
24 lines
727 B
Python
from .gzippacked import GzipPacked
|
|
from ..types import RpcError
|
|
|
|
|
|
class RpcResult:
|
|
CONSTRUCTOR_ID = 0xf35c6d01
|
|
|
|
def __init__(self, req_msg_id, body, error):
|
|
self.req_msg_id = req_msg_id
|
|
self.body = body
|
|
self.error = error
|
|
|
|
@classmethod
|
|
def from_reader(cls, reader):
|
|
msg_id = reader.read_long()
|
|
inner_code = reader.read_int(signed=False)
|
|
if inner_code == RpcError.CONSTRUCTOR_ID:
|
|
return RpcResult(msg_id, None, RpcError.from_reader(reader))
|
|
if inner_code == GzipPacked.CONSTRUCTOR_ID:
|
|
return RpcResult(msg_id, GzipPacked.from_reader(reader).data, None)
|
|
|
|
reader.seek(-4)
|
|
return RpcResult(msg_id, reader.read(), None)
|