From c271a0b64e2e212a9fdba58b5e8d5f44dce60aed Mon Sep 17 00:00:00 2001 From: mauricio garcia suarez Date: Wed, 13 Jul 2022 12:39:55 +0200 Subject: [PATCH] Solved some properties issues --- ee/connectors/msgcodec/codec.py | 31 +++++++++++++++++++++++++----- ee/connectors/msgcodec/messages.py | 8 ++++++++ 2 files changed, 34 insertions(+), 5 deletions(-) diff --git a/ee/connectors/msgcodec/codec.py b/ee/connectors/msgcodec/codec.py index da06b5262..e26653478 100644 --- a/ee/connectors/msgcodec/codec.py +++ b/ee/connectors/msgcodec/codec.py @@ -1,5 +1,5 @@ import io - +from typing import List from msgcodec.messages import * @@ -24,6 +24,8 @@ class Codec: i = 0 # n of byte (max 9 for uint64) while True: b = reader.read(1) + if len(b) == 0: + raise IndexError('bytes out of range') num = int.from_bytes(b, "big", signed=False) # print(i, x) @@ -72,8 +74,20 @@ class MessageCodec(Codec): def decode(self, b: bytes) -> Message: reader = io.BytesIO(b) - message_id = self.read_message_id(reader) + return self.read_head_message(reader) + def decode_detailed(self, b: bytes) -> List[Message]: + reader = io.BytesIO(b) + messages_list = list() + while True: + try: + messages_list.append(self.read_head_message(reader)) + except IndexError: + break + return messages_list + + def read_head_message(self, reader: io.BytesIO) -> Message: + message_id = self.read_message_id(reader) if message_id == 0: return Timestamp( timestamp=self.read_uint(reader) @@ -570,7 +584,7 @@ class MessageCodec(Codec): if message_id == 65: return PageClose() - if mesage_id == 66: + if message_id == 66: return AssetCache( url=self.read_string(reader) ) @@ -580,7 +594,7 @@ class MessageCodec(Codec): id=self.read_uint(reader), rule=self.read_string(reader), index=self.read_uint(reader), - based_url=self.read_string(reader) + base_url=self.read_string(reader) ) if message_id == 69: @@ -597,6 +611,13 @@ class MessageCodec(Codec): id=self.read_uint(reader) ) + if message_id == 80: + return BatchMeta( + page_no=self.read_uint(reader), + first_index=self.read_uint(reader), + timestamp=self.read_int(reader) + ) + if message_id == 90: return IOSSessionStart( timestamp=self.read_uint(reader), @@ -690,7 +711,7 @@ class MessageCodec(Codec): y=self.read_uint(reader) ) - if message_if == 101: + if message_id == 101: return IOSInputEvent( timestamp=self.read_uint(reader), length=self.read_uint(reader), diff --git a/ee/connectors/msgcodec/messages.py b/ee/connectors/msgcodec/messages.py index c026202fb..bc451b287 100644 --- a/ee/connectors/msgcodec/messages.py +++ b/ee/connectors/msgcodec/messages.py @@ -696,6 +696,14 @@ class CreateIFrameDocument(Message): self.id = id +class BatchMeta(Message): + __id__ = 80 + + def __init__(self, page_no, first_index, timestamp): + self.page_no = page_no + self.first_index = first_index + self.timestamp = timestamp + class IOSSessionStart(Message): __id__ = 90