def __load_login( self, identifier: ID ) -> (Optional[LoginCommand], Optional[ReliableMessage]): path = self.__path(identifier=identifier) self.info('Loading login from: %s' % path) dictionary = self.read_json(path=path) if dictionary is None: return None, None cmd = dictionary.get('cmd') msg = dictionary.get('msg') if cmd is not None: cmd = LoginCommand(cmd) if msg is not None: msg = ReliableMessage.parse(msg=msg) return cmd, msg
def __load_messages(self, path: str) -> List[ReliableMessage]: text = self.read_text(path=path) lines = text.splitlines() self.debug('read %d line(s) from %s' % (len(lines), path)) messages = [] for line in lines: msg = line.strip() if len(msg) == 0: self.warning('skip empty line') continue try: msg = json_decode(data=utf8_encode(string=msg)) msg = ReliableMessage.parse(msg=msg) messages.append(msg) except Exception as error: self.error('message package error %s, %s' % (error, line)) return messages
def __load_message(self, signature: str) -> Optional[ReliableMessage]: path = msg_path(signature=signature) msg = self.read_json(path=path) if msg is not None: return ReliableMessage.parse(msg=msg)