Exemple #1
0
 def __require(self) -> list:
     data = self.__sock.recv(65536)
     if data is None: return None
     data = data.decode("utf8", errors='replace')
     buff = [str(mess) for mess in re.split(r"\r\n", self.__unsolved_string + data)]
     if len(data) >= 2 and data[-2:] != '\r\n':
         self.__unsolved_string = buff[-1]
         del buff[-1]
     result = []
     for message in buff:
         if message == "": continue
         # self.__log.write(message + "\n")
         # self.__log.flush()
         ping = Parser.parse_ping(message)
         if ping is not None: result.append(ping)
         mode = Parser.parse_mode(self.__nick, message)
         if mode is not None: result.append(mode)
         if self.__condition is Condition.motd:
             end_motd = Parser.parse_end_motd(message)
             if end_motd is not None: result.append(end_motd)
         if self.__condition.value >= Condition.names.value:
             names = Parser.parse_names(self.__nick, message)
             if names is not None: result.append(names)
             end_names = Parser.parse_end_names(message)
             if end_names is not None: result.append(end_names)
             jpk = Parser.parse_jpk(message)
             if jpk is not None: result.append(jpk)
             m = Parser.parse_privmsg(message)
             if m is not None: result.append(m)
             q = Parser.parse_quit(message)
             if q is not None: result.append(q)
             nick = Parser.parse_nick(message)
             if nick is not None: result.append(nick)
     return result