예제 #1
0
 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
예제 #2
0
 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
예제 #3
0
 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)